@firecms/core 3.0.0-alpha.8 → 3.0.0-alpha.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/components/ArrayContainer.d.ts +42 -0
- package/dist/components/CircularProgressCenter.d.ts +11 -0
- package/dist/components/DeleteConfirmationDialog.d.ts +9 -0
- package/dist/components/DeleteEntityDialog.d.ts +12 -0
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +35 -0
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +30 -0
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +106 -0
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +18 -0
- package/dist/components/EntityCollectionTable/SimpleEntityCollectionTable.d.ts +95 -0
- package/dist/components/EntityCollectionTable/column_utils.d.ts +16 -0
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +15 -0
- package/dist/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +33 -0
- package/dist/components/EntityCollectionTable/filters/BooleanFilterField.d.ts +9 -0
- package/dist/components/EntityCollectionTable/filters/DateTimeFilterField.d.ts +11 -0
- package/dist/components/EntityCollectionTable/filters/ReferenceFilterField.d.ts +14 -0
- package/dist/components/EntityCollectionTable/filters/StringNumberFilterField.d.ts +13 -0
- package/dist/components/EntityCollectionTable/index.d.ts +8 -0
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +18 -0
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +26 -0
- package/dist/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +9 -0
- package/dist/components/EntityCollectionTable/internal/common.d.ts +4 -0
- package/dist/components/EntityCollectionTable/internal/default_entity_actions.d.ts +6 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +5 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +23 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +13 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +6 -0
- package/dist/components/EntityCollectionTable/types.d.ts +53 -0
- package/dist/components/EntityCollectionTable/useDataSourceEntityCollectionTableController.d.ts +32 -0
- package/dist/components/EntityCollectionTable/useDebouncedData.d.ts +9 -0
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +37 -0
- package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +14 -0
- package/dist/components/EntityCollectionView/useColumnsIds.d.ts +4 -0
- package/dist/components/EntityPreview.d.ts +11 -0
- package/dist/components/ErrorBoundary.d.ts +11 -0
- package/dist/components/ErrorTooltip.d.ts +2 -0
- package/dist/components/ErrorView.d.ts +19 -0
- package/dist/components/FieldConfigBadge.d.ts +4 -0
- package/dist/components/FireCMSAppBar.d.ts +26 -0
- package/dist/components/FireCMSLogo.d.ts +7 -0
- package/dist/components/HomePage/DefaultHomePage.d.ts +21 -0
- package/dist/components/HomePage/FavouritesView.d.ts +3 -0
- package/dist/components/HomePage/NavigationCollectionCard.d.ts +17 -0
- package/dist/components/HomePage/NavigationGroup.d.ts +4 -0
- package/dist/components/HomePage/index.d.ts +3 -0
- package/dist/components/LabelWithIcon.d.ts +14 -0
- package/dist/components/NotFoundPage.d.ts +1 -0
- package/dist/components/ReferenceSelectionInner.d.ts +58 -0
- package/dist/components/ReferenceWidget.d.ts +28 -0
- package/dist/components/SearchIconsView.d.ts +5 -0
- package/dist/components/VirtualTable/VirtualTable.d.ts +11 -0
- package/dist/components/VirtualTable/VirtualTableCell.d.ts +14 -0
- package/dist/components/VirtualTable/VirtualTableHeader.d.ts +27 -0
- package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +214 -0
- package/dist/components/VirtualTable/VirtualTableRow.d.ts +3 -0
- package/dist/components/VirtualTable/common.d.ts +2 -0
- package/dist/components/VirtualTable/fields/VirtualTableDateField.d.ts +11 -0
- package/dist/components/VirtualTable/fields/VirtualTableInput.d.ts +8 -0
- package/dist/components/VirtualTable/fields/VirtualTableNumberInput.d.ts +8 -0
- package/dist/components/VirtualTable/fields/VirtualTableSelect.d.ts +15 -0
- package/dist/components/VirtualTable/fields/VirtualTableSwitch.d.ts +7 -0
- package/dist/components/VirtualTable/index.d.ts +2 -0
- package/dist/components/VirtualTable/types.d.ts +34 -0
- package/dist/components/index.d.ts +21 -0
- package/dist/contexts/AuthControllerContext.d.ts +3 -0
- package/dist/contexts/DataSourceContext.d.ts +3 -0
- package/dist/contexts/DialogsProvider.d.ts +4 -0
- package/dist/contexts/ModeController.d.ts +4 -0
- package/dist/contexts/NavigationContext.d.ts +3 -0
- package/dist/contexts/SideDialogsControllerContext.d.ts +3 -0
- package/dist/contexts/SideEntityControllerContext.d.ts +3 -0
- package/dist/contexts/SnackbarProvider.d.ts +2 -0
- package/dist/contexts/StorageSourceContext.d.ts +3 -0
- package/dist/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
- package/dist/contexts/index.d.ts +3 -0
- package/dist/core/Drawer.d.ts +23 -0
- package/dist/core/EntitySidePanel.d.ts +10 -0
- package/dist/core/FireCMS.d.ts +14 -0
- package/dist/core/NavigationRoutes.d.ts +21 -0
- package/dist/core/Scaffold.d.ts +52 -0
- package/dist/core/SideDialogs.d.ts +23 -0
- package/dist/core/field_configs.d.ts +7 -0
- package/dist/core/index.d.ts +10 -0
- package/dist/core/useBuildLocalConfigurationPersistence.d.ts +2 -0
- package/dist/core/useBuildModeController.d.ts +6 -0
- package/dist/form/EntityForm.d.ts +75 -0
- package/dist/form/PropertyFieldBinding.d.ts +30 -0
- package/dist/form/components/CustomIdField.d.ts +9 -0
- package/dist/form/components/ErrorFocus.d.ts +4 -0
- package/dist/form/components/FieldHelperText.d.ts +12 -0
- package/dist/form/components/FormikArrayContainer.d.ts +18 -0
- package/dist/form/components/StorageItemPreview.d.ts +13 -0
- package/dist/form/components/StorageUploadProgress.d.ts +10 -0
- package/dist/form/components/SubmitListener.d.ts +1 -0
- package/dist/form/components/SwitchControl.d.ts +8 -0
- package/dist/form/components/index.d.ts +3 -0
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +7 -0
- package/dist/form/field_bindings/MapFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/MultiSelectBinding.d.ts +9 -0
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +12 -0
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +28 -0
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +12 -0
- package/dist/form/field_bindings/TextFieldBinding.d.ts +12 -0
- package/dist/form/index.d.ts +20 -0
- package/dist/form/useClearRestoreValue.d.ts +13 -0
- package/dist/form/validation.d.ts +25 -0
- package/dist/hooks/data/delete.d.ts +37 -0
- package/dist/hooks/data/save.d.ts +42 -0
- package/dist/hooks/data/useCollectionFetch.d.ts +50 -0
- package/dist/hooks/data/useDataOrder.d.ts +12 -0
- package/dist/hooks/data/useDataSource.d.ts +6 -0
- package/dist/hooks/data/useEntityFetch.d.ts +28 -0
- package/dist/hooks/index.d.ts +19 -0
- package/dist/hooks/useAuthController.d.ts +11 -0
- package/dist/hooks/useBrowserTitleAndIcon.d.ts +6 -0
- package/dist/hooks/useClipboard.d.ts +57 -0
- package/dist/hooks/useDialogsController.d.ts +11 -0
- package/dist/hooks/useFireCMSContext.d.ts +12 -0
- package/dist/hooks/useLargeLayout.d.ts +1 -0
- package/dist/hooks/useModeController.d.ts +20 -0
- package/dist/hooks/useNavigationController.d.ts +9 -0
- package/dist/hooks/useReferenceDialog.d.ts +18 -0
- package/dist/hooks/useResolvedNavigationFrom.d.ts +72 -0
- package/dist/hooks/useSideDialogsController.d.ts +18 -0
- package/dist/hooks/useSideEntityController.d.ts +12 -0
- package/dist/hooks/useSnackbarController.d.ts +41 -0
- package/dist/hooks/useStorageSource.d.ts +6 -0
- package/dist/hooks/useUserConfigurationPersistence.d.ts +8 -0
- package/dist/hooks/useVerifyLicense.d.ts +0 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.es.js +15810 -26791
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +5 -1027
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/EntityView.d.ts +22 -0
- package/dist/internal/common.d.ts +3 -0
- package/dist/internal/useBuildDataSource.d.ts +22 -0
- package/dist/internal/useBuildNavigationController.d.ts +14 -0
- package/dist/internal/useBuildSideDialogsController.d.ts +2 -0
- package/dist/internal/useBuildSideEntityController.d.ts +4 -0
- package/dist/internal/useLocaleConfig.d.ts +1 -0
- package/dist/internal/useRestoreScroll.d.ts +6 -0
- package/dist/internal/useUnsavedChangesDialog.d.ts +14 -0
- package/dist/preview/PropertyPreview.d.ts +7 -0
- package/dist/preview/PropertyPreviewProps.d.ts +43 -0
- package/dist/preview/components/ArrayEnumPreview.d.ts +11 -0
- package/dist/preview/components/AsyncPreviewComponent.d.ts +11 -0
- package/dist/preview/components/BooleanPreview.d.ts +7 -0
- package/dist/preview/components/DatePreview.d.ts +7 -0
- package/dist/preview/components/EmptyValue.d.ts +4 -0
- package/dist/preview/components/EnumValuesChip.d.ts +13 -0
- package/dist/preview/components/ImagePreview.d.ts +12 -0
- package/dist/preview/components/ReferencePreview.d.ts +22 -0
- package/dist/preview/components/StorageThumbnail.d.ts +13 -0
- package/dist/preview/components/UrlComponentPreview.d.ts +12 -0
- package/dist/preview/index.d.ts +23 -0
- package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +5 -0
- package/dist/preview/property_previews/MapPropertyPreview.d.ts +8 -0
- package/dist/preview/property_previews/NumberPropertyPreview.d.ts +6 -0
- package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +14 -0
- package/dist/preview/property_previews/StringPropertyPreview.d.ts +6 -0
- package/dist/preview/util.d.ts +7 -0
- package/dist/types/analytics.d.ts +1 -0
- package/dist/types/appcheck.d.ts +26 -0
- package/dist/types/auth.d.ts +40 -0
- package/dist/types/collections.d.ts +451 -0
- package/dist/types/datasource.d.ts +262 -0
- package/dist/types/dialogs_controller.d.ts +32 -0
- package/dist/types/entities.d.ts +57 -0
- package/dist/types/entity_actions.d.ts +35 -0
- package/dist/types/entity_callbacks.d.ts +171 -0
- package/dist/types/entity_link_builder.d.ts +7 -0
- package/dist/types/export_import.d.ts +21 -0
- package/dist/types/fields.d.ts +181 -0
- package/dist/types/firecms.d.ts +151 -0
- package/dist/types/firecms_context.d.ts +110 -0
- package/dist/types/index.d.ts +26 -0
- package/dist/types/local_config_persistence.d.ts +21 -0
- package/dist/types/locales.d.ts +4 -0
- package/dist/types/modify_collections.d.ts +5 -0
- package/dist/types/navigation.d.ts +178 -0
- package/dist/types/permissions.d.ts +63 -0
- package/dist/types/plugins.d.ts +181 -0
- package/dist/types/properties.d.ts +681 -0
- package/dist/types/property_config.d.ts +42 -0
- package/dist/types/resolved_entities.d.ts +98 -0
- package/dist/types/side_dialogs_controller.d.ts +57 -0
- package/dist/types/side_entity_controller.d.ts +83 -0
- package/dist/types/storage.d.ts +82 -0
- package/dist/types/user.d.ts +36 -0
- package/dist/util/arrays.d.ts +1 -0
- package/dist/util/builders.d.ts +64 -0
- package/dist/util/collections.d.ts +3 -0
- package/dist/util/common.d.ts +2 -0
- package/dist/util/dates.d.ts +1 -0
- package/dist/util/entities.d.ts +28 -0
- package/dist/util/enums.d.ts +7 -0
- package/dist/util/flatten_object.d.ts +3 -0
- package/dist/util/hash.d.ts +1 -0
- package/dist/util/icon_list.d.ts +1 -0
- package/dist/util/icon_synonyms.d.ts +1950 -0
- package/dist/util/icons.d.ts +4 -0
- package/dist/util/index.d.ts +22 -0
- package/dist/util/join_collections.d.ts +9 -0
- package/dist/util/make_properties_editable.d.ts +3 -0
- package/dist/util/navigation_from_path.d.ts +24 -0
- package/dist/util/navigation_utils.d.ts +20 -0
- package/dist/util/objects.d.ts +10 -0
- package/dist/util/os.d.ts +2 -0
- package/dist/util/parent_references_from_path.d.ts +6 -0
- package/dist/util/paths.d.ts +14 -0
- package/dist/util/permissions.d.ts +5 -0
- package/dist/util/plurals.d.ts +18 -0
- package/dist/util/property_utils.d.ts +23 -0
- package/dist/util/references.d.ts +2 -0
- package/dist/util/regexp.d.ts +7 -0
- package/dist/util/resolutions.d.ts +64 -0
- package/dist/util/storage.d.ts +3 -0
- package/dist/util/strings.d.ts +6 -0
- package/dist/util/useDebounce.d.ts +1 -0
- package/dist/util/useStorageUploadController.d.ts +36 -0
- package/dist/util/useTraceUpdate.d.ts +1 -0
- package/package.json +112 -142
- package/src/components/ArrayContainer.tsx +369 -0
- package/src/components/CircularProgressCenter.tsx +26 -0
- package/src/components/DeleteConfirmationDialog.tsx +47 -0
- package/src/components/DeleteEntityDialog.tsx +207 -0
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +174 -0
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +496 -0
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +150 -0
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +461 -0
- package/src/components/EntityCollectionTable/SimpleEntityCollectionTable.tsx +369 -0
- package/src/components/EntityCollectionTable/column_utils.tsx +74 -0
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +159 -0
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +313 -0
- package/src/components/EntityCollectionTable/filters/BooleanFilterField.tsx +49 -0
- package/src/components/EntityCollectionTable/filters/DateTimeFilterField.tsx +109 -0
- package/src/components/EntityCollectionTable/filters/ReferenceFilterField.tsx +187 -0
- package/src/components/EntityCollectionTable/filters/StringNumberFilterField.tsx +159 -0
- package/src/components/EntityCollectionTable/index.tsx +20 -0
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +113 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +257 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +70 -0
- package/src/components/EntityCollectionTable/internal/common.tsx +70 -0
- package/src/components/EntityCollectionTable/internal/default_entity_actions.tsx +122 -0
- package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +59 -0
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +401 -0
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +97 -0
- package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.tsx +20 -0
- package/src/components/EntityCollectionTable/types.tsx +58 -0
- package/src/components/EntityCollectionTable/useDataSourceEntityCollectionTableController.tsx +225 -0
- package/src/components/EntityCollectionTable/useDebouncedData.ts +49 -0
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +815 -0
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +131 -0
- package/src/components/EntityCollectionView/useColumnsIds.tsx +100 -0
- package/src/components/EntityPreview.tsx +83 -0
- package/src/components/ErrorBoundary.tsx +40 -0
- package/src/components/ErrorTooltip.tsx +11 -0
- package/src/components/ErrorView.tsx +52 -0
- package/src/components/FieldConfigBadge.tsx +17 -0
- package/src/components/FireCMSAppBar.tsx +157 -0
- package/src/components/FireCMSLogo.tsx +73 -0
- package/src/components/HomePage/DefaultHomePage.tsx +209 -0
- package/src/components/HomePage/FavouritesView.tsx +64 -0
- package/src/components/HomePage/NavigationCollectionCard.tsx +145 -0
- package/src/components/HomePage/NavigationGroup.tsx +39 -0
- package/src/components/HomePage/index.tsx +3 -0
- package/src/components/LabelWithIcon.tsx +33 -0
- package/src/components/NotFoundPage.tsx +25 -0
- package/src/components/ReferenceSelectionInner.tsx +364 -0
- package/src/components/ReferenceWidget.tsx +145 -0
- package/src/components/SearchIconsView.tsx +75 -0
- package/src/components/VirtualTable/VirtualTable.tsx +402 -0
- package/src/components/VirtualTable/VirtualTableCell.tsx +32 -0
- package/src/components/VirtualTable/VirtualTableHeader.tsx +260 -0
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +131 -0
- package/src/components/VirtualTable/VirtualTableProps.tsx +269 -0
- package/src/components/VirtualTable/VirtualTableRow.tsx +53 -0
- package/src/components/VirtualTable/common.tsx +18 -0
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +37 -0
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +91 -0
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +82 -0
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +130 -0
- package/src/components/VirtualTable/fields/VirtualTableSwitch.tsx +32 -0
- package/src/components/VirtualTable/index.tsx +2 -0
- package/src/components/VirtualTable/types.tsx +44 -0
- package/src/components/index.tsx +31 -0
- package/src/contexts/AuthControllerContext.tsx +4 -0
- package/src/contexts/DataSourceContext.tsx +4 -0
- package/src/contexts/DialogsProvider.tsx +52 -0
- package/src/contexts/ModeController.tsx +13 -0
- package/src/contexts/NavigationContext.tsx +4 -0
- package/src/contexts/SideDialogsControllerContext.tsx +4 -0
- package/src/contexts/SideEntityControllerContext.tsx +4 -0
- package/src/contexts/SnackbarProvider.tsx +12 -0
- package/src/contexts/StorageSourceContext.tsx +4 -0
- package/src/contexts/UserConfigurationPersistenceContext.tsx +4 -0
- package/src/contexts/index.ts +3 -0
- package/src/core/Drawer.tsx +161 -0
- package/src/core/EntitySidePanel.tsx +89 -0
- package/src/core/FireCMS.tsx +184 -0
- package/src/core/NavigationRoutes.tsx +118 -0
- package/src/core/Scaffold.tsx +278 -0
- package/src/core/SideDialogs.tsx +156 -0
- package/src/core/field_configs.tsx +400 -0
- package/src/core/index.tsx +14 -0
- package/src/core/useBuildLocalConfigurationPersistence.tsx +67 -0
- package/src/core/useBuildModeController.tsx +60 -0
- package/src/form/EntityForm.tsx +646 -0
- package/src/form/PropertyFieldBinding.tsx +313 -0
- package/src/form/components/CustomIdField.tsx +124 -0
- package/src/form/components/ErrorFocus.tsx +51 -0
- package/src/form/components/FieldHelperText.tsx +58 -0
- package/src/form/components/FormikArrayContainer.tsx +44 -0
- package/src/form/components/StorageItemPreview.tsx +66 -0
- package/src/form/components/StorageUploadProgress.tsx +104 -0
- package/src/form/components/SubmitListener.tsx +32 -0
- package/src/form/components/SwitchControl.tsx +39 -0
- package/src/form/components/index.tsx +3 -0
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +88 -0
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +153 -0
- package/src/form/field_bindings/BlockFieldBinding.tsx +245 -0
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +67 -0
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +560 -0
- package/src/form/field_bindings/MapFieldBinding.tsx +136 -0
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +696 -0
- package/src/form/field_bindings/MultiSelectBinding.tsx +115 -0
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +70 -0
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +122 -0
- package/src/form/field_bindings/RepeatFieldBinding.tsx +103 -0
- package/src/form/field_bindings/SelectFieldBinding.tsx +100 -0
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +438 -0
- package/src/form/field_bindings/SwitchFieldBinding.tsx +61 -0
- package/src/form/field_bindings/TextFieldBinding.tsx +108 -0
- package/src/form/index.tsx +42 -0
- package/src/form/useClearRestoreValue.tsx +35 -0
- package/src/form/validation.ts +413 -0
- package/src/hooks/data/delete.ts +101 -0
- package/src/hooks/data/save.ts +165 -0
- package/src/hooks/data/useCollectionFetch.tsx +162 -0
- package/src/hooks/data/useDataOrder.ts +26 -0
- package/src/hooks/data/useDataSource.tsx +9 -0
- package/src/hooks/data/useEntityFetch.tsx +129 -0
- package/src/hooks/index.tsx +23 -0
- package/src/hooks/useAuthController.tsx +14 -0
- package/src/hooks/useBrowserTitleAndIcon.tsx +25 -0
- package/src/hooks/useClipboard.tsx +158 -0
- package/src/hooks/useDialogsController.tsx +14 -0
- package/src/hooks/useFireCMSContext.tsx +50 -0
- package/src/hooks/useLargeLayout.tsx +97 -0
- package/src/hooks/useModeController.tsx +24 -0
- package/src/hooks/useNavigationController.tsx +12 -0
- package/src/hooks/useReferenceDialog.tsx +56 -0
- package/src/hooks/useResolvedNavigationFrom.tsx +160 -0
- package/src/hooks/useSideDialogsController.tsx +21 -0
- package/src/hooks/useSideEntityController.tsx +15 -0
- package/src/hooks/useSnackbarController.tsx +76 -0
- package/src/hooks/useStorageSource.tsx +9 -0
- package/src/hooks/useUserConfigurationPersistence.tsx +11 -0
- package/src/hooks/useVerifyLicense.tsx +1 -0
- package/src/index.ts +8 -0
- package/src/internal/EntityView.tsx +576 -0
- package/src/internal/common.tsx +5 -0
- package/src/internal/useBuildDataSource.ts +358 -0
- package/src/internal/useBuildNavigationController.tsx +371 -0
- package/src/internal/useBuildSideDialogsController.tsx +126 -0
- package/src/internal/useBuildSideEntityController.tsx +172 -0
- package/src/internal/useLocaleConfig.tsx +18 -0
- package/src/internal/useRestoreScroll.tsx +48 -0
- package/src/internal/useUnsavedChangesDialog.tsx +106 -0
- package/src/preview/PropertyPreview.tsx +222 -0
- package/src/preview/PropertyPreviewProps.tsx +59 -0
- package/src/preview/components/ArrayEnumPreview.tsx +39 -0
- package/src/preview/components/AsyncPreviewComponent.tsx +47 -0
- package/src/preview/components/BooleanPreview.tsx +11 -0
- package/src/preview/components/DatePreview.tsx +27 -0
- package/src/preview/components/EmptyValue.tsx +10 -0
- package/src/preview/components/EnumValuesChip.tsx +38 -0
- package/src/preview/components/ImagePreview.tsx +106 -0
- package/src/preview/components/ReferencePreview.tsx +249 -0
- package/src/preview/components/StorageThumbnail.tsx +84 -0
- package/src/preview/components/UrlComponentPreview.tsx +79 -0
- package/src/preview/index.ts +27 -0
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +82 -0
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +52 -0
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +54 -0
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +55 -0
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +67 -0
- package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +28 -0
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +68 -0
- package/src/preview/property_previews/MapPropertyPreview.tsx +146 -0
- package/src/preview/property_previews/NumberPropertyPreview.tsx +27 -0
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +283 -0
- package/src/preview/property_previews/StringPropertyPreview.tsx +59 -0
- package/src/preview/util.ts +31 -0
- package/src/types/analytics.ts +34 -0
- package/src/types/appcheck.ts +29 -0
- package/src/types/auth.tsx +49 -0
- package/src/types/collections.ts +530 -0
- package/src/types/datasource.ts +389 -0
- package/src/types/dialogs_controller.tsx +33 -0
- package/src/types/entities.ts +76 -0
- package/src/types/entity_actions.tsx +39 -0
- package/src/types/entity_callbacks.ts +209 -0
- package/src/types/entity_link_builder.ts +8 -0
- package/src/types/export_import.ts +26 -0
- package/src/types/fields.tsx +220 -0
- package/src/types/firecms.tsx +175 -0
- package/src/types/firecms_context.tsx +128 -0
- package/src/types/index.ts +26 -0
- package/src/types/local_config_persistence.tsx +23 -0
- package/src/types/locales.ts +81 -0
- package/src/types/modify_collections.tsx +6 -0
- package/src/types/navigation.ts +214 -0
- package/src/types/permissions.ts +76 -0
- package/src/types/plugins.tsx +219 -0
- package/src/types/properties.ts +851 -0
- package/src/types/property_config.tsx +72 -0
- package/src/types/resolved_entities.ts +148 -0
- package/src/types/side_dialogs_controller.tsx +68 -0
- package/src/types/side_entity_controller.tsx +96 -0
- package/src/types/storage.ts +96 -0
- package/src/types/user.ts +37 -0
- package/src/util/arrays.ts +3 -0
- package/src/util/builders.ts +139 -0
- package/src/util/collections.ts +50 -0
- package/src/util/common.tsx +2 -0
- package/src/util/dates.ts +1 -0
- package/src/util/entities.ts +196 -0
- package/src/util/enums.ts +56 -0
- package/src/util/flatten_object.ts +45 -0
- package/src/util/hash.ts +11 -0
- package/src/util/icon_list.ts +17 -0
- package/src/util/icon_synonyms.ts +1950 -0
- package/src/util/icons.tsx +45 -0
- package/src/util/index.ts +22 -0
- package/src/util/join_collections.ts +172 -0
- package/src/util/make_properties_editable.ts +29 -0
- package/src/util/navigation_from_path.ts +107 -0
- package/src/util/navigation_utils.ts +111 -0
- package/src/util/objects.ts +168 -0
- package/src/util/os.ts +13 -0
- package/src/util/parent_references_from_path.ts +56 -0
- package/src/util/paths.ts +27 -0
- package/src/util/permissions.ts +80 -0
- package/src/util/plurals.ts +190 -0
- package/src/util/property_utils.tsx +130 -0
- package/src/util/references.ts +20 -0
- package/src/util/regexp.ts +32 -0
- package/src/util/resolutions.ts +399 -0
- package/src/util/storage.ts +92 -0
- package/src/util/strings.ts +62 -0
- package/src/util/useDebounce.ts +25 -0
- package/src/util/useStorageUploadController.tsx +243 -0
- package/src/util/useTraceUpdate.tsx +23 -0
package/dist/index.umd.js
CHANGED
|
@@ -1,99 +1,7 @@
|
|
|
1
|
-
(function(o,$n){typeof exports=="object"&&typeof module<"u"?$n(exports,require("clsx"),require("tailwind-merge"),require("react/jsx-runtime"),require("react"),require("react-router-dom"),require("notistack"),require("@radix-ui/react-tooltip"),require("@material-design-icons/font/filled.css"),require("@radix-ui/react-collapsible"),require("@radix-ui/react-checkbox"),require("react-datepicker"),require("@radix-ui/react-dialog"),require("react-dropzone"),require("react-fast-compare"),require("markdown-it"),require("@radix-ui/react-dropdown-menu"),require("cmdk"),require("@radix-ui/react-select"),require("react-dom"),require("@radix-ui/react-tabs"),require("date-fns/format"),require("date-fns/locale"),require("object-hash"),require("@hello-pangea/dnd"),require("react-image-file-resizer"),require("formik"),require("react-markdown-editor-lite"),require("yup"),require("react-window"),require("react-use-measure"),require("@radix-ui/react-popover"),require("js-search"),require("@radix-ui/react-portal")):typeof define=="function"&&define.amd?define(["exports","clsx","tailwind-merge","react/jsx-runtime","react","react-router-dom","notistack","@radix-ui/react-tooltip","@material-design-icons/font/filled.css","@radix-ui/react-collapsible","@radix-ui/react-checkbox","react-datepicker","@radix-ui/react-dialog","react-dropzone","react-fast-compare","markdown-it","@radix-ui/react-dropdown-menu","cmdk","@radix-ui/react-select","react-dom","@radix-ui/react-tabs","date-fns/format","date-fns/locale","object-hash","@hello-pangea/dnd","react-image-file-resizer","formik","react-markdown-editor-lite","yup","react-window","react-use-measure","@radix-ui/react-popover","js-search","@radix-ui/react-portal"],$n):(o=typeof globalThis<"u"?globalThis:o||self,$n(o.FireCMS={},o.clsx,o.tailwindMerge,o.jsxRuntime,o.React,o.reactRouterDom,o.notistack,o.TooltipPrimitive,null,o.Collapsible,o.CheckboxPrimitive,o.DatePicker,o.DialogPrimitive,o.reactDropzone,o.equal,o.MarkdownIt,o.DropdownMenu,o.cmdk,o.SelectPrimitive,o.ReactDOM,o.TabsPrimitive,o.format,o.locales,o.hash,o.dnd,o.Resizer,o.formik,o.MdEditor,o.yup,o.reactWindow,o.useMeasure,o.PopoverPrimitive,o.JsSearch,o.Portal))})(this,function(o,$n,Ia,n,f,Ie,Wt,ba,oU,pa,wa,Ro,ka,er,de,Gt,ma,go,va,Ka,Ca,Sa,Ba,zt,Kn,Ea,Fe,_n,Fa,Pa,nr,Da,Na,Ma){"use strict";function Pe(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const c in e)if(c!=="default"){const i=Object.getOwnPropertyDescriptor(e,c);Object.defineProperty(t,c,i.get?i:{enumerable:!0,get:()=>e[c]})}}return t.default=e,Object.freeze(t)}const ce=Pe(f),jn=Pe(ba),qn=Pe(pa),Ht=Pe(wa),$e=Pe(ka),Jn=Pe(ma),je=Pe(va),Ta=Pe(Ka),or=Pe(Ca),Ut=Pe(Ba),De=Pe(Fa),Zn=Pe(Da),Oa=Pe(Na),La=Pe(Ma);function E(...e){return Ia.twMerge($n.clsx(e))}const Qa={breadcrumbs:[],set:e=>{}},Yt=f.createContext(Qa),Va=({children:e})=>{const[t,c]=f.useState([]),i=l=>{c(l.breadcrumbs)};return n.jsx(Yt.Provider,{value:{breadcrumbs:t,set:i},children:e})},Wa={mode:"light",setMode:e=>{},toggleMode:()=>{}},rr=f.createContext(Wa),Ga=rr.Provider;function za(e){return e.includes("-")||e.includes("_")||!e.includes(" ")?e.replace(/[-_]/g," ").replace(/\w\S*/g,function(c){return c.charAt(0).toUpperCase()+c.substr(1)}):e}function be(e){return $t(jt(e))}function $t(e){return e.startsWith("/")?e.slice(1):e}function jt(e){return e.endsWith("/")?e.slice(0,-1):e}function Ha(e){return e.startsWith("/")?e:`/${e}`}function Ua(e){const t=be(e);if(t.includes("/")){const c=t.split("/");return c[c.length-1]}return t}function tr(e,t){const c=be(e),i=c.split("/");if(i.length%2===0)throw Error(`Collection paths must have an odd number of segments: ${e}`);const l=t.find(s=>s.alias===i[0]);let a;if(l&&(a=l.path),i.length>1){const s=Io(a??i[0],t);if(!s?.subcollections)return c;const d=c.split("/").slice(2).join("/");return(a??i[0])+"/"+i[1]+"/"+tr(d,s.subcollections)}else return a??c}function Io(e,t){const c=be(e).split("/");if(c.length%2===0)throw Error(`Collection paths must have an odd number of segments: ${e}`);const i=bo(c);let l;for(let a=0;a<i.length;a++){const s=i[a],d=t&&t.sort((u,A)=>(u.alias??"").localeCompare(A.alias??"")).find(u=>u.alias===s||u.path===s);if(d){if(s===e)l=d;else if(d.subcollections){const u=e.replace(s,"").split("/").slice(2).join("/");u.length>0&&(l=Io(u,d.subcollections))}}if(l)break}return l}function bo(e){const t=e.length>0&&e.length%2===0?e.splice(0,e.length-1):e,c=t.length,i=[];for(let l=c;l>0;l=l-2)i.push(t.slice(0,l).join("/"));return i}function cr(e){const{path:t,collections:c=[],currentFullPath:i}=e,l=be(t).split("/"),a=bo(l),s=[];for(let d=0;d<a.length;d++){const u=a[d],A=c&&c.find(_=>_.alias===u||_.path===u);if(A){const _=A.alias??A.path,g=i&&i.length>0?i+"/"+_:_;s.push({type:"collection",path:g,collection:A});const y=be(be(t).replace(u,"")),h=y.length>0?y.split("/"):[];if(h.length>0){const I=h[0],b=g+"/"+I;if(s.push({type:"entity",entityId:I,path:g,parentCollection:A}),h.length>1){const p=h.slice(1).join("/");if(!A)throw Error("collection not found resolving path: "+A);const w=A.views,k=w&&w.find(K=>K.key===p);if(k){const K=i&&i.length>0?i+"/"+k.key:k.key;s.push({type:"custom_view",path:K,view:k})}else A.subcollections&&s.push(...cr({path:p,customViews:w,collections:A.subcollections,currentFullPath:b}))}}break}}return s}const qt=f.createContext({}),Qe=()=>f.useContext(qt),Jt=f.createContext({}),Ae=()=>f.useContext(Jt),ir=f.createContext({}),yn=()=>f.useContext(ir),Zt=f.createContext({}),Xn=()=>f.useContext(Zt),Xt=f.createContext({}),Cn=()=>f.useContext(Xt),xt=f.createContext({}),Sn=()=>f.useContext(xt),cn=()=>{const{enqueueSnackbar:e,closeSnackbar:t}=Wt.useSnackbar(),c=f.useCallback(l=>{const{type:a,message:s,autoHideDuration:d}=l;e({message:s,variant:a,autoHideDuration:d})},[]),i=f.useCallback(()=>{t()},[]);return f.useMemo(()=>({open:c,close:i}),[c,i])},Rt=f.createContext(void 0),Bn=()=>f.useContext(Rt),ar=f.createContext({sideDialogsController:{},sideEntityController:{},navigation:{},dataSource:{},storageSource:{},authController:{},snackbarController:{},fields:{}}),re=()=>{const e=f.useContext(ar),t=yn(),c=Xn(),i=Cn(),l=Ae(),a=Qe(),s=Sn(),d=cn(),u=Bn();return{...e,authController:t,sideDialogsController:c,sideEntityController:i,navigation:l,dataSource:a,storageSource:s,snackbarController:d,userConfigPersistence:u}};function ec({path:e,collection:t,filterValues:c,sortBy:i,itemCount:l,searchString:a}){const s=Qe(),u=Ae().resolveAliasesFrom(e),A=i?i[0]:void 0,_=i?i[1]:void 0,g=re(),[y,h]=f.useState([]),[I,b]=f.useState(!1),[p,w]=f.useState(),[k,K]=f.useState(!1);return f.useEffect(()=>{b(!0);const m=async S=>{if(t.callbacks?.onFetch)try{S=await Promise.all(S.map(B=>t.callbacks.onFetch({collection:t,path:u,entity:B,context:g})))}catch(B){console.error(B)}b(!1),w(void 0),h(S.map(B=>({...B}))),K(!l||S.length<l)},v=S=>{console.error("ERROR",S),b(!1),h([]),w(S)};return s.listenCollection?s.listenCollection({path:u,collection:t,onUpdate:m,onError:v,searchString:a,filter:c,limit:l,startAfter:void 0,orderBy:A,order:_}):(s.fetchCollection({path:u,collection:t,searchString:a,filter:c,limit:l,startAfter:void 0,orderBy:A,order:_}).then(m).catch(v),()=>{})},[u,l,_,A,c,a]),{data:y,dataLoading:I,dataLoadingError:p,noMoreToLoad:k}}const lr={};function sr({path:e,entityId:t,collection:c,useCache:i=!1}){const l=Qe(),s=Ae().resolveAliasesFrom(e),d=re(),[u,A]=f.useState(),[_,g]=f.useState(!0),[y,h]=f.useState();return f.useEffect(()=>{g(!0);const I=async p=>{if(c.callbacks?.onFetch&&p)try{p=await c.callbacks.onFetch({collection:c,path:s,entity:p,context:d})}catch(w){console.error(w)}lr[`${s}/${t}`]=p,A(p),g(!1),h(void 0)},b=p=>{console.error("ERROR fetching entity",p),g(!1),A(void 0),h(p)};return t&&i&&lr[`${s}/${t}`]?(A(lr[`${s}/${t}`]),g(!1),h(void 0),()=>{}):t&&s&&c?l.listenEntity?l.listenEntity({path:s,entityId:t,collection:c,onUpdate:I,onError:b}):(l.fetchEntity({path:s,entityId:t,collection:c}).then(I).catch(b),()=>{}):(I(void 0),()=>{})},[t,s]),{entity:u,dataLoading:_,dataLoadingError:y}}async function dr({collection:e,path:t,entityId:c,values:i,previousValues:l,status:a,dataSource:s,context:d,onSaveSuccess:u,onSaveFailure:A,onPreSaveHookError:_,onSaveSuccessHookError:g}){let y;const h=d.navigation.resolveAliasesFrom(t),I=e.callbacks;if(I?.onPreSave)try{const b=Me({collection:e,path:t,values:l,entityId:c,fields:d.fields});y=await I.onPreSave({collection:b,path:t,resolvedPath:h,entityId:c,values:i,previousValues:l,status:a,context:d})}catch(b){console.error(b),_&&_(b);return}else y=i;return s.saveEntity({collection:e,path:h,entityId:c,values:y,previousValues:l,status:a}).then(b=>{try{if(I?.onSaveSuccess){const p=Me({collection:e,path:t,values:y,entityId:c,fields:d.fields});I.onSaveSuccess({collection:p,path:t,resolvedPath:h,entityId:b.id,values:y,previousValues:l,status:a,context:d})}}catch(p){g&&g(p)}u&&u(b)}).catch(b=>{if(I?.onSaveFailure){const p=Me({collection:e,path:t,values:y,entityId:c,fields:d.fields});I.onSaveFailure({collection:p,path:t,resolvedPath:h,entityId:c,values:y,previousValues:l,status:a,context:d})}A&&A(b)})}async function nc({dataSource:e,entity:t,collection:c,callbacks:i,onDeleteSuccess:l,onDeleteFailure:a,onPreDeleteHookError:s,onDeleteSuccessHookError:d,context:u}){console.debug("Deleting entity",t.path,t.id);const A={entity:t,collection:c,entityId:t.id,path:t.path,context:u};if(i?.onPreDelete)try{await i.onPreDelete(A)}catch(_){return console.error(_),s&&s(t,_),!1}return e.deleteEntity({entity:t}).then(()=>{l&&l(t);try{return i?.onDelete&&i.onDelete(A),!0}catch(_){return d&&d(t,_),!1}}).catch(_=>(a&&a(t,_),!1))}function Ne({property:e,value:t,setValue:c}){const i=f.useRef(null);f.useEffect(()=>{typeof e.disabled=="object"&&!!e.disabled.clearOnDisabled?t!=null&&(i.current=t,c(null)):i.current&&(c(i.current),i.current=null)},[e])}function oc({path:e,context:t}){const c=t.dataSource,i=t.navigation;if(!i)throw Error("Calling getNavigationFrom, but main navigation has not yet been initialised");const a=cr({path:e,collections:i.collections??[]}).map(s=>{if(s.type==="collection")return Promise.resolve(s);if(s.type==="entity"){const d=i.getCollection(s.path,s.entityId);if(!d)throw Error(`No collection defined in the navigation for the entity with path ${s.path}`);return c.fetchEntity({path:s.path,entityId:s.entityId,collection:d}).then(u=>{if(u)return{...s,entity:u}})}else{if(s.type==="custom_view")return Promise.resolve(s);throw Error("Unmapped element in useEntitiesFromPath")}}).filter(s=>!!s);return Promise.all(a)}function Ya({path:e}){const t=re(),[c,i]=f.useState(),[l,a]=f.useState(!1),[s,d]=f.useState();return f.useEffect(()=>{t.navigation&&(a(!0),d(void 0),oc({path:e,context:t}).then(A=>{i(A)}).catch(A=>d(A)).finally(()=>a(!1)))},[e,t]),t.navigation?{data:c,dataLoading:l,dataLoadingError:s}:{dataLoading:!0}}const ur=()=>f.useContext(rr),rc=e=>{const{onSuccess:t,onError:c,disableClipboardAPI:i=!1,copiedDuration:l}=e||{},a=f.useRef(null),[s,d]=f.useState(!1),[u,A]=f.useState("");f.useEffect(()=>{l&&setTimeout(()=>d(!1),l)},[s]);const _=()=>navigator.clipboard!==void 0,g=f.useCallback(k=>{if(c)c(k);else throw new Error(k)},[c]),y=f.useCallback(k=>{t&&t(k),d(!0),A(k)},[t]),h=f.useCallback(k=>{navigator.clipboard.writeText(k).then(()=>y(k)).catch(K=>{g(K),d(!1)})},[g,y]),I=()=>{_()&&navigator.clipboard.writeText("")},b=k=>w("copy",typeof k=="object"?void 0:k),p=()=>w("cut"),w=f.useCallback((k="copy",K)=>{const m=a.current,v=m&&(m.tagName==="INPUT"||m.tagName==="TEXTAREA"),S=a.current;_()&&!i&&(K?h(K):m?v?(h(S.value),k==="cut"&&(S.value="")):h(m.innerText):g("Both the ref & text were undefined"))},[i,h,g]);return{ref:a,isCoppied:s,clipboard:u,clearClipboard:I,isSupported:_,copy:b,cut:p}},fr=()=>f.useContext(Yt),$a={xs:0,sm:640,md:768,lg:1024,xl:1280,"2xl":1536,"3xl":1920},Ge=(e="lg")=>{const[t,c]=f.useState(!1);return f.useEffect(()=>{const i=()=>{const l=window.matchMedia(`(min-width: ${$a[e]+1}px)`).matches;c(l)};return i(),window.addEventListener("resize",i),()=>{window.removeEventListener("resize",i)}},[]),t};function xn(e){const t=Ae(),c=Xn(),i=f.useCallback(()=>{if(e.path){let a=e.collection;if(a||(a=t.getCollection(e.path)),!a)throw Error("Not able to resolve the collection in useReferenceDialog");c.open({key:`reference_${e.path}`,component:n.jsx(ra,{collection:a,...e}),width:"90vw",onClose:()=>{e.onClose?.()}})}else throw Error("useReferenceDialog: You are trying to open a reference dialog, but have not declared the `path`")},[t,e,c]),l=f.useCallback(()=>{c.close()},[c]);return{open:i,close:l}}const ja=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAASAAAAEgARslrPgAAB9pJREFUWMONl12obVUVx39jzLk+9j7nHq9y1QT1qpcbSIaXQFGs24PQl3HroSQyqHwJFJF6qaceCsqQoJdELHoIC6EeJCSKsi/TFLGozGsKXksljRLxnrP3WmvOOUYPa+19zsmPWpux5pxrzTX///Exx5hb+B/X1y+/nuIlVKF5m0v1YbQ55tIcKTQXFerNQkumOZ1oTiXCqUH8saR+74L8ZIWWux7+7JuuL2/04s5jJyhWQlXV71KtbhCtr1WtD6s0KlrjNBRaEi3JGzpv6bymQ0sn9mwv9otB7Ls7kn9Xo+U7D9z8/xG4+bz3cs35SjE/HEK8NWr8RBOrs+tQUUlEtAYaijRkbxmY0fuMzucsfcbSWnZQtiWxJL3Uid09iH0jIM8/1f+d3/zuS29M4PvHrmG+cZA8dMdjiLfNYrx6owrMVKlVUQkgkeI1iYbBJ3A2WPpKNtnx+UQisy29L0gPDGKfrwkPn2bJPfd/Zo0ZVp0fvOOdnLGxheX+A/Mq3nGwqS8/q645o4psxkgbhFqdSgqVJKIkghgqjuDoWh+dlm1AI0gUC3o4C9d04idbmZ06euQDPPHMj3YJ3HnkrZx98Fys2PFZ1dxxsJkdPbOecaBqmcWGqBVBIkEiKkoQJ5IJJBTbY8aRgBMwjxgVJoJJwDScnYUrOy2PBamfv/CS4zz9zE+IAIfPuQQzPzyrmq9u1e3RM+qWeaipNCCiE4DjbjgF94xZQj2htpjeK84ImqlIUpO9JllgEKgJDFpfOoh8paN8chbOeQ4g/OTq97PdLXSz3fjiVjO7/sx6g804ow41QWuCrjQPBB3bkZQgAkpBJOMojmIEjIgRKV6RpaYIZHGKQlK5OIv0L8bul8eOfsxjDJGD8613z6rmhq1qxkY1o9YKFUFEEED2xqoE1MNoWgPBwQZMl2SrSbQM9NQyUMlA5S3Rlcqd6E50RdRvPMvn9yE8qP9+9WWtQvXxzdic8xrwPaJrUYJGoq4sVBM1Ukuiln4UBipJVJrGoHUhrARB0XMQ/cizbSd61uaZlzUhXjuvWmqt9oOyAmUPEabnkSDV2j0Rp2YgksZdQpoCtRBwAiN4cKYdw4m3pNnbY9Tw4SZUh9tQEda+ld1WpmThgoivU8fYDbgEggRcleiZ6BOoFNRXLQQX1Eelggsgh8GPx6DhWB2iRgkj2OTuVX8dBzJtMx93BAKK4hIwUUSEID4BGspecWTfDwSCw+UxqByJoqPf9+xmYWQg7H3u+5Poyk3o5BZDxRBxxH29fdkF3YcBXKHgF+m+hLxn4OvbnnbPzMkjsm/+f5cXec2ye6ZfpO6+OX7pE8TqPj1zcN/7Zu8CDm44Bu6skrKjuOs0FlxWCJNMYxMOqLlR3DAvsAKaZo6t7+u7r6nhjN/5RKIQKESKhykhjeIINgJi+0m4Fiuns2WKZQybtJ2AfAWzGu/ayt0wz5gXimeKQyKSPI4kiCMhDxSgyLiOiY9kxnW2NVs+1ZeBbAmzhLmtgd0d8z1k1mIUTxQbKD5gnkmuDN6QvCF5TaIie0UmkIU1id3WcfwZHUo61eWB3gayDdOiZR+JXUuMWmcbyGWcny2RzOi8obeWwRsGrxm8JlGPBHCyOJmpJkwkHHs09pnfL1L60KLqtBKZtprhU+lVmSq9+xRsBfOMW6L4QLFM7zWdz+l8Ru8tA+10YKlJIiSxkcC6dQqlmJc/xaHIvTuZT7UpHalFUHEqL6iGsfKtM8FEzMdy7J4oXui9mk5CczpGErtEKgacQUZJE3gSwzw/i+dfx2G7e6IcOPALCXIkakGkYx4iwceyq+uENPp+RSI7DN7Q+5ylb7JgJLH0+XRGbOlRerWJwNgmnOwJ83Tvq/7KX2KZb1nJfnfp5YRoda7hFC/MQyGI7Mteow2E4pHkDT2zyfS758HV4bSjolOjF2PYS4KBbN2L5vmHZ7DpsWQnDsvfLj1+Lwufy9LSO2y5M1Mnik8OEJxAoSJRk7xhoKX3+URiztI3WPgGS2/p1OnE6CcSvRQGH+htQfH07dPSP7Lp9ajcNy+9DnG/oMT67qqZHz/QtGxVyjworQqVCIjiPiaaTD1ttZZ+fTIeCXQ+Y6HCQm0tO5LYpmfHlyy9/1nCPi3ICw/99JbxUHrdvxr6Q4depdhTfeGapVeH+imKxwhv6ZnR+5zeN0aNGU2+ZIPON0cX0LBQYSnGQgsLSSzoWdiCHVvQ2fLP2fMtwf2vDz50K6TpVPxj/sn7Ni5iu9l6Tof+yd78yoWFQ0uvWYvVLK1h6e34B8RnY9DZnIW3LAijxpLYkZ6Fd+z4km3bYcd2WNry8ezppsZ5ZMd2+MfTv3xtjbr9/PfwyoFDzPvtq7I2t+Vq/m6pt4hxThVaojao1CANRkORmkwkiTCI00thKYWOzJJR+6V1JE8/z2JfqGgfW9jLPPLg7a9Xe8frHs7j5MVXESxfmLS5KYXmxhQ3z/a4icQNRFtEGlwjJkoRIamTmIKNTE+it57kw0sF+1ah3CkSXkiPf42Htl+3WL/2+vIFJ6ishJ3QXD1o9dEhVCcGbS7ModUcakwrigaKChkoYmQK2XMp5L8V/F7DfuDePYrEcv8f7npdnDcksEvkg9RewquhuayTcHzQeCyJXpFVD2fRzSxCFtkuwqks8mjB/ujYr9y6k0gs9528503X/w/F3eUgyIBI4wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wNS0xMFQxOToyODozMyswMDowMEzeSx4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDUtMTBUMTk6Mjg6MzMrMDA6MDA9g/OiAAAARnRFWHRzb2Z0d2FyZQBJbWFnZU1hZ2ljayA2LjcuOC05IDIwMTQtMDUtMTIgUTE2IGh0dHA6Ly93d3cuaW1hZ2VtYWdpY2sub3Jn3IbtAAAAABh0RVh0VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7LwAAABh0RVh0VGh1bWI6OkltYWdlOjpoZWlnaHQAMTkyDwByhQAAABd0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAAxOTLTrCEIAAAAGXRFWHRUaHVtYjo6TWltZXR5cGUAaW1hZ2UvcG5nP7JWTgAAABd0RVh0VGh1bWI6Ok1UaW1lADE2MjA2NzQ5MTMk8oswAAAAD3RFWHRUaHVtYjo6U2l6ZQAwQkKUoj7sAAAAVnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vbW50bG9nL2Zhdmljb25zLzIwMjEtMDUtMTAvOGIxNDNhYjgwODhkMjBlZThkYmUzOTFhN2NkNmQ3NmQuaWNvLnBuZ9msgG0AAAAASUVORK5CYII=
|
|
2
|
-
`;function qa(e,t){f.useEffect(()=>{if(document){document.title=`${e} - FireCMS`;let c=document.querySelector("link[rel~='icon']");c||(c=document.createElement("link"),c.rel="icon",document.getElementsByTagName("head")[0].appendChild(c)),c.href=t??ja}},[e,t])}function En(e,t){f.useEffect(()=>{if(!document.getElementById(e)){const i=document.createElement("style");i.id=e,i.innerHTML=t,document.head.appendChild(i)}},[e,t])}const ye=({open:e,side:t="bottom",sideOffset:c,onOpenChange:i,title:l,className:a,style:s,tooltipClassName:d,children:u})=>(En("Tooltip",Ja),l?n.jsx(jn.Provider,{delayDuration:250,children:n.jsxs(jn.Root,{open:e,onOpenChange:i,children:[n.jsx(jn.Trigger,{asChild:!0,children:n.jsx("div",{className:a,style:s,children:u})}),n.jsx(jn.Portal,{children:n.jsx(jn.Content,{className:E("TooltipContent","max-w-lg leading-relaxed","z-50 rounded px-3 py-2 text-xs leading-none bg-gray-700 dark:bg-gray-800 bg-opacity-90 font-medium text-gray-50 shadow-2xl select-none duration-400 ease-in transform opacity-100",d),sideOffset:c===void 0?4:c,side:t,children:l})})]})}):n.jsx(n.Fragment,{children:u})),Ja=`
|
|
3
|
-
|
|
4
|
-
.TooltipContent {
|
|
5
|
-
animation-duration: 220ms;
|
|
6
|
-
animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
|
|
7
|
-
will-change: transform, opacity;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.TooltipContent[data-state='delayed-open'][data-side='top'] {
|
|
11
|
-
animation-name: slideDownAndFade;
|
|
12
|
-
}
|
|
13
|
-
.TooltipContent[data-state='delayed-open'][data-side='right'] {
|
|
14
|
-
animation-name: slideLeftAndFade;
|
|
15
|
-
}
|
|
16
|
-
.TooltipContent[data-state='delayed-open'][data-side='bottom'] {
|
|
17
|
-
animation-name: slideUpAndFade;
|
|
18
|
-
}
|
|
19
|
-
.TooltipContent[data-state='delayed-open'][data-side='left'] {
|
|
20
|
-
animation-name: slideRightAndFade;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
@keyframes slideUpAndFade {
|
|
25
|
-
from {
|
|
26
|
-
opacity: 0;
|
|
27
|
-
transform: translateY(4px);
|
|
28
|
-
}
|
|
29
|
-
to {
|
|
30
|
-
opacity: 1;
|
|
31
|
-
transform: translateY(0);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@keyframes slideRightAndFade {
|
|
36
|
-
from {
|
|
37
|
-
opacity: 0;
|
|
38
|
-
transform: translateX(-4px);
|
|
39
|
-
}
|
|
40
|
-
to {
|
|
41
|
-
opacity: 1;
|
|
42
|
-
transform: translateX(0);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
@keyframes slideDownAndFade {
|
|
47
|
-
from {
|
|
48
|
-
opacity: 0;
|
|
49
|
-
transform: translateY(-4px);
|
|
50
|
-
}
|
|
51
|
-
to {
|
|
52
|
-
opacity: 1;
|
|
53
|
-
transform: translateY(0);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
@keyframes slideLeftAndFade {
|
|
58
|
-
from {
|
|
59
|
-
opacity: 0;
|
|
60
|
-
transform: translateX(4px);
|
|
61
|
-
}
|
|
62
|
-
to {
|
|
63
|
-
opacity: 1;
|
|
64
|
-
transform: translateX(0);
|
|
65
|
-
}
|
|
66
|
-
}`;function tc(e){return n.jsx(ye,{...e,tooltipClassName:"!text-red-500 bg-red-50",children:e.children})}const ge="focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-opacity-75 focus-visible:ring-offset-2 focus-visible:ring-offset-transparent",Ar="focus:bg-opacity-70 focus:bg-gray-100 focus:dark:bg-gray-800 focus:dark:bg-opacity-60",_r="z-30 outline-none ring-2 ring-primary ring-opacity-75 ring-offset-2 ring-offset-transparent ",qe="bg-opacity-70 bg-gray-100 dark:bg-gray-800 dark:bg-opacity-60 transition duration-150 ease-in-out",yr="bg-opacity-0 bg-gray-100 dark:bg-gray-800 dark:bg-opacity-0 transition duration-150 ease-in-out",en="bg-opacity-100 dark:bg-opacity-90",ze="hover:bg-opacity-90 dark:hover:bg-opacity-90",ue="border-gray-100 dark:border-gray-800 dark:border-opacity-80",He="bg-white rounded-md dark:bg-gray-950 border dark:border-gray-800 dark:border-opacity-90 border-gray-100",cc="bg-white rounded-md dark:bg-gray-950 dark:border-gray-800 dark:border-opacity-50 transition duration-200 ease-in-out m-1 -p-1 border border-transparent",ic="hover:bg-blue-100 dark:hover:bg-blue-900 hover:bg-opacity-20 dark:hover:bg-opacity-20 hover:ring-2 cursor-pointer",Za="bg-blue-100 dark:bg-blue-900 bg-opacity-30 dark:bg-opacity-10 ring-1 ring-primary ring-opacity-75",ac={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",label:"label",body1:"p",body2:"p",inherit:"p",caption:"p",button:"span"},Xa={inherit:"text-inherit",initial:"text-current",primary:"text-text-primary dark:text-text-primary-dark",secondary:"text-text-secondary dark:text-text-secondary-dark",disabled:"text-text-disabled dark:text-text-disabled-dark",error:"text-red-600 dark:text-red-500"},xa={h1:"text-6xl font-headers font-light",h2:"text-5xl font-headers font-light",h3:"text-4xl font-headers font-normal",h4:"text-3xl font-headers font-normal",h5:"text-2xl font-headers font-normal",h6:"text-xl font-headers font-medium",subtitle1:"text-lg font-headers font-medium",subtitle2:"text-base font-headers font-medium",body1:"text-base",body2:"text-sm",label:"text-sm font-medium text-gray-500",inherit:"text-inherit",caption:"text-xs",button:"text-sm font-medium"};function j({align:e="inherit",color:t="primary",children:c,className:i,component:l,gutterBottom:a=!1,noWrap:s=!1,paragraph:d=!1,variant:u="body1",variantMapping:A=ac,style:_,onClick:g,...y}){const h=l||(d?"p":A[u]||ac[u])||"span",I=E(ge,xa[u],t?Xa[t]:"",e!=="inherit"&&`text-${e}`,a&&"mb-[0.35em]",s&&"truncate",d&&"mb-4",i);return n.jsx(h,{className:I,onClick:g,style:_,...y,children:c})}const hr=["table_rows","video_label","airlines","bento","border_all","border_clear","ac_unit","adjust","align_horizontal_center","album","all_inclusive","all_out","animation","assistant","audiotrack","account_balance_wallet","auto_awesome_mosaic","bolt","brightness_1","breakfast_dining","broken_image","brightness_5","cable","calendar_view_month","catching_pokemon","casino","category","cloud","color_lens","credit_card","earbuds","egg_alt","fiber_smart_record","flag","healing","heat_pump","hive","hub","local_library","local_pizza","memory","outlet","pages","panorama_photosphere","signal_cellular_0_bar","sports_baseball","storm","stairs"],lc=["search","123","360","10k","10mp","11mp","12mp","13mp","14mp","15mp","16mp","17mp","18_up_rating","18mp","19mp","1k","1k_plus","1x_mobiledata","20mp","21mp","22mp","23mp","24mp","2k","2k_plus","2mp","30fps","30fps_select","3d_rotation","3g_mobiledata","3k","3k_plus","3mp","3p","4g_mobiledata","4g_plus_mobiledata","4k","4k_plus","4mp","5g","5k","5k_plus","5mp","60fps","60fps_select","6_ft_apart","6k","6k_plus","6mp","7k","7k_plus","7mp","8k","8k_plus","8mp","9k","9k_plus","9mp","abc","ac_unit","access_alarm","access_alarms","access_time","access_time_filled","accessibility","accessibility_new","accessible","accessible_forward","account_balance","account_balance_wallet","account_box","account_circle","account_tree","ad_units","adb","add","add_a_photo","add_alarm","add_alert","add_box","add_business","add_card","add_chart","add_circle","add_circle_outline","add_comment","add_home","add_home_work","add_ic_call","add_link","add_location","add_location_alt","add_moderator","add_photo_alternate","add_reaction","add_road","add_shopping_cart","add_task","add_to_drive","add_to_home_screen","add_to_photos","add_to_queue","adf_scanner","adjust","admin_panel_settings","ads_click","agriculture","air","airline_seat_flat","airline_seat_flat_angled","airline_seat_individual_suite","airline_seat_legroom_extra","airline_seat_legroom_normal","airline_seat_legroom_reduced","airline_seat_recline_extra","airline_seat_recline_normal","airline_stops","airlines","airplane_ticket","airplanemode_active","airplanemode_inactive","airplay","airport_shuttle","alarm","alarm_add","alarm_off","alarm_on","album","align_horizontal_center","align_horizontal_left","align_horizontal_right","align_vertical_bottom","align_vertical_center","align_vertical_top","all_inbox","all_inclusive","all_out","alt_route","alternate_email","analytics","anchor","android","animation","announcement","aod","apartment","api","app_blocking","app_registration","app_settings_alt","app_shortcut","approval","apps","apps_outage","architecture","archive","area_chart","arrow_back","arrow_back_ios","arrow_back_ios_new","arrow_circle_down","arrow_circle_left","arrow_circle_right","arrow_circle_up","arrow_downward","arrow_drop_down","arrow_drop_down_circle","arrow_drop_up","arrow_forward","arrow_forward_ios","arrow_left","arrow_outward","arrow_right","arrow_right_alt","arrow_upward","art_track","article","aspect_ratio","assessment","assignment","assignment_ind","assignment_late","assignment_return","assignment_returned","assignment_turned_in","assist_walker","assistant","assistant_direction","assistant_photo","assured_workload","atm","attach_email","attach_file","attach_money","attachment","attractions","attribution","audio_file","audiotrack","auto_awesome","auto_awesome_mosaic","auto_awesome_motion","auto_delete","auto_fix_high","auto_fix_normal","auto_fix_off","auto_graph","auto_mode","auto_stories","autofps_select","autorenew","av_timer","baby_changing_station","back_hand","backpack","backspace","backup","backup_table","badge","bakery_dining","balance","balcony","ballot","bar_chart","batch_prediction","bathroom","bathtub","battery_0_bar","battery_1_bar","battery_2_bar","battery_3_bar","battery_4_bar","battery_5_bar","battery_6_bar","battery_alert","battery_charging_full","battery_full","battery_saver","battery_std","battery_unknown","beach_access","bed","bedroom_baby","bedroom_child","bedroom_parent","bedtime","bedtime_off","beenhere","bento","bike_scooter","biotech","blender","blind","blinds","blinds_closed","block","bloodtype","bluetooth","bluetooth_audio","bluetooth_connected","bluetooth_disabled","bluetooth_drive","bluetooth_searching","blur_circular","blur_linear","blur_off","blur_on","bolt","book","book_online","bookmark","bookmark_add","bookmark_added","bookmark_border","bookmark_remove","bookmarks","border_all","border_bottom","border_clear","border_color","border_horizontal","border_inner","border_left","border_outer","border_right","border_style","border_top","border_vertical","boy","branding_watermark","breakfast_dining","brightness_1","brightness_2","brightness_3","brightness_4","brightness_5","brightness_6","brightness_7","brightness_auto","brightness_high","brightness_low","brightness_medium","broadcast_on_home","broadcast_on_personal","broken_image","browse_gallery","browser_not_supported","browser_updated","brunch_dining","brush","bubble_chart","bug_report","build","build_circle","bungalow","burst_mode","bus_alert","business","business_center","cabin","cable","cached","cake","calculate","calendar_month","calendar_today","calendar_view_day","calendar_view_month","calendar_view_week","call","call_end","call_made","call_merge","call_missed","call_missed_outgoing","call_received","call_split","call_to_action","camera","camera_alt","camera_enhance","camera_front","camera_indoor","camera_outdoor","camera_rear","camera_roll","cameraswitch","campaign","cancel","cancel_presentation","cancel_schedule_send","candlestick_chart","car_crash","car_rental","car_repair","card_giftcard","card_membership","card_travel","carpenter","cases","casino","cast","cast_connected","cast_for_education","castle","catching_pokemon","category","celebration","cell_tower","cell_wifi","center_focus_strong","center_focus_weak","chair","chair_alt","chalet","change_circle","change_history","charging_station","chat","chat_bubble","chat_bubble_outline","check","check_box","check_box_outline_blank","check_circle","check_circle_outline","checklist","checklist_rtl","checkroom","chevron_left","chevron_right","child_care","child_friendly","chrome_reader_mode","church","circle","circle_notifications","class","clean_hands","cleaning_services","clear","clear_all","close","close_fullscreen","closed_caption","closed_caption_disabled","closed_caption_off","cloud","cloud_circle","cloud_done","cloud_download","cloud_off","cloud_queue","cloud_sync","cloud_upload","co2","co_present","code","code_off","coffee","coffee_maker","collections","collections_bookmark","color_lens","colorize","comment","comment_bank","comments_disabled","commit","commute","compare","compare_arrows","compass_calibration","compost","compress","computer","confirmation_number","connect_without_contact","connected_tv","connecting_airports","construction","contact_emergency","contact_mail","contact_page","contact_phone","contact_support","contactless","contacts","content_copy","content_cut","content_paste","content_paste_go","content_paste_off","content_paste_search","contrast","control_camera","control_point","control_point_duplicate","cookie","copy_all","copyright","coronavirus","corporate_fare","cottage","countertops","create","create_new_folder","credit_card","credit_card_off","credit_score","crib","crisis_alert","crop","crop_16_9","crop_3_2","crop_5_4","crop_7_5","crop_din","crop_free","crop_landscape","crop_original","crop_portrait","crop_rotate","crop_square","cruelty_free","css","currency_bitcoin","currency_exchange","currency_franc","currency_lira","currency_pound","currency_ruble","currency_rupee","currency_yen","currency_yuan","curtains","curtains_closed","cyclone","dangerous","dark_mode","dashboard","dashboard_customize","data_array","data_exploration","data_object","data_saver_off","data_saver_on","data_thresholding","data_usage","dataset","dataset_linked","date_range","deblur","deck","dehaze","delete","delete_forever","delete_outline","delete_sweep","delivery_dining","density_large","density_medium","density_small","departure_board","description","deselect","design_services","desk","desktop_access_disabled","desktop_mac","desktop_windows","details","developer_board","developer_board_off","developer_mode","device_hub","device_thermostat","device_unknown","devices","devices_fold","devices_other","dialer_sip","dialpad","diamond","difference","dining","dinner_dining","directions","directions_bike","directions_boat","directions_boat_filled","directions_bus","directions_bus_filled","directions_car","directions_car_filled","directions_off","directions_railway","directions_railway_filled","directions_run","directions_subway","directions_subway_filled","directions_transit","directions_transit_filled","directions_walk","dirty_lens","disabled_by_default","disabled_visible","disc_full","discount","display_settings","diversity_1","diversity_2","diversity_3","dns","do_disturb","do_disturb_alt","do_disturb_off","do_disturb_on","do_not_disturb","do_not_disturb_alt","do_not_disturb_off","do_not_disturb_on","do_not_disturb_on_total_silence","do_not_step","do_not_touch","dock","document_scanner","domain","domain_add","domain_disabled","domain_verification","done","done_all","done_outline","donut_large","donut_small","door_back","door_front","door_sliding","doorbell","double_arrow","downhill_skiing","download","download_done","download_for_offline","downloading","drafts","drag_handle","drag_indicator","draw","drive_eta","drive_file_move","drive_file_move_rtl","drive_file_rename_outline","drive_folder_upload","dry","dry_cleaning","duo","dvr","dynamic_feed","dynamic_form","e_mobiledata","earbuds","earbuds_battery","east","edgesensor_high","edgesensor_low","edit","edit_attributes","edit_calendar","edit_location","edit_location_alt","edit_note","edit_notifications","edit_off","edit_road","egg","egg_alt","eject","elderly","elderly_woman","electric_bike","electric_bolt","electric_car","electric_meter","electric_moped","electric_rickshaw","electric_scooter","electrical_services","elevator","email","emergency","emergency_recording","emergency_share","emoji_emotions","emoji_events","emoji_food_beverage","emoji_nature","emoji_objects","emoji_people","emoji_symbols","emoji_transportation","energy_savings_leaf","engineering","enhanced_encryption","equalizer","error","error_outline","escalator","escalator_warning","euro","euro_symbol","ev_station","event","event_available","event_busy","event_note","event_repeat","event_seat","exit_to_app","expand","expand_circle_down","expand_less","expand_more","explicit","explore","explore_off","exposure","exposure_neg_1","exposure_neg_2","exposure_plus_1","exposure_plus_2","exposure_zero","extension","extension_off","face","face_2","face_3","face_4","face_5","face_6","face_retouching_natural","face_retouching_off","fact_check","factory","family_restroom","fast_forward","fast_rewind","fastfood","favorite","favorite_border","fax","featured_play_list","featured_video","feed","feedback","female","fence","festival","fiber_dvr","fiber_manual_record","fiber_new","fiber_pin","fiber_smart_record","file_copy","file_download","file_download_done","file_download_off","file_open","file_present","file_upload","filter","filter_1","filter_2","filter_3","filter_4","filter_5","filter_6","filter_7","filter_8","filter_9","filter_9_plus","filter_alt","filter_alt_off","filter_b_and_w","filter_center_focus","filter_drama","filter_frames","filter_hdr","filter_list","filter_list_off","filter_none","filter_tilt_shift","filter_vintage","find_in_page","find_replace","fingerprint","fire_extinguisher","fire_hydrant_alt","fire_truck","fireplace","first_page","fit_screen","fitbit","fitness_center","flag","flag_circle","flaky","flare","flash_auto","flash_off","flash_on","flashlight_off","flashlight_on","flatware","flight","flight_class","flight_land","flight_takeoff","flip","flip_camera_android","flip_camera_ios","flip_to_back","flip_to_front","flood","fluorescent","flutter_dash","fmd_bad","fmd_good","folder","folder_copy","folder_delete","folder_off","folder_open","folder_shared","folder_special","folder_zip","follow_the_signs","font_download","font_download_off","food_bank","forest","fork_left","fork_right","format_align_center","format_align_justify","format_align_left","format_align_right","format_bold","format_clear","format_color_fill","format_color_reset","format_color_text","format_indent_decrease","format_indent_increase","format_italic","format_line_spacing","format_list_bulleted","format_list_numbered","format_list_numbered_rtl","format_overline","format_paint","format_quote","format_shapes","format_size","format_strikethrough","format_textdirection_l_to_r","format_textdirection_r_to_l","format_underlined","fort","forum","forward","forward_10","forward_30","forward_5","forward_to_inbox","foundation","free_breakfast","free_cancellation","front_hand","fullscreen","fullscreen_exit","functions","g_mobiledata","g_translate","gamepad","games","garage","gas_meter","gavel","generating_tokens","gesture","get_app","gif","gif_box","girl","gite","golf_course","gpp_bad","gpp_good","gpp_maybe","gps_fixed","gps_not_fixed","gps_off","grade","gradient","grading","grain","graphic_eq","grass","grid_3x3","grid_4x4","grid_goldenratio","grid_off","grid_on","grid_view","group","group_add","group_off","group_remove","group_work","groups","groups_2","groups_3","h_mobiledata","h_plus_mobiledata","hail","handshake","handyman","hardware","hd","hdr_auto","hdr_auto_select","hdr_enhanced_select","hdr_off","hdr_off_select","hdr_on","hdr_on_select","hdr_plus","hdr_strong","hdr_weak","headphones","headphones_battery","headset","headset_mic","headset_off","healing","health_and_safety","hearing","hearing_disabled","heart_broken","heat_pump","height","help","help_center","help_outline","hevc","hexagon","hide_image","hide_source","high_quality","highlight","highlight_alt","highlight_off","hiking","history","history_edu","history_toggle_off","hive","hls","hls_off","holiday_village","home","home_max","home_mini","home_repair_service","home_work","horizontal_distribute","horizontal_rule","horizontal_split","hot_tub","hotel","hotel_class","hourglass_bottom","hourglass_disabled","hourglass_empty","hourglass_full","hourglass_top","house","house_siding","houseboat","how_to_reg","how_to_vote","html","http","https","hub","hvac","ice_skating","icecream","image","image_aspect_ratio","image_not_supported","image_search","imagesearch_roller","import_contacts","import_export","important_devices","inbox","incomplete_circle","indeterminate_check_box","info","input","insert_chart","insert_chart_outlined","insert_comment","insert_drive_file","insert_emoticon","insert_invitation","insert_link","insert_page_break","insert_photo","insights","install_desktop","install_mobile","integration_instructions","interests","interpreter_mode","inventory","inventory_2","invert_colors","invert_colors_off","ios_share","iron","iso","javascript","join_full","join_inner","join_left","join_right","kayaking","kebab_dining","key","key_off","keyboard","keyboard_alt","keyboard_arrow_down","keyboard_arrow_left","keyboard_arrow_right","keyboard_arrow_up","keyboard_backspace","keyboard_capslock","keyboard_command_key","keyboard_control_key","keyboard_double_arrow_down","keyboard_double_arrow_left","keyboard_double_arrow_right","keyboard_double_arrow_up","keyboard_hide","keyboard_option_key","keyboard_return","keyboard_tab","keyboard_voice","king_bed","kitchen","kitesurfing","label","label_important","label_off","lan","landscape","landslide","language","laptop","laptop_chromebook","laptop_mac","laptop_windows","last_page","launch","layers","layers_clear","leaderboard","leak_add","leak_remove","legend_toggle","lens","lens_blur","library_add","library_add_check","library_books","library_music","light","light_mode","lightbulb","lightbulb_circle","line_axis","line_style","line_weight","linear_scale","link","link_off","linked_camera","liquor","list","list_alt","live_help","live_tv","living","local_activity","local_airport","local_atm","local_bar","local_cafe","local_car_wash","local_convenience_store","local_dining","local_drink","local_fire_department","local_florist","local_gas_station","local_grocery_store","local_hospital","local_hotel","local_laundry_service","local_library","local_mall","local_movies","local_offer","local_parking","local_pharmacy","local_phone","local_pizza","local_play","local_police","local_post_office","local_printshop","local_see","local_shipping","local_taxi","location_city","location_disabled","location_off","location_on","location_searching","lock","lock_clock","lock_open","lock_person","lock_reset","login","logo_dev","logout","looks","looks_3","looks_4","looks_5","looks_6","looks_one","looks_two","loop","loupe","low_priority","loyalty","lte_mobiledata","lte_plus_mobiledata","luggage","lunch_dining","lyrics","macro_off","mail","mail_lock","mail_outline","male","man","man_2","man_3","man_4","manage_accounts","manage_history","manage_search","map","maps_home_work","maps_ugc","margin","mark_as_unread","mark_chat_read","mark_chat_unread","mark_email_read","mark_email_unread","mark_unread_chat_alt","markunread","markunread_mailbox","masks","maximize","media_bluetooth_off","media_bluetooth_on","mediation","medical_information","medical_services","medication","medication_liquid","meeting_room","memory","menu","menu_book","menu_open","merge","merge_type","message","mic","mic_external_off","mic_external_on","mic_none","mic_off","microwave","military_tech","minimize","minor_crash","miscellaneous_services","missed_video_call","mms","mobile_friendly","mobile_off","mobile_screen_share","mobiledata_off","mode","mode_comment","mode_edit","mode_edit_outline","mode_fan_off","mode_night","mode_of_travel","mode_standby","model_training","monetization_on","money","money_off","money_off_csred","monitor","monitor_heart","monitor_weight","monochrome_photos","mood","mood_bad","moped","more","more_horiz","more_time","more_vert","mosque","motion_photos_auto","motion_photos_off","motion_photos_on","motion_photos_pause","motion_photos_paused","mouse","move_down","move_to_inbox","move_up","movie","movie_creation","movie_filter","moving","mp","multiline_chart","multiple_stop","museum","music_note","music_off","music_video","my_location","nat","nature","nature_people","navigate_before","navigate_next","navigation","near_me","near_me_disabled","nearby_error","nearby_off","nest_cam_wired_stand","network_cell","network_check","network_locked","network_ping","network_wifi","network_wifi_1_bar","network_wifi_2_bar","network_wifi_3_bar","new_label","new_releases","newspaper","next_plan","next_week","nfc","night_shelter","nightlife","nightlight","nightlight_round","nights_stay","no_accounts","no_adult_content","no_backpack","no_cell","no_crash","no_drinks","no_encryption","no_encryption_gmailerrorred","no_flash","no_food","no_luggage","no_meals","no_meeting_room","no_photography","no_sim","no_stroller","no_transfer","noise_aware","noise_control_off","nordic_walking","north","north_east","north_west","not_accessible","not_interested","not_listed_location","not_started","note","note_add","note_alt","notes","notification_add","notification_important","notifications","notifications_active","notifications_none","notifications_off","notifications_paused","numbers","offline_bolt","offline_pin","offline_share","oil_barrel","on_device_training","ondemand_video","online_prediction","opacity","open_in_browser","open_in_full","open_in_new","open_in_new_off","open_with","other_houses","outbound","outbox","outdoor_grill","outlet","outlined_flag","output","padding","pages","pageview","paid","palette","pan_tool","pan_tool_alt","panorama","panorama_fish_eye","panorama_horizontal","panorama_horizontal_select","panorama_photosphere","panorama_photosphere_select","panorama_vertical","panorama_vertical_select","panorama_wide_angle","panorama_wide_angle_select","paragliding","park","party_mode","password","pattern","pause","pause_circle","pause_circle_filled","pause_circle_outline","pause_presentation","payment","payments","pedal_bike","pending","pending_actions","pentagon","people","people_alt","people_outline","percent","perm_camera_mic","perm_contact_calendar","perm_data_setting","perm_device_information","perm_identity","perm_media","perm_phone_msg","perm_scan_wifi","person","person_2","person_3","person_4","person_add","person_add_alt","person_add_alt_1","person_add_disabled","person_off","person_outline","person_pin","person_pin_circle","person_remove","person_remove_alt_1","person_search","personal_injury","personal_video","pest_control","pest_control_rodent","pets","phishing","phone","phone_android","phone_bluetooth_speaker","phone_callback","phone_disabled","phone_enabled","phone_forwarded","phone_iphone","phone_locked","phone_missed","phone_paused","phonelink","phonelink_erase","phonelink_lock","phonelink_off","phonelink_ring","phonelink_setup","photo","photo_album","photo_camera","photo_camera_back","photo_camera_front","photo_filter","photo_library","photo_size_select_actual","photo_size_select_large","photo_size_select_small","php","piano","piano_off","picture_as_pdf","picture_in_picture","picture_in_picture_alt","pie_chart","pie_chart_outline","pin","pin_drop","pin_end","pin_invoke","pinch","pivot_table_chart","pix","place","plagiarism","play_arrow","play_circle","play_circle_filled","play_circle_outline","play_disabled","play_for_work","play_lesson","playlist_add","playlist_add_check","playlist_add_check_circle","playlist_add_circle","playlist_play","playlist_remove","plumbing","plus_one","podcasts","point_of_sale","policy","poll","polyline","polymer","pool","portable_wifi_off","portrait","post_add","power","power_input","power_off","power_settings_new","precision_manufacturing","pregnant_woman","present_to_all","preview","price_change","price_check","print","print_disabled","priority_high","privacy_tip","private_connectivity","production_quantity_limits","propane","propane_tank","psychology","psychology_alt","public","public_off","publish","published_with_changes","punch_clock","push_pin","qr_code","qr_code_2","qr_code_scanner","query_builder","query_stats","question_answer","question_mark","queue","queue_music","queue_play_next","quickreply","quiz","r_mobiledata","radar","radio","radio_button_checked","radio_button_unchecked","railway_alert","ramen_dining","ramp_left","ramp_right","rate_review","raw_off","raw_on","read_more","real_estate_agent","receipt","receipt_long","recent_actors","recommend","record_voice_over","rectangle","recycling","redeem","redo","reduce_capacity","refresh","remember_me","remove","remove_circle","remove_circle_outline","remove_done","remove_from_queue","remove_moderator","remove_red_eye","remove_road","remove_shopping_cart","reorder","repartition","repeat","repeat_on","repeat_one","repeat_one_on","replay","replay_10","replay_30","replay_5","replay_circle_filled","reply","reply_all","report","report_gmailerrorred","report_off","report_problem","request_page","request_quote","reset_tv","restart_alt","restaurant","restaurant_menu","restore","restore_from_trash","restore_page","reviews","rice_bowl","ring_volume","rocket","rocket_launch","roller_shades","roller_shades_closed","roller_skating","roofing","room","room_preferences","room_service","rotate_90_degrees_ccw","rotate_90_degrees_cw","rotate_left","rotate_right","roundabout_left","roundabout_right","rounded_corner","route","router","rowing","rss_feed","rsvp","rtt","rule","rule_folder","run_circle","running_with_errors","rv_hookup","safety_check","safety_divider","sailing","sanitizer","satellite","satellite_alt","save","save_alt","save_as","saved_search","savings","scale","scanner","scatter_plot","schedule","schedule_send","schema","school","science","score","scoreboard","screen_lock_landscape","screen_lock_portrait","screen_lock_rotation","screen_rotation","screen_rotation_alt","screen_search_desktop","screen_share","screenshot","screenshot_monitor","scuba_diving","sd","sd_card","sd_card_alert","sd_storage","search","search_off","security","security_update","security_update_good","security_update_warning","segment","select_all","self_improvement","sell","send","send_and_archive","send_time_extension","send_to_mobile","sensor_door","sensor_occupied","sensor_window","sensors","sensors_off","sentiment_dissatisfied","sentiment_neutral","sentiment_satisfied","sentiment_satisfied_alt","sentiment_very_dissatisfied","sentiment_very_satisfied","set_meal","settings","settings_accessibility","settings_applications","settings_backup_restore","settings_bluetooth","settings_brightness","settings_cell","settings_ethernet","settings_input_antenna","settings_input_component","settings_input_composite","settings_input_hdmi","settings_input_svideo","settings_overscan","settings_phone","settings_power","settings_remote","settings_suggest","settings_system_daydream","settings_voice","severe_cold","shape_line","share","share_location","shield","shield_moon","shop","shop_2","shop_two","shopping_bag","shopping_basket","shopping_cart","shopping_cart_checkout","short_text","shortcut","show_chart","shower","shuffle","shuffle_on","shutter_speed","sick","sign_language","signal_cellular_0_bar","signal_cellular_4_bar","signal_cellular_alt","signal_cellular_alt_1_bar","signal_cellular_alt_2_bar","signal_cellular_connected_no_internet_0_bar","signal_cellular_connected_no_internet_4_bar","signal_cellular_no_sim","signal_cellular_nodata","signal_cellular_null","signal_cellular_off","signal_wifi_0_bar","signal_wifi_4_bar","signal_wifi_4_bar_lock","signal_wifi_bad","signal_wifi_connected_no_internet_4","signal_wifi_off","signal_wifi_statusbar_4_bar","signal_wifi_statusbar_connected_no_internet_4","signal_wifi_statusbar_null","signpost","sim_card","sim_card_alert","sim_card_download","single_bed","sip","skateboarding","skip_next","skip_previous","sledding","slideshow","slow_motion_video","smart_button","smart_display","smart_screen","smart_toy","smartphone","smoke_free","smoking_rooms","sms","sms_failed","snippet_folder","snooze","snowboarding","snowmobile","snowshoeing","soap","social_distance","solar_power","sort","sort_by_alpha","sos","soup_kitchen","source","south","south_america","south_east","south_west","spa","space_bar","space_dashboard","spatial_audio","spatial_audio_off","spatial_tracking","speaker","speaker_group","speaker_notes","speaker_notes_off","speaker_phone","speed","spellcheck","splitscreen","spoke","sports","sports_bar","sports_baseball","sports_basketball","sports_cricket","sports_esports","sports_football","sports_golf","sports_gymnastics","sports_handball","sports_hockey","sports_kabaddi","sports_martial_arts","sports_mma","sports_motorsports","sports_rugby","sports_score","sports_soccer","sports_tennis","sports_volleyball","square","square_foot","ssid_chart","stacked_bar_chart","stacked_line_chart","stadium","stairs","star","star_border","star_border_purple500","star_half","star_outline","star_purple500","star_rate","stars","start","stay_current_landscape","stay_current_portrait","stay_primary_landscape","stay_primary_portrait","sticky_note_2","stop","stop_circle","stop_screen_share","storage","store","store_mall_directory","storefront","storm","straight","straighten","stream","streetview","strikethrough_s","stroller","style","subdirectory_arrow_left","subdirectory_arrow_right","subject","subscript","subscriptions","subtitles","subtitles_off","subway","summarize","superscript","supervised_user_circle","supervisor_account","support","support_agent","surfing","surround_sound","swap_calls","swap_horiz","swap_horizontal_circle","swap_vert","swap_vertical_circle","swipe","swipe_down","swipe_down_alt","swipe_left","swipe_left_alt","swipe_right","swipe_right_alt","swipe_up","swipe_up_alt","swipe_vertical","switch_access_shortcut","switch_access_shortcut_add","switch_account","switch_camera","switch_left","switch_right","switch_video","synagogue","sync","sync_alt","sync_disabled","sync_lock","sync_problem","system_security_update","system_security_update_good","system_security_update_warning","system_update","system_update_alt","tab","tab_unselected","table_bar","table_chart","table_restaurant","table_rows","table_view","tablet","tablet_android","tablet_mac","tag","tag_faces","takeout_dining","tap_and_play","tapas","task","task_alt","taxi_alert","temple_buddhist","temple_hindu","terminal","terrain","text_decrease","text_fields","text_format","text_increase","text_rotate_up","text_rotate_vertical","text_rotation_angledown","text_rotation_angleup","text_rotation_down","text_rotation_none","text_snippet","textsms","texture","theater_comedy","theaters","thermostat","thermostat_auto","thumb_down","thumb_down_alt","thumb_down_off_alt","thumb_up","thumb_up_alt","thumb_up_off_alt","thumbs_up_down","thunderstorm","time_to_leave","timelapse","timeline","timer","timer_10","timer_10_select","timer_3","timer_3_select","timer_off","tips_and_updates","tire_repair","title","toc","today","toggle_off","toggle_on","token","toll","tonality","topic","tornado","touch_app","tour","toys","track_changes","traffic","train","tram","transcribe","transfer_within_a_station","transform","transgender","transit_enterexit","translate","travel_explore","trending_down","trending_flat","trending_up","trip_origin","troubleshoot","try","tsunami","tty","tune","tungsten","turn_left","turn_right","turn_sharp_left","turn_sharp_right","turn_slight_left","turn_slight_right","turned_in","turned_in_not","tv","tv_off","two_wheeler","type_specimen","u_turn_left","u_turn_right","umbrella","unarchive","undo","unfold_less","unfold_less_double","unfold_more","unfold_more_double","unpublished","unsubscribe","upcoming","update","update_disabled","upgrade","upload","upload_file","usb","usb_off","vaccines","vape_free","vaping_rooms","verified","verified_user","vertical_align_bottom","vertical_align_center","vertical_align_top","vertical_distribute","vertical_shades","vertical_shades_closed","vertical_split","vibration","video_call","video_camera_back","video_camera_front","video_chat","video_file","video_label","video_library","video_settings","video_stable","videocam","videocam_off","videogame_asset","videogame_asset_off","view_agenda","view_array","view_carousel","view_column","view_comfy","view_comfy_alt","view_compact","view_compact_alt","view_cozy","view_day","view_headline","view_in_ar","view_kanban","view_list","view_module","view_quilt","view_sidebar","view_stream","view_timeline","view_week","vignette","villa","visibility","visibility_off","voice_chat","voice_over_off","voicemail","volcano","volume_down","volume_mute","volume_off","volume_up","volunteer_activism","vpn_key","vpn_key_off","vpn_lock","vrpano","wallet","wallpaper","warehouse","warning","warning_amber","wash","watch","watch_later","watch_off","water","water_damage","water_drop","waterfall_chart","waves","waving_hand","wb_auto","wb_cloudy","wb_incandescent","wb_iridescent","wb_shade","wb_sunny","wb_twilight","wc","web","web_asset","web_asset_off","web_stories","webhook","weekend","west","whatshot","wheelchair_pickup","where_to_vote","widgets","width_full","width_normal","width_wide","wifi","wifi_1_bar","wifi_2_bar","wifi_calling","wifi_calling_3","wifi_channel","wifi_find","wifi_lock","wifi_off","wifi_password","wifi_protected_setup","wifi_tethering","wifi_tethering_error","wifi_tethering_off","wind_power","window","wine_bar","woman","woman_2","work","work_history","work_off","work_outline","workspace_premium","workspaces","wrap_text","wrong_location","wysiwyg","yard","youtube_searched_for","zoom_in","zoom_in_map","zoom_out","zoom_out_map"],Ra={inherit:"",primary:"text-primary",success:"text-green-500",warning:"text-yellow-500",secondary:"text-secondary",disabled:"text-disabled dark:text-disabled-dark",error:"text-red-500"};function r({iconKey:e,size:t="medium",color:c,className:i,onClick:l,style:a}){let s;switch(t){case"smallest":s=16;break;case"small":s=20;break;case"medium":s=24;break;case"large":s=28;break;default:s=t}return s||(s=24),n.jsx("span",{style:{fontSize:`${s}px`,display:"block",...a},className:E("material-icons",c?Ra[c]:"","select-none",i),onClick:l,children:e})}function el(e){return n.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:e.className,fill:"currentColor",width:e.size??24,height:e.size??24,viewBox:"0 0 24 24",children:n.jsx("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})})}function sc(e){return n.jsx(r,{...e,iconKey:"search"})}function nl(e){return n.jsx(r,{...e,iconKey:"123"})}function ol(e){return n.jsx(r,{...e,iconKey:"360"})}function rl(e){return n.jsx(r,{...e,iconKey:"10k"})}function tl(e){return n.jsx(r,{...e,iconKey:"10mp"})}function cl(e){return n.jsx(r,{...e,iconKey:"11mp"})}function il(e){return n.jsx(r,{...e,iconKey:"12mp"})}function al(e){return n.jsx(r,{...e,iconKey:"13mp"})}function ll(e){return n.jsx(r,{...e,iconKey:"14mp"})}function sl(e){return n.jsx(r,{...e,iconKey:"15mp"})}function dl(e){return n.jsx(r,{...e,iconKey:"16mp"})}function ul(e){return n.jsx(r,{...e,iconKey:"17mp"})}function fl(e){return n.jsx(r,{...e,iconKey:"18_up_rating"})}function Al(e){return n.jsx(r,{...e,iconKey:"18mp"})}function _l(e){return n.jsx(r,{...e,iconKey:"19mp"})}function yl(e){return n.jsx(r,{...e,iconKey:"1k"})}function hl(e){return n.jsx(r,{...e,iconKey:"1k_plus"})}function gl(e){return n.jsx(r,{...e,iconKey:"1x_mobiledata"})}function Il(e){return n.jsx(r,{...e,iconKey:"20mp"})}function bl(e){return n.jsx(r,{...e,iconKey:"21mp"})}function pl(e){return n.jsx(r,{...e,iconKey:"22mp"})}function wl(e){return n.jsx(r,{...e,iconKey:"23mp"})}function kl(e){return n.jsx(r,{...e,iconKey:"24mp"})}function ml(e){return n.jsx(r,{...e,iconKey:"2k"})}function vl(e){return n.jsx(r,{...e,iconKey:"2k_plus"})}function Kl(e){return n.jsx(r,{...e,iconKey:"2mp"})}function Cl(e){return n.jsx(r,{...e,iconKey:"30fps"})}function Sl(e){return n.jsx(r,{...e,iconKey:"30fps_select"})}function Bl(e){return n.jsx(r,{...e,iconKey:"3d_rotation"})}function El(e){return n.jsx(r,{...e,iconKey:"3g_mobiledata"})}function Fl(e){return n.jsx(r,{...e,iconKey:"3k"})}function Pl(e){return n.jsx(r,{...e,iconKey:"3k_plus"})}function Dl(e){return n.jsx(r,{...e,iconKey:"3mp"})}function Nl(e){return n.jsx(r,{...e,iconKey:"3p"})}function Ml(e){return n.jsx(r,{...e,iconKey:"4g_mobiledata"})}function Tl(e){return n.jsx(r,{...e,iconKey:"4g_plus_mobiledata"})}function Ol(e){return n.jsx(r,{...e,iconKey:"4k"})}function Ll(e){return n.jsx(r,{...e,iconKey:"4k_plus"})}function Ql(e){return n.jsx(r,{...e,iconKey:"4mp"})}function Vl(e){return n.jsx(r,{...e,iconKey:"5g"})}function Wl(e){return n.jsx(r,{...e,iconKey:"5k"})}function Gl(e){return n.jsx(r,{...e,iconKey:"5k_plus"})}function zl(e){return n.jsx(r,{...e,iconKey:"5mp"})}function Hl(e){return n.jsx(r,{...e,iconKey:"60fps"})}function Ul(e){return n.jsx(r,{...e,iconKey:"60fps_select"})}function Yl(e){return n.jsx(r,{...e,iconKey:"6_ft_apart"})}function $l(e){return n.jsx(r,{...e,iconKey:"6k"})}function jl(e){return n.jsx(r,{...e,iconKey:"6k_plus"})}function ql(e){return n.jsx(r,{...e,iconKey:"6mp"})}function Jl(e){return n.jsx(r,{...e,iconKey:"7k"})}function Zl(e){return n.jsx(r,{...e,iconKey:"7k_plus"})}function Xl(e){return n.jsx(r,{...e,iconKey:"7mp"})}function xl(e){return n.jsx(r,{...e,iconKey:"8k"})}function Rl(e){return n.jsx(r,{...e,iconKey:"8k_plus"})}function es(e){return n.jsx(r,{...e,iconKey:"8mp"})}function ns(e){return n.jsx(r,{...e,iconKey:"9k"})}function os(e){return n.jsx(r,{...e,iconKey:"9k_plus"})}function rs(e){return n.jsx(r,{...e,iconKey:"9mp"})}function ts(e){return n.jsx(r,{...e,iconKey:"abc"})}function cs(e){return n.jsx(r,{...e,iconKey:"ac_unit"})}function is(e){return n.jsx(r,{...e,iconKey:"access_alarm"})}function as(e){return n.jsx(r,{...e,iconKey:"access_alarms"})}function ls(e){return n.jsx(r,{...e,iconKey:"access_time"})}function ss(e){return n.jsx(r,{...e,iconKey:"access_time_filled"})}function ds(e){return n.jsx(r,{...e,iconKey:"accessibility"})}function us(e){return n.jsx(r,{...e,iconKey:"accessibility_new"})}function fs(e){return n.jsx(r,{...e,iconKey:"accessible"})}function As(e){return n.jsx(r,{...e,iconKey:"accessible_forward"})}function _s(e){return n.jsx(r,{...e,iconKey:"account_balance"})}function ys(e){return n.jsx(r,{...e,iconKey:"account_balance_wallet"})}function hs(e){return n.jsx(r,{...e,iconKey:"account_box"})}function gs(e){return n.jsx(r,{...e,iconKey:"account_circle"})}function Is(e){return n.jsx(r,{...e,iconKey:"account_tree"})}function bs(e){return n.jsx(r,{...e,iconKey:"ad_units"})}function ps(e){return n.jsx(r,{...e,iconKey:"adb"})}function hn(e){return n.jsx(r,{...e,iconKey:"add"})}function ws(e){return n.jsx(r,{...e,iconKey:"add_a_photo"})}function ks(e){return n.jsx(r,{...e,iconKey:"add_alarm"})}function ms(e){return n.jsx(r,{...e,iconKey:"add_alert"})}function vs(e){return n.jsx(r,{...e,iconKey:"add_box"})}function Ks(e){return n.jsx(r,{...e,iconKey:"add_business"})}function Cs(e){return n.jsx(r,{...e,iconKey:"add_card"})}function Ss(e){return n.jsx(r,{...e,iconKey:"add_chart"})}function Bs(e){return n.jsx(r,{...e,iconKey:"add_circle"})}function Es(e){return n.jsx(r,{...e,iconKey:"add_circle_outline"})}function Fs(e){return n.jsx(r,{...e,iconKey:"add_comment"})}function Ps(e){return n.jsx(r,{...e,iconKey:"add_home"})}function Ds(e){return n.jsx(r,{...e,iconKey:"add_home_work"})}function Ns(e){return n.jsx(r,{...e,iconKey:"add_ic_call"})}function dc(e){return n.jsx(r,{...e,iconKey:"add_link"})}function Ms(e){return n.jsx(r,{...e,iconKey:"add_location"})}function Ts(e){return n.jsx(r,{...e,iconKey:"add_location_alt"})}function Os(e){return n.jsx(r,{...e,iconKey:"add_moderator"})}function Ls(e){return n.jsx(r,{...e,iconKey:"add_photo_alternate"})}function Qs(e){return n.jsx(r,{...e,iconKey:"add_reaction"})}function Vs(e){return n.jsx(r,{...e,iconKey:"add_road"})}function Ws(e){return n.jsx(r,{...e,iconKey:"add_shopping_cart"})}function Gs(e){return n.jsx(r,{...e,iconKey:"add_task"})}function zs(e){return n.jsx(r,{...e,iconKey:"add_to_drive"})}function Hs(e){return n.jsx(r,{...e,iconKey:"add_to_home_screen"})}function Us(e){return n.jsx(r,{...e,iconKey:"add_to_photos"})}function Ys(e){return n.jsx(r,{...e,iconKey:"add_to_queue"})}function $s(e){return n.jsx(r,{...e,iconKey:"adf_scanner"})}function js(e){return n.jsx(r,{...e,iconKey:"adjust"})}function qs(e){return n.jsx(r,{...e,iconKey:"admin_panel_settings"})}function Js(e){return n.jsx(r,{...e,iconKey:"ads_click"})}function Zs(e){return n.jsx(r,{...e,iconKey:"agriculture"})}function Xs(e){return n.jsx(r,{...e,iconKey:"air"})}function xs(e){return n.jsx(r,{...e,iconKey:"airline_seat_flat"})}function Rs(e){return n.jsx(r,{...e,iconKey:"airline_seat_flat_angled"})}function ed(e){return n.jsx(r,{...e,iconKey:"airline_seat_individual_suite"})}function nd(e){return n.jsx(r,{...e,iconKey:"airline_seat_legroom_extra"})}function od(e){return n.jsx(r,{...e,iconKey:"airline_seat_legroom_normal"})}function rd(e){return n.jsx(r,{...e,iconKey:"airline_seat_legroom_reduced"})}function td(e){return n.jsx(r,{...e,iconKey:"airline_seat_recline_extra"})}function cd(e){return n.jsx(r,{...e,iconKey:"airline_seat_recline_normal"})}function id(e){return n.jsx(r,{...e,iconKey:"airline_stops"})}function ad(e){return n.jsx(r,{...e,iconKey:"airlines"})}function ld(e){return n.jsx(r,{...e,iconKey:"airplane_ticket"})}function sd(e){return n.jsx(r,{...e,iconKey:"airplanemode_active"})}function dd(e){return n.jsx(r,{...e,iconKey:"airplanemode_inactive"})}function ud(e){return n.jsx(r,{...e,iconKey:"airplay"})}function fd(e){return n.jsx(r,{...e,iconKey:"airport_shuttle"})}function Ad(e){return n.jsx(r,{...e,iconKey:"alarm"})}function _d(e){return n.jsx(r,{...e,iconKey:"alarm_add"})}function yd(e){return n.jsx(r,{...e,iconKey:"alarm_off"})}function hd(e){return n.jsx(r,{...e,iconKey:"alarm_on"})}function gd(e){return n.jsx(r,{...e,iconKey:"album"})}function Id(e){return n.jsx(r,{...e,iconKey:"align_horizontal_center"})}function bd(e){return n.jsx(r,{...e,iconKey:"align_horizontal_left"})}function pd(e){return n.jsx(r,{...e,iconKey:"align_horizontal_right"})}function wd(e){return n.jsx(r,{...e,iconKey:"align_vertical_bottom"})}function kd(e){return n.jsx(r,{...e,iconKey:"align_vertical_center"})}function md(e){return n.jsx(r,{...e,iconKey:"align_vertical_top"})}function vd(e){return n.jsx(r,{...e,iconKey:"all_inbox"})}function Kd(e){return n.jsx(r,{...e,iconKey:"all_inclusive"})}function Cd(e){return n.jsx(r,{...e,iconKey:"all_out"})}function Sd(e){return n.jsx(r,{...e,iconKey:"alt_route"})}function Bd(e){return n.jsx(r,{...e,iconKey:"alternate_email"})}function Ed(e){return n.jsx(r,{...e,iconKey:"analytics"})}function Fd(e){return n.jsx(r,{...e,iconKey:"anchor"})}function Pd(e){return n.jsx(r,{...e,iconKey:"android"})}function Dd(e){return n.jsx(r,{...e,iconKey:"animation"})}function Nd(e){return n.jsx(r,{...e,iconKey:"announcement"})}function Md(e){return n.jsx(r,{...e,iconKey:"aod"})}function Td(e){return n.jsx(r,{...e,iconKey:"apartment"})}function Od(e){return n.jsx(r,{...e,iconKey:"api"})}function Ld(e){return n.jsx(r,{...e,iconKey:"app_blocking"})}function Qd(e){return n.jsx(r,{...e,iconKey:"app_registration"})}function Vd(e){return n.jsx(r,{...e,iconKey:"app_settings_alt"})}function Wd(e){return n.jsx(r,{...e,iconKey:"app_shortcut"})}function Gd(e){return n.jsx(r,{...e,iconKey:"approval"})}function zd(e){return n.jsx(r,{...e,iconKey:"apps"})}function Hd(e){return n.jsx(r,{...e,iconKey:"apps_outage"})}function Ud(e){return n.jsx(r,{...e,iconKey:"architecture"})}function Yd(e){return n.jsx(r,{...e,iconKey:"archive"})}function $d(e){return n.jsx(r,{...e,iconKey:"area_chart"})}function jd(e){return n.jsx(r,{...e,iconKey:"arrow_back"})}function qd(e){return n.jsx(r,{...e,iconKey:"arrow_back_ios"})}function Jd(e){return n.jsx(r,{...e,iconKey:"arrow_back_ios_new"})}function Zd(e){return n.jsx(r,{...e,iconKey:"arrow_circle_down"})}function Xd(e){return n.jsx(r,{...e,iconKey:"arrow_circle_left"})}function xd(e){return n.jsx(r,{...e,iconKey:"arrow_circle_right"})}function Rd(e){return n.jsx(r,{...e,iconKey:"arrow_circle_up"})}function eu(e){return n.jsx(r,{...e,iconKey:"arrow_downward"})}function gr(e){return n.jsx(r,{...e,iconKey:"arrow_drop_down"})}function nu(e){return n.jsx(r,{...e,iconKey:"arrow_drop_down_circle"})}function ou(e){return n.jsx(r,{...e,iconKey:"arrow_drop_up"})}function uc(e){return n.jsx(r,{...e,iconKey:"arrow_forward"})}function ru(e){return n.jsx(r,{...e,iconKey:"arrow_forward_ios"})}function tu(e){return n.jsx(r,{...e,iconKey:"arrow_left"})}function cu(e){return n.jsx(r,{...e,iconKey:"arrow_outward"})}function iu(e){return n.jsx(r,{...e,iconKey:"arrow_right"})}function au(e){return n.jsx(r,{...e,iconKey:"arrow_right_alt"})}function po(e){return n.jsx(r,{...e,iconKey:"arrow_upward"})}function lu(e){return n.jsx(r,{...e,iconKey:"art_track"})}function su(e){return n.jsx(r,{...e,iconKey:"article"})}function du(e){return n.jsx(r,{...e,iconKey:"aspect_ratio"})}function uu(e){return n.jsx(r,{...e,iconKey:"assessment"})}function fc(e){return n.jsx(r,{...e,iconKey:"assignment"})}function fu(e){return n.jsx(r,{...e,iconKey:"assignment_ind"})}function Au(e){return n.jsx(r,{...e,iconKey:"assignment_late"})}function _u(e){return n.jsx(r,{...e,iconKey:"assignment_return"})}function yu(e){return n.jsx(r,{...e,iconKey:"assignment_returned"})}function hu(e){return n.jsx(r,{...e,iconKey:"assignment_turned_in"})}function gu(e){return n.jsx(r,{...e,iconKey:"assist_walker"})}function Iu(e){return n.jsx(r,{...e,iconKey:"assistant"})}function bu(e){return n.jsx(r,{...e,iconKey:"assistant_direction"})}function pu(e){return n.jsx(r,{...e,iconKey:"assistant_photo"})}function wu(e){return n.jsx(r,{...e,iconKey:"assured_workload"})}function ku(e){return n.jsx(r,{...e,iconKey:"atm"})}function mu(e){return n.jsx(r,{...e,iconKey:"attach_email"})}function vu(e){return n.jsx(r,{...e,iconKey:"attach_file"})}function Ku(e){return n.jsx(r,{...e,iconKey:"attach_money"})}function Cu(e){return n.jsx(r,{...e,iconKey:"attachment"})}function Su(e){return n.jsx(r,{...e,iconKey:"attractions"})}function Bu(e){return n.jsx(r,{...e,iconKey:"attribution"})}function Eu(e){return n.jsx(r,{...e,iconKey:"audio_file"})}function Fu(e){return n.jsx(r,{...e,iconKey:"audiotrack"})}function Pu(e){return n.jsx(r,{...e,iconKey:"auto_awesome"})}function Du(e){return n.jsx(r,{...e,iconKey:"auto_awesome_mosaic"})}function Nu(e){return n.jsx(r,{...e,iconKey:"auto_awesome_motion"})}function Mu(e){return n.jsx(r,{...e,iconKey:"auto_delete"})}function Tu(e){return n.jsx(r,{...e,iconKey:"auto_fix_high"})}function Ou(e){return n.jsx(r,{...e,iconKey:"auto_fix_normal"})}function Lu(e){return n.jsx(r,{...e,iconKey:"auto_fix_off"})}function Qu(e){return n.jsx(r,{...e,iconKey:"auto_graph"})}function Vu(e){return n.jsx(r,{...e,iconKey:"auto_mode"})}function Wu(e){return n.jsx(r,{...e,iconKey:"auto_stories"})}function Gu(e){return n.jsx(r,{...e,iconKey:"autofps_select"})}function zu(e){return n.jsx(r,{...e,iconKey:"autorenew"})}function Hu(e){return n.jsx(r,{...e,iconKey:"av_timer"})}function Uu(e){return n.jsx(r,{...e,iconKey:"baby_changing_station"})}function Yu(e){return n.jsx(r,{...e,iconKey:"back_hand"})}function $u(e){return n.jsx(r,{...e,iconKey:"backpack"})}function ju(e){return n.jsx(r,{...e,iconKey:"backspace"})}function qu(e){return n.jsx(r,{...e,iconKey:"backup"})}function Ju(e){return n.jsx(r,{...e,iconKey:"backup_table"})}function Zu(e){return n.jsx(r,{...e,iconKey:"badge"})}function Xu(e){return n.jsx(r,{...e,iconKey:"bakery_dining"})}function xu(e){return n.jsx(r,{...e,iconKey:"balance"})}function Ru(e){return n.jsx(r,{...e,iconKey:"balcony"})}function Ir(e){return n.jsx(r,{...e,iconKey:"ballot"})}function ef(e){return n.jsx(r,{...e,iconKey:"bar_chart"})}function nf(e){return n.jsx(r,{...e,iconKey:"batch_prediction"})}function of(e){return n.jsx(r,{...e,iconKey:"bathroom"})}function rf(e){return n.jsx(r,{...e,iconKey:"bathtub"})}function tf(e){return n.jsx(r,{...e,iconKey:"battery_0_bar"})}function cf(e){return n.jsx(r,{...e,iconKey:"battery_1_bar"})}function af(e){return n.jsx(r,{...e,iconKey:"battery_2_bar"})}function lf(e){return n.jsx(r,{...e,iconKey:"battery_3_bar"})}function sf(e){return n.jsx(r,{...e,iconKey:"battery_4_bar"})}function df(e){return n.jsx(r,{...e,iconKey:"battery_5_bar"})}function uf(e){return n.jsx(r,{...e,iconKey:"battery_6_bar"})}function ff(e){return n.jsx(r,{...e,iconKey:"battery_alert"})}function Af(e){return n.jsx(r,{...e,iconKey:"battery_charging_full"})}function _f(e){return n.jsx(r,{...e,iconKey:"battery_full"})}function yf(e){return n.jsx(r,{...e,iconKey:"battery_saver"})}function hf(e){return n.jsx(r,{...e,iconKey:"battery_std"})}function gf(e){return n.jsx(r,{...e,iconKey:"battery_unknown"})}function If(e){return n.jsx(r,{...e,iconKey:"beach_access"})}function bf(e){return n.jsx(r,{...e,iconKey:"bed"})}function pf(e){return n.jsx(r,{...e,iconKey:"bedroom_baby"})}function wf(e){return n.jsx(r,{...e,iconKey:"bedroom_child"})}function kf(e){return n.jsx(r,{...e,iconKey:"bedroom_parent"})}function mf(e){return n.jsx(r,{...e,iconKey:"bedtime"})}function vf(e){return n.jsx(r,{...e,iconKey:"bedtime_off"})}function Kf(e){return n.jsx(r,{...e,iconKey:"beenhere"})}function Cf(e){return n.jsx(r,{...e,iconKey:"bento"})}function Sf(e){return n.jsx(r,{...e,iconKey:"bike_scooter"})}function Bf(e){return n.jsx(r,{...e,iconKey:"biotech"})}function Ef(e){return n.jsx(r,{...e,iconKey:"blender"})}function Ff(e){return n.jsx(r,{...e,iconKey:"blind"})}function Pf(e){return n.jsx(r,{...e,iconKey:"blinds"})}function Df(e){return n.jsx(r,{...e,iconKey:"blinds_closed"})}function Nf(e){return n.jsx(r,{...e,iconKey:"block"})}function Mf(e){return n.jsx(r,{...e,iconKey:"bloodtype"})}function Tf(e){return n.jsx(r,{...e,iconKey:"bluetooth"})}function Of(e){return n.jsx(r,{...e,iconKey:"bluetooth_audio"})}function Lf(e){return n.jsx(r,{...e,iconKey:"bluetooth_connected"})}function Qf(e){return n.jsx(r,{...e,iconKey:"bluetooth_disabled"})}function Vf(e){return n.jsx(r,{...e,iconKey:"bluetooth_drive"})}function Wf(e){return n.jsx(r,{...e,iconKey:"bluetooth_searching"})}function Gf(e){return n.jsx(r,{...e,iconKey:"blur_circular"})}function zf(e){return n.jsx(r,{...e,iconKey:"blur_linear"})}function Hf(e){return n.jsx(r,{...e,iconKey:"blur_off"})}function Uf(e){return n.jsx(r,{...e,iconKey:"blur_on"})}function Yf(e){return n.jsx(r,{...e,iconKey:"bolt"})}function $f(e){return n.jsx(r,{...e,iconKey:"book"})}function jf(e){return n.jsx(r,{...e,iconKey:"book_online"})}function qf(e){return n.jsx(r,{...e,iconKey:"bookmark"})}function Jf(e){return n.jsx(r,{...e,iconKey:"bookmark_add"})}function Zf(e){return n.jsx(r,{...e,iconKey:"bookmark_added"})}function Xf(e){return n.jsx(r,{...e,iconKey:"bookmark_border"})}function xf(e){return n.jsx(r,{...e,iconKey:"bookmark_remove"})}function Rf(e){return n.jsx(r,{...e,iconKey:"bookmarks"})}function eA(e){return n.jsx(r,{...e,iconKey:"border_all"})}function nA(e){return n.jsx(r,{...e,iconKey:"border_bottom"})}function oA(e){return n.jsx(r,{...e,iconKey:"border_clear"})}function rA(e){return n.jsx(r,{...e,iconKey:"border_color"})}function tA(e){return n.jsx(r,{...e,iconKey:"border_horizontal"})}function cA(e){return n.jsx(r,{...e,iconKey:"border_inner"})}function iA(e){return n.jsx(r,{...e,iconKey:"border_left"})}function aA(e){return n.jsx(r,{...e,iconKey:"border_outer"})}function lA(e){return n.jsx(r,{...e,iconKey:"border_right"})}function sA(e){return n.jsx(r,{...e,iconKey:"border_style"})}function dA(e){return n.jsx(r,{...e,iconKey:"border_top"})}function uA(e){return n.jsx(r,{...e,iconKey:"border_vertical"})}function fA(e){return n.jsx(r,{...e,iconKey:"boy"})}function AA(e){return n.jsx(r,{...e,iconKey:"branding_watermark"})}function _A(e){return n.jsx(r,{...e,iconKey:"breakfast_dining"})}function yA(e){return n.jsx(r,{...e,iconKey:"brightness_1"})}function hA(e){return n.jsx(r,{...e,iconKey:"brightness_2"})}function gA(e){return n.jsx(r,{...e,iconKey:"brightness_3"})}function IA(e){return n.jsx(r,{...e,iconKey:"brightness_4"})}function bA(e){return n.jsx(r,{...e,iconKey:"brightness_5"})}function pA(e){return n.jsx(r,{...e,iconKey:"brightness_6"})}function wA(e){return n.jsx(r,{...e,iconKey:"brightness_7"})}function kA(e){return n.jsx(r,{...e,iconKey:"brightness_auto"})}function mA(e){return n.jsx(r,{...e,iconKey:"brightness_high"})}function vA(e){return n.jsx(r,{...e,iconKey:"brightness_low"})}function KA(e){return n.jsx(r,{...e,iconKey:"brightness_medium"})}function CA(e){return n.jsx(r,{...e,iconKey:"broadcast_on_home"})}function SA(e){return n.jsx(r,{...e,iconKey:"broadcast_on_personal"})}function BA(e){return n.jsx(r,{...e,iconKey:"broken_image"})}function EA(e){return n.jsx(r,{...e,iconKey:"browse_gallery"})}function FA(e){return n.jsx(r,{...e,iconKey:"browser_not_supported"})}function PA(e){return n.jsx(r,{...e,iconKey:"browser_updated"})}function DA(e){return n.jsx(r,{...e,iconKey:"brunch_dining"})}function NA(e){return n.jsx(r,{...e,iconKey:"brush"})}function MA(e){return n.jsx(r,{...e,iconKey:"bubble_chart"})}function TA(e){return n.jsx(r,{...e,iconKey:"bug_report"})}function OA(e){return n.jsx(r,{...e,iconKey:"build"})}function LA(e){return n.jsx(r,{...e,iconKey:"build_circle"})}function QA(e){return n.jsx(r,{...e,iconKey:"bungalow"})}function VA(e){return n.jsx(r,{...e,iconKey:"burst_mode"})}function WA(e){return n.jsx(r,{...e,iconKey:"bus_alert"})}function GA(e){return n.jsx(r,{...e,iconKey:"business"})}function zA(e){return n.jsx(r,{...e,iconKey:"business_center"})}function HA(e){return n.jsx(r,{...e,iconKey:"cabin"})}function UA(e){return n.jsx(r,{...e,iconKey:"cable"})}function YA(e){return n.jsx(r,{...e,iconKey:"cached"})}function $A(e){return n.jsx(r,{...e,iconKey:"cake"})}function jA(e){return n.jsx(r,{...e,iconKey:"calculate"})}function Ac(e){return n.jsx(r,{...e,iconKey:"calendar_month"})}function qA(e){return n.jsx(r,{...e,iconKey:"calendar_today"})}function JA(e){return n.jsx(r,{...e,iconKey:"calendar_view_day"})}function ZA(e){return n.jsx(r,{...e,iconKey:"calendar_view_month"})}function XA(e){return n.jsx(r,{...e,iconKey:"calendar_view_week"})}function xA(e){return n.jsx(r,{...e,iconKey:"call"})}function RA(e){return n.jsx(r,{...e,iconKey:"call_end"})}function e_(e){return n.jsx(r,{...e,iconKey:"call_made"})}function n_(e){return n.jsx(r,{...e,iconKey:"call_merge"})}function o_(e){return n.jsx(r,{...e,iconKey:"call_missed"})}function r_(e){return n.jsx(r,{...e,iconKey:"call_missed_outgoing"})}function t_(e){return n.jsx(r,{...e,iconKey:"call_received"})}function c_(e){return n.jsx(r,{...e,iconKey:"call_split"})}function i_(e){return n.jsx(r,{...e,iconKey:"call_to_action"})}function a_(e){return n.jsx(r,{...e,iconKey:"camera"})}function l_(e){return n.jsx(r,{...e,iconKey:"camera_alt"})}function s_(e){return n.jsx(r,{...e,iconKey:"camera_enhance"})}function d_(e){return n.jsx(r,{...e,iconKey:"camera_front"})}function u_(e){return n.jsx(r,{...e,iconKey:"camera_indoor"})}function f_(e){return n.jsx(r,{...e,iconKey:"camera_outdoor"})}function A_(e){return n.jsx(r,{...e,iconKey:"camera_rear"})}function __(e){return n.jsx(r,{...e,iconKey:"camera_roll"})}function y_(e){return n.jsx(r,{...e,iconKey:"cameraswitch"})}function h_(e){return n.jsx(r,{...e,iconKey:"campaign"})}function g_(e){return n.jsx(r,{...e,iconKey:"cancel"})}function I_(e){return n.jsx(r,{...e,iconKey:"cancel_presentation"})}function b_(e){return n.jsx(r,{...e,iconKey:"cancel_schedule_send"})}function p_(e){return n.jsx(r,{...e,iconKey:"candlestick_chart"})}function w_(e){return n.jsx(r,{...e,iconKey:"car_crash"})}function k_(e){return n.jsx(r,{...e,iconKey:"car_rental"})}function m_(e){return n.jsx(r,{...e,iconKey:"car_repair"})}function v_(e){return n.jsx(r,{...e,iconKey:"card_giftcard"})}function K_(e){return n.jsx(r,{...e,iconKey:"card_membership"})}function C_(e){return n.jsx(r,{...e,iconKey:"card_travel"})}function S_(e){return n.jsx(r,{...e,iconKey:"carpenter"})}function B_(e){return n.jsx(r,{...e,iconKey:"cases"})}function E_(e){return n.jsx(r,{...e,iconKey:"casino"})}function F_(e){return n.jsx(r,{...e,iconKey:"cast"})}function P_(e){return n.jsx(r,{...e,iconKey:"cast_connected"})}function D_(e){return n.jsx(r,{...e,iconKey:"cast_for_education"})}function N_(e){return n.jsx(r,{...e,iconKey:"castle"})}function M_(e){return n.jsx(r,{...e,iconKey:"catching_pokemon"})}function T_(e){return n.jsx(r,{...e,iconKey:"category"})}function O_(e){return n.jsx(r,{...e,iconKey:"celebration"})}function L_(e){return n.jsx(r,{...e,iconKey:"cell_tower"})}function Q_(e){return n.jsx(r,{...e,iconKey:"cell_wifi"})}function V_(e){return n.jsx(r,{...e,iconKey:"center_focus_strong"})}function W_(e){return n.jsx(r,{...e,iconKey:"center_focus_weak"})}function G_(e){return n.jsx(r,{...e,iconKey:"chair"})}function z_(e){return n.jsx(r,{...e,iconKey:"chair_alt"})}function H_(e){return n.jsx(r,{...e,iconKey:"chalet"})}function U_(e){return n.jsx(r,{...e,iconKey:"change_circle"})}function Y_(e){return n.jsx(r,{...e,iconKey:"change_history"})}function $_(e){return n.jsx(r,{...e,iconKey:"charging_station"})}function j_(e){return n.jsx(r,{...e,iconKey:"chat"})}function q_(e){return n.jsx(r,{...e,iconKey:"chat_bubble"})}function J_(e){return n.jsx(r,{...e,iconKey:"chat_bubble_outline"})}function _c(e){return n.jsx(r,{...e,iconKey:"check"})}function Z_(e){return n.jsx(r,{...e,iconKey:"check_box"})}function X_(e){return n.jsx(r,{...e,iconKey:"check_box_outline_blank"})}function x_(e){return n.jsx(r,{...e,iconKey:"check_circle"})}function R_(e){return n.jsx(r,{...e,iconKey:"check_circle_outline"})}function ey(e){return n.jsx(r,{...e,iconKey:"checklist"})}function ny(e){return n.jsx(r,{...e,iconKey:"checklist_rtl"})}function oy(e){return n.jsx(r,{...e,iconKey:"checkroom"})}function yc(e){return n.jsx(r,{...e,iconKey:"chevron_left"})}function ry(e){return n.jsx(r,{...e,iconKey:"chevron_right"})}function ty(e){return n.jsx(r,{...e,iconKey:"child_care"})}function cy(e){return n.jsx(r,{...e,iconKey:"child_friendly"})}function iy(e){return n.jsx(r,{...e,iconKey:"chrome_reader_mode"})}function ay(e){return n.jsx(r,{...e,iconKey:"church"})}function br(e){return n.jsx(r,{...e,iconKey:"circle"})}function ly(e){return n.jsx(r,{...e,iconKey:"circle_notifications"})}function sy(e){return n.jsx(r,{...e,iconKey:"class"})}function dy(e){return n.jsx(r,{...e,iconKey:"clean_hands"})}function uy(e){return n.jsx(r,{...e,iconKey:"cleaning_services"})}function an(e){return n.jsx(r,{...e,iconKey:"clear"})}function fy(e){return n.jsx(r,{...e,iconKey:"clear_all"})}function pr(e){return n.jsx(r,{...e,iconKey:"close"})}function Ay(e){return n.jsx(r,{...e,iconKey:"close_fullscreen"})}function _y(e){return n.jsx(r,{...e,iconKey:"closed_caption"})}function yy(e){return n.jsx(r,{...e,iconKey:"closed_caption_disabled"})}function hy(e){return n.jsx(r,{...e,iconKey:"closed_caption_off"})}function gy(e){return n.jsx(r,{...e,iconKey:"cloud"})}function Iy(e){return n.jsx(r,{...e,iconKey:"cloud_circle"})}function by(e){return n.jsx(r,{...e,iconKey:"cloud_done"})}function py(e){return n.jsx(r,{...e,iconKey:"cloud_download"})}function wy(e){return n.jsx(r,{...e,iconKey:"cloud_off"})}function ky(e){return n.jsx(r,{...e,iconKey:"cloud_queue"})}function my(e){return n.jsx(r,{...e,iconKey:"cloud_sync"})}function vy(e){return n.jsx(r,{...e,iconKey:"cloud_upload"})}function Ky(e){return n.jsx(r,{...e,iconKey:"co2"})}function Cy(e){return n.jsx(r,{...e,iconKey:"co_present"})}function Sy(e){return n.jsx(r,{...e,iconKey:"code"})}function By(e){return n.jsx(r,{...e,iconKey:"code_off"})}function Ey(e){return n.jsx(r,{...e,iconKey:"coffee"})}function Fy(e){return n.jsx(r,{...e,iconKey:"coffee_maker"})}function Py(e){return n.jsx(r,{...e,iconKey:"collections"})}function Dy(e){return n.jsx(r,{...e,iconKey:"collections_bookmark"})}function Ny(e){return n.jsx(r,{...e,iconKey:"color_lens"})}function My(e){return n.jsx(r,{...e,iconKey:"colorize"})}function Ty(e){return n.jsx(r,{...e,iconKey:"comment"})}function Oy(e){return n.jsx(r,{...e,iconKey:"comment_bank"})}function Ly(e){return n.jsx(r,{...e,iconKey:"comments_disabled"})}function Qy(e){return n.jsx(r,{...e,iconKey:"commit"})}function Vy(e){return n.jsx(r,{...e,iconKey:"commute"})}function Wy(e){return n.jsx(r,{...e,iconKey:"compare"})}function Gy(e){return n.jsx(r,{...e,iconKey:"compare_arrows"})}function zy(e){return n.jsx(r,{...e,iconKey:"compass_calibration"})}function Hy(e){return n.jsx(r,{...e,iconKey:"compost"})}function Uy(e){return n.jsx(r,{...e,iconKey:"compress"})}function Yy(e){return n.jsx(r,{...e,iconKey:"computer"})}function $y(e){return n.jsx(r,{...e,iconKey:"confirmation_number"})}function jy(e){return n.jsx(r,{...e,iconKey:"connect_without_contact"})}function qy(e){return n.jsx(r,{...e,iconKey:"connected_tv"})}function Jy(e){return n.jsx(r,{...e,iconKey:"connecting_airports"})}function Zy(e){return n.jsx(r,{...e,iconKey:"construction"})}function Xy(e){return n.jsx(r,{...e,iconKey:"contact_emergency"})}function xy(e){return n.jsx(r,{...e,iconKey:"contact_mail"})}function Ry(e){return n.jsx(r,{...e,iconKey:"contact_page"})}function eh(e){return n.jsx(r,{...e,iconKey:"contact_phone"})}function nh(e){return n.jsx(r,{...e,iconKey:"contact_support"})}function oh(e){return n.jsx(r,{...e,iconKey:"contactless"})}function rh(e){return n.jsx(r,{...e,iconKey:"contacts"})}function Rn(e){return n.jsx(r,{...e,iconKey:"content_copy"})}function th(e){return n.jsx(r,{...e,iconKey:"content_cut"})}function ch(e){return n.jsx(r,{...e,iconKey:"content_paste"})}function ih(e){return n.jsx(r,{...e,iconKey:"content_paste_go"})}function ah(e){return n.jsx(r,{...e,iconKey:"content_paste_off"})}function lh(e){return n.jsx(r,{...e,iconKey:"content_paste_search"})}function sh(e){return n.jsx(r,{...e,iconKey:"contrast"})}function dh(e){return n.jsx(r,{...e,iconKey:"control_camera"})}function uh(e){return n.jsx(r,{...e,iconKey:"control_point"})}function fh(e){return n.jsx(r,{...e,iconKey:"control_point_duplicate"})}function Ah(e){return n.jsx(r,{...e,iconKey:"cookie"})}function _h(e){return n.jsx(r,{...e,iconKey:"copy_all"})}function yh(e){return n.jsx(r,{...e,iconKey:"copyright"})}function hh(e){return n.jsx(r,{...e,iconKey:"coronavirus"})}function gh(e){return n.jsx(r,{...e,iconKey:"corporate_fare"})}function Ih(e){return n.jsx(r,{...e,iconKey:"cottage"})}function bh(e){return n.jsx(r,{...e,iconKey:"countertops"})}function ph(e){return n.jsx(r,{...e,iconKey:"create"})}function wh(e){return n.jsx(r,{...e,iconKey:"create_new_folder"})}function kh(e){return n.jsx(r,{...e,iconKey:"credit_card"})}function mh(e){return n.jsx(r,{...e,iconKey:"credit_card_off"})}function vh(e){return n.jsx(r,{...e,iconKey:"credit_score"})}function Kh(e){return n.jsx(r,{...e,iconKey:"crib"})}function Ch(e){return n.jsx(r,{...e,iconKey:"crisis_alert"})}function Sh(e){return n.jsx(r,{...e,iconKey:"crop"})}function Bh(e){return n.jsx(r,{...e,iconKey:"crop_16_9"})}function Eh(e){return n.jsx(r,{...e,iconKey:"crop_3_2"})}function Fh(e){return n.jsx(r,{...e,iconKey:"crop_5_4"})}function Ph(e){return n.jsx(r,{...e,iconKey:"crop_7_5"})}function Dh(e){return n.jsx(r,{...e,iconKey:"crop_din"})}function Nh(e){return n.jsx(r,{...e,iconKey:"crop_free"})}function Mh(e){return n.jsx(r,{...e,iconKey:"crop_landscape"})}function Th(e){return n.jsx(r,{...e,iconKey:"crop_original"})}function Oh(e){return n.jsx(r,{...e,iconKey:"crop_portrait"})}function Lh(e){return n.jsx(r,{...e,iconKey:"crop_rotate"})}function Qh(e){return n.jsx(r,{...e,iconKey:"crop_square"})}function Vh(e){return n.jsx(r,{...e,iconKey:"cruelty_free"})}function Wh(e){return n.jsx(r,{...e,iconKey:"css"})}function Gh(e){return n.jsx(r,{...e,iconKey:"currency_bitcoin"})}function zh(e){return n.jsx(r,{...e,iconKey:"currency_exchange"})}function Hh(e){return n.jsx(r,{...e,iconKey:"currency_franc"})}function Uh(e){return n.jsx(r,{...e,iconKey:"currency_lira"})}function Yh(e){return n.jsx(r,{...e,iconKey:"currency_pound"})}function $h(e){return n.jsx(r,{...e,iconKey:"currency_ruble"})}function jh(e){return n.jsx(r,{...e,iconKey:"currency_rupee"})}function qh(e){return n.jsx(r,{...e,iconKey:"currency_yen"})}function Jh(e){return n.jsx(r,{...e,iconKey:"currency_yuan"})}function Zh(e){return n.jsx(r,{...e,iconKey:"curtains"})}function Xh(e){return n.jsx(r,{...e,iconKey:"curtains_closed"})}function xh(e){return n.jsx(r,{...e,iconKey:"cyclone"})}function Rh(e){return n.jsx(r,{...e,iconKey:"dangerous"})}function hc(e){return n.jsx(r,{...e,iconKey:"dark_mode"})}function eg(e){return n.jsx(r,{...e,iconKey:"dashboard"})}function ng(e){return n.jsx(r,{...e,iconKey:"dashboard_customize"})}function og(e){return n.jsx(r,{...e,iconKey:"data_array"})}function rg(e){return n.jsx(r,{...e,iconKey:"data_exploration"})}function tg(e){return n.jsx(r,{...e,iconKey:"data_object"})}function cg(e){return n.jsx(r,{...e,iconKey:"data_saver_off"})}function ig(e){return n.jsx(r,{...e,iconKey:"data_saver_on"})}function ag(e){return n.jsx(r,{...e,iconKey:"data_thresholding"})}function lg(e){return n.jsx(r,{...e,iconKey:"data_usage"})}function sg(e){return n.jsx(r,{...e,iconKey:"dataset"})}function dg(e){return n.jsx(r,{...e,iconKey:"dataset_linked"})}function ug(e){return n.jsx(r,{...e,iconKey:"date_range"})}function fg(e){return n.jsx(r,{...e,iconKey:"deblur"})}function Ag(e){return n.jsx(r,{...e,iconKey:"deck"})}function _g(e){return n.jsx(r,{...e,iconKey:"dehaze"})}function wo(e){return n.jsx(r,{...e,iconKey:"delete"})}function yg(e){return n.jsx(r,{...e,iconKey:"delete_forever"})}function hg(e){return n.jsx(r,{...e,iconKey:"delete_outline"})}function gg(e){return n.jsx(r,{...e,iconKey:"delete_sweep"})}function Ig(e){return n.jsx(r,{...e,iconKey:"delivery_dining"})}function bg(e){return n.jsx(r,{...e,iconKey:"density_large"})}function pg(e){return n.jsx(r,{...e,iconKey:"density_medium"})}function wg(e){return n.jsx(r,{...e,iconKey:"density_small"})}function kg(e){return n.jsx(r,{...e,iconKey:"departure_board"})}function gc(e){return n.jsx(r,{...e,iconKey:"description"})}function mg(e){return n.jsx(r,{...e,iconKey:"deselect"})}function vg(e){return n.jsx(r,{...e,iconKey:"design_services"})}function Kg(e){return n.jsx(r,{...e,iconKey:"desk"})}function Cg(e){return n.jsx(r,{...e,iconKey:"desktop_access_disabled"})}function Sg(e){return n.jsx(r,{...e,iconKey:"desktop_mac"})}function Bg(e){return n.jsx(r,{...e,iconKey:"desktop_windows"})}function Eg(e){return n.jsx(r,{...e,iconKey:"details"})}function Fg(e){return n.jsx(r,{...e,iconKey:"developer_board"})}function Pg(e){return n.jsx(r,{...e,iconKey:"developer_board_off"})}function Dg(e){return n.jsx(r,{...e,iconKey:"developer_mode"})}function Ng(e){return n.jsx(r,{...e,iconKey:"device_hub"})}function Mg(e){return n.jsx(r,{...e,iconKey:"device_thermostat"})}function Tg(e){return n.jsx(r,{...e,iconKey:"device_unknown"})}function Og(e){return n.jsx(r,{...e,iconKey:"devices"})}function Lg(e){return n.jsx(r,{...e,iconKey:"devices_fold"})}function Qg(e){return n.jsx(r,{...e,iconKey:"devices_other"})}function Vg(e){return n.jsx(r,{...e,iconKey:"dialer_sip"})}function Wg(e){return n.jsx(r,{...e,iconKey:"dialpad"})}function Gg(e){return n.jsx(r,{...e,iconKey:"diamond"})}function zg(e){return n.jsx(r,{...e,iconKey:"difference"})}function Hg(e){return n.jsx(r,{...e,iconKey:"dining"})}function Ug(e){return n.jsx(r,{...e,iconKey:"dinner_dining"})}function Yg(e){return n.jsx(r,{...e,iconKey:"directions"})}function $g(e){return n.jsx(r,{...e,iconKey:"directions_bike"})}function jg(e){return n.jsx(r,{...e,iconKey:"directions_boat"})}function qg(e){return n.jsx(r,{...e,iconKey:"directions_boat_filled"})}function Jg(e){return n.jsx(r,{...e,iconKey:"directions_bus"})}function Zg(e){return n.jsx(r,{...e,iconKey:"directions_bus_filled"})}function Xg(e){return n.jsx(r,{...e,iconKey:"directions_car"})}function xg(e){return n.jsx(r,{...e,iconKey:"directions_car_filled"})}function Rg(e){return n.jsx(r,{...e,iconKey:"directions_off"})}function eI(e){return n.jsx(r,{...e,iconKey:"directions_railway"})}function nI(e){return n.jsx(r,{...e,iconKey:"directions_railway_filled"})}function oI(e){return n.jsx(r,{...e,iconKey:"directions_run"})}function rI(e){return n.jsx(r,{...e,iconKey:"directions_subway"})}function tI(e){return n.jsx(r,{...e,iconKey:"directions_subway_filled"})}function cI(e){return n.jsx(r,{...e,iconKey:"directions_transit"})}function iI(e){return n.jsx(r,{...e,iconKey:"directions_transit_filled"})}function aI(e){return n.jsx(r,{...e,iconKey:"directions_walk"})}function lI(e){return n.jsx(r,{...e,iconKey:"dirty_lens"})}function sI(e){return n.jsx(r,{...e,iconKey:"disabled_by_default"})}function dI(e){return n.jsx(r,{...e,iconKey:"disabled_visible"})}function uI(e){return n.jsx(r,{...e,iconKey:"disc_full"})}function fI(e){return n.jsx(r,{...e,iconKey:"discount"})}function AI(e){return n.jsx(r,{...e,iconKey:"display_settings"})}function _I(e){return n.jsx(r,{...e,iconKey:"diversity_1"})}function yI(e){return n.jsx(r,{...e,iconKey:"diversity_2"})}function hI(e){return n.jsx(r,{...e,iconKey:"diversity_3"})}function gI(e){return n.jsx(r,{...e,iconKey:"dns"})}function II(e){return n.jsx(r,{...e,iconKey:"do_disturb"})}function bI(e){return n.jsx(r,{...e,iconKey:"do_disturb_alt"})}function pI(e){return n.jsx(r,{...e,iconKey:"do_disturb_off"})}function wI(e){return n.jsx(r,{...e,iconKey:"do_disturb_on"})}function kI(e){return n.jsx(r,{...e,iconKey:"do_not_disturb"})}function mI(e){return n.jsx(r,{...e,iconKey:"do_not_disturb_alt"})}function vI(e){return n.jsx(r,{...e,iconKey:"do_not_disturb_off"})}function KI(e){return n.jsx(r,{...e,iconKey:"do_not_disturb_on"})}function CI(e){return n.jsx(r,{...e,iconKey:"do_not_disturb_on_total_silence"})}function SI(e){return n.jsx(r,{...e,iconKey:"do_not_step"})}function BI(e){return n.jsx(r,{...e,iconKey:"do_not_touch"})}function EI(e){return n.jsx(r,{...e,iconKey:"dock"})}function FI(e){return n.jsx(r,{...e,iconKey:"document_scanner"})}function PI(e){return n.jsx(r,{...e,iconKey:"domain"})}function DI(e){return n.jsx(r,{...e,iconKey:"domain_add"})}function NI(e){return n.jsx(r,{...e,iconKey:"domain_disabled"})}function MI(e){return n.jsx(r,{...e,iconKey:"domain_verification"})}function TI(e){return n.jsx(r,{...e,iconKey:"done"})}function OI(e){return n.jsx(r,{...e,iconKey:"done_all"})}function LI(e){return n.jsx(r,{...e,iconKey:"done_outline"})}function QI(e){return n.jsx(r,{...e,iconKey:"donut_large"})}function VI(e){return n.jsx(r,{...e,iconKey:"donut_small"})}function WI(e){return n.jsx(r,{...e,iconKey:"door_back"})}function GI(e){return n.jsx(r,{...e,iconKey:"door_front"})}function zI(e){return n.jsx(r,{...e,iconKey:"door_sliding"})}function HI(e){return n.jsx(r,{...e,iconKey:"doorbell"})}function UI(e){return n.jsx(r,{...e,iconKey:"double_arrow"})}function YI(e){return n.jsx(r,{...e,iconKey:"downhill_skiing"})}function $I(e){return n.jsx(r,{...e,iconKey:"download"})}function jI(e){return n.jsx(r,{...e,iconKey:"download_done"})}function qI(e){return n.jsx(r,{...e,iconKey:"download_for_offline"})}function JI(e){return n.jsx(r,{...e,iconKey:"downloading"})}function ZI(e){return n.jsx(r,{...e,iconKey:"drafts"})}function XI(e){return n.jsx(r,{...e,iconKey:"drag_handle"})}function xI(e){return n.jsx(r,{...e,iconKey:"drag_indicator"})}function RI(e){return n.jsx(r,{...e,iconKey:"draw"})}function eb(e){return n.jsx(r,{...e,iconKey:"drive_eta"})}function nb(e){return n.jsx(r,{...e,iconKey:"drive_file_move"})}function ob(e){return n.jsx(r,{...e,iconKey:"drive_file_move_rtl"})}function rb(e){return n.jsx(r,{...e,iconKey:"drive_file_rename_outline"})}function Ic(e){return n.jsx(r,{...e,iconKey:"drive_folder_upload"})}function tb(e){return n.jsx(r,{...e,iconKey:"dry"})}function cb(e){return n.jsx(r,{...e,iconKey:"dry_cleaning"})}function ib(e){return n.jsx(r,{...e,iconKey:"duo"})}function ab(e){return n.jsx(r,{...e,iconKey:"dvr"})}function lb(e){return n.jsx(r,{...e,iconKey:"dynamic_feed"})}function sb(e){return n.jsx(r,{...e,iconKey:"dynamic_form"})}function db(e){return n.jsx(r,{...e,iconKey:"e_mobiledata"})}function ub(e){return n.jsx(r,{...e,iconKey:"earbuds"})}function fb(e){return n.jsx(r,{...e,iconKey:"earbuds_battery"})}function Ab(e){return n.jsx(r,{...e,iconKey:"east"})}function _b(e){return n.jsx(r,{...e,iconKey:"edgesensor_high"})}function yb(e){return n.jsx(r,{...e,iconKey:"edgesensor_low"})}function bc(e){return n.jsx(r,{...e,iconKey:"edit"})}function hb(e){return n.jsx(r,{...e,iconKey:"edit_attributes"})}function gb(e){return n.jsx(r,{...e,iconKey:"edit_calendar"})}function Ib(e){return n.jsx(r,{...e,iconKey:"edit_location"})}function bb(e){return n.jsx(r,{...e,iconKey:"edit_location_alt"})}function pb(e){return n.jsx(r,{...e,iconKey:"edit_note"})}function wb(e){return n.jsx(r,{...e,iconKey:"edit_notifications"})}function kb(e){return n.jsx(r,{...e,iconKey:"edit_off"})}function mb(e){return n.jsx(r,{...e,iconKey:"edit_road"})}function vb(e){return n.jsx(r,{...e,iconKey:"egg"})}function Kb(e){return n.jsx(r,{...e,iconKey:"egg_alt"})}function Cb(e){return n.jsx(r,{...e,iconKey:"eject"})}function Sb(e){return n.jsx(r,{...e,iconKey:"elderly"})}function Bb(e){return n.jsx(r,{...e,iconKey:"elderly_woman"})}function Eb(e){return n.jsx(r,{...e,iconKey:"electric_bike"})}function Fb(e){return n.jsx(r,{...e,iconKey:"electric_bolt"})}function Pb(e){return n.jsx(r,{...e,iconKey:"electric_car"})}function Db(e){return n.jsx(r,{...e,iconKey:"electric_meter"})}function Nb(e){return n.jsx(r,{...e,iconKey:"electric_moped"})}function Mb(e){return n.jsx(r,{...e,iconKey:"electric_rickshaw"})}function Tb(e){return n.jsx(r,{...e,iconKey:"electric_scooter"})}function Ob(e){return n.jsx(r,{...e,iconKey:"electrical_services"})}function Lb(e){return n.jsx(r,{...e,iconKey:"elevator"})}function pc(e){return n.jsx(r,{...e,iconKey:"email"})}function Qb(e){return n.jsx(r,{...e,iconKey:"emergency"})}function Vb(e){return n.jsx(r,{...e,iconKey:"emergency_recording"})}function Wb(e){return n.jsx(r,{...e,iconKey:"emergency_share"})}function Gb(e){return n.jsx(r,{...e,iconKey:"emoji_emotions"})}function zb(e){return n.jsx(r,{...e,iconKey:"emoji_events"})}function Hb(e){return n.jsx(r,{...e,iconKey:"emoji_food_beverage"})}function Ub(e){return n.jsx(r,{...e,iconKey:"emoji_nature"})}function Yb(e){return n.jsx(r,{...e,iconKey:"emoji_objects"})}function $b(e){return n.jsx(r,{...e,iconKey:"emoji_people"})}function jb(e){return n.jsx(r,{...e,iconKey:"emoji_symbols"})}function qb(e){return n.jsx(r,{...e,iconKey:"emoji_transportation"})}function Jb(e){return n.jsx(r,{...e,iconKey:"energy_savings_leaf"})}function Zb(e){return n.jsx(r,{...e,iconKey:"engineering"})}function Xb(e){return n.jsx(r,{...e,iconKey:"enhanced_encryption"})}function xb(e){return n.jsx(r,{...e,iconKey:"equalizer"})}function wr(e){return n.jsx(r,{...e,iconKey:"error"})}function wc(e){return n.jsx(r,{...e,iconKey:"error_outline"})}function Rb(e){return n.jsx(r,{...e,iconKey:"escalator"})}function ep(e){return n.jsx(r,{...e,iconKey:"escalator_warning"})}function np(e){return n.jsx(r,{...e,iconKey:"euro"})}function op(e){return n.jsx(r,{...e,iconKey:"euro_symbol"})}function rp(e){return n.jsx(r,{...e,iconKey:"ev_station"})}function tp(e){return n.jsx(r,{...e,iconKey:"event"})}function cp(e){return n.jsx(r,{...e,iconKey:"event_available"})}function ip(e){return n.jsx(r,{...e,iconKey:"event_busy"})}function ap(e){return n.jsx(r,{...e,iconKey:"event_note"})}function lp(e){return n.jsx(r,{...e,iconKey:"event_repeat"})}function sp(e){return n.jsx(r,{...e,iconKey:"event_seat"})}function dp(e){return n.jsx(r,{...e,iconKey:"exit_to_app"})}function up(e){return n.jsx(r,{...e,iconKey:"expand"})}function fp(e){return n.jsx(r,{...e,iconKey:"expand_circle_down"})}function Ap(e){return n.jsx(r,{...e,iconKey:"expand_less"})}function eo(e){return n.jsx(r,{...e,iconKey:"expand_more"})}function _p(e){return n.jsx(r,{...e,iconKey:"explicit"})}function yp(e){return n.jsx(r,{...e,iconKey:"explore"})}function hp(e){return n.jsx(r,{...e,iconKey:"explore_off"})}function gp(e){return n.jsx(r,{...e,iconKey:"exposure"})}function Ip(e){return n.jsx(r,{...e,iconKey:"exposure_neg_1"})}function bp(e){return n.jsx(r,{...e,iconKey:"exposure_neg_2"})}function pp(e){return n.jsx(r,{...e,iconKey:"exposure_plus_1"})}function wp(e){return n.jsx(r,{...e,iconKey:"exposure_plus_2"})}function kp(e){return n.jsx(r,{...e,iconKey:"exposure_zero"})}function mp(e){return n.jsx(r,{...e,iconKey:"extension"})}function vp(e){return n.jsx(r,{...e,iconKey:"extension_off"})}function Kp(e){return n.jsx(r,{...e,iconKey:"face"})}function Cp(e){return n.jsx(r,{...e,iconKey:"face_2"})}function Sp(e){return n.jsx(r,{...e,iconKey:"face_3"})}function Bp(e){return n.jsx(r,{...e,iconKey:"face_4"})}function Ep(e){return n.jsx(r,{...e,iconKey:"face_5"})}function Fp(e){return n.jsx(r,{...e,iconKey:"face_6"})}function Pp(e){return n.jsx(r,{...e,iconKey:"face_retouching_natural"})}function Dp(e){return n.jsx(r,{...e,iconKey:"face_retouching_off"})}function Np(e){return n.jsx(r,{...e,iconKey:"fact_check"})}function Mp(e){return n.jsx(r,{...e,iconKey:"factory"})}function Tp(e){return n.jsx(r,{...e,iconKey:"family_restroom"})}function Op(e){return n.jsx(r,{...e,iconKey:"fast_forward"})}function Lp(e){return n.jsx(r,{...e,iconKey:"fast_rewind"})}function Qp(e){return n.jsx(r,{...e,iconKey:"fastfood"})}function Vp(e){return n.jsx(r,{...e,iconKey:"favorite"})}function Wp(e){return n.jsx(r,{...e,iconKey:"favorite_border"})}function Gp(e){return n.jsx(r,{...e,iconKey:"fax"})}function zp(e){return n.jsx(r,{...e,iconKey:"featured_play_list"})}function Hp(e){return n.jsx(r,{...e,iconKey:"featured_video"})}function Up(e){return n.jsx(r,{...e,iconKey:"feed"})}function Yp(e){return n.jsx(r,{...e,iconKey:"feedback"})}function $p(e){return n.jsx(r,{...e,iconKey:"female"})}function jp(e){return n.jsx(r,{...e,iconKey:"fence"})}function qp(e){return n.jsx(r,{...e,iconKey:"festival"})}function Jp(e){return n.jsx(r,{...e,iconKey:"fiber_dvr"})}function Zp(e){return n.jsx(r,{...e,iconKey:"fiber_manual_record"})}function Xp(e){return n.jsx(r,{...e,iconKey:"fiber_new"})}function xp(e){return n.jsx(r,{...e,iconKey:"fiber_pin"})}function Rp(e){return n.jsx(r,{...e,iconKey:"fiber_smart_record"})}function kc(e){return n.jsx(r,{...e,iconKey:"file_copy"})}function ew(e){return n.jsx(r,{...e,iconKey:"file_download"})}function nw(e){return n.jsx(r,{...e,iconKey:"file_download_done"})}function ow(e){return n.jsx(r,{...e,iconKey:"file_download_off"})}function rw(e){return n.jsx(r,{...e,iconKey:"file_open"})}function tw(e){return n.jsx(r,{...e,iconKey:"file_present"})}function cw(e){return n.jsx(r,{...e,iconKey:"file_upload"})}function iw(e){return n.jsx(r,{...e,iconKey:"filter"})}function aw(e){return n.jsx(r,{...e,iconKey:"filter_1"})}function lw(e){return n.jsx(r,{...e,iconKey:"filter_2"})}function sw(e){return n.jsx(r,{...e,iconKey:"filter_3"})}function dw(e){return n.jsx(r,{...e,iconKey:"filter_4"})}function uw(e){return n.jsx(r,{...e,iconKey:"filter_5"})}function fw(e){return n.jsx(r,{...e,iconKey:"filter_6"})}function Aw(e){return n.jsx(r,{...e,iconKey:"filter_7"})}function _w(e){return n.jsx(r,{...e,iconKey:"filter_8"})}function yw(e){return n.jsx(r,{...e,iconKey:"filter_9"})}function hw(e){return n.jsx(r,{...e,iconKey:"filter_9_plus"})}function gw(e){return n.jsx(r,{...e,iconKey:"filter_alt"})}function Iw(e){return n.jsx(r,{...e,iconKey:"filter_alt_off"})}function bw(e){return n.jsx(r,{...e,iconKey:"filter_b_and_w"})}function pw(e){return n.jsx(r,{...e,iconKey:"filter_center_focus"})}function ww(e){return n.jsx(r,{...e,iconKey:"filter_drama"})}function kw(e){return n.jsx(r,{...e,iconKey:"filter_frames"})}function mw(e){return n.jsx(r,{...e,iconKey:"filter_hdr"})}function vw(e){return n.jsx(r,{...e,iconKey:"filter_list"})}function mc(e){return n.jsx(r,{...e,iconKey:"filter_list_off"})}function Kw(e){return n.jsx(r,{...e,iconKey:"filter_none"})}function Cw(e){return n.jsx(r,{...e,iconKey:"filter_tilt_shift"})}function Sw(e){return n.jsx(r,{...e,iconKey:"filter_vintage"})}function Bw(e){return n.jsx(r,{...e,iconKey:"find_in_page"})}function Ew(e){return n.jsx(r,{...e,iconKey:"find_replace"})}function Fw(e){return n.jsx(r,{...e,iconKey:"fingerprint"})}function Pw(e){return n.jsx(r,{...e,iconKey:"fire_extinguisher"})}function Dw(e){return n.jsx(r,{...e,iconKey:"fire_hydrant_alt"})}function Nw(e){return n.jsx(r,{...e,iconKey:"fire_truck"})}function Mw(e){return n.jsx(r,{...e,iconKey:"fireplace"})}function Tw(e){return n.jsx(r,{...e,iconKey:"first_page"})}function Ow(e){return n.jsx(r,{...e,iconKey:"fit_screen"})}function Lw(e){return n.jsx(r,{...e,iconKey:"fitbit"})}function Qw(e){return n.jsx(r,{...e,iconKey:"fitness_center"})}function vc(e){return n.jsx(r,{...e,iconKey:"flag"})}function Vw(e){return n.jsx(r,{...e,iconKey:"flag_circle"})}function Ww(e){return n.jsx(r,{...e,iconKey:"flaky"})}function Gw(e){return n.jsx(r,{...e,iconKey:"flare"})}function zw(e){return n.jsx(r,{...e,iconKey:"flash_auto"})}function Hw(e){return n.jsx(r,{...e,iconKey:"flash_off"})}function Uw(e){return n.jsx(r,{...e,iconKey:"flash_on"})}function Yw(e){return n.jsx(r,{...e,iconKey:"flashlight_off"})}function $w(e){return n.jsx(r,{...e,iconKey:"flashlight_on"})}function jw(e){return n.jsx(r,{...e,iconKey:"flatware"})}function qw(e){return n.jsx(r,{...e,iconKey:"flight"})}function Jw(e){return n.jsx(r,{...e,iconKey:"flight_class"})}function Zw(e){return n.jsx(r,{...e,iconKey:"flight_land"})}function Xw(e){return n.jsx(r,{...e,iconKey:"flight_takeoff"})}function xw(e){return n.jsx(r,{...e,iconKey:"flip"})}function Rw(e){return n.jsx(r,{...e,iconKey:"flip_camera_android"})}function ek(e){return n.jsx(r,{...e,iconKey:"flip_camera_ios"})}function nk(e){return n.jsx(r,{...e,iconKey:"flip_to_back"})}function ok(e){return n.jsx(r,{...e,iconKey:"flip_to_front"})}function rk(e){return n.jsx(r,{...e,iconKey:"flood"})}function tk(e){return n.jsx(r,{...e,iconKey:"fluorescent"})}function ck(e){return n.jsx(r,{...e,iconKey:"flutter_dash"})}function ik(e){return n.jsx(r,{...e,iconKey:"fmd_bad"})}function ak(e){return n.jsx(r,{...e,iconKey:"fmd_good"})}function lk(e){return n.jsx(r,{...e,iconKey:"folder"})}function sk(e){return n.jsx(r,{...e,iconKey:"folder_copy"})}function dk(e){return n.jsx(r,{...e,iconKey:"folder_delete"})}function uk(e){return n.jsx(r,{...e,iconKey:"folder_off"})}function fk(e){return n.jsx(r,{...e,iconKey:"folder_open"})}function Ak(e){return n.jsx(r,{...e,iconKey:"folder_shared"})}function _k(e){return n.jsx(r,{...e,iconKey:"folder_special"})}function yk(e){return n.jsx(r,{...e,iconKey:"folder_zip"})}function hk(e){return n.jsx(r,{...e,iconKey:"follow_the_signs"})}function gk(e){return n.jsx(r,{...e,iconKey:"font_download"})}function Ik(e){return n.jsx(r,{...e,iconKey:"font_download_off"})}function bk(e){return n.jsx(r,{...e,iconKey:"food_bank"})}function pk(e){return n.jsx(r,{...e,iconKey:"forest"})}function wk(e){return n.jsx(r,{...e,iconKey:"fork_left"})}function kk(e){return n.jsx(r,{...e,iconKey:"fork_right"})}function mk(e){return n.jsx(r,{...e,iconKey:"format_align_center"})}function vk(e){return n.jsx(r,{...e,iconKey:"format_align_justify"})}function Kk(e){return n.jsx(r,{...e,iconKey:"format_align_left"})}function Ck(e){return n.jsx(r,{...e,iconKey:"format_align_right"})}function Sk(e){return n.jsx(r,{...e,iconKey:"format_bold"})}function Bk(e){return n.jsx(r,{...e,iconKey:"format_clear"})}function Ek(e){return n.jsx(r,{...e,iconKey:"format_color_fill"})}function Fk(e){return n.jsx(r,{...e,iconKey:"format_color_reset"})}function Pk(e){return n.jsx(r,{...e,iconKey:"format_color_text"})}function Dk(e){return n.jsx(r,{...e,iconKey:"format_indent_decrease"})}function Nk(e){return n.jsx(r,{...e,iconKey:"format_indent_increase"})}function Mk(e){return n.jsx(r,{...e,iconKey:"format_italic"})}function Tk(e){return n.jsx(r,{...e,iconKey:"format_line_spacing"})}function Ok(e){return n.jsx(r,{...e,iconKey:"format_list_bulleted"})}function kr(e){return n.jsx(r,{...e,iconKey:"format_list_numbered"})}function Lk(e){return n.jsx(r,{...e,iconKey:"format_list_numbered_rtl"})}function Qk(e){return n.jsx(r,{...e,iconKey:"format_overline"})}function Vk(e){return n.jsx(r,{...e,iconKey:"format_paint"})}function Kc(e){return n.jsx(r,{...e,iconKey:"format_quote"})}function Wk(e){return n.jsx(r,{...e,iconKey:"format_shapes"})}function Gk(e){return n.jsx(r,{...e,iconKey:"format_size"})}function zk(e){return n.jsx(r,{...e,iconKey:"format_strikethrough"})}function Hk(e){return n.jsx(r,{...e,iconKey:"format_textdirection_l_to_r"})}function Uk(e){return n.jsx(r,{...e,iconKey:"format_textdirection_r_to_l"})}function Yk(e){return n.jsx(r,{...e,iconKey:"format_underlined"})}function $k(e){return n.jsx(r,{...e,iconKey:"fort"})}function jk(e){return n.jsx(r,{...e,iconKey:"forum"})}function qk(e){return n.jsx(r,{...e,iconKey:"forward"})}function Jk(e){return n.jsx(r,{...e,iconKey:"forward_10"})}function Zk(e){return n.jsx(r,{...e,iconKey:"forward_30"})}function Xk(e){return n.jsx(r,{...e,iconKey:"forward_5"})}function xk(e){return n.jsx(r,{...e,iconKey:"forward_to_inbox"})}function Rk(e){return n.jsx(r,{...e,iconKey:"foundation"})}function em(e){return n.jsx(r,{...e,iconKey:"free_breakfast"})}function nm(e){return n.jsx(r,{...e,iconKey:"free_cancellation"})}function om(e){return n.jsx(r,{...e,iconKey:"front_hand"})}function rm(e){return n.jsx(r,{...e,iconKey:"fullscreen"})}function tm(e){return n.jsx(r,{...e,iconKey:"fullscreen_exit"})}function Cc(e){return n.jsx(r,{...e,iconKey:"functions"})}function cm(e){return n.jsx(r,{...e,iconKey:"g_mobiledata"})}function im(e){return n.jsx(r,{...e,iconKey:"g_translate"})}function am(e){return n.jsx(r,{...e,iconKey:"gamepad"})}function lm(e){return n.jsx(r,{...e,iconKey:"games"})}function sm(e){return n.jsx(r,{...e,iconKey:"garage"})}function dm(e){return n.jsx(r,{...e,iconKey:"gas_meter"})}function um(e){return n.jsx(r,{...e,iconKey:"gavel"})}function fm(e){return n.jsx(r,{...e,iconKey:"generating_tokens"})}function Am(e){return n.jsx(r,{...e,iconKey:"gesture"})}function _m(e){return n.jsx(r,{...e,iconKey:"get_app"})}function ym(e){return n.jsx(r,{...e,iconKey:"gif"})}function hm(e){return n.jsx(r,{...e,iconKey:"gif_box"})}function gm(e){return n.jsx(r,{...e,iconKey:"girl"})}function Im(e){return n.jsx(r,{...e,iconKey:"gite"})}function bm(e){return n.jsx(r,{...e,iconKey:"golf_course"})}function pm(e){return n.jsx(r,{...e,iconKey:"gpp_bad"})}function wm(e){return n.jsx(r,{...e,iconKey:"gpp_good"})}function km(e){return n.jsx(r,{...e,iconKey:"gpp_maybe"})}function mm(e){return n.jsx(r,{...e,iconKey:"gps_fixed"})}function vm(e){return n.jsx(r,{...e,iconKey:"gps_not_fixed"})}function Km(e){return n.jsx(r,{...e,iconKey:"gps_off"})}function Cm(e){return n.jsx(r,{...e,iconKey:"grade"})}function Sm(e){return n.jsx(r,{...e,iconKey:"gradient"})}function Bm(e){return n.jsx(r,{...e,iconKey:"grading"})}function Em(e){return n.jsx(r,{...e,iconKey:"grain"})}function Fm(e){return n.jsx(r,{...e,iconKey:"graphic_eq"})}function Pm(e){return n.jsx(r,{...e,iconKey:"grass"})}function Dm(e){return n.jsx(r,{...e,iconKey:"grid_3x3"})}function Nm(e){return n.jsx(r,{...e,iconKey:"grid_4x4"})}function Mm(e){return n.jsx(r,{...e,iconKey:"grid_goldenratio"})}function Tm(e){return n.jsx(r,{...e,iconKey:"grid_off"})}function Om(e){return n.jsx(r,{...e,iconKey:"grid_on"})}function Lm(e){return n.jsx(r,{...e,iconKey:"grid_view"})}function Qm(e){return n.jsx(r,{...e,iconKey:"group"})}function Vm(e){return n.jsx(r,{...e,iconKey:"group_add"})}function Wm(e){return n.jsx(r,{...e,iconKey:"group_off"})}function Gm(e){return n.jsx(r,{...e,iconKey:"group_remove"})}function zm(e){return n.jsx(r,{...e,iconKey:"group_work"})}function Hm(e){return n.jsx(r,{...e,iconKey:"groups"})}function Um(e){return n.jsx(r,{...e,iconKey:"groups_2"})}function Ym(e){return n.jsx(r,{...e,iconKey:"groups_3"})}function $m(e){return n.jsx(r,{...e,iconKey:"h_mobiledata"})}function jm(e){return n.jsx(r,{...e,iconKey:"h_plus_mobiledata"})}function qm(e){return n.jsx(r,{...e,iconKey:"hail"})}function Jm(e){return n.jsx(r,{...e,iconKey:"handshake"})}function Zm(e){return n.jsx(r,{...e,iconKey:"handyman"})}function Xm(e){return n.jsx(r,{...e,iconKey:"hardware"})}function xm(e){return n.jsx(r,{...e,iconKey:"hd"})}function Rm(e){return n.jsx(r,{...e,iconKey:"hdr_auto"})}function ev(e){return n.jsx(r,{...e,iconKey:"hdr_auto_select"})}function nv(e){return n.jsx(r,{...e,iconKey:"hdr_enhanced_select"})}function ov(e){return n.jsx(r,{...e,iconKey:"hdr_off"})}function rv(e){return n.jsx(r,{...e,iconKey:"hdr_off_select"})}function tv(e){return n.jsx(r,{...e,iconKey:"hdr_on"})}function cv(e){return n.jsx(r,{...e,iconKey:"hdr_on_select"})}function iv(e){return n.jsx(r,{...e,iconKey:"hdr_plus"})}function av(e){return n.jsx(r,{...e,iconKey:"hdr_strong"})}function lv(e){return n.jsx(r,{...e,iconKey:"hdr_weak"})}function sv(e){return n.jsx(r,{...e,iconKey:"headphones"})}function dv(e){return n.jsx(r,{...e,iconKey:"headphones_battery"})}function uv(e){return n.jsx(r,{...e,iconKey:"headset"})}function fv(e){return n.jsx(r,{...e,iconKey:"headset_mic"})}function Av(e){return n.jsx(r,{...e,iconKey:"headset_off"})}function _v(e){return n.jsx(r,{...e,iconKey:"healing"})}function yv(e){return n.jsx(r,{...e,iconKey:"health_and_safety"})}function hv(e){return n.jsx(r,{...e,iconKey:"hearing"})}function gv(e){return n.jsx(r,{...e,iconKey:"hearing_disabled"})}function Iv(e){return n.jsx(r,{...e,iconKey:"heart_broken"})}function bv(e){return n.jsx(r,{...e,iconKey:"heat_pump"})}function pv(e){return n.jsx(r,{...e,iconKey:"height"})}function wv(e){return n.jsx(r,{...e,iconKey:"help"})}function kv(e){return n.jsx(r,{...e,iconKey:"help_center"})}function mv(e){return n.jsx(r,{...e,iconKey:"help_outline"})}function vv(e){return n.jsx(r,{...e,iconKey:"hevc"})}function Kv(e){return n.jsx(r,{...e,iconKey:"hexagon"})}function Cv(e){return n.jsx(r,{...e,iconKey:"hide_image"})}function Sv(e){return n.jsx(r,{...e,iconKey:"hide_source"})}function Bv(e){return n.jsx(r,{...e,iconKey:"high_quality"})}function Ev(e){return n.jsx(r,{...e,iconKey:"highlight"})}function Fv(e){return n.jsx(r,{...e,iconKey:"highlight_alt"})}function Pv(e){return n.jsx(r,{...e,iconKey:"highlight_off"})}function Dv(e){return n.jsx(r,{...e,iconKey:"hiking"})}function Nv(e){return n.jsx(r,{...e,iconKey:"history"})}function Mv(e){return n.jsx(r,{...e,iconKey:"history_edu"})}function Tv(e){return n.jsx(r,{...e,iconKey:"history_toggle_off"})}function Ov(e){return n.jsx(r,{...e,iconKey:"hive"})}function Lv(e){return n.jsx(r,{...e,iconKey:"hls"})}function Qv(e){return n.jsx(r,{...e,iconKey:"hls_off"})}function Vv(e){return n.jsx(r,{...e,iconKey:"holiday_village"})}function Wv(e){return n.jsx(r,{...e,iconKey:"home"})}function Gv(e){return n.jsx(r,{...e,iconKey:"home_max"})}function zv(e){return n.jsx(r,{...e,iconKey:"home_mini"})}function Hv(e){return n.jsx(r,{...e,iconKey:"home_repair_service"})}function Uv(e){return n.jsx(r,{...e,iconKey:"home_work"})}function Yv(e){return n.jsx(r,{...e,iconKey:"horizontal_distribute"})}function $v(e){return n.jsx(r,{...e,iconKey:"horizontal_rule"})}function jv(e){return n.jsx(r,{...e,iconKey:"horizontal_split"})}function qv(e){return n.jsx(r,{...e,iconKey:"hot_tub"})}function Jv(e){return n.jsx(r,{...e,iconKey:"hotel"})}function Zv(e){return n.jsx(r,{...e,iconKey:"hotel_class"})}function Xv(e){return n.jsx(r,{...e,iconKey:"hourglass_bottom"})}function xv(e){return n.jsx(r,{...e,iconKey:"hourglass_disabled"})}function Rv(e){return n.jsx(r,{...e,iconKey:"hourglass_empty"})}function e0(e){return n.jsx(r,{...e,iconKey:"hourglass_full"})}function n0(e){return n.jsx(r,{...e,iconKey:"hourglass_top"})}function o0(e){return n.jsx(r,{...e,iconKey:"house"})}function r0(e){return n.jsx(r,{...e,iconKey:"house_siding"})}function t0(e){return n.jsx(r,{...e,iconKey:"houseboat"})}function c0(e){return n.jsx(r,{...e,iconKey:"how_to_reg"})}function i0(e){return n.jsx(r,{...e,iconKey:"how_to_vote"})}function a0(e){return n.jsx(r,{...e,iconKey:"html"})}function Sc(e){return n.jsx(r,{...e,iconKey:"http"})}function l0(e){return n.jsx(r,{...e,iconKey:"https"})}function s0(e){return n.jsx(r,{...e,iconKey:"hub"})}function d0(e){return n.jsx(r,{...e,iconKey:"hvac"})}function u0(e){return n.jsx(r,{...e,iconKey:"ice_skating"})}function f0(e){return n.jsx(r,{...e,iconKey:"icecream"})}function A0(e){return n.jsx(r,{...e,iconKey:"image"})}function _0(e){return n.jsx(r,{...e,iconKey:"image_aspect_ratio"})}function y0(e){return n.jsx(r,{...e,iconKey:"image_not_supported"})}function h0(e){return n.jsx(r,{...e,iconKey:"image_search"})}function g0(e){return n.jsx(r,{...e,iconKey:"imagesearch_roller"})}function I0(e){return n.jsx(r,{...e,iconKey:"import_contacts"})}function b0(e){return n.jsx(r,{...e,iconKey:"import_export"})}function p0(e){return n.jsx(r,{...e,iconKey:"important_devices"})}function w0(e){return n.jsx(r,{...e,iconKey:"inbox"})}function k0(e){return n.jsx(r,{...e,iconKey:"incomplete_circle"})}function m0(e){return n.jsx(r,{...e,iconKey:"indeterminate_check_box"})}function Bc(e){return n.jsx(r,{...e,iconKey:"info"})}function v0(e){return n.jsx(r,{...e,iconKey:"input"})}function K0(e){return n.jsx(r,{...e,iconKey:"insert_chart"})}function C0(e){return n.jsx(r,{...e,iconKey:"insert_chart_outlined"})}function S0(e){return n.jsx(r,{...e,iconKey:"insert_comment"})}function B0(e){return n.jsx(r,{...e,iconKey:"insert_drive_file"})}function E0(e){return n.jsx(r,{...e,iconKey:"insert_emoticon"})}function F0(e){return n.jsx(r,{...e,iconKey:"insert_invitation"})}function P0(e){return n.jsx(r,{...e,iconKey:"insert_link"})}function D0(e){return n.jsx(r,{...e,iconKey:"insert_page_break"})}function N0(e){return n.jsx(r,{...e,iconKey:"insert_photo"})}function M0(e){return n.jsx(r,{...e,iconKey:"insights"})}function T0(e){return n.jsx(r,{...e,iconKey:"install_desktop"})}function O0(e){return n.jsx(r,{...e,iconKey:"install_mobile"})}function L0(e){return n.jsx(r,{...e,iconKey:"integration_instructions"})}function Q0(e){return n.jsx(r,{...e,iconKey:"interests"})}function V0(e){return n.jsx(r,{...e,iconKey:"interpreter_mode"})}function W0(e){return n.jsx(r,{...e,iconKey:"inventory"})}function G0(e){return n.jsx(r,{...e,iconKey:"inventory_2"})}function z0(e){return n.jsx(r,{...e,iconKey:"invert_colors"})}function H0(e){return n.jsx(r,{...e,iconKey:"invert_colors_off"})}function U0(e){return n.jsx(r,{...e,iconKey:"ios_share"})}function Y0(e){return n.jsx(r,{...e,iconKey:"iron"})}function $0(e){return n.jsx(r,{...e,iconKey:"iso"})}function j0(e){return n.jsx(r,{...e,iconKey:"javascript"})}function q0(e){return n.jsx(r,{...e,iconKey:"join_full"})}function J0(e){return n.jsx(r,{...e,iconKey:"join_inner"})}function Z0(e){return n.jsx(r,{...e,iconKey:"join_left"})}function X0(e){return n.jsx(r,{...e,iconKey:"join_right"})}function x0(e){return n.jsx(r,{...e,iconKey:"kayaking"})}function R0(e){return n.jsx(r,{...e,iconKey:"kebab_dining"})}function eK(e){return n.jsx(r,{...e,iconKey:"key"})}function nK(e){return n.jsx(r,{...e,iconKey:"key_off"})}function oK(e){return n.jsx(r,{...e,iconKey:"keyboard"})}function rK(e){return n.jsx(r,{...e,iconKey:"keyboard_alt"})}function tK(e){return n.jsx(r,{...e,iconKey:"keyboard_arrow_down"})}function cK(e){return n.jsx(r,{...e,iconKey:"keyboard_arrow_left"})}function iK(e){return n.jsx(r,{...e,iconKey:"keyboard_arrow_right"})}function aK(e){return n.jsx(r,{...e,iconKey:"keyboard_arrow_up"})}function lK(e){return n.jsx(r,{...e,iconKey:"keyboard_backspace"})}function sK(e){return n.jsx(r,{...e,iconKey:"keyboard_capslock"})}function dK(e){return n.jsx(r,{...e,iconKey:"keyboard_command_key"})}function uK(e){return n.jsx(r,{...e,iconKey:"keyboard_control_key"})}function fK(e){return n.jsx(r,{...e,iconKey:"keyboard_double_arrow_down"})}function AK(e){return n.jsx(r,{...e,iconKey:"keyboard_double_arrow_left"})}function _K(e){return n.jsx(r,{...e,iconKey:"keyboard_double_arrow_right"})}function yK(e){return n.jsx(r,{...e,iconKey:"keyboard_double_arrow_up"})}function hK(e){return n.jsx(r,{...e,iconKey:"keyboard_hide"})}function gK(e){return n.jsx(r,{...e,iconKey:"keyboard_option_key"})}function IK(e){return n.jsx(r,{...e,iconKey:"keyboard_return"})}function ko(e){return n.jsx(r,{...e,iconKey:"keyboard_tab"})}function bK(e){return n.jsx(r,{...e,iconKey:"keyboard_voice"})}function pK(e){return n.jsx(r,{...e,iconKey:"king_bed"})}function wK(e){return n.jsx(r,{...e,iconKey:"kitchen"})}function kK(e){return n.jsx(r,{...e,iconKey:"kitesurfing"})}function mK(e){return n.jsx(r,{...e,iconKey:"label"})}function vK(e){return n.jsx(r,{...e,iconKey:"label_important"})}function KK(e){return n.jsx(r,{...e,iconKey:"label_off"})}function CK(e){return n.jsx(r,{...e,iconKey:"lan"})}function SK(e){return n.jsx(r,{...e,iconKey:"landscape"})}function BK(e){return n.jsx(r,{...e,iconKey:"landslide"})}function EK(e){return n.jsx(r,{...e,iconKey:"language"})}function FK(e){return n.jsx(r,{...e,iconKey:"laptop"})}function PK(e){return n.jsx(r,{...e,iconKey:"laptop_chromebook"})}function DK(e){return n.jsx(r,{...e,iconKey:"laptop_mac"})}function NK(e){return n.jsx(r,{...e,iconKey:"laptop_windows"})}function MK(e){return n.jsx(r,{...e,iconKey:"last_page"})}function TK(e){return n.jsx(r,{...e,iconKey:"launch"})}function OK(e){return n.jsx(r,{...e,iconKey:"layers"})}function LK(e){return n.jsx(r,{...e,iconKey:"layers_clear"})}function QK(e){return n.jsx(r,{...e,iconKey:"leaderboard"})}function VK(e){return n.jsx(r,{...e,iconKey:"leak_add"})}function WK(e){return n.jsx(r,{...e,iconKey:"leak_remove"})}function GK(e){return n.jsx(r,{...e,iconKey:"legend_toggle"})}function zK(e){return n.jsx(r,{...e,iconKey:"lens"})}function HK(e){return n.jsx(r,{...e,iconKey:"lens_blur"})}function UK(e){return n.jsx(r,{...e,iconKey:"library_add"})}function YK(e){return n.jsx(r,{...e,iconKey:"library_add_check"})}function $K(e){return n.jsx(r,{...e,iconKey:"library_books"})}function jK(e){return n.jsx(r,{...e,iconKey:"library_music"})}function qK(e){return n.jsx(r,{...e,iconKey:"light"})}function Ec(e){return n.jsx(r,{...e,iconKey:"light_mode"})}function JK(e){return n.jsx(r,{...e,iconKey:"lightbulb"})}function ZK(e){return n.jsx(r,{...e,iconKey:"lightbulb_circle"})}function XK(e){return n.jsx(r,{...e,iconKey:"line_axis"})}function xK(e){return n.jsx(r,{...e,iconKey:"line_style"})}function RK(e){return n.jsx(r,{...e,iconKey:"line_weight"})}function eC(e){return n.jsx(r,{...e,iconKey:"linear_scale"})}function Fc(e){return n.jsx(r,{...e,iconKey:"link"})}function nC(e){return n.jsx(r,{...e,iconKey:"link_off"})}function oC(e){return n.jsx(r,{...e,iconKey:"linked_camera"})}function rC(e){return n.jsx(r,{...e,iconKey:"liquor"})}function Pc(e){return n.jsx(r,{...e,iconKey:"list"})}function Dc(e){return n.jsx(r,{...e,iconKey:"list_alt"})}function tC(e){return n.jsx(r,{...e,iconKey:"live_help"})}function cC(e){return n.jsx(r,{...e,iconKey:"live_tv"})}function iC(e){return n.jsx(r,{...e,iconKey:"living"})}function aC(e){return n.jsx(r,{...e,iconKey:"local_activity"})}function lC(e){return n.jsx(r,{...e,iconKey:"local_airport"})}function sC(e){return n.jsx(r,{...e,iconKey:"local_atm"})}function dC(e){return n.jsx(r,{...e,iconKey:"local_bar"})}function uC(e){return n.jsx(r,{...e,iconKey:"local_cafe"})}function fC(e){return n.jsx(r,{...e,iconKey:"local_car_wash"})}function AC(e){return n.jsx(r,{...e,iconKey:"local_convenience_store"})}function _C(e){return n.jsx(r,{...e,iconKey:"local_dining"})}function yC(e){return n.jsx(r,{...e,iconKey:"local_drink"})}function hC(e){return n.jsx(r,{...e,iconKey:"local_fire_department"})}function gC(e){return n.jsx(r,{...e,iconKey:"local_florist"})}function IC(e){return n.jsx(r,{...e,iconKey:"local_gas_station"})}function bC(e){return n.jsx(r,{...e,iconKey:"local_grocery_store"})}function pC(e){return n.jsx(r,{...e,iconKey:"local_hospital"})}function wC(e){return n.jsx(r,{...e,iconKey:"local_hotel"})}function kC(e){return n.jsx(r,{...e,iconKey:"local_laundry_service"})}function mC(e){return n.jsx(r,{...e,iconKey:"local_library"})}function vC(e){return n.jsx(r,{...e,iconKey:"local_mall"})}function KC(e){return n.jsx(r,{...e,iconKey:"local_movies"})}function CC(e){return n.jsx(r,{...e,iconKey:"local_offer"})}function SC(e){return n.jsx(r,{...e,iconKey:"local_parking"})}function BC(e){return n.jsx(r,{...e,iconKey:"local_pharmacy"})}function EC(e){return n.jsx(r,{...e,iconKey:"local_phone"})}function FC(e){return n.jsx(r,{...e,iconKey:"local_pizza"})}function PC(e){return n.jsx(r,{...e,iconKey:"local_play"})}function DC(e){return n.jsx(r,{...e,iconKey:"local_police"})}function NC(e){return n.jsx(r,{...e,iconKey:"local_post_office"})}function MC(e){return n.jsx(r,{...e,iconKey:"local_printshop"})}function TC(e){return n.jsx(r,{...e,iconKey:"local_see"})}function OC(e){return n.jsx(r,{...e,iconKey:"local_shipping"})}function LC(e){return n.jsx(r,{...e,iconKey:"local_taxi"})}function QC(e){return n.jsx(r,{...e,iconKey:"location_city"})}function VC(e){return n.jsx(r,{...e,iconKey:"location_disabled"})}function WC(e){return n.jsx(r,{...e,iconKey:"location_off"})}function GC(e){return n.jsx(r,{...e,iconKey:"location_on"})}function zC(e){return n.jsx(r,{...e,iconKey:"location_searching"})}function HC(e){return n.jsx(r,{...e,iconKey:"lock"})}function UC(e){return n.jsx(r,{...e,iconKey:"lock_clock"})}function YC(e){return n.jsx(r,{...e,iconKey:"lock_open"})}function $C(e){return n.jsx(r,{...e,iconKey:"lock_person"})}function jC(e){return n.jsx(r,{...e,iconKey:"lock_reset"})}function qC(e){return n.jsx(r,{...e,iconKey:"login"})}function JC(e){return n.jsx(r,{...e,iconKey:"logo_dev"})}function Nc(e){return n.jsx(r,{...e,iconKey:"logout"})}function ZC(e){return n.jsx(r,{...e,iconKey:"looks"})}function XC(e){return n.jsx(r,{...e,iconKey:"looks_3"})}function xC(e){return n.jsx(r,{...e,iconKey:"looks_4"})}function RC(e){return n.jsx(r,{...e,iconKey:"looks_5"})}function eS(e){return n.jsx(r,{...e,iconKey:"looks_6"})}function nS(e){return n.jsx(r,{...e,iconKey:"looks_one"})}function oS(e){return n.jsx(r,{...e,iconKey:"looks_two"})}function rS(e){return n.jsx(r,{...e,iconKey:"loop"})}function tS(e){return n.jsx(r,{...e,iconKey:"loupe"})}function cS(e){return n.jsx(r,{...e,iconKey:"low_priority"})}function iS(e){return n.jsx(r,{...e,iconKey:"loyalty"})}function aS(e){return n.jsx(r,{...e,iconKey:"lte_mobiledata"})}function lS(e){return n.jsx(r,{...e,iconKey:"lte_plus_mobiledata"})}function sS(e){return n.jsx(r,{...e,iconKey:"luggage"})}function dS(e){return n.jsx(r,{...e,iconKey:"lunch_dining"})}function uS(e){return n.jsx(r,{...e,iconKey:"lyrics"})}function fS(e){return n.jsx(r,{...e,iconKey:"macro_off"})}function AS(e){return n.jsx(r,{...e,iconKey:"mail"})}function _S(e){return n.jsx(r,{...e,iconKey:"mail_lock"})}function yS(e){return n.jsx(r,{...e,iconKey:"mail_outline"})}function hS(e){return n.jsx(r,{...e,iconKey:"male"})}function gS(e){return n.jsx(r,{...e,iconKey:"man"})}function IS(e){return n.jsx(r,{...e,iconKey:"man_2"})}function bS(e){return n.jsx(r,{...e,iconKey:"man_3"})}function pS(e){return n.jsx(r,{...e,iconKey:"man_4"})}function wS(e){return n.jsx(r,{...e,iconKey:"manage_accounts"})}function kS(e){return n.jsx(r,{...e,iconKey:"manage_history"})}function mS(e){return n.jsx(r,{...e,iconKey:"manage_search"})}function vS(e){return n.jsx(r,{...e,iconKey:"map"})}function KS(e){return n.jsx(r,{...e,iconKey:"maps_home_work"})}function CS(e){return n.jsx(r,{...e,iconKey:"maps_ugc"})}function SS(e){return n.jsx(r,{...e,iconKey:"margin"})}function BS(e){return n.jsx(r,{...e,iconKey:"mark_as_unread"})}function ES(e){return n.jsx(r,{...e,iconKey:"mark_chat_read"})}function FS(e){return n.jsx(r,{...e,iconKey:"mark_chat_unread"})}function PS(e){return n.jsx(r,{...e,iconKey:"mark_email_read"})}function DS(e){return n.jsx(r,{...e,iconKey:"mark_email_unread"})}function NS(e){return n.jsx(r,{...e,iconKey:"mark_unread_chat_alt"})}function MS(e){return n.jsx(r,{...e,iconKey:"markunread"})}function TS(e){return n.jsx(r,{...e,iconKey:"markunread_mailbox"})}function OS(e){return n.jsx(r,{...e,iconKey:"masks"})}function LS(e){return n.jsx(r,{...e,iconKey:"maximize"})}function QS(e){return n.jsx(r,{...e,iconKey:"media_bluetooth_off"})}function VS(e){return n.jsx(r,{...e,iconKey:"media_bluetooth_on"})}function WS(e){return n.jsx(r,{...e,iconKey:"mediation"})}function GS(e){return n.jsx(r,{...e,iconKey:"medical_information"})}function zS(e){return n.jsx(r,{...e,iconKey:"medical_services"})}function HS(e){return n.jsx(r,{...e,iconKey:"medication"})}function US(e){return n.jsx(r,{...e,iconKey:"medication_liquid"})}function YS(e){return n.jsx(r,{...e,iconKey:"meeting_room"})}function $S(e){return n.jsx(r,{...e,iconKey:"memory"})}function mr(e){return n.jsx(r,{...e,iconKey:"menu"})}function jS(e){return n.jsx(r,{...e,iconKey:"menu_book"})}function qS(e){return n.jsx(r,{...e,iconKey:"menu_open"})}function JS(e){return n.jsx(r,{...e,iconKey:"merge"})}function ZS(e){return n.jsx(r,{...e,iconKey:"merge_type"})}function XS(e){return n.jsx(r,{...e,iconKey:"message"})}function xS(e){return n.jsx(r,{...e,iconKey:"mic"})}function RS(e){return n.jsx(r,{...e,iconKey:"mic_external_off"})}function eB(e){return n.jsx(r,{...e,iconKey:"mic_external_on"})}function nB(e){return n.jsx(r,{...e,iconKey:"mic_none"})}function oB(e){return n.jsx(r,{...e,iconKey:"mic_off"})}function rB(e){return n.jsx(r,{...e,iconKey:"microwave"})}function tB(e){return n.jsx(r,{...e,iconKey:"military_tech"})}function cB(e){return n.jsx(r,{...e,iconKey:"minimize"})}function iB(e){return n.jsx(r,{...e,iconKey:"minor_crash"})}function aB(e){return n.jsx(r,{...e,iconKey:"miscellaneous_services"})}function lB(e){return n.jsx(r,{...e,iconKey:"missed_video_call"})}function sB(e){return n.jsx(r,{...e,iconKey:"mms"})}function dB(e){return n.jsx(r,{...e,iconKey:"mobile_friendly"})}function uB(e){return n.jsx(r,{...e,iconKey:"mobile_off"})}function fB(e){return n.jsx(r,{...e,iconKey:"mobile_screen_share"})}function AB(e){return n.jsx(r,{...e,iconKey:"mobiledata_off"})}function _B(e){return n.jsx(r,{...e,iconKey:"mode"})}function yB(e){return n.jsx(r,{...e,iconKey:"mode_comment"})}function hB(e){return n.jsx(r,{...e,iconKey:"mode_edit"})}function gB(e){return n.jsx(r,{...e,iconKey:"mode_edit_outline"})}function IB(e){return n.jsx(r,{...e,iconKey:"mode_fan_off"})}function bB(e){return n.jsx(r,{...e,iconKey:"mode_night"})}function pB(e){return n.jsx(r,{...e,iconKey:"mode_of_travel"})}function wB(e){return n.jsx(r,{...e,iconKey:"mode_standby"})}function kB(e){return n.jsx(r,{...e,iconKey:"model_training"})}function mB(e){return n.jsx(r,{...e,iconKey:"monetization_on"})}function vB(e){return n.jsx(r,{...e,iconKey:"money"})}function KB(e){return n.jsx(r,{...e,iconKey:"money_off"})}function CB(e){return n.jsx(r,{...e,iconKey:"money_off_csred"})}function SB(e){return n.jsx(r,{...e,iconKey:"monitor"})}function BB(e){return n.jsx(r,{...e,iconKey:"monitor_heart"})}function EB(e){return n.jsx(r,{...e,iconKey:"monitor_weight"})}function FB(e){return n.jsx(r,{...e,iconKey:"monochrome_photos"})}function PB(e){return n.jsx(r,{...e,iconKey:"mood"})}function DB(e){return n.jsx(r,{...e,iconKey:"mood_bad"})}function NB(e){return n.jsx(r,{...e,iconKey:"moped"})}function MB(e){return n.jsx(r,{...e,iconKey:"more"})}function TB(e){return n.jsx(r,{...e,iconKey:"more_horiz"})}function OB(e){return n.jsx(r,{...e,iconKey:"more_time"})}function vr(e){return n.jsx(r,{...e,iconKey:"more_vert"})}function LB(e){return n.jsx(r,{...e,iconKey:"mosque"})}function QB(e){return n.jsx(r,{...e,iconKey:"motion_photos_auto"})}function VB(e){return n.jsx(r,{...e,iconKey:"motion_photos_off"})}function WB(e){return n.jsx(r,{...e,iconKey:"motion_photos_on"})}function GB(e){return n.jsx(r,{...e,iconKey:"motion_photos_pause"})}function zB(e){return n.jsx(r,{...e,iconKey:"motion_photos_paused"})}function HB(e){return n.jsx(r,{...e,iconKey:"mouse"})}function UB(e){return n.jsx(r,{...e,iconKey:"move_down"})}function YB(e){return n.jsx(r,{...e,iconKey:"move_to_inbox"})}function $B(e){return n.jsx(r,{...e,iconKey:"move_up"})}function jB(e){return n.jsx(r,{...e,iconKey:"movie"})}function qB(e){return n.jsx(r,{...e,iconKey:"movie_creation"})}function JB(e){return n.jsx(r,{...e,iconKey:"movie_filter"})}function ZB(e){return n.jsx(r,{...e,iconKey:"moving"})}function XB(e){return n.jsx(r,{...e,iconKey:"mp"})}function xB(e){return n.jsx(r,{...e,iconKey:"multiline_chart"})}function RB(e){return n.jsx(r,{...e,iconKey:"multiple_stop"})}function eE(e){return n.jsx(r,{...e,iconKey:"museum"})}function nE(e){return n.jsx(r,{...e,iconKey:"music_note"})}function oE(e){return n.jsx(r,{...e,iconKey:"music_off"})}function rE(e){return n.jsx(r,{...e,iconKey:"music_video"})}function tE(e){return n.jsx(r,{...e,iconKey:"my_location"})}function cE(e){return n.jsx(r,{...e,iconKey:"nat"})}function iE(e){return n.jsx(r,{...e,iconKey:"nature"})}function aE(e){return n.jsx(r,{...e,iconKey:"nature_people"})}function lE(e){return n.jsx(r,{...e,iconKey:"navigate_before"})}function sE(e){return n.jsx(r,{...e,iconKey:"navigate_next"})}function dE(e){return n.jsx(r,{...e,iconKey:"navigation"})}function uE(e){return n.jsx(r,{...e,iconKey:"near_me"})}function fE(e){return n.jsx(r,{...e,iconKey:"near_me_disabled"})}function AE(e){return n.jsx(r,{...e,iconKey:"nearby_error"})}function _E(e){return n.jsx(r,{...e,iconKey:"nearby_off"})}function yE(e){return n.jsx(r,{...e,iconKey:"nest_cam_wired_stand"})}function hE(e){return n.jsx(r,{...e,iconKey:"network_cell"})}function gE(e){return n.jsx(r,{...e,iconKey:"network_check"})}function IE(e){return n.jsx(r,{...e,iconKey:"network_locked"})}function bE(e){return n.jsx(r,{...e,iconKey:"network_ping"})}function pE(e){return n.jsx(r,{...e,iconKey:"network_wifi"})}function wE(e){return n.jsx(r,{...e,iconKey:"network_wifi_1_bar"})}function kE(e){return n.jsx(r,{...e,iconKey:"network_wifi_2_bar"})}function mE(e){return n.jsx(r,{...e,iconKey:"network_wifi_3_bar"})}function vE(e){return n.jsx(r,{...e,iconKey:"new_label"})}function KE(e){return n.jsx(r,{...e,iconKey:"new_releases"})}function CE(e){return n.jsx(r,{...e,iconKey:"newspaper"})}function SE(e){return n.jsx(r,{...e,iconKey:"next_plan"})}function BE(e){return n.jsx(r,{...e,iconKey:"next_week"})}function EE(e){return n.jsx(r,{...e,iconKey:"nfc"})}function FE(e){return n.jsx(r,{...e,iconKey:"night_shelter"})}function PE(e){return n.jsx(r,{...e,iconKey:"nightlife"})}function DE(e){return n.jsx(r,{...e,iconKey:"nightlight"})}function NE(e){return n.jsx(r,{...e,iconKey:"nightlight_round"})}function ME(e){return n.jsx(r,{...e,iconKey:"nights_stay"})}function TE(e){return n.jsx(r,{...e,iconKey:"no_accounts"})}function OE(e){return n.jsx(r,{...e,iconKey:"no_adult_content"})}function LE(e){return n.jsx(r,{...e,iconKey:"no_backpack"})}function QE(e){return n.jsx(r,{...e,iconKey:"no_cell"})}function VE(e){return n.jsx(r,{...e,iconKey:"no_crash"})}function WE(e){return n.jsx(r,{...e,iconKey:"no_drinks"})}function GE(e){return n.jsx(r,{...e,iconKey:"no_encryption"})}function zE(e){return n.jsx(r,{...e,iconKey:"no_encryption_gmailerrorred"})}function HE(e){return n.jsx(r,{...e,iconKey:"no_flash"})}function UE(e){return n.jsx(r,{...e,iconKey:"no_food"})}function YE(e){return n.jsx(r,{...e,iconKey:"no_luggage"})}function $E(e){return n.jsx(r,{...e,iconKey:"no_meals"})}function jE(e){return n.jsx(r,{...e,iconKey:"no_meeting_room"})}function qE(e){return n.jsx(r,{...e,iconKey:"no_photography"})}function JE(e){return n.jsx(r,{...e,iconKey:"no_sim"})}function ZE(e){return n.jsx(r,{...e,iconKey:"no_stroller"})}function XE(e){return n.jsx(r,{...e,iconKey:"no_transfer"})}function xE(e){return n.jsx(r,{...e,iconKey:"noise_aware"})}function RE(e){return n.jsx(r,{...e,iconKey:"noise_control_off"})}function eF(e){return n.jsx(r,{...e,iconKey:"nordic_walking"})}function nF(e){return n.jsx(r,{...e,iconKey:"north"})}function oF(e){return n.jsx(r,{...e,iconKey:"north_east"})}function rF(e){return n.jsx(r,{...e,iconKey:"north_west"})}function tF(e){return n.jsx(r,{...e,iconKey:"not_accessible"})}function cF(e){return n.jsx(r,{...e,iconKey:"not_interested"})}function iF(e){return n.jsx(r,{...e,iconKey:"not_listed_location"})}function aF(e){return n.jsx(r,{...e,iconKey:"not_started"})}function lF(e){return n.jsx(r,{...e,iconKey:"note"})}function sF(e){return n.jsx(r,{...e,iconKey:"note_add"})}function dF(e){return n.jsx(r,{...e,iconKey:"note_alt"})}function uF(e){return n.jsx(r,{...e,iconKey:"notes"})}function fF(e){return n.jsx(r,{...e,iconKey:"notification_add"})}function AF(e){return n.jsx(r,{...e,iconKey:"notification_important"})}function _F(e){return n.jsx(r,{...e,iconKey:"notifications"})}function yF(e){return n.jsx(r,{...e,iconKey:"notifications_active"})}function hF(e){return n.jsx(r,{...e,iconKey:"notifications_none"})}function gF(e){return n.jsx(r,{...e,iconKey:"notifications_off"})}function IF(e){return n.jsx(r,{...e,iconKey:"notifications_paused"})}function Mc(e){return n.jsx(r,{...e,iconKey:"numbers"})}function bF(e){return n.jsx(r,{...e,iconKey:"offline_bolt"})}function pF(e){return n.jsx(r,{...e,iconKey:"offline_pin"})}function wF(e){return n.jsx(r,{...e,iconKey:"offline_share"})}function kF(e){return n.jsx(r,{...e,iconKey:"oil_barrel"})}function mF(e){return n.jsx(r,{...e,iconKey:"on_device_training"})}function vF(e){return n.jsx(r,{...e,iconKey:"ondemand_video"})}function KF(e){return n.jsx(r,{...e,iconKey:"online_prediction"})}function CF(e){return n.jsx(r,{...e,iconKey:"opacity"})}function SF(e){return n.jsx(r,{...e,iconKey:"open_in_browser"})}function BF(e){return n.jsx(r,{...e,iconKey:"open_in_full"})}function no(e){return n.jsx(r,{...e,iconKey:"open_in_new"})}function EF(e){return n.jsx(r,{...e,iconKey:"open_in_new_off"})}function FF(e){return n.jsx(r,{...e,iconKey:"open_with"})}function PF(e){return n.jsx(r,{...e,iconKey:"other_houses"})}function DF(e){return n.jsx(r,{...e,iconKey:"outbound"})}function NF(e){return n.jsx(r,{...e,iconKey:"outbox"})}function MF(e){return n.jsx(r,{...e,iconKey:"outdoor_grill"})}function TF(e){return n.jsx(r,{...e,iconKey:"outlet"})}function OF(e){return n.jsx(r,{...e,iconKey:"outlined_flag"})}function LF(e){return n.jsx(r,{...e,iconKey:"output"})}function QF(e){return n.jsx(r,{...e,iconKey:"padding"})}function VF(e){return n.jsx(r,{...e,iconKey:"pages"})}function WF(e){return n.jsx(r,{...e,iconKey:"pageview"})}function GF(e){return n.jsx(r,{...e,iconKey:"paid"})}function zF(e){return n.jsx(r,{...e,iconKey:"palette"})}function HF(e){return n.jsx(r,{...e,iconKey:"pan_tool"})}function UF(e){return n.jsx(r,{...e,iconKey:"pan_tool_alt"})}function YF(e){return n.jsx(r,{...e,iconKey:"panorama"})}function $F(e){return n.jsx(r,{...e,iconKey:"panorama_fish_eye"})}function jF(e){return n.jsx(r,{...e,iconKey:"panorama_horizontal"})}function qF(e){return n.jsx(r,{...e,iconKey:"panorama_horizontal_select"})}function JF(e){return n.jsx(r,{...e,iconKey:"panorama_photosphere"})}function ZF(e){return n.jsx(r,{...e,iconKey:"panorama_photosphere_select"})}function XF(e){return n.jsx(r,{...e,iconKey:"panorama_vertical"})}function xF(e){return n.jsx(r,{...e,iconKey:"panorama_vertical_select"})}function RF(e){return n.jsx(r,{...e,iconKey:"panorama_wide_angle"})}function eP(e){return n.jsx(r,{...e,iconKey:"panorama_wide_angle_select"})}function nP(e){return n.jsx(r,{...e,iconKey:"paragliding"})}function oP(e){return n.jsx(r,{...e,iconKey:"park"})}function rP(e){return n.jsx(r,{...e,iconKey:"party_mode"})}function tP(e){return n.jsx(r,{...e,iconKey:"password"})}function cP(e){return n.jsx(r,{...e,iconKey:"pattern"})}function iP(e){return n.jsx(r,{...e,iconKey:"pause"})}function aP(e){return n.jsx(r,{...e,iconKey:"pause_circle"})}function lP(e){return n.jsx(r,{...e,iconKey:"pause_circle_filled"})}function sP(e){return n.jsx(r,{...e,iconKey:"pause_circle_outline"})}function dP(e){return n.jsx(r,{...e,iconKey:"pause_presentation"})}function uP(e){return n.jsx(r,{...e,iconKey:"payment"})}function fP(e){return n.jsx(r,{...e,iconKey:"payments"})}function AP(e){return n.jsx(r,{...e,iconKey:"pedal_bike"})}function _P(e){return n.jsx(r,{...e,iconKey:"pending"})}function yP(e){return n.jsx(r,{...e,iconKey:"pending_actions"})}function hP(e){return n.jsx(r,{...e,iconKey:"pentagon"})}function gP(e){return n.jsx(r,{...e,iconKey:"people"})}function IP(e){return n.jsx(r,{...e,iconKey:"people_alt"})}function bP(e){return n.jsx(r,{...e,iconKey:"people_outline"})}function pP(e){return n.jsx(r,{...e,iconKey:"percent"})}function wP(e){return n.jsx(r,{...e,iconKey:"perm_camera_mic"})}function kP(e){return n.jsx(r,{...e,iconKey:"perm_contact_calendar"})}function mP(e){return n.jsx(r,{...e,iconKey:"perm_data_setting"})}function vP(e){return n.jsx(r,{...e,iconKey:"perm_device_information"})}function KP(e){return n.jsx(r,{...e,iconKey:"perm_identity"})}function CP(e){return n.jsx(r,{...e,iconKey:"perm_media"})}function SP(e){return n.jsx(r,{...e,iconKey:"perm_phone_msg"})}function BP(e){return n.jsx(r,{...e,iconKey:"perm_scan_wifi"})}function EP(e){return n.jsx(r,{...e,iconKey:"person"})}function FP(e){return n.jsx(r,{...e,iconKey:"person_2"})}function PP(e){return n.jsx(r,{...e,iconKey:"person_3"})}function DP(e){return n.jsx(r,{...e,iconKey:"person_4"})}function NP(e){return n.jsx(r,{...e,iconKey:"person_add"})}function MP(e){return n.jsx(r,{...e,iconKey:"person_add_alt"})}function TP(e){return n.jsx(r,{...e,iconKey:"person_add_alt_1"})}function OP(e){return n.jsx(r,{...e,iconKey:"person_add_disabled"})}function LP(e){return n.jsx(r,{...e,iconKey:"person_off"})}function QP(e){return n.jsx(r,{...e,iconKey:"person_outline"})}function VP(e){return n.jsx(r,{...e,iconKey:"person_pin"})}function WP(e){return n.jsx(r,{...e,iconKey:"person_pin_circle"})}function GP(e){return n.jsx(r,{...e,iconKey:"person_remove"})}function zP(e){return n.jsx(r,{...e,iconKey:"person_remove_alt_1"})}function HP(e){return n.jsx(r,{...e,iconKey:"person_search"})}function UP(e){return n.jsx(r,{...e,iconKey:"personal_injury"})}function YP(e){return n.jsx(r,{...e,iconKey:"personal_video"})}function $P(e){return n.jsx(r,{...e,iconKey:"pest_control"})}function jP(e){return n.jsx(r,{...e,iconKey:"pest_control_rodent"})}function qP(e){return n.jsx(r,{...e,iconKey:"pets"})}function JP(e){return n.jsx(r,{...e,iconKey:"phishing"})}function ZP(e){return n.jsx(r,{...e,iconKey:"phone"})}function XP(e){return n.jsx(r,{...e,iconKey:"phone_android"})}function xP(e){return n.jsx(r,{...e,iconKey:"phone_bluetooth_speaker"})}function RP(e){return n.jsx(r,{...e,iconKey:"phone_callback"})}function e1(e){return n.jsx(r,{...e,iconKey:"phone_disabled"})}function n1(e){return n.jsx(r,{...e,iconKey:"phone_enabled"})}function o1(e){return n.jsx(r,{...e,iconKey:"phone_forwarded"})}function r1(e){return n.jsx(r,{...e,iconKey:"phone_iphone"})}function t1(e){return n.jsx(r,{...e,iconKey:"phone_locked"})}function c1(e){return n.jsx(r,{...e,iconKey:"phone_missed"})}function i1(e){return n.jsx(r,{...e,iconKey:"phone_paused"})}function a1(e){return n.jsx(r,{...e,iconKey:"phonelink"})}function l1(e){return n.jsx(r,{...e,iconKey:"phonelink_erase"})}function s1(e){return n.jsx(r,{...e,iconKey:"phonelink_lock"})}function d1(e){return n.jsx(r,{...e,iconKey:"phonelink_off"})}function u1(e){return n.jsx(r,{...e,iconKey:"phonelink_ring"})}function f1(e){return n.jsx(r,{...e,iconKey:"phonelink_setup"})}function A1(e){return n.jsx(r,{...e,iconKey:"photo"})}function _1(e){return n.jsx(r,{...e,iconKey:"photo_album"})}function y1(e){return n.jsx(r,{...e,iconKey:"photo_camera"})}function h1(e){return n.jsx(r,{...e,iconKey:"photo_camera_back"})}function g1(e){return n.jsx(r,{...e,iconKey:"photo_camera_front"})}function I1(e){return n.jsx(r,{...e,iconKey:"photo_filter"})}function b1(e){return n.jsx(r,{...e,iconKey:"photo_library"})}function p1(e){return n.jsx(r,{...e,iconKey:"photo_size_select_actual"})}function w1(e){return n.jsx(r,{...e,iconKey:"photo_size_select_large"})}function k1(e){return n.jsx(r,{...e,iconKey:"photo_size_select_small"})}function m1(e){return n.jsx(r,{...e,iconKey:"php"})}function v1(e){return n.jsx(r,{...e,iconKey:"piano"})}function K1(e){return n.jsx(r,{...e,iconKey:"piano_off"})}function C1(e){return n.jsx(r,{...e,iconKey:"picture_as_pdf"})}function S1(e){return n.jsx(r,{...e,iconKey:"picture_in_picture"})}function B1(e){return n.jsx(r,{...e,iconKey:"picture_in_picture_alt"})}function E1(e){return n.jsx(r,{...e,iconKey:"pie_chart"})}function F1(e){return n.jsx(r,{...e,iconKey:"pie_chart_outline"})}function P1(e){return n.jsx(r,{...e,iconKey:"pin"})}function D1(e){return n.jsx(r,{...e,iconKey:"pin_drop"})}function N1(e){return n.jsx(r,{...e,iconKey:"pin_end"})}function M1(e){return n.jsx(r,{...e,iconKey:"pin_invoke"})}function T1(e){return n.jsx(r,{...e,iconKey:"pinch"})}function O1(e){return n.jsx(r,{...e,iconKey:"pivot_table_chart"})}function L1(e){return n.jsx(r,{...e,iconKey:"pix"})}function Q1(e){return n.jsx(r,{...e,iconKey:"place"})}function V1(e){return n.jsx(r,{...e,iconKey:"plagiarism"})}function W1(e){return n.jsx(r,{...e,iconKey:"play_arrow"})}function G1(e){return n.jsx(r,{...e,iconKey:"play_circle"})}function z1(e){return n.jsx(r,{...e,iconKey:"play_circle_filled"})}function H1(e){return n.jsx(r,{...e,iconKey:"play_circle_outline"})}function U1(e){return n.jsx(r,{...e,iconKey:"play_disabled"})}function Y1(e){return n.jsx(r,{...e,iconKey:"play_for_work"})}function $1(e){return n.jsx(r,{...e,iconKey:"play_lesson"})}function j1(e){return n.jsx(r,{...e,iconKey:"playlist_add"})}function q1(e){return n.jsx(r,{...e,iconKey:"playlist_add_check"})}function J1(e){return n.jsx(r,{...e,iconKey:"playlist_add_check_circle"})}function Z1(e){return n.jsx(r,{...e,iconKey:"playlist_add_circle"})}function X1(e){return n.jsx(r,{...e,iconKey:"playlist_play"})}function x1(e){return n.jsx(r,{...e,iconKey:"playlist_remove"})}function R1(e){return n.jsx(r,{...e,iconKey:"plumbing"})}function eD(e){return n.jsx(r,{...e,iconKey:"plus_one"})}function nD(e){return n.jsx(r,{...e,iconKey:"podcasts"})}function oD(e){return n.jsx(r,{...e,iconKey:"point_of_sale"})}function rD(e){return n.jsx(r,{...e,iconKey:"policy"})}function tD(e){return n.jsx(r,{...e,iconKey:"poll"})}function cD(e){return n.jsx(r,{...e,iconKey:"polyline"})}function iD(e){return n.jsx(r,{...e,iconKey:"polymer"})}function aD(e){return n.jsx(r,{...e,iconKey:"pool"})}function lD(e){return n.jsx(r,{...e,iconKey:"portable_wifi_off"})}function sD(e){return n.jsx(r,{...e,iconKey:"portrait"})}function dD(e){return n.jsx(r,{...e,iconKey:"post_add"})}function uD(e){return n.jsx(r,{...e,iconKey:"power"})}function fD(e){return n.jsx(r,{...e,iconKey:"power_input"})}function AD(e){return n.jsx(r,{...e,iconKey:"power_off"})}function _D(e){return n.jsx(r,{...e,iconKey:"power_settings_new"})}function yD(e){return n.jsx(r,{...e,iconKey:"precision_manufacturing"})}function hD(e){return n.jsx(r,{...e,iconKey:"pregnant_woman"})}function gD(e){return n.jsx(r,{...e,iconKey:"present_to_all"})}function ID(e){return n.jsx(r,{...e,iconKey:"preview"})}function bD(e){return n.jsx(r,{...e,iconKey:"price_change"})}function pD(e){return n.jsx(r,{...e,iconKey:"price_check"})}function wD(e){return n.jsx(r,{...e,iconKey:"print"})}function kD(e){return n.jsx(r,{...e,iconKey:"print_disabled"})}function mD(e){return n.jsx(r,{...e,iconKey:"priority_high"})}function vD(e){return n.jsx(r,{...e,iconKey:"privacy_tip"})}function KD(e){return n.jsx(r,{...e,iconKey:"private_connectivity"})}function CD(e){return n.jsx(r,{...e,iconKey:"production_quantity_limits"})}function SD(e){return n.jsx(r,{...e,iconKey:"propane"})}function BD(e){return n.jsx(r,{...e,iconKey:"propane_tank"})}function ED(e){return n.jsx(r,{...e,iconKey:"psychology"})}function FD(e){return n.jsx(r,{...e,iconKey:"psychology_alt"})}function PD(e){return n.jsx(r,{...e,iconKey:"public"})}function DD(e){return n.jsx(r,{...e,iconKey:"public_off"})}function ND(e){return n.jsx(r,{...e,iconKey:"publish"})}function MD(e){return n.jsx(r,{...e,iconKey:"published_with_changes"})}function TD(e){return n.jsx(r,{...e,iconKey:"punch_clock"})}function OD(e){return n.jsx(r,{...e,iconKey:"push_pin"})}function LD(e){return n.jsx(r,{...e,iconKey:"qr_code"})}function QD(e){return n.jsx(r,{...e,iconKey:"qr_code_2"})}function VD(e){return n.jsx(r,{...e,iconKey:"qr_code_scanner"})}function WD(e){return n.jsx(r,{...e,iconKey:"query_builder"})}function GD(e){return n.jsx(r,{...e,iconKey:"query_stats"})}function zD(e){return n.jsx(r,{...e,iconKey:"question_answer"})}function HD(e){return n.jsx(r,{...e,iconKey:"question_mark"})}function UD(e){return n.jsx(r,{...e,iconKey:"queue"})}function YD(e){return n.jsx(r,{...e,iconKey:"queue_music"})}function $D(e){return n.jsx(r,{...e,iconKey:"queue_play_next"})}function jD(e){return n.jsx(r,{...e,iconKey:"quickreply"})}function qD(e){return n.jsx(r,{...e,iconKey:"quiz"})}function JD(e){return n.jsx(r,{...e,iconKey:"r_mobiledata"})}function ZD(e){return n.jsx(r,{...e,iconKey:"radar"})}function XD(e){return n.jsx(r,{...e,iconKey:"radio"})}function xD(e){return n.jsx(r,{...e,iconKey:"radio_button_checked"})}function RD(e){return n.jsx(r,{...e,iconKey:"radio_button_unchecked"})}function eN(e){return n.jsx(r,{...e,iconKey:"railway_alert"})}function nN(e){return n.jsx(r,{...e,iconKey:"ramen_dining"})}function oN(e){return n.jsx(r,{...e,iconKey:"ramp_left"})}function rN(e){return n.jsx(r,{...e,iconKey:"ramp_right"})}function tN(e){return n.jsx(r,{...e,iconKey:"rate_review"})}function cN(e){return n.jsx(r,{...e,iconKey:"raw_off"})}function iN(e){return n.jsx(r,{...e,iconKey:"raw_on"})}function aN(e){return n.jsx(r,{...e,iconKey:"read_more"})}function lN(e){return n.jsx(r,{...e,iconKey:"real_estate_agent"})}function sN(e){return n.jsx(r,{...e,iconKey:"receipt"})}function dN(e){return n.jsx(r,{...e,iconKey:"receipt_long"})}function uN(e){return n.jsx(r,{...e,iconKey:"recent_actors"})}function fN(e){return n.jsx(r,{...e,iconKey:"recommend"})}function AN(e){return n.jsx(r,{...e,iconKey:"record_voice_over"})}function _N(e){return n.jsx(r,{...e,iconKey:"rectangle"})}function yN(e){return n.jsx(r,{...e,iconKey:"recycling"})}function hN(e){return n.jsx(r,{...e,iconKey:"redeem"})}function gN(e){return n.jsx(r,{...e,iconKey:"redo"})}function IN(e){return n.jsx(r,{...e,iconKey:"reduce_capacity"})}function bN(e){return n.jsx(r,{...e,iconKey:"refresh"})}function pN(e){return n.jsx(r,{...e,iconKey:"remember_me"})}function oo(e){return n.jsx(r,{...e,iconKey:"remove"})}function Tc(e){return n.jsx(r,{...e,iconKey:"remove_circle"})}function wN(e){return n.jsx(r,{...e,iconKey:"remove_circle_outline"})}function kN(e){return n.jsx(r,{...e,iconKey:"remove_done"})}function mN(e){return n.jsx(r,{...e,iconKey:"remove_from_queue"})}function vN(e){return n.jsx(r,{...e,iconKey:"remove_moderator"})}function KN(e){return n.jsx(r,{...e,iconKey:"remove_red_eye"})}function CN(e){return n.jsx(r,{...e,iconKey:"remove_road"})}function SN(e){return n.jsx(r,{...e,iconKey:"remove_shopping_cart"})}function BN(e){return n.jsx(r,{...e,iconKey:"reorder"})}function EN(e){return n.jsx(r,{...e,iconKey:"repartition"})}function Kr(e){return n.jsx(r,{...e,iconKey:"repeat"})}function FN(e){return n.jsx(r,{...e,iconKey:"repeat_on"})}function PN(e){return n.jsx(r,{...e,iconKey:"repeat_one"})}function DN(e){return n.jsx(r,{...e,iconKey:"repeat_one_on"})}function NN(e){return n.jsx(r,{...e,iconKey:"replay"})}function MN(e){return n.jsx(r,{...e,iconKey:"replay_10"})}function TN(e){return n.jsx(r,{...e,iconKey:"replay_30"})}function ON(e){return n.jsx(r,{...e,iconKey:"replay_5"})}function LN(e){return n.jsx(r,{...e,iconKey:"replay_circle_filled"})}function QN(e){return n.jsx(r,{...e,iconKey:"reply"})}function VN(e){return n.jsx(r,{...e,iconKey:"reply_all"})}function WN(e){return n.jsx(r,{...e,iconKey:"report"})}function GN(e){return n.jsx(r,{...e,iconKey:"report_gmailerrorred"})}function zN(e){return n.jsx(r,{...e,iconKey:"report_off"})}function HN(e){return n.jsx(r,{...e,iconKey:"report_problem"})}function UN(e){return n.jsx(r,{...e,iconKey:"request_page"})}function YN(e){return n.jsx(r,{...e,iconKey:"request_quote"})}function $N(e){return n.jsx(r,{...e,iconKey:"reset_tv"})}function jN(e){return n.jsx(r,{...e,iconKey:"restart_alt"})}function qN(e){return n.jsx(r,{...e,iconKey:"restaurant"})}function JN(e){return n.jsx(r,{...e,iconKey:"restaurant_menu"})}function ZN(e){return n.jsx(r,{...e,iconKey:"restore"})}function XN(e){return n.jsx(r,{...e,iconKey:"restore_from_trash"})}function xN(e){return n.jsx(r,{...e,iconKey:"restore_page"})}function RN(e){return n.jsx(r,{...e,iconKey:"reviews"})}function eM(e){return n.jsx(r,{...e,iconKey:"rice_bowl"})}function nM(e){return n.jsx(r,{...e,iconKey:"ring_volume"})}function oM(e){return n.jsx(r,{...e,iconKey:"rocket"})}function rM(e){return n.jsx(r,{...e,iconKey:"rocket_launch"})}function tM(e){return n.jsx(r,{...e,iconKey:"roller_shades"})}function cM(e){return n.jsx(r,{...e,iconKey:"roller_shades_closed"})}function iM(e){return n.jsx(r,{...e,iconKey:"roller_skating"})}function aM(e){return n.jsx(r,{...e,iconKey:"roofing"})}function lM(e){return n.jsx(r,{...e,iconKey:"room"})}function sM(e){return n.jsx(r,{...e,iconKey:"room_preferences"})}function dM(e){return n.jsx(r,{...e,iconKey:"room_service"})}function uM(e){return n.jsx(r,{...e,iconKey:"rotate_90_degrees_ccw"})}function fM(e){return n.jsx(r,{...e,iconKey:"rotate_90_degrees_cw"})}function AM(e){return n.jsx(r,{...e,iconKey:"rotate_left"})}function _M(e){return n.jsx(r,{...e,iconKey:"rotate_right"})}function yM(e){return n.jsx(r,{...e,iconKey:"roundabout_left"})}function hM(e){return n.jsx(r,{...e,iconKey:"roundabout_right"})}function gM(e){return n.jsx(r,{...e,iconKey:"rounded_corner"})}function IM(e){return n.jsx(r,{...e,iconKey:"route"})}function bM(e){return n.jsx(r,{...e,iconKey:"router"})}function pM(e){return n.jsx(r,{...e,iconKey:"rowing"})}function wM(e){return n.jsx(r,{...e,iconKey:"rss_feed"})}function kM(e){return n.jsx(r,{...e,iconKey:"rsvp"})}function mM(e){return n.jsx(r,{...e,iconKey:"rtt"})}function vM(e){return n.jsx(r,{...e,iconKey:"rule"})}function KM(e){return n.jsx(r,{...e,iconKey:"rule_folder"})}function CM(e){return n.jsx(r,{...e,iconKey:"run_circle"})}function SM(e){return n.jsx(r,{...e,iconKey:"running_with_errors"})}function BM(e){return n.jsx(r,{...e,iconKey:"rv_hookup"})}function EM(e){return n.jsx(r,{...e,iconKey:"safety_check"})}function FM(e){return n.jsx(r,{...e,iconKey:"safety_divider"})}function PM(e){return n.jsx(r,{...e,iconKey:"sailing"})}function DM(e){return n.jsx(r,{...e,iconKey:"sanitizer"})}function NM(e){return n.jsx(r,{...e,iconKey:"satellite"})}function MM(e){return n.jsx(r,{...e,iconKey:"satellite_alt"})}function TM(e){return n.jsx(r,{...e,iconKey:"save"})}function OM(e){return n.jsx(r,{...e,iconKey:"save_alt"})}function LM(e){return n.jsx(r,{...e,iconKey:"save_as"})}function QM(e){return n.jsx(r,{...e,iconKey:"saved_search"})}function VM(e){return n.jsx(r,{...e,iconKey:"savings"})}function WM(e){return n.jsx(r,{...e,iconKey:"scale"})}function GM(e){return n.jsx(r,{...e,iconKey:"scanner"})}function zM(e){return n.jsx(r,{...e,iconKey:"scatter_plot"})}function Oc(e){return n.jsx(r,{...e,iconKey:"schedule"})}function HM(e){return n.jsx(r,{...e,iconKey:"schedule_send"})}function UM(e){return n.jsx(r,{...e,iconKey:"schema"})}function YM(e){return n.jsx(r,{...e,iconKey:"school"})}function $M(e){return n.jsx(r,{...e,iconKey:"science"})}function jM(e){return n.jsx(r,{...e,iconKey:"score"})}function qM(e){return n.jsx(r,{...e,iconKey:"scoreboard"})}function JM(e){return n.jsx(r,{...e,iconKey:"screen_lock_landscape"})}function ZM(e){return n.jsx(r,{...e,iconKey:"screen_lock_portrait"})}function XM(e){return n.jsx(r,{...e,iconKey:"screen_lock_rotation"})}function xM(e){return n.jsx(r,{...e,iconKey:"screen_rotation"})}function RM(e){return n.jsx(r,{...e,iconKey:"screen_rotation_alt"})}function eT(e){return n.jsx(r,{...e,iconKey:"screen_search_desktop"})}function nT(e){return n.jsx(r,{...e,iconKey:"screen_share"})}function oT(e){return n.jsx(r,{...e,iconKey:"screenshot"})}function rT(e){return n.jsx(r,{...e,iconKey:"screenshot_monitor"})}function tT(e){return n.jsx(r,{...e,iconKey:"scuba_diving"})}function cT(e){return n.jsx(r,{...e,iconKey:"sd"})}function iT(e){return n.jsx(r,{...e,iconKey:"sd_card"})}function aT(e){return n.jsx(r,{...e,iconKey:"sd_card_alert"})}function lT(e){return n.jsx(r,{...e,iconKey:"sd_storage"})}function sT(e){return n.jsx(r,{...e,iconKey:"search_off"})}function dT(e){return n.jsx(r,{...e,iconKey:"security"})}function uT(e){return n.jsx(r,{...e,iconKey:"security_update"})}function fT(e){return n.jsx(r,{...e,iconKey:"security_update_good"})}function AT(e){return n.jsx(r,{...e,iconKey:"security_update_warning"})}function _T(e){return n.jsx(r,{...e,iconKey:"segment"})}function yT(e){return n.jsx(r,{...e,iconKey:"select_all"})}function hT(e){return n.jsx(r,{...e,iconKey:"self_improvement"})}function gT(e){return n.jsx(r,{...e,iconKey:"sell"})}function IT(e){return n.jsx(r,{...e,iconKey:"send"})}function bT(e){return n.jsx(r,{...e,iconKey:"send_and_archive"})}function pT(e){return n.jsx(r,{...e,iconKey:"send_time_extension"})}function wT(e){return n.jsx(r,{...e,iconKey:"send_to_mobile"})}function kT(e){return n.jsx(r,{...e,iconKey:"sensor_door"})}function mT(e){return n.jsx(r,{...e,iconKey:"sensor_occupied"})}function vT(e){return n.jsx(r,{...e,iconKey:"sensor_window"})}function KT(e){return n.jsx(r,{...e,iconKey:"sensors"})}function CT(e){return n.jsx(r,{...e,iconKey:"sensors_off"})}function ST(e){return n.jsx(r,{...e,iconKey:"sentiment_dissatisfied"})}function BT(e){return n.jsx(r,{...e,iconKey:"sentiment_neutral"})}function ET(e){return n.jsx(r,{...e,iconKey:"sentiment_satisfied"})}function FT(e){return n.jsx(r,{...e,iconKey:"sentiment_satisfied_alt"})}function PT(e){return n.jsx(r,{...e,iconKey:"sentiment_very_dissatisfied"})}function DT(e){return n.jsx(r,{...e,iconKey:"sentiment_very_satisfied"})}function NT(e){return n.jsx(r,{...e,iconKey:"set_meal"})}function MT(e){return n.jsx(r,{...e,iconKey:"settings"})}function TT(e){return n.jsx(r,{...e,iconKey:"settings_accessibility"})}function OT(e){return n.jsx(r,{...e,iconKey:"settings_applications"})}function LT(e){return n.jsx(r,{...e,iconKey:"settings_backup_restore"})}function QT(e){return n.jsx(r,{...e,iconKey:"settings_bluetooth"})}function VT(e){return n.jsx(r,{...e,iconKey:"settings_brightness"})}function WT(e){return n.jsx(r,{...e,iconKey:"settings_cell"})}function GT(e){return n.jsx(r,{...e,iconKey:"settings_ethernet"})}function zT(e){return n.jsx(r,{...e,iconKey:"settings_input_antenna"})}function HT(e){return n.jsx(r,{...e,iconKey:"settings_input_component"})}function UT(e){return n.jsx(r,{...e,iconKey:"settings_input_composite"})}function YT(e){return n.jsx(r,{...e,iconKey:"settings_input_hdmi"})}function $T(e){return n.jsx(r,{...e,iconKey:"settings_input_svideo"})}function jT(e){return n.jsx(r,{...e,iconKey:"settings_overscan"})}function qT(e){return n.jsx(r,{...e,iconKey:"settings_phone"})}function JT(e){return n.jsx(r,{...e,iconKey:"settings_power"})}function ZT(e){return n.jsx(r,{...e,iconKey:"settings_remote"})}function XT(e){return n.jsx(r,{...e,iconKey:"settings_suggest"})}function xT(e){return n.jsx(r,{...e,iconKey:"settings_system_daydream"})}function RT(e){return n.jsx(r,{...e,iconKey:"settings_voice"})}function e2(e){return n.jsx(r,{...e,iconKey:"severe_cold"})}function n2(e){return n.jsx(r,{...e,iconKey:"shape_line"})}function o2(e){return n.jsx(r,{...e,iconKey:"share"})}function r2(e){return n.jsx(r,{...e,iconKey:"share_location"})}function t2(e){return n.jsx(r,{...e,iconKey:"shield"})}function c2(e){return n.jsx(r,{...e,iconKey:"shield_moon"})}function i2(e){return n.jsx(r,{...e,iconKey:"shop"})}function a2(e){return n.jsx(r,{...e,iconKey:"shop_2"})}function l2(e){return n.jsx(r,{...e,iconKey:"shop_two"})}function s2(e){return n.jsx(r,{...e,iconKey:"shopping_bag"})}function d2(e){return n.jsx(r,{...e,iconKey:"shopping_basket"})}function u2(e){return n.jsx(r,{...e,iconKey:"shopping_cart"})}function f2(e){return n.jsx(r,{...e,iconKey:"shopping_cart_checkout"})}function Lc(e){return n.jsx(r,{...e,iconKey:"short_text"})}function A2(e){return n.jsx(r,{...e,iconKey:"shortcut"})}function _2(e){return n.jsx(r,{...e,iconKey:"show_chart"})}function y2(e){return n.jsx(r,{...e,iconKey:"shower"})}function h2(e){return n.jsx(r,{...e,iconKey:"shuffle"})}function g2(e){return n.jsx(r,{...e,iconKey:"shuffle_on"})}function I2(e){return n.jsx(r,{...e,iconKey:"shutter_speed"})}function b2(e){return n.jsx(r,{...e,iconKey:"sick"})}function p2(e){return n.jsx(r,{...e,iconKey:"sign_language"})}function w2(e){return n.jsx(r,{...e,iconKey:"signal_cellular_0_bar"})}function k2(e){return n.jsx(r,{...e,iconKey:"signal_cellular_4_bar"})}function m2(e){return n.jsx(r,{...e,iconKey:"signal_cellular_alt"})}function v2(e){return n.jsx(r,{...e,iconKey:"signal_cellular_alt_1_bar"})}function K2(e){return n.jsx(r,{...e,iconKey:"signal_cellular_alt_2_bar"})}function C2(e){return n.jsx(r,{...e,iconKey:"signal_cellular_connected_no_internet_0_bar"})}function S2(e){return n.jsx(r,{...e,iconKey:"signal_cellular_connected_no_internet_4_bar"})}function B2(e){return n.jsx(r,{...e,iconKey:"signal_cellular_no_sim"})}function E2(e){return n.jsx(r,{...e,iconKey:"signal_cellular_nodata"})}function F2(e){return n.jsx(r,{...e,iconKey:"signal_cellular_null"})}function P2(e){return n.jsx(r,{...e,iconKey:"signal_cellular_off"})}function D2(e){return n.jsx(r,{...e,iconKey:"signal_wifi_0_bar"})}function N2(e){return n.jsx(r,{...e,iconKey:"signal_wifi_4_bar"})}function M2(e){return n.jsx(r,{...e,iconKey:"signal_wifi_4_bar_lock"})}function T2(e){return n.jsx(r,{...e,iconKey:"signal_wifi_bad"})}function O2(e){return n.jsx(r,{...e,iconKey:"signal_wifi_connected_no_internet_4"})}function L2(e){return n.jsx(r,{...e,iconKey:"signal_wifi_off"})}function Q2(e){return n.jsx(r,{...e,iconKey:"signal_wifi_statusbar_4_bar"})}function V2(e){return n.jsx(r,{...e,iconKey:"signal_wifi_statusbar_connected_no_internet_4"})}function W2(e){return n.jsx(r,{...e,iconKey:"signal_wifi_statusbar_null"})}function G2(e){return n.jsx(r,{...e,iconKey:"signpost"})}function z2(e){return n.jsx(r,{...e,iconKey:"sim_card"})}function H2(e){return n.jsx(r,{...e,iconKey:"sim_card_alert"})}function U2(e){return n.jsx(r,{...e,iconKey:"sim_card_download"})}function Y2(e){return n.jsx(r,{...e,iconKey:"single_bed"})}function $2(e){return n.jsx(r,{...e,iconKey:"sip"})}function j2(e){return n.jsx(r,{...e,iconKey:"skateboarding"})}function q2(e){return n.jsx(r,{...e,iconKey:"skip_next"})}function J2(e){return n.jsx(r,{...e,iconKey:"skip_previous"})}function Z2(e){return n.jsx(r,{...e,iconKey:"sledding"})}function X2(e){return n.jsx(r,{...e,iconKey:"slideshow"})}function x2(e){return n.jsx(r,{...e,iconKey:"slow_motion_video"})}function R2(e){return n.jsx(r,{...e,iconKey:"smart_button"})}function eO(e){return n.jsx(r,{...e,iconKey:"smart_display"})}function nO(e){return n.jsx(r,{...e,iconKey:"smart_screen"})}function oO(e){return n.jsx(r,{...e,iconKey:"smart_toy"})}function rO(e){return n.jsx(r,{...e,iconKey:"smartphone"})}function tO(e){return n.jsx(r,{...e,iconKey:"smoke_free"})}function cO(e){return n.jsx(r,{...e,iconKey:"smoking_rooms"})}function iO(e){return n.jsx(r,{...e,iconKey:"sms"})}function aO(e){return n.jsx(r,{...e,iconKey:"sms_failed"})}function lO(e){return n.jsx(r,{...e,iconKey:"snippet_folder"})}function sO(e){return n.jsx(r,{...e,iconKey:"snooze"})}function dO(e){return n.jsx(r,{...e,iconKey:"snowboarding"})}function uO(e){return n.jsx(r,{...e,iconKey:"snowmobile"})}function fO(e){return n.jsx(r,{...e,iconKey:"snowshoeing"})}function AO(e){return n.jsx(r,{...e,iconKey:"soap"})}function _O(e){return n.jsx(r,{...e,iconKey:"social_distance"})}function yO(e){return n.jsx(r,{...e,iconKey:"solar_power"})}function hO(e){return n.jsx(r,{...e,iconKey:"sort"})}function gO(e){return n.jsx(r,{...e,iconKey:"sort_by_alpha"})}function IO(e){return n.jsx(r,{...e,iconKey:"sos"})}function bO(e){return n.jsx(r,{...e,iconKey:"soup_kitchen"})}function pO(e){return n.jsx(r,{...e,iconKey:"source"})}function wO(e){return n.jsx(r,{...e,iconKey:"south"})}function kO(e){return n.jsx(r,{...e,iconKey:"south_america"})}function mO(e){return n.jsx(r,{...e,iconKey:"south_east"})}function vO(e){return n.jsx(r,{...e,iconKey:"south_west"})}function KO(e){return n.jsx(r,{...e,iconKey:"spa"})}function CO(e){return n.jsx(r,{...e,iconKey:"space_bar"})}function SO(e){return n.jsx(r,{...e,iconKey:"space_dashboard"})}function BO(e){return n.jsx(r,{...e,iconKey:"spatial_audio"})}function EO(e){return n.jsx(r,{...e,iconKey:"spatial_audio_off"})}function FO(e){return n.jsx(r,{...e,iconKey:"spatial_tracking"})}function PO(e){return n.jsx(r,{...e,iconKey:"speaker"})}function DO(e){return n.jsx(r,{...e,iconKey:"speaker_group"})}function NO(e){return n.jsx(r,{...e,iconKey:"speaker_notes"})}function MO(e){return n.jsx(r,{...e,iconKey:"speaker_notes_off"})}function TO(e){return n.jsx(r,{...e,iconKey:"speaker_phone"})}function OO(e){return n.jsx(r,{...e,iconKey:"speed"})}function LO(e){return n.jsx(r,{...e,iconKey:"spellcheck"})}function QO(e){return n.jsx(r,{...e,iconKey:"splitscreen"})}function VO(e){return n.jsx(r,{...e,iconKey:"spoke"})}function WO(e){return n.jsx(r,{...e,iconKey:"sports"})}function GO(e){return n.jsx(r,{...e,iconKey:"sports_bar"})}function zO(e){return n.jsx(r,{...e,iconKey:"sports_baseball"})}function HO(e){return n.jsx(r,{...e,iconKey:"sports_basketball"})}function UO(e){return n.jsx(r,{...e,iconKey:"sports_cricket"})}function YO(e){return n.jsx(r,{...e,iconKey:"sports_esports"})}function $O(e){return n.jsx(r,{...e,iconKey:"sports_football"})}function jO(e){return n.jsx(r,{...e,iconKey:"sports_golf"})}function qO(e){return n.jsx(r,{...e,iconKey:"sports_gymnastics"})}function JO(e){return n.jsx(r,{...e,iconKey:"sports_handball"})}function ZO(e){return n.jsx(r,{...e,iconKey:"sports_hockey"})}function XO(e){return n.jsx(r,{...e,iconKey:"sports_kabaddi"})}function xO(e){return n.jsx(r,{...e,iconKey:"sports_martial_arts"})}function RO(e){return n.jsx(r,{...e,iconKey:"sports_mma"})}function eL(e){return n.jsx(r,{...e,iconKey:"sports_motorsports"})}function nL(e){return n.jsx(r,{...e,iconKey:"sports_rugby"})}function oL(e){return n.jsx(r,{...e,iconKey:"sports_score"})}function rL(e){return n.jsx(r,{...e,iconKey:"sports_soccer"})}function tL(e){return n.jsx(r,{...e,iconKey:"sports_tennis"})}function cL(e){return n.jsx(r,{...e,iconKey:"sports_volleyball"})}function iL(e){return n.jsx(r,{...e,iconKey:"square"})}function aL(e){return n.jsx(r,{...e,iconKey:"square_foot"})}function lL(e){return n.jsx(r,{...e,iconKey:"ssid_chart"})}function sL(e){return n.jsx(r,{...e,iconKey:"stacked_bar_chart"})}function dL(e){return n.jsx(r,{...e,iconKey:"stacked_line_chart"})}function uL(e){return n.jsx(r,{...e,iconKey:"stadium"})}function fL(e){return n.jsx(r,{...e,iconKey:"stairs"})}function Cr(e){return n.jsx(r,{...e,iconKey:"star"})}function Sr(e){return n.jsx(r,{...e,iconKey:"star_border"})}function AL(e){return n.jsx(r,{...e,iconKey:"star_border_purple500"})}function _L(e){return n.jsx(r,{...e,iconKey:"star_half"})}function yL(e){return n.jsx(r,{...e,iconKey:"star_outline"})}function hL(e){return n.jsx(r,{...e,iconKey:"star_purple500"})}function gL(e){return n.jsx(r,{...e,iconKey:"star_rate"})}function IL(e){return n.jsx(r,{...e,iconKey:"stars"})}function bL(e){return n.jsx(r,{...e,iconKey:"start"})}function pL(e){return n.jsx(r,{...e,iconKey:"stay_current_landscape"})}function wL(e){return n.jsx(r,{...e,iconKey:"stay_current_portrait"})}function kL(e){return n.jsx(r,{...e,iconKey:"stay_primary_landscape"})}function mL(e){return n.jsx(r,{...e,iconKey:"stay_primary_portrait"})}function vL(e){return n.jsx(r,{...e,iconKey:"sticky_note_2"})}function KL(e){return n.jsx(r,{...e,iconKey:"stop"})}function CL(e){return n.jsx(r,{...e,iconKey:"stop_circle"})}function SL(e){return n.jsx(r,{...e,iconKey:"stop_screen_share"})}function BL(e){return n.jsx(r,{...e,iconKey:"storage"})}function EL(e){return n.jsx(r,{...e,iconKey:"store"})}function FL(e){return n.jsx(r,{...e,iconKey:"store_mall_directory"})}function PL(e){return n.jsx(r,{...e,iconKey:"storefront"})}function DL(e){return n.jsx(r,{...e,iconKey:"storm"})}function NL(e){return n.jsx(r,{...e,iconKey:"straight"})}function ML(e){return n.jsx(r,{...e,iconKey:"straighten"})}function TL(e){return n.jsx(r,{...e,iconKey:"stream"})}function OL(e){return n.jsx(r,{...e,iconKey:"streetview"})}function LL(e){return n.jsx(r,{...e,iconKey:"strikethrough_s"})}function QL(e){return n.jsx(r,{...e,iconKey:"stroller"})}function VL(e){return n.jsx(r,{...e,iconKey:"style"})}function WL(e){return n.jsx(r,{...e,iconKey:"subdirectory_arrow_left"})}function GL(e){return n.jsx(r,{...e,iconKey:"subdirectory_arrow_right"})}function Qc(e){return n.jsx(r,{...e,iconKey:"subject"})}function zL(e){return n.jsx(r,{...e,iconKey:"subscript"})}function HL(e){return n.jsx(r,{...e,iconKey:"subscriptions"})}function UL(e){return n.jsx(r,{...e,iconKey:"subtitles"})}function YL(e){return n.jsx(r,{...e,iconKey:"subtitles_off"})}function $L(e){return n.jsx(r,{...e,iconKey:"subway"})}function jL(e){return n.jsx(r,{...e,iconKey:"summarize"})}function qL(e){return n.jsx(r,{...e,iconKey:"superscript"})}function JL(e){return n.jsx(r,{...e,iconKey:"supervised_user_circle"})}function ZL(e){return n.jsx(r,{...e,iconKey:"supervisor_account"})}function XL(e){return n.jsx(r,{...e,iconKey:"support"})}function xL(e){return n.jsx(r,{...e,iconKey:"support_agent"})}function RL(e){return n.jsx(r,{...e,iconKey:"surfing"})}function e4(e){return n.jsx(r,{...e,iconKey:"surround_sound"})}function n4(e){return n.jsx(r,{...e,iconKey:"swap_calls"})}function o4(e){return n.jsx(r,{...e,iconKey:"swap_horiz"})}function r4(e){return n.jsx(r,{...e,iconKey:"swap_horizontal_circle"})}function t4(e){return n.jsx(r,{...e,iconKey:"swap_vert"})}function c4(e){return n.jsx(r,{...e,iconKey:"swap_vertical_circle"})}function i4(e){return n.jsx(r,{...e,iconKey:"swipe"})}function a4(e){return n.jsx(r,{...e,iconKey:"swipe_down"})}function l4(e){return n.jsx(r,{...e,iconKey:"swipe_down_alt"})}function s4(e){return n.jsx(r,{...e,iconKey:"swipe_left"})}function d4(e){return n.jsx(r,{...e,iconKey:"swipe_left_alt"})}function u4(e){return n.jsx(r,{...e,iconKey:"swipe_right"})}function f4(e){return n.jsx(r,{...e,iconKey:"swipe_right_alt"})}function A4(e){return n.jsx(r,{...e,iconKey:"swipe_up"})}function _4(e){return n.jsx(r,{...e,iconKey:"swipe_up_alt"})}function y4(e){return n.jsx(r,{...e,iconKey:"swipe_vertical"})}function h4(e){return n.jsx(r,{...e,iconKey:"switch_access_shortcut"})}function g4(e){return n.jsx(r,{...e,iconKey:"switch_access_shortcut_add"})}function I4(e){return n.jsx(r,{...e,iconKey:"switch_account"})}function b4(e){return n.jsx(r,{...e,iconKey:"switch_camera"})}function p4(e){return n.jsx(r,{...e,iconKey:"switch_left"})}function w4(e){return n.jsx(r,{...e,iconKey:"switch_right"})}function k4(e){return n.jsx(r,{...e,iconKey:"switch_video"})}function m4(e){return n.jsx(r,{...e,iconKey:"synagogue"})}function v4(e){return n.jsx(r,{...e,iconKey:"sync"})}function K4(e){return n.jsx(r,{...e,iconKey:"sync_alt"})}function C4(e){return n.jsx(r,{...e,iconKey:"sync_disabled"})}function S4(e){return n.jsx(r,{...e,iconKey:"sync_lock"})}function B4(e){return n.jsx(r,{...e,iconKey:"sync_problem"})}function E4(e){return n.jsx(r,{...e,iconKey:"system_security_update"})}function F4(e){return n.jsx(r,{...e,iconKey:"system_security_update_good"})}function P4(e){return n.jsx(r,{...e,iconKey:"system_security_update_warning"})}function D4(e){return n.jsx(r,{...e,iconKey:"system_update"})}function N4(e){return n.jsx(r,{...e,iconKey:"system_update_alt"})}function M4(e){return n.jsx(r,{...e,iconKey:"tab"})}function T4(e){return n.jsx(r,{...e,iconKey:"tab_unselected"})}function O4(e){return n.jsx(r,{...e,iconKey:"table_bar"})}function L4(e){return n.jsx(r,{...e,iconKey:"table_chart"})}function Q4(e){return n.jsx(r,{...e,iconKey:"table_restaurant"})}function V4(e){return n.jsx(r,{...e,iconKey:"table_rows"})}function W4(e){return n.jsx(r,{...e,iconKey:"table_view"})}function G4(e){return n.jsx(r,{...e,iconKey:"tablet"})}function z4(e){return n.jsx(r,{...e,iconKey:"tablet_android"})}function H4(e){return n.jsx(r,{...e,iconKey:"tablet_mac"})}function U4(e){return n.jsx(r,{...e,iconKey:"tag"})}function Y4(e){return n.jsx(r,{...e,iconKey:"tag_faces"})}function $4(e){return n.jsx(r,{...e,iconKey:"takeout_dining"})}function j4(e){return n.jsx(r,{...e,iconKey:"tap_and_play"})}function q4(e){return n.jsx(r,{...e,iconKey:"tapas"})}function J4(e){return n.jsx(r,{...e,iconKey:"task"})}function Z4(e){return n.jsx(r,{...e,iconKey:"task_alt"})}function X4(e){return n.jsx(r,{...e,iconKey:"taxi_alert"})}function x4(e){return n.jsx(r,{...e,iconKey:"temple_buddhist"})}function R4(e){return n.jsx(r,{...e,iconKey:"temple_hindu"})}function eQ(e){return n.jsx(r,{...e,iconKey:"terminal"})}function nQ(e){return n.jsx(r,{...e,iconKey:"terrain"})}function oQ(e){return n.jsx(r,{...e,iconKey:"text_decrease"})}function rQ(e){return n.jsx(r,{...e,iconKey:"text_fields"})}function tQ(e){return n.jsx(r,{...e,iconKey:"text_format"})}function cQ(e){return n.jsx(r,{...e,iconKey:"text_increase"})}function iQ(e){return n.jsx(r,{...e,iconKey:"text_rotate_up"})}function aQ(e){return n.jsx(r,{...e,iconKey:"text_rotate_vertical"})}function lQ(e){return n.jsx(r,{...e,iconKey:"text_rotation_angledown"})}function sQ(e){return n.jsx(r,{...e,iconKey:"text_rotation_angleup"})}function dQ(e){return n.jsx(r,{...e,iconKey:"text_rotation_down"})}function uQ(e){return n.jsx(r,{...e,iconKey:"text_rotation_none"})}function fQ(e){return n.jsx(r,{...e,iconKey:"text_snippet"})}function AQ(e){return n.jsx(r,{...e,iconKey:"textsms"})}function _Q(e){return n.jsx(r,{...e,iconKey:"texture"})}function yQ(e){return n.jsx(r,{...e,iconKey:"theater_comedy"})}function hQ(e){return n.jsx(r,{...e,iconKey:"theaters"})}function gQ(e){return n.jsx(r,{...e,iconKey:"thermostat"})}function IQ(e){return n.jsx(r,{...e,iconKey:"thermostat_auto"})}function bQ(e){return n.jsx(r,{...e,iconKey:"thumb_down"})}function pQ(e){return n.jsx(r,{...e,iconKey:"thumb_down_alt"})}function wQ(e){return n.jsx(r,{...e,iconKey:"thumb_down_off_alt"})}function kQ(e){return n.jsx(r,{...e,iconKey:"thumb_up"})}function mQ(e){return n.jsx(r,{...e,iconKey:"thumb_up_alt"})}function vQ(e){return n.jsx(r,{...e,iconKey:"thumb_up_off_alt"})}function KQ(e){return n.jsx(r,{...e,iconKey:"thumbs_up_down"})}function CQ(e){return n.jsx(r,{...e,iconKey:"thunderstorm"})}function SQ(e){return n.jsx(r,{...e,iconKey:"time_to_leave"})}function BQ(e){return n.jsx(r,{...e,iconKey:"timelapse"})}function EQ(e){return n.jsx(r,{...e,iconKey:"timeline"})}function FQ(e){return n.jsx(r,{...e,iconKey:"timer"})}function PQ(e){return n.jsx(r,{...e,iconKey:"timer_10"})}function DQ(e){return n.jsx(r,{...e,iconKey:"timer_10_select"})}function NQ(e){return n.jsx(r,{...e,iconKey:"timer_3"})}function MQ(e){return n.jsx(r,{...e,iconKey:"timer_3_select"})}function TQ(e){return n.jsx(r,{...e,iconKey:"timer_off"})}function OQ(e){return n.jsx(r,{...e,iconKey:"tips_and_updates"})}function LQ(e){return n.jsx(r,{...e,iconKey:"tire_repair"})}function QQ(e){return n.jsx(r,{...e,iconKey:"title"})}function VQ(e){return n.jsx(r,{...e,iconKey:"toc"})}function WQ(e){return n.jsx(r,{...e,iconKey:"today"})}function GQ(e){return n.jsx(r,{...e,iconKey:"toggle_off"})}function zQ(e){return n.jsx(r,{...e,iconKey:"toggle_on"})}function HQ(e){return n.jsx(r,{...e,iconKey:"token"})}function UQ(e){return n.jsx(r,{...e,iconKey:"toll"})}function YQ(e){return n.jsx(r,{...e,iconKey:"tonality"})}function $Q(e){return n.jsx(r,{...e,iconKey:"topic"})}function jQ(e){return n.jsx(r,{...e,iconKey:"tornado"})}function qQ(e){return n.jsx(r,{...e,iconKey:"touch_app"})}function JQ(e){return n.jsx(r,{...e,iconKey:"tour"})}function ZQ(e){return n.jsx(r,{...e,iconKey:"toys"})}function XQ(e){return n.jsx(r,{...e,iconKey:"track_changes"})}function xQ(e){return n.jsx(r,{...e,iconKey:"traffic"})}function RQ(e){return n.jsx(r,{...e,iconKey:"train"})}function eV(e){return n.jsx(r,{...e,iconKey:"tram"})}function nV(e){return n.jsx(r,{...e,iconKey:"transcribe"})}function oV(e){return n.jsx(r,{...e,iconKey:"transfer_within_a_station"})}function rV(e){return n.jsx(r,{...e,iconKey:"transform"})}function tV(e){return n.jsx(r,{...e,iconKey:"transgender"})}function cV(e){return n.jsx(r,{...e,iconKey:"transit_enterexit"})}function iV(e){return n.jsx(r,{...e,iconKey:"translate"})}function aV(e){return n.jsx(r,{...e,iconKey:"travel_explore"})}function lV(e){return n.jsx(r,{...e,iconKey:"trending_down"})}function sV(e){return n.jsx(r,{...e,iconKey:"trending_flat"})}function dV(e){return n.jsx(r,{...e,iconKey:"trending_up"})}function uV(e){return n.jsx(r,{...e,iconKey:"trip_origin"})}function fV(e){return n.jsx(r,{...e,iconKey:"troubleshoot"})}function AV(e){return n.jsx(r,{...e,iconKey:"try"})}function _V(e){return n.jsx(r,{...e,iconKey:"tsunami"})}function yV(e){return n.jsx(r,{...e,iconKey:"tty"})}function hV(e){return n.jsx(r,{...e,iconKey:"tune"})}function gV(e){return n.jsx(r,{...e,iconKey:"tungsten"})}function IV(e){return n.jsx(r,{...e,iconKey:"turn_left"})}function bV(e){return n.jsx(r,{...e,iconKey:"turn_right"})}function pV(e){return n.jsx(r,{...e,iconKey:"turn_sharp_left"})}function wV(e){return n.jsx(r,{...e,iconKey:"turn_sharp_right"})}function kV(e){return n.jsx(r,{...e,iconKey:"turn_slight_left"})}function mV(e){return n.jsx(r,{...e,iconKey:"turn_slight_right"})}function vV(e){return n.jsx(r,{...e,iconKey:"turned_in"})}function KV(e){return n.jsx(r,{...e,iconKey:"turned_in_not"})}function CV(e){return n.jsx(r,{...e,iconKey:"tv"})}function SV(e){return n.jsx(r,{...e,iconKey:"tv_off"})}function BV(e){return n.jsx(r,{...e,iconKey:"two_wheeler"})}function EV(e){return n.jsx(r,{...e,iconKey:"type_specimen"})}function FV(e){return n.jsx(r,{...e,iconKey:"u_turn_left"})}function PV(e){return n.jsx(r,{...e,iconKey:"u_turn_right"})}function DV(e){return n.jsx(r,{...e,iconKey:"umbrella"})}function NV(e){return n.jsx(r,{...e,iconKey:"unarchive"})}function MV(e){return n.jsx(r,{...e,iconKey:"undo"})}function TV(e){return n.jsx(r,{...e,iconKey:"unfold_less"})}function OV(e){return n.jsx(r,{...e,iconKey:"unfold_less_double"})}function LV(e){return n.jsx(r,{...e,iconKey:"unfold_more"})}function QV(e){return n.jsx(r,{...e,iconKey:"unfold_more_double"})}function VV(e){return n.jsx(r,{...e,iconKey:"unpublished"})}function WV(e){return n.jsx(r,{...e,iconKey:"unsubscribe"})}function GV(e){return n.jsx(r,{...e,iconKey:"upcoming"})}function zV(e){return n.jsx(r,{...e,iconKey:"update"})}function HV(e){return n.jsx(r,{...e,iconKey:"update_disabled"})}function UV(e){return n.jsx(r,{...e,iconKey:"upgrade"})}function YV(e){return n.jsx(r,{...e,iconKey:"upload"})}function Vc(e){return n.jsx(r,{...e,iconKey:"upload_file"})}function $V(e){return n.jsx(r,{...e,iconKey:"usb"})}function jV(e){return n.jsx(r,{...e,iconKey:"usb_off"})}function qV(e){return n.jsx(r,{...e,iconKey:"vaccines"})}function JV(e){return n.jsx(r,{...e,iconKey:"vape_free"})}function ZV(e){return n.jsx(r,{...e,iconKey:"vaping_rooms"})}function XV(e){return n.jsx(r,{...e,iconKey:"verified"})}function xV(e){return n.jsx(r,{...e,iconKey:"verified_user"})}function RV(e){return n.jsx(r,{...e,iconKey:"vertical_align_bottom"})}function e5(e){return n.jsx(r,{...e,iconKey:"vertical_align_center"})}function n5(e){return n.jsx(r,{...e,iconKey:"vertical_align_top"})}function o5(e){return n.jsx(r,{...e,iconKey:"vertical_distribute"})}function r5(e){return n.jsx(r,{...e,iconKey:"vertical_shades"})}function t5(e){return n.jsx(r,{...e,iconKey:"vertical_shades_closed"})}function c5(e){return n.jsx(r,{...e,iconKey:"vertical_split"})}function i5(e){return n.jsx(r,{...e,iconKey:"vibration"})}function a5(e){return n.jsx(r,{...e,iconKey:"video_call"})}function l5(e){return n.jsx(r,{...e,iconKey:"video_camera_back"})}function s5(e){return n.jsx(r,{...e,iconKey:"video_camera_front"})}function d5(e){return n.jsx(r,{...e,iconKey:"video_chat"})}function u5(e){return n.jsx(r,{...e,iconKey:"video_file"})}function f5(e){return n.jsx(r,{...e,iconKey:"video_label"})}function A5(e){return n.jsx(r,{...e,iconKey:"video_library"})}function _5(e){return n.jsx(r,{...e,iconKey:"video_settings"})}function y5(e){return n.jsx(r,{...e,iconKey:"video_stable"})}function h5(e){return n.jsx(r,{...e,iconKey:"videocam"})}function g5(e){return n.jsx(r,{...e,iconKey:"videocam_off"})}function I5(e){return n.jsx(r,{...e,iconKey:"videogame_asset"})}function b5(e){return n.jsx(r,{...e,iconKey:"videogame_asset_off"})}function p5(e){return n.jsx(r,{...e,iconKey:"view_agenda"})}function w5(e){return n.jsx(r,{...e,iconKey:"view_array"})}function k5(e){return n.jsx(r,{...e,iconKey:"view_carousel"})}function m5(e){return n.jsx(r,{...e,iconKey:"view_column"})}function v5(e){return n.jsx(r,{...e,iconKey:"view_comfy"})}function K5(e){return n.jsx(r,{...e,iconKey:"view_comfy_alt"})}function C5(e){return n.jsx(r,{...e,iconKey:"view_compact"})}function S5(e){return n.jsx(r,{...e,iconKey:"view_compact_alt"})}function B5(e){return n.jsx(r,{...e,iconKey:"view_cozy"})}function E5(e){return n.jsx(r,{...e,iconKey:"view_day"})}function F5(e){return n.jsx(r,{...e,iconKey:"view_headline"})}function P5(e){return n.jsx(r,{...e,iconKey:"view_in_ar"})}function D5(e){return n.jsx(r,{...e,iconKey:"view_kanban"})}function N5(e){return n.jsx(r,{...e,iconKey:"view_list"})}function M5(e){return n.jsx(r,{...e,iconKey:"view_module"})}function T5(e){return n.jsx(r,{...e,iconKey:"view_quilt"})}function O5(e){return n.jsx(r,{...e,iconKey:"view_sidebar"})}function Wc(e){return n.jsx(r,{...e,iconKey:"view_stream"})}function L5(e){return n.jsx(r,{...e,iconKey:"view_timeline"})}function Q5(e){return n.jsx(r,{...e,iconKey:"view_week"})}function V5(e){return n.jsx(r,{...e,iconKey:"vignette"})}function W5(e){return n.jsx(r,{...e,iconKey:"villa"})}function G5(e){return n.jsx(r,{...e,iconKey:"visibility"})}function z5(e){return n.jsx(r,{...e,iconKey:"visibility_off"})}function H5(e){return n.jsx(r,{...e,iconKey:"voice_chat"})}function U5(e){return n.jsx(r,{...e,iconKey:"voice_over_off"})}function Y5(e){return n.jsx(r,{...e,iconKey:"voicemail"})}function $5(e){return n.jsx(r,{...e,iconKey:"volcano"})}function j5(e){return n.jsx(r,{...e,iconKey:"volume_down"})}function q5(e){return n.jsx(r,{...e,iconKey:"volume_mute"})}function J5(e){return n.jsx(r,{...e,iconKey:"volume_off"})}function Z5(e){return n.jsx(r,{...e,iconKey:"volume_up"})}function X5(e){return n.jsx(r,{...e,iconKey:"volunteer_activism"})}function x5(e){return n.jsx(r,{...e,iconKey:"vpn_key"})}function R5(e){return n.jsx(r,{...e,iconKey:"vpn_key_off"})}function eW(e){return n.jsx(r,{...e,iconKey:"vpn_lock"})}function nW(e){return n.jsx(r,{...e,iconKey:"vrpano"})}function oW(e){return n.jsx(r,{...e,iconKey:"wallet"})}function rW(e){return n.jsx(r,{...e,iconKey:"wallpaper"})}function tW(e){return n.jsx(r,{...e,iconKey:"warehouse"})}function cW(e){return n.jsx(r,{...e,iconKey:"warning"})}function iW(e){return n.jsx(r,{...e,iconKey:"warning_amber"})}function aW(e){return n.jsx(r,{...e,iconKey:"wash"})}function lW(e){return n.jsx(r,{...e,iconKey:"watch"})}function sW(e){return n.jsx(r,{...e,iconKey:"watch_later"})}function dW(e){return n.jsx(r,{...e,iconKey:"watch_off"})}function uW(e){return n.jsx(r,{...e,iconKey:"water"})}function fW(e){return n.jsx(r,{...e,iconKey:"water_damage"})}function AW(e){return n.jsx(r,{...e,iconKey:"water_drop"})}function _W(e){return n.jsx(r,{...e,iconKey:"waterfall_chart"})}function yW(e){return n.jsx(r,{...e,iconKey:"waves"})}function hW(e){return n.jsx(r,{...e,iconKey:"waving_hand"})}function gW(e){return n.jsx(r,{...e,iconKey:"wb_auto"})}function IW(e){return n.jsx(r,{...e,iconKey:"wb_cloudy"})}function bW(e){return n.jsx(r,{...e,iconKey:"wb_incandescent"})}function pW(e){return n.jsx(r,{...e,iconKey:"wb_iridescent"})}function wW(e){return n.jsx(r,{...e,iconKey:"wb_shade"})}function kW(e){return n.jsx(r,{...e,iconKey:"wb_sunny"})}function mW(e){return n.jsx(r,{...e,iconKey:"wb_twilight"})}function vW(e){return n.jsx(r,{...e,iconKey:"wc"})}function KW(e){return n.jsx(r,{...e,iconKey:"web"})}function CW(e){return n.jsx(r,{...e,iconKey:"web_asset"})}function SW(e){return n.jsx(r,{...e,iconKey:"web_asset_off"})}function BW(e){return n.jsx(r,{...e,iconKey:"web_stories"})}function EW(e){return n.jsx(r,{...e,iconKey:"webhook"})}function FW(e){return n.jsx(r,{...e,iconKey:"weekend"})}function PW(e){return n.jsx(r,{...e,iconKey:"west"})}function DW(e){return n.jsx(r,{...e,iconKey:"whatshot"})}function NW(e){return n.jsx(r,{...e,iconKey:"wheelchair_pickup"})}function MW(e){return n.jsx(r,{...e,iconKey:"where_to_vote"})}function TW(e){return n.jsx(r,{...e,iconKey:"widgets"})}function OW(e){return n.jsx(r,{...e,iconKey:"width_full"})}function LW(e){return n.jsx(r,{...e,iconKey:"width_normal"})}function QW(e){return n.jsx(r,{...e,iconKey:"width_wide"})}function VW(e){return n.jsx(r,{...e,iconKey:"wifi"})}function WW(e){return n.jsx(r,{...e,iconKey:"wifi_1_bar"})}function GW(e){return n.jsx(r,{...e,iconKey:"wifi_2_bar"})}function zW(e){return n.jsx(r,{...e,iconKey:"wifi_calling"})}function HW(e){return n.jsx(r,{...e,iconKey:"wifi_calling_3"})}function UW(e){return n.jsx(r,{...e,iconKey:"wifi_channel"})}function YW(e){return n.jsx(r,{...e,iconKey:"wifi_find"})}function $W(e){return n.jsx(r,{...e,iconKey:"wifi_lock"})}function jW(e){return n.jsx(r,{...e,iconKey:"wifi_off"})}function qW(e){return n.jsx(r,{...e,iconKey:"wifi_password"})}function JW(e){return n.jsx(r,{...e,iconKey:"wifi_protected_setup"})}function ZW(e){return n.jsx(r,{...e,iconKey:"wifi_tethering"})}function XW(e){return n.jsx(r,{...e,iconKey:"wifi_tethering_error"})}function xW(e){return n.jsx(r,{...e,iconKey:"wifi_tethering_off"})}function RW(e){return n.jsx(r,{...e,iconKey:"wind_power"})}function eG(e){return n.jsx(r,{...e,iconKey:"window"})}function nG(e){return n.jsx(r,{...e,iconKey:"wine_bar"})}function oG(e){return n.jsx(r,{...e,iconKey:"woman"})}function rG(e){return n.jsx(r,{...e,iconKey:"woman_2"})}function tG(e){return n.jsx(r,{...e,iconKey:"work"})}function cG(e){return n.jsx(r,{...e,iconKey:"work_history"})}function iG(e){return n.jsx(r,{...e,iconKey:"work_off"})}function aG(e){return n.jsx(r,{...e,iconKey:"work_outline"})}function lG(e){return n.jsx(r,{...e,iconKey:"workspace_premium"})}function sG(e){return n.jsx(r,{...e,iconKey:"workspaces"})}function dG(e){return n.jsx(r,{...e,iconKey:"wrap_text"})}function uG(e){return n.jsx(r,{...e,iconKey:"wrong_location"})}function fG(e){return n.jsx(r,{...e,iconKey:"wysiwyg"})}function AG(e){return n.jsx(r,{...e,iconKey:"yard"})}function _G(e){return n.jsx(r,{...e,iconKey:"youtube_searched_for"})}function yG(e){return n.jsx(r,{...e,iconKey:"zoom_in"})}function hG(e){return n.jsx(r,{...e,iconKey:"zoom_in_map"})}function gG(e){return n.jsx(r,{...e,iconKey:"zoom_out"})}function IG(e){return n.jsx(r,{...e,iconKey:"zoom_out_map"})}function pe({title:e,error:t,tooltip:c}){const i=t instanceof Error?t.message:t,l=n.jsxs("div",{className:"flex items-center m-2",children:[n.jsx(wr,{size:"small",color:"error"}),n.jsxs("div",{className:"pl-2",children:[e&&n.jsx(j,{variant:"body2",className:"font-medium",children:e}),n.jsx(j,{variant:"body2",children:i})]})]});return c?n.jsx(tc,{title:c,children:l}):l}class Je{id;path;constructor(t,c){this.id=t,this.path=c}get pathWithId(){return`${this.path}/${this.id}`}}class Br{latitude;longitude;constructor(t,c){this.latitude=t,this.longitude=c}}function Fn(){return n.jsx("div",{className:"rounded-full bg-gray-200 bg-opacity-30 dark:bg-opacity-20 w-5 h-2 inline-block"})}const bG=40,pG=100,wG=200;function Pn(e){if(e==="tiny")return bG;if(e==="small")return pG;if(e==="medium")return wG;throw Error("Thumbnail size not mapped")}function ln(e){switch(e){case"xs":case"s":return"tiny";case"m":return"small";case"l":case"xl":return"medium";default:throw Error("Missing mapping value in getPreviewSizeFrom: "+e)}}function Gc({size:e,url:t}){const[c,i]=f.useState(!1),l=f.useMemo(()=>Pn(e),[e]);if(e==="tiny")return n.jsx("img",{src:t,className:"rounded-md",style:{position:"relative",objectFit:"cover",width:l,height:l,maxHeight:"100%"}},"tiny_image_preview_"+t);const a={maxWidth:"100%",maxHeight:"100%"};return n.jsxs("div",{className:"relative flex items-center justify-center max-w-full max-h-full",style:{width:l,height:l},onMouseEnter:()=>i(!0),onMouseMove:()=>i(!0),onMouseLeave:()=>i(!1),children:[n.jsx("img",{src:t,className:"rounded-md",style:a}),c&&n.jsxs(n.Fragment,{children:[navigator&&n.jsx(ye,{title:"Copy url to clipboard",children:n.jsx("div",{className:"rounded-full absolute bottom-[-4px] right-8",children:n.jsx(ee,{variant:"filled",size:"small",onClick:s=>(s.stopPropagation(),s.preventDefault(),navigator.clipboard.writeText(t)),children:n.jsx(Rn,{className:"text-gray-500",size:"small"})})})}),n.jsx(ye,{title:"Open image in new tab",children:n.jsx(ee,{variant:"filled",component:"a",style:{position:"absolute",bottom:-4,right:-4},href:t,rel:"noopener noreferrer",target:"_blank",size:"small",onClick:s=>s.stopPropagation(),children:n.jsx(no,{className:"text-gray-500",size:"small"})})})]})]},"image_preview_"+t)}function ro({url:e,previewType:t,size:c,hint:i}){return t?t==="image"?n.jsx(Gc,{url:e,size:c}):t==="audio"?n.jsxs("audio",{controls:!0,src:e,children:["Your browser does not support the",n.jsx("code",{children:"audio"})," element."]}):t==="video"?n.jsx("video",{className:`max-w-${c==="small"?"sm":"md"}`,controls:!0,children:n.jsx("source",{src:e})}):n.jsxs("a",{href:e,rel:"noopener noreferrer",target:"_blank",onClick:l=>l.stopPropagation(),className:"flex flex-col items-center justify-center",style:{width:Pn(c),height:Pn(c)},children:[n.jsx(gc,{className:"flex-grow"}),i&&n.jsx(ye,{title:i,children:n.jsx(j,{className:"max-w-full truncate rtl text-left",variant:"caption",children:i})})]}):!e||!e.trim()?n.jsx(Fn,{}):n.jsxs("a",{className:"flex gap-4 break-words items-center font-medium text-primary visited:text-primary dark:visited:text-primary dark:text-primary",href:e,rel:"noopener noreferrer",onMouseDown:l=>{l.preventDefault()},target:"_blank",children:[n.jsx(no,{size:"small"}),e]})}function Ve({width:e,height:t,className:c}){return n.jsx("span",{className:E("block","bg-gray-200 dark:bg-gray-800 rounded","animate-pulse",e?`w-[${e}px]`:"w-full",t?`h-[${t}px]`:"h-3","max-w-full max-h-full",c)})}function Dn({property:e,size:t}){e||console.error("No property assigned for skeleton component",e,t);let c;if(e.dataType==="string"){const i=e;i.url?c=SG(i,t):i.storage?c=Fr(t):c=nn()}else if(e.dataType==="array"){const i=e;i.of&&(Array.isArray(i.of)?c=n.jsxs(n.Fragment,{children:[i.of.map((l,a)=>Er(l,a))," "]}):i.of.dataType==="map"&&i.of.properties?c=mG(i.of.properties,t,i.of.previewProperties):i.of.dataType==="string"?i.of.enumValues?c=KG():i.of.storage?c=Er(i.of):c=vG():c=Er(i.of))}else e.dataType==="map"?c=kG(e,t):e.dataType==="date"?c=nn():e.dataType==="reference"?c=CG():(e.dataType,c=nn());return c||null}function kG(e,t){if(!e.properties)return n.jsx(n.Fragment,{});let c;return t==="medium"?c=Object.keys(e.properties):(c=e.previewProperties||Object.keys(e.properties),t==="small"?c=c.slice(0,3):t==="tiny"&&(c=c.slice(0,1))),t!=="medium"?n.jsx("div",{className:"w-full flex flex-col space-y-4",children:c.map((i,l)=>n.jsx("div",{children:e.properties&&e.properties[i]&&n.jsx(Dn,{property:e.properties[i],size:"small"})},`map_${i}`))}):n.jsx("table",{className:"table-auto",children:n.jsx("tbody",{children:c&&c.map((i,l)=>n.jsxs("tr",{className:"border-b last:border-b-0",children:[n.jsx("th",{className:"align-top",style:{width:"30%"},children:n.jsx("p",{className:"text-xs text-secondary",children:e.properties[i].name})},`table-cell-title--${i}`),n.jsx("th",{style:{width:"70%"},children:e.properties&&e.properties[i]&&n.jsx(Dn,{property:e.properties[i],size:"small"})},`table-cell-${i}`)]},`map_preview_table__${l}`))})})}function mG(e,t,c){let i=c;return(!i||!i.length)&&(i=Object.keys(e),t&&(i=i.slice(0,3))),n.jsx("table",{className:"table-auto",children:n.jsx("tbody",{children:[0,1,2].map((l,a)=>n.jsx("tr",{children:i&&i.map(s=>n.jsx("th",{children:n.jsx(Dn,{property:e[s],size:"small"})},`table-cell-${s}`))},`table_${l}_${a}`))})})}function vG(){return n.jsx("div",{className:"flex flex-col gap-2",children:[0,1].map((e,t)=>nn(t))})}function KG(){return n.jsx("div",{className:"flex flex-col gap-2",children:[0,1].map((e,t)=>n.jsx(n.Fragment,{children:nn(t)}))})}function Er(e,t=0){return n.jsx("div",{className:"flex flex-col gap-2",children:[0,1].map((c,i)=>n.jsx(n.Fragment,{children:n.jsx(Dn,{property:e,size:"small"},`i_${i}`)}))},"array_index_"+t)}function Fr(e){const t=e==="tiny"?40:e==="small"?100:200;return n.jsx(Ve,{width:t,height:t})}function CG(){return n.jsx(Ve,{width:200,height:100})}function SG(e,t="medium"){return typeof e.url=="boolean"?n.jsxs("div",{style:{display:"flex"},children:[Pr(),nn()]}):BG(t)}function BG(e){return n.jsx("div",{className:`w-${Pn(e)} h-${Pn(e)}`,children:Pr()})}function nn(e,t=120){return n.jsx(Ve,{width:t},`skeleton_${e}`)}function EG(e){return n.jsx(Ve,{height:20})}function Pr(){return n.jsx(Ve,{width:24,height:24})}const zc=f.memo(Uc,FG);function FG(e,t){return e.size===t.size&&e.storagePathOrDownloadUrl===t.storagePathOrDownloadUrl&&e.storeUrl===t.storeUrl}const Hc={};function Uc({storeUrl:e,storagePathOrDownloadUrl:t,size:c}){const[i,l]=f.useState(void 0),a=Sn(),[s,d]=f.useState(Hc[t]);if(f.useEffect(()=>{if(!t)return;let _=!1;return a.getDownloadURL(t).then(function(g){_||(d(g),Hc[t]=g)}).catch(l),()=>{_=!0}},[t]),!t)return null;const u=s?.metadata?PG(s?.metadata.contentType):void 0,A=u?.startsWith("image")?"image":u?.startsWith("video")?"video":u?.startsWith("audio")?"audio":"file";return s?.fileNotFound?n.jsx(pe,{error:"File not found"}):s?.url?n.jsx(ro,{previewType:A,url:s.url,size:c,hint:t}):Fr(c)}function PG(e){return e.startsWith("image")?"image/*":e.startsWith("video")?"video/*":e.startsWith("audio")?"audio/*":e.startsWith("application")?"application/*":e.startsWith("text")?"text/*":e.startsWith("font")?"font/*":e}function Yc(e){let t=0,c,i;for(c=0;c<e.length;c++)i=e.charCodeAt(c),t=(t<<5)-t+i,t|=0;return Math.abs(t)}const mo={blueLighter:{color:"#cfdfff",text:"#102046"},cyanLighter:{color:"#d0f0fd",text:"#04283f"},tealLighter:{color:"#c2f5e9",text:"#012524"},greenLighter:{color:"#d1f7c4",text:"#0b1d05"},yellowLighter:{color:"#ffeab6",text:"#3b2501"},orangeLighter:{color:"#fee2d5",text:"#6b2613"},redLighter:{color:"#ffdce5",text:"#4c0c1c"},pinkLighter:{color:"#ffdaf6",text:"#400832"},purpleLighter:{color:"#ede2fe",text:"#280b42"},grayLighter:{color:"#eee",text:"#040404"},blueLight:{color:"#9cc7ff",text:"#102046"},cyanLight:{color:"#77d1f3",text:"#04283f"},tealLight:{color:"#72ddc3",text:"#012524"},greenLight:{color:"#93e088",text:"#0b1d05"},yellowLight:{color:"#ffd66e",text:"#3b2501"},orangeLight:{color:"#ffa981",text:"#6b2613"},redLight:{color:"#ff9eb7",text:"#4c0c1c"},pinkLight:{color:"#f99de2",text:"#400832"},purpleLight:{color:"#cdb0ff",text:"#280b42"},grayLight:{color:"#ccc",text:"#040404"},blueDark:{color:"#2d7ff9",text:"#fff"},cyanDark:{color:"#18bfff",text:"#fff"},tealDark:{color:"#20d9d2",text:"#fff"},greenDark:{color:"#20c933",text:"#fff"},yellowDark:{color:"#fcb400",text:"#fff"},orangeDark:{color:"#ff6f2c",text:"#fff"},redDark:{color:"#f82b60",text:"#fff"},pinkDark:{color:"#ff08c2",text:"#fff"},purpleDark:{color:"#8b46ff",text:"#fff"},grayDark:{color:"#666",text:"#fff"},blueDarker:{color:"#2750ae",text:"#cfdfff"},cyanDarker:{color:"#0b76b7",text:"#d0f0fd"},tealDarker:{color:"#06a09b",text:"#daf3e9"},greenDarker:{color:"#338a17",text:"#d1f7c4"},yellowDarker:{color:"#b87503",text:"#ffeab6"},orangeDarker:{color:"#d74d26",text:"#fee2d5"},redDarker:{color:"#ba1e45",text:"#ffdce5"},pinkDarker:{color:"#b2158b",text:"#ffdaf6"},purpleDarker:{color:"#6b1cb0",text:"#ede2fe"},grayDarker:{color:"#444",text:"#eee"}};function $c(e){const t=Yc(e),c=Object.keys(mo),i=t%c.length;return mo[c[i]]}function DG(e){return mo[e]}function sn(e){return Array.isArray(e)?e:Object.entries(e).map(([t,c])=>typeof c=="string"?{id:t,label:c}:{...c,id:t})}function vo(e,t){if(t)return e.find(c=>String(c.id)===String(t))}function jc(e,t){const c=vo(e,t);if(!c?.color)return $c(t.toString());if(typeof c=="object"&&"color"in c){if(typeof c.color=="string")return mo[c.color];if(typeof c.color=="object")return c.color}}function NG(e){return typeof e=="object"&&e.disabled}function qc(e){if(e!==void 0)return typeof e=="object"?e.label:e}const MG={smaller:"px-2 py-0.5 text-sm",small:"px-3 py-1 text-sm",medium:"px-4 py-1.5 text-sm"};function Ko({children:e,colorScheme:t,error:c,outlined:i,onClick:l,icon:a,size:s="medium",className:d}){const u=typeof t=="string"?DG(t):t;return n.jsxs("div",{className:E("rounded-lg w-fit h-fit font-regular inline-flex items-center gap-1","truncate",l?"cursor-pointer hover:bg-gray-300 hover:dark:bg-gray-700":"",MG[s],c||!u?"bg-gray-100 dark:bg-gray-800 text-gray-800 dark:text-gray-200":"",c?"text-red-500 dark:text-red-400":"",d),onClick:l,style:{backgroundColor:c||!u?void 0:u.color,color:c||!u?void 0:u.text},children:[e,a]})}function Ee({enumValues:e,enumKey:t,size:c,className:i,children:l}){if(!e)return null;const a=sn(e),s=t!==void 0?vo(a,t):void 0,d=qc(s),u=jc(a,t);return n.jsxs(Ko,{className:i,colorScheme:u,error:!d,outlined:!1,size:c,children:[l,!l&&(d!==void 0?d:String(t))]})}function Dr({propertyKey:e,value:t,property:c,size:i}){if(c.enumValues){const l=t,a=st(c);return n.jsx(Ee,{enumKey:l,enumValues:a.enumValues,size:i!=="medium"?"small":"medium"})}else if(c.previewAsTag){const l=$c(e??"");return n.jsx(se,{children:n.jsx(Ko,{colorScheme:l,size:i!=="medium"?"small":"medium",children:t})})}else{if(c.url)return n.jsx(ro,{size:i,url:t,previewType:typeof c.url=="string"?c.url:void 0});{if(!t)return n.jsx(n.Fragment,{});const l=t.split(`
|
|
1
|
+
(function(w,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("react/jsx-runtime"),require("react"),require("notistack"),require("object-hash"),require("formik"),require("@firecms/ui"),require("react-router-dom"),require("js-search"),require("react-fast-compare"),require("date-fns"),require("date-fns/locale"),require("react-window"),require("react-use-measure"),require("@hello-pangea/dnd"),require("react-dropzone"),require("react-image-file-resizer"),require("markdown-it"),require("react-markdown-editor-lite"),require("yup"),require("react-datepicker"),require("@radix-ui/react-portal")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","notistack","object-hash","formik","@firecms/ui","react-router-dom","js-search","react-fast-compare","date-fns","date-fns/locale","react-window","react-use-measure","@hello-pangea/dnd","react-dropzone","react-image-file-resizer","markdown-it","react-markdown-editor-lite","yup","react-datepicker","@radix-ui/react-portal"],r):(w=typeof globalThis<"u"?globalThis:w||self,r(w["FireCMS Core"]={},w.jsxRuntime,w.React,w.notistack,w.hash,w.formik,w.ui,w.reactRouterDom,w.JsSearch,w.equal,w.dateFns,w.locales,w.reactWindow,w.useMeasure,w.dnd,w.reactDropzone,w.Resizer,w.MarkdownIt,w.MdEditor,w.yup,w.reactDatepicker,w.Portal))})(this,function(w,r,d,So,Io,xe,u,de,Pn,ne,Mn,Qn,Dn,gr,pt,Fo,On,zn,ot,Vn,No,Gn){"use strict";function Ct(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const a=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,a.get?a:{enumerable:!0,get:()=>e[o]})}}return t.default=e,Object.freeze(t)}const Ar=Ct(d),To=Ct(Pn),Po=Ct(Qn),Ce=Ct(Vn),Yn=Ct(Gn),jn=({children:e})=>r.jsx(So.SnackbarProvider,{maxSnack:3,autoHideDuration:3500,children:e}),Ln={mode:"light",setMode:e=>{},toggleMode:()=>{}},zt=d.createContext(Ln),qn=zt.Provider,br=d.createContext({});function pe(e){return Mo(Qo(e))}function Mo(e){return e.startsWith("/")?e.slice(1):e}function Qo(e){return e.endsWith("/")?e.slice(0,-1):e}function Un(e){return e.startsWith("/")?e:`/${e}`}function $n(e){const t=pe(e);if(t.includes("/")){const o=t.split("/");return o[o.length-1]}return t}function yr(e,t){const o=pe(e),a=o.split("/");if(a.length%2===0)throw Error(`resolveCollectionPathAliases: Collection paths must have an odd number of segments: ${e}`);const n=t.find(s=>s.id===a[0]);let i;if(n&&(i=n.path),a.length>1){const s=Vt(i??a[0],t);if(!s?.subcollections)return o;const l=o.split("/").slice(2).join("/");return(i??a[0])+"/"+a[1]+"/"+yr(l,s.subcollections)}else return i??o}function Vt(e,t){const o=pe(e).split("/");if(o.length%2===0)throw Error(`getCollectionByPathOrAlias: Collection paths must have an odd number of segments: ${e}`);const a=Gt(o);let n;for(let i=0;i<a.length;i++){const s=a[i],l=t&&t.sort((c,p)=>(c.id??"").localeCompare(p.id??"")).find(c=>c.id===s||c.path===s);if(l){if(s===e)n=l;else if(l.subcollections){const c=e.replace(s,"").split("/").slice(2).join("/");c.length>0&&(n=Vt(c,l.subcollections))}}if(n)break}return n}function Gt(e){const t=e.length>0&&e.length%2===0?e.splice(0,e.length-1):e,o=t.length,a=[];for(let n=o;n>0;n=n-2)a.push(t.slice(0,n).join("/"));return a}class Te{id;path;constructor(t,o){this.id=t,this.path=o}get pathWithId(){return`${this.path}/${this.id}`}}class Yt{latitude;longitude;constructor(t,o){this.latitude=t,this.longitude=o}}const Do=(e,...t)=>({...t.reduce((o,a)=>({...o,[a]:e[a]}),{})});function jt(e){return e&&typeof e=="object"&&!Array.isArray(e)}function Pe(e,t){const o=jt(e),a=o?{...e}:e;return o&&jt(t)&&Object.keys(t).forEach(n=>{jt(t[n])?n in e?a[n]=Pe(e[n],t[n]):Object.assign(a,{[n]:t[n]}):Object.assign(a,{[n]:t[n]})}),a}function We(e,t){if(e&&typeof e=="object"){if(t in e)return e[t];if(t.includes(".")||t.includes("[")){let o=t.split(/[.[]/);t.includes("[")&&(o=o.map(l=>l.replace("]","")));const a=o[0],n=Array.isArray(e[a])&&!isNaN(parseInt(o[1])),i=n?e[a][parseInt(o[1])]:e[a],s=o.slice(n?2:1).join(".");return s===""?i:We(i,s)}}}function Wn(e,t){let o={...e};const a=t.split("."),n=a.pop();for(const i of a)o=o[i];return n&&delete o[n],o}function wr(e){if(e!==void 0)return e===null?null:typeof e=="object"?Object.entries(e).filter(([t,o])=>typeof o!="function").map(([t,o])=>Array.isArray(o)?{[t]:o.map(a=>wr(a))}:typeof o=="object"?{[t]:wr(o)}:{[t]:o}).reduce((t,o)=>({...t,...o}),{}):e}function vr(e){if(!e)return null;if(typeof e=="object"){if("id"in e)return e.id;if(e instanceof Date)return e.toLocaleString();if(e instanceof Yt)return Io(e)}return Io(e,{ignoreUnknown:!0})}function kr(e,t){if(typeof e=="function")return e;if(Array.isArray(e))return e.map(o=>kr(o,t));if(typeof e=="object"){const o={};return e===null?e:(Object.keys(e).forEach(a=>{if(!_r(e)){const n=kr(e[a],t),i=typeof n=="string",s=!t||t&&!i||t&&i&&n!=="";n!==void 0&&!_r(n)&&s&&(o[a]=n)}}),o)}return e}function _r(e){return e&&Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length===0}function Oo(e,t){const o=i=>typeof i=="object"&&i!==null,a=i=>Array.isArray(i);if(!o(e)||!o(t))return e;const n=a(e)?[...e]:{...e};return Object.keys(t).forEach(i=>{i in n&&(o(n[i])&&o(t[i])?n[i]=Oo(n[i],t[i]):n[i]===t[i]&&(a(n)?n.splice(i,1):delete n[i]))}),n}const Et="type",Lt="value";function ut(e){return e.readOnly||e.dataType==="date"&&e.autoValue?!0:e.dataType==="reference"?!e.path:!1}function Bt(e){return typeof e.disabled=="object"&&!!e.disabled.hidden}function Ae(e){return typeof e=="function"}function St(e){return e?Object.entries(e).map(([t,o])=>{const a=qt(o);return a===void 0?{}:{[t]:a}}).reduce((t,o)=>({...t,...o}),{}):{}}function qt(e){if(!Ae(e))if(e.dataType==="map"&&e.properties){const t=St(e.properties);return Object.keys(t).length===0?void 0:t}else return e.defaultValue?e.defaultValue:xr(e.dataType)}function xr(e){return e==="string"||e==="number"?null:e==="boolean"?!1:e==="date"?null:e==="array"?[]:e==="map"?{}:null}function zo({inputValues:e,properties:t,status:o,timestampNowValue:a,setDateToMidnight:n}){return Cr(e,t,(i,s)=>{if(s.dataType==="date"){let l;return o==="existing"&&s.autoValue==="on_update"||(o==="new"||o==="copy")&&(s.autoValue==="on_update"||s.autoValue==="on_create")?l=a:l=i,s.mode==="date"&&(l=n(l)),l}else return i})??{}}function Hn(e,t){const o=e;return Object.entries(t).forEach(([a,n])=>{e&&e[a]!==void 0?o[a]=e[a]:n.validation?.required&&(o[a]=null)}),o}function Le(e){return new Te(e.id,e.path)}function Cr(e,t,o){const a=Object.entries(t).map(([i,s])=>{const l=e&&e[i],c=Ut(l,s,o);if(c!==void 0)return{[i]:c}}).reduce((i,s)=>({...i,...s}),{}),n={...e,...a};if(Object.keys(n).length!==0)return n}function Ut(e,t,o){let a;if(t.dataType==="map"&&t.properties)a=Cr(e,t.properties,o);else if(t.dataType==="array")if(t.of&&Array.isArray(e))a=e.map(n=>Ut(n,t.of,o));else if(t.oneOf&&Array.isArray(e)){const n=t.oneOf?.typeField??Et,i=t.oneOf?.valueField??Lt;a=e.map(s=>{if(s===null)return null;if(typeof s!="object")return s;const l=s[n],c=t.oneOf?.properties[l];return!l||!c?s:{[n]:l,[i]:Ut(s[i],c,o)}})}else a=e;else a=o(e,t);return a}function qe(e){return Array.isArray(e)?e:Object.entries(e).map(([t,o])=>typeof o=="string"?{id:t,label:o}:{...o,id:t})}function $t(e,t){if(t)return e.find(o=>String(o.id)===String(t))}function Vo(e,t){const o=$t(e,t);if(!o?.color)return u.getColorSchemeForSeed(t.toString());if(typeof o=="object"&&"color"in o){if(typeof o.color=="string")return u.CHIP_COLORS[o.color];if(typeof o.color=="object")return o.color}}function Jn(e){return typeof e=="object"&&e.disabled}function Go(e){if(e!==void 0)return typeof e=="object"?e.label:e}const Be=({collection:e,path:t,entityId:o,values:a,previousValues:n,userConfigPersistence:i,fields:s})=>{const l=i?.getCollectionConfig(t),c=We(l,"properties"),p=St(e.properties),f=a??p,h=n??a??p,g=Object.entries(e.properties).map(([b,y])=>{const k=f?xe.getIn(f,b):void 0,v=Ee({propertyKey:b,propertyOrBuilder:y,values:f,previousValues:h,path:t,propertyValue:k,entityId:o,fields:s});return v?{[b]:v}:{}}).filter(b=>b!==null).reduce((b,y)=>({...b,...y}),{}),m=Pe(g,c),A=Object.entries(m).filter(([b,y])=>!!y?.dataType).map(([b,y])=>({[b]:y})).reduce((b,y)=>({...b,...y}),{});return{...e,properties:A,originalCollection:e}};function Ee({propertyOrBuilder:e,propertyValue:t,fromBuilder:o=!1,...a}){if(typeof e=="object"&&"resolved"in e)return e;let n=null;if(e)if(Ae(e)){const i=a.path;if(!i)throw Error("Trying to resolve a property builder without specifying the entity path");const s=e({...a,path:i,propertyValue:t,values:a.values??{},previousValues:a.previousValues??a.values??{}});if(!s)return null;n=Ee({...a,propertyValue:t,propertyOrBuilder:s,fromBuilder:!0})}else{const i=e;if(i.dataType==="map"&&i.properties){const s=Er({...a,properties:i.properties,propertyValue:t});n={...i,resolved:!0,fromBuilder:o,properties:s}}else i.dataType==="array"?n=He({property:i,propertyValue:t,fromBuilder:o,...a}):(i.dataType==="string"||i.dataType==="number")&&i.enumValues&&(n=Br(i,o))}else return null;if(n||(n={...e,resolved:!0,fromBuilder:o}),n.propertyConfig&&!In(n.propertyConfig)){const i=a.fields;if(!i)throw Error(`Trying to resolve a property with key ${n.propertyConfig} that inherits from a custom property config but no custom property configs were provided. Use the property \`propertyConfigs\` in your app config to provide them`);const s=i[n.propertyConfig];if(!s)return console.warn(`Trying to resolve a property with key ${n.propertyConfig} that inherits from a custom property config but no custom property config with that key was found. Check the \`propertyConfigs\` in your app config`),console.warn("Available property configs",i),null;if(s.property){const l=s.property;"propertyConfig"in l&&delete l.propertyConfig;const c=Ee({propertyOrBuilder:l,propertyValue:t,...a});c&&(n=Pe(c,n))}}return n?{...n,resolved:!0}:null}function He({propertyKey:e,property:t,propertyValue:o,...a}){if(t.of){if(Array.isArray(t.of))return{...t,resolved:!0,fromBuilder:a.fromBuilder,resolvedProperties:t.of.map((n,i)=>Ee({propertyKey:`${e}.${i}`,propertyOrBuilder:n,propertyValue:Array.isArray(o)?o[i]:void 0,...a,index:i}))};{const n=t.of,i=Array.isArray(o)?o.map((l,c)=>Ee({propertyKey:`${e}.${c}`,propertyOrBuilder:n,propertyValue:l,...a,index:c})).filter(l=>!!l):[],s=Ee({propertyKey:`${e}`,propertyOrBuilder:n,propertyValue:void 0,...a});if(!s)throw Error("When using a property builder as the 'of' prop of an ArrayProperty, you must return a valid child property");return{...t,resolved:!0,fromBuilder:a.fromBuilder,of:s,resolvedProperties:i}}}else if(t.oneOf){const n=t.oneOf?.typeField??Et,i=Array.isArray(o)?o.map((l,c)=>{const p=l&&l[n],f=t.oneOf?.properties[p];return!p||!f?null:Ee({propertyKey:`${e}.${c}`,propertyOrBuilder:f,propertyValue:o,...a})}).filter(l=>!!l):[],s=Er({properties:t.oneOf.properties,propertyValue:void 0,...a});return{...t,resolved:!0,oneOf:{...t.oneOf,properties:s},fromBuilder:a.fromBuilder,resolvedProperties:i}}else{if(t.Field)return{...t,resolved:!0,fromBuilder:a.fromBuilder};throw Error("The array property needs to declare an 'of' or a 'oneOf' property, or provide a custom `Field`")}}function Er({properties:e,propertyValue:t,...o}){return Object.entries(e).map(([a,n])=>{const i=t&&typeof t=="object"?We(t,a):void 0,s=Ee({propertyKey:a,propertyOrBuilder:n,propertyValue:i,...o});return s?{[a]:s}:{}}).filter(a=>a!==null).reduce((a,n)=>({...a,...n}),{})}function Br(e,t){return typeof e.enumValues=="object"?{...e,resolved:!0,enumValues:qe(e.enumValues)?.filter(o=>o&&o.id&&o.label)??[],fromBuilder:t??!1}:e}function Zn(e){return typeof e=="object"?Object.entries(e).map(([t,o])=>typeof o=="string"?{id:t,label:o}:o):Array.isArray(e)?e:void 0}function Sr(e,t){return typeof e=="string"?t?.find(o=>o.key===e):e}function Ir(e){const{path:t,collections:o=[],currentFullPath:a}=e,n=pe(t).split("/"),i=Gt(n),s=[];for(let l=0;l<i.length;l++){const c=i[l],p=o&&o.find(f=>f.id===c||f.path===c);if(p){const f=p.id??p.path,h=a&&a.length>0?a+"/"+f:f;s.push({type:"collection",path:h,collection:p});const g=pe(pe(t).replace(c,"")),m=g.length>0?g.split("/"):[];if(m.length>0){const A=m[0],b=h+"/"+A;if(s.push({type:"entity",entityId:A,path:h,parentCollection:p}),m.length>1){const y=m.slice(1).join("/");if(!p)throw Error("collection not found resolving path: "+p);const k=p.entityViews,v=k&&k.map(_=>Sr(_,e.contextEntityViews)).filter(Boolean).find(_=>_.key===y);if(v){const _=a&&a.length>0?a+"/"+v.key:v.key;s.push({type:"custom_view",path:_,view:v})}else p.subcollections&&s.push(...Ir({path:y,collections:p.subcollections,currentFullPath:b,contextEntityViews:e.contextEntityViews}))}}break}}return s}function Fr(e,t){try{const o=Object.keys(e);return(t??o).map(n=>{if(e[n]){const i=e[n];return!Ae(i)&&i?.dataType==="map"&&i.properties?{[n]:{...i,properties:Fr(i.properties,i.propertiesOrder)}}:{[n]:i}}else return}).filter(n=>n!==void 0).reduce((n,i)=>({...n,...i}),{})}catch(o){return console.error("Error sorting properties",o),e}}function Nr(e,t){if(e)return typeof e=="string"?e:e(t)}const Xn=/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g,Kn=e=>{const t=e.match(Xn);return t?t.map(o=>o.toLowerCase()).join("-"):""},Rn=/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g,ei=e=>{const t=e.match(Rn);return t?t.map(o=>o.toLowerCase()).join("_"):""};function mt(e=5){return Math.random().toString(36).slice(2,2+e)}function ti(){return Math.floor(Math.random()*16777215).toString(16)}function Wt(e,t="_",o=!0){if(!e)return"";const a="ãàáäâẽèéëêìíïîõòóöôùúüûñç·/_,:;-",n=`aaaaaeeeeeiiiiooooouuuunc${t}${t}${t}${t}${t}${t}${t}`;for(let i=0,s=a.length;i<s;i++)e=e.replace(new RegExp(a.charAt(i),"g"),n.charAt(i));return e=e.toString().replace(/\s+/g,t).replace(/&/g,t).replace(/[^\w\\-]+/g,"").replace(new RegExp("\\"+t+"\\"+t+"+","g"),t).trim().replace(/^\s+|\s+$/g,""),o?e.toLowerCase():e}function ri(e){return e.includes("-")||e.includes("_")||!e.includes(" ")?e.replace(/[-_]/g," ").replace(/\w\S*/g,function(o){return o.charAt(0).toUpperCase()+o.substr(1)}):e}const Yo="MMMM dd, yyyy, HH:mm:ss",jo="::";function Tr(e){return Lo(Me(e))}function Lo(e){return e.length===1?e[0]:e.reduce((t,o)=>`${t}${jo}${o}`)}function Me(e){return e.split("/").filter((t,o)=>o%2===0)}function oi(e){return e?e.toString():""}function qo(e){if(!e)return;const t=e.match(/\/(.*?)\/([a-z]*)?$/i);return t?new RegExp(t[1],t[2]||""):new RegExp(e,"")}function ai(e){return e.match(/\/((?![*+?])(?:[^\r\n[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*])+)\/((?:g(?:im?|mi?)?|i(?:gm?|mg?)?|m(?:gi?|ig?)?)?)/)?!0:!!e.match(/((?![*+?])(?:[^\r\n[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*])+)/)}function Ht(e,t,o,a=300){const n=d.useRef(!1),i=()=>{t(),n.current=!1},s=d.useRef(void 0);d.useEffect(()=>(n.current=!0,clearTimeout(s.current),s.current=setTimeout(i,a),()=>{o&&i()}),[o,e])}function Uo(e,t){const o=Ee({propertyKey:"ignore",propertyOrBuilder:e,fields:t});return o?o.dataType==="reference"?!0:o.dataType==="array"?Array.isArray(o.of)?!1:o.of?.dataType==="reference":!1:null}function ni(e){return r.jsx(u.CircleIcon,{size:e})}function Jt(e,t){const o=e?.Icon??u.CircleIcon;return r.jsx(o,{size:t})}function fe(e,t="small",o={}){if(Ae(e))return r.jsx(u.FunctionsIcon,{size:t});{const a=fr(e,o);return Jt(a,t)}}function ii(e,t){return Ae(e)?"#888":fr(e,t)?.color??"#666"}function at(e,t){if(typeof e=="object"){if(t in e)return e[t];if(t.includes(".")){const o=t.split("."),a=e[o[0]];if(typeof a=="object"&&a.dataType==="map"&&a.properties)return at(a.properties,o.slice(1).join("."))}}}function Pr(e,t){if(typeof e=="object"){if(t in e)return e[t];if(t.includes(".")){const o=t.split("."),a=e[o[0]];if(a.dataType==="map"&&a.properties)return Pr(a.properties,o.slice(1).join("."))}}}function si(e){return e.replace(/\.([^.]*)/g,"[$1]")}function $o(e,t){if(!t)return e;const o={};return t.filter(Boolean).forEach(a=>{const n=at(e,a);typeof n=="object"&&n.dataType==="map"&&n.properties&&(o[a]={...n,properties:$o(n.properties,n.propertiesOrder??[])}),n&&(o[a]=n)}),o}function li(e){return e.propertiesOrder?e.propertiesOrder:[...Object.keys(e.properties),...(e.additionalFields??[]).map(t=>t.key)]}const Zt={read:!0,edit:!0,create:!0,delete:!0};function It(e,t,o,a){const n=e.permissions;if(n===void 0)return Zt;if(typeof n=="object")return n;if(typeof n=="function")return n({entity:a,user:t.user,authController:t,collection:e,pathSegments:o});throw console.error("Permissions:",n),Error("New type of permission added and not mapped")}function Mr(e,t,o,a){return It(e,t,o,a).edit??Zt.edit}function ft(e,t,o,a){return It(e,t,o,a).create??Zt.create}function Xt(e,t,o,a){return It(e,t,o,a).delete??Zt.delete}const Qr={abc:"alphabet character font letter symbol text type",access_alarm:"clock time",access_alarms:"clock time",accessibility:"accessible body handicap help human people person user",accessibility_new:"accessible arms body handicap help human people person user",accessible:"accessibility body handicap help human people person user wheelchair",accessible_forward:"accessibility body handicap help human people person wheelchair",access_time:"clock time",account_balance:"bank bill building card cash coin commerce court credit currency dollars finance money online payment structure temple transaction",account_balance_wallet:"bank bill card cash coin commerce credit currency dollars finance money online payment transaction",account_box:"avatar face human people person profile square thumbnail user",account_circle:"avatar face human people person profile thumbnail user",account_tree:"analytics chart connect data diagram flow infographic measure metrics process project sitemap square statistics structure tracking",ac_unit:"air cold conditioner freeze snowflake temperature weather winter",adb:"android bridge debug",add:"+ create item new plus symbol",add_alarm:"clock plus time",add_alert:"+ active alarm announcement bell callout chime information new notifications notify plus reminder ring sound symbol",add_a_photo:"+ camera lens new photography picture plus symbol",add_box:"create new plus square symbol",add_business:"+ bill building card cash coin commerce company credit currency dollars market money new online payment plus retail shopping storefront symbol",add_card:"+ bill cash coin commerce cost credit currency dollars finance money new online payment plus price shopping symbol",add_chart:"+ analytics bars data diagram infographic measure metrics new plus statistics symbol tracking",add_circle:"+ create new plus",add_circle_outline:"+ create new plus",add_comment:"+ bubble chat communicate feedback message new plus speech symbol",add_ic_call:"+ cell contact device hardware mobile new plus symbol telephone",add_link:"attach clip new plus symbol",add_location:"+ destination direction gps maps new pin place plus stop symbol",add_location_alt:"+ destination direction maps new pin place plus stop symbol",add_moderator:"+ certified new plus privacy private protection security shield symbol verified",add_photo_alternate:"+ image landscape mountains new photography picture plus symbol",add_road:"+ destination direction highway maps new plus stop street symbol traffic",add_shopping_cart:"card cash checkout coin commerce credit currency dollars money online payment plus",add_task:"+ approve check circle completed increase mark ok plus select tick yes",add_to_drive:"+ app backup cloud data files folders gdrive google plus recovery storage",add_to_home_screen:"Android add arrow cell device hardware iOS mobile phone tablet to up",add_to_photos:"collection image landscape mountains photography picture plus",add_to_queue:"+ Android backlog chrome desktop device display hardware iOS lineup mac monitor new plus screen symbol television watch web window",adf_scanner:"document feeder machine office",adjust:"alter center circles control dot edit filter fix image mix move setting slider sort switch target tune",admin_panel_settings:"account avatar certified face human people person privacy private profile protection security shield user verified",ad_units:"Android banner cell device hardware iOS mobile notifications phone tablet top",agriculture:"automobile cars cultivation farm harvest maps tractor transport travel truck vehicle",air:"blowing breeze flow wave weather wind",airlines:"airplane airport flight transportation travel trip",airline_seat_flat:"bed body business class first human people person rest sleep travel",airline_seat_flat_angled:"bed body business class first human people person rest sleep travel",airline_seat_individual_suite:"bed body business class first human people person rest sleep travel",airline_seat_legroom_extra:"body feet human people person sitting space travel",airline_seat_legroom_normal:"body feet human people person sitting space travel",airline_seat_legroom_reduced:"body feet human people person sitting space travel",airline_seat_recline_extra:"body feet human legroom people person sitting space travel",airline_seat_recline_normal:"body extra feet human legroom people person sitting space travel",airline_stops:"arrow destination direction layover location maps place transportation travel trip",airplanemode_active:"flight flying on signal",airplanemode_inactive:"airport disabled enabled flight flying maps offline slash transportation travel",airplane_ticket:"airport boarding flight fly maps pass transportation travel",airplay:"apple arrow cast connect control desktop device display monitor screen signal television tv",airport_shuttle:"automobile bus cars commercial delivery direction maps mini public transportation travel truck van vehicle",alarm:"alart bell clock countdown date notification schedule time",alarm_add:"+ alart bell clock countdown date new notification plus schedule symbol time",alarm_off:"alart bell clock disabled duration enabled notification slash stop timer watch",alarm_on:"alart bell checkmark clock disabled duration enabled notification off ready slash start timer watch",album:"artist audio bvb cd computer data disk file music play record sound storage track vinyl",align_horizontal_center:"alignment format layout lines paragraph rules style text",align_horizontal_left:"alignment format layout lines paragraph rules style text",align_horizontal_right:"alignment format layout lines paragraph rules style text",align_vertical_bottom:"alignment format layout lines paragraph rules style text",align_vertical_center:"alignment format layout lines paragraph rules style text",align_vertical_top:"alignment format layout lines paragraph rules style text",all_inbox:"Inbox delivered delivery email letter message post send",all_inclusive:"endless forever infinite infinity loop mobius neverending strip sustainability sustainable",all_out:"arrows circle directional expand shape",alternate_email:"@ address contact tag",alt_route:"alternate alternative arrows direction maps navigation options other routes split symbol",analytics:"assessment bar chart data diagram infographic measure metrics statistics tracking",anchor:"google logo",android:"brand character logo mascot operating system toy",animation:"circles film motion movement movie moving sequence video",announcement:"! alert attention balloon bubble caution chat comment communicate danger error exclamation feedback important mark message news notification speech symbol warning",aod:"Android always device display hardware homescreen iOS mobile phone tablet",apartment:"accommodation architecture building city company estate flat home house office places real residence residential shelter units workplace",api:"developer development enterprise software",app_blocking:"Android applications cancel cell device hardware iOS mobile phone stopped tablet",apple:"brand logo",app_registration:"apps edit pencil register",approval:"apply approvals approve certificate certification disapproval drive file impression ink mark postage stamp",apps:"all applications circles collection components dots grid homescreen icons interface squares ui ux",app_settings_alt:"Android applications cell device gear hardware iOS mobile phone tablet",app_shortcut:"bookmarked favorite highlight important mobile saved software special star",apps_outage:"all applications circles collection components dots grid interface squares ui ux",architecture:"art compass design drawing engineering geometric tool",archive:"inbox mail store",arrow_back:"application components direction interface left navigation previous screen ui ux website",arrow_back_ios:"application chevron components direction interface left navigation previous screen ui ux website",arrow_back_ios_new:"application chevron components direction interface left navigation previous screen ui ux website",arrow_circle_down:"direction navigation",arrow_circle_up:"direction navigation",arrow_downward:"application components direction interface navigation screen ui ux website",arrow_drop_down:"application components direction interface navigation screen ui ux website",arrow_drop_down_circle:"application components direction interface navigation screen ui ux website",arrow_drop_up:"application components direction interface navigation screen ui ux website",arrow_forward:"application arrows components direction interface navigation right screen ui ux website",arrow_forward_ios:"application chevron components direction interface navigation next right screen ui ux website",arrow_left:"application backstack backward components direction interface navigation previous screen ui ux website",arrow_right:"application components continue direction forward interface navigation screen ui ux website",arrow_right_alt:"arrows direction east navigation pointing shape",arrow_upward:"application components direction interface navigation screen submit ui ux website",article:"clarify document file news page paper text writing",art_track:"album artist audio display format image insert music photography picture sound tracks",aspect_ratio:"expand image monitor resize resolution scale screen square",assessment:"analytics bars chart data diagram infographic measure metrics report statistics tracking",assignment:"article clipboard document task text writing",assignment_ind:"account clipboard document face people person profile task user",assignment_late:"! alert announcement attention caution clipboard danger document error exclamation important mark notification symbol task warning",assignment_return:"arrow back clipboard document left point retun task",assignment_returned:"arrow clipboard document down point task",assignment_turned_in:"approve checkmark clipboard complete document done finished ok select task tick validate verified yes",assistant:"bubble chat comment communicate feedback message recommendation speech star suggestion twinkle",assistant_direction:"destination location maps navigate navigation pin place right stop",assistant_photo:"flag recommendation smart star suggestion",assured_workload:"compliance confidential federal government regulatory secure sensitive",atm:"alphabet automated bill card cart cash character coin commerce credit currency dollars font letter machine money online payment shopping symbol teller text type",attach_email:"attachment clip compose envelop letter link message send",attach_file:"add item link mail media paperclip",attachment:"compose file image item link paperclip",attach_money:"bill card cash coin commerce cost credit currency dollars finance online payment price profit sale symbol",attractions:"amusement entertainment ferris fun maps park places wheel",attribution:"attribute body copyright copywriter human people person",audio_file:"document key music note sound track",audiotrack:"key music note sound",auto_awesome:"adjust editing enhance filter image photography photos setting stars",auto_awesome_mosaic:"adjust collage editing enhance filter grid image layout photographs photography photos pictures setting",auto_awesome_motion:"adjust animation collage editing enhance filter image live photographs photography photos pictures setting video",auto_delete:"bin can clock date garbage remove schedule time trash",auto_fix_high:"adjust editing enhance erase magic modify pen stars tool wand",auto_fix_normal:"edit erase magic modify stars wand",auto_fix_off:"disabled edit enabled erase magic modify on slash stars wand",autofps_select:"A alphabet character font frame frequency letter per rate seconds symbol text type",auto_graph:"analytics chart data diagram infographic line measure metrics stars statistics tracking",auto_mode:"around arrows direction inprogress loading navigation nest refresh renew rotate turn",autorenew:"around arrows cached direction inprogress loader loading navigation pending refresh rotate status turn",auto_stories:"audiobook flipping pages reading story",av_timer:"clock countdown duration minutes seconds stopwatch",baby_changing_station:"babies bathroom body children father human infant kids mother newborn people person toddler wc young",backpack:"bookbag knapsack storage travel",backspace:"arrow cancel clear correct delete erase remove",backup:"arrow cloud data drive files folders point storage submit upload",backup_table:"drive files folders format layout stack storage",badge:"account avatar card certified employee face human identification name people person profile security user work",bakery_dining:"bread breakfast brunch croissant food",balance:"equal equilibrium equity impartiality justice parity stability. steadiness symmetry",balcony:"architecture doors estate home house maps outside place real residence residential stay terrace window",ballot:"bullet bulllet election list point poll vote",bar_chart:"analytics anlytics data diagram infographic measure metrics statistics tracking",batch_prediction:"bulb idea light",bathroom:"closet home house place plumbing shower sprinkler wash water wc",bathtub:"bathing bathroom clean home hotel human person shower travel",battery_alert:"! attention caution cell charge danger error exclamation important mark mobile notification power symbol warning",battery_charging_full:"cell charge lightening lightning mobile power thunderbolt",battery_full:"cell charge mobile power",battery_saver:"+ add charge charging new plus power symbol",battery_std:"cell charge mobile plus power standard",battery_unknown:"? assistance cell charge help information mark mobile power punctuation question support symbol",beach_access:"parasol places summer sunny umbrella",bed:"bedroom double full furniture home hotel house king night pillows queen rest size sleep",bedroom_baby:"babies children home horse house infant kid newborn rocking toddler young",bedroom_child:"children furniture home hotel house kid night pillows rest size sleep twin young",bedroom_parent:"double full furniture home hotel house king master night pillows queen rest sizem sleep",bedtime:"nightime sleep",bedtime_off:"nightime sleep",beenhere:"approve archive bookmark checkmark complete done favorite label library reading remember ribbon save select tag tick validate verified yes",bento:"box dinner food lunch meal restaurant takeout",bike_scooter:"automobile cars maps transportation vehicle vespa",biotech:"chemistry laboratory microscope research science technology test",blender:"appliance cooking electric juicer kitchen machine vitamix",blinds_closed:"cover curtains nest shutter sunshade",block:"allowed avoid banned cancel close disable entry exit not prohibited quit remove stop",bloodtype:"donate droplet emergency hospital medicine negative positive water",bluetooth:"cast connection device network paring streaming symbol wireless",bluetooth_audio:"connection device music signal sound symbol",bluetooth_connected:"cast connection device network paring streaming symbol wireless",bluetooth_disabled:"cast connection device enabled network offline paring slash streaming symbol wireless",bluetooth_drive:"automobile cars cast connection device maps paring streaming symbol transportation travel vehicle wireless",bluetooth_searching:"connection device network paring symbol wireless",blur_circular:"circle dots editing effect enhance filter",blur_linear:"dots editing effect enhance filter",blur_off:"disabled dots editing effect enabled enhance on slash",blur_on:"disabled dots editing effect enabled enhance filter off slash",bolt:"electric energy fast flash lightning power thunderbolt",book:"blog bookmark favorite label library reading remember ribbon save tag",bookmark:"archive favorite follow label library reading remember ribbon save tag",bookmark_add:"+ favorite plus remember ribbon save symbol",bookmark_added:"approve check complete done favorite remember save select tick validate verified yes",bookmark_border:"archive favorite label library outline reading remember ribbon save tag",bookmark_remove:"delete favorite minus remember ribbon save subtract",bookmarks:"favorite label layers library multiple reading remember ribbon save stack tag",book_online:"Android admission appointment cell device event hardware iOS mobile pass phone reservation tablet ticket",border_all:"doc editing editor spreadsheet stroke text type writing",border_bottom:"doc editing editor spreadsheet stroke text type writing",border_clear:"doc editing editor spreadsheet stroke text type writing",border_color:"all create doc editing editor marker pencil spreadsheet stroke text type writing",border_horizontal:"doc editing editor spreadsheet stroke text type writing",border_inner:"doc editing editor spreadsheet stroke text type writing",border_left:"doc editing editor spreadsheet stroke text type writing",border_outer:"doc editing editor spreadsheet stroke text type writing",border_right:"doc editing editor spreadsheet stroke text type writing",border_style:"color doc editing editor spreadsheet stroke text type writing",border_top:"doc editing editor spreadsheet stroke text type writing",border_vertical:"doc editing editor spreadsheet stroke text type writing",boy:"body gender human male people person social symbol",branding_watermark:"components copyright design emblem format identity interface layout logo screen stamp ui ux website window",breakfast_dining:"bakery bread butter food toast",brightness_1:"circle control crescent cresent level moon screen",brightness_2:"circle control crescent cresent level moon night screen",brightness_3:"circle control crescent cresent level moon night screen",brightness_4:"circle control crescent cresent dark level moon night screen sun",brightness_5:"circle control crescent cresent level moon screen sun",brightness_6:"circle control crescent cresent level moon screen sun",brightness_7:"circle control crescent cresent level light moon screen sun",brightness_auto:"A control display level mobile monitor phone screen",brightness_high:"auto control mobile monitor phone",brightness_low:"auto control mobile monitor phone",brightness_medium:"auto control mobile monitor phone",broken_image:"corrupt error landscape mountains photography picture torn",browser_not_supported:"disabled enabled internet off on page screen slash website www",browser_updated:"Android arrow chrome desktop device display download hardware iOS mac monitor screen web window",brunch_dining:"breakfast champagne champaign drink food lunch meal",brush:"art design draw editing painting tool",bubble_chart:"analytics bars data diagram infographic measure metrics statistics tracking",bug_report:"animal file fix insect issue problem testing ticket virus warning",build:"adjust fix repair spanner tool wrench",build_circle:"adjust fix repair tool wrench",bungalow:"architecture cottage estate home house maps place real residence residential stay traveling",burst_mode:"image landscape mountains multiple photography picture",bus_alert:"! attention automobile cars caution danger error exclamation important maps mark notification symbol transportation vehicle warning",business:"address apartment architecture building company estate flat home office place real residence residential shelter structure",business_center:"baggage briefcase places purse suitcase work",cabin:"architecture camping cottage estate home house log maps place real residence residential stay traveling wood",cable:"connection device electronics usb wire",cached:"around arrows inprogress loader loading refresh reload renew rotate",cake:"baked birthday candles celebration dessert food frosting party pastries pastry pie social sweet",calculate:"+ - = calculator count finance math",calendar_today:"date event month remember reminder schedule week",calendar_view_day:"date event format grid layout month remember reminder schedule today week",calendar_view_month:"date event format grid layout schedule today",calendar_view_week:"date event format grid layout month schedule today",call:"cell contact device hardware mobile talk telephone",call_end:"cell contact device hardware mobile talk telephone",call_made:"arrow device mobile",call_merge:"arrow device mobile",call_missed:"arrow device mobile",call_missed_outgoing:"arrow device mobile",call_received:"arrow device mobile",call_split:"arrow device mobile",call_to_action:"alert bar components cta design information interface layout message notification screen ui ux website window",camera:"album aperture lens photography picture record screenshot shutter",camera_alt:"image photography picture",camera_enhance:"important lens photography picture quality special star",camera_front:"body human lens mobile person phone photography portrait selfie",camera_indoor:"architecture building estate filming home house image inside motion nest picture place real residence residential shelter videography",camera_outdoor:"architecture building estate filming home house image motion nest outside picture place real residence residential shelter videography",camera_rear:"front lens mobile phone photography picture portrait selfie",camera_roll:"film image library photography",cameraswitch:"arrows flip rotate swap view",campaign:"alert announcement loud megaphone microphone notification speaker",cancel:"circle close cross disable exit status stop",cancel_presentation:"close device exit no quit remove screen share slide stop website window",cancel_schedule_send:"email no quit remove share stop x",candlestick_chart:"analytics data diagram finance infographic measure metrics statistics tracking",card_giftcard:"account balance bill cart cash certificate coin commerce creditcard currency dollars money online payment present shopping",card_membership:"bill bookmark cash certificate coin commerce cost creditcard currency dollars finance loyalty money online payment shopping subscription",card_travel:"bill cash coin commerce cost creditcard currency dollars finance membership miles money online payment trip",carpenter:"building construction cutting handyman repair saw tool",car_rental:"automobile cars key maps transportation vehicle",car_repair:"automobile cars maps transportation vehicle",cases:"baggage briefcase business purse suitcase",casino:"dice dots entertainment gamble gambling games luck places",cast:"Android airplay chromecast connect desktop device display hardware iOS mac monitor screencast streaming television tv web window wireless",cast_connected:"Android airplay chromecast desktop device display hardware iOS mac monitor screencast streaming television tv web window wireless",cast_for_education:"Android airplay chrome connect desktop device display hardware iOS learning lessons mac monitor screencast streaming teaching television tv web window wireless",catching_pokemon:"go pokestop travel",category:"categories circle collection items product sort square triangle",celebration:"activity birthday event fun party",cell_tower:"broadcast casting network signal transmitting wireless",cell_wifi:"connection data internet mobile network phone service signal wireless",center_focus_strong:"camera image lens photography zoom",center_focus_weak:"camera image lens photography zoom",chair:"comfort couch decoration furniture home house living lounging loveseat room seating sofa",chair_alt:"cahir furniture home house kitchen lounging seating table",chalet:"architecture cottage estate home house maps place real residence residential stay traveling",change_circle:"around arrows direction navigation rotate",change_history:"shape triangle",charging_station:"Android battery cell device electric hardware iOS lightning mobile phone tablet thunderbolt",chat:"bubble comment communicate feedback message speech talk text",chat_bubble:"comment communicate feedback message speech talk text",chat_bubble_outline:"comment communicate feedback message speech talk text",check:"checkmark complete confirm correct done enter okay purchased select success tick yes",check_box:"approved button checkmark component control form ok selected selection square success tick toggle ui yes",check_box_outline_blank:"button checkmark component control deselected empty form selection square tick toggle ui",check_circle:"approve checkmark complete done download finished ok select success tick upload validate verified yes",check_circle_outline:"approve checkmark complete done finished ok select success tick validate verified yes",checkroom:"check closet clothes coat hanger",chevron_left:"arrows back direction triangle",chevron_right:"arrows direction forward triangle",child_care:"babies baby children face infant kids newborn toddler young",child_friendly:"baby care carriage children infant kid newborn stroller toddler young",chrome_reader_mode:"text",circle:"bullet button dot full geometry moon period radio",circle_notifications:"active alarm alert bell chime notify reminder ring sound",class:"archive bookmark category favorite item label library reading remember ribbon save tag",clean_hands:"bacteria disinfect germs gesture sanitizer",cleaning_services:"dust sweep",clear:"allowed back cancel correct cross delete disable erase exit not times",clear_all:"delete document erase format lines list notifications wipe",close:"allowed cancel cross disable exit not status stop times",closed_caption:"accessible alphabet character decoder font language letter media movies subtitles symbol text tv type",closed_caption_disabled:"accessible alphabet character decoder enabled font language letter media movies off slash subtitles symbol text tv type",closed_caption_off:"accessible alphabet character decoder font language letter media movies outline subtitles symbol text tv type",close_fullscreen:"action arrows collapse direction minimize",cloud:"connection internet network sky upload weather",cloud_circle:"application backup connection drive files folders internet network sky storage upload",cloud_done:"application approve backup checkmark complete connection drive files folders internet network ok select sky storage tick upload validate verified yes",cloud_download:"application arrow backup connection drive files folders internet network sky storage upload",cloud_off:"application backup connection disabled drive enabled files folders internet network offline sky slash storage upload",cloud_queue:"connection internet network sky upload",cloud_sync:"application around backup connection drive files folders inprogress internet loading network refresh renew rotate sky storage turn upload",cloud_upload:"application arrow backup connection download drive files folders internet network sky storage",co2:"carbon dioxide gas",code:"brackets css developer engineering html parenthesis platform",code_off:"brackets css developer disabled enabled engineering html on platform slash",coffee:"beverage cup drink mug plate set tea",coffee_maker:"appliances beverage cup drink machine mug",collections:"album gallery image landscape library mountains photography picture stack",collections_bookmark:"album archive favorite gallery label library reading remember ribbon save stack tag",colorize:"color dropper extract eye picker pipette tool",color_lens:"art paint pallet",comment:"bubble chat communicate document feedback message note outline speech",comment_bank:"archive bookmark bubble cchat communicate favorite label library message remember ribbon save speech tag",comments_disabled:"bubble chat communicate enabled feedback message offline on slash speech",commit:"accomplish bind circle dedicate execute line perform pledge",commute:"automobile car direction maps public train transportation trip vehicle",compare:"adjustment editing edits enhance fix images photography photos scan settings",compare_arrows:"collide directional facing left pointing pressure push right together",compass_calibration:"connection internet location maps network refresh service signal wifi wireless",compress:"arrows collide pressure push together",computer:"Android chrome desktop device hardware iOS laptop mac monitor pc web window",confirmation_number:"admission entertainment event ticket",connected_tv:"Android airplay chrome desktop device display hardware iOS mac monitor screencast streaming television web window wireless",connecting_airports:"airplanes flight transportation travel trip",connect_without_contact:"communicating distance people signal socialize",construction:"build carpenter equipment fix hammer improvement industrial industry repair tools wrench",contactless:"applepay bluetooth cash connection connectivity credit device finance payment signal tap transaction wifi wireless",contact_mail:"account address avatar communicate email face human information message people person profile user",contact_page:"account avatar data document drive face folders human people person profile sheet slide storage user writing",contact_phone:"account avatar call communicate face human information message mobile number people person profile user",contacts:"account address avatar call cell face human information mobile number people person phone profile user",contact_support:"? alert announcement bubble chat comment communicate help information mark message punctuation speech symbol vquestion",content_copy:"cut document duplicate file multiple past",content_cut:"copy document file past scissors trim",content_paste:"clipboard copy cut document file multiple",content_paste_go:"clipboard disabled document enabled file slash",content_paste_off:"clipboard disabled document enabled file slash",content_paste_search:"clipboard document file find trace track",contrast:"black editing effect filter grayscale images photography pictures settings white",control_camera:"adjust arrows center direction left move right",control_point:"+ add circle plus",control_point_duplicate:"+ add circle multiple new plus symbol",co_present:"arrow co-present presentation screen share slides togather website",copy_all:"content cut document file multiple page paper past",copyright:"alphabet character circle emblem font legal letter owner symbol text",coronavirus:"19 bacteria covid disease germs illness sick social",corporate_fare:"architecture building business estate organization place real residence residential shelter",cottage:"architecture beach estate home house lake lodge maps place real residence residential stay traveling",countertops:"home house kitchen sink table",create:"compose editing input item new pencil write writing",create_new_folder:"+ add data directory document drive file plus sheet slide storage symbol",credit_card:"bill cash charge coin commerce cost creditcard currency dollars finance information money online payment price shopping symbol",credit_card_off:"charge commerce cost disabled enabled finance money online payment slash",credit_score:"approve bill card cash check coin commerce complete cost currency dollars done finance loan mark money ok online payment select symbol tick validate verified yes",crib:"babies baby bassinet bed children cradle infant kid newborn sleeping toddler",crop:"adjustments area editing frame images photos rectangle settings size square",crop_169:"adjustments area by editing frame images photos picture rectangle settings size square",crop_32:"adjustments area by editing frame images photos picture rectangle settings size square",crop_54:"adjustments area by editing frame images photos picture rectangle settings size square",crop_75:"adjustments area by editing frame images photos picture rectangle settings size square",crop_din:"adjustments area editing frame images photos picture rectangle settings size square",crop_free:"adjustments barcode editing focus frame image photos qrcode settings size square zoom",crop_landscape:"adjustments area editing frame images photos picture settings size square",crop_original:"adjustments area editing frame images photos picture settings size square",crop_portrait:"adjustments area editing frame images photos picture rectangle settings size square",crop_rotate:"adjustments area arrows editing frame images photos settings size turn",crop_square:"adjustments area editing frame images photos rectangle settings size",css:"alphabet brackets character code developer engineering font html letter platform symbol text type",currency_exchange:"360 around arrows cash coin commerce direction dollars inprogress money pay renew rotate sync turn universal",currency_franc:"bill card cash coin commerce cost credit dollars finance money online payment price shopping symbol",currency_lira:"bill card cash coin commerce cost credit dollars finance money online payment price shopping symbol",currency_pound:"bill card cash coin commerce cost credit dollars finance money online payment price shopping symbol",currency_ruble:"bill card cash coin commerce cost credit dollars finance money online payment price shopping symbol",currency_rupee:"bill card cash coin commerce cost credit dollars finance money online payment price shopping symbol",currency_yen:"bill card cash coin commerce cost credit dollars finance money online payment price shopping symbol",currency_yuan:"bill card cash coin commerce cost credit dollars finance money online payment price shopping symbol",curtains:"blinds cover nest open shutter sunshade",curtains_closed:"blinds cover nest shutter sunshade",dangerous:"broken fix no sign stop update warning wrong",dark_mode:"application device interface moon night silent theme ui ux website",dashboard:"cards format layout rectangle shapes square website",dashboard_customize:"cards format layout rectangle shapes square website",data_saver_off:"analytics bars chart diagram donut infographic measure metrics ring statistics tracking",data_saver_on:"+ add analytics chart diagram infographic measure metrics new plus ring statistics symbol tracking",data_thresholding:"hidden privacy thresold",data_usage:"analytics chart circle diagram infographic measure metrics statistics tracking",date_range:"agenda calendar event month remember reminder schedule time today week",deblur:"adjust editing enhance face image lines photography sharpen",deck:"chairs furniture garden home house outdoors outside patio social terrace umbrella yard",dehaze:"adjust editing enhance image lines photography remove",delete:"bin garbage junk recycle remove trashcan",delete_forever:"bin cancel exit garbage junk recycle remove trashcan",delete_outline:"bin can garbage remove trash",delete_sweep:"bin garbage junk recycle remove trashcan",delivery_dining:"food meal restaurant scooter takeout transportation vehicle vespa",density_large:"horizontal lines rules",density_medium:"horizontal lines rules",density_small:"horizontal lines rules",departure_board:"automobile bus cars clock maps public schedule time transportation travel vehicle",description:"article bill data document drive file folders invoice item notes page paper sheet slide text writing",desktop_access_disabled:"Android apple chrome device display enabled hardware iOS mac monitor offline pc screen slash web window",desktop_mac:"Android apple chrome device display hardware iOS monitor pc screen web window",desktop_windows:"Android chrome device display hardware iOS mac monitor pc screen television tv web",details:"editing enhance image photography sharpen triangle",developer_board:"computer development devkit hardware microchip processor",developer_board_off:"computer development disabled enabled hardware microchip on processor slash",developer_mode:"Android bracket cell code development device engineer hardware iOS mobile phone tablet",device_hub:"Android circle computer desktop hardware iOS laptop mobile monitor phone square tablet triangle watch wearable web",devices:"Android computer desktop hardware iOS laptop mobile monitor phone tablet watch wearable web",devices_other:"Android cell chrome desktop gadget hardware iOS ipad mac mobile monitor phone smartwatch tablet vr wearables window",device_thermostat:"celsius fahrenheit temperature thermometer",device_unknown:"? Android assistance cell hardware help iOS information mark mobile phone punctuation question support symbol tablet",dialer_sip:"alphabet call cell character contact device font hardware initiation internet letter mobile over protocol routing session symbol telephone text type voice",dialpad:"buttons call contact device dots mobile numbers phone",diamond:"fashion gems jewelry logo retail valuables",difference:"compare content copy cut document duplicate file multiple past",dining:"cafeteria cutlery diner eating fork room spoon",dinner_dining:"breakfast food fork lunch meal restaurant spaghetti utensils",directions:"arrow maps naviate right route sign traffic",directions_bike:"bicycle human maps person public route transportation",directions_boat:"automobile cars ferry maps public transportation vehicle",directions_boat_filled:"automobile cars ferry maps public transportation vehicle",directions_bus:"automobile cars maps public transportation vehicle",directions_bus_filled:"automobile cars maps public transportation vehicle",directions_car:"automobile cars maps public transportation vehicle",directions_car_filled:"automobile cars maps public transportation vehicle",directions_off:"arrow disabled enabled maps right route sign slash traffic",directions_railway:"automobile cars maps public train transportation vehicle",directions_railway_filled:"automobile cars maps public train transportation vehicle",directions_run:"body health human jogging maps people person route running walk",directions_subway:"automobile cars maps public rail train transportation vehicle",directions_subway_filled:"automobile cars maps public rail train transportation vehicle",directions_transit:"automobile cars maps metro public rail subway train transportation vehicle",directions_transit_filled:"automobile cars maps public rail subway train transportation vehicle",directions_walk:"body human jogging maps people person route run",dirty_lens:"camera photography picture splat",disabled_by_default:"box cancel close exit no quit remove square stop",disc_full:"! alert attention caution cd danger error exclamation important mark music notification storage symbol vinyl warning",display_settings:"Android application change chrome desktop details device gear hardware iOS information mac monitor options personal screen service web window",dns:"address bars domain information ip list lookup name network server system",dock:"Android cell charger charging connector device hardware iOS mobile phone power station tablet",document_scanner:"article data drive file folders notes page paper sheet slide text writing",do_disturb:"cancel close denied deny remove silence stop",do_disturb_alt:"cancel close denied deny remove silence stop",do_disturb_off:"cancel close denied deny disabled enabled on remove silence slash stop",do_disturb_on:"cancel close denied deny disabled enabled off remove silence slash stop",domain:"apartment architecture building business estate home place real residence residential shelter web www",domain_add:"+ apartment architecture building business estate home new place plus real residence residential shelter symbol web www",domain_disabled:"apartment architecture building business company enabled estate home internet maps office offline on place real residence residential slash website",domain_verification:"application approve check complete design desktop done interface internet layout mark ok screen select tick ui ux validate verified website window www yes",done:"approve checkmark complete finished ok select success tick validate verified yes",done_all:"approve checkmark complete finished layers multiple ok select stack success tick validate verified yes",done_outline:"all approve checkmark complete finished ok select success tick validate verified yes",do_not_disturb:"cancel close denied deny remove silence stop",do_not_disturb_alt:"cancel close denied deny remove silence stop",do_not_disturb_off:"cancel close denied deny disabled enabled on remove silence slash stop",do_not_disturb_on:"cancel close denied deny disabled enabled off remove silence slash stop",do_not_disturb_on_total_silence:"busy mute on quiet total",do_not_step:"boot disabled enabled feet foot off on shoe slash sneaker",do_not_touch:"disabled enabled fingers gesture hand off on slash",donut_large:"analytics chart circle complete data diagram infographic inprogress, measure metrics pie statistics tracking",donut_small:"analytics chart circle data diagram infographic inprogress measure metrics pie statistics tracking",door_back:"closed doorway entrance exit home house",doorbell:"alarm home house ringing",door_front:"closed doorway entrance exit home house",door_sliding:"automatic doorway double entrance exit glass home house two",double_arrow:"arrows chevron direction multiple navigation right",downhill_skiing:"athlete athletic body entertainment exercise hobby human people person ski snow social sports travel winter",download:"arrow downloads drive install upload",download_done:"arrows check downloads drive installed ok tick upload",download_for_offline:"arrow circle for install offline upload",downloading:"arrow circle downloads install pending progress upload",drafts:"document email envelope file letter message read",drag_handle:"application components design interface layout lines menu move screen ui ux website window",drag_indicator:"application circles components design dots drop interface layout mobile monitor move phone screen shape shift tablet ui ux website window",drive_eta:"automobile cars destination direction estimate maps public transportation travel trip vehicle",drive_file_move:"arrows data direction document folders right sheet side slide storage",drive_file_rename_outline:"compose create draft editing input pencil write writing",drive_folder_upload:"arrow data document file sheet slide storage",dry:"air bathroom dryer fingers gesture hand wc",dry_cleaning:"hanger hotel laundry places service towel",duo:"call chat conference device video",dvr:"Android audio chrome computer desktop device display electronic hardware iOS laptop list mac monitor recorder screen tv video web window",dynamic_feed:"layer live multiple post refresh update",dynamic_form:"code electric fast lightning lists questionnaire thunderbolt",earbuds:"accessory audio earphone headphone listen music sound",earbuds_battery:"accessory audio charging earphone headphone listen music sound",east:"arrow directional maps navigation right",edgesensor_high:"Android cell device hardware iOS mobile move phone sensitivity tablet vibrate",edgesensor_low:"Android cell device hardware iOS mobile move phone sensitivity tablet vibrate",edit:"compose create editing input new pencil write writing",edit_attributes:"approve attribution check complete done mark ok select tick validate verified yes",edit_location:"destination direction gps maps pencil pin place stop write",edit_location_alt:"pencil pin",edit_notifications:"active alarm alert bell chime compose create draft editing input new notify pencil reminder ring sound write writing",edit_off:"compose create disabled draft editing enabled input new offline on pencil slash write writing",edit_road:"destination direction highway maps pencil street traffic",egg:"breakfast brunch food",egg_alt:"breakfast brunch food",eighteen_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",eight_k:"8000 8K alphabet character digit display font letter number pixels resolution symbol text type video",eight_k_plus:"+ 7000 8K alphabet character digit display font letter number pixels resolution symbol text type video",eight_mp:"camera digit font image letters megapixels number quality resolution symbol text type",eightteen_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",eject:"arrow disc drive dvd player remove triangle up usb",elderly:"body cane human old people person senior",elderly_woman:"body cane female gender girl human lady old people person senior social symbol women",electrical_services:"charge cord plug power wire",electric_bike:"automobile cars electricity maps scooter transportation travel vehicle vespa",electric_bolt:"energy fast lightning nest thunderbolt",electric_car:"automobile cars electricity maps transportation travel vehicle",electric_meter:"energy fast lightning measure nest thunderbolt usage voltage volts",electric_moped:"automobile bike cars maps scooter transportation travel vehicle vespa",electric_rickshaw:"automobile cars india maps transportation truck vehicle",electric_scooter:"automobile bike cars maps transportation vehicle vespa",elevator:"body down human people person up",eleven_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",email:"envelope letter message note post receive send write",e_mobiledata:"alphabet font letter text type",emoji_emotions:"emoticon expressions face feelings glad happiness happy like mood person pleased smiley smiling social survey",emoji_events:"achievement award chalice champion cup first prize reward sport trophy winner",emoji_food_beverage:"coffee cup dring drink mug plate set tea",emoji_nature:"animal bee daisy flower honey insect ladybug petals spring summer",emoji_objects:"creative idea lamp lightbulb solution thinking",emoji_people:"arm body greeting human person social wave waving",emoji_symbols:"ampersand character hieroglyph music note percent sign",emoji_transportation:"architecture automobile building cars commute company direction estate maps office place public real residence residential shelter travel vehicle",energy_savings_leaf:"eco leaves nest usage",engineering:"body cogs cogwheel construction fixing gears hat helmet human maintenance people person setting worker",enhanced_encryption:"+ add locked new password plus privacy private protection safety secure security symbol",equalizer:"adjustment analytics chart data graph measure metrics music noise sound static statistics tracking volume",error:"! alert announcement attention caution circle danger exclamation feedback important mark notification problem symbol warning",error_outline:"! alert announcement attention caution circle danger exclamation feedback important mark notification problem symbol warning",escalator:"down staircase up",escalator_warning:"body child human kid parent people person",euro:"bill card cash coin commerce cost credit currency dollars euros finance money online payment price profit shopping symbol",euro_symbol:"bill card cash coin commerce cost credit currency dollars finance money online payment price profit",event:"agenda calendar date item mark month range remember reminder today week",event_available:"agenda approve calendar check complete done item mark ok schedule select tick time validate verified yes",event_busy:"agenda calendar cancel close date exit item no remove schedule stop time unavailable",event_note:"agenda calendar date item schedule text time writing",event_repeat:"around calendar date day inprogress loading month refresh renew rotate schedule turn",event_seat:"assigned bench chair furniture reservation row section sit",ev_station:"automobile cars charge charging electricity filling fuel gasoline maps places power station transportation vehicle",exit_to_app:"application arrow back components design export interface layout leave login logout mobile monitor move output phone pointing quit register right screen signin signout signup tablet ux website window",expand:"arrows compress enlarge grow move push together",expand_circle_down:"arrows chevron collapse direction expandable list more",expand_less:"arrows chevron collapse direction expandable list up",expand_more:"arrows chevron collapse direction down expandable list",explicit:"adult alphabet character content font language letter media movies music parent rating supervision symbol text type",explore:"compass destination direction east location maps needle north south travel west",explore_off:"compass destination direction disabled east enabled location maps needle north slash south travel west",exposure:"add brightness contrast editing effect image minus photography picture plus settings subtract",extension:"add-ons app extended game item jigsaw piece plugin puzzle shape",extension_off:"disabled enabled extended jigsaw piece puzzle shape slash",face:"account avatar emoji eyes human login logout people person profile recognition security social thumbnail unlock user",facebook:"brand logo social",face_retouching_natural:"editing effect emoji emotion faces image photography settings star tag",face_retouching_off:"disabled editing effect emoji emotion enabled faces image natural photography settings slash tag",fact_check:"approve complete done list mark ok select tick validate verified yes",factory:"industry manufacturing warehouse",family_restroom:"bathroom children father kids mother parents wc",fastfood:"drink hamburger maps meal places",fast_forward:"control ff media music play speed time tv video",fast_rewind:"back control media music play speed time tv video",favorite:"appreciate health heart like love remember save shape success",favorite_border:"health heart like love outline remember save shape success",fax:"machine office phone send",featured_play_list:"audio collection highlighted item music playlist recommended",featured_video:"advertisement advertisment highlighted item play recommended watch,advertised",feed:"article headline information newspaper public social timeline",feedback:"! alert announcement attention bubble caution chat comment communicate danger error exclamation important mark message notification speech symbol warning",female:"gender girl lady social symbol woman women",fence:"backyard barrier boundaries boundary home house protection",festival:"circus event local maps places tent tour travel",fiber_dvr:"alphabet character digital electronics font letter network recorder symbol text tv type video",fiber_manual_record:"circle dot play watch",fiber_new:"alphabet character font letter network symbol text type",fiber_pin:"alphabet character font letter network symbol text type",fiber_smart_record:"circle dot play watch",fifteen_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",file_copy:"bill clone content cut document duplicate invoice item multiple page past",file_download:"arrows downloads drive export install upload",file_download_done:"arrows check downloads drive installed tick upload",file_download_off:"arrow disabled drive enabled export install on save slash upload",file_open:"arrow document drive left page paper",file_present:"clip data document drive folders note paper reminder sheet slide storage writing",file_upload:"arrows download drive export",filter:"editing effect image landscape mountains photography picture settings",filter_1:"digit editing effect images multiple number photography pictures settings stack symbol",filter_2:"digit editing effect images multiple number photography pictures settings stack symbol",filter_3:"digit editing effect images multiple number photography pictures settings stack symbol",filter_4:"digit editing effect images multiple number photography pictures settings stack symbol",filter_5:"digit editing effect images multiple number photography pictures settings stack symbol",filter_6:"digit editing effect images multiple number photography pictures settings stack symbol",filter_7:"digit editing effect images multiple number photography pictures settings stack symbol",filter_8:"digit editing effect images multiple number photography pictures settings stack symbol",filter_9:"digit editing effect images multiple number photography pictures settings stack symbol",filter_9_plus:"+ digit editing effect images multiple number photography pictures settings stack symbol",filter_alt:"edit funnel options refine sift",filter_alt_off:"[offline] disabled edit funnel options refine sift slash",filter_b_and_w:"black contrast editing effect grayscale images photography pictures settings white",filter_center_focus:"camera dot edit image photography picture",filter_drama:"camera cloud editing effect image photography picture sky",filter_frames:"boarders border camera center editing effect filters focus image options photography picture",filter_hdr:"camera editing effect image mountains photography picture",filter_list:"lines organize sort",filter_list_off:"[offline] alt disabled edit options refine sift slash",filter_none:"multiple stack",filter_tilt_shift:"blur center editing effect focus images photography pictures",filter_vintage:"editing effect flower images photography pictures",find_in_page:"data document drive file folders glass look magnifying paper search see sheet slide writing",find_replace:"around arrows glass inprogress loading look magnifying refresh renew rotate search see",fingerprint:"biometrics identification identity reader thumbprint touchid verification",fire_extinguisher:"emergency water",fireplace:"chimney flame home house living pit room warm winter",first_page:"arrow back chevron left rewind",fitbit:"athlete athletic exercise fitness hobby",fitness_center:"athlete dumbbell exercise gym health hobby places sport weights workout",fit_screen:"enlarge format layout reduce scale size",five_g:"5g alphabet cellular character data digit font letter mobile network number phone signal speed symbol text type wifi",five_k:"5000 5K alphabet character digit display font letter number pixels resolution symbol text type video",five_k_plus:"+ 5000 5K alphabet character digit display font letter number pixels resolution symbol text type video",five_mp:"camera digit font image letters megapixels number quality resolution symbol text type",fivteen_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",flag:"country goal mark nation report start",flag_circle:"country goal mark nation report round start",flaky:"approve check close complete contrast done exit mark no ok options select stop tick verified yes",flare:"bright editing effect images lensflare light photography pictures shine sparkle star sun",flash_auto:"camera electric fast lightning thunderbolt",flashlight_off:"disabled enabled on slash",flashlight_on:"disabled enabled off slash",flash_off:"camera disabled electric enabled fast lightning on slash thunderbolt",flash_on:"camera disabled electric enabled fast lightning off slash thunderbolt",flatware:"cafeteria cutlery diner dining eating fork room spoon",flight:"airplane airport flying transportation travel trip",flight_class:"airplane business first seat transportation travel trip window",flight_land:"airplane airport arrival arriving flying landing transportation travel",flight_takeoff:"airplane airport departed departing flying landing transportation travel",flip:"editing image orientation scanning",flip_camera_android:"center editing front image mobile orientation rear reverse rotate turn",flip_camera_ios:"android editing front image mobile orientation rear reverse rotate turn",flip_to_back:"arrangement format front layout move order sort",flip_to_front:"arrangement back format layout move order sort",flutter_dash:"bird mascot",fmd_bad:"! alert attention caution danger destination direction error exclamation important location maps mark notification pin place symbol warning",fmd_good:"destination direction location maps pin place stop",folder:"data directory document drive file folders sheet slide storage",folder_delete:"bin can data document drive file folders garbage remove sheet slide storage trash",folder_off:"[online] data disabled document drive enabled file folders sheet slash slide storage",folder_open:"data directory document drive file folders sheet slide storage",folder_shared:"account collaboration data directory document drive face human people person profile sheet slide storage team user",folder_special:"bookmark data directory document drive favorite file highlight important marked saved shape sheet slide star storage",folder_zip:"compress data document drive file folders open sheet slide storage",follow_the_signs:"arrow body directional human people person right social",font_download:"A alphabet character letter square symbol text type",font_download_off:"alphabet character disabled enabled letter slash square symbol text type",food_bank:"architecture building charity eat estate fork house knife meal place real residence residential shelter utensils",forest:"jungle nature plantation plants trees woodland",fork_left:"arrows directions maps navigation path route sign traffic",fork_right:"arrows directions maps navigation path route sign traffic",format_align_center:"alignment doc editing editor lines spreadsheet text type writing",format_align_justify:"alignment density doc editing editor extra lines small spreadsheet text type writing",format_align_left:"alignment doc editing editor lines spreadsheet text type writing",format_align_right:"alignment doc editing editor lines spreadsheet text type writing",format_bold:"B alphabet character doc editing editor font letter spreadsheet styles symbol text type writing",format_clear:"T alphabet character disabled doc editing editor enabled font letter off slash spreadsheet style symbol text type writing",format_color_fill:"bucket doc editing editor paint spreadsheet style text type writing",format_color_reset:"clear disabled doc droplet editing editor enabled fill liquid off on paint slash spreadsheet style text type water writing",format_color_text:"doc editing editor fill paint spreadsheet style type writing",format_indent_decrease:"alignment doc editing editor indentation paragraph spreadsheet text type writing",format_indent_increase:"alignment doc editing editor indentation paragraph spreadsheet text type writing",format_italic:"alphabet character doc editing editor font letter spreadsheet style symbol text type writing",format_line_spacing:"alignment doc editing editor spreadsheet text type writing",format_list_bulleted:"alignment doc editing editor notes spreadsheet task text todo type writing",format_list_numbered:"alignment digit doc editing editor notes spreadsheet symbol task text todo type writing",format_list_numbered_rtl:"alignment digit doc editing editor notes spreadsheet symbol task text todo type writing",format_overline:"alphabet character doc editing editor font letter spreadsheet style symbol text type under writing",format_paint:"brush color doc editing editor fill paintroller spreadsheet style text type writing",format_quote:"doc editing editor quotation spreadsheet text type writing",format_shapes:"alphabet character color doc editing editor fill font letter paint spreadsheet style symbol text type writing",format_size:"alphabet character color doc editing editor fill font letter paint spreadsheet style symbol text type writing",format_strikethrough:"alphabet character doc editing editor font letter spreadsheet style symbol text type writing",format_textdirection_l_to_r:"alignment doc editing editor ltr paragraph spreadsheet type writing",format_textdirection_r_to_l:"alignment doc editing editor paragraph rtl spreadsheet type writing",format_underlined:"alphabet character doc editing editor font letter spreadsheet style symbol text type writing",forum:"bubble chat comment communicate community conversation feedback hub messages speech talk",forward:"arrow mail message playback right sent",forward_10:"arrow circle controls digit fast music number play rotate seconds speed symbol time video",forward_30:"arrow circle controls digit fast music number rotate seconds speed symbol time video",forward_5:"10 arrow circle controls digit fast music number rotate seconds speed symbol time video",forward_to_inbox:"arrow email envelop letter message send",foundation:"architecture base basis building construction estate home house real residential",four_g_mobiledata:"alphabet cellular character digit font letter network number phone signal speed symbol text type wifi",four_g_plus_mobiledata:"alphabet cellular character digit font letter network number phone signal speed symbol text type wifi",four_k:"4000 4K alphabet character digit display font letter number pixels resolution symbol text type video",four_k_plus:"+ 4000 4K alphabet character digit display font letter number pixels resolution symbol text type video",four_mp:"camera digit font image letters megapixels number quality resolution symbol text type",fourteen_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",free_breakfast:"beverage cafe coffee cup drink mug tea",fullscreen:"adjust application components interface size ui ux view website",fullscreen_exit:"adjust application components interface size ui ux view website",functions:"average calculate count doc editing editor math sigma spreadsheet style sum text type writing",gamepad:"buttons console controller device gaming playstation video",games:"adjust arrows controller direction dpad gaming left move nintendo playstation right xbox",garage:"automobile automotive cars direction maps transportation travel vehicle",gas_meter:"droplet energy measure nest usage water",gavel:"agreement contract court document government hammer judge law mallet official police rules terms",gesture:"drawing finger gestures hand line motion",get_app:"arrows downloads export install play pointing retrieve upload",gif:"alphabet animated animation bitmap character font format graphics interchange letter symbol text type",gif_box:"alphabet animated animation bitmap character font format graphics interchange letter symbol text type",girl:"body female gender human lady people person social symbol woman women",gite:"architecture estate home hostel house maps place real residence residential stay traveling",git_hub:"brand code",g_mobiledata:"alphabet character font letter network service symbol text type",golf_course:"athlete athletic ball club entertainment flag golfer golfing hobby hole places putt sports",google:"brand logo",gpp_bad:"cancel certified close error exit no privacy private protection remove security shield sim stop verified",gpp_good:"certified check ok pass security shield sim tick",gpp_maybe:"! alert attention caution certified danger error exclamation important mark notification privacy private protection security shield sim symbol verified warning",gps_fixed:"destination direction location maps pin place pointer stop tracking",gps_not_fixed:"destination direction disabled enabled fixed location maps not off online place pointer slash tracking",gps_off:"destination direction disabled enabled fixed location maps not offline place pointer slash tracking",grade:"achievement important likes marked rated rating reward saved shape special star",gradient:"color editing effect filter images photography pictures",grading:"approve check complete document done feedback grade mark ok reviewed select tick validate verified writing yes",grain:"dots editing effect filter images photography pictures",graphic_eq:"audio equalizer music recording sound voice",grass:"backyard fodder ground home lawn plant turf",grid3x3:"layout line space",grid4x4:"by layout lines space",grid_goldenratio:"layout lines space",grid_off:"collage disabled enabled image layout on slash view",grid_on:"collage disabled enabled image layout off sheet slash view",grid_view:"application blocks components dashboard design interface layout screen square tiles ui ux website window",group:"accounts committee face family friends humans network people persons profiles social team users",group_add:"accounts committee face family friends humans increase more network people persons plus profiles social team users",group_remove:"accounts committee face family friends humans network people persons profiles social team users",groups:"body club collaboration crowd gathering human meeting people person social teams",group_work:"alliance circle collaboration film partnership reel teamwork together",g_translate:"emblem google language logo mark speaking speech translator words",hail:"body human people person pick public stop taxi transportation",handyman:"build construction fix hammer repair screwdriver tools",hardware:"break construction hammer nail repair tool",hd:"alphabet character definition display font high letter movies quality resolution screen symbol text tv type video",hdr_auto:"A alphabet camera character circle dynamic font high letter photo range symbol text type",hdr_auto_select:"+ A alphabet camera character circle dynamic font high letter photo range symbol text type",hdr_enhanced_select:"add alphabet character dynamic font high letter plus range symbol text type",hdr_off:"alphabet character disabled dynamic enabled enhance font high letter range select slash symbol text type",hdr_off_select:"alphabet camera character circle disabled dynamic enabled font high letter photo range slash symbol text type",hdr_on:"add alphabet character dynamic enhance font high letter plus range select symbol text type",hdr_on_select:"+ alphabet camera character circle dynamic font high letter photo range symbol text type",hdr_plus:"+ add alphabet character circle dynamic enhance font high letter range select symbol text type",hdr_strong:"circles dots dynamic enhance high range",hdr_weak:"circles dots dynamic enhance high range",headphones:"accessory audio device earphone headset listen music sound",headphones_battery:"accessory audio charging device earphone headset listen music sound",headset:"accessory audio device earbuds earmuffs earphone headphones listen music sound",headset_mic:"accessory audio chat device earphone headphones listen music sound talk",headset_off:"accessory audio chat device disabled earphone enabled headphones listen mic music slash sound talk",healing:"bandage bandaid editing emergency fix health hospital image medicine",health_and_safety:"+ add certified plus privacy private protection security shield symbol verified",hearing:"accessibility accessible aid handicap help impaired listen sound volume",hearing_disabled:"accessibility accessible aid enabled handicap help impaired listen off on slash sound volume",heart_broken:"break core crush health nucleus split",heat_pump:"air conditioner cool energy furnance nest usage",height:"arrows color doc down editing editor fill format paint resize spreadsheet stretch style text type up writing",help:"? alert announcement assistance circle information mark punctuation question shape support symbol",help_center:"? assistance information mark punctuation question support symbol",help_outline:"? alert announcement assistance circle information mark punctuation question shape support symbol",hevc:"alphabet character coding efficiency font high letter symbol text type video",hexagon:"shape sides six",hide_image:"disabled enabled landscape mountains off on photography picture slash",hide_source:"circle disabled enabled offline on shape slash",highlight:"color doc editing editor emphasize fill flashlight format marker paint spreadsheet style text type writing",highlight_alt:"arrow box click cursor draw focus pointer selection target",highlight_off:"cancel circle clear click close delete disable exit focus no quit remove stop target times",high_quality:"alphabet character definition display font hq letter movies resolution screen symbol text tv type",hiking:"backpacking bag climbing duffle mountain social sports stick trail travel walking",history:"arrow backwards clock date refresh renew reverse revert rotate schedule time turn undo",history_edu:"document education feather letter paper pen quill school tools write writing",history_toggle_off:"clock date schedule time",hls:"alphabet character developer engineering font letter platform symbol text type",hls_off:"[offline] alphabet character developer disabled enabled engineering font letter platform slash symbol text type",h_mobiledata:"alphabet character font letter network service symbol text type",holiday_village:"architecture beach camping cottage estate home house lake lodge maps place real residence residential stay traveling vacation",home:"address application--house architecture building components design estate homepage interface layout place real residence residential screen shelter structure unit ux website window",home_max:"device gadget hardware internet iot nest smart things",home_mini:"Internet device gadget hardware iot nest smart things",home_repair_service:"equipment fix kit mechanic repairing toolbox tools workshop",home_work:"architecture building estate house office place real residence residential shelter",horizontal_rule:"gmail line novitas",horizontal_split:"bars format layout lines stacked",hotel:"bed body human people person sleep stay travel trip",hot_tub:"bathing bathroom bathtub hotel human jacuzzi person shower spa steam travel water",hourglass_bottom:"countdown half loading minutes time waiting",hourglass_disabled:"clock countdown empty enabled loading minutes off on slash time waiting",hourglass_empty:"countdown loading minutes start time waiting",hourglass_full:"countdown loading minutes time waiting",hourglass_top:"countdown half loading minutes time waiting",house:"architecture building estate family homepage places real residence residential shelter",houseboat:"architecture beach estate floating home maps place real residence residential sea stay traveling vacation",house_siding:"architecture building construction estate exterior facade home real residential",how_to_reg:"approve ballot check complete done election mark ok poll register registration select tick to validate verified vote yes",how_to_vote:"ballot election poll",h_plus_mobiledata:"+ alphabet character font letter network service symbol text type",html:"alphabet brackets character code css developer engineering font letter platform symbol text type",http:"alphabet character font internet letter network symbol text transfer type url website",https:"connection encrypt internet key locked network password privacy private protection safety secure security ssl web",hub:"center connection core focal network nucleus point topology",hvac:"air conditioning heating ventilation",icecream:"dessert food snack",ice_skating:"athlete athletic entertainment exercise hobby shoe skates social sports travel",image:"disabled enabled frame hide landscape mountains off on photography picture slash",image_aspect_ratio:"photography picture rectangle square",image_not_supported:"disabled enabled landscape mountains off on photography picture slash",image_search:"find glass landscape look magnifying mountains photography picture see",imagesearch_roller:"art paint",important_devices:"Android cell computer desktop hardware iOS mobile monitor phone star tablet web",import_contacts:"address book friends information magazine open",import_export:"arrows direction down explort up",inbox:"archive email incoming message",indeterminate_check_box:"application button components control design form interface minus screen selected selection square toggle ui undetermined ux website",info:"about alert announcement announcment assistance bubble circle details help information service support",input:"arrow box download login move right",insert_chart:"analytics barchart bars data diagram infographic measure metrics statistics tracking",insert_chart_outlined:"analytics bars data diagram infographic measure metrics statistics tracking",insert_comment:"add bubble chat feedback message",insert_drive_file:"bill document format invoice item sheet slide",insert_emoticon:"account emoji face happy human like people person profile sentiment smiley user",insert_invitation:"agenda calendar date event mark month range remember reminder today week",insert_link:"add anchor attach clip file mail media",insert_page_break:"document file paper",insert_photo:"image landscape mountains photography picture wallpaper",insights:"analytics bars chart data diagram infographic measure metrics stars statistics tracking",instagram:"brand logo social",install_desktop:"Android chrome device display fix hardware iOS mac monitor place pwa screen web window",install_mobile:"Android cell device hardware iOS phone pwa tablet",integration_instructions:"brackets clipboard code css developer document engineering html platform",interests:"circle heart shapes social square triangle",interpreter_mode:"language microphone person speaking symbol",inventory:"archive box buy check clipboard document e-commerce file list organize packages product purchase shop stock store supply",inventory2:"archive box file organize packages product stock storage supply",invert_colors:"droplet editing hue inverted liquid palette tone water",invert_colors_off:"disabled droplet enabled hue inverted liquid offline opacity palette slash tone water",ios_share:"arrows button direction export internet link send sharing social up website",iron:"appliance clothes electric ironing machine object",iso:"add editing effect image minus photography picture plus sensor shutter speed subtract",javascript:"alphabet brackets character code css developer engineering font html letter platform symbol text type",join_full:"circle combine command left outter right sql",join_inner:"circle command matching sql values",join_left:"circle command matching sql values",join_right:"circle command matching sql values",kayaking:"athlete athletic body canoe entertainment exercise hobby human lake paddle paddling people person rafting river row social sports summer travel water",key:"blackout password restricted secret unlock",keyboard:"computer device hardware input keypad letter office text type",keyboard_alt:"computer device hardware input keypad letter office text type",keyboard_arrow_down:"arrows chevron open",keyboard_arrow_left:"arrows chevron",keyboard_arrow_right:"arrows chevron open start",keyboard_arrow_up:"arrows chevron submit",keyboard_backspace:"arrow left",keyboard_capslock:"arrow up",keyboard_command_key:"button command control key",keyboard_control_key:"control key",keyboard_double_arrow_down:"arrows direction multiple navigation",keyboard_double_arrow_left:"arrows direction multiple navigation",keyboard_double_arrow_right:"arrows direction multiple navigation",keyboard_double_arrow_up:"arrows direction multiple navigation",keyboard_hide:"arrow computer device down hardware input keypad text",keyboard_option_key:"alt key modifier",keyboard_return:"arrow back left",keyboard_tab:"arrow next right",keyboard_voice:"microphone noise recorder speaker",key_off:"[offline] disabled enabled on password slash unlock",king_bed:"bedroom double furniture home hotel house night pillows queen rest sleep",kitchen:"appliance cabinet cold food freezer fridge home house ice places refrigerator storage",kitesurfing:"athlete athletic beach body entertainment exercise hobby human people person social sports travel water",label:"badge favorite indent item library mail remember save stamp sticker tag",label_important:"badge favorite important. indent item library mail remember save stamp sticker tag wing",label_off:"disabled enabled favorite indent library mail on remember save slash stamp sticker tag wing",lan:"computer connection data internet network service",landscape:"image mountains nature photography picture",language:"country earth globe i18n internet l10n planet website world www",laptop:"Android chrome computer connect desktop device display hardware iOS link mac monitor smart tv web windows",laptop_chromebook:"Android chromebook device display hardware iOS mac monitor screen web window",laptop_mac:"Android apple chrome device display hardware iOS monitor screen web window",laptop_windows:"Android chrome device display hardware iOS mac monitor screen web",last_page:"application arrow chevron components end forward interface right screen ui ux website",launch:"application arrow box components core interface internal new open screen ui ux website window",layers:"arrange disabled enabled interaction maps off overlay pages slash stack",layers_clear:"arrange delete disabled enabled interaction maps off overlay pages slash",leaderboard:"analytics bars chart data diagram infographic measure metrics statistics tracking",leak_add:"connection data link network service signals synce wireless",leak_remove:"connection data disabled enabled link network offline service signals slash synce wireless",legend_toggle:"analytics chart data diagram infographic measure metrics monitoring stackdriver statistics tracking",lens:"circle full geometry moon",lens_blur:"camera dim dot effect foggy fuzzy image photo soften",library_add:"+ collection layers multiple music new plus save stacked symbol video",library_add_check:"approve collection complete done layers mark multiple music ok select stacked tick validate verified video yes",library_books:"add album audio collection reading",library_music:"add album audio collection song sounds",light:"bulb ceiling hanging inside interior lamp lighting pendent room",lightbulb:"alert announcement idea information learning mode",lightbulb_circle:"alert announcement idea information",light_mode:"brightness day device lighting morning mornng sky sunny",linear_scale:"application components design interface layout measure menu screen slider ui ux website window",line_axis:"dash horizontal stroke vertical",line_style:"dash dotted editor rule spacing",line_weight:"editor height size spacing style thickness",link:"anchor chain clip connection external hyperlink linked links multimedia unlisted url",linked_camera:"connection lens network photography picture signals sync wireless",linked_in:"brand logo social",link_off:"anchor attached chain clip connection disabled enabled linked links multimedia slash unlink url",liquor:"alcohol bar bottle club cocktail drink food party store wine",list:"editor file format index menu options playlist task todo",list_alt:"box contained editor format lines reorder sheet stacked task title todo",live_help:"? alert announcement assistance bubble chat comment communicate faq information mark message punctuation question speech support symbol",live_tv:"Android antennas chrome desktop device hardware iOS mac monitor movie play stream television web window",living:"chair comfort couch decoration furniture home house lounging loveseat room seating sofa",local_activity:"event star things ticket",local_airport:"airplane flight flying transportation travel trip",local_atm:"bill card cart cash coin commerce credit currency dollars financial money online payment price profit shopping symbol",local_bar:"alcohol bottle club cocktail drink food liquor martini wine",local_cafe:"bottle coffee cup drink food mug restaurant tea",local_car_wash:"automobile cars maps transportation travel vehicle",local_convenience_store:"-- 24 bill building business card cash coin commerce company credit currency dollars maps market money new online payment plus shopping storefront symbol",local_dining:"cutlery eat food fork knife meal restaurant spoon",local_drink:"cup droplet glass liquid park water",local_fire_department:"911 firefighter flame hot",local_florist:"flower shop",local_gas_station:"auto car filling fuel gasoline oil station vehicle",local_grocery_store:"market shop",local_hospital:"911 aid cross doctor emergency first health medical medicine plus",local_hotel:"bed body human people person sleep stay travel trip",local_laundry_service:"cleaning clothing dryer hotel washer",local_library:"book community learning person read",local_mall:"bill building business buy card cart cash coin commerce credit currency dollars handbag money online payment shopping storefront",local_offer:"deal discount price shopping store tag",local_parking:"alphabet auto car character font garage letter symbol text type vehicle",local_pharmacy:"911 aid cross emergency first food hospital medicine places",local_phone:"booth call telecommunication",local_pizza:"drink fastfood meal",local_police:"911 badge law officer protection security shield",local_post_office:"delivery email envelop letter message package parcel postal send stamp",local_printshop:"draft fax ink machine office paper printer send",local_see:"camera lens photography picture",local_shipping:"automobile cars delivery letter mail maps office package parcel postal semi send shopping stamp transportation truck vehicle",local_taxi:"automobile cab call cars direction lyft maps public transportation uber vehicle yellow",location_city:"apartments architecture buildings business company estate home landscape place real residence residential shelter town urban",location_disabled:"destination direction enabled maps off pin place pointer slash stop tracking",location_off:"destination direction disabled enabled gps maps pin place room slash stop",location_on:"destination direction disabled enabled gps maps off pin place room slash stop",location_searching:"destination direction maps pin place pointer stop tracking",lock:"connection key locked logout padlock password privacy private protection safety secure security signout",lock_clock:"date locked password privacy private protection safety schedule secure security time",lock_open:"connection key login padlock password privacy private protection register safety secure security signin signup unlocked",lock_reset:"around inprogress loading locked password privacy private protection refresh renew rotate safety secure security turn",login:"access application arrow components design enter interface left screen ui ux website",logo_dev:"dev.to",logout:"application arrow components design exit interface leave login right screen ui ux website",looks:"circle half rainbow",looks_3:"digit numbers square symbol",looks_4:"digit numbers square symbol",looks_5:"digit numbers square symbol",looks_6:"digit numbers square symbol",looks_one:"1 digit numbers square symbol",looks_two:"2 digit numbers square symbol",loop:"around arrows direction inprogress loader loading music navigation refresh renew repeat rotate turn",loupe:"+ add details focus glass magnifying new plus symbol",low_priority:"arrange arrow backward bottom list move order task todo",loyalty:"badge card credit heart love membership miles points program sale subscription tag travel trip",lte_mobiledata:"alphabet character font internet letter network speed symbol text type wifi wireless",lte_plus_mobiledata:"+ alphabet character font internet letter network speed symbol text type wifi wireless",luggage:"airport baggage carry flight hotel on suitcase travel trip",lunch_dining:"breakfast dinner drink fastfood hamburger meal",lyrics:"audio bubble chat comment communicate feedback key message music note song sound speech track",mail:"email envelope inbox letter message send",mail_lock:"email envelop letter locked message password privacy private protection safety secure security send",mail_outline:"email envelope letter message note post receive send write",male:"boy gender man social symbol",man:"boy gender male social symbol",manage_accounts:"change details face gear options people person profile service-human settings user",manage_search:"glass history magnifying text",map:"destination direction location maps pin place route stop travel",maps_home_work:"building house office",maps_ugc:"+ add bubble comment communicate feedback message new plus speech symbol",margin:"design layout padding size square",mark_as_unread:"envelop letter mail postal receive send",mark_chat_read:"approve bubble check comment communicate complete done message ok select sent speech tick verified yes",mark_chat_unread:"bubble circle comment communicate message notification speech",mark_email_read:"approve check complete done envelop letter message note ok select send sent tick yes",mark_email_unread:"check circle envelop letter message note notification send",markunread:"email envelope letter message send",markunread_mailbox:"deliver envelop letter postal postbox receive send",masks:"air cover covid face hospital medical pollution protection respirator sick social",maximize:"application components design interface line screen shape ui ux website",media_bluetooth_off:"connection connectivity device disabled enabled music note offline paring signal slash symbol wireless",media_bluetooth_on:"connection connectivity device disabled enabled music note off online paring signal slash symbol wireless",mediation:"alternative arrows compromise direction dots negotiation party right structure",medical_services:"aid bag briefcase emergency first kit medicine",medication:"doctor drug emergency hospital medicine pharmacy pills prescription",meeting_room:"building doorway entrance home house interior logout office open places signout",memory:"card chip digital micro processor sd storage",menu:"application components hamburger interface lines playlist screen ui ux website",menu_book:"dining food meal page restaurant",menu_open:"application arrow chevron components hamburger interface left lines screen ui ux website",merge:"arrows directions maps navigation path route sign traffic",merge_type:"arrow combine direction format text",message:"bubble chat comment communicate feedback speech talk text",mic:"hearing microphone noise record search sound speech voice",mic_external_off:"audio disabled enabled microphone slash sound voice",mic_external_on:"audio disabled enabled microphone off slash sound voice",mic_none:"hearing microphone noise record sound voice",mic_off:"audio disabled enabled hearing microphone noise recording slash sound voice",microwave:"appliance cooking electric heat home house kitchen machine",military_tech:"army award badge honor medal merit order privilege prize rank reward ribbon soldier star status trophy winner",minimize:"application components design interface line screen shape ui ux website",missed_video_call:"arrow camera filming hardware image motion picture record videography",mms:"bubble chat comment communicate feedback image landscape message mountains multimedia photography picture speech",mobiledata_off:"arrow disabled down enabled internet network on slash speed up wifi wireless",mobile_friendly:"Android approve cell check complete device done hardware iOS mark ok phone select tablet tick validate verified yes",mobile_off:"Android cell device disabled enabled hardware iOS phone silence slash tablet",mobile_screen_share:"Android arrow cell device hardware iOS mirror monitor phone screencast streaming tablet tv wireless",mode:"compose create draft draw edit pencil write",mode_comment:"bubble chat comment communicate feedback message mode speech",mode_edit:"compose create draft draw pencil write",mode_edit_outline:"compose create draft draw pencil write",model_training:"arrow bulb idea inprogress light loading refresh renew restore reverse rotate",mode_night:"dark disturb moon sleep weather",mode_of_travel:"arrow destination direction location maps pin place stop transportation trip",mode_standby:"disturb power sleep target",monetization_on:"bill card cash circle coin commerce cost credit currency dollars finance money online payment price profit sale shopping symbol",money:"100 bill card cash coin commerce cost credit currency digit dollars finance number online payment price profit shopping symbol",money_off:"bill card cart cash coin commerce credit currency disabled dollars enabled finance money online payment price profit shopping slash symbol",money_off_csred:"bill card cart cash coin commerce credit currency disabled dollars enabled online payment shopping slash symbol",monitor:"Android chrome device display hardware iOS mac screen web window",monitor_weight:"body device diet health scale smart",monochrome_photos:"black camera image photography picture white",mood:"emoji emoticon emotions expressions face feelings glad happiness happy like person pleased smiley smiling social survey",mood_bad:"disappointment dislike emoji emoticon emotions expressions face feelings person rating smiley social survey unhappiness unhappy unpleased unsmile unsmiling",moped:"automobile bike cars direction maps motorized public scooter transportation vehicle vespa",more:"3 archive badge bookmark dots etc favorite indent label remember save stamp sticker tab tag three",more_horiz:"3 application components dots etc horizontal interface ios pending screen status three ui ux website",more_time:"+ add clock date new plus schedule symbol",more_vert:"3 android application components dots etc interface screen three ui ux vertical website",motion_photos_auto:"A alphabet animation automatic character circle font gif letter live symbol text type video",motion_photos_off:"animation circle disabled enabled slash video",mouse:"click computer cursor device hardware wireless",move_down:"arrow direction jump navigation transfer",move_to_inbox:"archive arrow down email envelop incoming letter message move send to",move_up:"arrow direction jump navigation transfer",movie:"cinema film media screen show slate tv video watch",movie_creation:"clapperboard film movies slate video",movie_filter:"clapperboard creation film movies slate stars video",moving:"arrow direction navigation travel up",mp:"alphabet character font image letter megapixel photography pixels quality resolution symbol text type",multiline_chart:"analytics bars data diagram infographic line measure metrics multiple statistics tracking",multiple_stop:"arrows directions dots left maps navigation right",museum:"architecture attraction building estate event exhibition explore local palces places real see shop store tour",music_note:"audiotrack key sound",music_off:"audiotrack disabled enabled key note on slash sound",music_video:"band mv recording screen tv watch",my_location:"destination direction maps navigation pin place point stop",nat:"communication",nature:"forest outdoor outside park tree wilderness",nature_people:"activity body forest human outdoor outside park person tree wilderness",navigate_before:"arrows direction left",navigate_next:"arrows direction right",navigation:"arrow destination direction location maps pin place point stop",nearby_error:"! alert attention caution danger exclamation important mark notification symbol warning",nearby_off:"disabled enabled on slash",near_me:"arrow destination direction location maps navigation pin place point stop",near_me_disabled:"destination direction enabled location maps navigation off pin place point slash",nest_cam_wired_stand:"camera filming hardware image motion picture videography",network_cell:"cellular data internet mobile phone speed wifi wireless",network_check:"connection internet meter signal speed tick wifi wireless",network_locked:"alert available cellular connection data error internet mobile not privacy private protection restricted safety secure security service signal warning wifi wireless",network_wifi:"cellular data internet mobile phone speed wireless",new_releases:"! alert announcement attention burst caution danger error exclamation important mark notification star symbol warning",newspaper:"article data document drive file folders magazine media notes page sheet slide text writing",next_plan:"arrow circle right",next_week:"arrow baggage briefcase business suitcase",nfc:"communication data field mobile near wireless",nightlife:"alcohol bar bottle club cocktail dance drink food glass liquor music note wine",nightlight:"dark disturb mode moon sleep weather",nightlight_round:"dark half mode moon",night_shelter:"architecture bed building estate homeless house place real sleep",nights_stay:"cloud crescent dark mode moon phases silence silent sky time weather",nine_k:"9000 9K alphabet character digit display font letter number pixels resolution symbol text type video",nine_k_plus:"+ 9000 9K alphabet character digit display font letter number pixels resolution symbol text type video",nine_mp:"camera digit font image letters megapixels number quality resolution symbol text type",nineteen_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",no_accounts:"avatar disabled enabled face human offline people person profile slash thumbnail unavailable unidentifiable unknown user",no_backpack:"accessory bookbag knapsack travel",no_cell:"Android device disabled enabled hardware iOS mobile off phone slash tablet",no_drinks:"alcohol beverage bottle cocktail food liquor wine",no_encryption:"disabled enabled lock off password safety security slash",no_encryption_gmailerrorred:"disabled enabled locked off slash",no_flash:"camera disabled enabled image lightning off on photography picture slash thunderbolt",no_food:"disabled drink enabled fastfood hamburger meal off on slash",no_luggage:"baggage carry disabled enabled off on slash suitcase travel",no_meals:"dining disabled eat enabled food fork knife off restaurant slash spoon utensils",no_meeting_room:"building disabled doorway enabled entrance home house interior office on open places slash",no_photography:"camera disabled enabled image off on picture slash",nordic_walking:"athlete athletic body entertainment exercise hiking hobby human people person social sports travel walker",north:"arrow directional maps navigation up",north_east:"arrow maps navigation noth right up",north_west:"arrow directional left maps navigation up",no_sim:"camera card device eject insert memory phone storage",no_stroller:"baby care carriage children disabled enabled infant kid newborn off on parents slash toddler young",not_accessible:"accessibility body handicap help human person wheelchair",note:"bookmark message paper",note_add:"+ -doc create data document drive file folders new page paper plus sheet slide symbol writing",note_alt:"clipboard document file memo page paper writing",notes:"comment document text write writing",notification_add:"+ active alarm alert bell chime notifications notify plus reminder ring sound symbol",notification_important:"! active alarm alert announcement attention bell caution chime danger error exclamation feedback mark notifications notify problem reminder ring sound symbol warning",notifications:"active alarm alert bell chime notify reminder ring sound",notifications_active:"alarm alert bell chime notify reminder ringing sound",notifications_none:"alarm alert bell notify reminder ring sound",notifications_off:"active alarm alert bell chime disabled enabled notify offline reminder ring slash sound",notifications_paused:"--- active alarm aleet alert bell chime ignore notify pause quiet reminder ring sleep snooze sound zzz",not_interested:"allowed banned cancel circle close disabled dislike exit interested not off prohibited quit remove stop",not_listed_location:"? assistance destination direction help information maps pin place punctuation questionmark stop support symbol",no_transfer:"automobile bus cars direction disabled enabled maps off public slash transportation vehicle",not_started:"circle media pause play video",offline_bolt:"circle electric fast flash lightning spark thunderbolt",offline_pin:"approve checkmark circle complete done ok select tick validate verified yes",offline_share:"Android arrow cell connect device direction hardware iOS link mobile multiple phone right tablet",oil_barrel:"droplet gasoline nest water",ondemand_video:"Android chrome desktop device hardware iOS mac monitor play television tv web window",on_device_training:"arrow bulb call cell contact hardware idea inprogress light loading mobile model refresh renew restore reverse rotate telephone",one_k:"1000 1K alphabet character digit display font letter number pixels resolution symbol text type video",one_kk:"10000 10K alphabet character digit display font letter number pixels resolution symbol text type video",one_k_plus:"+ 1000 1K alphabet character digit display font letter number pixels resolution symbol text type video",online_prediction:"bulb connection idea light network signal wireless",opacity:"color droplet hue inverted liquid palette tone water",open_in_browser:"arrow box new up website window",open_in_full:"action arrows expand grow move",open_in_new:"application arrow box components interface screen ui ux website window",open_in_new_off:"arrow box disabled enabled export on slash window",open_with:"arrows directional expand move",other_houses:"architecture cottage estate home maps place real residence residential stay traveling",outbound:"arrow circle directional right up",outbox:"mail send sent",outdoor_grill:"barbecue barbeque bbq charcoal cooking home house outside",outlet:"connecter electricity plug power",outlined_flag:"country goal mark nation report start",padding:"design layout margin size square",pages:"article gplus paper post star",pageview:"document find glass magnifying paper search",paid:"circle currency money payment transaction",palette:"art colors filters paint",panorama:"angle image mountains photography picture view wide",panorama_fish_eye:"angle circle image photography picture wide",panorama_horizontal:"angle image photography picture wide",panorama_horizontal_select:"angle image photography picture wide",panorama_photosphere:"angle horizontal image photography picture wide",panorama_photosphere_select:"angle horizontal image photography picture wide",panorama_vertical:"angle image photography picture wide",panorama_vertical_select:"angle image photography picture wide",panorama_wide_angle:"image photography picture",panorama_wide_angle_select:"image photography picture",pan_tool:"drag fingers gesture hands human move scan stop touch wait",paragliding:"athlete athletic body entertainment exercise fly hobby human parachute people person skydiving social sports travel",park:"attraction fresh local nature outside plant tree",party_mode:"camera lens photography picture",password:"key login pin security star unlock",pattern:"key login password pin security star unlock",pause:"controls media music pending player status video wait",pause_circle:"controls media music video",pause_circle_filled:"controls media music pending status video wait",pause_circle_outline:"controls media music pending status video wait",pause_presentation:"application desktop device pending screen share slides status wait website window www",payment:"bill cash charge coin commerce cost creditcard currency dollars finance financial information money online price shopping symbol",payments:"bill card cash coin commerce cost credit currency dollars finance layer money multiple online price shopping symbol",pedal_bike:"automobile bicycle cars direction human maps public route scooter transportation vehicle vespa",pending:"circle dots loading progress waiting",pending_actions:"clipboard clock date document remember schedule time",pentagon:"five shape sides",people:"accounts committee community face family friends group humans network persons profiles social team users",people_alt:"accounts committee face family friends group humans network persons profiles social team users",people_outline:"accounts committee face family friends group humans network persons profiles social team users",percent:"math number symbol",perm_camera_mic:"image microphone min photography picture speaker",perm_contact_calendar:"account agenda date face human information people person profile schedule time user",perm_data_setting:"cellular configure gear information network settings wifi wireless",perm_device_information:"Android alert announcement cell hardware iOS important mobile phone tablet",perm_identity:"account avatar face human information people person profile save, thumbnail user",perm_media:"collection data directories document file folders images landscape mountains photography picture save storage",perm_phone_msg:"bubble call cell chat comment communicate contact device message mobile recording save speech telephone voice",perm_scan_wifi:"alert announcement connection information internet network service signal wireless",person:"account avatar face human people profile user",person_add:"+ account avatar face friend human new people plus profile symbol user",person_add_alt:"+ account face human people plus profile user",person_add_disabled:"+ account enabled face human new offline people plus profile slash symbol user",personal_video:"Android cam chrome desktop device hardware iOS mac monitor television tv web window",person_off:"account avatar disabled enabled face human people profile slash user",person_outline:"account avatar face human people profile user",person_pin:"account avatar destination direction face gps human location maps people place profile stop user",person_pin_circle:"account destination direction face gps human location maps people place profile stop user",person_remove:"account avatar delete face human minus people profile unfriend user",person_search:"account avatar face find glass human look magnifying people profile user",pest_control:"bug exterminator insects",pest_control_rodent:"exterminator mice",pets:"animal cat claw dog hand paw",phishing:"fishing fraud hook scam",phone:"call cell chat contact device hardware mobile telephone text",phone_android:"cell device hardware iOS mobile tablet",phone_bluetooth_speaker:"call cell connection connectivity contact device hardware mobile signal symbol telephone wireless",phone_callback:"arrow cell contact device down hardware mobile telephone",phone_disabled:"call cell contact device enabled hardware mobile offline slash telephone",phone_enabled:"call cell contact device hardware mobile telephone",phone_forwarded:"arrow call cell contact device direction hardware mobile right telephone",phone_iphone:"Android apple cell device hardware iOS mobile tablet",phonelink:"Android chrome computer connect desktop device hardware iOS mac mobile sync tablet web windows",phonelink_erase:"Android cancel cell close connection device exit hardware iOS mobile no remove stop tablet",phonelink_lock:"Android cell connection device erase hardware iOS locked mobile password privacy private protection safety secure security tablet",phonelink_off:"Android chrome computer connect desktop device disabled enabled hardware iOS mac mobile slash sync tablet web windows",phonelink_ring:"Android cell connection data device hardware iOS mobile network service signal tablet wireless",phonelink_setup:"Android call chat device hardware iOS information mobile settings tablet text",phone_locked:"call cell contact device hardware mobile password privacy private protection safety secure security telephone",phone_missed:"arrow call cell contact device hardware mobile telephone",phone_paused:"call cell contact device hardware mobile telephone wait",photo:"image mountains photography picture",photo_album:"archive bookmark image label library mountains photography picture ribbon save tag",photo_camera:"image photography picture",photo_camera_back:"image landscape mountains photography picture rear",photo_camera_front:"account face human image people person photography picture portrait profile user",photo_filter:"filters image photography picture stars",photo_library:"album image mountains photography picture",photo_size_select_actual:"image mountains photography picture",photo_size_select_large:"adjust album editing image library mountains photography picture",photo_size_select_small:"adjust album editing image large library mountains photography picture",php:"alphabet brackets character code css developer engineering font html letter platform symbol text type",piano:"instrument keyboard keys musical social",piano_off:"disabled enabled instrument keyboard keys musical on slash social",picture_as_pdf:"alphabet character document file font image letter multiple photography symbol text type",picture_in_picture:"cropped overlap photo position shape",picture_in_picture_alt:"cropped overlap photo position shape",pie_chart:"analytics bars data diagram infographic measure metrics statistics tracking",pie_chart_outline:"analytics bars data diagram infographic measure metrics statistics tracking",pie_chart_outlined:"graph",pin:"1 2 3 digit key login logout number password pattern security star symbol unlock",pinch:"arrows compress direction finger grasp hand navigation nip squeeze tweak",pin_drop:"destination direction gps location maps navigation place stop",pinterest:"brand logo social",pivot_table_chart:"analytics arrows bars data diagram direction drive editing grid infographic measure metrics rotate sheet statistics tracking",pix:"bill brazil card cash commerce credit currency finance money payment",place:"destination direction location maps navigation pin point stop",plagiarism:"document find glass look magnifying page paper search see",play_arrow:"controls media music player start video",play_circle:"arrow controls media music video",play_circle_filled:"arrow controls media music start video",play_circle_filled_white:"start",play_circle_outline:"arrow controls media music start video",play_disabled:"controls enabled media music off slash video",play_for_work:"arrow circle down google half",play_lesson:"audio bookmark digital ebook lesson multimedia play reading ribbon",playlist_add:"+ collection music new plus symbol task todo",playlist_add_check:"approve checkmark collection complete done music ok select task tick todo validate verified yes",playlist_add_check_circle:"album artist audio cd collection mark music record sound track",playlist_add_circle:"album artist audio cd check collection mark music record sound track",playlist_play:"arow arrow collection music",playlist_remove:"- collection minus music",plumbing:"build construction fix handyman repair tools wrench",plus_one:"1 add digit increase number symbol",podcasts:"broadcast casting network signal transmitting wireless",point_of_sale:"checkout cost machine merchant money payment pos retail system transaction",policy:"certified find glass legal look magnifying privacy private protection search security see shield verified",poll:"analytics barchart bars data diagram infographic measure metrics statistics survey tracking vote",pool:"athlete athletic beach body entertainment exercise hobby human ocean people person places sea sports swimming water",portable_wifi_off:"connected connection data device disabled enabled internet network offline service signal slash usage wireless",portrait:"account face human people person photo picture profile user",post_add:"+ data document drive file folders item page paper plus sheet slide text writing",power:"charge cord electrical online outlet plug socket",power_input:"dc lines supply",power_off:"charge cord disabled electrical enabled on outlet plug slash",power_settings_new:"information off save shutdown",precision_manufacturing:"arm automatic chain conveyor crane factory industry machinery mechanical production repairing robot supply warehouse",pregnant_woman:"baby birth body female human lady maternity mom mother people person user women",present_to_all:"arrow presentation screen share slides website",preview:"design eye layout reveal screen see show website window www",price_change:"arrows bill card cash coin commerce cost credit currency dollars down finance money online payment shopping symbol up",price_check:"approve bill card cash coin commerce complete cost credit currency dollars done finance mark money ok online payment select shopping symbol tick validate verified yes",print:"draft fax ink machine office paper printer send",print_disabled:"enabled off on paper printer slash",priority_high:"! alert attention caution danger error exclamation important mark notification symbol warning",privacy_tip:"alert announcement announcment assistance certified details help information private protection security service shield support verified",production_quantity_limits:"! alert attention bill card cart cash caution coin commerce credit currency danger dollars error exclamation important mark money notification online payment shopping symbol warning",propane:"gas nest",propane_tank:"bbq gas grill nest",psychology:"behavior body brain cognitive function gear head human intellectual mental mind people person preferences psychiatric science settings social therapy thinking thoughts",public:"country earth global globe language map network planet social space web world",public_off:"disabled earth enabled global globe map network on planet slash social space web world",publish:"arrow cloud file import submit upload",published_with_changes:"approve arrows check complete done inprogress loading mark ok refresh renew replace rotate select tick validate verified yes",push_pin:"location marker place remember save",qr_code:"barcode camera media product quick response smartphone urls",qr_code_2:"barcode camera media product quick response smartphone urls",qr_code_scanner:"barcode camera media product quick response smartphone urls",query_builder:"clock date hour minute save schedule time",query_stats:"analytics chart data diagram find glass infographic line look magnifying measure metrics search see statistics tracking",question_answer:"bubble chat comment communicate conversation converse feedback message speech talk",question_mark:"? assistance help information mark punctuation question support symbol",queue:"add collection layers multiple music playlist stack stream video",queue_music:"add collection playlist stream",queue_play_next:"+ add arrow collection desktop device display hardware monitor music new playlist plus screen steam symbol tv video",quickreply:"bubble chat comment communicate fast lightning message speech thunderbolt",quiz:"? assistance faq help information mark punctuation question support symbol test",radar:"detect military near network position scan",radio:"antenna audio device frequency hardware listen media music player signal tune",radio_button_checked:"application bullet circle components design form interface off point record screen selected toggle ui ux website",radio_button_unchecked:"bullet circle deselected form off point record toggle",railway_alert:"! attention automobile bike cars caution danger direction error exclamation important maps mark notification public scooter subway symbol train transportation vehicle vespa warning",ramen_dining:"breakfast dinner drink fastfood lunch meal noodles restaurant",ramp_left:"arrows directions maps navigation path route sign traffic",ramp_right:"arrows directions maps navigation path route sign traffic",rate_review:"chat comment feedback message pencil stars write",raw_off:"alphabet character disabled enabled font image letter original photography slash symbol text type",raw_on:"alphabet character disabled enabled font image letter off original photography slash symbol text type",read_more:"arrow text",receipt:"bill credit invoice paper payment sale transaction",receipt_long:"bill check document list paperwork record store transaction",recent_actors:"account avatar cards carousel contacts face human layers list people person profile thumbnail user",recommend:"approved circle confirm favorite gesture hand like reaction social support thumbs well",record_voice_over:"account face human people person profile recording sound speaking speech transcript user",rectangle:"four parallelograms polygons quadrilaterals recangle shape sides",reddit:"brand logo social",redeem:"bill cart cash certificate coin commerce credit currency dollars giftcard money online payment present shopping",redo:"arrow backward forward next repeat rotate undo",reduce_capacity:"arrow body covid decrease down human people person social",refresh:"around arrows direction inprogress loading navigation refresh renew right rotate turn",remember_me:"Android avatar device hardware human iOS identity mobile people person phone profile tablet user",remove:"can delete line minus negative substract subtract trash",remove_circle:"allowed banned block can delete disable minus negative not substract trash",remove_circle_outline:"allowed banned block can delete disable minus negative not substract trash",remove_done:"approve check complete disabled enabled finished mark multiple off ok select slash tick yes",remove_from_queue:"collection desktop device display hardware list monitor screen steam television",remove_moderator:"certified disabled enabled off privacy private protection security shield slash verified",remove_red_eye:"iris looking preview see sight vision",remove_road:"- cancel close destination direction exit highway maps minus new no stop street symbol traffic",remove_shopping_cart:"card cash checkout coin commerce credit currency disabled dollars enabled off online payment slash tick",reorder:"format lines list stacked",repeat:"arrows controls media music video",repeat_on:"arrows controls media music video",repeat_one:"1 arrows controls digit media music number symbol video",repeat_one_on:"arrows controls digit media music number symbol video",replay:"arrows controls music refresh reload renew repeat retry rewind undo video",replay_10:"arrows controls digit music number refresh renew repeat rewind symbol ten video",replay_30:"arrows controls digit music number refresh renew repeat rewind symbol thirty video",replay_5:"arrows controls digit five music number refresh renew repeat rewind symbol video",replay_circle_filled:"arrows controls music refresh renew repeat video",reply:"arrow backward left mail message send share",reply_all:"arrows backward group left mail message multiple send share",report:"! alert attention caution danger error exclamation important mark notification octagon symbol warning",report_gmailerrorred:"! alert attention caution danger exclamation important mark notification octagon symbol warning",report_off:"! alert attention caution danger disabled enabled error exclamation important mark notification octagon offline slash symbol warning",report_problem:"! alert announcement attention caution danger error exclamation feedback important mark notification symbol triangle warning",request_quote:"bill card cash coin commerce cost credit currency dollars finance money online payment price shopping symbol",reset_tv:"arrow device hardware monitor television",restart_alt:"around arrow inprogress loading reboot refresh renew repeat reset",restaurant:"breakfast cutlery dining dinner eat food fork knife local lunch meal places spoon utensils",restaurant_menu:"book dining eat food fork knife local meal spoon",restore:"arrow backwards clock date history refresh renew reverse rotate schedule time turn undo",restore_from_trash:"arrow backwards can clock date delete garbage history refresh remove renew reverse rotate schedule time turn up",restore_page:"arrow data doc file history paper refresh rotate sheet storage undo web",reviews:"bubble chat comment communicate feedback message rate rating recommendation speech",rice_bowl:"dinner food lunch meal restaurant",ring_volume:"calling cell contact device hardware incoming mobile ringer sound telephone",r_mobiledata:"alphabet character font letter symbol text type",rocket:"spaceship",rocket_launch:"spaceship takeoff",roller_shades:"blinds cover curtains nest open shutter sunshade",roller_shades_closed:"blinds cover curtains nest shutter sunshade",roofing:"architecture building chimney construction estate home house real residence residential service shelter",room:"destination direction gps location maps marker pin place spot stop",room_preferences:"building doorway entrance gear home house interior office open settings",room_service:"alert bell concierge delivery hotel notify",rotate_90_degrees_ccw:"arrows direction editing image photo turn",rotate_90_degrees_cw:"arrows ccw direction editing image photo turn",rotate_left:"around arrow circle direction inprogress loading refresh reload renew reset turn",rotate_right:"around arrow circle direction inprogress loading refresh renew turn",roundabout_left:"arrows directions maps navigation path route sign traffic",roundabout_right:"arrows directions maps navigation path route sign traffic",rounded_corner:"adjust edit shape square transform",route:"directions maps path sign traffic",router:"box cable connection device hardware internet network signal wifi",rowing:"activity boat body canoe human people person sports water",rss_feed:"application blog connection data internet network service signal website wifi wireless",rsvp:"alphabet character font invitation invite letter plaît respond répondez sil symbol text type vous",rtt:"call real rrt text time",rule:"approve check done incomplete line mark missing no ok select tick validate verified wrong x yes",rule_folder:"approve cancel check close complete data document done drive exit file mark no ok remove select sheet slide storage tick validate verified yes",run_circle:"body exercise human people person running",running_with_errors:"! alert attention caution danger duration exclamation important mark notification processing symbol time warning",rv_hookup:"arrow attach automobile automotive back cars connect direction left maps public right trailer transportation travel truck van vehicle",safety_divider:"apart distance separate social space",sailing:"entertainment fishing hobby ocean sailboat sea social sports travel water",sanitizer:"bacteria bottle clean covid disinfect germs pump",satellite:"bluetooth connection connectivity data device image internet landscape location maps mountains network photography picture scan service signal symbol wifi wireless--",satellite_alt:"alternative artificial communication space station television",save:"data diskette document drive file floppy multimedia storage write",save_alt:"arrow diskette document down file floppy multimedia write",save_as:"compose create data disk document draft drive editing file floppy input multimedia pencil storage write writing",saved_search:"find glass important look magnifying marked see star",savings:"bank bill card cash coin commerce cost credit currency dollars finance money online payment piggy symbol",scale:"measure monitor weight",scanner:"copy device hardware machine",scatter_plot:"analytics bars chart circles data diagram dot infographic measure metrics statistics tracking",schedule:"calendar clock date mark save time",schedule_send:"calendar clock date email letter remember share time",schema:"analytics chart data diagram flow infographic measure metrics statistics tracking",school:"academy achievement cap class college education graduation hat knowledge learning university",science:"beaker chemical chemistry experiment flask glass laboratory research tube",score:"2k alphabet analytics bars character chart data diagram digit font infographic letter measure metrics number statistics symbol text tracking type",screen_lock_landscape:"Android device hardware iOS mobile phone rotate security tablet",screen_lock_portrait:"Android device hardware iOS mobile phone rotate security tablet",screen_lock_rotation:"Android arrow device hardware iOS mobile phone rotate tablet turn",screen_rotation:"Android arrow device hardware iOS mobile phone rotate tablet turn",screen_search_desktop:"Android arrow device hardware iOS lock monitor rotate web",screen_share:"Android arrow cast chrome device display hardware iOS laptop mac mirror monitor steam streaming web window",screenshot:"Android cell crop device hardware iOS mobile phone tablet",screenshot_monitor:"Android chrome desktop device display hardware iOS mac screengrab web window",sd:"alphabet camera card character data device digital drive flash font image letter memory photo secure symbol text type",sd_card:"camera digital memory photos secure storage",sd_card_alert:"! attention camera caution danger digital error exclamation important mark memory notification photos secure storage symbol warning",sd_storage:"camera card data digital memory microsd secure",search:"filter find glass look magnifying see up",search_off:"cancel close disabled enabled find glass look magnifying on see slash stop x",security:"certified privacy private protection shield verified",security_update:"Android arrow device download hardware iOS mobile phone tablet",security_update_good:"Android checkmark device hardware iOS mobile ok phone tablet tick",security_update_warning:"! Android alert attention caution danger device download error exclamation hardware iOS important mark mobile notification phone symbol tablet",segment:"alignment fonts format lines list paragraph part piece rules style text",select_all:"selection square tool",self_improvement:"body calm care chi human meditate meditation people person relax sitting wellbeing yoga zen",sell:"bill card cart cash coin commerce credit currency dollars money online payment price shopping tag",send:"chat email message paper plane reply right share telegram",send_and_archive:"arrow download email letter save share",send_time_extension:"deliver dispatch envelop mail message schedule",send_to_mobile:"Android arrow device export forward hardware iOS phone right share tablet",sensors:"connection network scan signal wireless",sensors_off:"connection disabled enabled network scan signal slash wireless",sentiment_dissatisfied:"angry disappointed dislike emoji emoticon emotions expressions face feelings frown mood person sad smiley survey unhappy unsatisfied upset",sentiment_neutral:"emotionless emotions expressions face feelings indifference mood okay person survey",sentiment_satisfied:"emoji emoticon emotions expressions face feelings glad happiness happy like mood person pleased smiley smiling survey",sentiment_satisfied_alt:"account emoji face happy human people person profile smile user",sentiment_very_dissatisfied:"angry disappointed dislike emoji emoticon emotions expressions face feelings mood person sad smiley sorrow survey unhappy unsatisfied upset",sentiment_very_satisfied:"emoji emoticon emotions expressions face feelings glad happiness happy like mood person pleased smiley smiling survey",set_meal:"chopsticks dinner fish food lunch restaurant teishoku",settings:"application change details gear information options personal service",settings_accessibility:"body details human information people personal preferences profile user",settings_applications:"change details gear information options personal save service",settings_backup_restore:"arrow backwards history refresh reverse rotate time undo",settings_bluetooth:"connection connectivity device network signal symbol wifi",settings_brightness:"dark filter light mode sun",settings_cell:"Android cellphone device hardware iOS mobile tablet",settings_ethernet:"arrows brackets computer connection connectivity dots internet network parenthesis wifi",settings_input_antenna:"airplay arrows computer connection connectivity dots internet network screencast stream wifi wireless",settings_input_component:"audio av cables connection connectivity internet plugs points video wifi",settings_input_composite:"cable component connection connectivity plugs points",settings_input_hdmi:"cable connection connectivity definition high plugin points video wire",settings_input_svideo:"cable connection connectivity definition plugin plugs points standard svideo,",settings_overscan:"arrows expand image photo picture",settings_phone:"call cell contact device hardware mobile telephone",settings_power:"information off save shutdown",settings_remote:"bluetooth connection connectivity control device signal wifi wireless",settings_suggest:"change details gear options recommendation service suggestion system",settings_system_daydream:"backup cloud drive storage",settings_voice:"microphone recorder speaker",seven_k:"7000 7K alphabet character digit display font letter number pixels resolution symbol text type video",seven_k_plus:"+ 7000 7K alphabet character digit display font letter number pixels resolution symbol text type video",seven_mp:"camera digit font image letters megapixels number quality resolution symbol text type",seventeen_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",share:"android connect contect link multimedia multiple network options send shared sharing social",share_location:"destination direction gps maps pin place stop tracking",shield:"certified privacy private protection secure security verified",shop:"arrow bag bill briefcase buy card cart cash coin commerce credit currency dollars google money online payment play purchase shopping store",shop_2:"add arrow buy cart google play purchase shopping",shopping_bag:"bill business buy card cart cash coin commerce credit currency dollars money online payment storefront",shopping_basket:"add bill buy card cart cash checkout coin commerce credit currency dollars money online payment purchase",shopping_cart:"add bill buy card cash checkout coin commerce credit currency dollars money online payment purchase",shopping_cart_checkout:"arrow cash coin commerce currency dollars money online payment right",shop_two:"add arrow briefcase buy cart google play purchase shopping",shortcut:"arrow direction forward right",short_text:"brief comment document lines note write writing",show_chart:"analytics bars chart data diagram infographic line measure metrics presentation show statistics stock tracking",shower:"bathroom closet home house place plumbing sprinkler wash water wc",shuffle:"arrows controls music random video",shuffle_on:"arrows controls music random video",shutter_speed:"aperture camera duration image lens photography photos picture setting stop timer watch",sick:"covid discomfort emotions expressions face feelings fever flu ill mood pain person survey upset",signal_cellular_0_bar:"data internet mobile network phone speed wifi wireless",signal_cellular_4_bar:"data internet mobile network phone speed wifi wireless",signal_cellular_alt:"analytics bar chart data diagram infographic internet measure metrics mobile network phone statistics tracking wifi wireless",signal_cellular_connected_no_internet_0_bar:"! alert attention caution danger data error exclamation important mark mobile network notification phone symbol warning wifi wireless",signal_cellular_connected_no_internet_1_bar:"network",signal_cellular_connected_no_internet_2_bar:"network",signal_cellular_connected_no_internet_3_bar:"network",signal_cellular_connected_no_internet_4_bar:"! alert attention caution danger data error exclamation important mark mobile network notification phone symbol warning wifi wireless",signal_cellular_nodata:"internet mobile network offline phone quit wifi wireless x",signal_cellular_no_sim:"camera card chip device disabled enabled memory network offline phone slash storage",signal_cellular_null:"data internet mobile network phone wifi wireless",signal_cellular_off:"data disabled enabled internet mobile network offline phone slash wifi wireless",signal_wifi_bad:"bar cancel cellular close data exit internet mobile network no phone quit remove stop wireless",signal_wifi_connected_no_internet4:"cellular data mobile network offline phone wireless x",signal_wifi_off:"cellular data disabled enabled internet mobile network phone slash speed wireless",signal_wifi_statusbar4_bar:"cellular data internet mobile network phone speed wireless",signal_wifi_statusbar_connected_no_internet4:"! alert attention caution cellular danger data error exclamation important mark mobile network notification phone speed symbol warning wireless",signal_wifi_statusbar_null:"cellular data internet mobile network phone speed wireless",signpost:"arrow direction left maps right signal signs street traffic",sim_card:"camera chip device memory network phone storage",sim_card_alert:"! attention camera caution danger digital error exclamation important mark memory notification photos sd secure storage symbol warning",sim_card_download:"arrow camera chip device memory phone storage",single_bed:"bedroom double furniture home hotel house king night pillows queen rest sleep twin",sip:"alphabet call character dialer font initiation internet letter over phone protocol routing session symbol text type voice",six_k:"6000 6K alphabet character digit display font letter number pixels resolution symbol text type video",six_k_plus:"+ 6000 6K alphabet character digit display font letter number pixels resolution symbol text type video",six_mp:"camera digit font image letters megapixels number quality resolution symbol text type",sixteen_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",sixty_fps:"camera digit frames number symbol video",sixty_fps_select:"camera digits frame frequency numbers per rate seconds video",skateboarding:"athlete athletic body entertainment exercise hobby human people person skateboarder social sports",skip_next:"arrow back controls forward music play previous transport video",skip_previous:"arrow backward controls forward music next play transport video",sledding:"athlete athletic body entertainment exercise hobby human people person sledge snow social sports travel winter",slideshow:"movie photos play presentation square video view",slow_motion_video:"arrow circle controls music play speed time",smart_button:"action auto components composer function interface special stars ui ux website",smart_display:"airplay chrome connect device screencast stream television tv video wireless",smartphone:"Android call cell chat device hardware iOS mobile tablet text",smart_screen:"Android airplay cell connect device hardware iOS mobile phone screencast stream tablet video",smart_toy:"games robot",smoke_free:"cigarette disabled enabled never no off places prohibited slash smoking tobacco warning zone",smoking_rooms:"allowed cigarette places smoke tobacco zone",sms:"3 bubble chat comment communication conversation dots message more service speech three",sms_failed:"! alert attention bubbles caution chat comment communication conversation danger error exclamation important mark message notification service speech symbol warning",snippet_folder:"data document drive file sheet slide storage",snooze:"alarm bell clock duration notification set timer watch",snowboarding:"athlete athletic body entertainment exercise hobby human people person social sports travel winter",snowmobile:"automobile car direction skimobile social sports transportation travel vehicle winter",snowshoeing:"body human people person sports travel walking winter",soap:"bathroom clean fingers gesture hand wash wc",social_distance:"6 apart body ft human people person space",solar_power:"eco energy heat nest sunny",sort:"filter find lines list organize",sort_by_alpha:"alphabetize az by character font letters list order organize symbol text type",soup_kitchen:"breakfast brunch dining food lunch meal",source:"code composer content creation data document file folder mode storage view",south:"arrow directional down maps navigation",south_america:"america continent landscape place region south",south_east:"arrow directional down maps navigation right",south_west:"arrow directional down left maps navigation",spa:"aromatherapy flower healthcare leaf massage meditation nature petals places relax wellbeing wellness",space_bar:"keyboard line",speaker:"audio box electronic loud music sound stereo system video",speaker_group:"audio box electronic loud multiple music sound stereo system video",speaker_notes:"bubble cards chat comment communicate format list message speech text",speaker_notes_off:"bubble cards chat comment communicate disabled enabled format list message on slash speech text",speaker_phone:"Android cell device hardware iOS mobile sound tablet volume",speed:"arrow clock controls dial fast gauge measure motion music slow speedometer test velocity video",spellcheck:"alphabet approve character checkmark edit font letter ok processor select symbol text tick type word write yes",splitscreen:"grid layout multitasking two",spoke:"connection network radius",sports:"athlete athletic basketball blowing coach entertainment exercise game hobby instrument live referee soccer social sound trophy warning whistle",sports_bar:"alcohol beer drink liquor pint places pub",sports_baseball:"athlete athletic entertainment exercise game hobby social",sports_basketball:"athlete athletic entertainment exercise game hobby social",sports_cricket:"athlete athletic ball bat entertainment exercise game hobby social",sports_esports:"controller entertainment gamepad gaming hobby online playstation social video xbox",sports_football:"american athlete athletic entertainment exercise game hobby social",sports_golf:"athlete athletic ball club entertainment exercise game golfer golfing hobby social",sports_handball:"athlete athletic body entertainment exercise game hobby human people person social",sports_hockey:"athlete athletic entertainment exercise game hobby ice social sticks",sports_kabaddi:"athlete athletic body combat entertainment exercise fighting game hobby human judo martial people person social wrestle wrestling",sports_martial_arts:"athlete athletic entertainment exercise hobby human karate people person social",sports_mma:"arts athlete athletic boxing combat entertainment exercise fighting game glove hobby martial mixed social",sports_motorsports:"athlete athletic automobile bike drive driving entertainment helmet hobby motorcycle protect social vehicle",sports_rugby:"athlete athletic ball entertainment exercise game hobby social",sports_score:"destination flag goal",sports_soccer:"athlete athletic entertainment exercise football game hobby social",sports_tennis:"athlete athletic ball bat entertainment exercise game hobby racket social",sports_volleyball:"athlete athletic entertainment exercise game hobby social",square:"draw four quadrangle shape sides",square_foot:"construction feet inches length measurement ruler school set tools",ssid_chart:"graph lines network wifi",stacked_bar_chart:"analytics chart-chart data diagram infographic measure metrics statistics tracking",stacked_line_chart:"analytics data diagram infographic measure metrics statistics tracking",stadium:"activity amphitheater arena coliseum event local star things ticket",stairs:"down staircase up",star:"best bookmark favorite highlight ranking rate rating save toggle",star_border:"best bookmark favorite highlight outline ranking rate rating save toggle",star_border_purple_500:"best bookmark favorite highlight outline ranking rate rating save toggle",star_half:"0.5 1/2 achievement bookmark favorite highlight important marked ranking rate rating reward saved shape special toggle",star_outline:"bookmark favorite half highlight ranking rate rating save toggle",star_purple_500:"best bookmark favorite highlight ranking rate rating save toggle",star_rate:"achievement bookmark favorite highlight important marked ranking rating reward saved shape special",stars:"achievement bookmark circle favorite highlight important like love marked ranking rate rating reward saved shape special",start:"arrow keyboard next right",stay_current_landscape:"Android device hardware iOS mobile phone tablet",stay_current_portrait:"Android device hardware iOS mobile phone tablet",stay_primary_landscape:"Android current device hardware iOS mobile phone tablet",stay_primary_portrait:"Android current device hardware iOS mobile phone tablet",sticky_note_2:"bookmark message paper text writing",stop:"arrow controls music pause player square video",stop_circle:"controls music pause play square video",stop_screen_share:"Android arrow cast chrome device disabled display enabled hardware iOS laptop mac mirror monitor offline slash steam streaming web window",storage:"computer database drive memory network server",store:"bill building business buy card cash coin company credit currency dollars e-commerce market money online payment purchase shopping storefront",storefront:"business buy cafe commerce market merchant places restaurant retail sell shopping stall",store_mall_directory:"building",storm:"forecast hurricane temperature twister weather wind",straight:"arrows directions maps navigation path route sign traffic up",straighten:"length measurement piano ruler size",stream:"cast connected feed live network signal wireless",streetview:"gps location maps",strikethrough_s:"alphabet character cross doc editing editor font letter out spreadsheet styles symbol text type writing",stroller:"baby care carriage children infant kid newborn toddler young",style:"booklet cards filters options tags",subdirectory_arrow_left:"arrow down navigation",subdirectory_arrow_right:"arrow down navigation",subject:"alignment document email full justify lines list note text writing",subscript:"2 doc editing editor gmail novitas spreadsheet style symbol text writing",subscriptions:"enroll media order playlist queue signup subscribe youtube",subtitles:"accessibility accessible captions character closed decoder language media movies translate tv",subtitles_off:"accessibility accessible caption closed disabled enabled language slash translate video",subway:"automobile bike cars maps metro rail scooter train transportation travel tunnel underground vehicle vespa",summarize:"document list menu note report summary",superscript:"2 doc editing editor gmail novitas spreadsheet style symbol text writing",supervised_user_circle:"account avatar control face human parental parents people person profile supervisor",supervisor_account:"administrator avatar control face human parental parents people person profile supervised user",support:"assist help lifebuoy rescue safety",support_agent:"care customer face headphone person representative service",surfing:"athlete athletic beach body entertainment exercise hobby human people person sea social sports summer water",surround_sound:"audio circle signal speaker system volume volumn wireless",swap_calls:"arrows device direction mobile share",swap_horiz:"arrows back direction forward horizontal",swap_horizontal_circle:"arrows back direction forward",swap_vert:"arrows back direction down navigation up vertical",swap_vertical_circle:"arrows back direction down horizontal up",swipe:"arrows fingers gesture hands touch",swipe_down:"arrows direction disable enable finger hands hit navigation strike swing swpie take",swipe_down_alt:"arrows direction disable enable finger hands hit navigation strike swing swpie take",swipe_left:"arrows finger hand hit navigation reject strike swing take",swipe_left_alt:"arrows finger hand hit navigation reject strike swing take",swipe_right:"accept arrows direction finger hands hit navigation strike swing swpie take",swipe_right_alt:"accept arrows direction finger hands hit navigation strike swing swpie take",swipe_up:"arrows direction disable enable finger hands hit navigation strike swing swpie take",swipe_up_alt:"arrows direction disable enable finger hands hit navigation strike swing swpie take",swipe_vertical:"arrows direction finger hands hit navigation strike swing swpie take verticle",switch_access_shortcut:"arrows direction navigation new north star symbol up",switch_access_shortcut_add:"+ arrows direction navigation new north plus star symbol up",switch_account:"choices face human multiple options people person profile social user",switch_camera:"arrows photography picture",switch_left:"arrows directional navigation toggle",switch_right:"arrows directional navigation toggle",switch_video:"arrows camera photography videos",sync:"360 around arrows direction inprogress loading refresh renew rotate turn",sync_alt:"arrows horizontal internet technology update wifi",sync_disabled:"360 around arrows direction enabled inprogress loading off refresh renew rotate slash turn",sync_lock:"around arrows locked password privacy private protection renew rotate safety secure security turn",sync_problem:"! 360 alert around arrows attention caution danger direction error exclamation important inprogress loading mark notification refresh renew rotate symbol turn warning",system_security_update:"Android arrow cell device down hardware iOS mobile phone tablet",system_security_update_good:"Android approve cell check complete device done hardware iOS mark mobile ok phone select tablet tick validate verified yes",system_security_update_warning:"! Android alert attention caution cell danger device error exclamation hardware iOS important mark mobile notification phone symbol tablet",system_update:"Android arrows cell device direction download hardware iOS install mobile phone tablet",system_update_alt:"arrow download export",tab:"browser computer documents folder internet tabs website windows",table_chart:"analytics bars data diagram grid infographic measure metrics statistics tracking",table_rows:"grid layout lines stacked",tablet:"Android device hardware iOS ipad mobile web",tablet_android:"device hardware iOS ipad mobile web",tablet_mac:"Android apple device hardware iOS ipad mac mobile tablet web",table_view:"format grid group layout multiple",tab_unselected:"browser computer documents folder internet tabs website windows",tag:"hashtag key media number pound social trend",tag_faces:"emoji emotion happy satisfied smile",takeout_dining:"box container delivery food meal restaurant",tap_and_play:"Android cell connection device hardware iOS internet mobile network nfc phone signal tablet to wifi wireless",tapas:"appetizer brunch dinner food lunch restaurant snack",task:"approve check complete data document done drive file folders mark ok page paper select sheet slide tick validate verified writing yes",task_alt:"approve check circle complete done mark ok select tick validate verified yes",taxi_alert:"! attention automobile cab cars caution danger direction error exclamation important lyft maps mark notification public symbol transportation uber vehicle warning yellow",telegram:"brand call chat logo messaging voice",ten_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",terminal:"application code emulator program software",terrain:"geography landscape mountain",text_decrease:"- alphabet character font letter minus remove resize subtract symbol type",text_fields:"T add alphabet character font input letter symbol type",text_format:"A alphabet character font letter square style symbol type",text_increase:"+ add alphabet character font letter new plus resize symbol type",text_rotate_up:"A alphabet arrow character field font letter move symbol type",text_rotate_vertical:"A alphabet arrow character down field font letter move symbol type verticle",text_rotation_angledown:"A alphabet arrow character field font letter move rotate symbol type",text_rotation_angleup:"A alphabet arrow character field font letter move rotate symbol type",text_rotation_down:"A alphabet arrow character field font letter move rotate symbol type",text_rotation_none:"A alphabet arrow character field font letter move rotate symbol type",textsms:"bubble chat comment communicate dots feedback message speech",text_snippet:"data document file notes storage writing",texture:"diagonal lines pattern stripes",theater_comedy:"broadway event movie musical places show standup tour watch",theaters:"film media movies photography showtimes video watch",thermostat:"forecast temperature weather",thermostat_auto:"A celsius fahrenheit temperature thermometer",thirteen_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",thirty_fps:"alphabet camera character digit font frames letter number symbol text type video",thirty_fps_select:"camera digits frame frequency image numbers per rate seconds video",three_d_rotation:"3d D alphabet arrows av camera character digit font letter number symbol text type vr",three_g_mobiledata:"alphabet cellular character digit font letter network number phone signal speed symbol text type wifi",three_k:"3000 3K alphabet character digit display font letter number pixels resolution symbol text type video",three_k_plus:"+ 3000 3K alphabet character digit display font letter number pixels resolution symbol text type video",three_mp:"camera digit font image letters megapixels number quality resolution symbol text type",three_p:"account avatar bubble chat comment communicate face human message party people person profile speech user",three_sixty:"arrow av camera direction rotate rotation vr",thumb_down:"dislike downvote favorite fingers gesture hands ranking rate rating reject up",thumb_down_alt:"bad decline disapprove dislike feedback hand hate negative no reject social veto vote",thumb_down_off_alt:"bad decline disapprove dislike favorite feedback filled fingers gesture hands hate negative no ranking rate rating reject sad social veto vote",thumbs_up_down:"dislike favorite fingers gesture hands rate rating vote",thumb_up:"approve dislike down favorite fingers gesture hands ranking rate rating success upvote",thumb_up_alt:"agreed approved confirm correct favorite feedback good hand happy like okay positive satisfaction social success vote yes",thumb_up_off_alt:"agreed approved confirm correct favorite feedback fingers gesture good hands happy like okay positive ranking rate rating satisfaction social vote yes",timelapse:"duration motion photo timer video",timeline:"analytics chart data graph history line movement points tracking trending zigzag zigzap",timer:"alarm alart bell clock disabled duration enabled notification off slash stopwatch wait",timer_10:"digits duration numbers seconds",timer_10_select:"alphabet camera character digit font letter number seconds symbol text type",timer_3:"digits duration numbers seconds",timer_3_select:"alphabet camera character digit font letter number seconds symbol text type",timer_off:"alarm alart bell clock disabled duration enabled notification slash stopwatch",times_one_mobiledata:"alphabet cellular character digit font letter network number phone signal speed symbol text type wifi",time_to_leave:"automobile cars destination direction drive estimate eta maps public transportation travel trip vehicle",tips_and_updates:"alert announcement electricity idea information lamp lightbulb stars",title:"T alphabet character font header letter subject symbol text type",toc:"content format lines list reorder stacked table text titles",today:"agenda calendar date event mark month range remember reminder schedule time week",toggle_off:"application components configuration control design disable inable inactive interface selection settings slider switch ui ux website",toggle_on:"application components configuration control design disable inable inactive interface off selection settings slider switch ui ux website",token:"badge hexagon mark shield sign symbol",toll:"bill booth card cash circles coin commerce credit currency dollars highway money online payment ticket",tonality:"circle editing filter image photography picture",topic:"data document drive file folder sheet slide storage",tornado:"crisis disaster natural rain storm weather wind",touch_app:"arrow command fingers gesture hand press swipe tap",tour:"destination flag places travel visit",toys:"car fan games kids windmill",track_changes:"bullseye circle evolve lines movement radar rotate shift target",traffic:"direction light maps signal street",train:"automobile cars direction maps public rail subway transportation vehicle",tram:"automobile cars direction maps public rail subway train transportation vehicle",transfer_within_a_station:"arrows body direction human left maps people person public right route stop transit transportation vehicle walk",transform:"adjust crop editing image photo picture",transgender:"female lgbt neutral neutrual social symbol",transit_enterexit:"arrow direction maps navigation route transportation",translate:"alphabet language letter speaking speech text translator words",travel_explore:"earth find glass global globe look magnifying map network planet search see social space web world",trending_down:"analytics arrow change chart data diagram infographic measure metrics movement rate rating sale statistics tracking",trending_flat:"arrow change chart data graph metric movement rate right tracking",trending_up:"analytics arrow change chart data diagram infographic measure metrics movement rate rating statistics tracking",trip_origin:"circle departure",try:"bookmark bubble chat comment communicate favorite feedback highlight important marked message saved shape special speech star",tty:"call cell contact deaf device hardware impaired mobile speech talk telephone text",tune:"adjust editing options settings sliders",tungsten:"electricity indoor lamp lightbulb setting",turned_in:"archive bookmark favorite item label library reading remember ribbon save submit tag",turned_in_not:"archive bookmark favorite item label library outline reading remember ribbon save submit tag",turn_left:"arrows directions maps navigation path route sign traffic",turn_right:"arrows directions maps navigation path route sign traffic",turn_sharp_left:"arrows directions maps navigation path route sign traffic",turn_sharp_right:"arrows directions maps navigation path route sign traffic",turn_slight_left:"arrows directions maps navigation path right route sign traffic",turn_slight_right:"arrows directions maps navigation path route sharp sign traffic",tv:"device display linear living monitor room screencast stream television video wireless",tv_off:"Android chrome desktop device disabled enabled hardware iOS mac monitor slash television web window",twelve_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",twenty_four_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",twenty_one_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",twenty_three_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",twenty_two_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",twenty_zero_mp:"camera digits font image letters megapixels numbers quality resolution symbol text type",twitter:"brand logo social",two_k:"2000 2K alphabet character digit display font letter number pixels resolution symbol text type video",two_k_plus:"+ alphabet character digit font letter number symbol text type",two_mp:"camera digit font image letters megapixels number quality resolution symbol text type",two_wheeler:"automobile bicycle cars direction maps moped motorbike motorcycle public ride riding scooter transportation travel twom vehicle wheeler wheels",umbrella:"beach protection rain sunny",unarchive:"arrow inbox mail store undo up",undo:"arrow backward mail previous redo repeat rotate",unfold_less:"arrows chevron collapse direction expandable inward list navigation up",unfold_more:"arrows chevron collapse direction down expandable list navigation",unpublished:"approve check circle complete disabled done enabled mark off ok select slash tick validate verified yes",unsubscribe:"cancel close email envelop esubscribe message newsletter off remove send",upcoming:"alarm calendar mail message notification",update:"arrow backwards clock forward future history load refresh reverse rotate schedule time",update_disabled:"arrow backwards clock enabled forward history load off on refresh reverse rotate schedule slash time",upgrade:"arrow export instal line replace update",upload:"arrows download drive",upload_file:"arrow data document download drive folders page paper sheet slide writing",usb:"cable connection device wire",usb_off:"cable connection device wire",u_turn_left:"arrows directions maps navigation path route sign traffic u-turn",u_turn_right:"arrows directions maps navigation path route sign traffic u-turn",vaccines:"aid covid doctor drug emergency hospital immunity injection medical medication medicine needle pharmacy sick syringe vaccination vial",verified:"approve badge burst check complete done mark ok select star tick validate yes",verified_user:"approve audit certified checkmark complete done ok privacy private protection security select shield tick validate yes",vertical_align_bottom:"alignment arrow doc down editing editor spreadsheet text type writing",vertical_align_center:"alignment arrow doc down editing editor spreadsheet text type up writing",vertical_align_top:"alignment arrow doc editing editor spreadsheet text type up writing",vertical_shades:"blinds cover curtains nest open shutter sunshade",vertical_shades_closed:"blinds cover curtains nest roller shutter sunshade",vertical_split:"design format grid layout paragraph text website writing",vibration:"Android alert cell device hardware iOS mobile mode motion notification phone silence silent tablet vibrate",video_call:"+ add camera chat conference filming hardware image motion new picture plus screen symbol videography",videocam:"camera chat conference filming hardware image motion picture screen videography",video_camera_back:"image landscape mountains photography picture rear",video_camera_front:"account face human image people person photography picture profile user",videocam_off:"camera chat conference disabled enabled filming hardware image motion offline picture screen slash videography",video_file:"camera document filming hardware image motion picture videography",videogame_asset:"console controller device gamepad gaming nintendo playstation xbox",videogame_asset_off:"console controller device disabled enabled gamepad gaming playstation slash",video_label:"device item screen window",video_library:"arrow collection play",video_settings:"change details gear information options play screen service window",video_stable:"filming recording setting stability taping",view_agenda:"blocks cards design format grid layout website,stacked",view_array:"blocks design format grid layout website",view_carousel:"banner blocks cards design format grid images layout website",view_column:"blocks design format grid layout vertical website",view_comfy:"grid layout pattern squares",view_comfy_alt:"cozy design format layout web",view_compact:"grid layout pattern squares",view_compact_alt:"dense design format layout web",view_cozy:"comfy design format layout web",view_day:"blocks calendar cards carousel design format grid layout website week",view_headline:"blocks design format grid layout paragraph text website",view_in_ar:"3d augmented cube daydream headset reality square vr",view_kanban:"grid layout pattern squares",view_list:"blocks design format grid layout lines reorder stacked title website",view_module:"blocks design format grid layout reorder squares stacked title website",view_quilt:"blocks design format grid layout reorder squares stacked title website",view_sidebar:"design format grid layout web",view_stream:"blocks design format grid layout lines list reorder stacked title website",view_timeline:"grid layout pattern squares",view_week:"bars blocks columns day design format grid layout website",vignette:"border editing effect filter gradient image photography setting",villa:"architecture beach estate home house maps place real residence residential stay traveling vacation",visibility:"eye on password preview reveal see shown visability",visibility_off:"disabled enabled eye hidden invisible on password reveal see show slash view visability",voice_chat:"bubble camera comment communicate facetime feedback message speech video",voicemail:"call device message missed mobile phone recording",voice_over_off:"account disabled enabled face human people person profile recording slash speaking speech transcript user",volume_down:"audio av control music quieter shh soft sound speaker tv",volume_mute:"audio control music sound speaker tv",volume_off:"audio av control disabled enabled low music mute slash sound speaker tv",volume_up:"audio control music sound speaker tv",volunteer_activism:"donation fingers gesture giving hands heart love sharing",vpn_key:"login network passcode password register security signin signup unlock",vpn_key_off:"[offline] disabled enabled network on passcode password slash unlock",vpn_lock:"earth globe locked network password privacy private protection safety secure security virtual world",vrpano:"angle image landscape mountains panorama photography picture view wide",wallpaper:"background image landscape photography picture",warehouse:"garage industry manufacturing storage",warning:"! alert announcement attention caution danger error exclamation feedback important mark notification problem symbol triangle",warning_amber:"! alert attention caution danger error exclamation important mark notification symbol triangle",wash:"bathroom clean fingers gesture hand wc",watch:"Android clock gadget iOS smartwatch time vr wearables web wristwatch",watch_later:"clock date hour minute schedule time",watch_off:"Android clock close gadget iOS shut time vr wearables web wristwatch",water:"aqua beach lake ocean river waves weather",water_damage:"architecture building droplet estate house leak plumbing real residence residential shelter",waterfall_chart:"analytics bar data diagram infographic measure metrics statistics tracking",waves:"beach lake ocean pool river sea swim water",wb_auto:"A W alphabet automatic balance character editing font image letter photography symbol text type white wp",wb_cloudy:"balance editing white wp",wb_incandescent:"balance bright editing lamp lightbulb lighting settings white wp",wb_iridescent:"balance bright editing lighting settings white wp",wb_shade:"balance house lighting white",wb_sunny:"balance bright lighting weather white",wc:"bathroom closet female gender man person restroom toilet unisex wash water women",web:"blocks browser internet page screen website www",web_asset:"-website application browser design desktop download image interface internet layout screen ui ux video window www",web_asset_off:"browser disabled enabled internet on screen slash webpage website windows www",webhook:"api developer development enterprise software",weekend:"chair couch furniture home living lounge relax room seat",west:"arrow directional left maps navigation",whatshot:"arrow circle direction fire frames round trending",wheelchair_pickup:"accessibility accessible body handicap help human person",where_to_vote:"approve ballot check complete destination direction done election location maps mark ok pin place poll select stop tick validate verified yes",widgets:"app blocks box menu setting squares ui",wifi:"connection data internet network scan service signal wireless",wifi_calling:"cell connection connectivity contact device hardware mobile signal telephone wireless",wifi_calling_3:"cellular data internet mobile network phone speed wireless",wifi_channel:"(scan) [cellular connection data internet mobile] network service signal wireless",wifi_find:"(scan) [cellular connection data detect discover glass internet look magnifying mobile] network notice search service signal wireless",wifi_lock:"cellular connection data internet locked mobile network password privacy private protection safety secure security service signal wireless",wifi_off:"connection data disabled enabled internet network offline scan service signal slash wireless",wifi_password:"(scan) [cellular connection data internet lock mobile] network secure service signal wireless",wifi_protected_setup:"around arrows rotate",wifi_tethering:"cellular connection data internet mobile network phone scan service signal speed wireless",wifi_tethering_off:"cellular connection data disabled enabled internet mobile network offline phone scan service signal slash speed wireless",window:"close glass grid home house interior layout outside",wind_power:"eco energy nest windy",wine_bar:"alcohol cocktail cup drink glass liquor",work:"-briefcase baggage business job suitcase",work_history:"arrow backwards baggage briefcase business clock date job refresh renew reverse rotate schedule suitcase time turn",work_off:"baggage briefcase business disabled enabled job on slash suitcase",work_outline:"baggage briefcase business job suitcase",workspace_premium:"certification degree ecommerce guarantee medal permit ribbon verification",workspaces:"circles collaboration dot filled group team",wrap_text:"arrow doc editing editor spreadsheet type write writing",wrong_location:"cancel close destination direction exit maps no pin place quit remove stop",wysiwyg:"composer mode screen software system text view visibility website window",yard:"backyard flower garden home house nature pettle plants",you_tube:"brand logo social video",youtube_searched_for:"arrow backwards find glass history inprogress loading look magnifying refresh renew restore reverse rotate see yt",zoom_in:"bigger find glass grow look magnifier magnifying plus scale search see size",zoom_in_map:"arrows destination location maps move place stop",zoom_out:"find glass look magnifier magnifying minus negative scale search see size smaller",zoom_out_map:"arrows destination location maps move place stop"},Kt=new To.Search("key");Kt.addIndex("synonyms"),Kt.addDocuments(u.iconKeys.map(e=>({key:e,synonyms:Qr[e]??[]})));function ci(e){let t=0,o,a;for(o=0;o<e.length;o++)a=e.charCodeAt(o),t=(t<<5)-t+a,t|=0;return Math.abs(t)}function Wo(e,t){if(e&&(e=Wt(e),e in er))return e in er?r.jsx(u.Icon,{iconKey:e,size:"medium",className:t}):void 0}function Rt(e,t){const o=Wo(e.icon,t);if(e?.icon&&o)return o;let a=Wt(("singularName"in e?e.singularName:void 0)??e.name),n;a in er&&(n=a),n||(a=Wt(e.path),a in er&&(n=a));const i=u.coolIconKeys.length;return n||(n=u.coolIconKeys[ci(e.path)%i]),r.jsx(u.Icon,{iconKey:n,size:"medium",className:t})}const er=u.iconKeys.reduce((e,t)=>(e[t]=t,e),{});function di(e,t){if(t!==void 0&&t===1)return e;const o={"(quiz)$":"$1zes","^(ox)$":"$1en","([m|l])ouse$":"$1ice","(matr|vert|ind)ix|ex$":"$1ices","(x|ch|ss|sh)$":"$1es","([^aeiouy]|qu)y$":"$1ies","(hive)$":"$1s","(?:([^f])fe|([lr])f)$":"$1$2ves","(shea|lea|loa|thie)f$":"$1ves",sis$:"ses","([ti])um$":"$1a","(tomat|potat|ech|her|vet)o$":"$1oes","(bu)s$":"$1ses","(alias)$":"$1es","(octop)us$":"$1i","(ax|test)is$":"$1es","(us)$":"$1es","([^s]+)$":"$1s"},a={move:"moves",foot:"feet",goose:"geese",sex:"sexes",child:"children",man:"men",tooth:"teeth",person:"people"};if(["sheep","fish","deer","moose","series","species","money","rice","information","equipment","bison","cod","offspring","pike","salmon","shrimp","swine","trout","aircraft","hovercraft","spacecraft","sugar","tuna","you","wood"].indexOf(e.toLowerCase())>=0)return e;for(const i in a){const s=new RegExp(`${i}$`,"i"),l=a[i];if(s.test(e))return e.replace(s,l)}for(const i in o){const s=new RegExp(i,"i");if(s.test(e))return e.replace(s,o[i])}return e}function pi(e,t){if(t!==void 0&&t!==1)return e;const o={"(quiz)zes$":"$1","(matr)ices$":"$1ix","(vert|ind)ices$":"$1ex","^(ox)en$":"$1","(alias)es$":"$1","(octop|vir)i$":"$1us","(cris|ax|test)es$":"$1is","(shoe)s$":"$1","(o)es$":"$1","(bus)es$":"$1","([m|l])ice$":"$1ouse","(x|ch|ss|sh)es$":"$1","(m)ovies$":"$1ovie","(s)eries$":"$1eries","([^aeiouy]|qu)ies$":"$1y","([lr])ves$":"$1f","(tive)s$":"$1","(hive)s$":"$1","(li|wi|kni)ves$":"$1fe","(shea|loa|lea|thie)ves$":"$1f","(^analy)ses$":"$1sis","((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$":"$1$2sis","([ti])a$":"$1um","(n)ews$":"$1ews","(h|bl)ouses$":"$1ouse","(corpse)s$":"$1","(us)es$":"$1",s$:""},a={move:"moves",foot:"feet",goose:"geese",sex:"sexes",child:"children",man:"men",tooth:"teeth",person:"people"};if(["sheep","fish","deer","moose","series","species","money","rice","information","equipment","bison","cod","offspring","pike","salmon","shrimp","swine","trout","aircraft","hovercraft","spacecraft","sugar","tuna","you","wood"].indexOf(e.toLowerCase())>=0)return e;for(const i in a){const s=new RegExp(`${a[i]}$`,"i");if(s.test(e))return e.replace(s,i)}for(const i in o){const s=new RegExp(i,"i");if(s.test(e))return e.replace(s,o[i])}return e}function Ho(e,t,o,a=3){const n=Object.keys(e.properties);let i=o?.filter(s=>n.includes(s));return i&&i.length>0?i:(i=n,i.filter(s=>{const l=e.properties[s];return l&&!Ae(l)&&!Uo(l,t)}).slice(0,a))}function Dr(e,t=""){return e&&Object.keys(e).reduce((o,a)=>{const n=t?`${t}.${a}`:a;return typeof e[a]=="object"&&e[a]!==null?Array.isArray(e[a])?e[a].forEach((i,s)=>{Object.assign(o,Dr(i,`${n}[${s}]`))}):Object.assign(o,Dr(e[a],n)):o[n]=e[a],o},{})}function Jo(e){return e.reduce((t,o)=>(Object.entries(o).forEach(([a,n])=>{if(Array.isArray(n)&&(t[a]=Math.max(t[a]||0,n.length)),typeof n=="object"&&n!==null){const i=Jo([n]);Object.entries(i).forEach(([s,l])=>{const c=`${a}.${s}`;t[c]=Math.max(t[c]||0,l)})}}),t),{})}function Zo(e){return Object.keys(e).forEach(t=>{const o=e[t];o.editable=!0,o.dataType==="map"&&o.properties&&Zo(o.properties)}),e}function Xo(e){return Object.entries(e).reduce((t,[o,a])=>{if(!Ae(a)&&a.dataType==="map"&&a.properties){const n={...a,properties:Xo(a.properties)};t[o]=n}return Ae(a)?t[o]=a:t[o]={...a,editable:!1},t},{})}function Or(e,t,o){if(e){const n=e({collection:t,parentPaths:o})??t;return n.subcollections&&(n.subcollections=n.subcollections.map(i=>Or(e,i,[...o,t.path]))),n}else return t}function Ko(e,t,o=[],a){const n=(t??[]).map(l=>{const c=e?.find(p=>p.id===l.id);return c?Ro(c,l,o,a):Or(a,l,o)}),i=n.map(l=>l.id),s=e.filter(l=>!i.includes(l.id)).map(l=>a?Or(a,l,o):l);return[...n,...s]}function Ro(e,t,o=[],a){const n=Ko(e?.subcollections??[],t?.subcollections??[],[...o,e.path],a),i={...e.properties};Object.keys(t.properties).forEach(g=>{const m=e.properties[g];m?i[g]=ea(m,t.properties[g]):i[g]=t.properties[g]});const s=Pe(e,t),l=ta(e),c=ta(t),p=[...new Set([...c,...l])],f=[...new Set([...e.entityViews??[],...t.entityViews??[]])];let h={...s,subcollections:n,properties:Fr(i,p),propertiesOrder:p,entityViews:f};if(a){const g=a({collection:h,parentPaths:o});g&&(h=g)}return h}function ea(e,t){if(Ae(t))return t;if(Ae(e))return e;{const o=Pe(e,t),a=!!e.editable,n=!!t.editable;if(t.dataType==="map"&&t.properties){const i="properties"in e?e.properties:{},s="properties"in t?t.properties:{},l="propertiesOrder"in e&&e.propertiesOrder?e.propertiesOrder:Object.keys(i),c="propertiesOrder"in t&&t.propertiesOrder?t.propertiesOrder:"properties"in t?Object.keys(t.properties):[],p=[...new Set([...l,...c])],f={...i};return Object.keys(t.properties).forEach(h=>{const g=i[h];g&&(f[h]=ea(g,s[h]))}),{...o,editable:a&&n,properties:f,propertiesOrder:p}}return{...o,editable:a&&n}}}function ta(e){if(e.propertiesOrder&&e.propertiesOrder.length>0){const t=e.propertiesOrder;return e.additionalFields&&e.additionalFields.forEach(o=>{t.includes(o.key)||t.push(o.key)}),t}return[...Object.keys(e.properties),...(e.additionalFields??[])?.map(t=>t.key)]}function ui(e){return e}function mi(e){return e}function fi(e){return e}function hi(e){return e}function gi(e){return e}function Ai(e){return e}function bi(e){return e}function yi(e){return e}function wi(e){return e}const vi="100vw",ki="55vw",ra="768px",oa=d.createContext({}),De=()=>d.useContext(oa),aa=d.createContext({}),le=()=>d.useContext(aa),Je=()=>d.useContext(br),na=d.createContext({}),Ft=()=>d.useContext(na),ia=d.createContext({}),Ze=()=>d.useContext(ia),sa=d.createContext({}),ht=()=>d.useContext(sa),Xe=()=>{const{enqueueSnackbar:e,closeSnackbar:t}=So.useSnackbar(),o=d.useCallback(n=>{const{type:i,message:s,autoHideDuration:l}=n;e({message:s,variant:i,autoHideDuration:l})},[]),a=d.useCallback(()=>{t()},[]);return d.useMemo(()=>({open:o,close:a}),[o,a])},la=d.createContext(void 0),gt=()=>d.useContext(la),ca=d.createContext({}),_i=({children:e})=>{const[t,o]=d.useState([]),a=d.useRef(t),n=l=>{a.current=l,o(l)},i=d.useCallback(()=>{if(t.length===0)return;const l=[...t.slice(0,-1)];n(l)},[t]),s=d.useCallback(l=>{const c=[...t,l];return n(c),{closeDialog:()=>{const p=a.current.filter(f=>f.key!==l.key);n(p)}}},[t]);return r.jsxs(ca.Provider,{value:{open:s,close:i},children:[e,t.map((l,c)=>r.jsx(l.Component,{open:!0,closeDialog:i},`dialog_${c}`))]})},xi=()=>d.useContext(ca),zr=d.createContext({}),Z=()=>{const e=d.useContext(zr),t=Je(),o=Ft(),a=Ze(),n=le(),i=De(),s=ht(),l=Xe(),c=gt(),p=xi();return{...e,authController:t,sideDialogsController:o,sideEntityController:a,navigation:n,dataSource:i,storageSource:s,snackbarController:l,userConfigPersistence:c,dialogsController:p}};function Ci({path:e,collection:t,filterValues:o,sortBy:a,itemCount:n,searchString:i}){const s=De(),c=le().resolveAliasesFrom(e),p=a?a[0]:void 0,f=a?a[1]:void 0,h=Z(),[g,m]=d.useState([]),[A,b]=d.useState(!1),[y,k]=d.useState(),[v,_]=d.useState(!1);return d.useEffect(()=>{b(!0);const E=async B=>{if(t.callbacks?.onFetch)try{B=await Promise.all(B.map(x=>t.callbacks.onFetch({collection:t,path:c,entity:x,context:h})))}catch(x){console.error(x)}b(!1),k(void 0),m(B.map(x=>({...x}))),_(!n||B.length<n)},C=B=>{console.error("ERROR",B),b(!1),m([]),k(B)};return s.listenCollection?s.listenCollection({path:c,collection:t,onUpdate:E,onError:C,searchString:i,filter:o,limit:n,startAfter:void 0,orderBy:p,order:f}):(s.fetchCollection({path:c,collection:t,searchString:i,filter:o,limit:n,startAfter:void 0,orderBy:p,order:f}).then(E).catch(C),()=>{})},[c,n,f,p,o,i]),{data:g,dataLoading:A,dataLoadingError:y,noMoreToLoad:v}}const Vr={};function Gr({path:e,entityId:t,collection:o,useCache:a=!1}){const n=De(),s=le().resolveAliasesFrom(e),l=Z(),[c,p]=d.useState(),[f,h]=d.useState(!0),[g,m]=d.useState();return d.useEffect(()=>{h(!0);const A=async y=>{if(o.callbacks?.onFetch&&y)try{y=await o.callbacks.onFetch({collection:o,path:s,entity:y,context:l})}catch(k){console.error(k)}Vr[`${s}/${t}`]=y,p(y),h(!1),m(void 0)},b=y=>{console.error("ERROR fetching entity",y),h(!1),p(void 0),m(y)};return t&&a&&Vr[`${s}/${t}`]?(p(Vr[`${s}/${t}`]),h(!1),m(void 0),()=>{}):t&&s&&o?n.listenEntity?n.listenEntity({path:s,entityId:t,collection:o,onUpdate:A,onError:b}):(n.fetchEntity({path:s,entityId:t,collection:o}).then(A).catch(b),()=>{}):(A(void 0),()=>{})},[t,s]),{entity:c,dataLoading:f,dataLoadingError:g}}async function Yr({collection:e,path:t,entityId:o,values:a,previousValues:n,status:i,dataSource:s,context:l,onSaveSuccess:c,onSaveFailure:p,onPreSaveHookError:f,onSaveSuccessHookError:h}){let g;const m=l.navigation.resolveAliasesFrom(t),A=e.callbacks;if(A?.onPreSave)try{const b=Be({collection:e,path:t,values:n,entityId:o,fields:l.propertyConfigs});g=await A.onPreSave({collection:b,path:t,resolvedPath:m,entityId:o,values:a,previousValues:n,status:i,context:l})}catch(b){console.error(b),f&&f(b);return}else g=a;return s.saveEntity({collection:e,path:m,entityId:o,values:g,previousValues:n,status:i}).then(b=>{try{if(A?.onSaveSuccess){const y=Be({collection:e,path:t,values:g,entityId:o,fields:l.propertyConfigs});A.onSaveSuccess({collection:y,path:t,resolvedPath:m,entityId:b.id,values:g,previousValues:n,status:i,context:l})}}catch(y){h&&h(y)}c&&c(b)}).catch(b=>{if(A?.onSaveFailure){const y=Be({collection:e,path:t,values:g,entityId:o,fields:l.propertyConfigs});A.onSaveFailure({collection:y,path:t,resolvedPath:m,entityId:o,values:g,previousValues:n,status:i,context:l})}p&&p(b)})}async function da({dataSource:e,entity:t,collection:o,callbacks:a,onDeleteSuccess:n,onDeleteFailure:i,onPreDeleteHookError:s,onDeleteSuccessHookError:l,context:c}){console.debug("Deleting entity",t.path,t.id);const p={entity:t,collection:o,entityId:t.id,path:t.path,context:c};if(a?.onPreDelete)try{await a.onPreDelete(p)}catch(f){return console.error(f),s&&s(t,f),!1}return e.deleteEntity({entity:t}).then(()=>{n&&n(t);try{return a?.onDelete&&a.onDelete(p),!0}catch(f){return l&&l(t,f),!1}}).catch(f=>(i&&i(t,f),!1))}function Se({property:e,value:t,setValue:o}){const a=d.useRef(null);d.useEffect(()=>{typeof e.disabled=="object"&&!!e.disabled.clearOnDisabled?t!=null&&(a.current=t,o(null)):a.current&&(o(a.current),a.current=null)},[e])}function pa({path:e,context:t}){const o=t.dataSource,a=t.navigation;if(!a)throw Error("Calling getNavigationFrom, but main navigation has not yet been initialised");const i=Ir({path:e,collections:a.collections??[]}).map(s=>{if(s.type==="collection")return Promise.resolve(s);if(s.type==="entity"){const l=a.getCollection(s.path,s.entityId);if(!l)throw Error(`No collection defined in the navigation for the entity with path ${s.path}`);return o.fetchEntity({path:s.path,entityId:s.entityId,collection:l}).then(c=>{if(c)return{...s,entity:c}})}else{if(s.type==="custom_view")return Promise.resolve(s);throw Error("Unmapped element in useEntitiesFromPath")}}).filter(s=>!!s);return Promise.all(i)}function Ei({path:e}){const t=Z(),[o,a]=d.useState(),[n,i]=d.useState(!1),[s,l]=d.useState();return d.useEffect(()=>{t.navigation&&(i(!0),l(void 0),pa({path:e,context:t}).then(p=>{a(p)}).catch(p=>l(p)).finally(()=>i(!1)))},[e,t]),t.navigation?{data:o,dataLoading:n,dataLoadingError:s}:{dataLoading:!0}}const jr=()=>d.useContext(zt),ua=e=>{const{onSuccess:t,onError:o,disableClipboardAPI:a=!1,copiedDuration:n}=e||{},i=d.useRef(null),[s,l]=d.useState(!1),[c,p]=d.useState("");d.useEffect(()=>{n&&setTimeout(()=>l(!1),n)},[s]);const f=()=>navigator.clipboard!==void 0,h=d.useCallback(v=>{if(o)o(v);else throw new Error(v)},[o]),g=d.useCallback(v=>{t&&t(v),l(!0),p(v)},[t]),m=d.useCallback(v=>{navigator.clipboard.writeText(v).then(()=>g(v)).catch(_=>{h(_),l(!1)})},[h,g]),A=()=>{f()&&navigator.clipboard.writeText("")},b=v=>k("copy",typeof v=="object"?void 0:v),y=()=>k("cut"),k=d.useCallback((v="copy",_)=>{const E=i.current,C=E&&(E.tagName==="INPUT"||E.tagName==="TEXTAREA"),B=i.current;f()&&!a&&(_?m(_):E?C?(m(B.value),v==="cut"&&(B.value="")):m(E.innerText):h("Both the ref & text were undefined"))},[a,m,h]);return{ref:i,isCoppied:s,clipboard:c,clearClipboard:A,isSupported:f,copy:b,cut:y}},Bi={xs:0,sm:640,md:768,lg:1024,xl:1280,"2xl":1536,"3xl":1920};let Nt=ma("lg");const tr=[],Si=()=>{tr.forEach(e=>e(Nt))};window.addEventListener("resize",()=>{const e=ma("lg");e!==Nt&&(Nt=e,Si())});const Ie=()=>{const[e,t]=d.useState(Nt);return d.useEffect(()=>{const o=a=>{t(a)};return tr.push(o),t(Nt),()=>{const a=tr.indexOf(o);a>-1&&tr.splice(a,1)}},[]),e};function ma(e="lg"){return window.matchMedia(`(min-width: ${Bi[e]+1}px)`).matches}function fa(e){return r.jsx(u.Tooltip,{...e,tooltipClassName:"!text-red-500 bg-red-50",children:e.children})}function he({title:e,error:t,tooltip:o}){const a=t instanceof Error?t.message:t;console.error("ErrorView",t);const n=r.jsxs("div",{className:"flex items-center m-2",children:[r.jsx(u.ErrorIcon,{size:"small",color:"error"}),r.jsxs("div",{className:"pl-2",children:[e&&r.jsx(u.Typography,{variant:"body2",className:"font-medium",children:e}),r.jsx(u.Typography,{variant:"body2",children:a})]})]});return o?r.jsx(fa,{title:o,children:n}):n}function nt(){return r.jsx("div",{className:"rounded-full bg-gray-200 bg-opacity-30 dark:bg-opacity-20 w-5 h-2 inline-block"})}const Ii=40,Fi=100,Ni=200;function At(e){if(e==="tiny")return Ii;if(e==="small")return Fi;if(e==="medium")return Ni;throw Error("Thumbnail size not mapped")}function Ke(e){switch(e){case"xs":case"s":return"tiny";case"m":return"small";case"l":case"xl":return"medium";default:throw Error("Missing mapping value in getPreviewSizeFrom: "+e)}}function ha({size:e,url:t}){const[o,a]=d.useState(!1),n=d.useMemo(()=>At(e),[e]);if(e==="tiny")return r.jsx("img",{src:t,className:"rounded-md",style:{position:"relative",objectFit:"cover",width:n,height:n,maxHeight:"100%"}},"tiny_image_preview_"+t);const i={maxWidth:"100%",maxHeight:"100%"};return r.jsxs("div",{className:"relative flex items-center justify-center max-w-full max-h-full",style:{width:n,height:n},onMouseEnter:()=>a(!0),onMouseMove:()=>a(!0),onMouseLeave:()=>a(!1),children:[r.jsx("img",{src:t,className:"rounded-md",style:i}),o&&r.jsxs(r.Fragment,{children:[navigator&&r.jsx(u.Tooltip,{title:"Copy url to clipboard",children:r.jsx("div",{className:"rounded-full absolute bottom-[-4px] right-8",children:r.jsx(u.IconButton,{variant:"filled",size:"small",onClick:s=>(s.stopPropagation(),s.preventDefault(),navigator.clipboard.writeText(t)),children:r.jsx(u.ContentCopyIcon,{className:"text-gray-500",size:"small"})})})}),r.jsx(u.Tooltip,{title:"Open image in new tab",children:r.jsx(u.IconButton,{variant:"filled",component:"a",style:{position:"absolute",bottom:-4,right:-4},href:t,rel:"noopener noreferrer",target:"_blank",size:"small",onClick:s=>s.stopPropagation(),children:r.jsx(u.OpenInNewIcon,{className:"text-gray-500",size:"small"})})})]})]},"image_preview_"+t)}function Tt({url:e,previewType:t,size:o,hint:a}){return t?t==="image"?r.jsx(ha,{url:e,size:o}):t==="audio"?r.jsxs("audio",{controls:!0,src:e,children:["Your browser does not support the",r.jsx("code",{children:"audio"})," element."]}):t==="video"?r.jsx("video",{className:`max-w-${o==="small"?"sm":"md"}`,controls:!0,children:r.jsx("source",{src:e})}):r.jsxs("a",{href:e,rel:"noopener noreferrer",target:"_blank",onClick:n=>n.stopPropagation(),className:"flex flex-col items-center justify-center",style:{width:At(o),height:At(o)},children:[r.jsx(u.DescriptionIcon,{className:"flex-grow"}),a&&r.jsx(u.Tooltip,{title:a,children:r.jsx(u.Typography,{className:"max-w-full truncate rtl text-left",variant:"caption",children:a})})]}):!e||!e.trim()?r.jsx(nt,{}):r.jsxs("a",{className:"flex gap-4 break-words items-center font-medium text-primary visited:text-primary dark:visited:text-primary dark:text-primary",href:e,rel:"noopener noreferrer",onMouseDown:n=>{n.preventDefault()},target:"_blank",children:[r.jsx(u.OpenInNewIcon,{size:"small"}),e]})}function bt({property:e,size:t}){e||console.error("No property assigned for skeleton component",e,t);let o;if(e.dataType==="string"){const a=e;a.url?o=Oi(a,t):a.storage?o=qr(t):o=Ue()}else if(e.dataType==="array"){const a=e;a.of&&(Array.isArray(a.of)?o=r.jsxs(r.Fragment,{children:[a.of.map((n,i)=>Lr(n,i))," "]}):a.of.dataType==="map"&&a.of.properties?o=Pi(a.of.properties,t,a.of.previewProperties):a.of.dataType==="string"?a.of.enumValues?o=Qi():a.of.storage?o=Lr(a.of):o=Mi():o=Lr(a.of))}else e.dataType==="map"?o=Ti(e,t):e.dataType==="date"?o=Ue():e.dataType==="reference"?o=Di():(e.dataType,o=Ue());return o||null}function Ti(e,t){if(!e.properties)return r.jsx(r.Fragment,{});let o;return t==="medium"?o=Object.keys(e.properties):(o=e.previewProperties||Object.keys(e.properties),t==="small"?o=o.slice(0,3):t==="tiny"&&(o=o.slice(0,1))),t!=="medium"?r.jsx("div",{className:"w-full flex flex-col space-y-4",children:o.map((a,n)=>r.jsx("div",{children:e.properties&&e.properties[a]&&r.jsx(bt,{property:e.properties[a],size:"small"})},`map_${a}`))}):r.jsx("table",{className:"table-auto",children:r.jsx("tbody",{children:o&&o.map((a,n)=>r.jsxs("tr",{className:"border-b last:border-b-0",children:[r.jsx("th",{className:"align-top",style:{width:"30%"},children:r.jsx("p",{className:"text-xs text-secondary",children:e.properties[a].name})},`table-cell-title--${a}`),r.jsx("th",{style:{width:"70%"},children:e.properties&&e.properties[a]&&r.jsx(bt,{property:e.properties[a],size:"small"})},`table-cell-${a}`)]},`map_preview_table__${n}`))})})}function Pi(e,t,o){let a=o;return(!a||!a.length)&&(a=Object.keys(e),t&&(a=a.slice(0,3))),r.jsx("table",{className:"table-auto",children:r.jsx("tbody",{children:[0,1,2].map((n,i)=>r.jsx("tr",{children:a&&a.map(s=>r.jsx("th",{children:r.jsx(bt,{property:e[s],size:"small"})},`table-cell-${s}`))},`table_${n}_${i}`))})})}function Mi(){return r.jsx("div",{className:"flex flex-col gap-2",children:[0,1].map((e,t)=>Ue(t))})}function Qi(){return r.jsx("div",{className:"flex flex-col gap-2",children:[0,1].map((e,t)=>r.jsx(r.Fragment,{children:Ue(t)}))})}function Lr(e,t=0){return r.jsx("div",{className:"flex flex-col gap-2",children:[0,1].map((o,a)=>r.jsx(r.Fragment,{children:r.jsx(bt,{property:e,size:"small"},`i_${a}`)}))},"array_index_"+t)}function qr(e){const t=e==="tiny"?40:e==="small"?100:200;return r.jsx(u.Skeleton,{width:t,height:t})}function Di(){return r.jsx(u.Skeleton,{width:200,height:100})}function Oi(e,t="medium"){return typeof e.url=="boolean"?r.jsxs("div",{style:{display:"flex"},children:[Ur(),Ue()]}):zi(t)}function zi(e){return r.jsx("div",{className:`w-${At(e)} h-${At(e)}`,children:Ur()})}function Ue(e,t=120){return r.jsx(u.Skeleton,{width:t},`skeleton_${e}`)}function Vi(e){return r.jsx(u.Skeleton,{height:20})}function Ur(){return r.jsx(u.Skeleton,{width:24,height:24})}const ga=d.memo(ba,Gi);function Gi(e,t){return e.size===t.size&&e.storagePathOrDownloadUrl===t.storagePathOrDownloadUrl&&e.storeUrl===t.storeUrl}const Aa={};function ba({storeUrl:e,storagePathOrDownloadUrl:t,size:o}){const[a,n]=d.useState(void 0),i=ht(),[s,l]=d.useState(Aa[t]);if(d.useEffect(()=>{if(!t)return;let f=!1;return i.getDownloadURL(t).then(function(h){f||(l(h),Aa[t]=h)}).catch(n),()=>{f=!0}},[t]),!t)return null;const c=s?.metadata?Yi(s?.metadata.contentType):void 0,p=c?.startsWith("image")?"image":c?.startsWith("video")?"video":c?.startsWith("audio")?"audio":"file";return s?.fileNotFound?r.jsx(he,{error:"File not found"}):s?.url?r.jsx(Tt,{previewType:p,url:s.url,size:o,hint:t}):qr(o)}function Yi(e){return e.startsWith("image")?"image/*":e.startsWith("video")?"video/*":e.startsWith("audio")?"audio/*":e.startsWith("application")?"application/*":e.startsWith("text")?"text/*":e.startsWith("font")?"font/*":e}function ke({enumValues:e,enumKey:t,size:o,className:a,children:n}){if(!e)return null;const i=qe(e),s=t!==void 0?$t(i,t):void 0,l=Go(s),c=Vo(i,t);return r.jsxs(u.Chip,{className:a,colorScheme:c,error:!l,outlined:!1,size:o,children:[n,!n&&(l!==void 0?l:String(t))]})}function $r({propertyKey:e,value:t,property:o,size:a}){if(o.enumValues){const n=t,i=Br(o);return r.jsx(ke,{enumKey:n,enumValues:i.enumValues,size:a!=="medium"?"small":"medium"})}else if(o.previewAsTag){const n=u.getColorSchemeForSeed(e??"");return r.jsx(oe,{children:r.jsx(u.Chip,{colorScheme:n,size:a!=="medium"?"small":"medium",children:t})})}else{if(o.url)return r.jsx(Tt,{size:a,url:t,previewType:typeof o.url=="string"?o.url:void 0});{if(!t)return r.jsx(r.Fragment,{});const n=t.split(`
|
|
67
2
|
`);return t&&t.includes(`
|
|
68
|
-
`)?n.jsx("div",{children:l.map((a,s)=>n.jsxs(f.Fragment,{children:[n.jsx("span",{children:a}),s!==l.length-1&&n.jsx("br",{})]},`string_preview_${s}`))}):n.jsx(n.Fragment,{children:t})}}}function Jc({propertyKey:e,value:t,property:c,size:i,entity:l}){const a=re(),s=un({propertyKey:e,property:c,propertyValue:t,fields:a.fields});if(Array.isArray(s?.of))throw Error("Using array properties instead of single one in `of` in ArrayProperty");if(s?.dataType!=="array"||!s.of||s.of.dataType!=="map")throw Error("Picked wrong preview component ArrayOfMapsPreview");const d=s.of,u=d.properties;if(!u)throw Error(`You need to specify a 'properties' prop (or specify a custom field) in your map property ${e}`);const A=t,_=d.previewProperties;if(!A)return null;let g=_;return(!g||!g.length)&&(g=Object.keys(u),i&&(g=g.slice(0,3))),n.jsx("div",{className:"table-auto text-xs",children:n.jsx("div",{children:A&&A.map((y,h)=>n.jsx("div",{className:"border-b last:border-b-0",children:g&&g.map(I=>n.jsx("div",{className:"table-cell",children:n.jsx(se,{children:n.jsx(Ke,{propertyKey:I,value:y[I],property:u[I],entity:l,size:"small"})})},`table-cell-${I}`))},`table_${y}_${h}`))})})}function Nr({propertyKey:e,value:t,property:c,entity:i,size:l}){const a=re(),s=un({propertyKey:e,property:c,propertyValue:t,fields:a.fields});if(!s.of)throw Error(`You need to specify an 'of' prop (or specify a custom field) in your array property ${e}`);if(s.dataType!=="array")throw Error("Picked wrong preview component ArrayPreview");const d=t;if(!d)return null;const u=l==="medium"?"small":"tiny";return n.jsx("div",{className:"flex flex-col",children:d&&d.map((A,_)=>{const g=s.resolvedProperties[_]??s.resolvedProperties[_]??(Array.isArray(s.of)?s.of[_]:s.of);return g?n.jsx(f.Fragment,{children:n.jsx("div",{className:E(ue,"m-1 border-b last:border-b-0"),children:n.jsx(se,{children:n.jsx(Ke,{propertyKey:e,entity:i,value:A,property:g,size:u})})})},"preview_array_"+_):null})})}const on=ce.memo(function(t){const c=t.reference;return c instanceof Je?n.jsx(OG,{...t}):(console.warn("Reference preview received value of type",typeof c),n.jsx(Co,{onClick:t.onClick,size:t.size,children:n.jsx(pe,{error:"Unexpected value. Click to edit",tooltip:JSON.stringify(c)})}))},TG);function TG(e,t){return e.disabled===t.disabled&&e.size===t.size&&e.onHover===t.onHover&&e.reference?.id===t.reference?.id&&e.reference?.path===t.reference?.path&&e.allowEntityNavigation===t.allowEntityNavigation}function OG({disabled:e,reference:t,previewProperties:c,size:i,onHover:l,onClick:a,allowEntityNavigation:s=!0}){const d=re(),u=Ae(),A=Cn(),_=u.getCollection(t.path);if(!_)throw Error(`Couldn't find the corresponding collection view for the path: ${t.path}`);const{entity:g,dataLoading:y,dataLoadingError:h}=sr({path:t.path,entityId:t.id,collection:_,useCache:!0});g&&Zc.set(t.pathWithId,g);const I=g??Zc.get(t.pathWithId),b=f.useMemo(()=>Me({collection:_,path:t.path,values:I?.values,fields:d.fields}),[_]),p=f.useMemo(()=>Oi(b,d.fields,c,i==="small"||i==="medium"?3:1),[c,b,i]);let w;return b?(t?I&&!I.values?w=n.jsx(pe,{error:"Reference does not exist",tooltip:t.path}):w=n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"flex flex-col flex-grow w-full max-w-[calc(100%-52px)] m-1",children:[i!=="tiny"&&(t?n.jsx("div",{className:`${i!=="medium"?"block whitespace-nowrap overflow-hidden truncate":""}`,children:n.jsx(j,{variant:"caption",className:"font-mono",children:t.id})}):n.jsx(Ve,{})),p&&p.map(k=>{const K=b.properties[k];return K?n.jsx("div",{className:p.length>1?"my-0.5":"my-0",children:I?n.jsx(Ke,{propertyKey:k,value:dn(I.values,k),property:K,entity:I,size:"tiny"}):n.jsx(Dn,{property:K,size:"tiny"})},"ref_prev_"+k):null})]}),n.jsx("div",{className:`my-${i==="tiny"?2:4}`,children:!e&&I&&s&&n.jsx(ye,{title:`See details for ${I.id}`,children:n.jsx(ee,{color:"inherit",size:"small",onClick:k=>{k.stopPropagation(),d.onAnalyticsEvent?.("entity_click_from_reference",{path:I.path,entityId:I.id}),A.open({entityId:I.id,path:I.path,collection:b,updateUrl:!0})},children:n.jsx(ko,{size:"small"})})})})]}):w=n.jsx(pe,{error:"Reference not set"}),n.jsx(Co,{onClick:e?void 0:a,onHover:e?void 0:l,size:i,children:w})):n.jsx(pe,{error:"Could not find collection with id "+b})}function Co({children:e,onHover:t,size:c,onClick:i}){return n.jsx(j,{variant:"label",className:E("bg-opacity-70 bg-gray-100 dark:bg-gray-800 dark:bg-opacity-60","w-full","flex","rounded-md","overflow-hidden",t?"hover:bg-opacity-90 dark:hover:bg-opacity-90":"",c==="medium"?"p-2":"p-1",c==="tiny"?"items-center":"","transition-colors duration-300 ease-in-out ",i?"cursor-pointer":""),style:{tabindex:0},onClick:l=>{i&&(l.preventDefault(),i(l))},children:e})}const Zc=new Map;function Xc({propertyKey:e,value:t,property:c,size:i}){const l=re(),a=un({propertyKey:e,property:c,propertyValue:t,fields:l.fields});if(Array.isArray(a?.of))throw Error("Using array properties instead of single one in `of` in ArrayProperty");if(a?.dataType!=="array"||!a.of||a.of.dataType!=="reference")throw Error("Picked wrong preview component ArrayOfReferencesPreview");const s=i==="medium"?"small":"tiny";return n.jsx("div",{className:"flex flex-col w-full",children:t&&t.map((d,u)=>{const A=a.of;return n.jsx("div",{className:"mt-1 mb-1 w-full",children:n.jsx(on,{disabled:!A.path,previewProperties:A.previewProperties,size:s,reference:d})},`preview_array_ref_${e}_${u}`)})})}function xc({propertyKey:e,entity:t,value:c,property:i,size:l}){const a=re(),s=un({propertyKey:e,property:i,propertyValue:c,fields:a.fields});if(Array.isArray(s.of))throw Error("Using array properties instead of single one in `of` in ArrayProperty");if(s.dataType!=="array"||!s.of||s.of.dataType!=="string")throw Error("Picked wrong preview component ArrayOfStorageComponentsPreview");const d=l==="medium"?"small":"tiny";return n.jsx("div",{className:"flex flex-wrap gap-2",children:c&&c.map((u,A)=>n.jsx(se,{children:n.jsx(Ke,{propertyKey:e,value:u,entity:t,property:s.of,size:d})},`preview_array_storage_${e}_${A}`))})}function Mr({name:e,value:t,enumValues:c,size:i}){return n.jsx("div",{className:"flex flex-wrap gap-1.5",children:t&&t.map((l,a)=>n.jsx(se,{children:n.jsx(Ee,{enumKey:l,enumValues:c,size:i!=="medium"?"small":"medium"})},`preview_array_ref_${e}_${a}`))})}function Tr({propertyKey:e,value:t,property:c,size:i}){if(c.dataType!=="array")throw Error("Picked wrong preview component ArrayEnumPreview");const l=c.of;if(!l.enumValues)throw Error("Picked wrong preview component ArrayEnumPreview");return t?n.jsx(Mr,{name:e,value:t,enumValues:l.enumValues,size:i}):null}function Rc({propertyKey:e,value:t,property:c,entity:i,size:l}){const a=re(),s=un({propertyKey:e,property:c,propertyValue:t,fields:a.fields});if(Array.isArray(s.of))throw Error("Using array properties instead of single one in `of` in ArrayProperty");if(!s.of||s.dataType!=="array"||s.of.dataType!=="string")throw Error("Picked wrong preview component ArrayOfStringsPreview");if(t&&!Array.isArray(t))return n.jsx("div",{children:`Unexpected value: ${t}`});const d=s.of;return n.jsx("div",{className:"flex flex-col gap-2",children:t&&t.map((u,A)=>n.jsx("div",{children:n.jsx(se,{children:n.jsx(Dr,{propertyKey:e,property:d,value:u,entity:i,size:l})})},`preview_array_strings_${e}_${A}`))})}const to="type",So="value";function ei({propertyKey:e,value:t,property:c,size:i,entity:l}){const a=re(),s=un({propertyKey:e,property:c,propertyValue:t,fields:a.fields});if(s?.dataType!=="array")throw Error("Picked wrong preview component ArrayPreview");if(!s?.oneOf)throw Error(`You need to specify an 'of' or 'oneOf' prop (or specify a custom field) in your array property ${e}`);const d=t;if(!d)return null;const u=i==="medium"?"small":"tiny",A=s.oneOf.typeField??to,_=s.oneOf.valueField??So,g=s.oneOf.properties;return n.jsx("div",{className:"flex flex-col",children:d&&d.map((y,h)=>n.jsx(f.Fragment,{children:n.jsx("div",{className:E(ue,"m-1 border-b last:border-b-0"),children:n.jsx(se,{children:y&&n.jsx(Ke,{propertyKey:e,value:y[_],entity:l,property:s.resolvedProperties[h]??g[y[A]],size:u})})})},"preview_array_"+y+"_"+h))})}function ni({propertyKey:e,value:t,property:c,entity:i,size:l}){if(c.dataType!=="map")throw Error("Picked wrong preview component MapPropertyPreview");const a=c;if(e==="result.suggestions"&&console.log({propertyKey:e,property:c,value:t}),!a.properties||Object.keys(a.properties??{}).length===0)return n.jsx(Or,{value:t});if(!t)return null;const s=Object.keys(a.properties);return l!=="medium"?n.jsx("div",{className:"w-full flex flex-col space-y-1 md:space-y-2",children:s.map((d,u)=>n.jsx("div",{children:n.jsx(se,{children:n.jsx(Ke,{propertyKey:d,value:t[d],property:a.properties[d],entity:i,size:l})},"map_preview_"+a.name+d+u)},`map_${d}`))}):n.jsx("div",{className:"flex flex-col gap-1 w-full",children:s&&s.map((d,u)=>{const A=a.properties[d];return n.jsxs("div",{className:E(ue,"last:border-b-0 border-b"),children:[n.jsxs("div",{className:"flex flex-row pt-0.5 pb-0.5 gap-2",children:[n.jsx("div",{className:"min-w-[140px] w-[25%] py-1",children:n.jsx(j,{variant:"caption",className:"font-mono break-words",color:"secondary",children:A.name})}),n.jsx("div",{className:"flex-grow max-w-[75%]",children:n.jsx(se,{children:!(A.dataType==="map"||A==="array")&&n.jsx(Ke,{propertyKey:d,value:t[d],property:A,entity:i,size:l})})})]}),(A.dataType==="map"||A==="array")&&n.jsx("div",{className:E(ue,"border-l pl-4 ml-2 my-2"),children:n.jsx(Ke,{propertyKey:d,value:t[d],property:A,entity:i,size:l})})]},`map_preview_table_${d}}`)})})}function Or({value:e}){return typeof e!="object"?null:n.jsx("div",{className:"flex flex-col gap-1 w-full",children:Object.entries(e).map(([t,c])=>n.jsxs("div",{className:E(ue,"last:border-b-0 border-b"),children:[n.jsxs("div",{className:"flex flex-row pt-0.5 pb-0.5 gap-2",children:[n.jsx("div",{className:"min-w-[140px] w-[25%] py-1",children:n.jsx(j,{variant:"caption",className:"font-mono break-words",color:"secondary",children:t})},`table-cell-title-${t}-${t}`),n.jsx("div",{className:"flex-grow max-w-[75%]",children:typeof c!="object"&&n.jsx(j,{children:n.jsx(se,{children:c&&c.toString()})})})]}),typeof c=="object"&&n.jsx("div",{className:E(ue,"border-l pl-4"),children:n.jsx(Or,{value:c})})]},`map_preview_table_${t}}`))})}const oi="MMMM dd, yyyy, HH:mm:ss";function ri({date:e}){const t=re(),c=t?.locale?Ut[t?.locale]:void 0,i=t?.dateTimeFormat??oi,l=e?Sa(e,i,{locale:c}):"";return n.jsx(n.Fragment,{children:l})}const LG={large:"w-6 h-6 rounded flex items-center justify-center",medium:"w-5 h-5 rounded flex items-center justify-center",small:"w-4 h-4 rounded flex items-center justify-center"},QG={medium:"w-10 h-10",small:"w-8 h-8",large:"w-12 h-12"},Lr=({checked:e,indeterminate:t=!1,disabled:c,size:i="medium",onCheckedChange:l})=>{const a=t?!1:e;return n.jsx("div",{className:E(QG[i],"inline-flex items-center justify-center p-2 text-sm font-medium focus:outline-none transition-colors ease-in-out duration-150",l?"rounded-full hover:bg-gray-200 hover:bg-opacity-75 dark:hover:bg-gray-700 dark:hover:bg-opacity-75":"",l?"cursor-pointer":"cursor-default"),children:n.jsx(Ht.Root,{asChild:!0,checked:a,disabled:c,onCheckedChange:c?void 0:l,children:n.jsx("div",{className:E("border-2 relative transition-colors ease-in-out duration-150",LG[i],c?"bg-gray-400 dark:bg-gray-600":a?"bg-primary":"bg-white dark:bg-gray-900",a?"text-gray-100 dark:text-gray-900":"",c||a?"border-transparent":"border-gray-800 dark:border-gray-200"),children:n.jsx(Ht.Indicator,{asChild:!0,children:t?n.jsx("div",{className:"w-full h-[1px] bg-currentColor"}):n.jsx(r,{iconKey:"check",size:20,className:"absolute"})})})})})};function ti({value:e}){return n.jsx(Lr,{checked:e})}function ci({value:e,property:t,size:c}){if(t.enumValues){const i=e,l=sn(t.enumValues);return l?n.jsx(Ee,{enumKey:i,enumValues:l,size:c!=="medium"?"small":"medium"}):n.jsx(n.Fragment,{children:e})}else return n.jsx(n.Fragment,{children:e})}function Ke(e){const t=re();let c;const{property:i,propertyKey:l,value:a,size:s,height:d,width:u,entity:A}=e,_=Te({propertyKey:l,propertyOrBuilder:i,propertyValue:a,fields:t.fields});if(a===void 0||_===null)c=n.jsx(Fn,{});else if(_.Preview)c=f.createElement(_.Preview,{propertyKey:l,value:a,property:_,size:s,height:d,width:u,entity:A,customProps:_.customProps});else if(a===null)c=n.jsx(Fn,{});else if(_.dataType==="string"){const g=_;typeof a=="string"?g.url?typeof g.url=="boolean"?c=n.jsx(ro,{size:e.size,url:a}):typeof g.url=="string"&&(c=n.jsx(ro,{size:e.size,url:a,previewType:g.url})):g.storage?c=n.jsx(zc,{storeUrl:_.storage?.storeUrl??!1,size:e.size,storagePathOrDownloadUrl:a}):g.markdown?c=n.jsx(co,{source:a}):c=n.jsx(Dr,{...e,property:g,value:a}):c=gn(l,_.dataType,a)}else if(_.dataType==="array")if(a instanceof Array){const g=_;if(!g.of&&!g.oneOf)throw Error(`You need to specify an 'of' or 'oneOf' prop (or specify a custom field) in your array property ${l}`);g.of?Array.isArray(g.of)?c=n.jsx(Nr,{...e,value:a,property:_}):g.of.dataType==="map"?c=n.jsx(Jc,{propertyKey:l,property:_,value:a,entity:A,size:s}):g.of.dataType==="reference"?c=n.jsx(Xc,{...e,value:a,property:_}):g.of.dataType==="string"?g.of.enumValues?c=n.jsx(Tr,{...e,value:a,property:_}):g.of.storage?c=n.jsx(xc,{...e,value:a,property:_}):c=n.jsx(Rc,{...e,value:a,property:_}):g.of.dataType==="number"&&g.of.enumValues?c=n.jsx(Tr,{...e,value:a,property:_}):c=n.jsx(Nr,{...e,value:a,property:_}):g.oneOf&&(c=n.jsx(ei,{...e,value:a,property:_}))}else c=gn(l,_.dataType,a);else _.dataType==="map"?typeof a=="object"?c=n.jsx(ni,{...e,property:_}):c=gn(l,_.dataType,a):_.dataType==="date"?a instanceof Date?c=n.jsx(ri,{date:a}):c=gn(l,_.dataType,a):_.dataType==="reference"?typeof _.path=="string"?a instanceof Je?c=n.jsx(on,{disabled:!_.path,previewProperties:_.previewProperties,size:e.size,onClick:e.onClick,reference:a}):c=gn(l,_.dataType,a):c=n.jsx(Fn,{}):_.dataType==="boolean"?typeof a=="boolean"?c=n.jsx(ti,{value:a}):c=gn(l,_.dataType,a):_.dataType==="number"?typeof a=="number"?c=n.jsx(ci,{...e,value:a,property:_}):c=gn(l,_.dataType,a):c=JSON.stringify(a);return c??n.jsx(Fn,{})}function gn(e,t,c){return console.warn(`Unexpected value for property ${e}, of type ${t}`,c),n.jsx(pe,{title:"Unexpected value",error:`${JSON.stringify(c)}`})}const VG=ce.memo(function({builder:t}){const[c,i]=f.useState(!0),[l,a]=f.useState(null);return f.useEffect(()=>{let s=!1;return t.then(d=>{s||(i(!1),a(d))}).catch(d=>{i(!1),console.error(d)}),()=>{s=!0}},[t]),c?n.jsx(Ve,{}):n.jsx(ce.Fragment,{children:l})}),WG=new Gt({html:!0}),co=f.memo(function({source:t,className:c}){const i=f.useMemo(()=>WG.render(typeof t=="string"?t:""),[t]);return n.jsx("div",{className:c,dangerouslySetInnerHTML:{__html:i}})},de),ii=(e,...t)=>({...t.reduce((c,i)=>({...c,[i]:e[i]}),{})});function Bo(e){return e&&typeof e=="object"&&!Array.isArray(e)}function Ze(e,t){const c=Bo(e),i=c?{...e}:e;return c&&Bo(t)&&Object.keys(t).forEach(l=>{Bo(t[l])?l in e?i[l]=Ze(e[l],t[l]):Object.assign(i,{[l]:t[l]}):Object.assign(i,{[l]:t[l]})}),i}function dn(e,t){if(e&&typeof e=="object"){if(t in e)return e[t];if(t.includes(".")||t.includes("[")){let c=t.split(/[.[]/);t.includes("[")&&(c=c.map(d=>d.replace("]","")));const i=c[0],l=Array.isArray(e[i])&&!isNaN(parseInt(c[1])),a=l?e[i][parseInt(c[1])]:e[i],s=c.slice(l?2:1).join(".");return s===""?a:dn(a,s)}}}function GG(e,t){let c={...e};const i=t.split("."),l=i.pop();for(const a of i)c=c[a];return l&&delete c[l],c}function Qr(e){if(e!==void 0)return e===null?null:typeof e=="object"?Object.entries(e).filter(([t,c])=>typeof c!="function").map(([t,c])=>Array.isArray(c)?{[t]:c.map(i=>Qr(i))}:typeof c=="object"?{[t]:Qr(c)}:{[t]:c}).reduce((t,c)=>({...t,...c}),{}):e}function Vr(e){if(!e)return null;if(typeof e=="object"){if("id"in e)return e.id;if(e instanceof Date)return e.toLocaleString();if(e instanceof Br)return zt(e)}return zt(e,{ignoreUnknown:!0})}function Wr(e,t){if(typeof e=="function")return e;if(Array.isArray(e))return e.map(c=>Wr(c,t));if(typeof e=="object"){const c={};return e===null?e:(Object.keys(e).forEach(i=>{if(!Gr(e)){const l=Wr(e[i],t),a=typeof l=="string",s=!t||t&&!a||t&&a&&l!=="";l!==void 0&&!Gr(l)&&s&&(c[i]=l)}}),c)}return e}function Gr(e){return e&&Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length===0}function Nn(e){return e.readOnly||e.dataType==="date"&&e.autoValue?!0:e.dataType==="reference"?!e.path:!1}function io(e){return typeof e.disabled=="object"&&!!e.disabled.hidden}function We(e){return typeof e=="function"}function ao(e){return e?Object.entries(e).map(([t,c])=>{const i=Eo(c);return i===void 0?{}:{[t]:i}}).reduce((t,c)=>({...t,...c}),{}):{}}function Eo(e){if(!We(e))if(e.dataType==="map"&&e.properties){const t=ao(e.properties);return Object.keys(t).length===0?void 0:t}else return e.defaultValue?e.defaultValue:zr(e.dataType)}function zr(e){return e==="string"||e==="number"?null:e==="boolean"?!1:e==="date"?null:e==="array"?[]:e==="map"?{}:null}function zG({inputValues:e,properties:t,status:c,timestampNowValue:i,setDateToMidnight:l}){return Hr(e,t,(a,s)=>{if(s.dataType==="date"){let d;return c==="existing"&&s.autoValue==="on_update"||(c==="new"||c==="copy")&&(s.autoValue==="on_update"||s.autoValue==="on_create")?d=i:d=a,s.mode==="date"&&(d=l(d)),d}else return a})??{}}function HG(e,t){const c=e;return Object.entries(t).forEach(([i,l])=>{e&&e[i]!==void 0?c[i]=e[i]:l.validation?.required&&(c[i]=null)}),c}function In(e){return new Je(e.id,e.path)}function Hr(e,t,c){const i=Object.entries(t).map(([a,s])=>{const d=e&&e[a],u=Fo(d,s,c);if(u!==void 0)return{[a]:u}}).reduce((a,s)=>({...a,...s}),{}),l={...e,...i};if(Object.keys(l).length!==0)return l}function Fo(e,t,c){let i;if(t.dataType==="map"&&t.properties)i=Hr(e,t.properties,c);else if(t.dataType==="array")if(t.of&&Array.isArray(e))i=e.map(l=>Fo(l,t.of,c));else if(t.oneOf&&Array.isArray(e)){const l=t.oneOf?.typeField??to,a=t.oneOf?.valueField??So;i=e.map(s=>{if(s===null)return null;if(typeof s!="object")return s;const d=s[l],u=t.oneOf?.properties[d];return!d||!u?s:{[l]:d,[a]:Fo(s[a],u,c)}})}else i=e;else i=c(e,t);return i}function Ur(e,t){const c=e.subcollections?.map(d=>{const u=t.subcollections?.find(A=>A.path===d.path)??t.subcollections?.find(A=>A.alias===d.alias);return u?Ur(d,u):d}),i=Ze(e,t),l=e.propertiesOrder??Object.keys(e.properties),a=t.propertiesOrder??Object.keys(t.properties),s=[...new Set([...l,...a])];return{...i,subcollections:c,properties:Yr(i.properties,s)}}function UG(e,t){const c=e.map(a=>({...a,editable:!0,deletable:!0})),i=(t??[]).map(a=>{const s=c?.find(d=>d.path===a.path||d.alias&&a.alias&&d.alias===a.alias);return s?{...Ur(a,s),deletable:!1}:{...a,deletable:!1}}),l=c.filter(a=>!i.map(s=>s.path).includes(a.path)||!i.map(s=>s.alias).includes(a.alias));return[...i,...l]}function Yr(e,t){try{const c=Object.keys(e);return(t??c).map(l=>{if(e[l]){const a=e[l];return!We(a)&&a?.dataType==="map"&&a.properties?{[l]:{...a,properties:Yr(a.properties,a.propertiesOrder)}}:{[l]:a}}else return}).filter(l=>l!==void 0).reduce((l,a)=>({...l,...a}),{})}catch(c){return console.error("Error sorting properties",c),e}}function $r(e,t){if(e)return typeof e=="string"?e:e(t)}const YG=/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g,$G=e=>{const t=e.match(YG);return t?t.map(c=>c.toLowerCase()).join("-"):""},jG=/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g,qG=e=>{const t=e.match(jG);return t?t.map(c=>c.toLowerCase()).join("_"):""};function Mn(e=5){return Math.random().toString(36).slice(2,2+e)}function JG(){return Math.floor(Math.random()*16777215).toString(16)}function Po(e,t="_",c=!0){if(!e)return"";const i="ãàáäâẽèéëêìíïîõòóöôùúüûñç·/_,:;-",l=`aaaaaeeeeeiiiiooooouuuunc${t}${t}${t}${t}${t}${t}${t}`;for(let a=0,s=i.length;a<s;a++)e=e.replace(new RegExp(i.charAt(a),"g"),l.charAt(a));return e=e.toString().replace(/\s+/g,t).replace(/&/g,t).replace(/[^\w\\-]+/g,"").replace(new RegExp("\\"+t+"\\"+t+"+","g"),t).trim().replace(/^\s+|\s+$/g,""),c?e.toLowerCase():e}const ai="::";function jr(e){return li(Xe(e))}function li(e){return e.length===1?e[0]:e.reduce((t,c)=>`${t}${ai}${c}`)}function Xe(e){return e.split("/").filter((t,c)=>c%2===0)}function ZG(e){return e?e.toString():""}function si(e){if(!e)return;const t=e.match(/\/(.*?)\/([a-z]*)?$/i);return t?new RegExp(t[1],t[2]||""):new RegExp(e,"")}function XG(e){return e.match(/\/((?![*+?])(?:[^\r\n[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*])+)\/((?:g(?:im?|mi?)?|i(?:gm?|mg?)?|m(?:gi?|ig?)?)?)/)?!0:!!e.match(/((?![*+?])(?:[^\r\n[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*])+)/)}function Do(e,t,c,i=300){const l=f.useRef(!1),a=()=>{t(),l.current=!1},s=f.useRef(void 0);f.useEffect(()=>(l.current=!0,clearTimeout(s.current),s.current=setTimeout(a,i),()=>{c&&a()}),[c,e])}function xG(e,t=300){const[c,i]=f.useState(e);return f.useEffect(()=>{const l=setTimeout(()=>{i(e)},t);return()=>{clearTimeout(l)}},[e,t]),c}function No({name:e,addLabel:t,value:c,disabled:i=!1,buildEntry:l,small:a,onInternalIdAdded:s,includeAddButton:d,newDefaultEntry:u=null,setFieldValue:A}){return n.jsx(Pt,{droppableId:e,addLabel:t,value:c,disabled:i,buildEntry:l,size:a?"small":"medium",onInternalIdAdded:s,includeAddButton:d,newDefaultEntry:u,onValueChange:_=>A(e,_)})}function Ce({icon:e,title:t,small:c,className:i,required:l}){return n.jsxs("span",{className:`inline-flex items-center my-0.5 ${c?"gap-1":"gap-2"} ${i??""}`,children:[e,n.jsx(j,{component:"span",className:`font-medium text-${c?"base":"sm"} origin-top-left transform ${c?"translate-x-2 scale-75":""}`,children:(t??"")+(l?" *":"")})]})}function RG(e){const t=f.useRef(),[c,i]=f.useState(e.value),l=f.useDeferredValue(c);f.useEffect(()=>{i(e.value)},[e.value]),f.useEffect(()=>{!e.value&&!l||l!==e.value&&t.current&&e.onChange&&e.onChange(t.current)},[l,e.value,e.onChange]);const a=f.useCallback(s=>{t.current=s,i(s.target.value)},[]);return n.jsx(An,{...e,onChange:a,value:c})}function ez({field:e,form:t,label:c,tooltip:i,disabled:l,size:a="small",allowIndeterminate:s}){const d=n.jsx(On,{label:c,size:a,position:"start",value:e.value,disabled:l,allowIndeterminate:s,onValueChange:u=>t.setFieldValue(e.name,u)});return i?n.jsx(ye,{title:i,children:d}):d}function Se({error:e,showError:t,property:c,includeDescription:i=!0,disabled:l}){const a=c.description||c.longDescription;if(!(t&&e)&&(!i||!a))return null;if(t&&e)return n.jsx(j,{variant:"caption",className:"ml-3.5 text-red-500",children:e});const s=typeof c.disabled=="object"?c.disabled.disabledMessage:void 0;return n.jsxs("div",{className:"flex ml-3.5 mt-1",children:[n.jsx(j,{variant:"caption",color:l?"disabled":"secondary",className:"flex-grow",children:s||c.description}),c.longDescription&&n.jsx(ye,{title:c.longDescription,side:"bottom",children:n.jsx(ee,{size:"small",className:"self-start",children:n.jsx(Bc,{color:"disabled",size:"small"})})})]})}function qr({propertyKey:e,value:t,setValue:c,error:i,showError:l,disabled:a,autoFocus:s,touched:d,property:u,includeDescription:A}){const _=u.enumValues;Ne({property:u,value:t,setValue:c});const g=f.useCallback(y=>{y.stopPropagation(),y.preventDefault(),c(null)},[c]);return n.jsxs(n.Fragment,{children:[n.jsx(xe,{value:t?t.toString():"",disabled:a,position:"item-aligned",inputClassName:E("w-full"),label:n.jsx(Ce,{icon:we(u),required:u.validation?.required,title:u.name,className:"text-text-secondary dark:text-text-secondary-dark ml-3.5"}),endAdornment:u.clearable&&n.jsx(ee,{onClick:g,children:n.jsx(an,{})}),onValueChange:y=>{const h=y?u.dataType==="number"?parseFloat(y):y:null;return c(h)},renderValue:y=>n.jsx(Ee,{enumKey:y,enumValues:_,size:"medium"}),children:_&&_.map(y=>n.jsx(Re,{value:String(y.id),children:n.jsx(Ee,{enumKey:String(y.id),enumValues:_,size:"medium"})},y.id))}),n.jsx(Se,{includeDescription:A,showError:l,error:i,disabled:a,property:u})]})}function di({children:e,error:t}){return n.jsx("div",{className:E("text-sm font-medium ml-3.5 mb-1",t?"text-red-500 dark:text-red-600":"text-gray-500 dark:text-gray-300"),children:e})}function Mo(e,t,c=!0){f.useEffect(()=>{if(!c)return;function i(l){ui(l.target)||e.current&&!e.current.contains(l.target)&&t()}return document.addEventListener("mousedown",i),()=>{document.removeEventListener("mousedown",i)}},[e,c,t])}function ui(e){return e instanceof HTMLElement?e.getAttribute("role")==="presentation"?!0:ui(e.parentNode):!1}const Jr=ce.createContext({});function Zr({value:e,open:t,onMultiValueChange:c,size:i="medium",label:l,disabled:a,renderValue:s,renderValues:d,includeFocusOutline:u=!0,containerClassName:A,className:_,children:g,error:y}){const h=ce.useRef(null),I=ce.useRef(null),b=ce.useRef(null);Mo(b,()=>w(!1));const[p,w]=ce.useState(!1);f.useEffect(()=>{w(t??!1)},[t]);const k=ce.useCallback(C=>{Array.isArray(e)&&e.includes(C)?c?.(e.filter(N=>N!==C)):c?.([...e??[],C])},[e,c]),[K,m]=ce.useState(""),[v,S]=ce.useState(null),B=ce.useCallback(C=>{const N=I.current;if(N){if((C.key==="Delete"||C.key==="Backspace")&&N.value===""){const M=[...e??[]];M.pop(),c?.(M)}C.key==="Escape"&&(N.blur(),w(!1),C.stopPropagation())}},[c,e]),P=ce.useCallback(()=>{S(h.current?.getBoundingClientRect()??null),w(!0)},[]),F=v??h.current?.getBoundingClientRect(),D=window.innerHeight-(F?.top??0)-(F?.height??0)-16;return n.jsxs(n.Fragment,{children:[typeof l=="string"?n.jsx(di,{error:y,children:l}):l,n.jsxs(go.Command,{onKeyDown:B,onClick:()=>{I.current?.focus(),P()},className:E("relative overflow-visible bg-transparent",A),children:[n.jsxs("div",{ref:h,className:E("flex flex-row",i==="small"?"min-h-[42px]":"min-h-[64px]","select-none rounded-md text-sm",qe,a?en:ze,"relative flex items-center","p-4",y?"text-red-500 dark:text-red-600":"focus:text-text-primary dark:focus:text-text-primary-dark",y?"border border-red-500 dark:border-red-600":"",u?ge:"",_),children:[n.jsxs("div",{className:E("flex-grow flex gap-1.5 flex-wrap items-center"),children:[s&&(e??[]).map((C,N)=>s(C,N)),d&&d(e??[]),n.jsx(go.Command.Input,{ref:I,value:K,onValueChange:m,onFocus:P,className:"ml-2 bg-transparent outline-none flex-1 h-full w-full "})]}),n.jsx("div",{className:"px-2 h-full flex items-center",children:n.jsx(eo,{size:"small",className:E("transition ",p?"rotate-180":"")})})]}),n.jsx($e.Root,{open:p,onOpenChange:w,children:n.jsx($e.Portal,{children:n.jsx(Jr.Provider,{value:{fieldValue:e,setInputValue:m,onValueChangeInternal:k},children:n.jsx("div",{ref:b,className:"z-50 absolute overflow-auto outline-none",style:{pointerEvents:p?"auto":"none",top:(F?.top??0)+(F?.height??0),left:F?.left,width:F?.width,maxHeight:D},children:n.jsx(go.Command.Group,{className:"mt-2 text-gray-900 dark:text-white animate-in z-50 border border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-800 p-2 rounded-lg shadow-lg flex flex-col outline-none w-full",children:g})})})})})]})]})}function Xr({children:e,value:t,className:c}){const i=ce.useContext(Jr);if(!i)throw new Error("MultiSelectItem must be used inside a MultiSelect");const{fieldValue:l,setInputValue:a,onValueChangeInternal:s}=i;return n.jsx(go.Command.Item,{onMouseDown:d=>{d.preventDefault(),d.stopPropagation()},onSelect:d=>{a(""),s(t)},className:E((l??[]).includes(t)?"bg-gray-200 dark:bg-gray-950":"","cursor-pointer","m-1","ring-offset-transparent","p-2 rounded aria-[selected=true]:outline-none aria-[selected=true]:ring-2 aria-[selected=true]:ring-primary aria-[selected=true]:ring-opacity-75 aria-[selected=true]:ring-offset-2","aria-[selected=true]:bg-gray-100 aria-[selected=true]:dark:bg-gray-900","cursor-pointer p-2 rounded aria-[selected=true]:bg-gray-100 aria-[selected=true]:dark:bg-gray-900",c),children:e})}function xr({propertyKey:e,value:t,setValue:c,error:i,showError:l,disabled:a,property:s,includeDescription:d,autoFocus:u}){const A=s.of;if(!A)throw Error("Using wrong component ArrayEnumSelect");if(Array.isArray(A))throw Error("Using array properties instead of single one in `of` in ArrayProperty");if(A.dataType!=="string"&&A.dataType!=="number")throw Error("Field misconfiguration: array field of type string or number");const _=sn(A.enumValues);if(!_)throw console.error(s),Error("Field misconfiguration: array field of type string or number needs to have enumValues");Ne({property:s,value:t,setValue:c});const g=!!t&&Array.isArray(t),y=f.useCallback((h,I)=>{const b=h!==void 0?vo(_,h):void 0;return n.jsxs(Ee,{enumKey:h,enumValues:_,size:"medium",children:[b?.label??h,!I&&n.jsx("button",{className:"ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",onMouseDown:p=>{p.preventDefault(),p.stopPropagation()},onClick:p=>{p.preventDefault(),p.stopPropagation(),c(t.filter(w=>w!==h))},children:n.jsx(pr,{size:"smallest"})})]},h)},[_,c,t]);return n.jsxs("div",{className:"mt-0.5 ml-0.5 mt-2",children:[n.jsx(Zr,{value:g?t.map(h=>h.toString()):[],disabled:a,label:n.jsx(Ce,{icon:we(s),required:s.validation?.required,title:s.name,className:"text-text-secondary dark:text-text-secondary-dark ml-3.5"}),renderValue:f.useCallback(h=>y(h,!1),[y]),onMultiValueChange:h=>{let I;return A&&A?.dataType==="number"?I=h?h.map(b=>parseFloat(b)):[]:I=h,c(I)},children:_.map(h=>String(h.id)).map(h=>n.jsx(Xr,{value:h,children:y(h,!0)},h))}),n.jsx(Se,{includeDescription:d,showError:l,error:i,disabled:a,property:s})]})}function fi({propertyKey:e,value:t,error:c,showError:i,disabled:l,isSubmitting:a,tableMode:s,property:d,includeDescription:u,setValue:A,setFieldValue:_}){const g=d.of;if(g.dataType!=="reference")throw Error("ArrayOfReferencesField expected a property containing references");const y=d.expanded===void 0?!0:d.expanded,[h,I]=f.useState(!1),b=t&&Array.isArray(t)?t.map(P=>P.id):[];Ne({property:d,value:t,setValue:A});const p=Ae(),w=f.useMemo(()=>g.path?p.getCollection(g.path):void 0,[g.path]);if(!w)throw Error(`Couldn't find the corresponding collection for the path: ${g.path}`);const k=f.useCallback(P=>{A(P.map(F=>In(F)))},[A]),K=xn({multiselect:!0,path:g.path,collection:w,onMultipleEntitiesSelected:k,selectedEntityIds:b,forceFilter:g.forceFilter}),m=f.useCallback(P=>{P.preventDefault(),K.open()},[K]),v=f.useCallback((P,F)=>{const D=t&&t.length>P?t[P]:void 0;return D?n.jsx("div",{onMouseEnter:()=>I(!0),onMouseMove:()=>I(!0),onMouseLeave:()=>I(!1),children:n.jsx(on,{disabled:!g.path,previewProperties:g.previewProperties,size:"medium",onClick:m,reference:D,onHover:h})}):n.jsx("div",{children:"Internal ERROR"})},[g.path,g.previewProperties,h,t]),S=n.jsx(Ce,{icon:we(d),required:d.validation?.required,title:d.name,className:"text-text-secondary dark:text-text-secondary-dark"}),B=n.jsxs(n.Fragment,{children:[!w&&n.jsx(pe,{error:"The specified collection does not exist. Check console"}),w&&n.jsxs(n.Fragment,{children:[n.jsx(No,{value:t,addLabel:d.name?"Add reference to "+d.name:"Add reference",name:e,buildEntry:v,disabled:a,setFieldValue:_,newDefaultEntry:d.of.defaultValue}),n.jsxs(te,{className:"my-4 justify-center text-left",variant:"outlined",color:"primary",disabled:a,onClick:m,children:["Edit ",d.name]})]})]});return n.jsxs(n.Fragment,{children:[!s&&n.jsx(fn,{className:"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",initiallyExpanded:y,title:S,children:B}),s&&B,n.jsx(Se,{includeDescription:u,showError:i,error:c,disabled:l,property:d})]})}async function nz(e,t,c,i,l,a,s,d){let u;return typeof e=="function"?(u=await e({path:l,entityId:i,values:c,property:a,file:s,storage:t,propertyKey:d}),u||console.warn("Storage callback returned empty result. Using default name value")):u=Ai(s,e,i,d,l),u||(u=Mn()+"_"+s.name),u}function oz(e,t,c,i,l,a,s,d){let u;return typeof e=="function"?(u=e({path:l,entityId:i,values:c,property:a,file:s,storage:t,propertyKey:d}),u||console.warn("Storage callback returned empty result. Using default name value")):u=Ai(s,e,i,d,l),u||(u=Mn()+"_"+s.name),u}function Ai(e,t,c,i,l){const a=e.name.split(".").pop();let s=t.replace("{entityId}",c).replace("{propertyKey}",i).replace("{rand}",Mn()).replace("{file}",e.name).replace("{file.type}",e.type).replace("{path}",l);if(a){s=s.replace("{file.ext}",a);const d=e.name.replace(`.${a}`,"");s=s.replace("{file.name}",d)}return s||(s=Mn()+"_"+e.name),s}function _i({entityId:e,entityValues:t,path:c,value:i,property:l,propertyKey:a,storageSource:s,disabled:d,onChange:u}){const A=l.dataType==="string"?l.storage:l.dataType==="array"&&l.of.dataType==="string"?l.of.storage:void 0,_=l.dataType==="array";if(!A)throw Error("Storage meta must be specified");const g=A?.metadata,y=_?"small":"medium",h=A?.imageCompression,I=(_?i??[]:i?[i]:[]).map(B=>({id:Rr(),storagePathOrDownloadUrl:B,metadata:g,size:y})),[b,p]=f.useState(i),[w,k]=f.useState(I);f.useEffect(()=>{de(b,i)||(p(i),k(I))},[I,i,b]);const K=f.useCallback(async B=>{if(A.fileName){const P=await nz(A.fileName,A,t,e,c,l,B,a);if(!P||P.length===0)throw Error("You need to return a valid filename");return P}return Mn()+"_"+B.name},[e,t,c,l,a,A]),m=f.useCallback(B=>oz(A.storagePath,A,t,e,c,l,B,a)??"/",[e,t,c,l,a,A]),v=f.useCallback(async(B,P,F)=>{console.debug("onFileUploadComplete",B,P);let D=B;if(A.storeUrl&&(D=(await s.getDownloadURL(B)).url),A.postProcess&&D&&(D=await A.postProcess(D)),!D){console.warn("uploadPathOrDownloadUrl is null");return}let C;P.storagePathOrDownloadUrl=D,P.metadata=F,C=[...w],C=yi(C),k(C);const N=C.filter(M=>!!M.storagePathOrDownloadUrl).map(M=>M.storagePathOrDownloadUrl);u(_?N:N?N[0]:null)},[w,_,u,A,s]),S=f.useCallback(async B=>{if(!B.length||d)return;let P;if(_)P=[...w,...await Promise.all(B.map(async F=>(h&&et(F)&&(F=await gi(F,h)),{id:Rr(),file:F,fileName:await K(F),metadata:g,size:y})))];else{let F=B[0];h&&et(F)&&(F=await gi(F,h)),P=[{id:Rr(),file:F,fileName:await K(F),metadata:g,size:y}]}P=yi(P),k(P)},[d,K,w,g,_,y]);return{internalValue:w,setInternalValue:k,storage:A,fileNameBuilder:K,storagePathBuilder:m,onFileUploadComplete:v,onFilesAdded:S,multipleFilesSupported:_}}function yi(e){return e.filter((t,c)=>(e.map(i=>i.storagePathOrDownloadUrl).indexOf(t.storagePathOrDownloadUrl)===c||!t.storagePathOrDownloadUrl)&&(e.map(i=>i.file).indexOf(t.file)===c||!t.file))}function Rr(){return Math.floor(Math.random()*Math.floor(Number.MAX_SAFE_INTEGER))}const hi={"image/jpeg":"JPEG","image/png":"PNG","image/webp":"WEBP"},et=e=>hi[e.type]?hi[e.type]:null,rz=100,gi=(e,t)=>new Promise(c=>{const i=t.quality===void 0?rz:t.quality,l=i>=0&&i<=100?i:100,a=et(e);if(!a)throw Error("resizeAndCompressImage: Unsupported image format");Ea.imageFileResizer(e,t.maxWidth||Number.MAX_VALUE,t.maxHeight||Number.MAX_VALUE,a,l,0,s=>c(s),"file")});function Ii({storagePath:e,entry:t,metadata:c,onFileUploadComplete:i,imageSize:l,simple:a}){const s=Sn(),d=cn(),[u,A]=f.useState(),[_,g]=f.useState(!1),y=f.useRef(!1),h=f.useRef(!1),I=f.useCallback((b,p)=>{h.current||(h.current=!0,A(void 0),g(!0),s.uploadFile({file:b,fileName:p,path:e,metadata:c}).then(async({path:w})=>{console.debug("Upload successful"),await i(w,t,c),y.current&&g(!1)}).catch(w=>{console.warn("Upload error",w),y.current&&(A(w),g(!1),d.open({type:"error",message:"Error uploading file: "+w.message}))}).finally(()=>{h.current=!1}))},[t,c,i,s,e]);return f.useEffect(()=>(y.current=!0,t.file&&I(t.file,t.fileName),()=>{y.current=!1}),[t.file,t.fileName,I]),a?n.jsx("div",{className:`m-4 w-${l} h-${l}`,children:_&&n.jsx(Ve,{className:`w-${l} h-${l}`})}):n.jsxs("div",{className:E(He,"relative m-4 border-box flex items-center justify-center",`min-w-[${l}px] min-h-[${l}px]`),children:[_&&n.jsx(Ve,{className:"w-full h-full"}),u&&n.jsx(pe,{title:"Error uploading file",error:u})]})}function bi({name:e,property:t,value:c,entity:i,onRemove:l,disabled:a,size:s}){return n.jsxs("div",{className:E(He,"relative m-4 border-box flex items-center justify-center",s==="medium"?"min-w-[220px] min-h-[220px] max-w-[220px]":"min-w-[118px] min-h-[118px] max-w-[118px]"),children:[!a&&n.jsx("div",{className:"absolute rounded-full -top-2 -right-2 z-10 bg-white dark:bg-gray-900",children:n.jsx(ye,{title:"Remove",children:n.jsx(ee,{size:"small",onClick:d=>{d.stopPropagation(),l(c)},children:n.jsx(oo,{size:"small"})})})}),c&&n.jsx(se,{children:n.jsx(Ke,{propertyKey:e,value:c,property:t,entity:i,size:s})})]})}const tz="box-border relative pt-[2px] items-center border border-transparent min-h-[254px] outline-none rounded-md duration-200 ease-[cubic-bezier(0.4,0,0.2,1)] focus:border-primary-solid",cz="border-dotted-gray",iz="hover:bg-field-hover dark:hover:bg-field-hover-dark",az="pt-0 border-2 border-solid",lz="transition-colors duration-200 ease-[cubic-bezier(0,0,0.2,1)] border-2 border-solid border-green-500",sz="transition-colors duration-200 ease-[cubic-bezier(0,0,0.2,1)] border-2 border-solid border-red-500";function nt({propertyKey:e,value:t,setValue:c,error:i,showError:l,autoFocus:a,tableMode:s,property:d,includeDescription:u,context:A,isSubmitting:_}){if(!A.entityId)throw new Error("StorageUploadFieldBinding: Entity id is null");const g=Sn(),y=Nn(d)||!!d.disabled||_,{internalValue:h,setInternalValue:I,onFilesAdded:b,storage:p,onFileUploadComplete:w,storagePathBuilder:k,multipleFilesSupported:K}=_i({entityValues:A.values,entityId:A.entityId,path:A.path,property:d,propertyKey:e,value:t,storageSource:g,disabled:y,onChange:c});Ne({property:d,value:t,setValue:c});const m={id:A.entityId,values:A.values,path:A.path};return n.jsxs(n.Fragment,{children:[!s&&n.jsx(Ce,{icon:we(d),required:d.validation?.required,title:d.name,className:"text-text-secondary dark:text-text-secondary-dark ml-3.5"}),n.jsx(uz,{value:h,name:e,disabled:y,autoFocus:a,property:d,onChange:c,setInternalValue:I,onFilesAdded:b,entity:m,onFileUploadComplete:w,storagePathBuilder:k,storage:p,multipleFilesSupported:K}),n.jsx(Se,{includeDescription:u,showError:l,error:i,disabled:y,property:d})]})}function dz({storage:e,disabled:t,isDraggingOver:c,onFilesAdded:i,multipleFilesSupported:l,droppableProvided:a,autoFocus:s,internalValue:d,property:u,entity:A,onClear:_,metadata:g,storagePathBuilder:y,onFileUploadComplete:h,size:I,name:b,helpText:p}){const w=cn(),{getRootProps:k,getInputProps:K,isDragActive:m,isDragAccept:v,isDragReject:S}=er.useDropzone({accept:e.acceptedFiles?e.acceptedFiles.map(B=>({[B]:[]})).reduce((B,P)=>({...B,...P}),{}):void 0,disabled:t||c,noDragEventsBubbling:!0,maxSize:e.maxSize,onDrop:i,onDropRejected:(B,P)=>{for(const F of B)for(const D of F.errors)w.open({type:"error",message:`Error uploading file: File is larger than ${e.maxSize} bytes`})}});return n.jsxs("div",{...k(),className:E(qe,t?en:ze,tz,l&&d.length?"":"flex",ge,{[iz]:!m,[az]:m,[sz]:S,[lz]:v,[cz]:t}),children:[n.jsxs("div",{...a.droppableProps,ref:a.innerRef,className:E("flex items-center p-1 no-scrollbar",l&&d.length?"overflow-auto":"",l&&d.length?"min-h-[180px]":"min-h-[250px]"),children:[n.jsx("input",{autoFocus:s,...K()}),d.map((B,P)=>{let F;return B.storagePathOrDownloadUrl?F=n.jsx(bi,{name:`storage_preview_${B.storagePathOrDownloadUrl}`,property:u,disabled:t,entity:A,value:B.storagePathOrDownloadUrl,onRemove:_,size:B.size}):B.file&&(F=n.jsx(Ii,{entry:B,metadata:g,storagePath:y(B.file),onFileUploadComplete:h,imageSize:I==="medium"?220:118,simple:!1})),n.jsx(Kn.Draggable,{draggableId:`array_field_${b}_${B.id}`,index:P,children:(D,C)=>n.jsx("div",{tabIndex:-1,ref:D.innerRef,...D.draggableProps,...D.dragHandleProps,className:E(ge,"rounded-md"),style:{...D.draggableProps.style},children:F})},`array_field_${b}_${B.id}`)}),a.placeholder]}),n.jsx("div",{className:"flex-grow min-h-[38px] box-border m-2 text-center",children:n.jsx(j,{align:"center",variant:"label",children:p})})]})}function uz({property:e,name:t,value:c,setInternalValue:i,onChange:l,multipleFilesSupported:a,onFileUploadComplete:s,disabled:d,onFilesAdded:u,autoFocus:A,storage:_,entity:g,storagePathBuilder:y}){if(a){const m=e;if(m.of){if(Array.isArray(m.of)||m.of.dataType!=="string")throw Error("Storage field using array must be of data type string")}else throw Error("Storage field using array must be of data type string")}const h=_?.metadata,I=a?"small":"medium",b=f.useCallback((m,v)=>{if(!a)return;const S=[...c],B=S[m];S.splice(m,1),S.splice(v,0,B),i(S);const P=S.filter(F=>!!F.storagePathOrDownloadUrl).map(F=>F.storagePathOrDownloadUrl);l(P)},[a,l,i,c]),p=f.useCallback(m=>{m.destination&&b(m.source.index,m.destination.index)},[b]),w=f.useCallback(m=>{if(a){const v=c.filter(S=>S.storagePathOrDownloadUrl!==m);l(v.filter(S=>!!S.storagePathOrDownloadUrl).map(S=>S.storagePathOrDownloadUrl)),i(v)}else l(null),i([])},[c,a,l]),k=a?"Drag 'n' drop some files here, or click to select files":"Drag 'n' drop a file here, or click to select one",K=a?e.of:e;return n.jsx(Kn.DragDropContext,{onDragEnd:p,children:n.jsx(Kn.Droppable,{droppableId:`droppable_${t}`,direction:"horizontal",renderClone:(m,v,S)=>{const B=c[S.source.index];return n.jsx("div",{ref:m.innerRef,...m.draggableProps,...m.dragHandleProps,style:m.draggableProps.style,className:"rounded",children:n.jsx(bi,{name:`storage_preview_${B.storagePathOrDownloadUrl}`,property:K,disabled:!0,entity:g,value:B.storagePathOrDownloadUrl,onRemove:w,size:B.size})})},children:(m,v)=>n.jsx(dz,{storage:_,disabled:d,isDraggingOver:v.isDraggingOver,droppableProvided:m,onFilesAdded:u,multipleFilesSupported:a,autoFocus:A,internalValue:c,property:K,entity:g,onClear:w,metadata:h,storagePathBuilder:y,onFileUploadComplete:s,size:I,name:t,helpText:k})})})}function To({children:e,className:t,in:c=!1,duration:i=220}){return En(`Collapse-${i}`,`
|
|
69
|
-
.CollapseContent-${i} {
|
|
70
|
-
overflow: hidden;
|
|
71
|
-
}
|
|
72
|
-
.CollapseContent-${i}[data-state='open'] {
|
|
73
|
-
animation: slideDown ${i}ms ease-out;
|
|
74
|
-
}
|
|
75
|
-
.CollapseContent-${i}[data-state='closed'] {
|
|
76
|
-
animation: slideUp ${i}ms ease-in;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
@keyframes slideDown {
|
|
80
|
-
from {
|
|
81
|
-
height: 0;
|
|
82
|
-
}
|
|
83
|
-
to {
|
|
84
|
-
height: var(--radix-collapsible-content-height);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
@keyframes slideUp {
|
|
89
|
-
from {
|
|
90
|
-
height: var(--radix-collapsible-content-height);
|
|
91
|
-
}
|
|
92
|
-
to {
|
|
93
|
-
height: 0;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
`),n.jsx(qn.Root,{open:c,className:t,children:n.jsx(qn.Content,{className:E(`CollapseContent-${i}`),children:e})})}function Tn({propertyKey:e,value:t,setValue:c,error:i,showError:l,disabled:a,autoFocus:s,property:d,includeDescription:u}){let A,_;d.dataType==="string"&&(A=d.multiline,_=d.url),Ne({property:d,value:t,setValue:c});const g=f.useCallback(b=>{b.stopPropagation(),b.preventDefault(),c(null)},[c]),y=b=>{if(I==="number"){const p=b.target.value?parseFloat(b.target.value):void 0;p&&isNaN(p)?c(null):p!=null?c(p):c(null)}else c(b.target.value)},h=!!A,I=d.dataType==="number"?"number":void 0;return n.jsxs(n.Fragment,{children:[n.jsx(An,{value:t,onChange:y,autoFocus:s,label:n.jsx(Ce,{icon:we(d),required:d.validation?.required,title:d.name}),type:I,multiline:h,disabled:a,endAdornment:d.clearable&&n.jsx(ee,{onClick:g,children:n.jsx(an,{})}),error:l?i:void 0,inputClassName:i?"text-red-500 dark:text-red-600":""}),n.jsx(Se,{includeDescription:u,showError:l,error:i,disabled:a,property:d}),_&&n.jsx(To,{className:"mt-1 ml-1",in:!!t,children:n.jsx(Ke,{value:t,property:d,size:"medium"})})]})}const ot=f.forwardRef(function({value:t,allowIndeterminate:c,className:i,onValueChange:l,disabled:a=!1,size:s="medium",...d},u){return n.jsxs("button",{ref:u,tabIndex:a?-1:void 0,onClick:a?void 0:A=>{A.preventDefault(),c?t==null?l?.(!0):l?.(t?!1:null):l?.(!t)},className:E(s==="small"?"w-[38px] h-[22px] min-w-[38px] min-h-[22px]":"w-[42px] h-[26px] min-w-[42px] min-h-[26px]","outline-none rounded-full relative shadow-sm",t?a?"bg-white bg-opacity-54 dark:bg-gray-950":"ring-secondary ring-1 bg-secondary dark:bg-secondary":"bg-white bg-opacity-54 dark:bg-gray-900 ring-1 ring-gray-100 dark:ring-gray-700",i),...d,children:[c&&t==null&&n.jsx("div",{className:E("block rounded-full transition-transform duration-100 transform will-change-auto",a?"bg-gray-400 dark:bg-gray-600":"bg-gray-600 dark:bg-gray-400",{"w-[21px] h-[10px]":s==="medium","w-[19px] h-[8px]":s==="small","translate-x-[10px]":s==="medium","translate-x-[9px]":s==="small"})}),!(c&&t==null)&&n.jsx("div",{className:E("block rounded-full transition-transform duration-100 transform will-change-auto",a?"bg-gray-300 dark:bg-gray-700":t?"bg-white":"bg-gray-600 dark:bg-gray-400",{"w-[21px] h-[21px]":s==="medium","w-[19px] h-[19px]":s==="small",[t?"translate-x-[19px]":"translate-x-[3px]"]:s==="medium",[t?"translate-x-[17px]":"translate-x-[2px]"]:s==="small"})})]})}),On=function({value:t,position:c="end",invisible:i,onValueChange:l,error:a,label:s,autoFocus:d,disabled:u,size:A,..._}){const g=f.useRef(null),y=f.useRef(null),[h,I]=f.useState(d),b=()=>I(!0),p=()=>I(!1);f.useEffect(()=>{},[]);const w=document.activeElement===y?.current||document.activeElement===g?.current;return n.jsxs("div",{ref:g,onFocus:b,onBlur:p,tabIndex:-1,className:E(!i&&qe,!i&&(u?en:ze),u?"cursor-default":"cursor-pointer","rounded-md relative max-w-full justify-between w-full box-border relative inline-flex items-center",!i&&w&&!u?_r:"",a?"text-red-500 dark:text-red-600":w?"text-primary":u?"text-text-secondary dark:text-text-secondary-dark":"text-text-primary dark:text-text-primary-dark",A==="small"?"min-h-[40px]":"min-h-[64px]",A==="small"?"pl-2":"pl-4",A==="small"?"pr-4":"pr-6",c==="end"?"flex-row-reverse":"flex-row"),onClick:u?void 0:k=>{_.allowIndeterminate?t==null?l?.(!0):l?.(t?!1:null):l?.(!t)},children:[n.jsx(ot,{value:t,ref:y,size:A,className:i&&w?_r:"",disabled:u,..._}),n.jsx("div",{className:E("flex-grow",c==="end"?"mr-4":"ml-4",A==="small"?"text-sm":"text-base"),children:s})]})},pi=f.forwardRef(function({propertyKey:t,value:c,setValue:i,error:l,showError:a,autoFocus:s,disabled:d,touched:u,property:A,includeDescription:_},g){return Ne({property:A,value:c,setValue:i}),n.jsxs(n.Fragment,{children:[n.jsx(On,{value:c,onValueChange:y=>i(y),error:a,label:n.jsx(Ce,{icon:we(A),required:A.validation?.required,title:A.name}),disabled:d,autoFocus:s,size:"medium"}),n.jsx(Se,{includeDescription:_,showError:a,error:l,disabled:d,property:A})]})});function wi({propertyKey:e,value:t,setValue:c,autoFocus:i,error:l,showError:a,disabled:s,touched:d,property:u,includeDescription:A}){const _=t||null;return Ne({property:u,value:t,setValue:c}),n.jsxs(n.Fragment,{children:[n.jsx(Vn,{value:_,onChange:g=>c(g),size:"medium",mode:u.mode,clearable:u.clearable,label:n.jsx(Ce,{icon:we(u),required:u.validation?.required,className:"text-text-secondary dark:text-text-secondary-dark",title:u.name})}),n.jsx(Se,{includeDescription:A,showError:a,error:l,disabled:s,property:u})]})}class se extends f.Component{constructor(t){super(t),this.state={error:null}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,c){console.error(t)}render(){return this.state.error?n.jsxs("div",{className:"flex flex-col m-2",children:[n.jsxs("div",{className:"flex items-center m-2",children:[n.jsx(wr,{color:"error",size:"small"}),n.jsx("div",{className:"ml-4",children:"Error"})]}),n.jsx(j,{variant:"caption",children:this.state.error?.message??"See the error in the console"})]}):this.props.children}}function rt({propertyKey:e,value:t,error:c,showError:i,tableMode:l,property:a,includeDescription:s,context:d}){if(!d.entityId)throw new Error("ReadOnlyFieldBinding: Entity id is null");const u={id:d.entityId,values:d.values,path:d.path};return n.jsxs(n.Fragment,{children:[!l&&n.jsx(Ce,{icon:we(a),required:a.validation?.required,title:a.name,className:"text-text-secondary dark:text-text-secondary-dark ml-3.5"}),n.jsx("div",{className:E(He,"min-h-14 p-4 md:p-6"),children:n.jsx(se,{children:n.jsx(Ke,{propertyKey:e,value:t,property:a,entity:u,size:"medium"})})}),n.jsx(Se,{includeDescription:s,showError:i,error:c,property:a})]})}function ki(e){return typeof e.property.path!="string"?n.jsx(rt,{...e}):n.jsx(fz,{...e})}function fz({value:e,setValue:t,error:c,showError:i,isSubmitting:l,disabled:a,touched:s,autoFocus:d,property:u,includeDescription:A,context:_}){if(!u.path)throw new Error("Property path is required for ReferenceFieldBinding");Ne({property:u,value:e,setValue:t});const g=e&&e instanceof Je,y=Ae(),h=f.useMemo(()=>u.path?y.getCollection(u.path):void 0,[u.path]);if(!h)throw Error(`Couldn't find the corresponding collection for the path: ${u.path}`);const I=f.useCallback(w=>{t(In(w))},[t]),b=xn({multiselect:!1,path:u.path,collection:h,onSingleEntitySelected:I,selectedEntityIds:g?[e.id]:void 0,forceFilter:u.forceFilter}),p=f.useCallback(w=>{w.preventDefault(),b.open()},[b]);return n.jsxs(n.Fragment,{children:[n.jsx(Ce,{icon:we(u),required:u.validation?.required,title:u.name,className:"text-text-secondary dark:text-text-secondary-dark ml-3.5"}),!h&&n.jsx(pe,{error:"The specified collection does not exist. Check console"}),h&&n.jsxs(n.Fragment,{children:[e&&n.jsx(on,{disabled:!u.path,previewProperties:u.previewProperties,size:"medium",onClick:a||l?void 0:p,reference:e}),!e&&n.jsx("div",{className:"justify-center text-left",children:n.jsxs(te,{variant:"outlined",color:"primary",disabled:a||l,onClick:p,children:["Edit ",u.name]})})]}),n.jsx(Se,{includeDescription:A,showError:i,error:c,disabled:a,property:u})]})}const bn=f.memo(Az,(e,t)=>{if(e.propertyKey!==t.propertyKey)return!1;const c=We(e.property)||e.property.fromBuilder,i=We(t.property)||t.property.fromBuilder;return!((c===i||de(e.property,t.property))&&e.disabled===t.disabled)||Oo(t.property),!1});function Az({propertyKey:e,property:t,context:c,includeDescription:i,underlyingValueHasChanged:l,disabled:a,tableMode:s,partOfArray:d,partOfBlock:u,autoFocus:A}){const _=re(),y=Oo(t,_.plugins)?Fe.Field:Fe.FastField;return n.jsx(y,{name:e,children:h=>{let I;const b=Te({propertyKey:e,propertyValue:h.field.value,propertyOrBuilder:t,values:h.form.values,path:c.path,entityId:c.entityId,fields:_.fields});if(b===null||io(b))return n.jsx(n.Fragment,{});if(Nn(b))I=rt;else if(b.Field)typeof b.Field=="function"&&(I=b.Field);else{const w=Lo(b);if(!w)throw new Error(`INTERNAL: Could not find field config for property ${e}`);I=w.Field}if(!I)return console.warn(`No field component found for property ${e}`),console.warn("Property:",t),n.jsx("div",{children:`Currently the field ${b.dataType} is not supported`});const p={propertyKey:e,property:b,includeDescription:i,underlyingValueHasChanged:l,context:c,disabled:a,tableMode:s,partOfArray:d,partOfBlock:u,autoFocus:A};return n.jsx(_z,{Component:I,componentProps:p,fieldProps:h})}})}function _z({Component:e,componentProps:{propertyKey:t,property:c,includeDescription:i,underlyingValueHasChanged:l,tableMode:a,partOfArray:s,partOfBlock:d,autoFocus:u,context:A,disabled:_},fieldProps:g}){const{plugins:y}=re(),h=c.customProps,I=g.field.value,b=g.meta.initialValue,p=Fe.getIn(g.form.errors,t),w=Fe.getIn(g.form.touched,t),k=p&&(g.form.submitCount>0||c.validation?.unique)&&(!Array.isArray(p)||!!p.filter(F=>!!F).length),m=yz(A.path,A.collection,t,c,e,y)??e,v=g.form.isSubmitting,S=f.useCallback((F,D)=>{g.form.setFieldTouched(t,!0,!1),g.form.setFieldValue(t,F,D)},[]),B=f.useCallback((F,D,C)=>{g.form.setFieldTouched(t,!0,!1),g.form.setFieldValue(F,D,C)},[]),P={propertyKey:t,value:I,initialValue:b,setValue:S,setFieldValue:B,error:p,touched:w,showError:k,isSubmitting:v,includeDescription:i??!0,property:c,disabled:_??!1,underlyingValueHasChanged:l??!1,tableMode:a??!1,partOfArray:s??!1,partOfBlock:d??!1,autoFocus:u??!1,customProps:h,context:A};return n.jsxs(se,{children:[n.jsx(m,{...P}),l&&!v&&n.jsx(j,{variant:"caption",className:"ml-3.5",children:"This value has been updated elsewhere"})]})}const Oo=(e,t)=>{if(t?.some(l=>l.form?.fieldBuilder)||We(e))return!0;const c=e,i=!!c.Field||"fromBuilder"in c&&c.fromBuilder;return c.dataType==="map"&&c.properties?i||Object.values(c.properties).some(l=>Oo(l,t)):c.dataType==="array"&&"resolvedProperties"in c?i||c.resolvedProperties?.some(l=>l&&Oo(l,t)):i};function yz(e,t,c,i,l,a){return f.useRef((()=>{let d=null;return a&&a.forEach(u=>{const A=at(i);if(A&&u.form?.fieldBuilder){const _={fieldConfigId:A,propertyKey:c,property:i,Field:l,plugin:u,path:e,collection:t},g=u.form?.fieldBuilderEnabled?.(_);(g===void 0||g)&&(d=u.form.fieldBuilder(_)||d)}A||console.warn("INTERNAL: Field id not found for property",i)}),d})()).current}function mi({propertyKey:e,value:t,showError:c,error:i,disabled:l,property:a,setValue:s,partOfBlock:d,tableMode:u,includeDescription:A,underlyingValueHasChanged:_,autoFocus:g,context:y}){const h=a.pickOnlySomeKeys||!1,I=(a.expanded===void 0?!0:a.expanded)||g;if(!a.properties)throw Error(`You need to specify a 'properties' prop (or specify a custom field) in your map property ${e}`);let b;h?t?b=ii(a.properties,...Object.keys(t).filter(k=>k in a.properties)):b={}:b=a.properties;const p=n.jsx(n.Fragment,{children:n.jsx("div",{className:"py-1 flex flex-col space-y-2",children:Object.entries(b).filter(([k,K])=>!io(K)).map(([k,K],m)=>{const v={propertyKey:`${e}.${k}`,disabled:l,property:K,includeDescription:A,underlyingValueHasChanged:_,context:y,tableMode:!1,partOfArray:!1,partOfBlock:!1,autoFocus:g&&m===0};return n.jsx("div",{children:n.jsx(bn,{...v})},`map-${e}-${m}`)})})}),w=n.jsx(Ce,{icon:we(a),required:a.validation?.required,title:a.name,className:"text-text-secondary dark:text-text-secondary-dark"});return n.jsxs(n.Fragment,{children:[!u&&!d&&n.jsx(fn,{initiallyExpanded:I,className:"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",title:w,children:p}),(u||d)&&p,n.jsx(Se,{includeDescription:A,showError:c,error:i,disabled:l,property:a})]})}function vi({propertyKey:e,value:t,showError:c,error:i,disabled:l,property:a,setValue:s,tableMode:d,includeDescription:u,underlyingValueHasChanged:A,autoFocus:_,context:g}){const y=(a.expanded===void 0?!0:a.expanded)||_;if(!a.keyValue)throw Error(`Your property ${e} needs to have the 'keyValue' prop in order to use this field binding`);const h=n.jsx(tt,{value:t,setValue:s,disabled:l,fieldName:a.name??e}),I=n.jsx(Ce,{icon:we(a),required:a.validation?.required,title:a.name,className:"text-text-secondary dark:text-text-secondary-dark"});return n.jsxs(n.Fragment,{children:[!d&&n.jsx(fn,{initiallyExpanded:y,title:I,className:"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",children:h}),d&&h,n.jsx(Se,{includeDescription:u,showError:c,error:i,disabled:l,property:a})]})}function tt({value:e,setValue:t,fieldName:c,disabled:i}){const[l,a]=f.useState(Object.keys(e??{}).map(u=>[ct(),{key:u,dataType:it(e?.[u])??"string"}]));f.useEffect(()=>{const u=l.map(([h,{key:I}])=>I),A=Object.entries(e??{}).filter(([h,I])=>I!==void 0).map(([h])=>h),_=A.filter(h=>!u.includes(h)),g=u.filter(h=>!A.includes(h)),y=[...l];_.forEach(h=>{y.push([ct(),{key:h,dataType:it(e?.[h])??"string"}])}),g.forEach(h=>{const I=y.findIndex(([b,{key:p}])=>p===h);y.splice(I,1)}),a(y)},[e]);const s=f.useRef(e??{}),d=(u,A)=>{if(!u){console.warn("No key selected for data type update");return}a(l.map(_=>_[0]===u?[_[0],{key:_[1].key,dataType:A}]:_)),t({...e??{},[l.find(_=>_[0]===u)?.[1].key??""]:zr(A)})};return n.jsxs("div",{className:"py-1 flex flex-col gap-1",children:[l.map(([u,{key:A,dataType:_}],g)=>{const y=A?e?.[A]:"",h=I=>{if(a(l.map(p=>p[0]===u?[u,{key:I??"",dataType:p[1].dataType}]:p)),typeof e=="object"&&I in e)return;const b={...e??{}};s.current&&A in s.current?b[A]=void 0:delete b[A],t({...b,[I??""]:y})};return n.jsx(hz,{rowId:u,fieldKey:A,value:e??{},onDeleteClick:()=>{const I={...e??{}};s.current&&A in s.current?I[A]=void 0:delete I[A],a(l.filter(b=>b[0]!==u)),t({...I})},onFieldKeyChange:h,setValue:t,entryValue:y,dataType:_,disabled:i,updateDataType:d},u)}),n.jsx(te,{variant:"text",size:"small",color:"primary",className:"w-full",disabled:i,startIcon:n.jsx(hn,{}),onClick:u=>{u.preventDefault(),t({...e??{},"":null}),a([...l,[ct(),{key:"",dataType:"string"}]])},children:c?`Add to ${c}`:"Add"})]})}function hz({rowId:e,fieldKey:t,value:c,onFieldKeyChange:i,onDeleteClick:l,setValue:a,entryValue:s,dataType:d,updateDataType:u,disabled:A}){function _(y,h,I){return I==="string"||I==="number"?n.jsx(An,{placeholder:"value",value:y,type:I==="number"?"number":"text",size:"small",disabled:A||!h,onChange:b=>{if(I==="number"){const p=b.target.value?parseFloat(b.target.value):void 0;p&&isNaN(p)?a({...c,[h]:null}):p!=null?a({...c,[h]:p}):a({...c,[h]:null})}else a({...c,[h]:b.target.value})}},I):I==="date"?n.jsx(Vn,{value:y,size:"small",disabled:A||!h,onChange:b=>{a({...c,[h]:b})}}):I==="boolean"?n.jsx(On,{value:y,size:"small",position:"start",disabled:A||!h,onValueChange:b=>{a({...c,[h]:b})}}):I==="array"?n.jsx("div",{className:E(ue,"ml-2 pl-2 border-l border-solid"),children:n.jsx(Pt,{value:y,newDefaultEntry:"",droppableId:e.toString(),addLabel:h?`Add to ${h}`:"Add",size:"small",disabled:A||!h,includeAddButton:!0,onValueChange:b=>{a({...c,[h]:b})},buildEntry:(b,p)=>n.jsx(gz,{index:b,id:p,value:y[b],disabled:A||!h,setValue:w=>{const k=[...y];k[b]=w,a({...c,[h]:k})}})})}):I==="map"?n.jsx("div",{className:E(ue,"ml-2 pl-2 border-l border-solid"),children:n.jsx(tt,{value:y,fieldName:h,setValue:b=>{a({...c,[h]:b})}})}):n.jsx(j,{variant:"caption",children:`Data type ${I} not supported yet`})}function g(y){u(e,y)}return n.jsxs(n.Fragment,{children:[n.jsxs(j,{component:"div",className:"font-mono flex flex-row gap-1",children:[n.jsx("div",{className:"w-[200px] max-w-[25%]",children:n.jsx(An,{value:t,placeholder:"key",disabled:A||s!=null&&s!=="",size:"small",onChange:y=>{i(y.target.value)}})}),n.jsx("div",{className:"flex-grow",children:d!=="map"&&d!=="array"&&_(s,t,d)}),n.jsxs(Qn,{trigger:n.jsx(ee,{size:"small",className:"h-7 w-7",children:n.jsx(gr,{})}),children:[n.jsx(ke,{dense:!0,onClick:()=>g("string"),children:"string"}),n.jsx(ke,{dense:!0,onClick:()=>g("number"),children:"number"}),n.jsx(ke,{dense:!0,onClick:()=>g("boolean"),children:"boolean"}),n.jsx(ke,{dense:!0,onClick:()=>g("date"),children:"date"}),n.jsx(ke,{dense:!0,onClick:()=>g("map"),children:"map"}),n.jsx(ke,{dense:!0,onClick:()=>g("array"),children:"array"})]}),n.jsx(ee,{"aria-label":"delete",size:"small",onClick:l,className:"h-7 w-7",children:n.jsx(oo,{size:"small"})})]},e.toString()),(d==="map"||d==="array")&&_(s,t,d)]})}function gz({id:e,index:t,value:c,setValue:i}){const[l,a]=f.useState(it(c)??"string");function s(u){a(u)}function d(u,A){return A==="string"||A==="number"?n.jsx(An,{value:u,type:A==="number"?"number":"text",size:"small",onChange:_=>{if(A==="number"){const g=_.target.value?parseFloat(_.target.value):void 0;g&&isNaN(g)?i(null):g!=null?i(g):i(null)}else i(_.target.value)}}):A==="date"?n.jsx(Vn,{value:u,size:"small",onChange:_=>{i(_)}}):A==="boolean"?n.jsx(On,{value:u,size:"small",position:"start",onValueChange:_=>{i(_)}}):A==="array"?n.jsx(j,{variant:"caption",children:"Arrays of arrays are not supported."}):A==="map"?n.jsx("div",{className:E(ue,"ml-2 pl-2 border-l border-solid"),children:n.jsx(tt,{value:u,setValue:_=>{i(_)}})}):n.jsx(j,{variant:"caption",children:`Data type ${A} not supported yet`})}return n.jsxs(n.Fragment,{children:[n.jsxs(j,{component:"div",className:"font-mono flex min-h-12 flex-row gap-1 items-center",children:[n.jsx("div",{className:"flex-grow",children:l!=="map"&&d(c,l)}),n.jsxs(Qn,{trigger:n.jsx(ee,{size:"small",className:"h-7 w-7",children:n.jsx(gr,{})}),children:[n.jsx(ke,{dense:!0,onClick:()=>s("string"),children:"string"}),n.jsx(ke,{dense:!0,onClick:()=>s("number"),children:"number"}),n.jsx(ke,{dense:!0,onClick:()=>s("boolean"),children:"boolean"}),n.jsx(ke,{dense:!0,onClick:()=>s("map"),children:"map"}),n.jsx(ke,{dense:!0,onClick:()=>s("date"),children:"date"})]})]},e.toString()),l==="map"&&d(c,l)]})}function ct(){return Math.floor(Math.random()*Math.floor(Number.MAX_SAFE_INTEGER))}function it(e){if(typeof e=="string"||e===null)return"string";if(typeof e=="number")return"number";if(typeof e=="boolean")return"boolean";if(Array.isArray(e))return"array";if(e instanceof Date)return"date";if(e instanceof Je)return"reference";if(e instanceof Br)return"geopoint";if(typeof e=="object")return"map"}function Ki({propertyKey:e,value:t,error:c,showError:i,isSubmitting:l,setValue:a,setFieldValue:s,tableMode:d,property:u,includeDescription:A,underlyingValueHasChanged:_,context:g,disabled:y}){if(!u.of)throw Error("RepeatFieldBinding misconfiguration. Property `of` not set");if(!u.resolvedProperties||!Array.isArray(u.resolvedProperties))throw Error("RepeatFieldBinding - Internal error: Expected array in 'property.resolvedProperties'");const h=u.expanded===void 0?!0:u.expanded,I=u.of,[b,p]=f.useState();Ne({property:u,value:t,setValue:a});const w=(m,v)=>{const S=u.resolvedProperties[m]??I,B={propertyKey:`${e}.${m}`,disabled:y,property:S,includeDescription:A,underlyingValueHasChanged:_,context:g,tableMode:!1,partOfArray:!0,partOfBlock:!1,autoFocus:v===b};return n.jsx(bn,{...B})},k=n.jsx(No,{value:t,addLabel:u.name?"Add entry to "+u.name:"Add entry",name:e,setFieldValue:s,buildEntry:w,onInternalIdAdded:p,disabled:l||!!u.disabled,includeAddButton:!u.disabled,newDefaultEntry:u.of.defaultValue}),K=n.jsx(Ce,{icon:we(u),required:u.validation?.required,title:u.name,className:"text-text-secondary dark:text-text-secondary-dark"});return n.jsxs(n.Fragment,{children:[!d&&n.jsx(fn,{initiallyExpanded:h,className:"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",title:K,children:k}),d&&k,n.jsx(Se,{includeDescription:A,showError:i,error:c,disabled:y,property:u})]})}function Ci({propertyKey:e,value:t,error:c,showError:i,isSubmitting:l,setValue:a,setFieldValue:s,tableMode:d,property:u,includeDescription:A,underlyingValueHasChanged:_,context:g,disabled:y}){if(!u.oneOf)throw Error("ArrayOneOfField misconfiguration. Property `oneOf` not set");const h=u.expanded===void 0?!0:u.expanded;Ne({property:u,value:t,setValue:a});const[I,b]=f.useState(),p=f.useCallback((m,v)=>n.jsx(Iz,{name:`${e}.${m}`,index:m,value:t[m],typeField:u.oneOf.typeField??to,valueField:u.oneOf.valueField??So,properties:u.oneOf.properties,autoFocus:v===I,context:g},`array_one_of_${m}`),[g,I,u.oneOf,e,t]),w=n.jsx(Ce,{icon:we(u),required:u.validation?.required,title:u.name,className:"text-text-secondary dark:text-text-secondary-dark"}),k=Object.keys(u.oneOf.properties)[0],K=n.jsx(No,{value:t,name:e,addLabel:u.name?"Add entry to "+u.name:"Add entry",buildEntry:p,onInternalIdAdded:b,disabled:l||!!u.disabled,includeAddButton:!u.disabled,setFieldValue:s,newDefaultEntry:{[u.oneOf.typeField??to]:k,[u.oneOf.valueField??So]:Eo(u.oneOf.properties[k])}});return n.jsxs(n.Fragment,{children:[!d&&n.jsx(fn,{className:"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",initiallyExpanded:h,title:w,children:K}),d&&K,n.jsx(Se,{includeDescription:A,showError:i,error:c,disabled:y,property:u})]})}function Iz({name:e,index:t,value:c,typeField:i,valueField:l,properties:a,autoFocus:s,context:d}){const u=c&&c[i],[A,_]=f.useState(u??void 0),g=Fe.useFormikContext();f.useEffect(()=>{u||w(Object.keys(a)[0])},[]),f.useEffect(()=>{u!==A&&_(u)},[u]);const y=A?a[A]:void 0,h=Object.entries(a).map(([k,K])=>({id:k,label:K.name??k})),I=`${e}.${i}`,b=`${e}.${l}`,p=y?{propertyKey:b,property:y,context:d,autoFocus:s,partOfArray:!1,partOfBlock:!0,tableMode:!1}:void 0,w=k=>{const K=k?a[k]:void 0;_(k),g.setFieldTouched(I),g.setFieldValue(I,k),g.setFieldValue(b,K?Eo(K):null)};return n.jsxs("div",{className:E(He,"bg-transparent p-4 my-4 py-8"),children:[n.jsx(Fe.FastField,{required:!0,name:I,children:k=>n.jsx(n.Fragment,{children:n.jsx(xe,{className:"mb-2",placeholder:n.jsx(j,{variant:"caption",className:"px-4 py-2 font-medium",children:"Type"}),size:"small",position:"item-aligned",value:k.field.value!==void 0&&k.field.value!==null?k.field.value:"",renderValue:K=>n.jsx(Ee,{enumKey:K,enumValues:h,size:"small"}),onValueChange:K=>{w(K)},children:h.map(K=>n.jsx(Re,{value:String(K.id),children:n.jsx(Ee,{enumKey:K.id,enumValues:h,size:"small"})},K.id))})})}),p&&n.jsx(bn,{...p},`form_control_${e}_${A}`)]})}const bz=new Gt;try{_n.use(_n.Plugins.AutoResize,{min:100}),_n.unuse(_n.Plugins.FontUnderline),_n.unuse(_n.Plugins.Clear)}catch{}function Si({propertyKey:e,value:t,setValue:c,error:i,showError:l,disabled:a,autoFocus:s,touched:d,property:u,tableMode:A,includeDescription:_,context:g}){const[y,h]=f.useState(t),I=f.useRef(t);En("MarkdownFieldBinding",pz);const b=f.useDeferredValue({internalValue:y,value:t});return f.useEffect(()=>{I.current=t,h(t)},[t]),f.useEffect(()=>{b.internalValue!==I.current&&c(b.internalValue)},[b]),n.jsxs(n.Fragment,{children:[!A&&n.jsx(j,{variant:"caption",className:"flex-grow",children:n.jsx(Ce,{icon:we(u),required:u.validation?.required,title:u.name,className:"text-text-secondary dark:text-text-secondary-dark ml-3.5"})}),n.jsx(_n,{value:y??"",className:E(qe,a?en:ze,"text-base"),readOnly:a,renderHTML:p=>bz.render(p),view:{menu:!0,md:!0,html:!1},onChange:({html:p,text:w})=>{h(w??null)}}),n.jsx(Se,{includeDescription:_,showError:l,error:i,disabled:a,property:u})]})}const pz=`
|
|
3
|
+
`)?r.jsx("div",{className:"overflow-x-scroll",children:n.map((i,s)=>r.jsxs(d.Fragment,{children:[r.jsx("span",{children:i}),s!==n.length-1&&r.jsx("br",{})]},`string_preview_${s}`))}):r.jsx(r.Fragment,{children:t})}}}function Wr({propertyKey:e,value:t,property:o,size:a}){const n=Z(),i=He({propertyKey:e,property:o,propertyValue:t,fields:n.propertyConfigs});if(!i.of)throw Error(`You need to specify an 'of' prop (or specify a custom field) in your array property ${e}`);if(i.dataType!=="array")throw Error("Picked wrong preview component ArrayPreview");const s=t;if(!s)return null;const l=a==="medium"?"small":"tiny";return r.jsx("div",{className:"flex flex-col gap-2",children:s&&s.map((c,p)=>{const f=i.resolvedProperties[p]??i.resolvedProperties[p]??(Array.isArray(i.of)?i.of[p]:i.of);return f?r.jsx(d.Fragment,{children:r.jsx("div",{className:u.cn(u.defaultBorderMixin,"m-1 border-b last:border-b-0"),children:r.jsx(oe,{children:r.jsx(be,{propertyKey:e,value:c,property:f,size:l})})})},"preview_array_"+p):null})})}const Oe=Ar.memo(function(t){const o=t.reference;return o instanceof Te?r.jsx(Li,{...t}):(console.warn("Reference preview received value of type",typeof o),r.jsx(rr,{onClick:t.onClick,size:t.size,children:r.jsx(he,{error:"Unexpected value. Click to edit",tooltip:JSON.stringify(o)})}))},ji);function ji(e,t){return e.disabled===t.disabled&&e.size===t.size&&e.onHover===t.onHover&&e.reference?.id===t.reference?.id&&e.reference?.path===t.reference?.path&&e.allowEntityNavigation===t.allowEntityNavigation}function Li({disabled:e,reference:t,previewProperties:o,size:a,onHover:n,onClick:i,allowEntityNavigation:s=!0}){const l=Z(),p=le().getCollection(t.path);if(!p){if(l.components?.missingReference)return r.jsx(l.components.missingReference,{path:t.path});throw Error(`Couldn't find the corresponding collection view for the path: ${t.path}`)}return r.jsx(qi,{reference:t,collection:p,previewProperties:o,size:a,disabled:e,allowEntityNavigation:s,onClick:i,onHover:n})}function qi({reference:e,collection:t,previewProperties:o,size:a,disabled:n,allowEntityNavigation:i,onClick:s,onHover:l}){const c=Z(),p=Ze(),{entity:f,dataLoading:h,dataLoadingError:g}=Gr({path:e.path,entityId:e.id,collection:t,useCache:!0});f&&ya.set(e.pathWithId,f);const m=f??ya.get(e.pathWithId),A=d.useMemo(()=>Be({collection:t,path:e.path,values:m?.values,fields:c.propertyConfigs}),[t]),b=d.useMemo(()=>Ho(A,c.propertyConfigs,o,a==="small"||a==="medium"?3:1),[o,A,a]);let y;return A?(e?m&&!m.values?y=r.jsx(he,{error:"Reference does not exist",tooltip:e.path}):y=r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex flex-col flex-grow w-full max-w-[calc(100%-52px)] m-1",children:[a!=="tiny"&&(e?r.jsx("div",{className:`${a!=="medium"?"block whitespace-nowrap overflow-hidden truncate":""}`,children:r.jsx(u.Typography,{variant:"caption",className:"font-mono",children:e.id})}):r.jsx(u.Skeleton,{})),b&&b.map(k=>{const v=A.properties[k];return v?r.jsx("div",{className:b.length>1?"my-0.5":"my-0",children:m?r.jsx(be,{propertyKey:k,value:We(m.values,k),property:v,size:"tiny"}):r.jsx(bt,{property:v,size:"tiny"})},"ref_prev_"+k):null})]}),r.jsx("div",{className:`my-${a==="tiny"?2:4}`,children:!n&&m&&i&&r.jsx(u.Tooltip,{title:`See details for ${m.id}`,children:r.jsx(u.IconButton,{color:"inherit",size:"small",onClick:k=>{k.stopPropagation(),c.onAnalyticsEvent?.("entity_click_from_reference",{path:m.path,entityId:m.id}),p.open({entityId:m.id,path:m.path,collection:A,updateUrl:!0})},children:r.jsx(u.KeyboardTabIcon,{size:"small"})})})})]}):y=r.jsx(he,{error:"Reference not set"}),r.jsx(rr,{onClick:n?void 0:s,onHover:n?void 0:l,size:a,children:y})):r.jsx(he,{error:"Could not find collection with id "+A})}function rr({children:e,onHover:t,size:o,onClick:a}){return r.jsx(u.Typography,{variant:"label",className:u.cn("bg-opacity-70 bg-gray-100 dark:bg-gray-800 dark:bg-opacity-60","w-full","flex","rounded-md","overflow-hidden",t?"hover:bg-opacity-90 dark:hover:bg-opacity-90":"",o==="medium"?"p-2":"p-1",o==="tiny"?"items-center":"","transition-colors duration-300 ease-in-out ",a?"cursor-pointer":""),style:{tabindex:0},onClick:n=>{a&&(n.preventDefault(),a(n))},children:e})}const ya=new Map;function wa({propertyKey:e,value:t,property:o,size:a}){const n=Z(),i=He({propertyKey:e,property:o,propertyValue:t,fields:n.propertyConfigs});if(Array.isArray(i?.of))throw Error("Using array properties instead of single one in `of` in ArrayProperty");if(i?.dataType!=="array"||!i.of||i.of.dataType!=="reference")throw Error("Picked wrong preview component ArrayOfReferencesPreview");const s=a==="medium"?"small":"tiny";return r.jsx("div",{className:"flex flex-col w-full",children:t&&t.map((l,c)=>{const p=i.of;return r.jsx("div",{className:"mt-1 mb-1 w-full",children:r.jsx(Oe,{disabled:!p.path,previewProperties:p.previewProperties,size:s,reference:l})},`preview_array_ref_${e}_${c}`)})})}function va({propertyKey:e,value:t,property:o,size:a}){const n=Z(),i=He({propertyKey:e,property:o,propertyValue:t,fields:n.propertyConfigs});if(Array.isArray(i.of))throw Error("Using array properties instead of single one in `of` in ArrayProperty");if(i.dataType!=="array"||!i.of||i.of.dataType!=="string")throw Error("Picked wrong preview component ArrayOfStorageComponentsPreview");const s=a==="medium"?"small":"tiny";return r.jsx("div",{className:"flex flex-wrap gap-2",children:t&&t.map((l,c)=>r.jsx(oe,{children:r.jsx(be,{propertyKey:e,value:l,property:i.of,size:s})},`preview_array_storage_${e}_${c}`))})}function Hr({name:e,value:t,enumValues:o,size:a}){return r.jsx("div",{className:"flex flex-wrap gap-1.5",children:t&&t.map((n,i)=>r.jsx(oe,{children:r.jsx(ke,{enumKey:n,enumValues:o,size:a!=="medium"?"small":"medium"})},`preview_array_ref_${e}_${i}`))})}function Jr({propertyKey:e,value:t,property:o,size:a}){if(o.dataType!=="array")throw Error("Picked wrong preview component ArrayEnumPreview");const n=o.of;if(!n.enumValues)throw Error("Picked wrong preview component ArrayEnumPreview");return t?r.jsx(Hr,{name:e,value:t,enumValues:n.enumValues,size:a}):null}function ka({propertyKey:e,value:t,property:o,size:a}){const n=Z(),i=He({propertyKey:e,property:o,propertyValue:t,fields:n.propertyConfigs});if(Array.isArray(i.of))throw Error("Using array properties instead of single one in `of` in ArrayProperty");if(!i.of||i.dataType!=="array"||i.of.dataType!=="string")throw Error("Picked wrong preview component ArrayOfStringsPreview");if(t&&!Array.isArray(t))return r.jsx("div",{children:`Unexpected value: ${t}`});const s=i.of;return r.jsx("div",{className:"flex flex-col gap-2",children:t&&t.map((l,c)=>r.jsx("div",{children:r.jsx(oe,{children:r.jsx($r,{propertyKey:e,property:s,value:l,size:a})})},`preview_array_strings_${e}_${c}`))})}function _a({propertyKey:e,value:t,property:o,size:a}){const n=Z(),i=He({propertyKey:e,property:o,propertyValue:t,fields:n.propertyConfigs});if(i?.dataType!=="array")throw Error("Picked wrong preview component ArrayPreview");if(!i?.oneOf)throw Error(`You need to specify an 'of' or 'oneOf' prop (or specify a custom field) in your array property ${e}`);const s=t;if(!s)return null;const l=a==="medium"?"small":"tiny",c=i.oneOf.typeField??Et,p=i.oneOf.valueField??Lt,f=i.oneOf.properties;return r.jsx("div",{className:"flex flex-col",children:s&&s.map((h,g)=>r.jsx(d.Fragment,{children:r.jsx("div",{className:u.cn(u.defaultBorderMixin,"m-1 border-b last:border-b-0"),children:r.jsx(oe,{children:h&&r.jsx(be,{propertyKey:e,value:h[p],property:i.resolvedProperties[g]??f[h[c]],size:l})})})},"preview_array_"+h+"_"+g))})}function xa({propertyKey:e,value:t,property:o,size:a}){if(o.dataType!=="map")throw Error("Picked wrong preview component MapPropertyPreview");const n=o;if(!n.properties||Object.keys(n.properties??{}).length===0)return r.jsx(Zr,{value:t});if(!t)return null;const i=Object.keys(n.properties);return a==="tiny"?r.jsx("div",{className:"w-full flex flex-col space-y-1 md:space-y-2",children:i.map((s,l)=>r.jsx("div",{children:r.jsx(oe,{children:r.jsx(be,{propertyKey:s,value:t[s],property:n.properties[s],size:a})},"map_preview_"+n.name+s+l)},`map_${s}`))}):r.jsx("div",{className:"flex flex-col gap-1 w-full",children:i&&i.map((s,l)=>{const c=n.properties[s];return r.jsxs("div",{className:u.cn(u.defaultBorderMixin,"last:border-b-0 border-b"),children:[r.jsxs("div",{className:"flex flex-row pt-0.5 pb-0.5 gap-2",children:[r.jsx("div",{className:"min-w-[140px] w-[25%] py-1",children:r.jsx(u.Typography,{variant:"caption",className:"font-mono break-words",color:"secondary",children:c.name})}),r.jsx("div",{className:"flex-grow max-w-[75%]",children:r.jsx(oe,{children:!(c.dataType==="map"||c==="array")&&r.jsx(be,{propertyKey:s,value:t[s],property:c,size:a})})})]}),(c.dataType==="map"||c==="array")&&r.jsx("div",{className:u.cn(u.defaultBorderMixin,"border-l pl-4 ml-2 my-2"),children:r.jsx(be,{propertyKey:s,value:t[s],property:c,size:a})})]},`map_preview_table_${s}}`)})})}function Zr({value:e}){return typeof e!="object"?null:e?r.jsx("div",{className:"flex flex-col gap-1 w-full",children:Object.entries(e).map(([t,o])=>r.jsxs("div",{className:u.cn(u.defaultBorderMixin,"last:border-b-0 border-b"),children:[r.jsxs("div",{className:"flex flex-row pt-0.5 pb-0.5 gap-2",children:[r.jsx("div",{className:"min-w-[140px] w-[25%] py-1",children:r.jsx(u.Typography,{variant:"caption",className:"font-mono break-words",color:"secondary",children:t})},`table-cell-title-${t}-${t}`),r.jsx("div",{className:"flex-grow max-w-[75%]",children:typeof o!="object"&&r.jsx(u.Typography,{children:r.jsx(oe,{children:o&&o.toString()})})})]}),typeof o=="object"&&r.jsx("div",{className:u.cn(u.defaultBorderMixin,"border-l pl-4"),children:r.jsx(Zr,{value:o})})]},`map_preview_table_${t}}`))}):r.jsx(nt,{})}function Ca({date:e}){const t=Z(),o=t?.locale?Po[t?.locale]:void 0,a=t?.dateTimeFormat??Yo,n=e?Mn.format(e,a,{locale:o}):"";return r.jsx(r.Fragment,{children:n})}function Ea({value:e}){return r.jsx(u.Checkbox,{checked:e,color:"secondary"})}function Ba({value:e,property:t,size:o}){if(t.enumValues){const a=e,n=qe(t.enumValues);return n?r.jsx(ke,{enumKey:a,enumValues:n,size:o!=="medium"?"small":"medium"}):r.jsx(r.Fragment,{children:e})}else return r.jsx(r.Fragment,{children:e})}const be=d.memo(function(t){const o=Z();let a;const{property:n,propertyKey:i,value:s,size:l,height:c,width:p}=t,f=Ee({propertyKey:i,propertyOrBuilder:n,propertyValue:s,fields:o.propertyConfigs});if(s===void 0||f===null)a=r.jsx(nt,{});else if(f.Preview)a=d.createElement(f.Preview,{propertyKey:i,value:s,property:f,size:l,height:c,width:p,customProps:f.customProps});else if(s===null)a=r.jsx(nt,{});else if(f.dataType==="string"){const h=f;typeof s=="string"?h.url?typeof h.url=="boolean"?a=r.jsx(Tt,{size:t.size,url:s}):typeof h.url=="string"&&(a=r.jsx(Tt,{size:t.size,url:s,previewType:h.url})):h.storage?a=r.jsx(ga,{storeUrl:f.storage?.storeUrl??!1,size:t.size,storagePathOrDownloadUrl:s}):h.markdown?a=r.jsx(u.Markdown,{source:s}):a=r.jsx($r,{...t,property:h,value:s}):a=it(i,f.dataType,s)}else if(f.dataType==="array")if(s instanceof Array){const h=f;if(!h.of&&!h.oneOf)throw Error(`You need to specify an 'of' or 'oneOf' prop (or specify a custom field) in your array property ${i}`);h.of?Array.isArray(h.of)?a=r.jsx(Wr,{...t,value:s,property:f}):h.of.dataType==="reference"?a=r.jsx(wa,{...t,value:s,property:f}):h.of.dataType==="string"?h.of.enumValues?a=r.jsx(Jr,{...t,value:s,property:f}):h.of.storage?a=r.jsx(va,{...t,value:s,property:f}):a=r.jsx(ka,{...t,value:s,property:f}):h.of.dataType==="number"&&h.of.enumValues?a=r.jsx(Jr,{...t,value:s,property:f}):a=r.jsx(Wr,{...t,value:s,property:f}):h.oneOf&&(a=r.jsx(_a,{...t,value:s,property:f}))}else a=it(i,f.dataType,s);else f.dataType==="map"?typeof s=="object"?a=r.jsx(xa,{...t,property:f}):a=it(i,f.dataType,s):f.dataType==="date"?s instanceof Date?a=r.jsx(Ca,{date:s}):a=it(i,f.dataType,s):f.dataType==="reference"?typeof f.path=="string"?s instanceof Te?a=r.jsx(Oe,{disabled:!f.path,previewProperties:f.previewProperties,size:t.size,reference:s}):a=it(i,f.dataType,s):a=r.jsx(nt,{}):f.dataType==="boolean"?typeof s=="boolean"?a=r.jsx(Ea,{value:s}):a=it(i,f.dataType,s):f.dataType==="number"?typeof s=="number"?a=r.jsx(Ba,{...t,value:s,property:f}):a=it(i,f.dataType,s):a=JSON.stringify(s);return a??r.jsx(nt,{})},ne);function it(e,t,o){return console.warn(`Unexpected value for property ${e}, of type ${t}`,o),r.jsx(he,{title:"Unexpected value",error:`${JSON.stringify(o)}`})}function Ui({propertyKey:e,value:t,property:o,size:a}){const n=Z(),i=He({propertyKey:e,property:o,propertyValue:t,fields:n.propertyConfigs});if(Array.isArray(i?.of))throw Error("Using array properties instead of single one in `of` in ArrayProperty");if(i?.dataType!=="array"||!i.of||i.of.dataType!=="map")throw Error("Picked wrong preview component ArrayOfMapsPreview");const s=i.of,l=s.properties;if(!l)throw Error(`You need to specify a 'properties' prop (or specify a custom field) in your map property ${e}`);const c=t,p=s.previewProperties;if(!c)return null;let f=p;return(!f||!f.length)&&(f=Object.keys(l),a&&(f=f.slice(0,3))),r.jsx("div",{className:"table-auto text-xs",children:r.jsx("div",{children:c&&c.map((h,g)=>r.jsx("div",{className:"border-b last:border-b-0",children:f&&f.map(m=>r.jsx("div",{className:"table-cell",children:r.jsx(oe,{children:r.jsx(be,{propertyKey:m,value:h[m],property:l[m],size:"small"})})},`table-cell-${m}`))},`table_${h}_${g}`))})})}const $i=Ar.memo(function({builder:t}){const[o,a]=d.useState(!0),[n,i]=d.useState(null);return d.useEffect(()=>{let s=!1;return t.then(l=>{s||(a(!1),i(l))}).catch(l=>{a(!1),console.error(l)}),()=>{s=!0}},[t]),o?r.jsx(u.Skeleton,{}):r.jsx(Ar.Fragment,{children:n})});function Xr({entity:e,collection:t,path:o,className:a}){const n=Z(),i=d.useMemo(()=>Be({collection:t,path:o,entityId:e.id,values:e.values,fields:n.propertyConfigs}),[t,o,e]),s=Z(),l=i.properties;return r.jsx("div",{className:"w-full "+a,children:r.jsxs("div",{className:"w-full mb-4",children:[r.jsxs("div",{className:u.cn(u.defaultBorderMixin,"flex justify-between py-2 border-b last:border-b-0"),children:[r.jsx("div",{className:"flex items-center w-1/4",children:r.jsx("span",{className:"pl-2 text-sm text-gray-600",children:"Id"})}),r.jsxs("div",{className:"flex-grow p-2 ml-2 w-3/4 text-gray-900 dark:text-white min-h-[56px] flex items-center",children:[r.jsx("span",{className:"flex-grow mr-2",children:e.id}),s?.entityLinkBuilder&&r.jsx("a",{href:s.entityLinkBuilder({entity:e}),rel:"noopener noreferrer",target:"_blank",children:r.jsx(u.IconButton,{children:r.jsx(u.OpenInNewIcon,{size:"small"})})})]})]}),Object.entries(l).map(([c,p])=>{const f=e.values[c];return r.jsxs("div",{className:u.cn(u.defaultBorderMixin,"flex justify-between py-2 border-b last:border-b-0"),children:[r.jsx("div",{className:"flex items-center w-1/4",children:r.jsx("span",{className:"pl-2 text-sm text-gray-600",children:p.name})}),r.jsx("div",{className:"flex-grow p-2 ml-2 w-3/4 text-gray-900 dark:text-white min-h-[56px] flex items-center",children:r.jsx(be,{propertyKey:c,value:f,property:p,size:"medium"})})]},`reference_previews_${c}`)})]})})}function Wi(e){const t=d.useRef(null),{disabled:o,value:a,multiline:n,updateValue:i,focused:s}=e,l=d.useRef(a),[c,p]=d.useState(a),f=d.useRef(!1);d.useEffect(()=>{l.current!==a&&a!==c&&p(a),l.current=a},[a]);const h=d.useCallback(()=>{!a&&!c||c!==a&&(l.current=c,i(c))},[c,i,a]);return Ht(c,h,!s,2e3),d.useEffect(()=>{t.current&&s&&!f.current?(f.current=!0,t.current.focus({preventScroll:!0}),t.current.selectionStart=t.current.value.length,t.current.selectionEnd=t.current.value.length):f.current=s},[s,t]),r.jsx(u.TextareaAutosize,{ref:t,style:{padding:0,margin:0,width:"100%",color:"unset",fontWeight:"unset",lineHeight:"unset",fontSize:"unset",fontFamily:"unset",background:"unset",border:"unset",resize:"none",outline:"none"},value:c??"",onChange:g=>{const m=g.target.value;(n||!m.endsWith(`
|
|
4
|
+
`))&&p(m)},onFocus:()=>{f.current=!0},onBlur:()=>{f.current=!1,h()}})}function Kr(e){const{name:t,enumValues:o,error:a,internalValue:n,disabled:i,small:s,focused:l,updateValue:c,multiple:p,valueType:f}=e,h=Array.isArray(n)&&p||!Array.isArray(n)&&!p,g=d.useRef(null);d.useEffect(()=>{g.current&&l&&g.current?.focus({preventScroll:!0})},[l,g]);const m=d.useCallback(b=>{if(f==="number")if(p){const y=b.map(k=>parseFloat(k));c(y)}else c(parseFloat(b));else if(f==="string")c(b||null);else throw Error("Missing mapping in TableSelect")},[p,c,f]),A=(b,y)=>p&&Array.isArray(b)?r.jsx(Hr,{value:b,name:t,enumValues:o,size:s?"small":"medium"},`${b}-${y}`):r.jsx(ke,{enumKey:b,enumValues:o,size:s?"small":"medium"},`${b}-${y}`);return p?r.jsx(u.MultiSelect,{inputRef:g,containerClassName:"w-full h-full",className:"w-full h-full p-0 bg-transparent",position:"item-aligned",disabled:i,padding:!1,includeFocusOutline:!1,value:h?n.map(b=>b.toString()):[],onMultiValueChange:m,renderValue:A,children:o?.map(b=>r.jsx(u.MultiSelectItem,{value:String(b.id),children:r.jsx(ke,{enumKey:b.id,enumValues:o,size:s?"small":"medium"})},b.id))}):r.jsx(u.Select,{inputRef:g,className:"w-full h-full p-0 bg-transparent",position:"item-aligned",disabled:i,multiple:p,padding:!1,includeFocusOutline:!1,value:h?p?n.map(b=>b.toString()):n?.toString():p?[]:"",onValueChange:m,onMultiValueChange:m,renderValue:A,children:o?.map(b=>r.jsx(u.SelectItem,{value:String(b.id),children:r.jsx(ke,{enumKey:b.id,enumValues:o,size:s?"small":"medium"})},b.id))})}function Hi(e){const{align:t,value:o,updateValue:a,focused:n}=e,i=o&&typeof o=="number"?o.toString():"",[s,l]=d.useState(i),c=d.useRef(o);d.useEffect(()=>{c.current!==o&&String(o)!==s&&l(o?o.toString():null),c.current=o},[o]);const p=d.useCallback(()=>{if(s!==i)if(s!=null){const g=parseFloat(s);if(isNaN(g))return;g!=null&&a(g)}else a(null)},[s,o]);Ht(s,p,!n,2e3),d.useEffect(()=>{!n&&i!==s&&l(o!=null?o.toString():null)},[o,n]);const f=d.useRef(null);d.useEffect(()=>{f.current&&n&&f.current.focus({preventScroll:!0})},[n,f]);const h=/^-?[0-9]+[,.]?[0-9]*$/;return r.jsx("input",{ref:f,className:"w-full text-right p-0 m-0 bg-transparent border-none resize-none outline-none font-normal leading-normal text-unset",style:{textAlign:t},value:s??"",onChange:g=>{const m=g.target.value.replace(",",".");m.length===0&&l(null),(h.test(m)||m.startsWith("-"))&&l(m)}})}function Ji(e){const{internalValue:t,updateValue:o,focused:a}=e,n=d.useRef(null);return d.useEffect(()=>{n.current&&a&&n.current.focus({preventScroll:!0})},[a,n]),r.jsx(u.BooleanSwitch,{ref:n,size:"small",value:!!t,onValueChange:o})}function Zi(e){const{locale:t}=Z(),{disabled:o,error:a,mode:n,internalValue:i,updateValue:s}=e;return r.jsx(u.DateTimeField,{value:i??void 0,onChange:l=>s(l),size:"medium",invisible:!0,className:"w-full h-full",inputClassName:"w-full h-full",mode:n,locale:t})}class oe extends d.Component{constructor(t){super(t),this.state={error:null}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,o){console.error(t)}render(){return this.state.error?r.jsxs("div",{className:"flex flex-col m-2",children:[r.jsxs("div",{className:"flex items-center m-2",children:[r.jsx(u.ErrorIcon,{color:"error",size:"small"}),r.jsx("div",{className:"ml-4",children:"Error"})]}),r.jsx(u.Typography,{variant:"caption",children:this.state.error?.message??"See the error in the console"})]}):this.props.children}}async function Xi(e,t,o,a,n,i,s,l){let c;return typeof e=="function"?(c=await e({path:n,entityId:a,values:o,property:i,file:s,storage:t,propertyKey:l}),c||console.warn("Storage callback returned empty result. Using default name value")):c=Sa(s,e,a,l,n),c||(c=mt()+"_"+s.name),c}function Ki(e,t,o,a,n,i,s,l){let c;return typeof e=="function"?(c=e({path:n,entityId:a,values:o,property:i,file:s,storage:t,propertyKey:l}),c||console.warn("Storage callback returned empty result. Using default name value")):c=Sa(s,e,a,l,n),c||(c=mt()+"_"+s.name),c}function Sa(e,t,o,a,n){const i=e.name.split(".").pop();let s=t.replace("{entityId}",o).replace("{propertyKey}",a).replace("{rand}",mt()).replace("{file}",e.name).replace("{file.type}",e.type).replace("{path}",n);if(i){s=s.replace("{file.ext}",i);const l=e.name.replace(`.${i}`,"");s=s.replace("{file.name}",l)}return s||(s=mt()+"_"+e.name),s}function Ia({entityId:e,entityValues:t,path:o,value:a,property:n,propertyKey:i,storageSource:s,disabled:l,onChange:c}){const p=n.dataType==="string"?n.storage:n.dataType==="array"&&n.of.dataType==="string"?n.of.storage:void 0,f=n.dataType==="array";if(!p)throw Error("Storage meta must be specified");const h=p?.metadata,g=f?"small":"medium",m=p?.imageCompression,A=(f?a??[]:a?[a]:[]).map(x=>({id:Rr(),storagePathOrDownloadUrl:x,metadata:h,size:g})),[b,y]=d.useState(a),[k,v]=d.useState(A);d.useEffect(()=>{ne(b,a)||(y(a),v(A))},[A,a,b]);const _=d.useCallback(async x=>{if(p.fileName){const F=await Xi(p.fileName,p,t,e,o,n,x,i);if(!F||F.length===0)throw Error("You need to return a valid filename");return F}return mt()+"_"+x.name},[e,t,o,n,i,p]),E=d.useCallback(x=>Ki(p.storagePath,p,t,e,o,n,x,i)??"/",[e,t,o,n,i,p]),C=d.useCallback(async(x,F,S)=>{console.debug("onFileUploadComplete",x,F);let P=x;if(p.storeUrl&&(P=(await s.getDownloadURL(x)).url),p.postProcess&&P&&(P=await p.postProcess(P)),!P){console.warn("uploadPathOrDownloadUrl is null");return}let I;F.storagePathOrDownloadUrl=P,F.metadata=S,I=[...k],I=Fa(I),v(I);const M=I.filter(L=>!!L.storagePathOrDownloadUrl).map(L=>L.storagePathOrDownloadUrl);c(f?M:M?M[0]:null)},[k,f,c,p,s]),B=d.useCallback(async x=>{if(!x.length||l)return;let F;if(f)F=[...k,...await Promise.all(x.map(async S=>(m&&eo(S)&&(S=await Ta(S,m)),{id:Rr(),file:S,fileName:await _(S),metadata:h,size:g})))];else{let S=x[0];m&&eo(S)&&(S=await Ta(S,m)),F=[{id:Rr(),file:S,fileName:await _(S),metadata:h,size:g}]}F=Fa(F),v(F)},[l,_,k,h,f,g]);return{internalValue:k,setInternalValue:v,storage:p,fileNameBuilder:_,storagePathBuilder:E,onFileUploadComplete:C,onFilesAdded:B,multipleFilesSupported:f}}function Fa(e){return e.filter((t,o)=>(e.map(a=>a.storagePathOrDownloadUrl).indexOf(t.storagePathOrDownloadUrl)===o||!t.storagePathOrDownloadUrl)&&(e.map(a=>a.file).indexOf(t.file)===o||!t.file))}function Rr(){return Math.floor(Math.random()*Math.floor(Number.MAX_SAFE_INTEGER))}const Na={"image/jpeg":"JPEG","image/png":"PNG","image/webp":"WEBP"},eo=e=>Na[e.type]?Na[e.type]:null,Ri=100,Ta=(e,t)=>new Promise(o=>{const a=t.quality===void 0?Ri:t.quality,n=a>=0&&a<=100?a:100,i=eo(e);if(!i)throw Error("resizeAndCompressImage: Unsupported image format");On.imageFileResizer(e,t.maxWidth||Number.MAX_VALUE,t.maxHeight||Number.MAX_VALUE,i,n,0,s=>o(s),"file")});function Pa({storagePath:e,entry:t,metadata:o,onFileUploadComplete:a,imageSize:n,simple:i}){const s=ht(),l=Xe(),[c,p]=d.useState(),[f,h]=d.useState(!1),g=d.useRef(!1),m=d.useRef(!1),A=d.useCallback((b,y)=>{m.current||(m.current=!0,p(void 0),h(!0),s.uploadFile({file:b,fileName:y,path:e,metadata:o}).then(async({path:k})=>{console.debug("Upload successful"),await a(k,t,o),g.current&&h(!1)}).catch(k=>{console.warn("Upload error",k),g.current&&(p(k),h(!1),l.open({type:"error",message:"Error uploading file: "+k.message}))}).finally(()=>{m.current=!1}))},[t,o,a,s,e]);return d.useEffect(()=>(g.current=!0,t.file&&A(t.file,t.fileName),()=>{g.current=!1}),[t.file,t.fileName,A]),i?r.jsx("div",{className:`m-4 w-${n} h-${n}`,children:f&&r.jsx(u.Skeleton,{className:`w-${n} h-${n}`})}):r.jsxs("div",{className:u.cn(u.paperMixin,"relative m-4 border-box flex items-center justify-center",`min-w-[${n}px] min-h-[${n}px]`),children:[f&&r.jsx(u.Skeleton,{className:"w-full h-full"}),c&&r.jsx(he,{title:"Error uploading file",error:c})]})}function Ma({showError:e,disabled:t,showExpandIcon:o,selected:a,openPopup:n,children:i}){const s=d.useRef(null),l=d.useCallback(()=>{if(n){const p=s&&s?.current?.getBoundingClientRect();n(p)}},[]),c=d.useRef();return d.useEffect(()=>{c.current&&a&&c.current.focus({preventScroll:!0})},[a]),r.jsx(r.Fragment,{children:(e||!t&&o)&&r.jsxs("div",{ref:s,className:"absolute top-0.5 right-0.5 flex items-center",children:[a&&i,a&&!t&&o&&r.jsx(u.IconButton,{ref:c,color:"inherit",size:"small",onClick:l,children:r.jsxs("svg",{fill:"#888",width:"20",height:"20",viewBox:"0 0 24 24",children:[r.jsx("path",{className:"cls-2",d:"M20,5a1,1,0,0,0-1-1L14,4h0a1,1,0,0,0,0,2h2.57L13.29,9.29a1,1,0,0,0,0,1.42,1,1,0,0,0,1.42,0L18,7.42V10a1,1,0,0,0,1,1h0a1,1,0,0,0,1-1Z"}),r.jsx("path",{className:"cls-2",d:"M10.71,13.29a1,1,0,0,0-1.42,0L6,16.57V14a1,1,0,0,0-1-1H5a1,1,0,0,0-1,1l0,5a1,1,0,0,0,1,1h5a1,1,0,0,0,0-2H7.42l3.29-3.29A1,1,0,0,0,10.71,13.29Z"})]})}),e&&r.jsx(fa,{side:"left",className:"flex items-center justify-center",style:{width:32,height:32},title:e.message,children:r.jsx(u.ErrorOutlineIcon,{size:"small",color:"error"})})]})})}const es="max-w-full box-border relative pt-[2px] items-center border border-transparent outline-none rounded-md duration-200 ease-[cubic-bezier(0.4,0,0.2,1)] focus:border-primary-solid",ts="pt-0 border-2 border-solid",rs="transition-colors duration-200 ease-[cubic-bezier(0,0,0.2,1)] border-2 border-solid border-green-500 bg-green-50 dark:bg-green-900",os="transition-colors duration-200 ease-[cubic-bezier(0,0,0.2,1)] border-2 border-solid border-red-500 bg-red-50 dark:bg-red-900";function as(e){const{propertyKey:t,error:o,selected:a,openPopup:n,value:i,disabled:s,property:l,entity:c,path:p,previewSize:f,updateValue:h}=e,g=ht(),{internalValue:m,setInternalValue:A,onFilesAdded:b,storage:y,onFileUploadComplete:k,storagePathBuilder:v,multipleFilesSupported:_}=Ia({entityValues:c.values,entityId:c.id,path:p,property:l,propertyKey:t,storageSource:g,onChange:h,value:i,disabled:s});return r.jsx(ns,{internalValue:m,setInternalValue:A,name:t,disabled:s,autoFocus:!1,openPopup:n,error:o,selected:a,property:l,onChange:h,entity:c,storagePathBuilder:v,storage:y,multipleFilesSupported:_,onFilesAdded:b,onFileUploadComplete:k,previewSize:f})}function ns({property:e,name:t,internalValue:o,setInternalValue:a,openPopup:n,entity:i,selected:s,error:l,onChange:c,multipleFilesSupported:p,previewSize:f,disabled:h,autoFocus:g,storage:m,onFilesAdded:A,onFileUploadComplete:b,storagePathBuilder:y}){const[k,v]=d.useState(!1),_=p&&f==="medium"?"small":f;if(p){const D=e;if(Array.isArray(D.of))throw Error("Using array properties instead of single one in `of` in ArrayProperty");if(D.of){if(D.of.dataType!=="string")throw Error("Storage field using array must be of data type string")}else throw Error("Storage field using array must be of data type string")}const E=m?.metadata,C=!!o,B=Xe(),{open:x,getRootProps:F,getInputProps:S,isDragActive:P,isDragAccept:I,isDragReject:M}=Fo.useDropzone({accept:m.acceptedFiles?m.acceptedFiles.map(D=>({[D]:[]})).reduce((D,R)=>({...D,...R}),{}):void 0,disabled:h,maxSize:m.maxSize,noClick:!0,noKeyboard:!0,onDrop:A,onDropRejected:(D,R)=>{for(const q of D)for(const $ of q.errors)B.open({type:"error",message:`Error uploading file: File is larger than ${m.maxSize} bytes`})}}),{...L}=F(),U=p?"Drag 'n' drop some files here, or click here to edit":"Drag 'n' drop a file here, or click here edit",V=p?e.of:e,X=d.useMemo(()=>At(_),[_]),H=!h&&l;return r.jsxs("div",{...L,onMouseEnter:()=>v(!0),onMouseMove:()=>v(!0),onMouseLeave:()=>v(!1),className:u.cn(es,"relative w-full h-full flex",`justify-${C?"start":"center"}`,P?ts:"",I?rs:"",M?os:""),children:[r.jsx("input",{autoFocus:g,...S()}),o.map((D,R)=>{let q;return D.storagePathOrDownloadUrl?q=r.jsx(is,{property:V,value:D.storagePathOrDownloadUrl,entity:i,size:_},`storage_preview_${R}`):D.file&&(q=r.jsx(Pa,{entry:D,metadata:E,storagePath:y(D.file),onFileUploadComplete:b,imageSize:X,simple:!0},`storage_progress_${R}`)),q}),!o&&r.jsx("div",{className:"flex-grow m-2 max-w-[200px]",onClick:x,children:r.jsx(u.Typography,{className:"text-gray-400 dark:text-gray-600",variant:"body2",align:"center",children:U})}),r.jsx(Ma,{showError:H,disabled:h,showExpandIcon:!0,selected:s,openPopup:h?void 0:n,children:r.jsx(u.IconButton,{color:"inherit",size:"small",onClick:x,children:r.jsx(u.EditIcon,{size:"small",className:"text-gray-500"})})})]})}function is({property:e,value:t,size:o,entity:a}){return r.jsx("div",{className:"relative m-2",children:t&&r.jsx(oe,{children:r.jsx(be,{propertyKey:"ignore",value:t,property:e,size:o})})})}function Qa(e){const t=Z(),o=le(),{path:a}=e,n=o.getCollection(a);if(!n){if(t.components?.missingReference)return r.jsx(t.components.missingReference,{path:a});throw Error(`Couldn't find the corresponding collection view for the path: ${a}`)}return r.jsx(ss,{...e,collection:n})}function ss(e){const{name:t,internalValue:o,updateValue:a,multiselect:n,path:i,size:s,previewProperties:l,title:c,disabled:p,forceFilter:f,collection:h}=e,[g,m]=d.useState(!1),A=d.useCallback(()=>m(!0),[]),b=d.useCallback(()=>m(!1),[]),y=d.useCallback(F=>{a(F?Le(F):null)},[a]),k=d.useCallback(F=>{a(F.map(S=>Le(S)))},[a]),v=o?Array.isArray(o)?o.map(F=>F.id):o.id?[o.id]:[]:[],_=kt({multiselect:n,path:i,collection:h,onMultipleEntitiesSelected:k,onSingleEntitySelected:y,selectedEntityIds:v,forceFilter:f}),E=d.useCallback(()=>{p||_.open()},[p,_]),C=!o||Array.isArray(o)&&o.length===0,B=()=>o instanceof Te?r.jsx(Oe,{onClick:p?void 0:E,size:Ke(s),reference:o,onHover:g,disabled:!i,previewProperties:l}):r.jsx(rr,{onClick:p?void 0:E,size:Ke(s),children:r.jsx(he,{title:"Value is not a reference.",error:"Click to edit"})}),x=()=>Array.isArray(o)?r.jsx(r.Fragment,{children:o.map((F,S)=>r.jsx("div",{className:"m-1 w-full",children:r.jsx(Oe,{onClick:p?void 0:E,size:"tiny",reference:F,onHover:g,disabled:!i,previewProperties:l})},`preview_array_ref_${t}_${S}`))}):r.jsx(he,{error:"Data is not an array of references"});return h?r.jsxs("div",{className:"w-full",onMouseEnter:A,onMouseMove:A,onMouseLeave:b,children:[o&&!n&&B(),o&&n&&x(),C&&r.jsxs(u.Button,{onClick:E,size:"small",variant:"outlined",color:"primary",children:["Edit ",c]})]}):r.jsx(he,{error:"The specified collection does not exist"})}Ce.addMethod(Ce.array,"uniqueInArray",function(e=o=>o,t){return this.test("uniqueInArray",t,o=>!o||o.length===new Set(o.map(e)).size)});function Da(e,t,o){const a={};return Object.entries(t).forEach(([n,i])=>{a[n]=Pt({property:i,customFieldValidator:o,name:n,entityId:e})}),Ce.object().shape(a)}function Pt(e){const t=e.property;if(Ae(t))throw console.error("Error in property",e),Error("Trying to create a yup mapping from a property builder. Please use resolved properties only");if(t.dataType==="string")return cs(e);if(t.dataType==="number")return ds(e);if(t.dataType==="boolean")return fs(e);if(t.dataType==="map")return ls(e);if(t.dataType==="array")return gs(e);if(t.dataType==="date")return us(e);if(t.dataType==="geopoint")return ps(e);if(t.dataType==="reference")return ms(e);throw console.error("Unsupported data type in yup mapping",t),Error("Unsupported data type in yup mapping")}function ls({property:e,entityId:t,customFieldValidator:o,name:a}){const n={},i=e.validation;e.properties&&Object.entries(e.properties).forEach(([l,c])=>{n[l]=Pt({property:c,parentProperty:e,customFieldValidator:o,name:`${a}[${l}]`,entityId:t})});const s=Ce.object().shape(n);return i?.required?s.required(i?.requiredMessage?i.requiredMessage:"Required").nullable(!0):s.nullable(!0)}function cs({property:e,parentProperty:t,customFieldValidator:o,name:a,entityId:n}){let i=Ce.string();const s=e.validation;if(e.enumValues){s?.required&&(i=i.required(s?.requiredMessage?s.requiredMessage:"Required"));const l=qe(e.enumValues);i=i.oneOf((s?.required?l:[...l,null]).map(c=>c?.id??null)).nullable(!0)}if(s){if(i=s.required?i.required(s?.requiredMessage?s.requiredMessage:"Required").nullable(!0):i.notRequired().nullable(!0),s.unique&&o&&a&&(i=i.test("unique","This value already exists and should be unique",(l,c)=>o({name:a,property:e,parentProperty:t,value:l,entityId:n}))),(s.min||s.min===0)&&(i=i.min(s.min,`${e.name} must be min ${s.min} characters long`)),(s.max||s.max===0)&&(i=i.max(s.max,`${e.name} must be max ${s.max} characters long`)),s.matches){const l=typeof s.matches=="string"?qo(s.matches):s.matches;l&&(i=i.matches(l,s.matchesMessage?{message:s.matchesMessage}:void 0))}s.trim&&(i=i.trim()),s.lowercase&&(i=i.lowercase()),s.uppercase&&(i=i.uppercase()),e.email&&(i=i.email(`${e.name} must be an email`)),e.url&&(i=i.url(`${e.name} must be a url`))}else i=i.notRequired().nullable(!0);return i}function ds({property:e,parentProperty:t,customFieldValidator:o,name:a,entityId:n}){const i=e.validation;let s=Ce.number().typeError("Must be a number");return i?(s=i.required?s.required(i.requiredMessage?i.requiredMessage:"Required").nullable(!0):s.notRequired().nullable(!0),i.unique&&o&&a&&(s=s.test("unique","This value already exists and should be unique",l=>o({name:a,property:e,parentProperty:t,value:l,entityId:n}))),(i.min||i.min===0)&&(s=s.min(i.min,`${e.name} must be higher or equal to ${i.min}`)),(i.max||i.max===0)&&(s=s.max(i.max,`${e.name} must be lower or equal to ${i.max}`)),(i.lessThan||i.lessThan===0)&&(s=s.lessThan(i.lessThan,`${e.name} must be higher than ${i.lessThan}`)),(i.moreThan||i.moreThan===0)&&(s=s.moreThan(i.moreThan,`${e.name} must be lower than ${i.moreThan}`)),i.positive&&(s=s.positive(`${e.name} must be positive`)),i.negative&&(s=s.negative(`${e.name} must be negative`)),i.integer&&(s=s.integer(`${e.name} must be an integer`))):s=s.notRequired().nullable(!0),s}function ps({property:e,parentProperty:t,customFieldValidator:o,name:a,entityId:n}){let i=Ce.object();const s=e.validation;return s?.unique&&o&&a&&(i=i.test("unique","This value already exists and should be unique",l=>o({name:a,property:e,parentProperty:t,value:l,entityId:n}))),s?.required?i=i.required(s.requiredMessage).nullable(!0):i=i.notRequired().nullable(!0),i}function us({property:e,parentProperty:t,customFieldValidator:o,name:a,entityId:n}){if(e.autoValue)return Ce.object().nullable();let i=Ce.date();const s=e.validation;return s?(i=s.required?i.required(s?.requiredMessage?s.requiredMessage:"Required"):i.notRequired(),s.unique&&o&&a&&(i=i.test("unique","This value already exists and should be unique",l=>o({name:a,property:e,parentProperty:t,value:l,entityId:n}))),s.min&&(i=i.min(s.min,`${e.name} must be after ${s.min}`)),s.max&&(i=i.max(s.max,`${e.name} must be before ${s.min}`))):i=i.notRequired(),i.transform(l=>l instanceof Date?l:null).nullable()}function ms({property:e,parentProperty:t,customFieldValidator:o,name:a,entityId:n}){let i=Ce.object();const s=e.validation;return s?(i=s.required?i.required(s?.requiredMessage?s.requiredMessage:"Required").nullable(!0):i.notRequired().nullable(!0),s.unique&&o&&a&&(i=i.test("unique","This value already exists and should be unique",l=>o({name:a,property:e,parentProperty:t,value:l,entityId:n})))):i=i.notRequired().nullable(!0),i}function fs({property:e,parentProperty:t,customFieldValidator:o,name:a,entityId:n}){let i=Ce.boolean();const s=e.validation;return s?(i=s.required?i.required(s?.requiredMessage?s.requiredMessage:"Required").nullable(!0):i.notRequired().nullable(!0),s.unique&&o&&a&&(i=i.test("unique","This value already exists and should be unique",l=>o({name:a,property:e,parentProperty:t,value:l,entityId:n})))):i=i.notRequired().nullable(!0),i}function hs(e){return e.validation?.uniqueInArray?!0:e.dataType==="map"&&e.properties?Object.entries(e.properties).filter(([t,o])=>o.validation?.uniqueInArray):!1}function gs({property:e,parentProperty:t,customFieldValidator:o,name:a,entityId:n}){let i=Ce.array();if(e.of)if(Array.isArray(e.of)){const l=e.of.map((c,p)=>({[`${a}[${p}]`]:Pt({property:c,parentProperty:e,entityId:n})})).reduce((c,p)=>({...c,...p}),{});return Ce.array().of(Ce.mixed().test("Dynamic object validation","Dynamic object validation error",(c,p)=>We(l,p.path).validate(c)))}else{i=i.of(Pt({property:e.of,parentProperty:e,entityId:n}));const l=hs(e.of);l&&(typeof l=="boolean"?i=i.uniqueInArray(c=>c,`${e.name} should have unique values within the array`):Array.isArray(l)&&l.forEach(([c,p])=>{i=i.uniqueInArray(f=>f&&f[c],`${e.name} → ${p.name??c}: should have unique values within the array`)}))}const s=e.validation;return s?(i=s.required?i.required(s?.requiredMessage?s.requiredMessage:"Required").nullable(!0):i.notRequired().nullable(!0),(s.min||s.min===0)&&(i=i.min(s.min,`${e.name} should be min ${s.min} entries long`)),s.max&&(i=i.max(s.max,`${e.name} should be max ${s.max} entries long`))):i=i.notRequired().nullable(!0),i}function yt(e){switch(e){case"xl":return 400;case"l":return 280;case"m":return 140;case"s":return 80;case"xs":return 54;default:throw Error("Missing mapping for collection size -> height")}}const As=({justifyContent:e,scrollable:t,faded:o,fullHeight:a,children:n})=>r.jsx("div",{className:u.cn("flex flex-col max-h-full w-full",{"items-start":o||t}),style:{justifyContent:e,height:a?"100%":void 0,overflow:t?"auto":void 0,WebkitMaskImage:o?"linear-gradient(to bottom, black 60%, transparent 100%)":void 0,maskImage:o?"linear-gradient(to bottom, black 60%, transparent 100%)":void 0},children:n}),to=d.memo(function({children:t,actions:o,size:a,selected:n,disabled:i,disabledTooltip:s,saved:l,error:c,align:p,allowScroll:f,removePadding:h,fullHeight:g,onSelect:m,width:A,hideOverflow:b=!0,showExpandIcon:y=!0}){const[k,v]=gr(),_=d.useRef(null),E=d.useMemo(()=>yt(a),[a]),[C,B]=d.useState(!1),[x,F]=d.useState(l),S=!i&&c;d.useEffect(()=>{l&&F(!0);const q=setTimeout(()=>{F(!1)},800);return()=>{clearTimeout(q)}},[l]);let P=0;if(!h)switch(a){case"l":case"xl":P=4;break;case"m":P=2;break;case"s":default:P=1;break}let I;switch(p){case"right":I="flex-end";break;case"center":I="center";break;case"left":default:I="flex-start"}const M=d.useCallback(()=>{if(!m)return;const q=_&&_?.current?.getBoundingClientRect();i?m(void 0):!n&&q&&m(q)},[_,m,n,i]),L=d.useCallback(q=>{M(),q.stopPropagation()},[M]),U=d.useMemo(()=>v?v.height>E:!1,[v,E]),V=!S&&n,X=!i&&f&&U,H=!i&&!f&&U,D=d.useCallback(()=>B(!0),[]),R=d.useCallback(()=>B(!1),[]);return r.jsxs("div",{ref:_,className:u.cn("transition-colors duration-100 ease-in-out",`flex relative h-full rounded-md p-${P} border border-4 border-opacity-75`,C&&!i?"bg-gray-50 dark:bg-gray-900":"",l?"bg-gray-100 bg-opacity-75 dark:bg-gray-800 dark:bg-opacity-75":"",!V&&!x&&!S?"border-transparent":"",b?"overflow-hidden":"",V?"bg-gray-50 dark:bg-gray-900":"",V&&!x?"border-primary":"",x?"border-green-500 ":"",S?"border-red-500":""),style:{justifyContent:I,alignItems:i||!U?"center":void 0,width:A??"100%",textAlign:p},tabIndex:n||i?void 0:0,onFocus:L,onMouseEnter:D,onMouseMove:D,onMouseLeave:R,children:[r.jsxs(oe,{children:[g&&!H&&t,(!g||H)&&r.jsx(As,{fullHeight:g??!1,justifyContent:I,scrollable:X??!1,faded:H,children:!g&&r.jsx("div",{ref:k,style:{display:"flex",width:"100%",justifyContent:I,height:g?"100%":void 0},children:t})})]}),o,i&&C&&s&&r.jsx("div",{className:"absolute top-1 right-1 text-xs",children:r.jsx(u.Tooltip,{title:s,children:r.jsx(u.RemoveCircleIcon,{size:"smallest",color:"disabled",className:"text-gray-500"})})})]})},(e,t)=>e.error===t.error&&e.value===t.value&&e.disabled===t.disabled&&e.saved===t.saved&&e.allowScroll===t.allowScroll&&e.align===t.align&&e.size===t.size&&e.disabledTooltip===t.disabledTooltip&&e.width===t.width&&e.showExpandIcon===t.showExpandIcon&&e.removePadding===t.removePadding&&e.fullHeight===t.fullHeight&&e.selected===t.selected);function bs(e){return e.dataType==="string"&&e.storage?!0:e.dataType==="array"?Array.isArray(e.of)?!1:e.of?.dataType==="string"&&e.of?.storage:!1}const Oa=d.memo(function({propertyKey:t,customFieldValidator:o,value:a,property:n,align:i,width:s,height:l,path:c,entity:p,readonly:f,disabled:h}){const g=Z(),{onValueChange:m,size:A,selectedCell:b,select:y,setPopupCell:k}=Ns(),v=b?.propertyKey===t&&b?.entity.path===p.path&&b?.entity.id===p.id,[_,E]=d.useState(a),C=d.useRef(a),[B,x]=d.useState(),[F,S]=d.useState(!1),P=d.useCallback(()=>{S(!0),setTimeout(()=>{S(!1)},100)},[]),I=!!n.Field,M=!!n.Preview,L=ut(n),U=typeof n.disabled=="object"?n.disabled.disabledMessage:void 0,V=f||h||!!n.disabled,X=d.useMemo(()=>Pt({property:n,entityId:p.id,customFieldValidator:o,name:t}),[p.id,n,t]);d.useEffect(()=>{ne(a,C.current)||(x(void 0),E(a),C.current=a,P())},[P,a]);const H=T=>{ne(T,C.current)||(S(!1),X.validate(T).then(()=>{x(void 0),C.current=T,m&&m({value:T,propertyKey:t,setError:x,onValueUpdated:P,entity:p,fullPath:c,context:g})}).catch(Q=>{x(Q)}))};d.useEffect(()=>{X.validate(_).then(()=>x(void 0)).catch(T=>{x(T)})},[_,X,t,n,p]);const D=T=>{let Q;T===void 0?Q=null:Q=T,E(Q),H(Q)};Se({property:n,value:_,setValue:D});const R=d.useCallback(T=>{y(T?{width:s,height:l,entity:p,cellRect:T,propertyKey:t}:void 0)},[p,l,t,y,s]),q=T=>{k&&k(T?{width:s,height:l,entity:p,cellRect:T,propertyKey:t}:void 0)};let $,W=!1,te=!1,ie=!0,N=!1,O=!1,Y=!0;const J=!V&&B;if(f||L)return r.jsx(to,{size:A,width:s,saved:F,value:_,align:i??"left",fullHeight:!1,disabledTooltip:U??(L?"Read only":void 0),disabled:!0,children:r.jsx(be,{width:s,height:yt(A),propertyKey:t,property:n,value:_,size:Ke(A)})},`${t}_${p.path}_${p.id}`);if(!I&&(!M||v)){if(bs(n))$=r.jsx(as,{error:B,disabled:V,focused:v,selected:v,openPopup:k?q:void 0,property:n,entity:p,path:c,value:_,previewSize:Ke(A),updateValue:D,propertyKey:t}),Y=!1,te=!0,O=!0,N=!0;else if(v&&n.dataType==="number"){const Q=n;Q.enumValues?($=r.jsx(Kr,{name:t,multiple:!1,disabled:V,focused:v,valueType:"number",small:Ke(A)!=="medium",enumValues:Q.enumValues,error:B,internalValue:_,updateValue:D}),O=!0):($=r.jsx(Hi,{align:i,error:B,focused:v,disabled:V,value:_,updateValue:D}),W=!0)}else if(v&&n.dataType==="string"){const Q=n;if(Q.enumValues)$=r.jsx(Kr,{name:t,multiple:!1,focused:v,disabled:V,valueType:"string",small:Ke(A)!=="medium",enumValues:Q.enumValues,error:B,internalValue:_,updateValue:D}),O=!0;else if(!Q.storage){const K=!!Q.multiline||!!Q.markdown;$=r.jsx(Wi,{error:B,disabled:V,multiline:K,focused:v,value:_,updateValue:D}),W=!0}}else if(n.dataType==="boolean")$=r.jsx(Ji,{error:B,disabled:V,focused:v,internalValue:_,updateValue:D});else if(n.dataType==="date")$=r.jsx(Zi,{name:t,error:B,disabled:V,mode:n.mode,focused:v,internalValue:_,updateValue:D}),O=!0,ie=!1,W=!1;else if(n.dataType==="reference")typeof n.path=="string"&&($=r.jsx(Qa,{name:t,internalValue:_,updateValue:D,disabled:V,size:A,path:n.path,multiselect:!1,previewProperties:n.previewProperties,title:n.name,forceFilter:n.forceFilter})),W=!1;else if(n.dataType==="array"){const Q=n;if(!Q.of&&!Q.oneOf)throw Error(`You need to specify an 'of' or 'oneOf' prop (or specify a custom field) in your array property ${t}`);Q.of&&!Array.isArray(Q.of)&&(Q.of.dataType==="string"||Q.of.dataType==="number"?v&&Q.of.enumValues&&($=r.jsx(Kr,{name:t,multiple:!0,disabled:V,focused:v,small:Ke(A)!=="medium",valueType:Q.of.dataType,enumValues:Q.of.enumValues,error:B,internalValue:_,updateValue:D}),W=!0,O=!0,ie=!1):Q.of.dataType==="reference"&&(typeof Q.of.path=="string"&&($=r.jsx(Qa,{name:t,disabled:V,internalValue:_,updateValue:D,size:A,multiselect:!0,path:Q.of.path,previewProperties:Q.of.previewProperties,title:Q.of.name,forceFilter:Q.of.forceFilter})),W=!1))}}return $||(W=!1,te=v&&!$&&!V&&!L,$=r.jsx(be,{width:s,height:l,propertyKey:t,value:_,property:n,size:Ke(A)})),r.jsx(to,{size:A,width:s,onSelect:R,selected:v,disabled:V||L,disabledTooltip:U??"Disabled",removePadding:N,fullHeight:O,saved:F,error:B,align:i,allowScroll:W,showExpandIcon:te,value:_,hideOverflow:ie,actions:Y&&r.jsx(Ma,{showError:J,disabled:V,showExpandIcon:te,selected:v,openPopup:V?void 0:q}),children:$},`cell_${t}_${p.path}_${p.id}`)},ys);function ys(e,t){return e.height===t.height&&e.propertyKey===t.propertyKey&&e.align===t.align&&e.width===t.width&&ne(e.property,t.property)&&ne(e.value,t.value)&&ne(e.entity.id,t.entity.id)&&ne(e.entity.values,t.entity.values)}function or({text:e,...t}){return r.jsx("div",{className:"flex w-full h-screen max-h-full max-w-full bg-gray-50 dark:bg-gray-900 gap-4",children:r.jsxs("div",{className:"m-auto flex flex-col gap-2 items-center",children:[r.jsx(u.CircularProgress,{...t}),e&&r.jsx(u.Typography,{color:"secondary",variant:"caption",className:"text-center",children:e})]})})}const ws=d.memo(function({resizeHandleRef:t,columnIndex:o,isResizingIndex:a,sort:n,onColumnSort:i,onFilterUpdate:s,filter:l,column:c,onClickResizeColumn:p,createFilterField:f,AdditionalHeaderWidget:h}){const[g,m]=d.useState(!1),[A,b]=d.useState(!1),[y,k]=d.useState(!1),v=d.useCallback(x=>{b(!0)},[]),_=d.useCallback((x,F)=>{s(c,x),F!==void 0&&b(F)},[c,s]),E=a===o,B=!(a!==o&&a>0)&&(g||E);return r.jsx(oe,{children:r.jsxs("div",{className:u.cn("flex py-0 px-3 h-full text-xs uppercase font-semibold relative select-none items-center bg-gray-50 dark:bg-gray-900","text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-200 ","hover:bg-gray-100 dark:hover:bg-gray-800 hover:bg-opacity-50 dark:hover:bg-opacity-50",c.frozen?"sticky left-0 z-10":"relative z-0"),style:{left:c.frozen?0:void 0,minWidth:c.width,maxWidth:c.width},onMouseEnter:()=>m(!0),onMouseMove:()=>m(!0),onMouseLeave:()=>m(!1),children:[r.jsx("div",{className:"overflow-hidden flex-grow",children:r.jsxs("div",{className:`flex items-center justify-${c.headerAlign} flex-row`,children:[c.icon&&c.icon(g||A),r.jsx("div",{className:"truncate -webkit-box w-full mx-1 overflow-hidden",style:{WebkitBoxOrient:"vertical",WebkitLineClamp:2,justifyContent:c.align},children:c.title})]})}),r.jsxs(r.Fragment,{children:[h&&r.jsx(h,{onHover:g||A}),c.sortable&&(n||B||A)&&r.jsx(u.Badge,{color:"secondary",invisible:!n,children:r.jsxs(u.IconButton,{size:"small",className:g||A?"bg-white dark:bg-gray-950":void 0,onClick:()=>{i(c.key)},children:[!n&&r.jsx(u.ArrowUpwardIcon,{}),n==="asc"&&r.jsx(u.ArrowUpwardIcon,{}),n==="desc"&&r.jsx(u.ArrowUpwardIcon,{className:"rotate-180"})]})})]}),c.filter&&f&&r.jsx("div",{children:r.jsx(u.Badge,{color:"secondary",invisible:!l,children:r.jsx(u.Popover,{open:A,onOpenChange:b,className:y?"hidden":void 0,modal:!0,trigger:r.jsx(u.IconButton,{className:g||A?"bg-white dark:bg-gray-950":void 0,size:"small",onClick:v,children:r.jsx(u.FilterListIcon,{size:"small"})}),children:r.jsx(vs,{column:c,filter:l,onHover:g,onFilterUpdate:_,createFilterField:f,hidden:y,setHidden:k})})})}),c.resizable&&r.jsx("div",{ref:t,className:u.cn("absolute h-full w-[6px] top-0 right-0 cursor-col-resize",B&&"bg-gray-300 dark:bg-gray-700"),onMouseDown:p?()=>p(o,c):void 0})]})})},ne);function vs({column:e,onFilterUpdate:t,filter:o,onHover:a,createFilterField:n,hidden:i,setHidden:s}){const l=e.key,[c,p]=d.useState(o);if(d.useEffect(()=>{p(o)},[o]),!e.filter)return null;const f=()=>{t(c,!1)},h=A=>{t(void 0,!1)},g=!!o,m=n({id:l,filterValue:c,setFilterValue:p,column:e,hidden:i,setHidden:s});return m?r.jsxs("div",{className:"text-gray-900 dark:text-white",children:[r.jsx("div",{className:u.cn(u.defaultBorderMixin,"py-4 px-6 text-xs font-semibold uppercase border-b"),children:e.title??l}),m&&r.jsx("div",{className:"m-4",children:m}),r.jsxs("div",{className:"flex justify-end m-4",children:[r.jsx(u.Button,{className:"mr-4",disabled:!g,variant:"text",color:"primary",type:"reset","aria-label":"filter clear",onClick:h,children:"Clear"}),r.jsx(u.Button,{variant:"outlined",color:"primary",onClick:f,children:"Filter"})]})]}):null}const ks=({columns:e,currentSort:t,onColumnSort:o,onFilterUpdate:a,sortByProperty:n,filter:i,onColumnResize:s,onColumnResizeEnd:l,createFilterField:c,AddColumnComponent:p})=>{const f=e.map(()=>d.createRef()),[h,g]=d.useState(-1),m=d.useCallback((C,B,x)=>{const F=e[C],S=100,P=800,I=B>P?P:B<S?S:B,M={width:I,key:F.key,column:{...F,width:I}};x?l(M):s(M)},[e,s,l]),A=d.useCallback(C=>{if(h>=0){const B=f[h].current?.parentElement?.getBoundingClientRect().left;return B?C.clientX-B:void 0}},[f,h]),b=d.useCallback(C=>{document.body.style.cursor=C?"col-resize":"auto"},[]),y=d.useCallback(C=>{C.stopPropagation(),C.preventDefault();const B=A(C);B&&m(h,B,!1)},[m,A,h]),k=d.useCallback(C=>{C.stopPropagation(),C.preventDefault();const B=A(C);B&&m(h,B,!0),g(-1),b(!1)},[m,A,h,b]),v=d.useCallback(()=>{document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",k)},[y,k]),_=d.useCallback(()=>{document.addEventListener("mousemove",y),document.addEventListener("mouseup",k)},[y,k]);d.useEffect(()=>(h>=0?_():v(),()=>{v()}),[_,h,v]);const E=d.useCallback(C=>{g(C),b(!0)},[b]);return r.jsxs("div",{className:u.cn(u.defaultBorderMixin,"z-20 sticky min-w-full flex w-fit flex-row top-0 left-0 h-12 border-b bg-gray-50 dark:bg-gray-900"),children:[e.map((C,B)=>{const x=e[B],F=x&&i&&i[x.key]?i[x.key]:void 0;return r.jsx(oe,{children:r.jsx(ws,{resizeHandleRef:f[B],columnIndex:B,isResizingIndex:h,onFilterUpdate:a,filter:F,sort:n===x.key?t:void 0,onColumnSort:o,onClickResizeColumn:E,column:x,createFilterField:c,AdditionalHeaderWidget:x.AdditionalHeaderWidget})},"header_"+x.key)}),p&&r.jsx(p,{})]})},_s=d.memo(function({rowData:t,rowIndex:o,children:a,onRowClick:n,size:i,style:s,hoverRow:l,rowClassName:c}){const p=d.useCallback(f=>{n&&n({rowData:t,rowIndex:o,event:f})},[n,t,o]);return r.jsx("div",{className:u.cn("flex min-w-full text-sm border-b border-gray-200 dark:border-gray-800 border-opacity-40 dark:border-opacity-40",c?c(t):"",{"hover:bg-opacity-95":l,"cursor-pointer":n}),onClick:p,style:{...s,height:yt(i),width:"fit-content"},children:a})},ne),xs=d.memo(function(t){return t.rowData&&r.jsx(t.cellRenderer,{rowData:t.rowData,rowIndex:t.rowIndex,isScrolling:!1,column:t.column,columns:t.columns,columnIndex:t.columnIndex,width:t.column.width})},(e,t)=>ne(e,t)),ar=d.createContext({});ar.displayName="VirtualListContext";const Cs=d.forwardRef(({children:e,...t},o)=>r.jsx(ar.Consumer,{children:a=>{const n=a.customView;return r.jsxs(r.Fragment,{children:[r.jsx("div",{id:"virtual-table",style:{position:"relative",height:"100%"},children:r.jsxs("div",{ref:o,...t,style:{...t?.style,minHeight:"100%",position:"relative"},children:[r.jsx(ks,{...a}),!n&&e]})}),n&&r.jsx("div",{style:{position:"sticky",top:"56px",flexGrow:1,height:"calc(100% - 56px)",marginTop:"calc(56px - 100vh)",left:0},children:n})]})}})),ro=d.memo(function({data:t,onResetPagination:o,onEndReached:a,size:n="m",columns:i,onRowClick:s,onColumnResize:l,filter:c,checkFilterCombination:p,onFilterUpdate:f,sortBy:h,error:g,emptyComponent:m,onSortByUpdate:A,loading:b,cellRenderer:y,hoverRow:k,createFilterField:v,rowClassName:_,className:E,endAdornment:C,AddColumnComponent:B}){const x=h?h[0]:void 0,F=h?h[1]:void 0,[S,P]=d.useState(i),I=d.useRef(null),M=d.useRef(0);d.useEffect(()=>{P(i)},[i]);const[L,U]=gr(),V=d.useCallback(T=>{P(S.map(Q=>Q.key===T.column.key?T.column:Q))},[S]),X=d.useCallback(T=>{P(S.map(Q=>Q.key===T.column.key?T.column:Q)),l&&l(T)},[S,l]),H=d.useRef();d.useEffect(()=>{H.current=c},[c]);const D=d.useCallback(()=>{M.current=0,I.current&&I.current.scrollTo(I.current?.scrollLeft,0)},[]),R=d.useCallback(T=>{const Q=x===T&&F==="desc",ce=x===T&&F==="asc"?"desc":Q?void 0:"asc",Fe=Q?void 0:T,ve=H.current,ze=ce&&Fe?[Fe,ce]:void 0;ve&&p&&!p(ve,ze)&&f&&f(void 0),o&&o(),A&&A(ze),D()},[p,F,f,o,A,D,x]),q=d.useCallback(()=>{M.current=0,A&&A(void 0)},[A]),$=Math.max((t?.length??0)*yt(n)-U.height,0),W=d.useCallback(T=>{a&&(t?.length??0)>0&&T>M.current+600&&(M.current=T,a())},[t?.length,a]),te=d.useCallback(({scrollOffset:T,scrollUpdateWasRequested:Q})=>{!Q&&T>=$-600&&W(T)},[$,W]),ie=d.useCallback((T,Q)=>{M.current=0;const K=H.current;let ce=K?{...K}:{};Q?ce[T.key]=Q:delete ce[T.key],!p||p(ce,x&&F?[x,F]:void 0)||(ce=Q?{[T.key]:Q}:{}),f&&f(ce),T.key!==x&&q()},[p,F,f,q,x]),N=d.useCallback(()=>r.jsxs("div",{className:"h-full flex flex-col items-center justify-center sticky left-0",children:[r.jsx(u.Typography,{variant:"h6",children:"Error fetching data from the data source"}),g?.message&&r.jsx(u.Markdown,{className:"px-4 break-all",source:g.message})]}),[g?.message]),O=d.useCallback(()=>b?r.jsx(or,{}):r.jsxs("div",{className:"flex flex-col overflow-auto items-center justify-center p-2 gap-2 h-full",children:[r.jsx(u.AssignmentIcon,{}),m]}),[m,b]),Y=!b&&(t?.length??0)===0,J=g?N():Y?O():void 0;return r.jsx("div",{ref:L,className:u.cn("h-full w-full",E),children:r.jsx(ar.Provider,{value:{data:t,size:n,cellRenderer:y,columns:S,currentSort:F,onRowClick:s,customView:J,onColumnResize:V,onColumnResizeEnd:X,filter:H.current,onColumnSort:R,onFilterUpdate:ie,sortByProperty:x,hoverRow:k??!1,createFilterField:v,rowClassName:_,endAdornment:C,AddColumnComponent:B},children:r.jsx(Es,{outerRef:I,width:U.width,height:U.height,itemCount:(t?.length??0)+(C?1:0),onScroll:te,includeAddColumn:!!B,itemSize:yt(n)},n)})})},ne);function Es({outerRef:e,width:t,height:o,itemCount:a,onScroll:n,itemSize:i,includeAddColumn:s}){const l=d.useCallback(({index:c,style:p})=>r.jsx(ar.Consumer,{children:({onRowClick:f,data:h,columns:g,size:m="m",cellRenderer:A,hoverRow:b,rowClassName:y,endAdornment:k})=>{if(k&&c===(h??[]).length)return r.jsx("div",{style:{...p,height:"auto",position:"sticky",bottom:0,zIndex:1},children:k});const v=h&&h[c];return r.jsxs(_s,{rowData:v,rowIndex:c,onRowClick:f,columns:g,hoverRow:b,rowClassName:y,style:{...p,top:`calc(${p.top}px + 48px)`},size:m,children:[g.map((_,E)=>{const C=v&&v[_.key];return r.jsx(xs,{dataKey:_.key,cellRenderer:A,column:_,columns:g,rowData:v,cellData:C,rowIndex:c,columnIndex:E},`cell_${_.key}`)}),s&&r.jsx("div",{className:"w-20"})]},`row_${c}`)}}),[]);return r.jsx(Dn.FixedSizeList,{outerRef:e,innerElementType:Cs,width:t,height:o,overscanCount:4,itemCount:a,onScroll:n,itemSize:i,children:l})}const nr=d.memo(function({entity:t,collection:o,fullPath:a,width:n,frozen:i,isSelected:s,selectionEnabled:l,size:c,highlightEntity:p,onCollectionChange:f,unhighlightEntity:h,actions:g=[],hideId:m,selectionController:A}){const b=Ie(),y=Z(),k=d.useCallback(x=>{A?.toggleEntitySelection(t)},[t,A?.toggleEntitySelection]),v=d.useCallback(x=>{x.stopPropagation(),A?.toggleEntitySelection(t)},[t,A?.toggleEntitySelection]),_=g.length>0,E=g.some(x=>x.collapsed||x.collapsed===void 0),C=g.filter(x=>x.collapsed||x.collapsed===void 0),B=g.filter(x=>x.collapsed===!1);return r.jsxs("div",{onClick:v,className:u.cn("h-full flex items-center justify-center flex-col bg-gray-50 dark:bg-gray-900 bg-opacity-90 dark:bg-opacity-90 z-10",i?"sticky left-0":""),style:{width:n,position:i?"sticky":"initial",left:i?0:"initial",contain:"strict"},children:[(_||l)&&r.jsxs("div",{className:"w-34 flex justify-center",children:[B.map((x,F)=>r.jsx(u.Tooltip,{title:x.name,children:r.jsx(u.IconButton,{onClick:S=>{S.stopPropagation(),x.onClick({entity:t,fullPath:a,collection:o,context:y,selectionController:A,highlightEntity:p,unhighlightEntity:h,onCollectionChange:f})},size:b?"medium":"small",children:x.icon})},F)),E&&r.jsx(u.Menu,{trigger:r.jsx(u.IconButton,{size:b?"medium":"small",children:r.jsx(u.MoreVertIcon,{})}),children:C.map((x,F)=>r.jsxs(u.MenuItem,{onClick:S=>{S.stopPropagation(),x.onClick({entity:t,fullPath:a,collection:o,context:y,selectionController:A,highlightEntity:p,unhighlightEntity:h,onCollectionChange:f})},children:[x.icon,x.name]},F))}),l&&r.jsx(u.Tooltip,{title:`Select ${t.id}`,children:r.jsx(u.Checkbox,{size:b?"medium":"small",checked:!!s,onCheckedChange:k})})]}),!m&&c!=="xs"&&r.jsx("div",{className:"w-[138px] text-center overflow-hidden truncate",children:t?r.jsxs(u.Typography,{onClick:x=>{x.stopPropagation()},className:"font-mono select-all",variant:"caption",color:"secondary",children:[" ",t.id," "]}):r.jsx(u.Skeleton,{})})]})},ne);function za(e){const t=d.useRef(null),o=Ie(),a=d.useRef(!1);d.useEffect(()=>{t.current&&a.current&&!e.textSearchLoading&&t.current.focus(),a.current=e.textSearchLoading??!1},[e.textSearchLoading]);const n=!e.forceFilter&&e.filterIsSet&&e.clearFilter&&r.jsxs(u.Button,{variant:"outlined",className:"h-fit-content","aria-label":"filter clear",onClick:e.clearFilter,size:"small",children:[r.jsx(u.FilterListOffIcon,{}),"Clear filter"]}),i=r.jsx(u.Select,{value:e.size,className:"w-16 h-10",size:"small",onValueChange:s=>e.onSizeChanged(s),renderValue:s=>r.jsx("div",{className:"font-medium",children:s.toUpperCase()}),children:["xs","s","m","l","xl"].map(s=>r.jsx(u.SelectItem,{value:s,className:"w-12 font-medium text-center",children:s.toUpperCase()},s))});return r.jsxs("div",{className:u.cn(u.defaultBorderMixin,"no-scrollbar min-h-[56px] overflow-x-auto px-2 md:px-4 bg-gray-50 dark:bg-gray-900 border-b flex flex-row justify-between items-center w-full"),children:[r.jsxs("div",{className:"flex items-center gap-2 md:mr-4 mr-2",children:[e.title&&r.jsx("div",{className:"hidden lg:block",children:e.title}),i,e.actionsStart,n]}),r.jsxs("div",{className:"flex items-center gap-2",children:[o&&r.jsx("div",{className:"w-[22px]",children:e.loading&&r.jsx(u.CircularProgress,{size:"small"})}),(e.onTextSearch||e.onTextSearchClick)&&r.jsx(u.SearchBar,{inputRef:t,loading:e.textSearchLoading,disabled:!!e.onTextSearchClick,onClick:e.onTextSearchClick,onTextSearch:e.onTextSearchClick?void 0:e.onTextSearch,expandable:!0},"search-bar"),e.actions]})]})}const Va={"==":"==","!=":"!=",">":">","<":"<",">=":">=","<=":"<=",in:"In","not-in":"Not in","array-contains":"Contains","array-contains-any":"Contains Any"},oo=["array-contains-any","in","not-in"];function Ga({name:e,value:t,setValue:o,isArray:a,path:n,title:i,previewProperties:s,setHidden:l}){const c=a?["array-contains"]:["==","!=",">","<",">=","<="],[p,f]=d.useState(!1);a?c.push("array-contains-any"):c.push("in","not-in");const[h,g]=t||[c[0],void 0],[m,A]=d.useState(h),[b,y]=d.useState(g),k=b?Array.isArray(b)?b.map(I=>I instanceof Te?I.id:null).filter(Boolean):[b.id]:[];function v(I,M){const L=oo.includes(m),U=oo.includes(I);let V=M;L!==U&&(V=U?V instanceof Te?[V]:[]:void 0),A(I),y(V);const X=V!==null&&Array.isArray(V)?V.length>0:V!==void 0;o(I&&X?[I,V]:void 0)}const _=le(),E=d.useMemo(()=>n?_.getCollection(n):void 0,[n]),C=I=>{v(m,Le(I))},B=I=>{v(m,I.map(M=>Le(M)))},x=oo.includes(m),F=kt({multiselect:x,path:n,collection:E,onSingleEntitySelected:C,onMultipleEntitiesSelected:B,selectedEntityIds:k,onClose:()=>{l(!1)}}),S=()=>{l(!0),F.open()},P=I=>r.jsx("div",{className:"mb-0.5",onMouseEnter:()=>f(!0),onMouseMove:()=>f(!0),onMouseLeave:()=>f(!1),children:r.jsx(Oe,{disabled:!n,previewProperties:s,size:"medium",onClick:S,reference:I,onHover:p,allowEntityNavigation:!1})});return r.jsxs("div",{className:"flex w-[440px] flex-row",children:[r.jsx("div",{className:"w-[120px]",children:r.jsx(u.Select,{value:m,onValueChange:I=>{v(I,b)},renderValue:I=>Va[I],children:c.map(I=>r.jsx(u.SelectItem,{value:I,children:Va[I]},I))})}),r.jsxs("div",{className:"flex-grow ml-2 h-full",children:[b&&Array.isArray(b)&&r.jsx("div",{children:b.map((I,M)=>P(I))}),b&&!Array.isArray(b)&&r.jsx("div",{children:P(b)}),(!b||Array.isArray(b)&&b.length===0)&&r.jsx(u.Button,{onClick:S,variant:"outlined",className:"h-full w-full",children:x?"Select references":"Select reference"})]})]})}const Ya={"==":"==","!=":"!=",">":">","<":"<",">=":">=","<=":"<=",in:"In","not-in":"Not in","array-contains":"Contains","array-contains-any":"Any"},ao=["array-contains-any","in","not-in"];function ja({name:e,value:t,setValue:o,dataType:a,isArray:n,enumValues:i,title:s}){const l=n?["array-contains"]:["==","!=",">","<",">=","<="];i&&(n?l.push("array-contains-any"):l.push("in","not-in"));const[c,p]=t||[l[0],void 0],[f,h]=d.useState(c),[g,m]=d.useState(p);function A(y,k){let v=k;const _=ao.includes(f),E=ao.includes(y);_!==E&&(v=E?typeof k=="string"||typeof k=="number"?[k]:[]:""),typeof v=="number"&&isNaN(v)&&(v=void 0),h(y),m(v);const C=v!==null&&Array.isArray(v)?v.length>0:v!==void 0;o(y&&C?[y,v]:void 0)}const b=ao.includes(f);return r.jsxs("div",{className:"flex w-[440px] items-center",children:[r.jsx("div",{className:"w-[80px]",children:r.jsx(u.Select,{value:f,position:"item-aligned",onValueChange:y=>{A(y,g)},renderValue:y=>Ya[y],children:l.map(y=>r.jsx(u.SelectItem,{value:y,children:Ya[y]},y))})}),r.jsxs("div",{className:"flex-grow ml-2",children:[!i&&r.jsx(u.TextField,{type:a==="number"?"number":void 0,value:g!==void 0?String(g):"",onChange:y=>{const k=a==="number"?parseFloat(y.target.value):y.target.value;A(f,k)},endAdornment:g&&r.jsx(u.IconButton,{className:"absolute right-3 top-2",onClick:y=>A(f,void 0),children:r.jsx(u.ClearIcon,{})})}),i&&r.jsx(u.Select,{position:"item-aligned",value:g!==void 0?Array.isArray(g)?g.map(y=>String(y)):String(g):n?[]:"",onValueChange:y=>{A(f,a==="number"?parseInt(y):y)},multiple:b,endAdornment:g&&r.jsx(u.IconButton,{className:"absolute right-3 top-2",onClick:y=>A(f,void 0),children:r.jsx(u.ClearIcon,{})}),renderValue:y=>r.jsx(ke,{enumKey:y,enumValues:i,size:"small"},`select_value_${e}_${y}`),children:i.map(y=>r.jsx(u.SelectItem,{value:String(y.id),children:r.jsx(ke,{enumKey:String(y.id),enumValues:i,size:"small"})},`select_value_${e}_${y.id}`))})]})]})}function La({name:e,title:t,value:o,setValue:a}){function n(l){a(l!==void 0?["==",l]:void 0)}const i=o&&o[1],s=!!o;return r.jsx("div",{className:"w-[200px]",children:r.jsx(u.BooleanSwitchWithLabel,{value:i,allowIndeterminate:!0,onValueChange:l=>n(l===null?void 0:l),label:s?i?`${t} is true`:`${t} is false`:"No filter"})})}const qa={"==":"==","!=":"!=",">":">","<":"<",">=":">=","<=":"<=","not-in":"not in",in:"in","array-contains":"Contains","array-contains-any":"Any"},Ua=["array-contains-any","in"];function $a({name:e,isArray:t,mode:o,value:a,setValue:n,title:i}){const{locale:s}=Z(),l=t?["array-contains"]:["==","!=",">","<",">=","<="],[c,p]=a||[l[0],void 0],[f,h]=d.useState(c),[g,m]=d.useState(p);function A(b,y){let k=y;const v=Ua.includes(f),_=Ua.includes(b);v!==_&&(k=_?y?[y]:[]:""),h(b),m(k===null?void 0:k);const E=k!==null&&Array.isArray(k)?k.length>0:k!==void 0;n(b&&E?[b,k]:void 0)}return r.jsxs("div",{className:"flex w-[440px] items-center",children:[r.jsx("div",{className:"w-[80px]",children:r.jsx(u.Select,{value:f,onValueChange:b=>{A(b,g)},renderValue:b=>qa[b],children:l.map(b=>r.jsx(u.SelectItem,{value:b,children:qa[b]},b))})}),r.jsx("div",{className:"flex-grow ml-2",children:r.jsx(u.DateTimeField,{mode:o,size:"medium",locale:s,value:g,onChange:b=>{A(f,b===null?void 0:b)},clearable:!0})})]})}function Bs(e){return e.dataType==="boolean"?"center":e.dataType==="number"?e.enumValues?"left":"right":e.dataType==="date"?"right":"left"}function Wa(e){if(e.columnWidth)return e.columnWidth;if(e.dataType==="string")return e.url?280:e.storage?160:e.enumValues?200:e.multiline||e.markdown?300:(e.email,200);if(e.dataType==="array"){const t=e;return t.of?Array.isArray(e.of)?300:Wa(t.of):300}else return e.dataType==="number"?e.enumValues?200:140:e.dataType==="map"?360:e.dataType==="date"?200:e.dataType==="reference"?220:e.dataType==="boolean"?140:200}function no(e){return`subcollection:${e.id??e.path}`}const Ha="collectionGroupParent";function Ja(e,t){return d.useMemo(()=>e.propertiesOrder?Za(e,e.propertiesOrder):Ss(e,t),[e,t])}function Za(e,t){return t.flatMap(o=>{const a=e.properties[o];return a?a.hideFromCollection?[null]:a.disabled&&typeof a.disabled=="object"&&a.disabled.hidden?[null]:a.dataType==="map"&&a.spreadChildren&&a.properties?io(a,o):[{key:o,disabled:!!a.disabled||!!a.readOnly}]:e.additionalFields?.find(i=>i.key===o)?[{key:o,disabled:!0}]:e.subcollections&&e.subcollections.find(s=>no(s)===o)?[{key:o,disabled:!0}]:e.collectionGroup&&o===Ha?[{key:o,disabled:!0}]:[null]}).filter(Boolean)}function Ss(e,t){const o=Object.keys(e.properties),a=e.additionalFields??[],n=e.subcollections??[],i=[...o,...a.map(s=>s.key)];if(t){const s=n.map(l=>no(l));i.push(...s.filter(l=>!i.includes(l)))}return e.collectionGroup&&i.push(Ha),Za(e,i)}function io(e,t,o){return e.dataType==="map"&&e.spreadChildren&&e.properties?Object.entries(e.properties).flatMap(([a,n])=>io(n,`${t}.${a}`,o||!!e.disabled||!!e.readOnly)):[{key:t,disabled:o||!!e.disabled||!!e.readOnly}]}function Is(e){return{key:"id_ewcfedcswdf3",width:e?160:130,title:"ID",resizable:!1,frozen:e??!1,headerAlign:"center",align:"center"}}function Xa({properties:e,sortable:t,forceFilter:o,disabledFilter:a,AdditionalHeaderWidget:n}){return Object.entries(e).flatMap(([i,s])=>io(s,i)).map(({key:i,disabled:s})=>{const l=Pr(e,i);if(!l)throw Error("Internal error: no property found in path "+i);const c=Ka(l);return{key:i,align:Bs(l),icon:p=>fe(l,"small"),title:l.name??i,sortable:t&&(o?Object.keys(o).includes(i):!0),filter:!a&&c,width:Wa(l),resizable:!0,custom:{resolvedProperty:l,disabled:s},AdditionalHeaderWidget:n?({onHover:p})=>r.jsx(n,{property:l,propertyKey:i,onHover:p}):void 0}})}function Ka(e,t=!1){return t?["string","number","date","reference"].includes(e.dataType):e.dataType==="array"?e.of?Ka(e.of,!0):!1:["string","number","boolean","date","reference","array"].includes(e.dataType)}const Fs={},so=d.createContext(Fs),Ns=()=>d.useContext(so),lo=d.memo(function({forceFilter:t,actionsStart:o,actions:a,title:n,tableRowActionsBuilder:i,uniqueFieldValidator:s,getPropertyFor:l,onValueChange:c,selectionController:p,highlightedEntities:f,onEntityClick:h,onColumnResize:g,onSizeChanged:m,textSearchEnabled:A=!1,hoverRow:b=!0,inlineEditing:y=!1,additionalFields:k,displayedColumnIds:v,defaultSize:_,properties:E,tableController:{data:C,dataLoading:B,noMoreToLoad:x,dataLoadingError:F,filterValues:S,setFilterValues:P,sortBy:I,setSortBy:M,setSearchString:L,clearFilter:U,itemCount:V,setItemCount:X,pageSize:H=50,paginationEnabled:D,checkFilterCombination:R,setPopupCell:q},filterable:$=!0,sortable:W=!0,endAdornment:te,AddColumnComponent:ie,AdditionalHeaderWidget:N,additionalIDHeaderWidget:O,emptyComponent:Y,getIdColumnWidth:J,onTextSearchClick:T,textSearchLoading:Q}){const K=d.useRef(null),ce=Ie(),Fe=!!t,ve=p?.selectedEntities?.length>0?p?.selectedEntities:f,ze=Z(),[_e,Re]=d.useState(_??"m"),[Ve,lt]=d.useState(void 0),et=ve?.map(G=>G.id),Qt=!!S&&Object.keys(S).length>0,_t=()=>{!D||B||x||V!==void 0&&X?.(V+H)};u.useOutsideAlerter(K,()=>{Ve&&ue()},!!Ve);const tt=d.useCallback(()=>{X?.(H)},[H]),ct=d.useCallback(({rowData:G})=>{if(console.debug("EntityCollectionTable click"),!y)return h&&h(G)},[h,y]),Dt=d.useCallback(G=>{m&&m(G),Re(G)},[]),Ot=d.useCallback(G=>L?.(G),[]),z=d.useMemo(()=>k?k.map(G=>({[G.key]:G})).reduce((G,se)=>({...G,...se}),{}):{},[k]);d.useEffect(()=>{const G=se=>{se.keyCode===27&&ue()};return document.addEventListener("keydown",G,!1),()=>{document.removeEventListener("keydown",G,!1)}});const me=d.useCallback(G=>{lt(G)},[]),ue=d.useCallback(()=>{lt(void 0)},[]),Qe=s,rt=d.useCallback(({column:G,columnIndex:se,rowData:Ne,rowIndex:Ye})=>{const ge=Ne,je=G.key;let xt=G.custom?.disabled;const Bo=ge.values?We(ge.values,je):void 0,dt=l?.({propertyKey:je,propertyValue:Bo,entity:ge})??G.custom.resolvedProperty;return dt?.disabled||(xt=!1),dt?r.jsx(oe,{children:ge?r.jsx(Oa,{readonly:!y,align:G.align??"left",propertyKey:je,property:dt,value:ge?.values?We(ge.values,je):void 0,customFieldValidator:Qe,columnIndex:se,width:G.width,height:yt(_e),entity:ge,disabled:xt,path:ge.path},`property_table_cell_${ge.id}_${je}`):Ue()}):null},[Qe,y,_e,et]),$e=d.useCallback(({column:G,rowData:se,width:Ne})=>{const Ye=se,ge=z[G.key],je=ge.dependencies?Object.entries(Ye.values).filter(([dt,Tn])=>ge.dependencies.includes(dt)).reduce((dt,Tn)=>({...dt,...Tn}),{}):Ye,xt=ge.Builder;if(!xt&&!ge.value)throw new Error("When using additional fields you need to provide a Builder or a value");const Bo=xt?r.jsx(xt,{entity:Ye,context:ze}):r.jsx(r.Fragment,{children:ge.value?.({entity:Ye,context:ze})});return r.jsx(to,{width:Ne,size:_e,value:je,selected:!1,disabled:!0,align:"left",allowScroll:!1,showExpandIcon:!1,disabledTooltip:"This column can't be edited directly",children:r.jsx(oe,{children:Bo})},`additional_table_cell_${Ye.id}_${G.key}`)},[z,_e,et]),Ge=d.useMemo(()=>{const G=Xa({properties:E,sortable:W,forceFilter:t,disabledFilter:Fe,AdditionalHeaderWidget:N}),se=k?k.map(Ne=>({key:Ne.key,align:"left",sortable:!1,title:Ne.name,width:Ne.width??200})):[];return[...G,...se]},[k,Fe,t,E,W]),j=d.useMemo(()=>({key:"id_ewcfedcswdf3",width:J?.()??(ce?160:130),title:"ID",resizable:!1,frozen:ce,headerAlign:"center",align:"center",AdditionalHeaderWidget:()=>O}),[J,ce]),ee=d.useMemo(()=>[j,...v.map(G=>Ge.find(se=>se.key===G.key)).filter(Boolean)],[Ge,v,j]),ae=d.useCallback(G=>{const se=G.column,Ne=G.columns,Ye=se.key;if(G.columnIndex===0)return i?i({entity:G.rowData,size:_e,width:se.width,frozen:se.frozen}):r.jsx(nr,{entity:G.rowData,width:se.width,frozen:se.frozen,isSelected:!1,size:_e});if(z[Ye])return $e(G);if(G.columnIndex<Ne.length+1)return rt(G);throw Error("Internal: columns not mapped properly")},[z,i,_e,$e,rt]),re=d.useCallback(G=>{P?.({...G,...t})},[t]);return r.jsx(so.Provider,{value:{setPopupCell:q,select:me,onValueChange:c,size:_e,selectedCell:Ve},children:r.jsxs("div",{ref:K,className:"h-full w-full flex flex-col bg-white dark:bg-gray-950",children:[r.jsx(za,{forceFilter:Fe,filterIsSet:Qt,onTextSearch:A?Ot:void 0,textSearchLoading:Q,onTextSearchClick:A?T:void 0,clearFilter:U,size:_e,onSizeChanged:Dt,title:n,actionsStart:o,actions:a,loading:B}),r.jsx(ro,{data:C,columns:ee,cellRenderer:ae,onRowClick:y?void 0:h?ct:void 0,onEndReached:_t,onResetPagination:tt,error:F,paginationEnabled:D,onColumnResize:g,size:_e,loading:B,filter:S,onFilterUpdate:P?re:void 0,sortBy:I,onSortByUpdate:M,hoverRow:b,emptyComponent:Y,checkFilterCombination:R,createFilterField:$?Ts:void 0,rowClassName:d.useCallback(G=>et?.includes(G.id)?"bg-gray-100 bg-opacity-75 dark:bg-gray-800 dark:bg-opacity-75":"",[et]),className:"flex-grow",endAdornment:te,AddColumnComponent:ie})]})})},ne);function Ts({id:e,filterValue:t,setFilterValue:o,column:a,hidden:n,setHidden:i}){if(!a.custom)return null;const{resolvedProperty:s}=a.custom,l=s?.dataType==="array",c=l?s.of:s;if(!c)return null;if(c.dataType==="reference")return r.jsx(Ga,{value:t,setValue:o,name:e,isArray:l,path:c.path,title:s?.name,previewProperties:c?.previewProperties,hidden:n,setHidden:i});if(c.dataType==="number"||c.dataType==="string"){const p=c.name,f=c.enumValues?qe(c.enumValues):void 0;return r.jsx(ja,{value:t,setValue:o,name:e,dataType:c.dataType,isArray:l,enumValues:f,title:p})}else if(c.dataType==="boolean"){const p=c.name;return r.jsx(La,{value:t,setValue:o,name:e,title:p})}else if(c.dataType==="date"){const p=c.name;return r.jsx($a,{value:t,setValue:o,name:e,mode:c.mode,isArray:l,title:p})}return r.jsx("div",{children:`Currently the filter field ${s.dataType} is not supported`})}const Ps=d.memo(function({actionsStart:t,actions:o,title:a,onValueChange:n,cellRenderer:i,highlightedEntities:s,onEntityClick:l,onColumnResize:c,onSizeChanged:p,hoverRow:f=!0,inlineEditing:h=!1,tableController:{data:g,dataLoading:m,noMoreToLoad:A,dataLoadingError:b,filterValues:y,setFilterValues:k,sortBy:v,setSortBy:_,setSearchString:E,clearFilter:C,itemCount:B,setItemCount:x,pageSize:F=50,paginationEnabled:S,checkFilterCombination:P,setPopupCell:I},filterable:M=!0,sortable:L=!0,emptyComponent:U,textSearchEnabled:V,columns:X,forceFilter:H}){Ie();const[D,R]=d.useState("m"),[q,$]=d.useState(void 0),W=!!y&&Object.keys(y).length>0,te=()=>{!S||m||A||B!==void 0&&x?.(B+F)},ie=d.useCallback(()=>{x?.(F)},[F]),N=d.useCallback(({rowData:K})=>{if(console.debug("EntityCollectionTable click"),!h)return l&&l(K)},[l,h]),O=d.useCallback(K=>{p&&p(K),R(K)},[]),Y=d.useCallback(K=>E?.(K),[]);d.useEffect(()=>{const K=ce=>{ce.keyCode===27&&T()};return document.addEventListener("keydown",K,!1),()=>{document.removeEventListener("keydown",K,!1)}});const J=d.useCallback(K=>{$(K)},[]),T=d.useCallback(()=>{$(void 0)},[]),Q=d.useCallback(K=>{k?.({...K,...H})},[H]);return r.jsx(so.Provider,{value:{setPopupCell:I,select:J,onValueChange:n,size:D,selectedCell:q},children:r.jsxs("div",{className:"h-full w-full flex flex-col bg-white dark:bg-gray-950",children:[r.jsx(za,{filterIsSet:W,onTextSearch:V?Y:void 0,clearFilter:C,size:D,onSizeChanged:O,title:a,actionsStart:t,actions:o,loading:m}),r.jsx(ro,{data:g,columns:X,cellRenderer:i,onRowClick:h?void 0:l?N:void 0,onEndReached:te,onResetPagination:ie,error:b,paginationEnabled:S,onColumnResize:c,size:D,loading:m,filter:y,onFilterUpdate:k?Q:void 0,sortBy:v,onSortByUpdate:_,hoverRow:f,emptyComponent:U,checkFilterCombination:P,createFilterField:M?Ms:void 0,className:"flex-grow"})]})})},ne);function Ms({id:e,filterValue:t,setFilterValue:o,column:a,hidden:n,setHidden:i}){if(!a.custom)return null;const{resolvedProperty:s}=a.custom,l=s?.dataType==="array",c=l?s.of:s;if(!c)return null;if(c.dataType==="reference")return r.jsx(Ga,{value:t,setValue:o,name:e,isArray:l,path:c.path,title:s?.name,previewProperties:c?.previewProperties,hidden:n,setHidden:i});if(c.dataType==="number"||c.dataType==="string"){const p=c.name,f=c.enumValues?qe(c.enumValues):void 0;return r.jsx(ja,{value:t,setValue:o,name:e,dataType:c.dataType,isArray:l,enumValues:f,title:p})}else if(c.dataType==="boolean"){const p=c.name;return r.jsx(La,{value:t,setValue:o,name:e,title:p})}else if(c.dataType==="date"){const p=c.name;return r.jsx($a,{value:t,setValue:o,name:e,mode:c.mode,isArray:l,title:p})}return r.jsx("div",{children:`Currently the filter field ${s.dataType} is not supported`})}function Qs({data:e,entitiesDisplayedFirst:t}){if(!t)return e;const o=new Set(t.map(a=>a.id));return[...t,...e.filter(a=>!o.has(a.id))]}function Ds(e,t,o=5e3){const[a,n]=d.useState(e),i=d.useRef(a.length??0),s=d.useRef(!1),l=d.useRef(t),c=!ne(l.current,t),p=e.length>=i.current||c;return d.useEffect(()=>{const f=()=>{ne(a,e)||(l.current=t,i.current=e.length,n(e)),s.current=!1};s.current=!0;let h;return p?f():h=setTimeout(f,o),()=>{clearTimeout(h),s.current&&p&&f()}},[e,o,t,p]),p?e:a}const Os=50;function co({fullPath:e,collection:t,entitiesDisplayedFirst:o,lastDeleteTimestamp:a,forceFilter:n}){const{initialFilter:i,initialSort:s,forceFilter:l}=t,[c,p]=d.useState(void 0),f=le(),h=De(),g=d.useMemo(()=>f.resolveAliasesFrom(e),[e,f.resolveAliasesFrom]),m=n??l,A=t.pagination===void 0||!!t.pagination,b=typeof t.pagination=="number"?t.pagination:Os,[y,k]=d.useState(),[v,_]=d.useState(A?b:void 0),E=d.useMemo(()=>{if(s&&m&&!q(m,s)){console.warn("Initial sort is not compatible with the force filter. Ignoring initial sort");return}return s},[s,m]),[C,B]=d.useState(m??i??void 0),[x,F]=d.useState(E),S=x?x[0]:void 0,P=x?x[1]:void 0,I=Z(),[M,L]=d.useState([]),[U,V]=d.useState(!1),[X,H]=d.useState(),[D,R]=d.useState(!1),q=d.useCallback((N,O)=>h.isFilterCombinationValid?h.isFilterCombinationValid({path:g,collection:t,filterValues:N,sortBy:O}):!0,[]),$=d.useCallback(()=>B(m??void 0),[m]),W=d.useCallback(N=>{if(m){console.warn("Filter is not compatible with the force filter. Ignoring filter");return}N&&Object.keys(N).length===0?B(void 0):B(N)},[m]);d.useEffect(()=>{V(!0);const N=async Y=>{if(t.callbacks?.onFetch)try{Y=await Promise.all(Y.map(J=>t.callbacks.onFetch({collection:t,path:g,entity:J,context:I})))}catch(J){console.error(J)}V(!1),H(void 0),L(Y.map(J=>({...J}))),R(!v||Y.length<v)},O=Y=>{console.error("ERROR",Y),V(!1),L([]),H(Y)};return h.listenCollection?h.listenCollection({path:g,collection:t,onUpdate:N,onError:O,searchString:y,filter:C,limit:v,startAfter:void 0,orderBy:S,order:P}):(h.fetchCollection({path:g,collection:t,searchString:y,filter:C,limit:v,startAfter:void 0,orderBy:S,order:P}).then(N).catch(O),()=>{})},[g,v,P,S,C,y]);const te=Qs({data:M,entitiesDisplayedFirst:o});return{data:Ds(te,{filterValues:C,sortBy:x,searchString:y,lastDeleteTimestamp:a}),dataLoading:U,noMoreToLoad:D,dataLoadingError:X,filterValues:C,setFilterValues:W,sortBy:x,setSortBy:F,searchString:y,setSearchString:k,clearFilter:$,itemCount:v,setItemCount:_,paginationEnabled:A,pageSize:b,checkFilterCombination:q,popupCell:c,setPopupCell:p}}function ir(e){return Array.isArray(e)?e:e?[e]:[]}function zs({collection:e,relativePath:t,parentCollectionIds:o,onNewClick:a,onMultipleDeleteClick:n,selectionEnabled:i,path:s,selectionController:l,tableController:c,collectionEntitiesCount:p}){const f=Z(),h=f.plugins??[],g=Je(),m=Ie(),A=l.selectedEntities,b=ft(e,g,Me(s),null)&&a&&(m?r.jsxs(u.Button,{id:`add_entity_${s}`,onClick:a,startIcon:r.jsx(u.AddIcon,{}),variant:"filled",color:"primary",children:["Add ",e.singularName??e.name]}):r.jsx(u.Button,{id:`add_entity_${s}`,onClick:a,size:"medium",variant:"filled",color:"primary",children:r.jsx(u.AddIcon,{})})),y=Xt(e,g,Me(s),null);let k;if(i){const E=m?r.jsxs(u.Button,{variant:"text",disabled:!A?.length||!y,startIcon:r.jsx(u.DeleteIcon,{}),onClick:n,color:"primary",className:"lg:w-20",children:["(",A?.length,")"]}):r.jsx(u.IconButton,{color:"primary",disabled:!A?.length||!y,onClick:n,children:r.jsx(u.DeleteIcon,{})});k=r.jsx(u.Tooltip,{title:y?"Delete":"You have selected at least one entity you cannot delete",children:E})}const v={path:s,relativePath:t,parentCollectionIds:o,collection:e,selectionController:l,context:f,tableController:c,collectionEntitiesCount:p},_=ir(e.Actions).map((E,C)=>r.jsx(oe,{children:r.jsx(E,{...v})},`actions_${C}`));return h&&h.forEach((E,C)=>{E.collections?.CollectionActions&&_.push(...ir(E.collections?.CollectionActions).map((B,x)=>r.jsx(oe,{children:r.jsx(B,{...v,...E.collections?.collectionActionsProps})},`plugin_actions_${C}_${x}`)))}),r.jsxs(r.Fragment,{children:[_,k,b]})}function Vs({containerRef:e,innerRef:t,x:o,y:a,onMove:n}){let i=0,s=0;const l=d.useRef(!1),c=A=>{if(A.button!==0||!e.current||A.defaultPrevented||A.innerClicked)return;const{x:b,y}=e.current.getBoundingClientRect();i=A.screenX-b,s=A.screenY-y,document.addEventListener("mousemove",g),document.addEventListener("mouseup",h),document.addEventListener("selectstart",f),l.current=!0},p=A=>{A.innerClicked=!0},f=A=>{A.preventDefault(),A.stopPropagation()},h=A=>{document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",h),document.removeEventListener("selectstart",f),A.stopPropagation(),l.current=!1},g=A=>{A.target.localName==="input"||!l.current||(n({x:A.screenX-i,y:A.screenY-s}),A.stopPropagation())},m=()=>{e.current&&(e.current.style.top=`${a}px`,e.current.style.left=`${o}px`)};d.useEffect(()=>{const A=e.current,b=t.current;if(!(!A||!b))return b&&b.addEventListener("mousedown",p),A&&A.addEventListener("mousedown",c),m(),()=>{A&&A.removeEventListener("mousedown",c),b&&b.removeEventListener("mousedown",p)}})}function Gs(){const[e,t]=d.useState({width:0,height:0});return d.useLayoutEffect(()=>{function o(){t({width:window.innerWidth,height:window.innerHeight})}return window.addEventListener("resize",o),o(),()=>window.removeEventListener("resize",o)},[]),e}const Ys=({onResize:e})=>{const t=d.useRef(0),o=d.useRef(null),a=d.useRef(e);a.current=e;const n=d.useCallback(s=>{t.current&&cancelAnimationFrame(t.current),t.current=requestAnimationFrame(()=>{a.current(s)})},[]),i=d.useCallback(()=>{const s=o.current;s&&s.contentDocument&&s.contentDocument.defaultView&&s.contentDocument.defaultView.addEventListener("resize",n)},[n]);return d.useEffect(()=>{const s=o.current;return()=>{s&&s.contentDocument&&s.contentDocument.defaultView&&s.contentDocument.defaultView.removeEventListener("resize",n)}},[n]),r.jsx("object",{onLoad:i,ref:o,tabIndex:-1,type:"text/html",data:"about:blank",title:"",style:{position:"absolute",top:0,left:0,height:"100%",width:"100%",pointerEvents:"none",zIndex:-1,opacity:0}})};function sr({name:e,addLabel:t,value:o,disabled:a=!1,buildEntry:n,small:i,onInternalIdAdded:s,includeAddButton:l,newDefaultEntry:c=null,setFieldValue:p}){return r.jsx(ko,{droppableId:e,addLabel:t,value:o,disabled:a,buildEntry:n,size:i?"small":"medium",onInternalIdAdded:s,includeAddButton:l,newDefaultEntry:c,onValueChange:f=>p(e,f)})}function js({field:e,form:t,label:o,tooltip:a,disabled:n,size:i="small",allowIndeterminate:s}){const l=r.jsx(u.BooleanSwitchWithLabel,{label:o,size:i,position:"start",value:e.value,disabled:n,allowIndeterminate:s,onValueChange:c=>t.setFieldValue(e.name,c)});return a?r.jsx(u.Tooltip,{title:a,children:l}):l}function ye({error:e,showError:t,property:o,includeDescription:a=!0,disabled:n}){const i=o.description||o.longDescription;if(!(t&&e)&&(!a||!i))return null;if(t&&e)return r.jsx(u.Typography,{variant:"caption",className:"ml-3.5 text-red-500 dark:text-red-500",children:e});const s=typeof o.disabled=="object"?o.disabled.disabledMessage:void 0;return r.jsxs("div",{className:"flex ml-3.5 mt-1",children:[r.jsx(u.Typography,{variant:"caption",color:n?"disabled":"secondary",className:"flex-grow",children:s||o.description}),o.longDescription&&r.jsx(u.Tooltip,{title:o.longDescription,side:"bottom",children:r.jsx(u.IconButton,{size:"small",className:"self-start",children:r.jsx(u.InfoIcon,{color:"disabled",size:"small"})})})]})}function po({propertyKey:e,value:t,setValue:o,error:a,showError:n,disabled:i,autoFocus:s,touched:l,property:c,includeDescription:p}){const f=c.enumValues;Se({property:c,value:t,setValue:o});const h=d.useCallback(g=>{g.stopPropagation(),g.preventDefault(),o(null)},[o]);return r.jsxs(r.Fragment,{children:[r.jsx(u.Select,{value:t?t.toString():"",disabled:i,position:"item-aligned",inputClassName:u.cn("w-full"),label:r.jsx(we,{icon:fe(c,"small"),required:c.validation?.required,title:c.name,className:"text-text-secondary dark:text-text-secondary-dark ml-3.5"}),endAdornment:c.clearable&&r.jsx(u.IconButton,{onClick:h,children:r.jsx(u.ClearIcon,{})}),onValueChange:g=>{const m=g?c.dataType==="number"?parseFloat(g):g:null;return o(m)},renderValue:g=>r.jsx(ke,{enumKey:g,enumValues:f,size:"medium"}),children:f&&f.map(g=>r.jsx(u.SelectItem,{value:String(g.id),children:r.jsx(ke,{enumKey:String(g.id),enumValues:f,size:"medium"})},g.id))}),r.jsx(ye,{includeDescription:p,showError:n,error:a,disabled:i,property:c})]})}function uo({propertyKey:e,value:t,setValue:o,error:a,showError:n,disabled:i,property:s,includeDescription:l,autoFocus:c}){const p=s.of;if(!p)throw Error("Using wrong component ArrayEnumSelect");if(Array.isArray(p))throw Error("Using array properties instead of single one in `of` in ArrayProperty");if(p.dataType!=="string"&&p.dataType!=="number")throw Error("Field misconfiguration: array field of type string or number");const f=qe(p.enumValues);if(!f)throw console.error(s),Error("Field misconfiguration: array field of type string or number needs to have enumValues");Se({property:s,value:t,setValue:o});const h=!!t&&Array.isArray(t),g=d.useCallback((m,A)=>{const b=m!==void 0?$t(f,m):void 0;return r.jsxs(ke,{enumKey:m,enumValues:f,size:"medium",children:[b?.label??m,!A&&r.jsx("button",{className:"ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",onMouseDown:y=>{y.preventDefault(),y.stopPropagation()},onClick:y=>{y.preventDefault(),y.stopPropagation(),o(t.filter(k=>k!==m))},children:r.jsx(u.CloseIcon,{size:"smallest"})})]},m)},[f,o,t]);return r.jsxs("div",{className:"mt-0.5 ml-0.5 mt-2",children:[r.jsx(u.MultiSelect,{value:h?t.map(m=>m.toString()):[],disabled:i,label:r.jsx(we,{icon:fe(s,"small"),required:s.validation?.required,title:s.name,className:"text-text-secondary dark:text-text-secondary-dark ml-3.5"}),renderValue:d.useCallback(m=>g(m,!1),[g]),onMultiValueChange:m=>{let A;return p&&p?.dataType==="number"?A=m?m.map(b=>parseFloat(b)):[]:A=m,o(A)},children:f.map(m=>String(m.id)).map(m=>r.jsx(u.MultiSelectItem,{value:m,children:g(m,!0)},m))}),r.jsx(ye,{includeDescription:l,showError:n,error:a,disabled:i,property:s})]})}function Ra({propertyKey:e,value:t,error:o,showError:a,disabled:n,isSubmitting:i,tableMode:s,property:l,includeDescription:c,setValue:p,setFieldValue:f}){const h=l.of;if(h.dataType!=="reference")throw Error("ArrayOfReferencesField expected a property containing references");const g=l.expanded===void 0?!0:l.expanded,[m,A]=d.useState(!1),b=t&&Array.isArray(t)?t.map(F=>F.id):[];Se({property:l,value:t,setValue:p});const y=le(),k=d.useMemo(()=>h.path?y.getCollection(h.path):void 0,[h.path]);if(!k)throw Error(`Couldn't find the corresponding collection for the path: ${h.path}`);const v=d.useCallback(F=>{console.debug("onMultipleEntitiesSelected",F),p(F.map(S=>Le(S)))},[p]),_=kt({multiselect:!0,path:h.path,collection:k,onMultipleEntitiesSelected:v,selectedEntityIds:b,forceFilter:h.forceFilter}),E=d.useCallback(F=>{F.preventDefault(),_.open()},[_]),C=d.useCallback((F,S)=>{const P=t&&t.length>F?t[F]:void 0;return P?r.jsx("div",{onMouseEnter:()=>A(!0),onMouseMove:()=>A(!0),onMouseLeave:()=>A(!1),children:r.jsx(Oe,{disabled:!h.path,previewProperties:h.previewProperties,size:"medium",onClick:E,reference:P,onHover:m})}):r.jsx("div",{children:"Internal ERROR"})},[h.path,h.previewProperties,m,t]),B=r.jsx(we,{icon:fe(l,"small"),required:l.validation?.required,title:l.name,className:"text-text-secondary dark:text-text-secondary-dark"}),x=r.jsxs(r.Fragment,{children:[!k&&r.jsx(he,{error:"The specified collection does not exist. Check console"}),k&&r.jsxs(r.Fragment,{children:[r.jsx(sr,{value:t,addLabel:l.name?"Add reference to "+l.name:"Add reference",name:e,buildEntry:C,disabled:i,setFieldValue:f,newDefaultEntry:l.of.defaultValue}),r.jsxs(u.Button,{className:"my-4 justify-center text-left",variant:"outlined",color:"primary",disabled:i,onClick:E,children:["Edit ",l.name]})]})]});return r.jsxs(r.Fragment,{children:[!s&&r.jsx(u.ExpandablePanel,{className:"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",initiallyExpanded:g,title:B,children:x}),s&&x,r.jsx(ye,{includeDescription:c,showError:a,error:o,disabled:n,property:l})]})}function en({name:e,property:t,value:o,entity:a,onRemove:n,disabled:i,size:s}){return r.jsxs("div",{className:u.cn(u.paperMixin,"relative m-4 border-box flex items-center justify-center",s==="medium"?"min-w-[220px] min-h-[220px] max-w-[220px]":"min-w-[118px] min-h-[118px] max-w-[118px]"),children:[!i&&r.jsx("div",{className:"absolute rounded-full -top-2 -right-2 z-10 bg-white dark:bg-gray-900",children:r.jsx(u.Tooltip,{title:"Remove",children:r.jsx(u.IconButton,{size:"small",onClick:l=>{l.stopPropagation(),n(o)},children:r.jsx(u.RemoveIcon,{size:"small"})})})}),o&&r.jsx(oe,{children:r.jsx(be,{propertyKey:e,value:o,property:t,size:s})})]})}const Ls="box-border relative pt-[2px] items-center border border-transparent min-h-[254px] outline-none rounded-md duration-200 ease-[cubic-bezier(0.4,0,0.2,1)] focus:border-primary-solid",qs="border-dotted-gray",Us="hover:bg-field-hover dark:hover:bg-field-hover-dark",$s="pt-0 border-2 border-solid",Ws="transition-colors duration-200 ease-[cubic-bezier(0,0,0.2,1)] border-2 border-solid border-green-500",Hs="transition-colors duration-200 ease-[cubic-bezier(0,0,0.2,1)] border-2 border-solid border-red-500";function mo({propertyKey:e,value:t,setValue:o,error:a,showError:n,autoFocus:i,tableMode:s,property:l,includeDescription:c,context:p,isSubmitting:f}){if(!p.entityId)throw new Error("StorageUploadFieldBinding: Entity id is null");const h=ht(),g=ut(l)||!!l.disabled||f,{internalValue:m,setInternalValue:A,onFilesAdded:b,storage:y,onFileUploadComplete:k,storagePathBuilder:v,multipleFilesSupported:_}=Ia({entityValues:p.values,entityId:p.entityId,path:p.path,property:l,propertyKey:e,value:t,storageSource:h,disabled:g,onChange:o});Se({property:l,value:t,setValue:o});const E={id:p.entityId,values:p.values,path:p.path};return r.jsxs(r.Fragment,{children:[!s&&r.jsx(we,{icon:fe(l,"small"),required:l.validation?.required,title:l.name,className:"text-text-secondary dark:text-text-secondary-dark ml-3.5"}),r.jsx(Zs,{value:m,name:e,disabled:g,autoFocus:i,property:l,onChange:o,setInternalValue:A,onFilesAdded:b,entity:E,onFileUploadComplete:k,storagePathBuilder:v,storage:y,multipleFilesSupported:_}),r.jsx(ye,{includeDescription:c,showError:n,error:a,disabled:g,property:l})]})}function Js({storage:e,disabled:t,isDraggingOver:o,onFilesAdded:a,multipleFilesSupported:n,droppableProvided:i,autoFocus:s,internalValue:l,property:c,entity:p,onClear:f,metadata:h,storagePathBuilder:g,onFileUploadComplete:m,size:A,name:b,helpText:y}){const k=Xe(),{getRootProps:v,getInputProps:_,isDragActive:E,isDragAccept:C,isDragReject:B}=Fo.useDropzone({accept:e.acceptedFiles?e.acceptedFiles.map(x=>({[x]:[]})).reduce((x,F)=>({...x,...F}),{}):void 0,disabled:t||o,noDragEventsBubbling:!0,maxSize:e.maxSize,onDrop:a,onDropRejected:(x,F)=>{for(const S of x)for(const P of S.errors)k.open({type:"error",message:`Error uploading file: File is larger than ${e.maxSize} bytes`})}});return r.jsxs("div",{...v(),className:u.cn(u.fieldBackgroundMixin,t?u.fieldBackgroundDisabledMixin:u.fieldBackgroundHoverMixin,Ls,n&&l.length?"":"flex",u.focusedMixin,{[Us]:!E,[$s]:E,[Hs]:B,[Ws]:C,[qs]:t}),children:[r.jsxs("div",{...i.droppableProps,ref:i.innerRef,className:u.cn("flex items-center p-1 no-scrollbar",n&&l.length?"overflow-auto":"",n&&l.length?"min-h-[180px]":"min-h-[250px]"),children:[r.jsx("input",{autoFocus:s,..._()}),l.map((x,F)=>{let S;return x.storagePathOrDownloadUrl?S=r.jsx(en,{name:`storage_preview_${x.storagePathOrDownloadUrl}`,property:c,disabled:t,entity:p,value:x.storagePathOrDownloadUrl,onRemove:f,size:x.size}):x.file&&(S=r.jsx(Pa,{entry:x,metadata:h,storagePath:g(x.file),onFileUploadComplete:m,imageSize:A==="medium"?220:118,simple:!1})),r.jsx(pt.Draggable,{draggableId:`array_field_${b}_${x.id}`,index:F,children:(P,I)=>r.jsx("div",{tabIndex:-1,ref:P.innerRef,...P.draggableProps,...P.dragHandleProps,className:u.cn(u.focusedMixin,"rounded-md"),style:{...P.draggableProps.style},children:S})},`array_field_${b}_${x.id}`)}),i.placeholder]}),r.jsx("div",{className:"flex-grow min-h-[38px] box-border m-2 text-center",children:r.jsx(u.Typography,{align:"center",variant:"label",children:y})})]})}function Zs({property:e,name:t,value:o,setInternalValue:a,onChange:n,multipleFilesSupported:i,onFileUploadComplete:s,disabled:l,onFilesAdded:c,autoFocus:p,storage:f,entity:h,storagePathBuilder:g}){if(i){const E=e;if(E.of){if(Array.isArray(E.of)||E.of.dataType!=="string")throw Error("Storage field using array must be of data type string")}else throw Error("Storage field using array must be of data type string")}const m=f?.metadata,A=i?"small":"medium",b=d.useCallback((E,C)=>{if(!i)return;const B=[...o],x=B[E];B.splice(E,1),B.splice(C,0,x),a(B);const F=B.filter(S=>!!S.storagePathOrDownloadUrl).map(S=>S.storagePathOrDownloadUrl);n(F)},[i,n,a,o]),y=d.useCallback(E=>{E.destination&&b(E.source.index,E.destination.index)},[b]),k=d.useCallback(E=>{if(i){const C=o.filter(B=>B.storagePathOrDownloadUrl!==E);n(C.filter(B=>!!B.storagePathOrDownloadUrl).map(B=>B.storagePathOrDownloadUrl)),a(C)}else n(null),a([])},[o,i,n]),v=i?"Drag 'n' drop some files here, or click to select files":"Drag 'n' drop a file here, or click to select one",_=i?e.of:e;return r.jsx(pt.DragDropContext,{onDragEnd:y,children:r.jsx(pt.Droppable,{droppableId:`droppable_${t}`,direction:"horizontal",renderClone:(E,C,B)=>{const x=o[B.source.index];return r.jsx("div",{ref:E.innerRef,...E.draggableProps,...E.dragHandleProps,style:E.draggableProps.style,className:"rounded",children:r.jsx(en,{name:`storage_preview_${x.storagePathOrDownloadUrl}`,property:_,disabled:!0,entity:h,value:x.storagePathOrDownloadUrl,onRemove:k,size:x.size})})},children:(E,C)=>r.jsx(Js,{storage:f,disabled:l,isDraggingOver:C.isDraggingOver,droppableProvided:E,onFilesAdded:c,multipleFilesSupported:i,autoFocus:p,internalValue:o,property:_,entity:h,onClear:k,metadata:m,storagePathBuilder:g,onFileUploadComplete:s,size:A,name:t,helpText:v})})})}function wt({propertyKey:e,value:t,setValue:o,error:a,showError:n,disabled:i,autoFocus:s,property:l,includeDescription:c}){let p,f;l.dataType==="string"&&(p=l.multiline,f=l.url),Se({property:l,value:t,setValue:o});const h=d.useCallback(b=>{b.stopPropagation(),b.preventDefault(),o(null)},[o]),g=b=>{if(A==="number"){const y=b.target.value?parseFloat(b.target.value):void 0;y&&isNaN(y)?o(null):y!=null?o(y):o(null)}else o(b.target.value)},m=!!p,A=l.dataType==="number"?"number":void 0;return r.jsxs(r.Fragment,{children:[r.jsx(u.TextField,{value:t,onChange:g,autoFocus:s,label:r.jsx(we,{icon:fe(l,"small"),required:l.validation?.required,title:l.name}),type:A,multiline:m,disabled:i,endAdornment:l.clearable&&r.jsx(u.IconButton,{onClick:h,children:r.jsx(u.ClearIcon,{})}),error:n?a:void 0,inputClassName:a?"text-red-500 dark:text-red-600":""}),r.jsx(ye,{includeDescription:c,showError:n,error:a,disabled:i,property:l}),f&&r.jsx(u.Collapse,{className:"mt-1 ml-1",in:!!t,children:r.jsx(be,{value:t,property:l,size:"medium"})})]})}const tn=d.forwardRef(function({propertyKey:t,value:o,setValue:a,error:n,showError:i,autoFocus:s,disabled:l,touched:c,property:p,includeDescription:f},h){return Se({property:p,value:o,setValue:a}),r.jsxs(r.Fragment,{children:[r.jsx(u.BooleanSwitchWithLabel,{value:o,onValueChange:g=>a(g),error:i,label:r.jsx(we,{icon:fe(p,"small"),required:p.validation?.required,title:p.name}),disabled:l,autoFocus:s,size:"medium"}),r.jsx(ye,{includeDescription:f,showError:i,error:n,disabled:l,property:p})]})});function rn({propertyKey:e,value:t,setValue:o,autoFocus:a,error:n,showError:i,disabled:s,touched:l,property:c,includeDescription:p}){const{locale:f}=Z(),h=t||null;return Se({property:c,value:t,setValue:o}),r.jsxs(r.Fragment,{children:[r.jsx(u.DateTimeField,{value:h,onChange:g=>o(g),size:"medium",mode:c.mode,clearable:c.clearable,locale:f,error:i,label:r.jsx(we,{icon:fe(c,"small"),required:c.validation?.required,className:i?"text-red-500 dark:text-red-500":"text-text-secondary dark:text-text-secondary-dark",title:c.name})}),r.jsx(ye,{includeDescription:p,showError:i,error:n,disabled:s,property:c})]})}function fo({propertyKey:e,value:t,error:o,showError:a,tableMode:n,property:i,includeDescription:s,context:l}){if(!l.entityId)throw new Error("ReadOnlyFieldBinding: Entity id is null");return l.entityId,l.values,l.path,r.jsxs(r.Fragment,{children:[!n&&r.jsx(we,{icon:fe(i,"small"),required:i.validation?.required,title:i.name,className:"text-text-secondary dark:text-text-secondary-dark ml-3.5"}),r.jsx("div",{className:u.cn(u.paperMixin,"min-h-14 p-4 md:p-6 overflow-x-scroll no-scrollbar"),children:r.jsx(oe,{children:r.jsx(be,{propertyKey:e,value:t,property:i,size:"medium"})})}),r.jsx(ye,{includeDescription:s,showError:a,error:o,property:i})]})}function on(e){return typeof e.property.path!="string"?r.jsx(fo,{...e}):r.jsx(Xs,{...e})}function Xs({value:e,setValue:t,error:o,showError:a,isSubmitting:n,disabled:i,touched:s,autoFocus:l,property:c,includeDescription:p,context:f}){if(!c.path)throw new Error("Property path is required for ReferenceFieldBinding");Se({property:c,value:e,setValue:t});const h=e&&e instanceof Te,g=le(),m=d.useMemo(()=>c.path?g.getCollection(c.path):void 0,[c.path]);if(!m)throw Error(`Couldn't find the corresponding collection for the path: ${c.path}`);const A=d.useCallback(k=>{t(k?Le(k):null)},[t]),b=kt({multiselect:!1,path:c.path,collection:m,onSingleEntitySelected:A,selectedEntityIds:h?[e.id]:void 0,forceFilter:c.forceFilter}),y=d.useCallback(k=>{k.preventDefault(),b.open()},[b]);return r.jsxs(r.Fragment,{children:[r.jsx(we,{icon:fe(c,"small"),required:c.validation?.required,title:c.name,className:"text-text-secondary dark:text-text-secondary-dark ml-3.5"}),!m&&r.jsx(he,{error:"The specified collection does not exist. Check console"}),m&&r.jsxs(r.Fragment,{children:[e&&r.jsx(Oe,{disabled:!c.path,previewProperties:c.previewProperties,size:"medium",onClick:i||n?void 0:y,reference:e}),!e&&r.jsx("div",{className:"justify-center text-left",children:r.jsxs(u.Button,{variant:"outlined",color:"primary",disabled:i||n,onClick:y,children:["Edit ",c.name]})})]}),r.jsx(ye,{includeDescription:p,showError:a,error:o,disabled:i,property:c})]})}const st=d.memo(Ks,(e,t)=>{if(e.propertyKey!==t.propertyKey)return!1;const o=Ae(e.property)||e.property.fromBuilder,a=Ae(t.property)||t.property.fromBuilder;return!((o===a||ne(e.property,t.property))&&e.disabled===t.disabled)||lr(t.property),!1});function Ks({propertyKey:e,property:t,context:o,includeDescription:a,underlyingValueHasChanged:n,disabled:i,tableMode:s,partOfArray:l,partOfBlock:c,autoFocus:p}){const f=Z(),g=lr(t,f.plugins)?xe.Field:xe.FastField;return r.jsx(g,{name:e,children:m=>{let A;const b=Ee({propertyKey:e,propertyValue:m.field.value,propertyOrBuilder:t,values:m.form.values,path:o.path,entityId:o.entityId,fields:f.propertyConfigs});if(b===null||Bt(b))return r.jsx(r.Fragment,{});if(ut(b))A=fo;else if(b.Field)typeof b.Field=="function"&&(A=b.Field);else{const k=fr(b,f.propertyConfigs);if(!k)throw console.log("INTERNAL: Could not find field config for property",{propertyKey:e,resolvedProperty:b,fields:f.propertyConfigs,propertyConfig:k}),new Error(`INTERNAL: Could not find field config for property ${e}`);A=Ee({propertyOrBuilder:k.property,propertyValue:m.field.value,values:m.form.values,path:o.path,entityId:o.entityId,fields:f.propertyConfigs}).Field}if(!A)return console.warn(`No field component found for property ${e}`),console.warn("Property:",t),r.jsx("div",{children:`Currently the field ${b.dataType} is not supported`});const y={propertyKey:e,property:b,includeDescription:a,underlyingValueHasChanged:n,context:o,disabled:i,tableMode:s,partOfArray:l,partOfBlock:c,autoFocus:p};return r.jsx(Rs,{Component:A,componentProps:y,fieldProps:m})}})}function Rs({Component:e,componentProps:{propertyKey:t,property:o,includeDescription:a,underlyingValueHasChanged:n,tableMode:i,partOfArray:s,partOfBlock:l,autoFocus:c,context:p,disabled:f},fieldProps:h}){const{plugins:g}=Z(),m=o.customProps,A=h.field.value,b=h.meta.initialValue,y=xe.getIn(h.form.errors,t),k=xe.getIn(h.form.touched,t);console.log("error",t,y);const v=y&&(h.form.submitCount>0||o.validation?.unique)&&(!Array.isArray(y)||!!y.filter(S=>!!S).length),E=el(p.path,p.collection,t,o,e,g)??e,C=h.form.isSubmitting,B=d.useCallback((S,P)=>{h.form.setFieldTouched(t,!0,!1),h.form.setFieldValue(t,S,P)},[]),x=d.useCallback((S,P,I)=>{h.form.setFieldTouched(t,!0,!1),h.form.setFieldValue(S,P,I)},[]),F={propertyKey:t,value:A,initialValue:b,setValue:B,setFieldValue:x,error:y,touched:k,showError:v,isSubmitting:C,includeDescription:a??!0,property:o,disabled:f??!1,underlyingValueHasChanged:n??!1,tableMode:i??!1,partOfArray:s??!1,partOfBlock:l??!1,autoFocus:c??!1,customProps:m,context:p};return r.jsxs(oe,{children:[r.jsx(E,{...F}),n&&!C&&r.jsx(u.Typography,{variant:"caption",className:"ml-3.5",children:"This value has been updated elsewhere"})]})}const lr=(e,t)=>{if(t?.some(n=>n.form?.fieldBuilder)||Ae(e))return!0;const o=e,a=!!o.Field||"fromBuilder"in o&&o.fromBuilder;return o.dataType==="map"&&o.properties?a||Object.values(o.properties).some(n=>lr(n,t)):o.dataType==="array"&&"resolvedProperties"in o?a||o.resolvedProperties?.some(n=>n&&lr(n,t)):a};function el(e,t,o,a,n,i){return d.useRef((()=>{let l=null;return i&&i.forEach(c=>{const p=Eo(a);if(p&&c.form?.fieldBuilder){const f={fieldConfigId:p,propertyKey:o,property:a,Field:n,plugin:c,path:e,collection:t},h=c.form?.fieldBuilderEnabled?.(f);(h===void 0||h)&&(l=c.form.fieldBuilder(f)||l)}p||console.warn("INTERNAL: Field id not found for property",a)}),l})()).current}function an({propertyKey:e,value:t,showError:o,error:a,disabled:n,property:i,setValue:s,partOfBlock:l,tableMode:c,includeDescription:p,underlyingValueHasChanged:f,autoFocus:h,context:g}){const m=i.pickOnlySomeKeys||!1,A=(i.expanded===void 0?!0:i.expanded)||h;if(!i.properties)throw Error(`You need to specify a 'properties' prop (or specify a custom field) in your map property ${e}`);let b;m?t?b=Do(i.properties,...Object.keys(t).filter(v=>v in i.properties)):b={}:b=i.properties;const y=r.jsx(r.Fragment,{children:r.jsx("div",{className:"py-1 flex flex-col space-y-2",children:Object.entries(b).filter(([v,_])=>!Bt(_)).map(([v,_],E)=>{const C={propertyKey:`${e}.${v}`,disabled:n,property:_,includeDescription:p,underlyingValueHasChanged:f,context:g,tableMode:!1,partOfArray:!1,partOfBlock:!1,autoFocus:h&&E===0};return r.jsx("div",{children:r.jsx(st,{...C})},`map-${e}-${E}`)})})}),k=r.jsx(we,{icon:fe(i,"small"),required:i.validation?.required,title:i.name,className:"text-text-secondary dark:text-text-secondary-dark"});return r.jsxs(r.Fragment,{children:[!c&&!l&&r.jsx(u.ExpandablePanel,{initiallyExpanded:A,className:"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",title:k,children:y}),(c||l)&&y,r.jsx(ye,{includeDescription:p,showError:o,error:a?typeof a=="string"?a:"A property of this map has an error":void 0,disabled:n,property:i})]})}function nn({propertyKey:e,value:t,showError:o,error:a,disabled:n,property:i,setValue:s,tableMode:l,includeDescription:c,underlyingValueHasChanged:p,autoFocus:f,context:h}){const g=(i.expanded===void 0?!0:i.expanded)||f;if(!i.keyValue)throw Error(`Your property ${e} needs to have the 'keyValue' prop in order to use this field binding`);const m=r.jsx(ho,{value:t,setValue:s,disabled:n,fieldName:i.name??e}),A=r.jsx(we,{icon:fe(i,"small"),required:i.validation?.required,title:i.name,className:"text-text-secondary dark:text-text-secondary-dark"});return r.jsxs(r.Fragment,{children:[!l&&r.jsx(u.ExpandablePanel,{initiallyExpanded:g,title:A,className:"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",children:m}),l&&m,r.jsx(ye,{includeDescription:c,showError:o,error:a,disabled:n,property:i})]})}function ho({value:e,setValue:t,fieldName:o,disabled:a}){const[n,i]=d.useState(Object.keys(e??{}).map(c=>[go(),{key:c,dataType:Ao(e?.[c])??"string"}]));d.useEffect(()=>{const c=n.map(([m,{key:A}])=>A),p=Object.entries(e??{}).filter(([m,A])=>A!==void 0).map(([m])=>m),f=p.filter(m=>!c.includes(m)),h=c.filter(m=>!p.includes(m)),g=[...n];f.forEach(m=>{g.push([go(),{key:m,dataType:Ao(e?.[m])??"string"}])}),h.forEach(m=>{const A=g.findIndex(([b,{key:y}])=>y===m);g.splice(A,1)}),i(g)},[e]);const s=d.useRef(e??{}),l=(c,p)=>{if(!c){console.warn("No key selected for data type update");return}i(n.map(f=>f[0]===c?[f[0],{key:f[1].key,dataType:p}]:f)),t({...e??{},[n.find(f=>f[0]===c)?.[1].key??""]:xr(p)})};return r.jsxs("div",{className:"py-1 flex flex-col gap-1",children:[n.map(([c,{key:p,dataType:f}],h)=>{const g=p?e?.[p]:"",m=A=>{if(i(n.map(y=>y[0]===c?[c,{key:A??"",dataType:y[1].dataType}]:y)),typeof e=="object"&&A in e)return;const b={...e??{}};typeof s.current=="object"&&p in s.current?b[p]=void 0:delete b[p],t({...b,[A??""]:g})};return r.jsx(tl,{rowId:c,fieldKey:p,value:e??{},onDeleteClick:()=>{const A={...e??{}};s.current&&p in s.current?A[p]=void 0:delete A[p],i(n.filter(b=>b[0]!==c)),t({...A})},onFieldKeyChange:m,setValue:t,entryValue:g,dataType:f,disabled:a,updateDataType:l},c)}),r.jsx(u.Button,{variant:"text",size:"small",color:"primary",className:"w-full",disabled:a,startIcon:r.jsx(u.AddIcon,{}),onClick:c=>{c.preventDefault(),t({...e??{},"":null}),i([...n,[go(),{key:"",dataType:"string"}]])},children:o?`Add to ${o}`:"Add"})]})}function tl({rowId:e,fieldKey:t,value:o,onFieldKeyChange:a,onDeleteClick:n,setValue:i,entryValue:s,dataType:l,updateDataType:c,disabled:p}){const{locale:f}=Z();function h(m,A,b){return b==="string"||b==="number"?r.jsx(u.TextField,{placeholder:"value",value:m,type:b==="number"?"number":"text",size:"small",disabled:p||!A,onChange:y=>{if(b==="number"){const k=y.target.value?parseFloat(y.target.value):void 0;k&&isNaN(k)?i({...o,[A]:null}):k!=null?i({...o,[A]:k}):i({...o,[A]:null})}else i({...o,[A]:y.target.value})}},b):b==="date"?r.jsx(u.DateTimeField,{value:m,size:"small",locale:f,disabled:p||!A,onChange:y=>{i({...o,[A]:y})}}):b==="boolean"?r.jsx(u.BooleanSwitchWithLabel,{value:m,size:"small",position:"start",disabled:p||!A,onValueChange:y=>{i({...o,[A]:y})}}):b==="array"?r.jsx("div",{className:u.cn(u.defaultBorderMixin,"ml-2 pl-2 border-l border-solid"),children:r.jsx(ko,{value:m,newDefaultEntry:"",droppableId:e.toString(),addLabel:A?`Add to ${A}`:"Add",size:"small",disabled:p||!A,includeAddButton:!0,onValueChange:y=>{i({...o,[A]:y})},buildEntry:(y,k)=>r.jsx(rl,{index:y,id:k,value:m[y],disabled:p||!A,setValue:v=>{const _=[...m];_[y]=v,i({...o,[A]:_})}})})}):b==="map"?r.jsx("div",{className:u.cn(u.defaultBorderMixin,"ml-2 pl-2 border-l border-solid"),children:r.jsx(ho,{value:m,fieldName:A,setValue:y=>{i({...o,[A]:y})}})}):r.jsx(u.Typography,{variant:"caption",children:`Data type ${b} not supported yet`})}function g(m){c(e,m)}return r.jsxs(r.Fragment,{children:[r.jsxs(u.Typography,{component:"div",className:"font-mono flex flex-row gap-1",children:[r.jsx("div",{className:"w-[200px] max-w-[25%]",children:r.jsx(u.TextField,{value:t,placeholder:"key",disabled:p||s!=null&&s!=="",size:"small",onChange:m=>{a(m.target.value)}})}),r.jsx("div",{className:"flex-grow",children:l!=="map"&&l!=="array"&&h(s,t,l)}),r.jsxs(u.Menu,{trigger:r.jsx(u.IconButton,{size:"small",className:"h-7 w-7",children:r.jsx(u.ArrowDropDownIcon,{})}),children:[r.jsx(u.MenuItem,{dense:!0,onClick:()=>g("string"),children:"string"}),r.jsx(u.MenuItem,{dense:!0,onClick:()=>g("number"),children:"number"}),r.jsx(u.MenuItem,{dense:!0,onClick:()=>g("boolean"),children:"boolean"}),r.jsx(u.MenuItem,{dense:!0,onClick:()=>g("date"),children:"date"}),r.jsx(u.MenuItem,{dense:!0,onClick:()=>g("map"),children:"map"}),r.jsx(u.MenuItem,{dense:!0,onClick:()=>g("array"),children:"array"})]}),r.jsx(u.IconButton,{"aria-label":"delete",size:"small",onClick:n,className:"h-7 w-7",children:r.jsx(u.RemoveIcon,{size:"small"})})]},e.toString()),(l==="map"||l==="array")&&h(s,t,l)]})}function rl({id:e,index:t,value:o,setValue:a}){const{locale:n}=Z(),[i,s]=d.useState(Ao(o)??"string");function l(p){s(p)}function c(p,f){return f==="string"||f==="number"?r.jsx(u.TextField,{value:p,type:f==="number"?"number":"text",size:"small",onChange:h=>{if(f==="number"){const g=h.target.value?parseFloat(h.target.value):void 0;g&&isNaN(g)?a(null):g!=null?a(g):a(null)}else a(h.target.value)}}):f==="date"?r.jsx(u.DateTimeField,{value:p,size:"small",locale:n,onChange:h=>{a(h)}}):f==="boolean"?r.jsx(u.BooleanSwitchWithLabel,{value:p,size:"small",position:"start",onValueChange:h=>{a(h)}}):f==="array"?r.jsx(u.Typography,{variant:"caption",children:"Arrays of arrays are not supported."}):f==="map"?r.jsx("div",{className:u.cn(u.defaultBorderMixin,"ml-2 pl-2 border-l border-solid"),children:r.jsx(ho,{value:p,setValue:h=>{a(h)}})}):r.jsx(u.Typography,{variant:"caption",children:`Data type ${f} not supported yet`})}return r.jsxs(r.Fragment,{children:[r.jsxs(u.Typography,{component:"div",className:"font-mono flex min-h-12 flex-row gap-1 items-center",children:[r.jsx("div",{className:"flex-grow",children:i!=="map"&&c(o,i)}),r.jsxs(u.Menu,{trigger:r.jsx(u.IconButton,{size:"small",className:"h-7 w-7",children:r.jsx(u.ArrowDropDownIcon,{})}),children:[r.jsx(u.MenuItem,{dense:!0,onClick:()=>l("string"),children:"string"}),r.jsx(u.MenuItem,{dense:!0,onClick:()=>l("number"),children:"number"}),r.jsx(u.MenuItem,{dense:!0,onClick:()=>l("boolean"),children:"boolean"}),r.jsx(u.MenuItem,{dense:!0,onClick:()=>l("map"),children:"map"}),r.jsx(u.MenuItem,{dense:!0,onClick:()=>l("date"),children:"date"})]})]},e.toString()),i==="map"&&c(o,i)]})}function go(){return Math.floor(Math.random()*Math.floor(Number.MAX_SAFE_INTEGER))}function Ao(e){if(typeof e=="string"||e===null)return"string";if(typeof e=="number")return"number";if(typeof e=="boolean")return"boolean";if(Array.isArray(e))return"array";if(e instanceof Date)return"date";if(e instanceof Te)return"reference";if(e instanceof Yt)return"geopoint";if(typeof e=="object")return"map"}function sn({propertyKey:e,value:t,error:o,showError:a,isSubmitting:n,setValue:i,setFieldValue:s,tableMode:l,property:c,includeDescription:p,underlyingValueHasChanged:f,context:h,disabled:g}){if(!c.of)throw Error("RepeatFieldBinding misconfiguration. Property `of` not set");if(!c.resolvedProperties||!Array.isArray(c.resolvedProperties))throw Error("RepeatFieldBinding - Internal error: Expected array in 'property.resolvedProperties'");const m=c.expanded===void 0?!0:c.expanded,A=c.of,[b,y]=d.useState();Se({property:c,value:t,setValue:i});const k=(E,C)=>{const B=c.resolvedProperties[E]??A,x={propertyKey:`${e}.${E}`,disabled:g,property:B,includeDescription:p,underlyingValueHasChanged:f,context:h,tableMode:!1,partOfArray:!0,partOfBlock:!1,autoFocus:C===b};return r.jsx(st,{...x})},v=r.jsx(sr,{value:t,addLabel:c.name?"Add entry to "+c.name:"Add entry",name:e,setFieldValue:s,buildEntry:k,onInternalIdAdded:y,disabled:n||!!c.disabled,includeAddButton:!c.disabled,newDefaultEntry:c.of.defaultValue}),_=r.jsx(we,{icon:fe(c,"small"),required:c.validation?.required,title:c.name,className:"text-text-secondary dark:text-text-secondary-dark"});return r.jsxs(r.Fragment,{children:[!l&&r.jsx(u.ExpandablePanel,{initiallyExpanded:m,className:"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",title:_,children:v}),l&&v,r.jsx(ye,{includeDescription:p,showError:a,error:o,disabled:g,property:c})]})}function ln({propertyKey:e,value:t,error:o,showError:a,isSubmitting:n,setValue:i,setFieldValue:s,tableMode:l,property:c,includeDescription:p,underlyingValueHasChanged:f,context:h,disabled:g}){if(!c.oneOf)throw Error("ArrayOneOfField misconfiguration. Property `oneOf` not set");const m=c.expanded===void 0?!0:c.expanded;Se({property:c,value:t,setValue:i});const[A,b]=d.useState(),y=d.useCallback((E,C)=>r.jsx(ol,{name:`${e}.${E}`,index:E,value:t[E],typeField:c.oneOf.typeField??Et,valueField:c.oneOf.valueField??Lt,properties:c.oneOf.properties,autoFocus:C===A,context:h},`array_one_of_${E}`),[h,A,c.oneOf,e,t]),k=r.jsx(we,{icon:fe(c,"small"),required:c.validation?.required,title:c.name,className:"text-text-secondary dark:text-text-secondary-dark"}),v=Object.keys(c.oneOf.properties)[0],_=r.jsx(sr,{value:t,name:e,addLabel:c.name?"Add entry to "+c.name:"Add entry",buildEntry:y,onInternalIdAdded:b,disabled:n||!!c.disabled,includeAddButton:!c.disabled,setFieldValue:s,newDefaultEntry:{[c.oneOf.typeField??Et]:v,[c.oneOf.valueField??Lt]:qt(c.oneOf.properties[v])}});return r.jsxs(r.Fragment,{children:[!l&&r.jsx(u.ExpandablePanel,{className:"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",initiallyExpanded:m,title:k,children:_}),l&&_,r.jsx(ye,{includeDescription:p,showError:a,error:o,disabled:g,property:c})]})}function ol({name:e,index:t,value:o,typeField:a,valueField:n,properties:i,autoFocus:s,context:l}){const c=o&&o[a],[p,f]=d.useState(c??void 0),h=xe.useFormikContext();d.useEffect(()=>{c||k(Object.keys(i)[0])},[]),d.useEffect(()=>{c!==p&&f(c)},[c]);const g=p?i[p]:void 0,m=Object.entries(i).map(([v,_])=>({id:v,label:_.name??v})),A=`${e}.${a}`,b=`${e}.${n}`,y=g?{propertyKey:b,property:g,context:l,autoFocus:s,partOfArray:!1,partOfBlock:!0,tableMode:!1}:void 0,k=v=>{const _=v?i[v]:void 0;f(v),h.setFieldTouched(A),h.setFieldValue(A,v),h.setFieldValue(b,_?qt(_):null)};return r.jsxs("div",{className:u.cn(u.paperMixin,"bg-transparent p-4 my-4 py-8"),children:[r.jsx(xe.FastField,{required:!0,name:A,children:v=>r.jsx(r.Fragment,{children:r.jsx(u.Select,{className:"mb-2",placeholder:r.jsx(u.Typography,{variant:"caption",className:"px-4 py-2 font-medium",children:"Type"}),size:"small",position:"item-aligned",value:v.field.value!==void 0&&v.field.value!==null?v.field.value:"",renderValue:_=>r.jsx(ke,{enumKey:_,enumValues:m,size:"small"}),onValueChange:_=>{k(_)},children:m.map(_=>r.jsx(u.SelectItem,{value:String(_.id),children:r.jsx(ke,{enumKey:_.id,enumValues:m,size:"small"})},_.id))})})}),y&&r.jsx(st,{...y},`form_control_${e}_${p}`)]})}const al=new zn;try{ot.use(ot.Plugins.AutoResize,{min:100}),ot.unuse(ot.Plugins.FontUnderline),ot.unuse(ot.Plugins.Clear)}catch{}function cn({propertyKey:e,value:t,setValue:o,error:a,showError:n,disabled:i,autoFocus:s,touched:l,property:c,tableMode:p,includeDescription:f,context:h}){const[g,m]=d.useState(t),A=d.useRef(t);u.useInjectStyles("MarkdownFieldBinding",nl);const b=d.useDeferredValue({internalValue:g,value:t});return d.useEffect(()=>{A.current=t,m(t)},[t]),d.useEffect(()=>{b.internalValue!==A.current&&o(b.internalValue)},[b]),r.jsxs(r.Fragment,{children:[!p&&r.jsx(u.Typography,{variant:"caption",className:"flex-grow",children:r.jsx(we,{icon:fe(c,"small"),required:c.validation?.required,title:c.name,className:"text-text-secondary dark:text-text-secondary-dark ml-3.5"})}),r.jsx(ot,{value:g??"",className:u.cn(u.fieldBackgroundMixin,i?u.fieldBackgroundDisabledMixin:u.fieldBackgroundHoverMixin,"text-base"),readOnly:i,renderHTML:y=>al.render(y),view:{menu:!0,md:!0,html:!1},onChange:({html:y,text:k})=>{m(k??null)}}),r.jsx(ye,{includeDescription:f,showError:n,error:a,disabled:i,property:c})]})}const nl=`
|
|
97
5
|
@font-face {
|
|
98
6
|
font-family: rmel-iconfont;
|
|
99
7
|
src: url(data:application/vnd.ms-fontobject;base64,fBkAAMAYAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAB9vj4gAAAAAAAAAAAAAAAAAAAAAAABoAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdAAAAA4AUgBlAGcAdQBsAGEAcgAAABYAVgBlAHIAcwBpAG8AbgAgADEALgAwAAAAGgByAG0AZQBsAC0AaQBjAG8AbgBmAG8AbgB0AAAAAAAAAQAAAAsAgAADADBHU1VCsP6z7QAAATgAAABCT1MvMj3jT5QAAAF8AAAAVmNtYXBA5I9dAAACPAAAAwhnbHlmMImhbQAABXwAAA9gaGVhZBtQ+k8AAADgAAAANmhoZWEH3gObAAAAvAAAACRobXR4aAAAAAAAAdQAAABobG9jYTX6MgAAAAVEAAAANm1heHABMAB7AAABGAAAACBuYW1lc9ztwgAAFNwAAAKpcG9zdCcpv64AABeIAAABNQABAAADgP+AAFwEAAAAAAAEAAABAAAAAAAAAAAAAAAAAAAAGgABAAAAAQAA4uPbB18PPPUACwQAAAAAANwY2ykAAAAA3BjbKQAA//8EAAMBAAAACAACAAAAAAAAAAEAAAAaAG8ADAAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQAAAAoAHgAsAAFERkxUAAgABAAAAAAAAAABAAAAAWxpZ2EACAAAAAEAAAABAAQABAAAAAEACAABAAYAAAABAAAAAAABBAABkAAFAAgCiQLMAAAAjwKJAswAAAHrADIBCAAAAgAFAwAAAAAAAAAAAAAAAAAAAAAAAAAAAABQZkVkAEDnbe2iA4D/gABcA4AAgAAAAAEAAAAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAUAAAADAAAALAAAAAQAAAHMAAEAAAAAAMYAAwABAAAALAADAAoAAAHMAAQAmgAAABYAEAADAAbnbelB7TztRe1h7XXteO2A7Y3tov//AADnbelB7TvtRO1f7W/td+2A7Yztn///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAWABYAFgAYABoAHgAqACwALAAuAAAAAQAEAAUAAwAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAAgAUABUAFgAXABgAGQAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAABPAAAAAAAAAAZAADnbQAA520AAAABAADpQQAA6UEAAAAEAADtOwAA7TsAAAAFAADtPAAA7TwAAAADAADtRAAA7UQAAAAGAADtRQAA7UUAAAAHAADtXwAA7V8AAAAIAADtYAAA7WAAAAAJAADtYQAA7WEAAAAKAADtbwAA7W8AAAALAADtcAAA7XAAAAAMAADtcQAA7XEAAAANAADtcgAA7XIAAAAOAADtcwAA7XMAAAAPAADtdAAA7XQAAAAQAADtdQAA7XUAAAARAADtdwAA7XcAAAASAADteAAA7XgAAAATAADtgAAA7YAAAAACAADtjAAA7YwAAAAUAADtjQAA7Y0AAAAVAADtnwAA7Z8AAAAWAADtoAAA7aAAAAAXAADtoQAA7aEAAAAYAADtogAA7aIAAAAZAAAAAABmAMwBHgGEAbwB/gJmAsgC/gM0A3IDogRABKgE7gUuBXAFygYKBmoGpAbEBugHRgewAAAABQAAAAADVgLWAAsAGAAlADQAQAAAEyEyFhQGByEuATQ2Fz4BNyEeARQGIyEiJgM0NjchHgEUBiMhIiY3PgEzITIeARQOASMhIiYnFhQPAQYmNRE0NhfWAlQSGRkS/awSGRnaARgTAWASGRkS/qASGfQZEgJUEhkZEv2sEhnzARgTAWAMFAsLFAz+oBIZOQgIkgseHgsC1RklGAEBGCUZ8hMYAQEYJRkZ/oUTGAEBGCUZGdkSGQsVFxQMGoYGFgaVDAwRASoRDAwAAAAADAAAAAADqwKrAA8AEwAXABsAHwAjACcAMwA3ADsAPwBDAAABIQ4BBwMeARchPgE3ES4BBTMVIxUzFSMnMxUjFTMVKwI1MzUjNTMBISImNDYzITIWFAY3IzUzNSM1MxcjNTM1IzUzA1X9ViQwAQEBMSQCqiQxAQEx/lxWVlZWgFZWVlYqVlZWVgFV/wASGBgSAQASGBgZVlZWVoBWVlZWAqsBMST+ViQxAQExJAGqJDF/VipW1lYqVlYqVv6AGCQZGSQYqlYqVtZWKlYAAwAAAAADKwMAAA8AHwAzAAAlHgEXIT4BNxEuASchDgEHMyEyFhcRDgEHIS4BJxE+ASUnJisBIg8BIyIGFBYzITI2NCYjAQABMCQBViQwAQEwJP6qJDABgAEAExcBARcT/wATFwEBFwEoHgsStBILHmsTFxcTAgARGRkRVSQwAQEwJAGrJDABATAkFxT+qxEZAQEZEQFVFBfVHg0NHhcnFxcnFwADAAAAAAOrAtkAFgAtAD4AAAEVBg8BBiIvASY0PwEnJjQ/ATYyHwEWBTc2NC8BJiIPAQYHFRYfARYyPwE2NCcBJyYGBwMGFh8BFjY3EzYmJwOrAQmwBxEHHgYGk5MGBh4HEQewCf0PkwYGHwYSBrAJAQEJsAcRBx4GBgFCKQkPBOMCBwgoCQ8E4gMHCQGIEA0KsAYGHgcRBpOTBhIGHgYGsAoVkwYRBx4GBrAKDRANCrAGBh4GEgYB2Q8DBwj9jAgQAw4DBwgCcwgPBAACAAAAAAOaAm8AEAAhAAAlJzc2NCYiDwEGFB8BFjI2NCU3JyY0NjIfARYUDwEGIiY0AXOmpg0ZJAzEDQ3EDiEaAQ2mpg0aIQ7EDQ3EDiEa2qamDiEaDcQNIg3EDRohDqamDCQZDcQNIg3EDRkkAAAAAwAAAAADuAKsAAsAFwAjAAABDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgEDDgEHHgEXPgE3LgECAJjrNTXrmJjrNTXrmFZwAgJwVlZwAgJwVjRDAQFDNDRDAQFDAqwCpIaGpAICpIaGpP4OAnBWVnACAnBWVnABPgFDNDRDAQFDNDRDAAAABQAAAAADgAKrAAsAFwAjADAAQAAAEyEyNjQmIyEiBhQWFyE+ATQmJyEOARQWEyEyNjQmIyEiBhQWJx4BFyE+ATQmJyEOASUhHgEXEQ4BByEuATURNDarAQATFxcT/wARGRkRAQATFxcT/wARGRkRAQATFxcT/wARGRkaARkRAQATFxcT/wARGQHUAQARGQEBGRH/ABMXFwEAFycXFycXqwEZIhkBARkiGQFVFycXFycX1RMXAQEXJhcBARcYARcT/gARGQEBGRECABMXAAAAAAMAAAAAA6sCVgAZACYAQAAAASMiBhQWOwEeARcOAQcjIgYUFjsBPgE3LgEFHgEXIT4BNCYnIQ4BFyMuASc+ATczMjY0JisBDgEHHgEXMzI2NCYC1YASGBgSgDdIAQFIN4ASGBgSgFt4AwN4/iUBGBIBABIYGBL/ABIYVYA3SAEBSDeAEhgYEoBbeAMDeFuAEhgYAlUYJBkBSTY2SQEZJBgCeFtbeNMSGAEBGCQYAQEYkgFJNjZJARkkGAJ4W1t4AhgkGQABAAAAAAOsAisAHgAAAS4BJw4BBwYWFxY2Nz4BNzIWFwcGFhczPgE3NS4BBwMSO5ZVh9Q4ChMXFCMJK6FnP28sURMTHu4SGAECMRYBvDQ6AQKJchcqCAYPElZpASslUhYxAgEYEu8dFBMAAAABAAAAAAOyAisAHgAAAQ4BBycmBgcVHgEXMz4BLwE+ATMeARceATc+AScuAQIUVZY7URYxAgEYEu4eFBNSLW8+Z6ErCSQTFxMKOdMCKwE6NFAUFB3vEhgBAjEWUiUrAWlWEg8GCCoXcokAAAADAAAAAAL1Ar8AFAAcACQAAAE+ATcuAScjDgEHER4BFyE+ATc0JiUzHgEUBgcjEyM1Mx4BFAYCkyEpAQJmTu8UGQEBGRQBB0lpAjT+1IgdJycdiJ+fnx0nJwGKF0QkTmYCARoT/d4TGgECYUk1UtkBJjsmAf7viQEmOyYAAQAAAAADEgK/ABwAAAEeARczAyMOARQWFzM+ATQmJyMTMz4BNCYnIw4BAaUBJh0hnDsdJiYd5B0mJh0hnDsdJiYd5B0mAnodJgH+lAEmOicBASc6JgEBbAEmOicBAScABgAAAAADlgLWAAsAFwAjAEEAUgBuAAABIT4BNCYnIQ4BFBYBIQ4BFBYXIT4BNCYDIQ4BFBYXIT4BNCYFIyIGFBY7ARUjIgYUFjsBFSMiBhQWOwEyNjc1LgEDMxUeATI2PQE0JisBIgYUFhcjIgYUFjsBBwYdARQWOwEyNjQmKwE3Nj0BLgEBawIAEhgYEv4AEhkZAhL+ABIZGRICABIYGBL+ABIZGRICABIYGP1YVQkMDAlAFQoLCwoVQAkMDAlVCgsBAQtfFQELEwwMCSsJDAxeVQkMDAk3RwUMCVUKCwsKN0gFAQsCVQEYJBgBARgkGP5VARgkGAEBGCQYAQEBGCQYAQEYJBjVDBIMFgwSDBYMEgwMCYAJDAHWawkMDAmACQwMEgzWDBIMVAYICQkMDBIMVAYICQkMAAAAAAYAAAAAA4sCwAAIABEAGgAmADIAPwAAEw4BFBYyNjQmAw4BFBYyNjQmAw4BFBYyNjQmFyE+ATQmJyEOARQWNyE+ATQmJyEOARQWAx4BFyE+ATQmJyEOAbUbJCQ3JCQcGyQkNyQkHBskJDYlJI8CABIYGBL+ABIYGBICABIYGBL+ABIYGBkBGBICABIYGBL+ABIYAcABJDYkJDYkAQEBJDYkJDYk/gEBJDYkJDYkagEYJBgBARgkGP8BGCQYAQEYJBgBKhIYAQEYJBgBARgAAAACAAAAAANWAlYAFgAtAAAlMjY/ATY9AS4BKwEiBh0BFBYXMwcGFgUyNj8BNj0BNCYrASIGBxUeARczBwYWATIRGwc9CQEYEqsSGBgSViwOIAHMEBsIPAkYEqsSGAEBGBJVLA0gqxEOeRIUwhIYGBKrEhgBWB4zAREOeRIUwhIYGBKrEhgBWB4zAAAAAAMAAAAAA4ACwAAIABkAJQAAJT4BNzUjFR4BAR4BFzMVMzUzPgE0JichDgEDIT4BNCYnIQ4BFBYCACQwAaoBMP75ASQblqqWGyQkG/4qGyQrAqoSGRkS/VYSGRlAATAkKyskMAI/GyQBgIABJDYkAQEk/noBGCQYAQEYJBgAAAAAAgAA//8DKwMBABsAKAAAJT4BNxEuASIGBxEUBgcGLgI1ES4BIgYHER4BBx4BMyEyNjQmIyEiBgIiYnoCAR4tHgFBNSFBNR0BHi0eAQOm1AEYEgIAEhgYEv4AEhitD5NlARcWHh4W/uQ3UwwHDys8IwEgFh4eFv7gdpR2EhkZJBgYAAAAAwAAAAADcALHAAsALQA5AAATIT4BNCYjISIGFBYFISIGFBYXITIWFxYGByM1LgEPAQYUHwEWNjc1Mz4BJy4BBSMiBhQWFzM+ATQmwAJVEhkZEv2rEhgYAgv+BxIYGBICBiAzBgUxKGABGQtMBgZMDBgBVU1iBQhk/m2rEhgYEqsSGBgCcQEYJBgYJBisGCQYAScgKTkCIg8KCkwHEQdMCgoPIgJrTkRV/xgkGAEBGCQYAAAAAgAAAAADlgLAABQAKAAAARQWFzMRHgEyNjcRMz4BNCYnIQ4BAzMVFBYyNjc1MzI2NCYnIQ4BFBYBayQclQEkNiQBlRwkJBz+VhwkwEAkNyQBQBskJBv/ABwkJAKAGyQB/kAbJCQbAcABJDYkAQEk/tDrGyQkG+skNyQBASQ3JAAKAAAAAAN4AvgADwAWABoAIQAlACkALQA0ADgAPwAAASEOAQcRHgEXIT4BNxEuAQEjIiY9ATM1IzUzNSM1NDY7ARMjNTM1IzUzNSM1MxMjNTMVFAY3IzUzNSM1MzIWFQMs/aggKgEBKiACWCAqAQEq/h5xDxaWlpaWFg9x4ZaWlpaWlrxxlhYWlpaWcQ8WAvcBKiD9qCAqAQEqIAJYICr9XhYPcUuWS3EPFv2olkuWS5b9qJZxDxbhlkuWFg8AAAACAAD//wOAAwAADwAgAAAlES4BJyEOAQcRHgEXIT4BJRc3NjIfARYGIyEiJj8BPgEDgAEwJP2qJDABATAkAlYkMP39WYUHFAeVCAwN/gEOCwhqBxRVAlYkMAEBMCT9qiQwAQEw+2yqCAnHCxcXC4kIAQAAAAEAAAAAAzUCNgAQAAABBwYUFjI/ARcWMjY0LwEmIgHZ/hAhLBHX1xEsIRD+EC4CJv4RLCEQ19cQISwR/hAAAAABAAAAAAM1AjYAEgAAAQcnJiciDgEWHwEWMj8BNjQuAQLW1tcQFxEbDQYM/hEsEf4QIS0CJtfXDwESICAM/hAQ/hAtIAEAAAAEAAAAAANrAusAEAAhADMARAAANzMVFBYyNj0BNCYrASIGFBYTIyIGFBY7ATI2PQE0JiIGFQEyNj0BMzI2NCYrASIGHQEUFhM1NCYiBh0BFBY7ATI2NCYjyWgeLB0dFpwWHR1+aBYdHRacFh0dLB4BahYeaBYdHRacFh0dSh4sHR0WnBYdHRaxaBYdHRacFh0dLB4Bnh4sHR0WnBYdHRb9Xx0WaB4sHR0WnBYdAjloFh0dFpwWHR0sHgAAAAQAAAAAA1QC1AARACMANABGAAATDgEHFR4BFzM+ATQmKwE1NCYnPgE9ATMyNjQmJyMOAQcVHgEBIyIGFBYXMz4BNzUuASIGFQMeATsBFRQWMjY3NS4BJyMOAd0VGwEBGxWRFRsbFWEcFBQcYRUbGxWRFRsBARsCK2EVGxsVkRUbAQEbKRySARsVYRwpGwEBGxWRFRsBHwEbFZEVGwEBGykcYRUbwwEbFWEcKRsBARsVkRUb/qscKRsBARsVkRUbGxUBtRQcYRUbGxWRFRsBARsAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQANABUAAQAAAAAAAgAHACIAAQAAAAAAAwANACkAAQAAAAAABAANADYAAQAAAAAABQALAEMAAQAAAAAABgANAE4AAQAAAAAACgArAFsAAQAAAAAACwATAIYAAwABBAkAAAAqAJkAAwABBAkAAQAaAMMAAwABBAkAAgAOAN0AAwABBAkAAwAaAOsAAwABBAkABAAaAQUAAwABBAkABQAWAR8AAwABBAkABgAaATUAAwABBAkACgBWAU8AAwABBAkACwAmAaUKQ3JlYXRlZCBieSBpY29uZm9udApybWVsLWljb25mb250UmVndWxhcnJtZWwtaWNvbmZvbnRybWVsLWljb25mb250VmVyc2lvbiAxLjBybWVsLWljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwADdGFiCGtleWJvYXJkBmRlbGV0ZQpjb2RlLWJsb2NrBGNvZGUKdmlzaWJpbGl0eQp2aWV3LXNwbGl0BGxpbmsEcmVkbwR1bmRvBGJvbGQGaXRhbGljDGxpc3Qtb3JkZXJlZA5saXN0LXVub3JkZXJlZAVxdW90ZQ1zdHJpa2V0aHJvdWdoCXVuZGVybGluZQR3cmFwCWZvbnQtc2l6ZQRncmlkBWltYWdlC2V4cGFuZC1sZXNzC2V4cGFuZC1tb3JlD2Z1bGxzY3JlZW4tZXhpdApmdWxsc2NyZWVuAAAAAAA=);
|
|
@@ -676,936 +584,6 @@
|
|
|
676
584
|
.rc-md-editor .header-list .list-item:hover {
|
|
677
585
|
}
|
|
678
586
|
|
|
679
|
-
`;function Bi({propertyKey:e,value:t,error:c,showError:i,isSubmitting:l,setValue:a,tableMode:s,property:d,includeDescription:u,underlyingValueHasChanged:A,context:_,disabled:g}){if(!Array.isArray(d.resolvedProperties))throw Error("ArrayCustomShapedFieldBinding misconfiguration. Property `of` not set");const y=d.expanded===void 0?!0:d.expanded;Ne({property:d,value:t,setValue:a});const h=n.jsx(Ce,{icon:we(d),required:d.validation?.required,className:"text-text-secondary dark:text-text-secondary-dark",title:d.name}),I=d.resolvedProperties.map((b,p)=>{const w={propertyKey:`${e}[${p}]`,disabled:g,property:b,includeDescription:u,underlyingValueHasChanged:A,context:_,tableMode:!1,partOfArray:!0,partOfBlock:!1,autoFocus:!1};return n.jsx("div",{className:"pb-4",children:n.jsx(bn,{...w})},`custom_shaped_array_${p}`)});return n.jsxs(n.Fragment,{children:[!s&&n.jsx(fn,{initiallyExpanded:y,title:h,className:"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",children:I}),s&&I,n.jsx(Se,{includeDescription:u,showError:i,error:c,disabled:g,property:d})]})}De.addMethod(De.array,"uniqueInArray",function(e=c=>c,t){return this.test("uniqueInArray",t,c=>!c||c.length===new Set(c.map(e)).size)});function Ei(e,t,c){const i={};return Object.entries(t).forEach(([l,a])=>{i[l]=lo({property:a,customFieldValidator:c,name:l,entityId:e})}),De.object().shape(i)}function lo(e){const t=e.property;if(We(t))throw console.error("Error in property",e),Error("Trying to create a yup mapping from a property builder. Please use resolved properties only");if(t.dataType==="string")return kz(e);if(t.dataType==="number")return mz(e);if(t.dataType==="boolean")return Sz(e);if(t.dataType==="map")return wz(e);if(t.dataType==="array")return Ez(e);if(t.dataType==="date")return Kz(e);if(t.dataType==="geopoint")return vz(e);if(t.dataType==="reference")return Cz(e);throw console.error("Unsupported data type in yup mapping",t),Error("Unsupported data type in yup mapping")}function wz({property:e,entityId:t,customFieldValidator:c,name:i}){const l={};return e.validation,e.properties&&Object.entries(e.properties).forEach(([a,s])=>{l[a]=lo({property:s,parentProperty:e,customFieldValidator:c,name:`${i}[${a}]`,entityId:t})}),De.object().shape(l)}function kz({property:e,parentProperty:t,customFieldValidator:c,name:i,entityId:l}){let a=De.string();const s=e.validation;if(e.enumValues){s?.required&&(a=a.required(s?.requiredMessage?s.requiredMessage:"Required"));const d=sn(e.enumValues);a=a.oneOf((s?.required?d:[...d,null]).map(u=>u?.id??null)).nullable(!0)}if(s){if(a=s.required?a.required(s?.requiredMessage?s.requiredMessage:"Required").nullable(!0):a.notRequired().nullable(!0),s.unique&&c&&i&&(a=a.test("unique","This value already exists and should be unique",(d,u)=>c({name:i,property:e,parentProperty:t,value:d,entityId:l}))),(s.min||s.min===0)&&(a=a.min(s.min,`${e.name} must be min ${s.min} characters long`)),(s.max||s.max===0)&&(a=a.max(s.max,`${e.name} must be max ${s.max} characters long`)),s.matches){const d=typeof s.matches=="string"?si(s.matches):s.matches;d&&(a=a.matches(d,s.matchesMessage?{message:s.matchesMessage}:void 0))}s.trim&&(a=a.trim()),s.lowercase&&(a=a.lowercase()),s.uppercase&&(a=a.uppercase()),e.email&&(a=a.email(`${e.name} must be an email`)),e.url&&(a=a.url(`${e.name} must be a url`))}else a=a.notRequired().nullable(!0);return a}function mz({property:e,parentProperty:t,customFieldValidator:c,name:i,entityId:l}){const a=e.validation;let s=De.number().typeError("Must be a number");return a?(s=a.required?s.required(a.requiredMessage?a.requiredMessage:"Required").nullable(!0):s.notRequired().nullable(!0),a.unique&&c&&i&&(s=s.test("unique","This value already exists and should be unique",d=>c({name:i,property:e,parentProperty:t,value:d,entityId:l}))),(a.min||a.min===0)&&(s=s.min(a.min,`${e.name} must be higher or equal to ${a.min}`)),(a.max||a.max===0)&&(s=s.max(a.max,`${e.name} must be lower or equal to ${a.max}`)),(a.lessThan||a.lessThan===0)&&(s=s.lessThan(a.lessThan,`${e.name} must be higher than ${a.lessThan}`)),(a.moreThan||a.moreThan===0)&&(s=s.moreThan(a.moreThan,`${e.name} must be lower than ${a.moreThan}`)),a.positive&&(s=s.positive(`${e.name} must be positive`)),a.negative&&(s=s.negative(`${e.name} must be negative`)),a.integer&&(s=s.integer(`${e.name} must be an integer`))):s=s.notRequired().nullable(!0),s}function vz({property:e,parentProperty:t,customFieldValidator:c,name:i,entityId:l}){let a=De.object();const s=e.validation;return s?.unique&&c&&i&&(a=a.test("unique","This value already exists and should be unique",d=>c({name:i,property:e,parentProperty:t,value:d,entityId:l}))),s?.required?a=a.required(s.requiredMessage).nullable(!0):a=a.notRequired().nullable(!0),a}function Kz({property:e,parentProperty:t,customFieldValidator:c,name:i,entityId:l}){if(e.autoValue)return De.object().nullable();let a=De.date();const s=e.validation;return s?(a=s.required?a.required(s?.requiredMessage?s.requiredMessage:"Required"):a.notRequired(),s.unique&&c&&i&&(a=a.test("unique","This value already exists and should be unique",d=>c({name:i,property:e,parentProperty:t,value:d,entityId:l}))),s.min&&(a=a.min(s.min,`${e.name} must be after ${s.min}`)),s.max&&(a=a.max(s.max,`${e.name} must be before ${s.min}`))):a=a.notRequired(),a.transform(d=>d instanceof Date?d:null).nullable()}function Cz({property:e,parentProperty:t,customFieldValidator:c,name:i,entityId:l}){let a=De.object();const s=e.validation;return s?(a=s.required?a.required(s?.requiredMessage?s.requiredMessage:"Required").nullable(!0):a.notRequired().nullable(!0),s.unique&&c&&i&&(a=a.test("unique","This value already exists and should be unique",d=>c({name:i,property:e,parentProperty:t,value:d,entityId:l})))):a=a.notRequired().nullable(!0),a}function Sz({property:e,parentProperty:t,customFieldValidator:c,name:i,entityId:l}){let a=De.boolean();const s=e.validation;return s?(a=s.required?a.required(s?.requiredMessage?s.requiredMessage:"Required").nullable(!0):a.notRequired().nullable(!0),s.unique&&c&&i&&(a=a.test("unique","This value already exists and should be unique",d=>c({name:i,property:e,parentProperty:t,value:d,entityId:l})))):a=a.notRequired().nullable(!0),a}function Bz(e){return e.validation?.uniqueInArray?!0:e.dataType==="map"&&e.properties?Object.entries(e.properties).filter(([t,c])=>c.validation?.uniqueInArray):!1}function Ez({property:e,parentProperty:t,customFieldValidator:c,name:i,entityId:l}){let a=De.array();if(e.of)if(Array.isArray(e.of)){const d=e.of.map((u,A)=>({[`${i}[${A}]`]:lo({property:u,parentProperty:e,entityId:l})})).reduce((u,A)=>({...u,...A}),{});return De.array().of(De.mixed().test("Dynamic object validation","Dynamic object validation error",(u,A)=>dn(d,A.path).validate(u)))}else{a=a.of(lo({property:e.of,parentProperty:e,entityId:l}));const d=Bz(e.of);d&&(typeof d=="boolean"?a=a.uniqueInArray(u=>u,`${e.name} should have unique values within the array`):Array.isArray(d)&&d.forEach(([u,A])=>{a=a.uniqueInArray(_=>_&&_[u],`${e.name} → ${A.name??u}: should have unique values within the array`)}))}const s=e.validation;return s?(a=s.required?a.required(s?.requiredMessage?s.requiredMessage:"Required").nullable(!0):a.notRequired().nullable(!0),(s.min||s.min===0)&&(a=a.min(s.min,`${e.name} should be min ${s.min} entries long`)),s.max&&(a=a.max(s.max,`${e.name} should be max ${s.max} entries long`))):a=a.notRequired().nullable(!0),a}const Fz=({containerRef:e})=>{const{isSubmitting:t,isValidating:c,errors:i}=Fe.useFormikContext();return f.useEffect(()=>{const l=Object.keys(i);if(l.length>0&&t&&!c){const a=e?.current?.querySelector(`#form_field_${l[0]}`);if(a&&e?.current){const s=Fi(e.current);if(s){const u=a.getBoundingClientRect().top;s.scrollTo({top:s.scrollTop+u-64,behavior:"smooth"})}const d=a.querySelector("input");d&&d.focus()}}},[t,c,i,e]),null},Pz=e=>{const t=e&&e.scrollHeight>e.clientHeight,c=e?window.getComputedStyle(e).overflowY:null,i=c&&c.indexOf("hidden")!==-1;return t&&!i},Fi=e=>!e||e===document.body?document.body:Pz(e)?e:Fi(e.parentNode);function Dz({customId:e,entityId:t,status:c,onChange:i,error:l,entity:a}){const s=c==="existing"||!e,d=c!=="existing"&&!e,u=f.useMemo(()=>{if(!(!e||typeof e=="boolean"||e==="optional"))return sn(e)},[e]),A=cn(),{copy:_}=rc({onSuccess:h=>A.open({type:"success",message:`Copied ${h}`})}),g=re(),y={label:d?"ID is set automatically":"ID",disabled:s,name:"id",value:(a&&c==="existing"?a.id:t)??"",endAdornment:a?n.jsxs(n.Fragment,{children:[n.jsx(ye,{title:"Copy",children:n.jsx(ee,{onClick:h=>_(a.id),"aria-label":"copy-id",children:n.jsx(Rn,{size:"small"})})}),g?.entityLinkBuilder&&n.jsx(ye,{title:"Open in the console",children:n.jsx(ee,{component:"a",href:g.entityLinkBuilder({entity:a}),rel:"noopener noreferrer",target:"_blank",onClick:h=>h.stopPropagation(),"aria-label":"go-to-datasource",children:n.jsx(no,{size:"small"})})})]}):void 0};return n.jsxs(n.Fragment,{children:[u&&n.jsx(xe,{error:l,onValueChange:h=>i(h),...y,renderValue:h=>{const I=u.find(b=>b.id===h);return I?`${I.id} - ${I.label}`:h},children:u.map(h=>n.jsx(Re,{value:String(h.id),children:n.jsx(Ee,{enumKey:h.id,enumValues:u,size:"medium"})},h.id))}),!u&&n.jsx(An,{...y,error:l,placeholder:e==="optional"?"Autogenerated ID, it can be manually changed":c==="new"||c==="copy"?"ID of the new document":"ID of the document",onChange:h=>{let I=h.target.value;return I&&(I=I.trim()),i(I.length?I:void 0)}}),n.jsx(Fe.ErrorMessage,{name:"id",component:"div",children:h=>"You need to specify an ID"})]})}function te({children:e,className:t,variant:c="filled",disabled:i=!1,size:l="medium",startIcon:a=null,fullWidth:s=!1,component:d,...u}){const A="rounded-md border uppercase inline-flex items-center justify-center p-2 px-4 text-sm font-medium focus:outline-none transition ease-in-out duration-150 gap-2",_=E({"w-full":s,"w-fit":!s,"border-transparent bg-primary hover:bg-blue-600 focus:ring-blue-400 !text-white shadow hover:ring-1 hover:ring-primary":c==="filled"&&!i,"border-primary !text-primary hover:bg-primary hover:bg-opacity-10 hover:border-blue-600 !hover:text-blue-600 focus:ring-blue-400 hover:ring-1 hover:ring-primary":c==="outlined"&&!i,"border-transparent !text-primary !hover:text-blue-600 hover:bg-primary hover:bg-opacity-10":c==="text"&&!i,"border-blue-600 border-opacity-50 dark:border-blue-500 dark:border-opacity-50 opacity-50 !text-blue-600 !dark:text-blue-500 text-opacity-50 dark:text-opacity-50":c==="outlined"&&i,"border-transparent outline-none opacity-50 !text-gray-600 !dark:text-gray-500":(c==="filled"||c==="text")&&i}),g=E({"py-1 px-2":l==="small","py-2 px-4":l==="medium","py-2 px-5":l==="large"});return d?n.jsxs(d,{onClick:u.onClick,className:E(ge,a?"pl-3":"",A,_,g,t),...u,children:[a,e]}):n.jsxs("button",{type:u.type??"button",onClick:u.onClick,className:E(ge,a?"pl-3":"",A,_,g,t),disabled:i,...u,children:[a,e]})}const Pi=f.memo(Nz,(e,t)=>e.status===t.status&&e.path===t.path&&de(e.entity?.values,t.entity?.values));function Nz({status:e,path:t,collection:c,entity:i,onEntitySaveRequested:l,onDiscard:a,onModified:s,onValuesChanged:d,onIdChange:u,onFormContextChange:A,hideId:_,autoSave:g,onIdUpdateError:y}){const h=re(),I=Qe(),b=h.plugins,p=f.useMemo(()=>Me({collection:c,path:t,values:i?.values,fields:h.fields}),[i?.values,t]),w=(e==="new"||e==="copy")&&!!p.customId&&p.customId!=="optional",k=f.useMemo(()=>e==="new"||e==="copy"?w?void 0:I.generateEntityId(t):i?.id,[]),K=f.useRef(!1),m=f.useMemo(()=>{const Q=p.properties;if((e==="existing"||e==="copy")&&i)return i.values??ao(Q);if(e==="new")return ao(Q);throw console.error({status:e,entity:i}),new Error("Form has not been initialised with the correct parameters")},[e,p,i]),[v,S]=f.useState(k),[B,P]=f.useState(!1),[F,D]=f.useState(),C=f.useRef(i?.values??m),N=C.current,[M,H]=f.useState(N),Z=Q=>{H(Q),d&&d(Q),g&&Q&&!de(Q,N)&&L(Q)};f.useEffect(()=>{v&&u&&u(v)},[v,u]);const O=Me({collection:c,path:t,entityId:v,values:M,previousValues:N,fields:h.fields}),oe=O.callbacks?.onIdUpdate;f.useEffect(()=>{if(oe&&M&&(e==="new"||e==="copy"))try{const Q=oe({collection:O,path:t,entityId:v,values:M,context:h});S(Q)}catch(Q){y&&y(Q),console.error(Q)}},[v,M,e]);const U=f.useMemo(()=>N&&e==="existing"?Object.entries(O.properties).map(([Q,q])=>{if(io(q))return{};const R=N[Q],$=m[Q];return de(R,$)?{}:{[Q]:$}}).reduce((Q,q)=>({...Q,...q}),{}):{},[m,O.properties,N,e]),L=Q=>l({collection:O,path:t,entityId:v,values:Q,previousValues:i?.values,closeAfterSave:K.current,autoSave:g??!1}).then(q=>{const R=e==="new"?"new_entity_saved":e==="copy"?"entity_copied":e==="existing"?"entity_edited":"unmapped_event";h.onAnalyticsEvent?.(R,{path:t}),C.current=Q}).catch(q=>{console.error(q),D(q)}).finally(()=>{K.current=!1}),X=(Q,q)=>{if(w&&!v){console.error("Missing custom Id"),P(!0),q.setSubmitting(!1);return}if(D(void 0),P(!1),e==="existing"){if(!i?.id)throw Error("Form misconfiguration when saving, no id for existing entity")}else if(e==="new"||e==="copy"){if(O.customId&&O.customId!=="optional"&&!v)throw Error("Form misconfiguration when saving, entityId should be set")}else throw Error("New FormType added, check EntityForm");L(Q)?.then(R=>{q.resetForm({values:Q,submitCount:0,touched:{}})}).finally(()=>{q.setSubmitting(!1)})},W=f.useCallback(({name:Q,value:q,property:R})=>I.checkUniqueField(t,Q,q,R,v),[I,t,v]),V=f.useMemo(()=>v?Ei(v,O.properties,W):void 0,[v,O.properties,W]);return n.jsx(Fe.Formik,{initialValues:m,onSubmit:X,validationSchema:V,validate:Q=>console.debug("Validating",Q),onReset:()=>a&&a(),children:Q=>{const q=[],R={setFieldValue:Q.setFieldValue,values:Q.values,collection:Me({collection:O,path:t,fields:h.fields}),entityId:v,path:t,save:L};if(f.useEffect(()=>{A&&A(R)},[A,R]),b&&O){const $={entityId:v,path:t,status:e,collection:c,context:h,currentEntityId:v,formContext:R};q.push(...b.map((ne,J)=>ne.form?.Actions?n.jsx(ne.form.Actions,{...$},`actions_${ne.name}`):null).filter(Boolean))}return n.jsxs("div",{className:"h-full overflow-auto",children:[q.length>0&&n.jsx("div",{className:E("w-full flex justify-end items-center sticky top-0 right-0 left-0 z-10 bg-opacity-60 bg-slate-200 dark:bg-opacity-60 dark:bg-slate-800 backdrop-blur-md"),children:q}),n.jsxs("div",{className:"pl-4 pr-4 pt-12 pb-16 md:pl-8",children:[n.jsx("div",{className:`w-full py-2 flex items-center mt-${4+(q?8:0)} lg:mt-${8+(q?8:0)} mb-8`,children:n.jsx(j,{className:"mt-4 flex-grow "+O.hideIdFromForm?"mb-2":"mb-0",variant:"h4",children:O.singularName??O.name})}),!_&&n.jsx(Dz,{customId:O.customId,entityId:v,status:e,onChange:S,error:B,entity:i}),v&&n.jsx(Mz,{...Q,initialValues:N,onModified:s,onValuesChanged:Z,underlyingChanges:U,entity:i,resolvedCollection:O,formContext:R,status:e,savingError:F,closeAfterSaveRef:K,autoSave:g})]})]})}})}function Mz(e){const{values:t,onModified:c,onValuesChanged:i,underlyingChanges:l,formContext:a,entity:s,touched:d,setFieldValue:u,resolvedCollection:A,isSubmitting:_,status:g,handleSubmit:y,savingError:h,dirty:I,closeAfterSaveRef:b,autoSave:p}=e,w=I;f.useEffect(()=>{c&&c(w),i&&i(t)},[w,t]),f.useEffect(()=>{!p&&l&&s&&Object.entries(l).forEach(([v,S])=>{const B=t[v];!de(S,B)&&!d[v]&&(console.debug("Updated value from the datasource:",v,S),u(v,S!==void 0?S:null))})},[p,l,s,t,d,u]);const k=n.jsx("div",{className:"flex flex-col gap-8",children:(A.propertiesOrder??Object.keys(A.properties)).map(v=>{const S=A.properties[v],B=!!l&&Object.keys(l).includes(v)&&!!d[v],P=!p&&_||Nn(S)||!!S.disabled;if(io(S))return null;const D={propertyKey:v,disabled:P,property:S,includeDescription:S.description||S.longDescription,underlyingValueHasChanged:B&&!p,context:a,tableMode:!1,partOfArray:!1,partOfBlock:!1,autoFocus:!1};return n.jsx("div",{id:`form_field_${v}`,children:n.jsx(bn,{...D})},`field_${A.name}_${v}`)}).filter(Boolean)}),K=_||!w&&g==="existing",m=f.useRef(null);return n.jsxs(Fe.Form,{onSubmit:y,noValidate:!0,children:[n.jsxs("div",{className:"mt-12",ref:m,children:[k,n.jsx(Fz,{containerRef:m})]}),n.jsx("div",{className:"h-14"}),!p&&n.jsxs(wn,{position:"absolute",children:[h&&n.jsx("div",{className:"text-right",children:n.jsx(j,{color:"error",children:h.message})}),n.jsx(te,{variant:"text",disabled:K,type:"reset",children:g==="existing"?"Discard":"Clear"}),n.jsxs(te,{variant:"text",color:"primary",type:"submit",disabled:K,onClick:()=>{b.current=!1},children:[g==="existing"&&"Save",g==="copy"&&"Create copy",g==="new"&&"Create"]}),n.jsxs(te,{variant:"filled",color:"primary",type:"submit",disabled:K,onClick:()=>{b.current=!0},children:[g==="existing"&&"Save and close",g==="copy"&&"Create copy and close",g==="new"&&"Create and close"]})]})]})}const Di={text_field:{name:"Text field",description:"Simple short text",dataType:"string",Icon:Lc,color:"#2d7ff9",Field:Tn},multiline:{name:"Multiline",description:"Text with multiple lines",dataType:"string",Icon:Qc,color:"#2d7ff9",Field:Tn},markdown:{name:"Markdown",description:"Text with advanced markdown syntax",dataType:"string",Icon:Kc,color:"#2d7ff9",Field:Si},url:{name:"Url",description:"Text with URL validation",dataType:"string",Icon:Sc,color:"#154fb3",Field:Tn},email:{name:"Email",description:"Text with email validation",dataType:"string",Icon:pc,color:"#154fb3",Field:Tn},select:{name:"Select/enum",description:"Select one text value from within an enumeration",dataType:"string",Icon:Pc,color:"#4223c9",Field:qr},multi_select:{name:"Multi select",description:"Select multiple text values from within an enumeration",dataType:"array",Icon:Dc,color:"#4223c9",Field:xr},number_input:{name:"Number input",description:"Simple number field with validation",dataType:"number",Icon:Mc,color:"#bec920",Field:Tn},number_select:{name:"Number select",description:"Select a number value from within an enumeration",dataType:"number",Icon:kr,color:"#bec920",Field:qr},multi_number_select:{name:"Multiple number select",description:"Select multiple number values from within an enumeration",dataType:"array",Icon:kr,color:"#bec920",Field:xr},file_upload:{name:"File upload",description:"Input for uploading single files",dataType:"string",Icon:Vc,color:"#f92d9a",Field:nt},multi_file_upload:{name:"Multiple file upload",description:"Input for uploading multiple files",dataType:"array",Icon:Ic,color:"#f92d9a",Field:nt},reference:{name:"Reference",description:"The value refers to a different collection",dataType:"reference",Icon:Fc,color:"#ff0042",Field:ki},multi_references:{name:"Multiple references",description:"Multiple values that refer to a different collection",dataType:"array",Icon:dc,color:"#ff0042",Field:fi},switch:{name:"Switch",description:"Boolean true or false field (or yes or no, 0 or 1...)",dataType:"boolean",Icon:vc,color:"#20d9d2",Field:pi},date_time:{name:"Date/time",description:"A date time select field",dataType:"date",Icon:Oc,color:"#8b46ff",Field:wi},group:{name:"Group",description:"Group of multiple fields",dataType:"map",Icon:Ir,color:"#ff9408",Field:mi},key_value:{name:"Key-value",description:"Flexible field that allows the user to add multiple key-value pairs",dataType:"map",Icon:Ir,color:"#ff9408",Field:vi},repeat:{name:"Repeat/list",description:"A field that gets repeated multiple times (e.g. multiple text fields)",dataType:"array",Icon:Kr,color:"#ff9408",Field:Ki},custom_array:{name:"Custom array",description:"A field that saved its value as an array of custom objects",dataType:"array",Icon:Kr,color:"#ff9408",Field:Bi},block:{name:"Block",description:"A complex field that allows the user to compose different fields together, with a key->value format",dataType:"array",Icon:Wc,color:"#ff9408",Field:Ci}};function Lo(e){const t=at(e);return t?Di[t]:void 0}function at(e){if(e.dataType==="string")return e.multiline?"multiline":e.markdown?"markdown":e.storage?"file_upload":e.url?"url":e.email?"email":e.enumValues?"select":"text_field";if(e.dataType==="number")return e.enumValues?"number_select":"number_input";if(e.dataType==="map"){if(e.keyValue)return"key_value";if(e.properties)return"group"}else if(e.dataType==="array"){const t=e.of;return e.oneOf?"block":Array.isArray(t)?"custom_array":We(t)?"repeat":t?.dataType==="string"&&t.enumValues?"multi_select":t?.dataType==="number"&&t.enumValues?"multi_number_select":t?.dataType==="string"&&t.storage?"multi_file_upload":t?.dataType==="reference"?"multi_references":"repeat"}else{if(e.dataType==="boolean")return"switch";if(e.dataType==="date")return"date_time";if(e.dataType==="reference")return"reference"}console.error("Unsupported field config mapping",e)}const Me=({collection:e,path:t,entityId:c,values:i,previousValues:l,userConfigPersistence:a,fields:s})=>{const d=a?.getCollectionConfig(t),u=dn(d,"properties"),A=ao(e.properties),_=i??A,g=l??i??A,y=Object.entries(e.properties).map(([b,p])=>{const w=_?Fe.getIn(_,b):void 0;return{[b]:Te({propertyKey:b,propertyOrBuilder:p,values:_,previousValues:g,path:t,propertyValue:w,entityId:c,fields:s})}}).filter(b=>b!==null).reduce((b,p)=>({...b,...p}),{}),h=Ze(y,u),I=Object.entries(h).filter(([b,p])=>!!p?.dataType).map(([b,p])=>({[b]:p})).reduce((b,p)=>({...b,...p}),{});return{...e,properties:I,originalCollection:e}};function Te({propertyOrBuilder:e,propertyValue:t,fromBuilder:c=!1,...i}){if(typeof e=="object"&&"resolved"in e)return e;let l=null;if(e)if(We(e)){const a=i.path;if(!a)throw Error("Trying to resolve a property builder without specifying the entity path");const s=e({...i,path:a,propertyValue:t,values:i.values??{},previousValues:i.previousValues??i.values??{}});if(!s)return console.debug("Property builder not returning `Property` so it is not rendered",a,i.entityId,e),null;l=Te({...i,propertyValue:t,propertyOrBuilder:s,fromBuilder:!0})}else{const a=e;if(a.dataType==="map"&&a.properties){const s=lt({...i,properties:a.properties,propertyValue:t});l={...a,resolved:!0,fromBuilder:c,properties:s}}else a.dataType==="array"?l=un({property:a,propertyValue:t,fromBuilder:c,...i}):(a.dataType==="string"||a.dataType==="number")&&a.enumValues&&(l=st(a,c))}else return null;if(l||(l={...e,resolved:!0,fromBuilder:c}),l.fieldConfig){const a=i.fields;if(!a)throw Error(`Trying to resolve a property with key ${l.fieldConfig} that inherits from a custom field but no custom fields were provided. Use the property 'fields' in your top level component to provide them`);const s=a[l.fieldConfig];if(!s)throw Error(`Trying to resolve a property that inherits from a custom field but no custom field with id ${l.fieldConfig} was found. Check the \`fields\` in your top level component`);if(s.defaultProperty){const d=Te({propertyOrBuilder:s.defaultProperty,propertyValue:t,...i});d&&(l=Ze(d,l))}s.Field&&(l.Field=s.Field)}return l?{...l,resolved:!0}:null}function un({propertyKey:e,property:t,propertyValue:c,...i}){if(t.of){if(Array.isArray(t.of))return{...t,resolved:!0,fromBuilder:i.fromBuilder,resolvedProperties:t.of.map((l,a)=>Te({propertyKey:`${e}.${a}`,propertyOrBuilder:l,propertyValue:Array.isArray(c)?c[a]:void 0,...i,index:a}))};{const l=t.of,a=Array.isArray(c)?c.map((d,u)=>Te({propertyKey:`${e}.${u}`,propertyOrBuilder:l,propertyValue:d,...i,index:u})).filter(d=>!!d):[],s=Te({propertyKey:`${e}`,propertyOrBuilder:l,propertyValue:void 0,...i});if(!s)throw Error("When using a property builder as the 'of' prop of an ArrayProperty, you must return a valid child property");return{...t,resolved:!0,fromBuilder:i.fromBuilder,of:s,resolvedProperties:a}}}else if(t.oneOf){const l=t.oneOf?.typeField??to,a=Array.isArray(c)?c.map((d,u)=>{const A=d&&d[l],_=t.oneOf?.properties[A];return!A||!_?null:Te({propertyKey:`${e}.${u}`,propertyOrBuilder:_,propertyValue:c,...i})}).filter(d=>!!d):[],s=lt({properties:t.oneOf.properties,propertyValue:void 0,...i});return{...t,resolved:!0,oneOf:{...t.oneOf,properties:s},fromBuilder:i.fromBuilder,resolvedProperties:a}}else{if(t.Field)return{...t,resolved:!0,fromBuilder:i.fromBuilder};throw Error("The array property needs to declare an 'of' or a 'oneOf' property, or provide a custom `Field`")}}function lt({properties:e,propertyValue:t,...c}){return Object.entries(e).map(([i,l])=>({[i]:Te({propertyKey:i,propertyOrBuilder:l,propertyValue:t&&typeof t=="object"?dn(t,i):void 0,...c})})).filter(i=>i!==null).reduce((i,l)=>({...i,...l}),{})}function st(e,t){return typeof e.enumValues=="object"?{...e,resolved:!0,enumValues:sn(e.enumValues)?.filter(c=>c&&c.id&&c.label)??[],fromBuilder:t??!1}:e}function Tz(e){return typeof e=="object"?Object.entries(e).map(([t,c])=>typeof c=="string"?{id:t,label:c}:c):Array.isArray(e)?e:void 0}function Ni(e,t){const c=Te({propertyKey:"ignore",propertyOrBuilder:e,fields:t});return c?c.dataType==="reference"?!0:c.dataType==="array"?Array.isArray(c.of)?!1:c.of?.dataType==="reference":!1:null}function Oz(e){return n.jsx(br,{size:e})}function dt(e,t){const c=e?.Icon??br;return n.jsx(c,{size:t})}function we(e,t="small"){if(We(e))return n.jsx(Cc,{size:t});{const c=Lo(e);return dt(c,t)}}function Lz(e){return We(e)?"#888":Lo(e)?.color??"#666"}function pn(e,t){if(typeof e=="object"){if(t in e)return e[t];if(t.includes(".")){const c=t.split("."),i=e[c[0]];if(typeof i=="object"&&i.dataType==="map"&&i.properties)return pn(i.properties,c.slice(1).join("."))}}}function ut(e,t){if(typeof e=="object"){if(t in e)return e[t];if(t.includes(".")){const c=t.split("."),i=e[c[0]];if(i.dataType==="map"&&i.properties)return ut(i.properties,c.slice(1).join("."))}}}function Qz(e){return e.replace(/\.([^.]*)/g,"[$1]")}function Mi(e,t){if(!t)return e;const c={};return t.forEach(i=>{const l=pn(e,i);typeof l=="object"&&l.dataType==="map"&&l.properties&&(c[i]={...l,properties:Mi(l.properties,l.propertiesOrder??[])}),l&&(c[i]=l)}),c}const Qo={read:!0,edit:!0,create:!0,delete:!0};function so(e,t,c,i){const l=e.permissions;if(l===void 0)return Qo;if(typeof l=="object")return l;if(typeof l=="function")return l({entity:i,user:t.user,authController:t,collection:e,pathSegments:c});throw console.error("Permissions:",l),Error("New type of permission added and not mapped")}function ft(e,t,c,i){return so(e,t,c,i).edit??Qo.edit}function Vo(e,t,c,i){return so(e,t,c,i).create??Qo.create}function At(e,t,c,i){return so(e,t,c,i).delete??Qo.delete}function Ti(e,t){if(e&&(e=Po(e),e in Go))return e in Go?n.jsx(r,{iconKey:e,size:"medium",className:t}):void 0}function Wo(e,t){const c=Ti(e.icon,t);if(e?.icon&&c)return c;let i=Po(("singularName"in e?e.singularName:void 0)??e.name),l;i in Go&&(l=i),l||(i=Po(e.path),i in Go&&(l=i));const a=hr.length;return l||(l=hr[Yc(e.path)%a]),n.jsx(r,{iconKey:l,size:"medium",className:t})}const Go=lc.reduce((e,t)=>(e[t]=t,e),{});function Vz(e,t){if(t!==void 0&&t===1)return e;const c={"(quiz)$":"$1zes","^(ox)$":"$1en","([m|l])ouse$":"$1ice","(matr|vert|ind)ix|ex$":"$1ices","(x|ch|ss|sh)$":"$1es","([^aeiouy]|qu)y$":"$1ies","(hive)$":"$1s","(?:([^f])fe|([lr])f)$":"$1$2ves","(shea|lea|loa|thie)f$":"$1ves",sis$:"ses","([ti])um$":"$1a","(tomat|potat|ech|her|vet)o$":"$1oes","(bu)s$":"$1ses","(alias)$":"$1es","(octop)us$":"$1i","(ax|test)is$":"$1es","(us)$":"$1es","([^s]+)$":"$1s"},i={move:"moves",foot:"feet",goose:"geese",sex:"sexes",child:"children",man:"men",tooth:"teeth",person:"people"};if(["sheep","fish","deer","moose","series","species","money","rice","information","equipment","bison","cod","offspring","pike","salmon","shrimp","swine","trout","aircraft","hovercraft","spacecraft","sugar","tuna","you","wood"].indexOf(e.toLowerCase())>=0)return e;for(const a in i){const s=new RegExp(`${a}$`,"i"),d=i[a];if(s.test(e))return e.replace(s,d)}for(const a in c){const s=new RegExp(a,"i");if(s.test(e))return e.replace(s,c[a])}return e}function Wz(e,t){if(t!==void 0&&t!==1)return e;const c={"(quiz)zes$":"$1","(matr)ices$":"$1ix","(vert|ind)ices$":"$1ex","^(ox)en$":"$1","(alias)es$":"$1","(octop|vir)i$":"$1us","(cris|ax|test)es$":"$1is","(shoe)s$":"$1","(o)es$":"$1","(bus)es$":"$1","([m|l])ice$":"$1ouse","(x|ch|ss|sh)es$":"$1","(m)ovies$":"$1ovie","(s)eries$":"$1eries","([^aeiouy]|qu)ies$":"$1y","([lr])ves$":"$1f","(tive)s$":"$1","(hive)s$":"$1","(li|wi|kni)ves$":"$1fe","(shea|loa|lea|thie)ves$":"$1f","(^analy)ses$":"$1sis","((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$":"$1$2sis","([ti])a$":"$1um","(n)ews$":"$1ews","(h|bl)ouses$":"$1ouse","(corpse)s$":"$1","(us)es$":"$1",s$:""},i={move:"moves",foot:"feet",goose:"geese",sex:"sexes",child:"children",man:"men",tooth:"teeth",person:"people"};if(["sheep","fish","deer","moose","series","species","money","rice","information","equipment","bison","cod","offspring","pike","salmon","shrimp","swine","trout","aircraft","hovercraft","spacecraft","sugar","tuna","you","wood"].indexOf(e.toLowerCase())>=0)return e;for(const a in i){const s=new RegExp(`${i[a]}$`,"i");if(s.test(e))return e.replace(s,a)}for(const a in c){const s=new RegExp(a,"i");if(s.test(e))return e.replace(s,c[a])}return e}function Oi(e,t,c,i=3){const l=Object.keys(e.properties);let a=c?.filter(s=>l.includes(s));return a&&a.length>0?a:(a=l,a.filter(s=>{const d=e.properties[s];return d&&!We(d)&&!Ni(d,t)}).slice(0,i))}function Li(e,t=166){let c;function i(...l){const a=()=>{e.apply(this,l)};clearTimeout(c),c=setTimeout(a,t)}return i.clear=()=>{clearTimeout(c)},i}function _t(e,t=""){return e&&Object.keys(e).reduce((c,i)=>{const l=t?`${t}.${i}`:i;return typeof e[i]=="object"&&e[i]!==null?Array.isArray(e[i])?e[i].forEach((a,s)=>{Object.assign(c,_t(a,`${l}[${s}]`))}):Object.assign(c,_t(e[i],l)):c[l]=e[i],c},{})}function Qi(e){return e.reduce((t,c)=>(Object.entries(c).forEach(([i,l])=>{if(Array.isArray(l)&&(t[i]=Math.max(t[i]||0,l.length)),typeof l=="object"&&l!==null){const a=Qi([l]);Object.entries(a).forEach(([s,d])=>{const u=`${i}.${s}`;t[u]=Math.max(t[u]||0,d)})}}),t),{})}function yt({entity:e,collection:t,path:c,className:i}){const l=re(),a=f.useMemo(()=>Me({collection:t,path:c,entityId:e.id,values:e.values,fields:l.fields}),[t,c,e]),s=re(),d=a.properties;return n.jsx("div",{className:"w-full "+i,children:n.jsxs("div",{className:"w-full mb-4",children:[n.jsxs("div",{className:E(ue,"flex justify-between py-2 border-b last:border-b-0"),children:[n.jsx("div",{className:"flex items-center w-1/4",children:n.jsx("span",{className:"pl-2 text-sm text-gray-600",children:"Id"})}),n.jsxs("div",{className:"flex-grow p-2 ml-2 w-3/4 text-gray-900 dark:text-white min-h-[56px] flex items-center",children:[n.jsx("span",{className:"flex-grow mr-2",children:e.id}),s?.entityLinkBuilder&&n.jsx("a",{href:s.entityLinkBuilder({entity:e}),rel:"noopener noreferrer",target:"_blank",children:n.jsx(ee,{children:n.jsx(no,{size:"small"})})})]})]}),Object.entries(d).map(([u,A])=>{const _=e.values[u];return n.jsxs("div",{className:E(ue,"flex justify-between py-2 border-b last:border-b-0"),children:[n.jsx("div",{className:"flex items-center w-1/4",children:n.jsx("span",{className:"pl-2 text-sm text-gray-600",children:A.name})}),n.jsx("div",{className:"flex-grow p-2 ml-2 w-3/4 text-gray-900 dark:text-white min-h-[56px] flex items-center",children:n.jsx(Ke,{propertyKey:u,value:_,entity:e,property:A,size:"medium"})})]},`reference_previews_${u}`)})]})})}function Gz(e){return e.dataType==="boolean"?"center":e.dataType==="number"?e.enumValues?"left":"right":e.dataType==="date"?"right":"left"}function Vi(e){if(e.columnWidth)return e.columnWidth;if(e.dataType==="string")return e.url?280:e.storage?160:e.enumValues?200:e.multiline||e.markdown?300:(e.email,200);if(e.dataType==="array"){const t=e;return t.of?Array.isArray(e.of)?300:Vi(t.of):300}else return e.dataType==="number"?e.enumValues?200:140:e.dataType==="map"?360:e.dataType==="date"?200:e.dataType==="reference"?220:e.dataType==="boolean"?140:200}function ht(e){return`subcollection:${e.alias??e.path}`}function zo(e){return parseInt(e,10)||0}const zz={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function Wi(e){return e==null||Object.keys(e).length===0||e.outerHeightStyle===0&&!e.overflow}const gt=ce.forwardRef(function(t,c){const{onChange:i,onScroll:l,onResize:a,maxRows:s,minRows:d=1,style:u,value:A,onFocus:_,onBlur:g,sizeRef:y,...h}=t,{current:I}=ce.useRef(A!=null),b=ce.useRef(null),p=Hz(c,b),w=ce.useRef(null),k=ce.useRef(0),[K,m]=ce.useState({outerHeightStyle:0}),v=ce.useCallback(()=>{const D=b.current;if(typeof window>"u")return{outerHeightStyle:0};const N=window.getComputedStyle(D);if(N.width==="0px")return{outerHeightStyle:0};const M=y?.current??w.current,H=w.current;M.style.width=N.width,H.value=D.value||t.placeholder||"x",H.value.slice(-1)===`
|
|
680
|
-
`&&(H.value+=" ");const Z=N.boxSizing,O=zo(N.paddingBottom)+zo(N.paddingTop),oe=zo(N.borderBottomWidth)+zo(N.borderTopWidth),U=M.scrollHeight;H.value="x";const L=M.scrollHeight;let X=U;d&&(X=Math.max(Number(d)*L,X)),s&&(X=Math.min(Number(s)*L,X)),X=Math.max(X,L);const W=X+(Z==="border-box"?O+oe:0),V=Math.abs(X-U)<=1;return{outerHeightStyle:W,overflow:V}},[s,d,t.placeholder]),S=(D,C)=>{const{outerHeightStyle:N,overflow:M}=C;return k.current<20&&(N>0&&Math.abs((D.outerHeightStyle||0)-N)>1||D.overflow!==M)?(k.current+=1,{overflow:M,outerHeightStyle:N}):(process.env.NODE_ENV!=="production"&&k.current===20&&console.error(["MUI: Too many re-renders. The layout is unstable.","TextareaAutosize limits the number of renders to prevent an infinite loop."].join(`
|
|
681
|
-
`)),D)},B=ce.useCallback(()=>{const D=v();Wi(D)||(a&&a(D),m(C=>S(C,D)))},[v,a]),P=()=>{const D=v();Wi(D)||Ta.flushSync(()=>{m(C=>S(C,D))})};ce.useEffect(()=>{const D=Li(()=>{k.current=0,b.current&&P()});let C;const N=b.current,M=window;if(!(typeof window>"u"))return M.addEventListener("resize",D),typeof ResizeObserver<"u"&&(C=new ResizeObserver(D),C.observe(N)),()=>{D.clear(),M.removeEventListener("resize",D),C&&C.disconnect()}}),f.useLayoutEffect(()=>{B()}),ce.useEffect(()=>{k.current=0},[A]);const F=D=>{k.current=0,I||B(),i&&i(D)};return n.jsxs(ce.Fragment,{children:[n.jsx("textarea",{value:A,onChange:F,className:t.className,ref:p,onFocus:_,onBlur:g,rows:d,style:{height:K.outerHeightStyle,overflow:K.overflow?"hidden":void 0,...u},onScroll:l,...h}),n.jsx("textarea",{"aria-hidden":!0,className:t.shadowClassName,readOnly:!0,ref:w,tabIndex:-1,style:{...zz.shadow,...u,padding:0}})]})});function Hz(...e){return ce.useMemo(()=>e.every(t=>t==null)?null:t=>{e.forEach(c=>{Uz(c,t)})},e)}function Uz(e,t){typeof e=="function"?e(t):e&&(e.current=t)}function Yz(e){const t=f.useRef(null),{disabled:c,value:i,multiline:l,updateValue:a,focused:s}=e,d=f.useRef(i),[u,A]=f.useState(i),_=f.useRef(!1);f.useEffect(()=>{d.current!==i&&i!==u&&A(i),d.current=i},[i]);const g=f.useCallback(()=>{!i&&!u||u!==i&&(d.current=u,a(u))},[u,a,i]);return Do(u,g,!s,2e3),f.useEffect(()=>{t.current&&s&&!_.current?(_.current=!0,t.current.focus({preventScroll:!0}),t.current.selectionStart=t.current.value.length,t.current.selectionEnd=t.current.value.length):_.current=s},[s,t]),n.jsx(gt,{ref:t,style:{padding:0,margin:0,width:"100%",color:"unset",fontWeight:"unset",lineHeight:"unset",fontSize:"unset",fontFamily:"unset",background:"unset",border:"unset",resize:"none",outline:"none"},value:u??"",onChange:y=>{const h=y.target.value;(l||!h.endsWith(`
|
|
682
|
-
`))&&A(h)},onFocus:()=>{_.current=!0},onBlur:()=>{_.current=!1,g()}})}function It(e){const{name:t,enumValues:c,error:i,internalValue:l,disabled:a,small:s,focused:d,updateValue:u,multiple:A,valueType:_}=e,g=Array.isArray(l)&&A||!Array.isArray(l)&&!A,y=f.useRef(null);f.useEffect(()=>{y.current&&d&&y.current?.focus({preventScroll:!0})},[d,y]);const h=f.useCallback(b=>{if(_==="number")if(A){const p=b.map(w=>parseFloat(w));u(p)}else u(parseFloat(b));else if(_==="string")u(b||null);else throw Error("Missing mapping in TableSelect")},[A,u,_]),I=(b,p)=>A&&Array.isArray(b)?n.jsx(Mr,{value:b,name:t,enumValues:c,size:s?"small":"medium"},`${b}-${p}`):n.jsx(Ee,{enumKey:b,enumValues:c,size:s?"small":"medium"},`${b}-${p}`);return A?n.jsx(Zr,{inputRef:y,containerClassName:"w-full h-full",className:"w-full h-full p-0 bg-transparent",position:"item-aligned",disabled:a,padding:!1,includeFocusOutline:!1,value:g?l.map(b=>b.toString()):[],onMultiValueChange:h,renderValue:I,children:c?.map(b=>n.jsx(Xr,{value:String(b.id),children:n.jsx(Ee,{enumKey:b.id,enumValues:c,size:s?"small":"medium"})},b.id))}):n.jsx(xe,{inputRef:y,className:"w-full h-full p-0 bg-transparent",position:"item-aligned",disabled:a,multiple:A,padding:!1,includeFocusOutline:!1,value:g?A?l.map(b=>b.toString()):l?.toString():A?[]:"",onValueChange:h,onMultiValueChange:h,renderValue:I,children:c?.map(b=>n.jsx(Re,{value:String(b.id),children:n.jsx(Ee,{enumKey:b.id,enumValues:c,size:s?"small":"medium"})},b.id))})}function $z(e){const{align:t,value:c,updateValue:i,focused:l}=e,a=c&&typeof c=="number"?c.toString():"",[s,d]=f.useState(a),u=f.useRef(c);f.useEffect(()=>{u.current!==c&&String(c)!==s&&d(c?c.toString():null),u.current=c},[c]);const A=f.useCallback(()=>{if(s!==a)if(s!=null){const y=parseFloat(s);if(isNaN(y))return;y!=null&&i(y)}else i(null)},[s,c]);Do(s,A,!l,2e3),f.useEffect(()=>{!l&&a!==s&&d(c!=null?c.toString():null)},[c,l]);const _=f.useRef(null);f.useEffect(()=>{_.current&&l&&_.current.focus({preventScroll:!0})},[l,_]);const g=/^-?[0-9]+[,.]?[0-9]*$/;return n.jsx("input",{ref:_,className:"w-full text-right p-0 m-0 bg-transparent border-none resize-none outline-none font-normal leading-normal text-unset",style:{textAlign:t},value:s??"",onChange:y=>{const h=y.target.value.replace(",",".");h.length===0&&d(null),(g.test(h)||h.startsWith("-"))&&d(h)}})}function jz(e){const{internalValue:t,updateValue:c,focused:i}=e,l=f.useRef(null);return f.useEffect(()=>{l.current&&i&&l.current.focus({preventScroll:!0})},[i,l]),n.jsx(ot,{ref:l,size:"small",value:!!t,onValueChange:c})}function qz(e){const{disabled:t,error:c,mode:i,internalValue:l,updateValue:a}=e;return n.jsx(Vn,{value:l??void 0,onChange:s=>a(s),size:"medium",invisible:!0,className:"w-full h-full",inputClassName:"w-full h-full",mode:i})}function Gi({showError:e,disabled:t,showExpandIcon:c,selected:i,openPopup:l,children:a}){const s=f.useRef(null),d=f.useCallback(()=>{if(l){const A=s&&s?.current?.getBoundingClientRect();l(A)}},[]),u=f.useRef();return f.useEffect(()=>{u.current&&i&&u.current.focus({preventScroll:!0})},[i]),n.jsx(n.Fragment,{children:(e||!t&&c)&&n.jsxs("div",{ref:s,className:"absolute top-0.5 right-0.5 flex items-center",children:[i&&a,i&&!t&&c&&n.jsx(ee,{ref:u,color:"inherit",size:"small",onClick:d,children:n.jsxs("svg",{fill:"#888",width:"20",height:"20",viewBox:"0 0 24 24",children:[n.jsx("path",{className:"cls-2",d:"M20,5a1,1,0,0,0-1-1L14,4h0a1,1,0,0,0,0,2h2.57L13.29,9.29a1,1,0,0,0,0,1.42,1,1,0,0,0,1.42,0L18,7.42V10a1,1,0,0,0,1,1h0a1,1,0,0,0,1-1Z"}),n.jsx("path",{className:"cls-2",d:"M10.71,13.29a1,1,0,0,0-1.42,0L6,16.57V14a1,1,0,0,0-1-1H5a1,1,0,0,0-1,1l0,5a1,1,0,0,0,1,1h5a1,1,0,0,0,0-2H7.42l3.29-3.29A1,1,0,0,0,10.71,13.29Z"})]})}),e&&n.jsx(tc,{side:"left",className:"flex items-center justify-center",style:{width:32,height:32},title:e.message,children:n.jsx(wc,{size:"small",color:"error"})})]})})}const Jz="max-w-full box-border relative pt-[2px] items-center border border-transparent outline-none rounded-md duration-200 ease-[cubic-bezier(0.4,0,0.2,1)] focus:border-primary-solid",Zz="pt-0 border-2 border-solid",Xz="transition-colors duration-200 ease-[cubic-bezier(0,0,0.2,1)] border-2 border-solid border-green-500 bg-green-50 dark:bg-green-900",xz="transition-colors duration-200 ease-[cubic-bezier(0,0,0.2,1)] border-2 border-solid border-red-500 bg-red-50 dark:bg-red-900";function Rz(e){const{propertyKey:t,error:c,selected:i,openPopup:l,value:a,disabled:s,property:d,entity:u,path:A,previewSize:_,updateValue:g}=e,y=Sn(),{internalValue:h,setInternalValue:I,onFilesAdded:b,storage:p,onFileUploadComplete:w,storagePathBuilder:k,multipleFilesSupported:K}=_i({entityValues:u.values,entityId:u.id,path:A,property:d,propertyKey:t,storageSource:y,onChange:g,value:a,disabled:s});return n.jsx(e3,{internalValue:h,setInternalValue:I,name:t,disabled:s,autoFocus:!1,openPopup:l,error:c,selected:i,property:d,onChange:g,entity:u,storagePathBuilder:k,storage:p,multipleFilesSupported:K,onFilesAdded:b,onFileUploadComplete:w,previewSize:_})}function e3({property:e,name:t,internalValue:c,setInternalValue:i,openPopup:l,entity:a,selected:s,error:d,onChange:u,multipleFilesSupported:A,previewSize:_,disabled:g,autoFocus:y,storage:h,onFilesAdded:I,onFileUploadComplete:b,storagePathBuilder:p}){const[w,k]=f.useState(!1),K=A&&_==="medium"?"small":_;if(A){const U=e;if(Array.isArray(U.of))throw Error("Using array properties instead of single one in `of` in ArrayProperty");if(U.of){if(U.of.dataType!=="string")throw Error("Storage field using array must be of data type string")}else throw Error("Storage field using array must be of data type string")}const m=h?.metadata,v=!!c,S=cn(),{open:B,getRootProps:P,getInputProps:F,isDragActive:D,isDragAccept:C,isDragReject:N}=er.useDropzone({accept:h.acceptedFiles?h.acceptedFiles.map(U=>({[U]:[]})).reduce((U,L)=>({...U,...L}),{}):void 0,disabled:g,maxSize:h.maxSize,noClick:!0,noKeyboard:!0,onDrop:I,onDropRejected:(U,L)=>{for(const X of U)for(const W of X.errors)S.open({type:"error",message:`Error uploading file: File is larger than ${h.maxSize} bytes`})}}),{...M}=P(),H=A?"Drag 'n' drop some files here, or click here to edit":"Drag 'n' drop a file here, or click here edit",Z=A?e.of:e,O=f.useMemo(()=>Pn(K),[K]),oe=!g&&d;return n.jsxs("div",{...M,onMouseEnter:()=>k(!0),onMouseMove:()=>k(!0),onMouseLeave:()=>k(!1),className:E(Jz,"relative w-full h-full flex",`justify-${v?"start":"center"}`,D?Zz:"",C?Xz:"",N?xz:""),children:[n.jsx("input",{autoFocus:y,...F()}),c.map((U,L)=>{let X;return U.storagePathOrDownloadUrl?X=n.jsx(n3,{property:Z,value:U.storagePathOrDownloadUrl,entity:a,size:K},`storage_preview_${L}`):U.file&&(X=n.jsx(Ii,{entry:U,metadata:m,storagePath:p(U.file),onFileUploadComplete:b,imageSize:O,simple:!0},`storage_progress_${L}`)),X}),!c&&n.jsx("div",{className:"flex-grow m-2 max-w-[200px]",onClick:B,children:n.jsx(j,{className:"text-gray-400 dark:text-gray-600",variant:"body2",align:"center",children:H})}),n.jsx(Gi,{showError:oe,disabled:g,showExpandIcon:!0,selected:s,openPopup:g?void 0:l,children:n.jsx(ee,{color:"inherit",size:"small",onClick:B,children:n.jsx(bc,{size:"small",className:"text-gray-500"})})})]})}function n3({property:e,value:t,size:c,entity:i}){return n.jsx("div",{className:"relative m-2",children:t&&n.jsx(se,{children:n.jsx(Ke,{propertyKey:"ignore",value:t,property:e,entity:i,size:c})})})}function zi(e){const{name:t,internalValue:c,updateValue:i,multiselect:l,path:a,size:s,previewProperties:d,title:u,disabled:A,forceFilter:_}=e,[g,y]=f.useState(!1),h=f.useCallback(()=>y(!0),[]),I=f.useCallback(()=>y(!1),[]),p=Ae().getCollection(a);if(!p)throw Error(`Couldn't find the corresponding collection view for the path: ${a}`);const w=f.useCallback(F=>{i(F?In(F):null)},[i]),k=f.useCallback(F=>{i(F.map(D=>In(D)))},[i]),K=c?Array.isArray(c)?c.map(F=>F.id):c.id?[c.id]:[]:[],m=xn({multiselect:l,path:a,collection:p,onMultipleEntitiesSelected:k,onSingleEntitySelected:w,selectedEntityIds:K,forceFilter:_}),v=f.useCallback(()=>{A||m.open()},[A,m]),S=!c||Array.isArray(c)&&c.length===0,B=()=>c instanceof Je?n.jsx(on,{onClick:A?void 0:v,size:ln(s),reference:c,onHover:g,disabled:!a,previewProperties:d}):n.jsx(Co,{onClick:A?void 0:v,size:ln(s),children:n.jsx(pe,{title:"Value is not a reference.",error:"Click to edit"})}),P=()=>Array.isArray(c)?n.jsx(n.Fragment,{children:c.map((F,D)=>n.jsx("div",{className:"m-1 w-full",children:n.jsx(on,{onClick:A?void 0:v,size:"tiny",reference:F,onHover:g,disabled:!a,previewProperties:d})},`preview_array_ref_${t}_${D}`))}):n.jsx(pe,{error:"Data is not an array of references"});return p?n.jsxs("div",{className:"w-full",onMouseEnter:h,onMouseMove:h,onMouseLeave:I,children:[c&&!l&&B(),c&&l&&P(),S&&n.jsxs(te,{onClick:v,size:"small",variant:"outlined",color:"primary",children:["Edit ",u]})]}):n.jsx(pe,{error:"The specified collection does not exist"})}function Ln(e){switch(e){case"xl":return 400;case"l":return 280;case"m":return 140;case"s":return 80;case"xs":return 54;default:throw Error("Missing mapping for collection size -> height")}}const o3=({justifyContent:e,scrollable:t,faded:c,fullHeight:i,children:l})=>n.jsx("div",{className:E("flex flex-col max-h-full w-full",{"items-start":c||t}),style:{justifyContent:e,height:i?"100%":void 0,overflow:t?"auto":void 0,WebkitMaskImage:c?"linear-gradient(to bottom, black 60%, transparent 100%)":void 0,maskImage:c?"linear-gradient(to bottom, black 60%, transparent 100%)":void 0},children:l}),bt=f.memo(function({children:t,actions:c,size:i,selected:l,disabled:a,disabledTooltip:s,saved:d,error:u,align:A,allowScroll:_,removePadding:g,fullHeight:y,onSelect:h,width:I,hideOverflow:b=!0,showExpandIcon:p=!0}){const[w,k]=nr(),K=f.useRef(null);Mo(K,()=>{l&&h&&h(void 0)},!!(l&&h));const[m,v]=f.useState(!1),S=f.useMemo(()=>Ln(i),[i]),[B,P]=f.useState(!1),[F,D]=f.useState(d),C=!a&&u;f.useEffect(()=>{d&&D(!0);const W=setTimeout(()=>{D(!1)},800);return()=>{clearTimeout(W)}},[d]);let N=0;if(!g)switch(i){case"l":case"xl":N=4;break;case"m":N=2;break;case"s":default:N=1;break}let M;switch(A){case"right":M="flex-end";break;case"center":M="center";break;case"left":default:M="flex-start"}const H=f.useCallback(()=>{if(!h)return;const W=K&&K?.current?.getBoundingClientRect();a?h(void 0):!l&&W&&h(W)},[K,h,l,a]),Z=f.useCallback(W=>{H(),W.stopPropagation()},[H]);f.useEffect(()=>{if(k){const W=k.height>S;m!==W&&v(W)}},[k,m,S]);const O=!C&&l,oe=!a&&_&&m,U=!a&&!_&&m,L=f.useCallback(()=>P(!0),[]),X=f.useCallback(()=>P(!1),[]);return n.jsxs("div",{ref:K,className:E("transition-colors duration-100 ease-in-out",`flex relative h-full rounded-md p-${N} border border-4 border-opacity-75`,B&&!a?"bg-gray-50 dark:bg-gray-900":"",d?"bg-gray-100 bg-opacity-75 dark:bg-gray-800 dark:bg-opacity-75":"",!O&&!F&&!C?"border-transparent":"",b?"overflow-hidden":"",O?"bg-gray-50 dark:bg-gray-900":"",O&&!F?"border-primary":"",F?"border-green-500 ":"",C?"border-red-500":""),style:{justifyContent:M,alignItems:a||!m?"center":void 0,width:I??"100%",textAlign:A},tabIndex:l||a?void 0:0,onFocus:Z,onMouseEnter:L,onMouseMove:L,onMouseLeave:X,children:[n.jsxs(se,{children:[y&&!U&&t,(!y||U)&&n.jsx(o3,{fullHeight:y??!1,justifyContent:M,scrollable:oe??!1,faded:U,children:!y&&n.jsx("div",{ref:w,style:{display:"flex",width:"100%",justifyContent:M,height:y?"100%":void 0},children:t})})]}),c,a&&B&&s&&n.jsx("div",{className:"absolute top-1 right-1 text-xs",children:n.jsx(ye,{title:s,children:n.jsx(Tc,{size:"smallest",color:"disabled",className:"text-gray-500"})})})]})},(e,t)=>e.error===t.error&&e.value===t.value&&e.disabled===t.disabled&&e.saved===t.saved&&e.allowScroll===t.allowScroll&&e.align===t.align&&e.size===t.size&&e.disabledTooltip===t.disabledTooltip&&e.width===t.width&&e.showExpandIcon===t.showExpandIcon&&e.removePadding===t.removePadding&&e.fullHeight===t.fullHeight&&e.selected===t.selected);function r3(e){return e.dataType==="string"&&e.storage?!0:e.dataType==="array"?Array.isArray(e.of)?!1:e.of?.dataType==="string"&&e.of?.storage:!1}const t3=f.memo(function({propertyKey:t,columnIndex:c,customFieldValidator:i,value:l,property:a,align:s,width:d,height:u,path:A,entity:_,readonly:g,disabled:y}){const h=re(),{onValueChange:I,size:b,selectedCell:p,select:w,setPopupCell:k}=E3(),K=p?.columnIndex===c&&p?.entity.path===_.path&&p?.entity.id===_.id,[m,v]=f.useState(l),S=f.useRef(l),[B,P]=f.useState(),[F,D]=f.useState(!1),C=f.useCallback(()=>{D(!0),setTimeout(()=>{D(!1)},100)},[]),N=!!a.Field,M=!!a.Preview,H=Nn(a),Z=typeof a.disabled=="object"?a.disabled.disabledMessage:void 0,O=g||y||!!a.disabled,oe=f.useMemo(()=>lo({property:a,entityId:_.id,customFieldValidator:i,name:t}),[_.id,a,t]);f.useEffect(()=>{de(l,S.current)||(P(void 0),v(l),S.current=l,C())},[C,l]);const U=ie=>{D(!1),oe.validate(ie).then(()=>{P(void 0),I&&I({value:ie,propertyKey:t,setError:P,onValueUpdated:C,entity:_,fullPath:A,context:h})}).catch(Y=>{P(Y)})};f.useEffect(()=>{oe.validate(m).then(()=>P(void 0)).catch(ie=>{P(ie)})},[m,oe]);const L=ie=>{let Y;ie===void 0?Y=null:Y=ie,S.current=Y,v(Y),U(Y)};Ne({property:a,value:m,setValue:L});const X=f.useCallback(ie=>{w(ie?{columnIndex:c,width:d,height:u,entity:_,cellRect:ie,propertyKey:t}:void 0)},[c,_,u,t,w,d]),W=ie=>{k&&k(ie?{columnIndex:c,width:d,height:u,entity:_,cellRect:ie,propertyKey:t}:void 0)};let V,Q=!1,q=!1,R=!0,$=!1,ne=!1,J=!0;const x=!O&&B;if(g||H)return n.jsx(bt,{size:b,width:d,saved:F,value:m,align:s??"left",fullHeight:!1,disabledTooltip:Z??(H?"Read only":void 0),disabled:!0,children:n.jsx(Ke,{width:d,height:Ln(b),propertyKey:t,property:a,entity:_,value:l,size:ln(b)})},`${t}_${_.path}_${_.id}`);if(!N&&(!M||K)){if(r3(a))V=n.jsx(Rz,{error:B,disabled:O,focused:K,selected:K,openPopup:k?W:void 0,property:a,entity:_,path:A,value:m,previewSize:ln(b),updateValue:L,propertyKey:t}),J=!1,q=!0,ne=!0,$=!0;else if(K&&a.dataType==="number"){const Y=a;Y.enumValues?(V=n.jsx(It,{name:t,multiple:!1,disabled:O,focused:K,valueType:"number",small:ln(b)!=="medium",enumValues:Y.enumValues,error:B,internalValue:m,updateValue:L}),ne=!0):(V=n.jsx($z,{align:s,error:B,focused:K,disabled:O,value:m,updateValue:L}),Q=!0)}else if(K&&a.dataType==="string"){const Y=a;if(Y.enumValues)V=n.jsx(It,{name:t,multiple:!1,focused:K,disabled:O,valueType:"string",small:ln(b)!=="medium",enumValues:Y.enumValues,error:B,internalValue:m,updateValue:L}),ne=!0;else if(!Y.storage){const Be=!!Y.multiline||!!Y.markdown;V=n.jsx(Yz,{error:B,disabled:O,multiline:Be,focused:K,value:m,updateValue:L}),Q=!0}}else if(a.dataType==="boolean")V=n.jsx(jz,{error:B,disabled:O,focused:K,internalValue:m,updateValue:L});else if(a.dataType==="date")V=n.jsx(qz,{name:t,error:B,disabled:O,mode:a.mode,focused:K,internalValue:m,updateValue:L}),ne=!0,R=!1,Q=!1;else if(a.dataType==="reference")typeof a.path=="string"&&(V=n.jsx(zi,{name:t,internalValue:m,updateValue:L,disabled:O,size:b,path:a.path,multiselect:!1,previewProperties:a.previewProperties,title:a.name,forceFilter:a.forceFilter})),Q=!1;else if(a.dataType==="array"){const Y=a;if(!Y.of&&!Y.oneOf)throw Error(`You need to specify an 'of' or 'oneOf' prop (or specify a custom field) in your array property ${t}`);Y.of&&!Array.isArray(Y.of)&&(Y.of.dataType==="string"||Y.of.dataType==="number"?K&&Y.of.enumValues&&(V=n.jsx(It,{name:t,multiple:!0,disabled:O,focused:K,small:ln(b)!=="medium",valueType:Y.of.dataType,enumValues:Y.of.enumValues,error:B,internalValue:m,updateValue:L}),Q=!0,ne=!0,R=!1):Y.of.dataType==="reference"&&(typeof Y.of.key=="string"&&(V=n.jsx(zi,{name:t,disabled:O,internalValue:m,updateValue:L,size:b,multiselect:!0,path:Y.of.key,previewProperties:Y.of.previewProperties,title:Y.of.name,forceFilter:Y.of.forceFilter})),Q=!1))}}return V||(Q=!1,q=K&&!V&&!O&&!H,V=n.jsx(Ke,{width:d,height:u,entity:_,propertyKey:t,value:m,property:a,size:ln(b)})),n.jsx(bt,{size:b,width:d,onSelect:X,selected:K,disabled:O||H,disabledTooltip:Z??"Disabled",removePadding:$,fullHeight:ne,saved:F,error:B,align:s,allowScroll:Q,showExpandIcon:q,value:m,hideOverflow:R,actions:J&&n.jsx(Gi,{showError:x,disabled:O,showExpandIcon:q,selected:K,openPopup:O?void 0:W}),children:V},`cell_${t}_${_.path}_${_.id}`)},c3);function c3(e,t){return e.height===t.height&&e.propertyKey===t.propertyKey&&e.align===t.align&&e.width===t.width&&de(e.property,t.property)&&de(e.value,t.value)&&de(e.entity.values,t.entity.values)}function uo(e){return n.jsx("div",{className:"flex w-full h-screen max-h-full max-w-full bg-gray-50 dark:bg-gray-900",children:n.jsx("div",{className:"m-auto",children:n.jsx(Gn,{...e})})})}function Hi({trigger:e,children:t,open:c,onOpenChange:i,side:l,sideOffset:a=5,align:s,alignOffset:d,arrowPadding:u,sticky:A,hideWhenDetached:_,avoidCollisions:g,enabled:y=!0}){return En("Popover",i3),y?n.jsxs(Zn.Root,{open:c,onOpenChange:i,children:[n.jsx(Zn.Trigger,{asChild:!0,children:e}),n.jsx(Zn.Portal,{children:n.jsxs(Zn.Content,{className:E(He,"PopoverContent shadow z-50"),side:l,sideOffset:a,align:s,alignOffset:d,arrowPadding:u,sticky:A,hideWhenDetached:_,avoidCollisions:g,children:[t,n.jsx(Zn.Arrow,{className:"fill-white dark:fill-gray-950"})]})})]}):n.jsx(n.Fragment,{children:e})}const i3=`
|
|
683
|
-
|
|
684
|
-
.PopoverContent {
|
|
685
|
-
animation-duration: 400ms;
|
|
686
|
-
animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
|
|
687
|
-
will-change: transform, opacity;
|
|
688
|
-
}
|
|
689
|
-
.PopoverContent[data-state='open'][data-side='top'] {
|
|
690
|
-
animation-name: slideDownAndFade;
|
|
691
|
-
}
|
|
692
|
-
.PopoverContent[data-state='open'][data-side='right'] {
|
|
693
|
-
animation-name: slideLeftAndFade;
|
|
694
|
-
}
|
|
695
|
-
.PopoverContent[data-state='open'][data-side='bottom'] {
|
|
696
|
-
animation-name: slideUpAndFade;
|
|
697
|
-
}
|
|
698
|
-
.PopoverContent[data-state='open'][data-side='left'] {
|
|
699
|
-
animation-name: slideRightAndFade;
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
@keyframes slideUpAndFade {
|
|
704
|
-
from {
|
|
705
|
-
opacity: 0;
|
|
706
|
-
transform: translateY(2px);
|
|
707
|
-
}
|
|
708
|
-
to {
|
|
709
|
-
opacity: 1;
|
|
710
|
-
transform: translateY(0);
|
|
711
|
-
}
|
|
712
|
-
}
|
|
713
|
-
|
|
714
|
-
@keyframes slideRightAndFade {
|
|
715
|
-
from {
|
|
716
|
-
opacity: 0;
|
|
717
|
-
transform: translateX(-2px);
|
|
718
|
-
}
|
|
719
|
-
to {
|
|
720
|
-
opacity: 1;
|
|
721
|
-
transform: translateX(0);
|
|
722
|
-
}
|
|
723
|
-
}
|
|
724
|
-
|
|
725
|
-
@keyframes slideDownAndFade {
|
|
726
|
-
from {
|
|
727
|
-
opacity: 0;
|
|
728
|
-
transform: translateY(-2px);
|
|
729
|
-
}
|
|
730
|
-
to {
|
|
731
|
-
opacity: 1;
|
|
732
|
-
transform: translateY(0);
|
|
733
|
-
}
|
|
734
|
-
}
|
|
735
|
-
|
|
736
|
-
@keyframes slideLeftAndFade {
|
|
737
|
-
from {
|
|
738
|
-
opacity: 0;
|
|
739
|
-
transform: translateX(2px);
|
|
740
|
-
}
|
|
741
|
-
to {
|
|
742
|
-
opacity: 1;
|
|
743
|
-
transform: translateX(0);
|
|
744
|
-
}
|
|
745
|
-
}
|
|
746
|
-
`,a3=e=>{switch(e){case"primary":return"bg-primary";case"secondary":return"bg-secondary";case"error":return"bg-red-500";default:return"bg-gray-300 dark:bg-gray-700"}},Ui=({color:e="primary",invisible:t=!1,children:c})=>n.jsxs("div",{className:"relative inline-block",children:[c,n.jsx("span",{className:`absolute top-0 right-0 transform translate-x-1/2 -translate-y-1/2 rounded-full
|
|
747
|
-
${a3(e)}
|
|
748
|
-
transition-all duration-200 ease-out
|
|
749
|
-
${t?"w-0 h-0":"w-2 h-2"}`})]}),l3=f.memo(function({resizeHandleRef:t,columnIndex:c,isResizingIndex:i,sort:l,onColumnSort:a,onFilterUpdate:s,filter:d,column:u,onClickResizeColumn:A,createFilterField:_}){const[g,y]=f.useState(!1),[h,I]=f.useState(!1),b=f.useCallback(m=>{I(!0)},[]),p=f.useCallback((m,v)=>{s(u,m),v!==void 0&&I(v)},[u,s]),w=i===c,K=!(i!==c&&i>0)&&(g||w);return n.jsx(se,{children:n.jsxs("div",{className:E("flex py-0 px-3 h-full text-xs uppercase font-semibold relative select-none items-center bg-gray-50 dark:bg-gray-900","text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-200 ","hover:bg-gray-100 dark:hover:bg-gray-800 hover:bg-opacity-50 dark:hover:bg-opacity-50",u.frozen?"sticky left-0 z-10":"relative z-0"),style:{left:u.frozen?0:void 0,minWidth:u.width,maxWidth:u.width},onMouseEnter:()=>y(!0),onMouseMove:()=>y(!0),onMouseLeave:()=>y(!1),children:[n.jsx("div",{className:"overflow-hidden flex-grow",children:n.jsxs("div",{className:`flex items-center justify-${u.headerAlign} flex-row`,children:[u.icon&&u.icon(g||h),n.jsx("div",{className:"truncate -webkit-box w-full mx-1 overflow-hidden",style:{WebkitBoxOrient:"vertical",WebkitLineClamp:2,justifyContent:u.align},children:u.title})]})}),u.sortable&&(l||K||h)&&n.jsx(Ui,{color:"secondary",invisible:!l,children:n.jsxs(ee,{size:"small",className:g||h?"bg-white dark:bg-gray-950":void 0,onClick:()=>{a(u.key)},children:[!l&&n.jsx(po,{}),l==="asc"&&n.jsx(po,{}),l==="desc"&&n.jsx(po,{className:"rotate-180"})]})}),u.filter&&_&&n.jsx("div",{children:n.jsx(Ui,{color:"secondary",invisible:!d,children:n.jsx(Hi,{open:h,onOpenChange:I,trigger:n.jsx(ee,{className:g||h?"bg-white dark:bg-gray-950":void 0,size:"small",onClick:b,children:n.jsx(eo,{})}),children:u.filter&&n.jsx(s3,{column:u,filter:d,onHover:g,onFilterUpdate:p,createFilterField:_,popupOpen:h,setPopupOpen:I})})})}),u.resizable&&n.jsx("div",{ref:t,className:E("absolute h-full w-[6px] top-0 right-0 cursor-col-resize",K&&"bg-gray-300 dark:bg-gray-700"),onMouseDown:A?()=>A(c,u):void 0})]})})},de);function s3({column:e,onFilterUpdate:t,filter:c,onHover:i,createFilterField:l,popupOpen:a,setPopupOpen:s}){const d=e.key,[u,A]=f.useState(c);if(f.useEffect(()=>{A(c)},[c]),!e.filter)return null;const _=()=>{t(u,!1)},g=I=>{t(void 0,!1)},y=!!c,h=l({id:d,filterValue:u,setFilterValue:A,column:e,popupOpen:a,setPopupOpen:s});return h?n.jsxs("div",{className:E("text-gray-900 dark:text-white"),children:[n.jsx("div",{className:E(ue,"py-4 px-6 text-xs font-semibold uppercase border-b"),children:e.title??d}),h&&n.jsx("div",{className:"m-4",children:h}),n.jsxs("div",{className:"flex justify-end m-4",children:[n.jsx(te,{className:"mr-4",disabled:!y,variant:"text",color:"primary",type:"reset","aria-label":"filter clear",onClick:g,children:"Clear"}),n.jsx(te,{variant:"outlined",color:"primary",onClick:_,children:"Filter"})]})]}):null}const d3=({columns:e,currentSort:t,onColumnSort:c,onFilterUpdate:i,sortByProperty:l,filter:a,onColumnResize:s,onColumnResizeEnd:d,createFilterField:u})=>{const A=e.map(()=>f.createRef()),[_,g]=f.useState(-1),y=f.useCallback((m,v,S)=>{const B=e[m],P=100,F=800,D=v>F?F:v<P?P:v,C={width:D,key:B.key,column:{...B,width:D}};S?d(C):s(C)},[e,s,d]),h=f.useCallback(m=>{if(_>=0){const v=A[_].current?.parentElement?.getBoundingClientRect().left;return v?m.clientX-v:void 0}},[A,_]),I=f.useCallback(m=>{document.body.style.cursor=m?"col-resize":"auto"},[]),b=f.useCallback(m=>{m.stopPropagation(),m.preventDefault();const v=h(m);v&&y(_,v,!1)},[y,h,_]),p=f.useCallback(m=>{m.stopPropagation(),m.preventDefault();const v=h(m);v&&y(_,v,!0),g(-1),I(!1)},[y,h,_,I]),w=f.useCallback(()=>{document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",p)},[b,p]),k=f.useCallback(()=>{document.addEventListener("mousemove",b),document.addEventListener("mouseup",p)},[b,p]);f.useEffect(()=>(_>=0?k():w(),()=>{w()}),[k,_,w]);const K=f.useCallback(m=>{g(m),I(!0)},[I]);return n.jsx("div",{className:E(ue,"z-20 sticky min-w-full flex w-fit flex-row top-0 left-0 h-12 border-b bg-gray-50 dark:bg-gray-900"),children:e.map((m,v)=>{const S=e[v],B=S&&a&&a[S.key]?a[S.key]:void 0;return n.jsx(se,{children:n.jsx(l3,{resizeHandleRef:A[v],columnIndex:v,isResizingIndex:_,onFilterUpdate:i,filter:B,sort:l===S.key?t:void 0,onColumnSort:c,onClickResizeColumn:K,column:S,createFilterField:u})},"header_"+S.key)})})},u3=f.memo(function({rowData:t,rowIndex:c,children:i,onRowClick:l,size:a,style:s,hoverRow:d,rowClassName:u}){const A=f.useCallback(_=>l?l({rowData:t,rowIndex:c,event:_}):void 0,[l,t,c]);return n.jsx("div",{className:E("flex min-w-full text-sm border-b border-gray-200 dark:border-gray-800 border-opacity-40 dark:border-opacity-40",u?u(t):"",{"hover:bg-opacity-95":d,"cursor-pointer":l}),onClick:A,style:{...s,height:Ln(a),width:"fit-content"},children:i})},de),f3=f.memo(function(t){return t.rowData&&t.cellRenderer({cellData:t.cellData,rowData:t.rowData,rowIndex:t.rowIndex,isScrolling:!1,column:t.column,columns:t.columns,columnIndex:t.columnIndex,width:t.column.width})},(e,t)=>de(e,t)),Ho=f.createContext({});Ho.displayName="VirtualListContext";const A3=f.forwardRef(({children:e,...t},c)=>n.jsx(Ho.Consumer,{children:i=>{const l=i.customView;return n.jsxs(n.Fragment,{children:[n.jsx("div",{id:"virtual-table",style:{position:"relative",height:"100%"},children:n.jsxs("div",{ref:c,...t,style:{...t?.style,minHeight:"100%",position:"relative"},children:[n.jsx(d3,{...i}),!l&&e]})}),l&&n.jsx("div",{style:{position:"sticky",top:"56px",flexGrow:1,height:"calc(100% - 56px)",marginTop:"calc(56px - 100vh)",left:0},children:l})]})}})),Yi=f.memo(function({data:t,onResetPagination:c,onEndReached:i,size:l="m",columns:a,onRowClick:s,onColumnResize:d,filter:u,checkFilterCombination:A,onFilterUpdate:_,sortBy:g,error:y,emptyMessage:h,onSortByUpdate:I,loading:b,cellRenderer:p,hoverRow:w,createFilterField:k,rowClassName:K,className:m,endAdornment:v}){const S=g?g[0]:void 0,B=g?g[1]:void 0,[P,F]=f.useState(a),D=f.useRef(null),C=f.useRef(0);f.useEffect(()=>{F(a)},[a]);const[N,M]=nr(),H=f.useCallback(J=>{F(P.map(x=>x.key===J.column.key?J.column:x))},[P]),Z=f.useCallback(J=>{F(P.map(x=>x.key===J.column.key?J.column:x)),d&&d(J)},[P,d]),O=f.useRef();f.useEffect(()=>{O.current=u},[u]);const oe=f.useCallback(()=>{C.current=0,D.current&&D.current.scrollTo(D.current?.scrollLeft,0)},[]),U=f.useCallback(J=>{const x=S===J&&B==="desc",Y=S===J&&B==="asc"?"desc":x?void 0:"asc",Be=x?void 0:J,Oe=O.current,Ue=Y&&Be?[Be,Y]:void 0;Oe&&A&&!A(Oe,Ue)&&_&&_(void 0),c&&c(),I&&I(Ue),oe()},[A,B,_,c,I,oe,S]),L=f.useCallback(()=>{C.current=0,I&&I(void 0)},[I]),X=Math.max((t?.length??0)*Ln(l)-M.height,0),W=f.useCallback(J=>{i&&(t?.length??0)>0&&J>C.current+500&&(C.current=J,i())},[t,i]),V=f.useCallback(({scrollOffset:J,scrollUpdateWasRequested:x})=>{!x&&J>=X-500&&W(J)},[X,W]),Q=f.useCallback((J,x)=>{C.current=0;const ie=O.current;let Y=ie?{...ie}:{};x?Y[J.key]=x:delete Y[J.key],!A||A(Y,S&&B?[S,B]:void 0)||(Y=x?{[J.key]:x}:{}),_&&_(Y),J.key!==S&&L()},[A,B,_,L,S]),q=f.useCallback(()=>n.jsxs("div",{className:"h-full flex flex-col items-center justify-center sticky left-0",children:[n.jsx(j,{variant:"h6",children:"Error fetching data from the data source"}),y?.message&&n.jsx(co,{className:"px-4 break-all",source:y.message})]}),[y?.message]),R=f.useCallback(()=>b?n.jsx(uo,{}):n.jsxs("div",{className:"flex overflow-auto items-center justify-center p-2 gap-2 h-full",children:[n.jsx(fc,{}),n.jsx(j,{children:h})]}),[h,b]),$=!b&&(t?.length??0)===0,ne=y?q():$?R():void 0;return n.jsx("div",{ref:N,className:E("h-full w-full",m),children:n.jsx(Ho.Provider,{value:{data:t,size:l,cellRenderer:p,columns:P,currentSort:B,onRowClick:s,customView:ne,onColumnResize:H,onColumnResizeEnd:Z,filter:O.current,onColumnSort:U,onFilterUpdate:Q,sortByProperty:S,hoverRow:w??!1,createFilterField:k,rowClassName:K,endAdornment:v},children:n.jsx(_3,{outerRef:D,width:M.width,height:M.height,itemCount:(t?.length??0)+(v?1:0),onScroll:V,itemSize:Ln(l)},l)})})},de);function _3({outerRef:e,width:t,height:c,itemCount:i,onScroll:l,itemSize:a}){const s=f.useCallback(({index:d,style:u})=>n.jsx(Ho.Consumer,{children:({onRowClick:A,data:_,columns:g,size:y="m",cellRenderer:h,hoverRow:I,rowClassName:b,endAdornment:p})=>{if(p&&d===(_??[]).length)return n.jsx("div",{style:{...u,height:"auto",position:"sticky",bottom:0,zIndex:1},children:p});const w=_&&_[d];return n.jsx(u3,{rowData:w,rowIndex:d,onRowClick:A,columns:g,hoverRow:I,rowClassName:b,style:{...u,top:`calc(${u.top}px + 48px)`},size:y,children:g.map((k,K)=>{const m=w&&w[k.key];return n.jsx(f3,{dataKey:k.key,cellRenderer:h,column:k,columns:g,rowData:w,cellData:m,rowIndex:d,columnIndex:K},`cell_${k.key}`)})},`row_${d}`)}}),[]);return n.jsx(Pa.FixedSizeList,{outerRef:e,innerElementType:A3,width:t,height:c,overscanCount:4,itemCount:i,onScroll:l,itemSize:a,children:s})}function Qn({children:e,trigger:t,open:c,defaultOpen:i,onOpenChange:l}){return n.jsxs(Jn.Root,{open:c,defaultOpen:i,onOpenChange:l,children:[n.jsx(Jn.Trigger,{asChild:!0,children:t}),n.jsx(Jn.Portal,{children:n.jsx(Jn.Content,{className:E(He,"shadow py-2 z-30"),children:e})})]})}function ke({children:e,dense:t,onClick:c}){return n.jsx(Jn.Item,{className:E(ge,c&&"cursor-pointer","rounded-md px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-900 flex items-center gap-4"),onClick:c,children:e})}function pt({entity:e,width:t,frozen:c,isSelected:i,selectionEnabled:l,size:a,toggleEntitySelection:s,onCopyClicked:d,onEditClicked:u,onDeleteClicked:A,hideId:_}){const g=Ge(),y=!!u,h=!!d,I=!!A,b=f.useCallback(K=>{s&&s(e)},[e,s]),p=f.useCallback(K=>{K.stopPropagation(),A&&A(e)},[e,A]),w=f.useCallback(K=>{K.stopPropagation(),d&&d(e)},[e,d]),k=f.useCallback(K=>{K.stopPropagation(),s&&s(e)},[e,s]);return n.jsxs("div",{onClick:k,className:E("h-full flex items-center justify-center flex-col bg-gray-50 dark:bg-gray-900 bg-opacity-90 dark:bg-opacity-90 z-10",c?"sticky left-0":""),style:{width:t,position:c?"sticky":"initial",left:c?0:"initial",contain:"strict"},children:[(y||I||l)&&n.jsxs("div",{className:"w-34 flex justify-center",children:[y&&n.jsx(ye,{title:`Edit ${e.id}`,children:n.jsx(ee,{onClick:K=>{K.stopPropagation(),u&&u(e)},size:g?"medium":"small",children:n.jsx(ko,{})})}),l&&n.jsx(ye,{title:`Select ${e.id}`,children:n.jsx(Lr,{size:g?"medium":"small",checked:i,onCheckedChange:b})}),(h||I)&&n.jsxs(Qn,{trigger:n.jsx(ee,{size:g?"medium":"small",children:n.jsx(vr,{})}),children:[I&&n.jsxs(ke,{onClick:p,children:[n.jsx(wo,{}),"Delete"]}),h&&n.jsxs(ke,{onClick:w,children:[n.jsx(kc,{}),"Copy"]})]})]}),!_&&a!=="xs"&&n.jsx("div",{className:"w-[138px] text-center overflow-hidden truncate",children:e?n.jsxs(j,{className:"font-mono",variant:"caption",color:"secondary",children:[" ",e.id," "]}):n.jsx(Ve,{})})]})}function y3(e){const t=Ge(),c=!e.forceFilter&&e.filterIsSet&&e.clearFilter&&n.jsxs(te,{variant:"outlined",className:"h-fit-content","aria-label":"filter clear",onClick:e.clearFilter,size:"small",children:[n.jsx(mc,{}),"Clear filter"]}),i=n.jsx(xe,{value:e.size,className:"w-16 h-10",size:"small",onValueChange:l=>e.onSizeChanged(l),renderValue:l=>n.jsx("div",{className:"font-medium",children:l.toUpperCase()}),children:["xs","s","m","l","xl"].map(l=>n.jsx(Re,{value:l,className:"w-12 font-medium text-center",children:l.toUpperCase()},l))});return n.jsxs("div",{className:E(ue,"no-scrollbar min-h-[56px] overflow-x-auto px-4 bg-gray-50 dark:bg-gray-900 border-b flex flex-row justify-between items-center w-full"),children:[n.jsxs("div",{className:"flex items-center gap-8 md:gap-4 ",children:[e.title&&n.jsx("div",{className:"hidden lg:block",children:e.title}),i,e.actionsStart,c]}),n.jsxs("div",{className:"flex items-center gap-4 md:gap-2",children:[t&&n.jsx("div",{className:"w-[22px]",children:e.loading&&n.jsx(Gn,{size:"small"})}),e.onTextSearch&&n.jsx(Qt,{onTextSearch:e.onTextSearch,expandable:!0},"search-bar"),e.actions]})]})}const $i={"==":"==","!=":"!=",">":">","<":"<",">=":">=","<=":"<=",in:"In","not-in":"Not in","array-contains":"Contains","array-contains-any":"Contains Any"},wt=["array-contains-any","in","not-in"];function h3({name:e,value:t,setValue:c,isArray:i,path:l,title:a,previewProperties:s,setPopupOpen:d}){const u=i?["array-contains"]:["==","!=",">","<",">=","<="],[A,_]=f.useState(!1);i?u.push("array-contains-any"):u.push("in","not-in");const[g,y]=t||[u[0],void 0],[h,I]=f.useState(g),[b,p]=f.useState(y),w=b?Array.isArray(b)?b.map(C=>C instanceof Je?C.id:null).filter(Boolean):[b.id]:[];function k(C,N){const M=wt.includes(h),H=wt.includes(C);let Z=N;M!==H&&(Z=H?Z instanceof Je?[Z]:[]:void 0),I(C),p(Z);const O=Z!==null&&Array.isArray(Z)?Z.length>0:Z!==void 0;c(C&&O?[C,Z]:void 0)}const K=Ae(),m=f.useMemo(()=>l?K.getCollection(l):void 0,[l]),v=C=>{k(h,In(C))},S=C=>{k(h,C.map(N=>In(N)))},B=wt.includes(h),P=xn({multiselect:B,path:l,collection:m,onSingleEntitySelected:v,onMultipleEntitiesSelected:S,selectedEntityIds:w,onClose:()=>{d(!0)}}),F=()=>{d(!1),P.open()},D=C=>n.jsx("div",{className:"mb-0.5",onMouseEnter:()=>_(!0),onMouseMove:()=>_(!0),onMouseLeave:()=>_(!1),children:n.jsx(on,{disabled:!l,previewProperties:s,size:"medium",onClick:F,reference:C,onHover:A,allowEntityNavigation:!1})});return n.jsxs("div",{className:"flex w-[440px] flex-row",children:[n.jsx("div",{className:"w-[120px]",children:n.jsx(xe,{value:h,onValueChange:C=>{k(C,b)},renderValue:C=>$i[C],children:u.map(C=>n.jsx(Re,{value:C,children:$i[C]},C))})}),n.jsxs("div",{className:"flex-grow ml-2 h-full",children:[b&&Array.isArray(b)&&n.jsx("div",{children:b.map((C,N)=>D(C))}),b&&!Array.isArray(b)&&n.jsx("div",{children:D(b)}),(!b||Array.isArray(b)&&b.length===0)&&n.jsx(te,{onClick:F,className:"h-full",children:B?"Select references":"Select reference"})]})]})}const ji={"==":"==","!=":"!=",">":">","<":"<",">=":">=","<=":"<=",in:"In","not-in":"Not in","array-contains":"Contains","array-contains-any":"Any"},kt=["array-contains-any","in","not-in"];function g3({name:e,value:t,setValue:c,dataType:i,isArray:l,enumValues:a,title:s}){const d=l?["array-contains"]:["==","!=",">","<",">=","<="];a&&(l?d.push("array-contains-any"):d.push("in","not-in"));const[u,A]=t||[d[0],void 0],[_,g]=f.useState(u),[y,h]=f.useState(A);function I(p,w){let k=w;const K=kt.includes(_),m=kt.includes(p);K!==m&&(k=m?typeof w=="string"||typeof w=="number"?[w]:[]:""),typeof k=="number"&&isNaN(k)&&(k=void 0),g(p),h(k);const v=k!==null&&Array.isArray(k)?k.length>0:k!==void 0;c(p&&v?[p,k]:void 0)}const b=kt.includes(_);return n.jsxs("div",{className:"flex w-[440px] items-center",children:[n.jsx("div",{className:"w-[80px]",children:n.jsx(xe,{value:_,position:"item-aligned",onValueChange:p=>{I(p,y)},renderValue:p=>ji[p],children:d.map(p=>n.jsx(Re,{value:p,children:ji[p]},p))})}),n.jsxs("div",{className:"flex-grow ml-2",children:[!a&&n.jsx(An,{type:i==="number"?"number":void 0,value:y!==void 0?String(y):"",onChange:p=>{const w=i==="number"?parseFloat(p.target.value):p.target.value;I(_,w)},endAdornment:y&&n.jsx(ee,{className:"absolute right-3 top-2",onClick:p=>I(_,void 0),children:n.jsx(an,{})})}),a&&n.jsx(xe,{position:"item-aligned",value:y!==void 0?Array.isArray(y)?y.map(p=>String(p)):String(y):l?[]:"",onValueChange:p=>{I(_,i==="number"?parseInt(p):p)},multiple:b,endAdornment:y&&n.jsx(ee,{className:"absolute right-3 top-2",onClick:p=>I(_,void 0),children:n.jsx(an,{})}),renderValue:p=>n.jsx(Ee,{enumKey:p,enumValues:a,size:"small"},`select_value_${e}_${p}`),children:a.map(p=>n.jsx(Re,{value:String(p.id),children:n.jsx(Ee,{enumKey:String(p.id),enumValues:a,size:"small"})},`select_value_${e}_${p.id}`))})]})]})}function I3({name:e,title:t,value:c,setValue:i}){function l(d){i(d!==void 0?["==",d]:void 0)}const a=c&&c[1],s=!!c;return n.jsx("div",{className:"w-[200px]",children:n.jsx(On,{value:a,allowIndeterminate:!0,onValueChange:d=>l(d===null?void 0:d),label:s?a?`${t} is true`:`${t} is false`:"No filter"})})}const b3="hover:bg-gray-200 hover:bg-opacity-75 dark:hover:bg-gray-700 dark:hover:bg-opacity-75",p3="inline-flex items-center justify-center p-2 text-sm font-medium focus:outline-none transition-colors ease-in-out duration-150",w3="dark:text-gray-100 text-gray-700 visited:text-gray-700 dark:visited:text-gray-100",k3={medium:"w-10 !h-10 min-w-10 min-h-10",small:"w-8 !h-8 min-w-8 min-h-8",large:"w-12 !h-12 min-w-12 min-h-12"},m3={circular:"rounded-full",square:"rounded-md"},v3=({children:e,className:t,size:c="medium",variant:i="ghost",shape:l="circular",disabled:a,toggled:s,component:d,...u},A)=>{const _=i==="ghost"?"bg-transparent":"bg-gray-50 dark:bg-gray-950",g=d||"button";return n.jsx(g,{type:"button",ref:A,...u,className:E(ge,a?"opacity-50 pointer-events-none":"cursor-pointer",s?"outline outline-2 outline-primary":"",w3,_,p3,b3,m3[l],k3[c],t),children:e})},ee=f.forwardRef(v3),mt=ce.forwardRef(function(t,c){const{shrink:i,className:l,...a}=t,s={root:"origin-left transition-transform block whitespace-nowrap overflow-hidden text-overflow-ellipsis max-w-full",shrink:"transform translate-y-[2px] scale-75 translate-x-[12px]",expanded:"translate-x-[16px] top-0 transform translate-y-[16px] scale-100"},d=E(s.root,{[s.shrink]:i,[s.expanded]:!i},l);return n.jsx("label",{"data-shrink":i,ref:c,className:d,...a})}),Vn=({value:e,label:t,onChange:c,disabled:i,clearable:l,mode:a="date",error:s,size:d,className:u,style:A,inputClassName:_,preventOpenOnFocus:g,invisible:y})=>{const h=f.useRef(null),{locale:I}=re(),b=f.useRef(null),[p,w]=f.useState(document.activeElement===b.current),k=e!=null,K=e!=null&&!(e instanceof Date);En("DateTimeField",K3);const m=v=>{v.preventDefault(),c(null)};return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:E("rounded-md relative max-w-full",!y&&qe,i?en:ze,{"min-h-[48px]":d==="small","min-h-[64px]":d==="medium"},u),style:A,children:[t&&n.jsx(mt,{className:E("absolute top-1 pointer-events-none",s?"text-red-500 dark:text-red-600":p?"text-primary":"text-text-secondary dark:text-text-secondary-dark",i?"opacity-50":""),shrink:k||p,children:t}),n.jsx(Ro,{ref:h,locale:I,selected:(K?null:e)??null,onChange:c,disabled:!1,popperClassName:E(He,"my-4 shadow"),onClick:v=>v.stopPropagation(),onFocus:()=>w(!0),onBlur:()=>w(!1),showTimeSelect:a==="date_time",timeFormat:"HH:mm",timeIntervals:15,timeCaption:"time",dateFormat:a==="date_time"?"Pp":"P",preventOpenOnFocus:!0,className:E("w-full outline-none bg-transparent leading-normal text-base px-3",l?"pr-14":"pr-12","rounded-md",!y&&ge,d==="small"?"min-h-[48px]":"min-h-[64px]",t?"pt-[28px] pb-2":"py-2",_,i&&"border border-transparent outline-none opacity-50 dark:opacity-50 text-gray-600 dark:text-gray-500")}),n.jsx(ee,{onClick:()=>h.current?.setOpen(!0),className:"absolute right-3 top-1/2 transform -translate-y-1/2 !text-gray-500 ",children:n.jsx(Ac,{color:"disabled"})}),l&&e&&n.jsx(ee,{onClick:m,className:"absolute right-14 top-1/2 transform -translate-y-1/2 text-gray-400 ",children:n.jsx(an,{})})]}),K&&n.jsx(pe,{title:"Invalid date value for this field",error:`The provided value is: ${JSON.stringify(e)}`})]})},K3=`
|
|
750
|
-
.react-datepicker__year-read-view--down-arrow,
|
|
751
|
-
.react-datepicker__month-read-view--down-arrow,
|
|
752
|
-
.react-datepicker__month-year-read-view--down-arrow, .react-datepicker__navigation-icon::before {
|
|
753
|
-
border-color: #ccc;
|
|
754
|
-
border-style: solid;
|
|
755
|
-
border-width: 3px 3px 0 0;
|
|
756
|
-
content: "";
|
|
757
|
-
display: block;
|
|
758
|
-
height: 9px;
|
|
759
|
-
position: absolute;
|
|
760
|
-
top: 6px;
|
|
761
|
-
width: 9px;
|
|
762
|
-
}
|
|
763
|
-
|
|
764
|
-
.react-datepicker-wrapper {
|
|
765
|
-
width: 100%;
|
|
766
|
-
height: 100%;
|
|
767
|
-
display: flex;
|
|
768
|
-
padding: 0;
|
|
769
|
-
border: 0;
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
.react-datepicker {
|
|
773
|
-
font-size: 0.875rem;
|
|
774
|
-
color: #111;
|
|
775
|
-
display: flex;
|
|
776
|
-
position: relative;
|
|
777
|
-
}
|
|
778
|
-
|
|
779
|
-
.react-datepicker--time-only .react-datepicker__time-container {
|
|
780
|
-
border-left: 0;
|
|
781
|
-
}
|
|
782
|
-
.react-datepicker--time-only .react-datepicker__time,
|
|
783
|
-
.react-datepicker--time-only .react-datepicker__time-box {
|
|
784
|
-
border-bottom-left-radius: 4px;
|
|
785
|
-
border-bottom-right-radius: 4px;
|
|
786
|
-
}
|
|
787
|
-
|
|
788
|
-
.react-datepicker__triangle {
|
|
789
|
-
display: none;
|
|
790
|
-
}
|
|
791
|
-
|
|
792
|
-
.react-datepicker-popper {
|
|
793
|
-
z-index: 100;
|
|
794
|
-
min-width: 348px;
|
|
795
|
-
}
|
|
796
|
-
|
|
797
|
-
.react-datepicker__header {
|
|
798
|
-
text-align: center;
|
|
799
|
-
background-color: #f0f0f0;
|
|
800
|
-
border-bottom: 1px solid #e7e7e9;
|
|
801
|
-
border-top-left-radius: 4px;
|
|
802
|
-
padding: 16px;
|
|
803
|
-
position: relative;
|
|
804
|
-
}
|
|
805
|
-
.react-datepicker__header--time {
|
|
806
|
-
padding-bottom: 8px;
|
|
807
|
-
padding-left: 5px;
|
|
808
|
-
padding-right: 5px;
|
|
809
|
-
}
|
|
810
|
-
.react-datepicker__header--time:not(.react-datepicker__header--time--only) {
|
|
811
|
-
border-top-left-radius: 0;
|
|
812
|
-
}
|
|
813
|
-
.react-datepicker__header:not(.react-datepicker__header--has-time-select) {
|
|
814
|
-
border-top-right-radius: 4px;
|
|
815
|
-
}
|
|
816
|
-
|
|
817
|
-
.react-datepicker__year-dropdown-container--select,
|
|
818
|
-
.react-datepicker__month-dropdown-container--select,
|
|
819
|
-
.react-datepicker__month-year-dropdown-container--select,
|
|
820
|
-
.react-datepicker__year-dropdown-container--scroll,
|
|
821
|
-
.react-datepicker__month-dropdown-container--scroll,
|
|
822
|
-
.react-datepicker__month-year-dropdown-container--scroll {
|
|
823
|
-
display: inline-block;
|
|
824
|
-
margin: 0 15px;
|
|
825
|
-
}
|
|
826
|
-
|
|
827
|
-
.react-datepicker__current-month,
|
|
828
|
-
.react-datepicker-time__header,
|
|
829
|
-
.react-datepicker-year-header {
|
|
830
|
-
margin-top: 0;
|
|
831
|
-
color: #000;
|
|
832
|
-
font-weight: 500;
|
|
833
|
-
font-size: 0.875rem;
|
|
834
|
-
}
|
|
835
|
-
|
|
836
|
-
.react-datepicker-time__header {
|
|
837
|
-
text-overflow: ellipsis;
|
|
838
|
-
white-space: nowrap;
|
|
839
|
-
overflow: hidden;
|
|
840
|
-
}
|
|
841
|
-
|
|
842
|
-
.react-datepicker__navigation {
|
|
843
|
-
align-items: center;
|
|
844
|
-
background: none;
|
|
845
|
-
display: flex;
|
|
846
|
-
justify-content: center;
|
|
847
|
-
text-align: center;
|
|
848
|
-
cursor: pointer;
|
|
849
|
-
position: absolute;
|
|
850
|
-
top: 2px;
|
|
851
|
-
padding: 0;
|
|
852
|
-
border: none;
|
|
853
|
-
z-index: 1;
|
|
854
|
-
height: 32px;
|
|
855
|
-
width: 32px;
|
|
856
|
-
text-indent: -999em;
|
|
857
|
-
overflow: hidden;
|
|
858
|
-
}
|
|
859
|
-
.react-datepicker__navigation--previous {
|
|
860
|
-
top: 12px;
|
|
861
|
-
left: 4px;
|
|
862
|
-
}
|
|
863
|
-
.react-datepicker__navigation--next {
|
|
864
|
-
top: 12px;
|
|
865
|
-
right: 4px;
|
|
866
|
-
}
|
|
867
|
-
.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button) {
|
|
868
|
-
right: 85px;
|
|
869
|
-
}
|
|
870
|
-
.react-datepicker__navigation--years {
|
|
871
|
-
position: relative;
|
|
872
|
-
top: 0;
|
|
873
|
-
display: block;
|
|
874
|
-
margin-left: auto;
|
|
875
|
-
margin-right: auto;
|
|
876
|
-
}
|
|
877
|
-
.react-datepicker__navigation--years-previous {
|
|
878
|
-
top: 4px;
|
|
879
|
-
}
|
|
880
|
-
.react-datepicker__navigation--years-upcoming {
|
|
881
|
-
top: -4px;
|
|
882
|
-
}
|
|
883
|
-
.react-datepicker__navigation:hover *::before {
|
|
884
|
-
border-color: #a6a6a6;
|
|
885
|
-
}
|
|
886
|
-
|
|
887
|
-
.react-datepicker__navigation-icon {
|
|
888
|
-
position: relative;
|
|
889
|
-
top: -1px;
|
|
890
|
-
font-size: 20px;
|
|
891
|
-
width: 0;
|
|
892
|
-
}
|
|
893
|
-
.react-datepicker__navigation-icon--next {
|
|
894
|
-
left: -2px;
|
|
895
|
-
}
|
|
896
|
-
.react-datepicker__navigation-icon--next::before {
|
|
897
|
-
transform: rotate(45deg);
|
|
898
|
-
left: -7px;
|
|
899
|
-
}
|
|
900
|
-
.react-datepicker__navigation-icon--previous {
|
|
901
|
-
right: -2px;
|
|
902
|
-
}
|
|
903
|
-
.react-datepicker__navigation-icon--previous::before {
|
|
904
|
-
transform: rotate(225deg);
|
|
905
|
-
right: -7px;
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
.react-datepicker__year {
|
|
910
|
-
margin: 0.4rem;
|
|
911
|
-
text-align: center;
|
|
912
|
-
}
|
|
913
|
-
.react-datepicker__year-wrapper {
|
|
914
|
-
display: flex;
|
|
915
|
-
flex-wrap: wrap;
|
|
916
|
-
max-width: 180px;
|
|
917
|
-
}
|
|
918
|
-
.react-datepicker__year .react-datepicker__year-text {
|
|
919
|
-
display: inline-block;
|
|
920
|
-
width: 4rem;
|
|
921
|
-
margin: 2px;
|
|
922
|
-
}
|
|
923
|
-
|
|
924
|
-
.react-datepicker__month {
|
|
925
|
-
margin: 16px;
|
|
926
|
-
text-align: center;
|
|
927
|
-
}
|
|
928
|
-
.react-datepicker__month .react-datepicker__month-text,
|
|
929
|
-
.react-datepicker__month .react-datepicker__quarter-text {
|
|
930
|
-
display: inline-block;
|
|
931
|
-
width: 4rem;
|
|
932
|
-
margin: 2px;
|
|
933
|
-
}
|
|
934
|
-
|
|
935
|
-
.react-datepicker__input-time-container {
|
|
936
|
-
display: flex;
|
|
937
|
-
width: 100%;
|
|
938
|
-
height: 100%;
|
|
939
|
-
margin: 5px 0 10px 15px;
|
|
940
|
-
text-align: left;
|
|
941
|
-
}
|
|
942
|
-
.react-datepicker__input-time-container .react-datepicker-time__caption {
|
|
943
|
-
display: inline-block;
|
|
944
|
-
}
|
|
945
|
-
.react-datepicker__input-time-container .react-datepicker-time__input-container {
|
|
946
|
-
display: inline-block;
|
|
947
|
-
}
|
|
948
|
-
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input {
|
|
949
|
-
display: inline-block;
|
|
950
|
-
margin-left: 10px;
|
|
951
|
-
}
|
|
952
|
-
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input {
|
|
953
|
-
width: auto;
|
|
954
|
-
}
|
|
955
|
-
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,
|
|
956
|
-
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button {
|
|
957
|
-
-webkit-appearance: none;
|
|
958
|
-
margin: 0;
|
|
959
|
-
}
|
|
960
|
-
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time] {
|
|
961
|
-
-moz-appearance: textfield;
|
|
962
|
-
}
|
|
963
|
-
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter {
|
|
964
|
-
margin-left: 5px;
|
|
965
|
-
display: inline-block;
|
|
966
|
-
}
|
|
967
|
-
|
|
968
|
-
.react-datepicker__time-container {
|
|
969
|
-
float: right;
|
|
970
|
-
border-left: 1px solid #e7e7e9;
|
|
971
|
-
width: 85px;
|
|
972
|
-
height: 320px;
|
|
973
|
-
}
|
|
974
|
-
.react-datepicker__time-container--with-today-button {
|
|
975
|
-
display: inline;
|
|
976
|
-
border: 1px solid #e7e7e9;
|
|
977
|
-
border-radius: 4px;
|
|
978
|
-
position: absolute;
|
|
979
|
-
right: -87px;
|
|
980
|
-
top: 0;
|
|
981
|
-
}
|
|
982
|
-
.react-datepicker__time-container .react-datepicker__time {
|
|
983
|
-
position: relative;
|
|
984
|
-
border-bottom-right-radius: 4px;
|
|
985
|
-
}
|
|
986
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box {
|
|
987
|
-
width: 85px;
|
|
988
|
-
overflow-x: hidden;
|
|
989
|
-
margin: 0 auto;
|
|
990
|
-
text-align: center;
|
|
991
|
-
border-bottom-right-radius: 4px;
|
|
992
|
-
}
|
|
993
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list {
|
|
994
|
-
list-style: none;
|
|
995
|
-
margin: 0;
|
|
996
|
-
height: calc(195px + (1.7rem / 2));
|
|
997
|
-
overflow-y: scroll;
|
|
998
|
-
padding-right: 0;
|
|
999
|
-
padding-left: 0;
|
|
1000
|
-
width: 100%;
|
|
1001
|
-
height: 100%;
|
|
1002
|
-
box-sizing: content-box;
|
|
1003
|
-
}
|
|
1004
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item {
|
|
1005
|
-
height: 28px;
|
|
1006
|
-
padding: 5px 10px;
|
|
1007
|
-
white-space: nowrap;
|
|
1008
|
-
}
|
|
1009
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover {
|
|
1010
|
-
cursor: pointer;
|
|
1011
|
-
}
|
|
1012
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected {
|
|
1013
|
-
background-color: #5193f6;
|
|
1014
|
-
color: white;
|
|
1015
|
-
font-weight: 500;
|
|
1016
|
-
}
|
|
1017
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover {
|
|
1018
|
-
background-color: #5193f6;
|
|
1019
|
-
}
|
|
1020
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled {
|
|
1021
|
-
color: #ccc;
|
|
1022
|
-
}
|
|
1023
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover {
|
|
1024
|
-
cursor: default;
|
|
1025
|
-
}
|
|
1026
|
-
|
|
1027
|
-
.react-datepicker__week-number {
|
|
1028
|
-
color: #ccc;
|
|
1029
|
-
display: inline-block;
|
|
1030
|
-
width: 1.7rem;
|
|
1031
|
-
line-height: 1.7rem;
|
|
1032
|
-
text-align: center;
|
|
1033
|
-
padding: 2px;
|
|
1034
|
-
margin: 2px;
|
|
1035
|
-
}
|
|
1036
|
-
.react-datepicker__week-number.react-datepicker__week-number--clickable {
|
|
1037
|
-
cursor: pointer;
|
|
1038
|
-
}
|
|
1039
|
-
.react-datepicker__week-number.react-datepicker__week-number--clickable:hover {
|
|
1040
|
-
border-radius: 4px;
|
|
1041
|
-
background-color: #f0f0f0;
|
|
1042
|
-
}
|
|
1043
|
-
|
|
1044
|
-
.react-datepicker__day-names,
|
|
1045
|
-
.react-datepicker__week {
|
|
1046
|
-
white-space: nowrap;
|
|
1047
|
-
}
|
|
1048
|
-
|
|
1049
|
-
.react-datepicker__day-names {
|
|
1050
|
-
margin-bottom: -8px;
|
|
1051
|
-
}
|
|
1052
|
-
|
|
1053
|
-
.react-datepicker__day-name,
|
|
1054
|
-
.react-datepicker__day,
|
|
1055
|
-
.react-datepicker__time-name {
|
|
1056
|
-
color: #000;
|
|
1057
|
-
display: inline-block;
|
|
1058
|
-
width: 1.7rem;
|
|
1059
|
-
line-height: 1.7rem;
|
|
1060
|
-
text-align: center;
|
|
1061
|
-
padding: 2px;
|
|
1062
|
-
margin: 2px;
|
|
1063
|
-
}
|
|
1064
|
-
|
|
1065
|
-
.react-datepicker__month-container{
|
|
1066
|
-
flex-grow: 1;
|
|
1067
|
-
}
|
|
1068
|
-
|
|
1069
|
-
.react-datepicker__day,
|
|
1070
|
-
.react-datepicker__month-text,
|
|
1071
|
-
.react-datepicker__quarter-text,
|
|
1072
|
-
.react-datepicker__year-text {
|
|
1073
|
-
width: 32px;
|
|
1074
|
-
cursor: pointer;
|
|
1075
|
-
}
|
|
1076
|
-
.react-datepicker__day:hover,
|
|
1077
|
-
.react-datepicker__month-text:hover,
|
|
1078
|
-
.react-datepicker__quarter-text:hover,
|
|
1079
|
-
.react-datepicker__year-text:hover {
|
|
1080
|
-
border-radius: 100%;
|
|
1081
|
-
background-color: #f0f0f0;
|
|
1082
|
-
}
|
|
1083
|
-
.react-datepicker__day--today,
|
|
1084
|
-
.react-datepicker__month-text--today,
|
|
1085
|
-
.react-datepicker__quarter-text--today,
|
|
1086
|
-
.react-datepicker__year-text--today {
|
|
1087
|
-
font-weight: 500;
|
|
1088
|
-
}
|
|
1089
|
-
.react-datepicker__day--highlighted,
|
|
1090
|
-
.react-datepicker__month-text--highlighted,
|
|
1091
|
-
.react-datepicker__quarter-text--highlighted,
|
|
1092
|
-
.react-datepicker__year-text--highlighted {
|
|
1093
|
-
border-radius: 100%;
|
|
1094
|
-
background-color: #3dcc4a;
|
|
1095
|
-
color: #fff;
|
|
1096
|
-
}
|
|
1097
|
-
.react-datepicker__day--highlighted:hover,
|
|
1098
|
-
.react-datepicker__month-text--highlighted:hover,
|
|
1099
|
-
.react-datepicker__quarter-text--highlighted:hover,
|
|
1100
|
-
.react-datepicker__year-text--highlighted:hover {
|
|
1101
|
-
background-color: #32be3f;
|
|
1102
|
-
}
|
|
1103
|
-
.react-datepicker__day--highlighted-custom-1,
|
|
1104
|
-
.react-datepicker__month-text--highlighted-custom-1,
|
|
1105
|
-
.react-datepicker__quarter-text--highlighted-custom-1,
|
|
1106
|
-
.react-datepicker__year-text--highlighted-custom-1 {
|
|
1107
|
-
color: magenta;
|
|
1108
|
-
}
|
|
1109
|
-
.react-datepicker__day--highlighted-custom-2,
|
|
1110
|
-
.react-datepicker__month-text--highlighted-custom-2,
|
|
1111
|
-
.react-datepicker__quarter-text--highlighted-custom-2,
|
|
1112
|
-
.react-datepicker__year-text--highlighted-custom-2 {
|
|
1113
|
-
color: green;
|
|
1114
|
-
}
|
|
1115
|
-
.react-datepicker__day--selected, .react-datepicker__day--in-selecting-range, .react-datepicker__day--in-range,
|
|
1116
|
-
.react-datepicker__month-text--selected,
|
|
1117
|
-
.react-datepicker__month-text--in-selecting-range,
|
|
1118
|
-
.react-datepicker__month-text--in-range,
|
|
1119
|
-
.react-datepicker__quarter-text--selected,
|
|
1120
|
-
.react-datepicker__quarter-text--in-selecting-range,
|
|
1121
|
-
.react-datepicker__quarter-text--in-range,
|
|
1122
|
-
.react-datepicker__year-text--selected,
|
|
1123
|
-
.react-datepicker__year-text--in-selecting-range,
|
|
1124
|
-
.react-datepicker__year-text--in-range {
|
|
1125
|
-
border-radius: 100%;
|
|
1126
|
-
background-color: #5193f6;
|
|
1127
|
-
color: #fff;
|
|
1128
|
-
}
|
|
1129
|
-
.react-datepicker__day--selected:hover, .react-datepicker__day--in-selecting-range:hover, .react-datepicker__day--in-range:hover,
|
|
1130
|
-
.react-datepicker__month-text--selected:hover,
|
|
1131
|
-
.react-datepicker__month-text--in-selecting-range:hover,
|
|
1132
|
-
.react-datepicker__month-text--in-range:hover,
|
|
1133
|
-
.react-datepicker__quarter-text--selected:hover,
|
|
1134
|
-
.react-datepicker__quarter-text--in-selecting-range:hover,
|
|
1135
|
-
.react-datepicker__quarter-text--in-range:hover,
|
|
1136
|
-
.react-datepicker__year-text--selected:hover,
|
|
1137
|
-
.react-datepicker__year-text--in-selecting-range:hover,
|
|
1138
|
-
.react-datepicker__year-text--in-range:hover {
|
|
1139
|
-
background-color: #186ef0;
|
|
1140
|
-
}
|
|
1141
|
-
.react-datepicker__day--keyboard-selected,
|
|
1142
|
-
.react-datepicker__month-text--keyboard-selected,
|
|
1143
|
-
.react-datepicker__quarter-text--keyboard-selected,
|
|
1144
|
-
.react-datepicker__year-text--keyboard-selected {
|
|
1145
|
-
border-radius: 100%;
|
|
1146
|
-
background-color: #cee2ff;
|
|
1147
|
-
color: rgb(0, 0, 0);
|
|
1148
|
-
}
|
|
1149
|
-
.react-datepicker__day--keyboard-selected:hover,
|
|
1150
|
-
.react-datepicker__month-text--keyboard-selected:hover,
|
|
1151
|
-
.react-datepicker__quarter-text--keyboard-selected:hover,
|
|
1152
|
-
.react-datepicker__year-text--keyboard-selected:hover {
|
|
1153
|
-
background-color: #186ef0;
|
|
1154
|
-
}
|
|
1155
|
-
.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,
|
|
1156
|
-
.react-datepicker__month-text--in-range,
|
|
1157
|
-
.react-datepicker__quarter-text--in-range,
|
|
1158
|
-
.react-datepicker__year-text--in-range),
|
|
1159
|
-
.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,
|
|
1160
|
-
.react-datepicker__month-text--in-range,
|
|
1161
|
-
.react-datepicker__quarter-text--in-range,
|
|
1162
|
-
.react-datepicker__year-text--in-range),
|
|
1163
|
-
.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,
|
|
1164
|
-
.react-datepicker__month-text--in-range,
|
|
1165
|
-
.react-datepicker__quarter-text--in-range,
|
|
1166
|
-
.react-datepicker__year-text--in-range),
|
|
1167
|
-
.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,
|
|
1168
|
-
.react-datepicker__month-text--in-range,
|
|
1169
|
-
.react-datepicker__quarter-text--in-range,
|
|
1170
|
-
.react-datepicker__year-text--in-range) {
|
|
1171
|
-
background-color: rgba(33, 107, 165, 0.5);
|
|
1172
|
-
}
|
|
1173
|
-
.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,
|
|
1174
|
-
.react-datepicker__month-text--in-selecting-range,
|
|
1175
|
-
.react-datepicker__quarter-text--in-selecting-range,
|
|
1176
|
-
.react-datepicker__year-text--in-selecting-range), .react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,
|
|
1177
|
-
.react-datepicker__month-text--in-selecting-range,
|
|
1178
|
-
.react-datepicker__quarter-text--in-selecting-range,
|
|
1179
|
-
.react-datepicker__year-text--in-selecting-range),
|
|
1180
|
-
.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,
|
|
1181
|
-
.react-datepicker__month-text--in-selecting-range,
|
|
1182
|
-
.react-datepicker__quarter-text--in-selecting-range,
|
|
1183
|
-
.react-datepicker__year-text--in-selecting-range),
|
|
1184
|
-
.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,
|
|
1185
|
-
.react-datepicker__month-text--in-selecting-range,
|
|
1186
|
-
.react-datepicker__quarter-text--in-selecting-range,
|
|
1187
|
-
.react-datepicker__year-text--in-selecting-range),
|
|
1188
|
-
.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,
|
|
1189
|
-
.react-datepicker__month-text--in-selecting-range,
|
|
1190
|
-
.react-datepicker__quarter-text--in-selecting-range,
|
|
1191
|
-
.react-datepicker__year-text--in-selecting-range),
|
|
1192
|
-
.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,
|
|
1193
|
-
.react-datepicker__month-text--in-selecting-range,
|
|
1194
|
-
.react-datepicker__quarter-text--in-selecting-range,
|
|
1195
|
-
.react-datepicker__year-text--in-selecting-range),
|
|
1196
|
-
.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,
|
|
1197
|
-
.react-datepicker__month-text--in-selecting-range,
|
|
1198
|
-
.react-datepicker__quarter-text--in-selecting-range,
|
|
1199
|
-
.react-datepicker__year-text--in-selecting-range),
|
|
1200
|
-
.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,
|
|
1201
|
-
.react-datepicker__month-text--in-selecting-range,
|
|
1202
|
-
.react-datepicker__quarter-text--in-selecting-range,
|
|
1203
|
-
.react-datepicker__year-text--in-selecting-range) {
|
|
1204
|
-
background-color: #f0f0f0;
|
|
1205
|
-
color: #000;
|
|
1206
|
-
}
|
|
1207
|
-
.react-datepicker__day--disabled,
|
|
1208
|
-
.react-datepicker__month-text--disabled,
|
|
1209
|
-
.react-datepicker__quarter-text--disabled,
|
|
1210
|
-
.react-datepicker__year-text--disabled {
|
|
1211
|
-
cursor: default;
|
|
1212
|
-
color: #ccc;
|
|
1213
|
-
}
|
|
1214
|
-
.react-datepicker__day--disabled:hover,
|
|
1215
|
-
.react-datepicker__month-text--disabled:hover,
|
|
1216
|
-
.react-datepicker__quarter-text--disabled:hover,
|
|
1217
|
-
.react-datepicker__year-text--disabled:hover {
|
|
1218
|
-
background-color: transparent;
|
|
1219
|
-
}
|
|
1220
|
-
|
|
1221
|
-
.react-datepicker__input-container {
|
|
1222
|
-
position: relative;
|
|
1223
|
-
display: inline-block;
|
|
1224
|
-
width: 100%;
|
|
1225
|
-
height: 100%;
|
|
1226
|
-
}
|
|
1227
|
-
.react-datepicker__input-container .react-datepicker__calendar-icon {
|
|
1228
|
-
position: absolute;
|
|
1229
|
-
padding: 0.5rem;
|
|
1230
|
-
}
|
|
1231
|
-
|
|
1232
|
-
.react-datepicker__view-calendar-icon input {
|
|
1233
|
-
padding: 6px 10px 5px 25px;
|
|
1234
|
-
}
|
|
1235
|
-
|
|
1236
|
-
.react-datepicker__year-read-view,
|
|
1237
|
-
.react-datepicker__month-read-view,
|
|
1238
|
-
.react-datepicker__month-year-read-view {
|
|
1239
|
-
border: 1px solid transparent;
|
|
1240
|
-
border-radius: 4px;
|
|
1241
|
-
position: relative;
|
|
1242
|
-
}
|
|
1243
|
-
.react-datepicker__year-read-view:hover,
|
|
1244
|
-
.react-datepicker__month-read-view:hover,
|
|
1245
|
-
.react-datepicker__month-year-read-view:hover {
|
|
1246
|
-
cursor: pointer;
|
|
1247
|
-
}
|
|
1248
|
-
.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,
|
|
1249
|
-
.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,
|
|
1250
|
-
.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,
|
|
1251
|
-
.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,
|
|
1252
|
-
.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,
|
|
1253
|
-
.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow {
|
|
1254
|
-
border-top-color: #e7e7e9;
|
|
1255
|
-
}
|
|
1256
|
-
.react-datepicker__year-read-view--down-arrow,
|
|
1257
|
-
.react-datepicker__month-read-view--down-arrow,
|
|
1258
|
-
.react-datepicker__month-year-read-view--down-arrow {
|
|
1259
|
-
transform: rotate(135deg);
|
|
1260
|
-
right: -16px;
|
|
1261
|
-
top: 0;
|
|
1262
|
-
}
|
|
1263
|
-
|
|
1264
|
-
.react-datepicker__year-dropdown,
|
|
1265
|
-
.react-datepicker__month-dropdown,
|
|
1266
|
-
.react-datepicker__month-year-dropdown {
|
|
1267
|
-
background-color: #f0f0f0;
|
|
1268
|
-
position: absolute;
|
|
1269
|
-
width: 50%;
|
|
1270
|
-
left: 25%;
|
|
1271
|
-
top: 30px;
|
|
1272
|
-
z-index: 1;
|
|
1273
|
-
text-align: center;
|
|
1274
|
-
border-radius: 4px;
|
|
1275
|
-
border: 1px solid #e7e7e9;
|
|
1276
|
-
}
|
|
1277
|
-
.react-datepicker__year-dropdown:hover,
|
|
1278
|
-
.react-datepicker__month-dropdown:hover,
|
|
1279
|
-
.react-datepicker__month-year-dropdown:hover {
|
|
1280
|
-
cursor: pointer;
|
|
1281
|
-
}
|
|
1282
|
-
.react-datepicker__year-dropdown--scrollable,
|
|
1283
|
-
.react-datepicker__month-dropdown--scrollable,
|
|
1284
|
-
.react-datepicker__month-year-dropdown--scrollable {
|
|
1285
|
-
height: 150px;
|
|
1286
|
-
overflow-y: scroll;
|
|
1287
|
-
}
|
|
1288
|
-
|
|
1289
|
-
.react-datepicker__year-option,
|
|
1290
|
-
.react-datepicker__month-option,
|
|
1291
|
-
.react-datepicker__month-year-option {
|
|
1292
|
-
line-height: 20px;
|
|
1293
|
-
width: 100%;
|
|
1294
|
-
display: block;
|
|
1295
|
-
margin-left: auto;
|
|
1296
|
-
margin-right: auto;
|
|
1297
|
-
}
|
|
1298
|
-
.react-datepicker__year-option:first-of-type,
|
|
1299
|
-
.react-datepicker__month-option:first-of-type,
|
|
1300
|
-
.react-datepicker__month-year-option:first-of-type {
|
|
1301
|
-
border-top-left-radius: 4px;
|
|
1302
|
-
border-top-right-radius: 4px;
|
|
1303
|
-
}
|
|
1304
|
-
.react-datepicker__year-option:last-of-type,
|
|
1305
|
-
.react-datepicker__month-option:last-of-type,
|
|
1306
|
-
.react-datepicker__month-year-option:last-of-type {
|
|
1307
|
-
-webkit-user-select: none;
|
|
1308
|
-
-moz-user-select: none;
|
|
1309
|
-
-ms-user-select: none;
|
|
1310
|
-
user-select: none;
|
|
1311
|
-
border-bottom-left-radius: 4px;
|
|
1312
|
-
border-bottom-right-radius: 4px;
|
|
1313
|
-
}
|
|
1314
|
-
.react-datepicker__year-option:hover,
|
|
1315
|
-
.react-datepicker__month-option:hover,
|
|
1316
|
-
.react-datepicker__month-year-option:hover {
|
|
1317
|
-
background-color: #ccc;
|
|
1318
|
-
}
|
|
1319
|
-
.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,
|
|
1320
|
-
.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,
|
|
1321
|
-
.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming {
|
|
1322
|
-
border-bottom-color: #e7e7e9;
|
|
1323
|
-
}
|
|
1324
|
-
.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,
|
|
1325
|
-
.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,
|
|
1326
|
-
.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous {
|
|
1327
|
-
border-top-color: #e7e7e9;
|
|
1328
|
-
}
|
|
1329
|
-
.react-datepicker__year-option--selected,
|
|
1330
|
-
.react-datepicker__month-option--selected,
|
|
1331
|
-
.react-datepicker__month-year-option--selected {
|
|
1332
|
-
position: absolute;
|
|
1333
|
-
left: 15px;
|
|
1334
|
-
}
|
|
1335
|
-
|
|
1336
|
-
.react-datepicker__close-icon {
|
|
1337
|
-
cursor: pointer;
|
|
1338
|
-
background-color: transparent;
|
|
1339
|
-
border: 0;
|
|
1340
|
-
outline: 0;
|
|
1341
|
-
padding: 0 6px 0 0;
|
|
1342
|
-
position: absolute;
|
|
1343
|
-
top: 0;
|
|
1344
|
-
right: 0;
|
|
1345
|
-
height: 100%;
|
|
1346
|
-
display: table-cell;
|
|
1347
|
-
vertical-align: middle;
|
|
1348
|
-
}
|
|
1349
|
-
.react-datepicker__close-icon::after {
|
|
1350
|
-
cursor: pointer;
|
|
1351
|
-
background-color: #5193f6;
|
|
1352
|
-
color: #fff;
|
|
1353
|
-
border-radius: 50%;
|
|
1354
|
-
height: 16px;
|
|
1355
|
-
width: 16px;
|
|
1356
|
-
padding: 2px;
|
|
1357
|
-
font-size: 12px;
|
|
1358
|
-
line-height: 1;
|
|
1359
|
-
text-align: center;
|
|
1360
|
-
display: table-cell;
|
|
1361
|
-
vertical-align: middle;
|
|
1362
|
-
content: "×";
|
|
1363
|
-
}
|
|
1364
|
-
|
|
1365
|
-
.react-datepicker__today-button {
|
|
1366
|
-
background: #f0f0f0;
|
|
1367
|
-
border-top: 1px solid #e7e7e9;
|
|
1368
|
-
cursor: pointer;
|
|
1369
|
-
text-align: center;
|
|
1370
|
-
font-weight: 500;
|
|
1371
|
-
padding: 5px 0;
|
|
1372
|
-
clear: left;
|
|
1373
|
-
}
|
|
1374
|
-
|
|
1375
|
-
.react-datepicker__portal {
|
|
1376
|
-
position: fixed;
|
|
1377
|
-
width: 100vw;
|
|
1378
|
-
height: 100vh;
|
|
1379
|
-
background-color: rgba(0, 0, 0, 0.8);
|
|
1380
|
-
left: 0;
|
|
1381
|
-
top: 0;
|
|
1382
|
-
justify-content: center;
|
|
1383
|
-
align-items: center;
|
|
1384
|
-
display: flex;
|
|
1385
|
-
z-index: 2147483647;
|
|
1386
|
-
}
|
|
1387
|
-
.react-datepicker__portal .react-datepicker__day-name,
|
|
1388
|
-
.react-datepicker__portal .react-datepicker__day,
|
|
1389
|
-
.react-datepicker__portal .react-datepicker__time-name {
|
|
1390
|
-
width: 3rem;
|
|
1391
|
-
line-height: 3rem;
|
|
1392
|
-
}
|
|
1393
|
-
@media (max-width: 400px), (max-height: 550px) {
|
|
1394
|
-
.react-datepicker__portal .react-datepicker__day-name,
|
|
1395
|
-
.react-datepicker__portal .react-datepicker__day,
|
|
1396
|
-
.react-datepicker__portal .react-datepicker__time-name {
|
|
1397
|
-
width: 2rem;
|
|
1398
|
-
line-height: 2rem;
|
|
1399
|
-
}
|
|
1400
|
-
}
|
|
1401
|
-
.react-datepicker__portal .react-datepicker__current-month,
|
|
1402
|
-
.react-datepicker__portal .react-datepicker-time__header {
|
|
1403
|
-
font-size: 0.875rem;
|
|
1404
|
-
}
|
|
1405
|
-
|
|
1406
|
-
.react-datepicker__children-container {
|
|
1407
|
-
width: 13.8rem;
|
|
1408
|
-
margin: 0.4rem;
|
|
1409
|
-
padding-right: 0.2rem;
|
|
1410
|
-
padding-left: 0.2rem;
|
|
1411
|
-
height: auto;
|
|
1412
|
-
}
|
|
1413
|
-
|
|
1414
|
-
.react-datepicker__aria-live {
|
|
1415
|
-
position: absolute;
|
|
1416
|
-
clip-path: circle(0);
|
|
1417
|
-
border: 0;
|
|
1418
|
-
height: 1px;
|
|
1419
|
-
margin: -1px;
|
|
1420
|
-
overflow: hidden;
|
|
1421
|
-
padding: 0;
|
|
1422
|
-
width: 1px;
|
|
1423
|
-
white-space: nowrap;
|
|
1424
|
-
}
|
|
1425
|
-
|
|
1426
|
-
.react-datepicker__calendar-icon {
|
|
1427
|
-
width: 1em;
|
|
1428
|
-
height: 1em;
|
|
1429
|
-
vertical-align: -0.125em;
|
|
1430
|
-
}
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
:is([data-theme="dark"]) .react-datepicker__year-read-view--down-arrow,
|
|
1434
|
-
:is([data-theme="dark"]) .react-datepicker__month-read-view--down-arrow,
|
|
1435
|
-
:is([data-theme="dark"]) .react-datepicker__month-year-read-view--down-arrow,
|
|
1436
|
-
:is([data-theme="dark"]) .react-datepicker__navigation-icon::before {
|
|
1437
|
-
border-color: #333;
|
|
1438
|
-
}
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
:is([data-theme="dark"]) .react-datepicker-wrapper,
|
|
1442
|
-
:is([data-theme="dark"]) .react-datepicker {
|
|
1443
|
-
color: #ccc;
|
|
1444
|
-
}
|
|
1445
|
-
|
|
1446
|
-
:is([data-theme="dark"]) .react-datepicker__navigation:hover *::before {
|
|
1447
|
-
border-color: #e7e7e9;
|
|
1448
|
-
}
|
|
1449
|
-
|
|
1450
|
-
:is([data-theme="dark"]) .react-datepicker__day-names,
|
|
1451
|
-
:is([data-theme="dark"]) .react-datepicker__week {
|
|
1452
|
-
color: #ccc;
|
|
1453
|
-
}
|
|
1454
|
-
|
|
1455
|
-
:is([data-theme="dark"]) .react-datepicker__day,
|
|
1456
|
-
:is([data-theme="dark"]) .react-datepicker__month-text,
|
|
1457
|
-
:is([data-theme="dark"]) .react-datepicker__quarter-text,
|
|
1458
|
-
:is([data-theme="dark"]) .react-datepicker__year-text {
|
|
1459
|
-
color: #ccc;
|
|
1460
|
-
}
|
|
1461
|
-
|
|
1462
|
-
:is([data-theme="dark"]) .react-datepicker__current-month,
|
|
1463
|
-
:is([data-theme="dark"]) .react-datepicker-time__header,
|
|
1464
|
-
:is([data-theme="dark"]) .react-datepicker-year-header,
|
|
1465
|
-
:is([data-theme="dark"]) .react-datepicker__day-name,
|
|
1466
|
-
:is([data-theme="dark"]) .react-datepicker__year-dropdown-container--select,
|
|
1467
|
-
:is([data-theme="dark"]) .react-datepicker__month-dropdown-container--select,
|
|
1468
|
-
:is([data-theme="dark"]) .react-datepicker__month-year-dropdown-container--select,
|
|
1469
|
-
:is([data-theme="dark"]) .react-datepicker__year-dropdown-container--scroll,
|
|
1470
|
-
:is([data-theme="dark"]) .react-datepicker__month-dropdown-container--scroll,
|
|
1471
|
-
:is([data-theme="dark"]) .react-datepicker__month-year-dropdown-container--scroll {
|
|
1472
|
-
color: #ccc;
|
|
1473
|
-
}
|
|
1474
|
-
|
|
1475
|
-
:is([data-theme="dark"]) .react-datepicker__header {
|
|
1476
|
-
color: #fff;
|
|
1477
|
-
}
|
|
1478
|
-
|
|
1479
|
-
:is([data-theme="dark"]) .react-datepicker__day--disabled,
|
|
1480
|
-
:is([data-theme="dark"]) .react-datepicker__month-text--disabled,
|
|
1481
|
-
:is([data-theme="dark"]) .react-datepicker__quarter-text--disabled,
|
|
1482
|
-
:is([data-theme="dark"]) .react-datepicker__year-text--disabled {
|
|
1483
|
-
color: #666;
|
|
1484
|
-
}
|
|
1485
|
-
|
|
1486
|
-
:is([data-theme="dark"]) .react-datepicker__day--highlighted,
|
|
1487
|
-
:is([data-theme="dark"]) .react-datepicker__month-text--highlighted,
|
|
1488
|
-
:is([data-theme="dark"]) .react-datepicker__quarter-text--highlighted,
|
|
1489
|
-
:is([data-theme="dark"]) .react-datepicker__year-text--highlighted {
|
|
1490
|
-
background-color: #1a1a1a;
|
|
1491
|
-
color: #fff;
|
|
1492
|
-
}
|
|
1493
|
-
|
|
1494
|
-
:is([data-theme="dark"]) .react-datepicker__day:hover,
|
|
1495
|
-
:is([data-theme="dark"]) .react-datepicker__day--in-range:hover,
|
|
1496
|
-
:is([data-theme="dark"]) .react-datepicker__day--selected:hover,
|
|
1497
|
-
:is([data-theme="dark"]) .react-datepicker__month-text:hover,
|
|
1498
|
-
:is([data-theme="dark"]) .react-datepicker__day:hover,
|
|
1499
|
-
:is([data-theme="dark"]) .react-datepicker__month-text--in-range:hover,
|
|
1500
|
-
:is([data-theme="dark"]) .react-datepicker__month-text--selected:hover,
|
|
1501
|
-
:is([data-theme="dark"]) .react-datepicker__quarter-text:hover,
|
|
1502
|
-
:is([data-theme="dark"]) .react-datepicker__day:hover,
|
|
1503
|
-
:is([data-theme="dark"]) .react-datepicker__quarter-text--in-range:hover,
|
|
1504
|
-
:is([data-theme="dark"]) .react-datepicker__quarter-text--selected:hover,
|
|
1505
|
-
:is([data-theme="dark"]) .react-datepicker__year-text:hover,
|
|
1506
|
-
:is([data-theme="dark"]) .react-datepicker__day:hover,
|
|
1507
|
-
:is([data-theme="dark"]) .react-datepicker__year-text--in-range:hover,
|
|
1508
|
-
:is([data-theme="dark"]) .react-datepicker__year-text--selected:hover,
|
|
1509
|
-
:is([data-theme="dark"]) .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover
|
|
1510
|
-
{
|
|
1511
|
-
background-color: #1a1a1a;
|
|
1512
|
-
}
|
|
1513
|
-
|
|
1514
|
-
:is([data-theme="dark"]) .react-datepicker__day--selected,
|
|
1515
|
-
:is([data-theme="dark"]) .react-datepicker__day--in-range,
|
|
1516
|
-
:is([data-theme="dark"]) .react-datepicker__day--in-selecting-range,
|
|
1517
|
-
:is([data-theme="dark"]) .react-datepicker__month-text--selected,
|
|
1518
|
-
:is([data-theme="dark"]) .react-datepicker__month-text--in-range,
|
|
1519
|
-
:is([data-theme="dark"]) .react-datepicker__month-text--in-selecting-range,
|
|
1520
|
-
:is([data-theme="dark"]) .react-datepicker__quarter-text--selected,
|
|
1521
|
-
:is([data-theme="dark"]) .react-datepicker__quarter-text--in-range,
|
|
1522
|
-
:is([data-theme="dark"]) .react-datepicker__quarter-text--in-selecting-range,
|
|
1523
|
-
:is([data-theme="dark"]) .react-datepicker__year-text--selected,
|
|
1524
|
-
:is([data-theme="dark"]) .react-datepicker__year-text--in-range,
|
|
1525
|
-
:is([data-theme="dark"]) .react-datepicker__year-text--in-selecting-range {
|
|
1526
|
-
background-color: #0e528f;
|
|
1527
|
-
}
|
|
1528
|
-
|
|
1529
|
-
:is([data-theme="dark"]) .react-datepicker__day--keyboard-selected,
|
|
1530
|
-
:is([data-theme="dark"]) .react-datepicker__month-text--keyboard-selected,
|
|
1531
|
-
:is([data-theme="dark"]) .react-datepicker__quarter-text--keyboard-selected,
|
|
1532
|
-
:is([data-theme="dark"]) .react-datepicker__year-text--keyboard-selected {
|
|
1533
|
-
background-color: #0e529f;
|
|
1534
|
-
}
|
|
1535
|
-
|
|
1536
|
-
:is([data-theme="dark"]) .react-datepicker__today-button {
|
|
1537
|
-
background-color: #262626;
|
|
1538
|
-
color: #ccc;
|
|
1539
|
-
}
|
|
1540
|
-
|
|
1541
|
-
:is([data-theme="dark"]) .react-datepicker__portal {
|
|
1542
|
-
background-color: #191919;
|
|
1543
|
-
}
|
|
1544
|
-
|
|
1545
|
-
:is([data-theme="dark"]) .react-datepicker{
|
|
1546
|
-
color: #fff;
|
|
1547
|
-
}
|
|
1548
|
-
|
|
1549
|
-
:is([data-theme="dark"]) .react-datepicker__time-list{
|
|
1550
|
-
background-color: rgba(0, 0, 0, 0.0);
|
|
1551
|
-
}
|
|
1552
|
-
|
|
1553
|
-
:is([data-theme="dark"]) .react-datepicker__time-container--with-today-button {
|
|
1554
|
-
border: 1px solid transparent;
|
|
1555
|
-
}
|
|
1556
|
-
:is([data-theme="dark"]) .react-datepicker__year-dropdown,
|
|
1557
|
-
:is([data-theme="dark"]) .react-datepicker__month-dropdown,
|
|
1558
|
-
:is([data-theme="dark"]) .react-datepicker__month-year-dropdown {
|
|
1559
|
-
background-color: rgba(0, 0, 0, 0.9);
|
|
1560
|
-
border: 1px solid transparent;
|
|
1561
|
-
}
|
|
1562
|
-
|
|
1563
|
-
:is([data-theme="dark"]) .react-datepicker__header {
|
|
1564
|
-
background-color: #191919;
|
|
1565
|
-
border-bottom: 1px solid transparent;
|
|
1566
|
-
}
|
|
1567
|
-
|
|
1568
|
-
:is([data-theme="dark"]) .react-datepicker__time-container {
|
|
1569
|
-
border-left: 1px solid transparent;
|
|
1570
|
-
}
|
|
1571
|
-
:is([data-theme="dark"]) .react-datepicker__time-container .react-datepicker__time {
|
|
1572
|
-
background-color: rgba(0, 0, 0, 0.9);
|
|
1573
|
-
}
|
|
1574
|
-
|
|
1575
|
-
:is([data-theme="dark"]) .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected,
|
|
1576
|
-
:is([data-theme="dark"]) .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected {
|
|
1577
|
-
background-color: #0e528f;
|
|
1578
|
-
}
|
|
1579
|
-
|
|
1580
|
-
.react-datepicker__day--outside-month{
|
|
1581
|
-
color: #666 !important;
|
|
1582
|
-
}
|
|
1583
|
-
`,qi={"==":"==","!=":"!=",">":">","<":"<",">=":">=","<=":"<=","not-in":"not in",in:"in","array-contains":"Contains","array-contains-any":"Any"},Ji=["array-contains-any","in"];function C3({name:e,isArray:t,mode:c,value:i,setValue:l,title:a}){const s=t?["array-contains"]:["==","!=",">","<",">=","<="],[d,u]=i||[s[0],void 0],[A,_]=f.useState(d),[g,y]=f.useState(u);function h(I,b){let p=b;const w=Ji.includes(A),k=Ji.includes(I);w!==k&&(p=k?b?[b]:[]:""),_(I),y(p===null?void 0:p);const K=p!==null&&Array.isArray(p)?p.length>0:p!==void 0;l(I&&K?[I,p]:void 0)}return n.jsxs("div",{className:"flex w-[440px] items-center",children:[n.jsx("div",{className:"w-[80px]",children:n.jsx(xe,{value:A,onValueChange:I=>{h(I,g)},renderValue:I=>qi[I],children:s.map(I=>n.jsx(Re,{value:I,children:qi[I]},I))})}),n.jsx("div",{className:"flex-grow ml-2",children:n.jsx(Vn,{mode:c,size:"medium",value:g,onChange:I=>{h(A,I===null?void 0:I)},clearable:!0})})]})}const Zi="collectionGroupParent";function Xi(e,t){return f.useMemo(()=>e.propertiesOrder?xi(e,e.propertiesOrder,!1):S3(e,t),[e,t])}function xi(e,t,c){return t.flatMap(i=>{const l=e.properties[i];return l?c&&l.hideFromCollection?[null]:c&&l.disabled&&typeof l.disabled=="object"&&l.disabled.hidden?[null]:l.dataType==="map"&&l.spreadChildren&&l.properties?vt(l,i):[{key:i,disabled:!!l.disabled||!!l.readOnly}]:e.additionalFields?.find(s=>s.id===i)?[{key:i,disabled:!0}]:e.subcollections&&e.subcollections.find(d=>ht(d)===i)?[{key:i,disabled:!0}]:e.collectionGroup&&i===Zi?[{key:i,disabled:!0}]:[null]}).filter(Boolean)}function S3(e,t){const c=Object.keys(e.properties);e.additionalColumns&&console.warn("`additionalColumns` is deprecated and will be removed in previous versions. Use `additionalFields` instead, with the same structure.");const i=e.additionalFields??e.additionalColumns??[],l=e.subcollections??[],a=[...c,...i.map(s=>s.id)];if(t){const s=l.map(d=>ht(d));a.push(...s.filter(d=>!a.includes(d)))}return e.collectionGroup&&a.push(Zi),xi(e,a,!0)}function vt(e,t,c){return e.dataType==="map"&&e.spreadChildren&&e.properties?Object.entries(e.properties).flatMap(([i,l])=>vt(l,`${t}.${i}`,c||!!e.disabled||!!e.readOnly)):[{key:t,disabled:c||!!e.disabled||!!e.readOnly}]}const B3={},Ri=f.createContext(B3),E3=()=>f.useContext(Ri),Kt=f.memo(function({forceFilter:t,actionsStart:c,actions:i,title:l,tableRowActionsBuilder:a,uniqueFieldValidator:s,getPropertyFor:d,onValueChange:u,selectionController:A,highlightedEntities:_,onEntityClick:g,onColumnResize:y,onSizeChanged:h,textSearchEnabled:I=!1,hoverRow:b=!0,inlineEditing:p=!1,additionalFields:w,displayedColumnIds:k,defaultSize:K,properties:m,tableController:{data:v,dataLoading:S,noMoreToLoad:B,dataLoadingError:P,filterValues:F,setFilterValues:D,sortBy:C,setSortBy:N,searchString:M,setSearchString:H,clearFilter:Z,itemCount:O,setItemCount:oe,pageSize:U=50,paginationEnabled:L,checkFilterCombination:X,setPopupCell:W},filterable:V=!0,sortable:Q=!0,endAdornment:q}){const R=Ge(),$=!!t,ne=A?.selectedEntities?.length>0?A?.selectedEntities:_,J=re(),[x,ie]=f.useState(K??"m"),[Y,Be]=f.useState(void 0),Oe=ne?.map(z=>z.id),Ue=!!F&&Object.keys(F).length>0,zn=()=>{!L||S||B||O!==void 0&&oe?.(O+U)},Ao=f.useCallback(()=>{oe?.(U)},[U]),kn=f.useCallback(({rowData:z})=>{if(!p)return g&&g(z)},[g,p]),Hn=f.useCallback(z=>{h&&h(z),ie(z)},[]),_o=f.useCallback(z=>H?.(z),[]),rn=f.useMemo(()=>w?w.map(z=>({[z.id]:z})).reduce((z,me)=>({...z,...me}),{}):{},[w]);f.useEffect(()=>{const z=me=>{me.keyCode===27&&G()};return document.addEventListener("keydown",z,!1),()=>{document.removeEventListener("keydown",z,!1)}});const yo=f.useCallback(z=>{Be(z)},[]),G=f.useCallback(()=>{Be(void 0)},[]),_e=s,ae=f.useCallback(({column:z,columnIndex:me,rowData:ve,rowIndex:Ye})=>{const fe=ve,tn=z.key;let Un=z.custom.disabled;const ho=fe.values?dn(fe.values,tn):void 0,Yn=d?.({propertyKey:tn,propertyValue:ho,entity:fe})??z.custom.resolvedProperty;return Yn?.disabled||(Un=!1),Yn?n.jsx(se,{children:fe?n.jsx(t3,{readonly:!p,align:z.align??"left",propertyKey:tn,property:Yn,value:fe?.values?dn(fe.values,tn):void 0,customFieldValidator:_e,columnIndex:me,width:z.width,height:Ln(x),entity:fe,disabled:Un,path:fe.path},`property_table_cell_${fe.id}_${tn}`):nn()}):null},[_e,p,x,Oe]),T=f.useCallback(({column:z,rowData:me,width:ve})=>{const Ye=me,fe=rn[z.key],tn=fe.dependencies?Object.entries(Ye.values).filter(([ho,Yn])=>fe.dependencies.includes(ho)).reduce((ho,Yn)=>({...ho,...Yn}),{}):Ye;fe.builder&&console.warn("`additionalField.builder` is deprecated. Use `additionalField.Builder` instead.");const Un=fe.builder??fe.Builder;if(!Un)throw new Error("No builder provided for additional field");return n.jsx(bt,{width:ve,size:x,value:tn,selected:!1,disabled:!0,align:"left",allowScroll:!1,showExpandIcon:!1,disabledTooltip:"This column can't be edited directly",children:n.jsx(se,{children:n.jsx(Un,{entity:Ye,context:J})})},`additional_table_cell_${Ye.id}_${z.key}`)},[rn,x,Oe]),le=f.useMemo(()=>{const z=Object.entries(m).flatMap(([ve,Ye])=>vt(Ye,ve)).map(({key:ve,disabled:Ye})=>{const fe=ut(m,ve);if(!fe)throw Error("Internal error: no property found in path "+ve);const tn=ea(fe);return{key:ve,align:Gz(fe),icon:Un=>we(fe,"small"),title:fe.name??ve,sortable:Q&&(t?Object.keys(t).includes(ve):!0),filter:!$&&tn,width:Vi(fe),resizable:!0,custom:{resolvedProperty:fe,disabled:Ye}}}),me=w?w.map(ve=>({key:ve.id,align:"left",sortable:!1,title:ve.name,width:ve.width??200})):[];return[...z,...me]},[w,$,t,m,Q]),he=f.useMemo(()=>({key:"id_ewcfedcswdf3",width:R?160:130,title:"ID",resizable:!1,frozen:R,headerAlign:"center"}),[R]),Le=f.useMemo(()=>[he,...k.map(z=>le.find(me=>me.key===z.key)).filter(Boolean)],[le,k,he]),mn=f.useCallback(z=>{const me=z.column,ve=z.columns,Ye=me.key;if(z.columnIndex===0)return a?a({entity:z.rowData,size:x,width:me.width,frozen:me.frozen}):n.jsx(pt,{entity:z.rowData,width:me.width,frozen:me.frozen,isSelected:!1,size:x});if(rn[Ye])return T(z);if(z.columnIndex<ve.length+1)return ae(z);throw Error("Internal: columns not mapped properly")},[rn,a,x,T,ae]),vn=f.useCallback(z=>{D?.({...z,...t})},[t]);return n.jsx(Ri.Provider,{value:{setPopupCell:W,select:yo,onValueChange:u,size:x,selectedCell:Y,selectedEntityIds:Oe},children:n.jsxs("div",{className:"h-full w-full flex flex-col bg-white dark:bg-gray-950",children:[n.jsx(y3,{forceFilter:$,filterIsSet:Ue,onTextSearch:I?_o:void 0,clearFilter:Z,size:x,onSizeChanged:Hn,title:l,actionsStart:c,actions:i,loading:S}),n.jsx(Yi,{data:v,columns:Le,cellRenderer:mn,onRowClick:p?void 0:g?kn:void 0,onEndReached:zn,onResetPagination:Ao,error:P,paginationEnabled:L,onColumnResize:y,size:x,loading:S,filter:F,onFilterUpdate:D?vn:void 0,sortBy:C,onSortByUpdate:N,hoverRow:b,checkFilterCombination:X,createFilterField:V?F3:void 0,rowClassName:f.useCallback(z=>Oe?.includes(z.id)?"bg-gray-100 bg-opacity-75 dark:bg-gray-800 dark:bg-opacity-75":"",[Oe]),className:"flex-grow",endAdornment:q})]})})},de);function F3({id:e,filterValue:t,setFilterValue:c,column:i,popupOpen:l,setPopupOpen:a}){if(!i.custom)return null;const{resolvedProperty:s}=i.custom,d=s?.dataType==="array",u=d?s.of:s;if(!u)return null;if(u.dataType==="reference")return n.jsx(h3,{value:t,setValue:c,name:e,isArray:d,path:u.path,title:s?.name,previewProperties:u?.previewProperties,popupOpen:l,setPopupOpen:a});if(u.dataType==="number"||u.dataType==="string"){const A=u.name,_=u.enumValues?sn(u.enumValues):void 0;return n.jsx(g3,{value:t,setValue:c,name:e,dataType:u.dataType,isArray:d,enumValues:_,title:A})}else if(u.dataType==="boolean"){const A=u.name;return n.jsx(I3,{value:t,setValue:c,name:e,title:A})}else if(u.dataType==="date"){const A=u.name;return n.jsx(C3,{value:t,setValue:c,name:e,mode:u.mode,isArray:d,title:A})}return n.jsx("div",{children:`Currently the filter field ${s.dataType} is not supported`})}function ea(e,t=!1){return t?["string","number","date","reference"].includes(e.dataType):e.dataType==="array"?e.of?ea(e.of,!0):!1:["string","number","boolean","date","reference","array"].includes(e.dataType)}function P3({data:e,entitiesDisplayedFirst:t}){if(!t)return e;const c=new Set(t.map(i=>i.id));return[...t,...e.filter(i=>!c.has(i.id))]}function D3(e,t,c=5e3){const[i,l]=f.useState(e),a=f.useRef(i.length??0),s=f.useRef(!1),d=f.useRef(t),u=!de(d.current,t),A=e.length>=a.current||u;return f.useEffect(()=>{const _=()=>{de(i,e)||(d.current=t,a.current=e.length,l(e)),s.current=!1};s.current=!0;let g;return A?_():g=setTimeout(_,c),()=>{clearTimeout(g),s.current&&A&&_()}},[e,c,t,A]),A?e:i}const N3=50;function Ct({fullPath:e,collection:t,entitiesDisplayedFirst:c,lastDeleteTimestamp:i,forceFilter:l}){const{initialFilter:a,initialSort:s,forceFilter:d}=t,[u,A]=f.useState(void 0),_=Ae(),g=Qe(),y=f.useMemo(()=>_.resolveAliasesFrom(e),[e,_.resolveAliasesFrom]),h=l??d,I=t.pagination===void 0||!!t.pagination,b=typeof t.pagination=="number"?t.pagination:N3,[p,w]=f.useState(),[k,K]=f.useState(I?b:void 0),m=f.useCallback((U,L)=>g.isFilterCombinationValid?g.isFilterCombinationValid({path:y,collection:t,filterValues:U,sortBy:L}):!0,[]),v=f.useMemo(()=>{if(s&&h&&!m(h,s)){console.warn("Initial sort is not compatible with the force filter. Ignoring initial sort");return}return s},[s,h]),[S,B]=f.useState(h??a??void 0),[P,F]=f.useState(v),D=f.useCallback(()=>B(h??void 0),[h]),C=f.useCallback(U=>{if(h){console.warn("Filter is not compatible with the force filter. Ignoring filter");return}U&&Object.keys(U).length===0?B(void 0):B(U)},[h]),{data:N,dataLoading:M,noMoreToLoad:H,dataLoadingError:Z}=ec({path:e,collection:t,filterValues:S,sortBy:P,searchString:p,itemCount:k}),O=P3({data:N,entitiesDisplayedFirst:c});return{data:D3(O,{filterValues:S,sortBy:P,searchString:p,lastDeleteTimestamp:i}),dataLoading:M,noMoreToLoad:H,dataLoadingError:Z,filterValues:S,setFilterValues:C,sortBy:P,setSortBy:F,searchString:p,setSearchString:w,clearFilter:D,itemCount:k,setItemCount:K,paginationEnabled:I,pageSize:b,checkFilterCombination:m,popupCell:u,setPopupCell:A}}function M3(e,t){const[c,i]=f.useState(),{navigator:l}=f.useContext(Ie.UNSAFE_NavigationContext),a=Ie.useNavigate(),s=()=>{i(void 0)},d=()=>{t(),i(void 0),a(-1)},u=f.useCallback(({action:A,location:_,retry:g})=>{switch(A){case"REPLACE":{g();return}case"POP":i(_)}},[]);return f.useEffect(()=>{if(!e||c||!("block"in l))return;const A=l.block(_=>{const g={..._,retry(){A(),_.retry()}};u(g)});return A},[l,u,e,c]),{navigationWasBlocked:!!c,handleCancel:s,handleOk:d}}function T3({open:e,handleOk:t,handleCancel:c,body:i,title:l}){return n.jsxs(Zo,{open:e,onOpenChange:a=>a?c():t(),children:[n.jsxs(Xo,{children:[n.jsx(j,{variant:"h6",children:l}),i,n.jsx(j,{children:"Are you sure you want to leave this page?"})]}),n.jsxs(wn,{children:[n.jsx(te,{variant:"text",onClick:c,autoFocus:!0,children:" Cancel "}),n.jsx(te,{onClick:t,children:" Ok "})]})]})}const na=f.createContext({width:"",blocked:!1,setBlocked:e=>{},setBlockedNavigationMessage:e=>{},close:()=>{}}),Uo=()=>f.useContext(na);function O3(){const t=Xn().sidePanels,c=[...t];return c.push(void 0),n.jsx(n.Fragment,{children:c.map((i,l)=>n.jsx(L3,{panel:i,offsetPosition:t.length-l-1},`side_dialog_${l}`))})}function L3({offsetPosition:e,panel:t}){const[c,i]=f.useState(!1),[l,a]=f.useState(!1),[s,d]=f.useState(),u=f.useRef(t?.width),A=u.current,_=Xn(),{navigationWasBlocked:g,handleOk:y,handleCancel:h}=M3(l&&!c,()=>a(!1));f.useEffect(()=>{t&&(u.current=t.width)},[t]);const I=()=>{a(!1),i(!1),_.close(),t?.onClose?.()},b=()=>{i(!1)},p=w=>{l&&!w?i(!0):(_.close(),t?.onClose?.())};return n.jsxs(na.Provider,{value:{blocked:l,setBlocked:a,setBlockedNavigationMessage:d,width:A,close:p},children:[n.jsxs(Vt,{open:!!t,onOpenChange:w=>!w&&p(),children:[t&&n.jsx("div",{className:"transform max-w-[100vw] lg:max-w-[95vw] flex flex-col h-full transition-all duration-250 ease-in-out bg-white dark:bg-gray-900 ",style:{width:t.width,transform:`translateX(-${e*200}px)`},children:n.jsx(se,{children:t.component})}),!t&&n.jsx("div",{style:{width:A}})]}),n.jsx(T3,{open:g||c,handleOk:c?I:y,handleCancel:c?b:h,body:s})]})}function Q3({entityOrEntitiesToDelete:e,collection:t,onClose:c,open:i,callbacks:l,onEntityDelete:a,onMultipleEntitiesDelete:s,path:d}){const u=Qe(),A=cn(),[_,g]=f.useState(!1),[y,h]=f.useState(),[I,b]=f.useState(),p=re();f.useEffect(()=>{if(e){const C=Array.isArray(e)&&e.length===1?e[0]:e;h(C),b(Array.isArray(C))}},[e]);const w=f.useMemo(()=>Me({collection:t,path:d,fields:p.fields}),[t,d]),k=f.useCallback(()=>{c()},[c]),K=f.useCallback(C=>{console.debug("Deleted",C)},[]),m=f.useCallback((C,N)=>{A.open({type:"error",message:"Error deleting: "+N?.message}),console.error("Error deleting entity"),console.error(N)},[w.name]),v=f.useCallback((C,N)=>{A.open({type:"error",message:"Error before deleting: "+N?.message}),console.error(N)},[w.name]),S=f.useCallback((C,N)=>{A.open({type:"error",message:"Error after deleting: "+N?.message}),console.error(N)},[w.name]),B=f.useCallback(C=>nc({dataSource:u,entity:C,collection:w,callbacks:l,onDeleteSuccess:K,onDeleteFailure:m,onPreDeleteHookError:v,onDeleteSuccessHookError:S,context:p}),[u,w,l,K,m,v,S,p]),P=f.useCallback(async()=>{y&&(g(!0),I?Promise.all(y.map(B)).then(C=>{g(!1),s&&y&&s(d,y),C.every(Boolean)?A.open({type:"success",message:`${w.name}: multiple deleted`}):C.some(Boolean)?A.open({type:"warning",message:`${w.name}: Some of the entities have been deleted, but not all`}):A.open({type:"error",message:`${w.name}: Error deleting entities`}),c()}):B(y).then(C=>{g(!1),C&&(a&&y&&a(d,y),A.open({type:"success",message:`${w.singularName??w.name} deleted`}),c())}))},[y,I,B,s,d,c,A,w.name,a]);let F;if(y&&I)F=n.jsx(n.Fragment,{children:"Multiple entities"});else{const C=y;F=C?n.jsx(yt,{entity:C,collection:t,path:d}):n.jsx(n.Fragment,{})}const D=I?n.jsxs(n.Fragment,{children:[n.jsx("b",{children:w.name}),": Confirm multiple delete?"]}):`Would you like to delete this ${w.singularName??w.name}?`;return n.jsxs(Zo,{maxWidth:"2xl","aria-labelledby":"delete-dialog",open:i,onOpenChange:C=>C?void 0:c(),children:[n.jsxs(Xo,{fullHeight:!0,children:[n.jsx(j,{variant:"subtitle2",className:"p-4",children:D}),!I&&F]}),n.jsxs(wn,{children:[_&&n.jsx(Gn,{size:"small"}),n.jsx(te,{onClick:k,disabled:_,variant:"text",color:"primary",children:"Cancel"}),n.jsx(te,{autoFocus:!0,disabled:_,onClick:P,variant:"filled",color:"primary",children:"Ok"})]})]})}function Yo(e){return Array.isArray(e)?e:e?[e]:[]}function V3({collection:e,relativePath:t,parentPathSegments:c,onNewClick:i,onMultipleDeleteClick:l,selectionEnabled:a,path:s,selectionController:d,tableController:u,collectionEntitiesCount:A}){const _=re(),g=_.plugins??[],y=yn(),h=Ge(),I=d.selectedEntities,b=Vo(e,y,Xe(s),null)&&i&&(h?n.jsxs(te,{id:`add_entity_${s}`,onClick:i,startIcon:n.jsx(hn,{}),size:"large",variant:"filled",color:"primary",children:["Add ",e.singularName??e.name]}):n.jsx(te,{id:`add_entity_${s}`,onClick:i,size:"medium",variant:"filled",color:"primary",children:n.jsx(hn,{})})),p=At(e,y,Xe(s),null);let w;if(a){const v=h?n.jsxs(te,{variant:"text",disabled:!I?.length||!p,startIcon:n.jsx(wo,{}),onClick:l,color:"primary",className:"lg:w-20",children:["(",I?.length,")"]}):n.jsx(ee,{color:"primary",disabled:!I?.length||!p,onClick:l,children:n.jsx(wo,{})});w=n.jsx(ye,{title:p?"Delete":"You have selected at least one entity you cannot delete",children:v})}const k={path:s,relativePath:t,parentPathSegments:c,collection:e,selectionController:d,context:_,tableController:u,collectionEntitiesCount:A},K=[];K.push(...Yo(e.Actions)),g&&g.forEach(v=>{v.collections?.CollectionActions&&K.push(...Yo(v.collections?.CollectionActions))});const m=n.jsx(n.Fragment,{children:K.map((v,S)=>n.jsx(v,{...k},`actions_${S}`))});return n.jsxs(n.Fragment,{children:[m,w,b]})}function W3({containerRef:e,innerRef:t,x:c,y:i,onMove:l}){let a=0,s=0;const d=f.useRef(!1),u=I=>{if(I.button!==0||!e.current||I.defaultPrevented||I.innerClicked)return;const{x:b,y:p}=e.current.getBoundingClientRect();a=I.screenX-b,s=I.screenY-p,document.addEventListener("mousemove",y),document.addEventListener("mouseup",g),document.addEventListener("selectstart",_),d.current=!0},A=I=>{I.innerClicked=!0},_=I=>{I.preventDefault(),I.stopPropagation()},g=I=>{document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",g),document.removeEventListener("selectstart",_),I.stopPropagation(),d.current=!1},y=I=>{I.target.localName==="input"||!d.current||(l({x:I.screenX-a,y:I.screenY-s}),I.stopPropagation())},h=()=>{e.current&&(e.current.style.top=`${i}px`,e.current.style.left=`${c}px`)};f.useEffect(()=>{const I=e.current,b=t.current;if(!(!I||!b))return b&&b.addEventListener("mousedown",A),I&&I.addEventListener("mousedown",u),h(),()=>{I&&I.removeEventListener("mousedown",u),b&&b.removeEventListener("mousedown",A)}})}function G3(){const[e,t]=f.useState({width:0,height:0});return f.useLayoutEffect(()=>{function c(){t({width:window.innerWidth,height:window.innerHeight})}return window.addEventListener("resize",c),c(),()=>window.removeEventListener("resize",c)},[]),e}const z3=({onResize:e})=>{const t=f.useRef(0),c=f.useRef(null),i=f.useRef(e);i.current=e;const l=f.useCallback(s=>{t.current&&cancelAnimationFrame(t.current),t.current=requestAnimationFrame(()=>{i.current(s)})},[]),a=f.useCallback(()=>{const s=c.current;s&&s.contentDocument&&s.contentDocument.defaultView&&s.contentDocument.defaultView.addEventListener("resize",l)},[l]);return f.useEffect(()=>{const s=c.current;return()=>{s&&s.contentDocument&&s.contentDocument.defaultView&&s.contentDocument.defaultView.removeEventListener("resize",l)}},[l]),n.jsx("object",{onLoad:a,ref:c,tabIndex:-1,type:"text/html",data:"about:blank",title:"",style:{position:"absolute",top:0,left:0,height:"100%",width:"100%",pointerEvents:"none",zIndex:-1,opacity:0}})};function H3(e){return e.open?n.jsx(U3,{...e}):null}function U3({tableKey:e,entity:t,customFieldValidator:c,propertyKey:i,collection:l,path:a,cellRect:s,open:d,onClose:u,columnIndex:A,onCellValueChange:_}){const g=Qe(),y=re(),[h,I]=f.useState(),[b,p]=f.useState(),w=t?.id,[k,K]=f.useState(t);f.useEffect(()=>w&&l?g.listenEntity?.({path:a,entityId:w,collection:l,onUpdate:K}):()=>{},[g,w,l,a]);const[m,v]=f.useState(k?.values),S=l?Me({collection:l,path:a,values:m,entityId:w,fields:y.fields}):void 0,B=G3(),P=f.useRef(null),F=f.useRef(null),D=f.useRef(!1),C=f.useCallback(()=>{if(!s)throw Error("getInitialLocation error");return{x:s.left<B.width-s.right?s.x+s.width/2:s.x-s.width/2,y:s.top<B.height-s.bottom?s.y+s.height/2:s.y-s.height/2}},[s,B.height,B.width]),N=f.useCallback(({x:L,y:X})=>{const W=P.current?.getBoundingClientRect();if(!W)throw Error("normalizePosition called before draggableBoundingRect is set");return{x:Math.max(0,Math.min(L,B.width-W.width)),y:Math.max(0,Math.min(X,B.height-W.height))}},[B]),M=f.useCallback(L=>{const X=P.current?.getBoundingClientRect();if(!s||!X)return;const W=N(L??C());(!b||W.x!==b.x||W.y!==b.y)&&p(W)},[s,C,N,b]);W3({containerRef:P,innerRef:F,x:b?.x,y:b?.y,onMove:M}),f.useEffect(()=>{D.current=!1},[i,k]),f.useEffect(()=>{D.current=!1},[i]),f.useLayoutEffect(()=>{const L=P.current?.getBoundingClientRect();!s||!L||D.current||(M(),D.current=!0)},[s,M,D.current]),f.useLayoutEffect(()=>{M(b)},[B,s]);const H=f.useMemo(()=>{if(!(!S||!w))return Ei(w,i&&S.properties[i]?{[i]:S.properties[i]}:{},c)},[S,w,i,c]),Z=f.useCallback(()=>M(b),[b,M]),O=async L=>(I(null),l&&k&&_&&i?_({value:L[i],propertyKey:i,entity:k,setError:I,onValueUpdated:()=>{},fullPath:a,context:y}):Promise.resolve());if(!k)return n.jsx(n.Fragment,{});const oe=k&&n.jsxs("div",{className:`text-gray-900 dark:text-white overflow-auto rounded rounded-md bg-white dark:bg-gray-950 ${d?"":"hidden"} cursor-grab`,children:[n.jsx(Fe.Formik,{initialValues:k?.values??{},validationSchema:H,validateOnMount:!0,validate:L=>console.debug("Validating",L),onSubmit:(L,X)=>{O(L).then(()=>u()).finally(()=>X.setSubmitting(!1))},children:({values:L,setFieldValue:X,handleSubmit:W,isSubmitting:V})=>{if(f.useEffect(()=>{de(L,m)||v(L)},[L]),!k)return n.jsx(pe,{error:"PopupFormField misconfiguration"});if(!S)return n.jsx(n.Fragment,{});const Q=V,q={collection:S,entityId:w,values:L,path:a,setFieldValue:X,save:O},R=i&&pn(S.properties,i),$=i&&R?{propertyKey:i,disabled:V||Nn(R)||!!R.disabled,property:R,includeDescription:!1,underlyingValueHasChanged:!1,context:q,tableMode:!0,partOfArray:!1,partOfBlock:!1,autoFocus:d}:void 0;let ne=n.jsx(n.Fragment,{children:n.jsx("div",{className:"w-[560px] max-w-full max-h-[85vh]",children:n.jsxs(Fe.Form,{onSubmit:W,noValidate:!0,children:[n.jsx("div",{className:"mb-1 p-4 flex flex-col relative",children:n.jsx("div",{ref:F,className:"cursor-auto",style:{cursor:"auto !important"},children:$&&n.jsx(bn,{...$})})}),n.jsx(wn,{children:n.jsx(te,{variant:"filled",color:"primary",type:"submit",disabled:Q,children:"Save"})})]})},`popup_form_${e}_${w}_${A}`)});const J=y.plugins;return J&&J.forEach(x=>{x.form?.provider&&(ne=n.jsx(x.form.provider.Component,{status:"existing",path:a,collection:S,entity:k,context:y,currentEntityId:w,formContext:q,...x.form.provider.props,children:ne}))}),ne}}),h&&n.jsx(j,{color:"error",children:h.message})]}),U=n.jsxs("div",{style:{boxShadow:"0 0 0 2px rgba(128,128,128,0.2)"},className:`inline-block fixed z-30 shadow-outline rounded-md bg-white dark:bg-gray-950 ${d?"visible":"invisible"} cursor-grab overflow-visible`,ref:P,children:[n.jsx(z3,{onResize:Z}),n.jsxs("div",{className:"overflow-hidden",children:[oe,n.jsx("div",{className:"absolute -top-3.5 -right-3.5 bg-gray-500 rounded-full",style:{width:"32px",height:"32px"},children:n.jsx(ee,{size:"small",onClick:L=>{L.stopPropagation(),u()},children:n.jsx(an,{className:"text-white",size:"small"})})})]})]},`draggable_${i}_${w}_${d}`);return n.jsx(La.Root,{asChild:!0,children:U})}const Y3="collectionGroupParent",St=f.memo(function({fullPath:t,parentPathSegments:c,isSubCollection:i,className:l,...a}){const s=Qe(),d=Ae(),u=Cn(),A=yn(),_=Bn(),g=re(),y=f.useMemo(()=>{const G=_?.getCollectionConfig(t);return G?Ze(a,G):a},[a,t,_?.getCollectionConfig]),[h,I]=f.useState(void 0),[b,p]=f.useState(void 0),[w,k]=f.useState(0),[K,m]=f.useState(0),v=f.useCallback(()=>{const G=h;setTimeout(()=>{G===h&&I(void 0)},2400)},[h]),S=f.useCallback(G=>ft(y,A,Xe(t),G??null)?y.inlineEditing===void 0||y.inlineEditing:!1,[y,A,t]),B=y.selectionEnabled===void 0||y.selectionEnabled,P=!S(),[F,D]=f.useState(!1),C=Bt(),N=y.selectionController??C,{selectedEntities:M,toggleEntitySelection:H,isEntitySelected:Z,setSelectedEntities:O}=N;f.useEffect(()=>{p(void 0)},[M]);const oe=Ct({fullPath:t,collection:y,entitiesDisplayedFirst:[],lastDeleteTimestamp:w}),U=f.useRef(Math.random().toString(36)),L=oe.popupCell,X=f.useCallback(()=>{oe.setPopupCell?.(void 0)},[oe.setPopupCell]),W=f.useCallback(G=>(I(G),g.onAnalyticsEvent?.("edit_entity_clicked",{path:G.path,entityId:G.id}),u.open({entityId:G.id,path:t,collection:y,updateUrl:!0,onClose:v})),[t,y,u]),V=f.useCallback(()=>{g.onAnalyticsEvent?.("new_entity_click",{path:t}),u.open({path:t,collection:y,updateUrl:!0,onClose:v})},[t,y,u]),Q=f.useCallback(G=>{g.onAnalyticsEvent?.("single_delete_dialog_open",{path:t}),p(G)},[g,t]),q=f.useCallback(()=>{g.onAnalyticsEvent?.("multiple_delete_dialog_open",{path:t}),p(M)},[g,t,M]),R=f.useCallback((G,_e)=>{g.onAnalyticsEvent?.("single_entity_deleted",{path:t}),O(ae=>ae.filter(T=>T.id!==_e.id)),k(Date.now())},[g,t,O]),$=f.useCallback((G,_e)=>{g.onAnalyticsEvent?.("multiple_entities_deleted",{path:t}),O([]),p(void 0),k(Date.now())},[O]),ne=f.useCallback((G,_e)=>{if(_){const ae=_.getCollectionConfig(G),T=Ze(ae,_e);_.onCollectionModified(G,T)}},[_]),J=f.useCallback(({width:G,key:_e})=>{if(!pn(y.properties,_e))return;const ae=oa(_e,G);ne(t,ae)},[y,ne,t]),x=f.useCallback(G=>{_&&ne(t,{defaultSize:G})},[ne,t,_]),ie=Vo(y,A,Xe(t),null),Y=f.useCallback(({name:G,value:_e,property:ae,entityId:T})=>s.checkUniqueField(t,G,_e,ae,T),[t]),Be=({fullPath:G,context:_e,value:ae,propertyKey:T,onValueUpdated:le,setError:he,entity:Le})=>{const mn=Fe.setIn({...Le.values},T,ae),vn={path:G,entityId:Le.id,values:mn,previousValues:Le.values,collection:y,status:"existing"};return dr({...vn,callbacks:y.callbacks,dataSource:s,context:_e,onSaveSuccess:()=>le(),onSaveFailure:z=>{console.error("Save failure"),console.error(z),he(z)}})},Oe=d.resolveAliasesFrom(t),Ue=f.useMemo(()=>Me({collection:y,path:t,fields:g.fields}),[y,t]),zn=f.useCallback(({propertyKey:G,propertyValue:_e,entity:ae})=>{let T=pn(y.properties,G);return T||(T=pn(Ue.properties,G)),Te({propertyKey:G,propertyOrBuilder:T,path:t,propertyValue:_e,values:ae.values,entityId:ae.id,fields:g.fields})},[y.properties,g.fields,t,Ue.properties]),Ao=Xi(Ue,!0),kn=f.useCallback(G=>{I(G),g.onAnalyticsEvent?.("copy_entity_click",{path:G.path,entityId:G.id}),u.open({entityId:G.id,path:t,copy:!0,collection:y,updateUrl:!0,onClose:v})},[u,y,t,v]),Hn=f.useCallback(G=>{I(G),g.onAnalyticsEvent?.("entity_click",{path:G.path,entityId:G.id}),u.open({entityId:G.id,path:G.path,collection:y,updateUrl:!0,onClose:v})},[u,y,t,v]),_o=f.useMemo(()=>{const G=y.subcollections?.map(ae=>({id:ht(ae),name:ae.name,width:200,dependencies:[],Builder:({entity:T})=>n.jsx(te,{color:"primary",startIcon:n.jsx(ko,{size:"small"}),onClick:le=>{le.stopPropagation(),u.open({path:t,entityId:T.id,selectedSubPath:ae.alias??ae.path,collection:y,updateUrl:!0})},children:ae.name})}))??[],_e=y.collectionGroup?[{id:Y3,name:"Parent entities",width:260,dependencies:[],Builder:({entity:ae})=>{const T=d.getParentReferencesFromPath(ae.path);return n.jsx(n.Fragment,{children:T.map(le=>n.jsx(on,{reference:le,size:"tiny"},le.path+"/"+le.id))})}}]:[];return[...y.additionalFields??y.additionalColumns??[],...G,..._e]},[y,t]),rn=f.useCallback(({entity:G,size:_e,width:ae,frozen:T})=>{const le=Z(G),he=At(y,A,Xe(t),G);return n.jsx(pt,{entity:G,width:ae,frozen:T,isSelected:le,selectionEnabled:B,size:_e,toggleEntitySelection:H,onEditClicked:Hn,onCopyClicked:ie?kn:void 0,onDeleteClicked:he?Q:void 0,hideId:y?.hideIdFromCollection})},[Z,y,A,t,B,H,Hn,ie,kn]),yo=n.jsx(Hi,{open:F,onOpenChange:D,enabled:!!y.description,trigger:n.jsxs("div",{className:"flex flex-col items-start",children:[n.jsx(j,{variant:"subtitle1",className:`leading-none truncate max-w-[160px] lg:max-w-[240px] ${y.description?"cursor-pointer":"cursor-auto"}`,onClick:y.description?G=>{D(!0),G.stopPropagation()}:void 0,children:`${y.name}`}),n.jsx($3,{fullPath:t,collection:y,filter:oe.filterValues,sortBy:oe.sortBy,onCountChange:m})]}),children:y.description&&n.jsx("div",{className:"m-4 text-gray-900 dark:text-white",children:n.jsx(co,{source:y.description})})});return n.jsxs("div",{className:E("overflow-hidden h-full w-full",l),children:[n.jsx(Kt,{additionalFields:_o,tableController:oe,displayedColumnIds:Ao,onSizeChanged:x,onEntityClick:W,onColumnResize:J,onValueChange:Be,tableRowActionsBuilder:rn,uniqueFieldValidator:Y,title:yo,selectionController:N,highlightedEntities:h?[h]:[],defaultSize:y.defaultSize,properties:Ue.properties,getPropertyFor:zn,actions:n.jsx(V3,{parentPathSegments:c??[],collection:y,tableController:oe,onMultipleDeleteClick:q,onNewClick:V,path:t,relativePath:y.path,selectionController:N,selectionEnabled:B,collectionEntitiesCount:K}),hoverRow:P,inlineEditing:S()},`collection_table_${t}`),n.jsx(H3,{open:!!L,onClose:X,cellRect:L?.cellRect,columnIndex:L?.columnIndex,propertyKey:L?.propertyKey,collection:y,entity:L?.entity,tableKey:U.current,customFieldValidator:Y,path:Oe,onCellValueChange:Be},`popup_form_${L?.columnIndex}_${L?.entity?.id}`),b&&n.jsx(Q3,{entityOrEntitiesToDelete:b,path:t,collection:y,callbacks:y.callbacks,open:!!b,onEntityDelete:R,onMultipleEntitiesDelete:$,onClose:()=>p(void 0)})]})},de);function Bt(){const[e,t]=f.useState([]),c=f.useCallback(l=>{let a;e.map(s=>s.id).includes(l.id)?a=e.filter(s=>s.id!==l.id):a=[...e,l],t(a)},[e]),i=f.useCallback(l=>e.map(a=>a.id).includes(l.id),[e]);return{selectedEntities:e,setSelectedEntities:t,isEntitySelected:i,toggleEntitySelection:c}}function $3({fullPath:e,collection:t,filter:c,sortBy:i,onCountChange:l}){const a=Qe(),s=Ae(),[d,u]=f.useState(void 0),[A,_]=f.useState(void 0),g=i?i[0]:void 0,y=i?i[1]:void 0,h=f.useMemo(()=>s.resolveAliasesFrom(e),[e,s.resolveAliasesFrom]);return f.useEffect(()=>{a.countEntities({path:h,collection:t,filter:c,orderBy:g,order:y}).then(u).catch(_)},[e,a,h,t,c,g,y]),f.useEffect(()=>{l&&l(d??0)},[l,d]),A?null:n.jsx(j,{className:"w-full text-ellipsis block overflow-hidden whitespace-nowrap max-w-xs text-left w-fit-content",variant:"caption",color:"secondary",children:d!==void 0?`${d} entities`:n.jsx(Ve,{className:"w-full max-w-[80px] mt-1"})})}function oa(e,t){if(e.includes(".")){const[c,...i]=e.split(".");return{properties:{[c]:oa(i.join("."),t)}}}return{properties:{[e]:{columnWidth:t}}}}function ra({onSingleEntitySelected:e,onMultipleEntitiesSelected:t,multiselect:c,collection:i,path:l,selectedEntityIds:a,description:s,forceFilter:d,maxSelection:u}){const A=Uo(),_=Cn(),g=Ae(),y=re(),h=g.resolveAliasesFrom(l),I=Qe(),[b,p]=f.useState([]),w=Bt();f.useEffect(()=>{let C=!1;const N=a?.map(M=>M?.toString()).filter(Boolean);return N&&i?Promise.all(N.map(M=>I.fetchEntity({path:h,entityId:M,collection:i}))).then(M=>{if(!C){const H=M.filter(Z=>Z!==void 0);w.setSelectedEntities(H),p(H)}}):(w.setSelectedEntities([]),p([])),()=>{C=!0}},[I,h,a,i,w.setSelectedEntities]);const k=f.useCallback(()=>{y.onAnalyticsEvent?.("reference_selection_clear",{path:h}),w.setSelectedEntities([]),!c&&e?e(null):t&&t([])},[c,t,e]),K=f.useCallback(C=>{let N;const M=w.selectedEntities;if(y.onAnalyticsEvent?.("reference_selection_toggle",{path:h,entityId:C.id}),M){if(M.map(H=>H.id).indexOf(C.id)>-1)N=M.filter(H=>H.id!==C.id);else{if(u&&M.length>=u)return;N=[...M,C]}w.setSelectedEntities(N),t&&t(N)}},[t,w.selectedEntities]),m=f.useCallback(C=>{!c&&e?(y.onAnalyticsEvent?.("reference_selected_single",{path:h,entityId:C.id}),e(C),A.close(!1)):K(C)},[A,c,e,K]),v=f.useCallback(()=>{y.onAnalyticsEvent?.("reference_selection_new_entity",{path:h}),_.open({path:h,collection:i,updateUrl:!0,onUpdate:({entity:C})=>{p([C,...b]),m(C)},closeOnSave:!0})},[_,h,i,b,m]),S=f.useCallback(({entity:C,size:N,width:M,frozen:H})=>{const Z=w.selectedEntities,O=Z&&Z.map(oe=>oe.id).indexOf(C.id)>-1;return n.jsx(pt,{width:M,frozen:H,entity:C,size:N,isSelected:O,selectionEnabled:c,toggleEntitySelection:K,hideId:i?.hideIdFromCollection})},[c,w.selectedEntities,K,i?.hideIdFromCollection]),B=f.useCallback(C=>{C.stopPropagation(),A.close(!1)},[A]);if(!i)return n.jsx(pe,{error:"Could not find collection with id "+i});const P=f.useMemo(()=>Me({collection:i,path:h,values:{},fields:y.fields}),[i,y.fields,h]),F=Xi(P,!1),D=Ct({fullPath:h,collection:i,entitiesDisplayedFirst:b,forceFilter:d});return n.jsxs("div",{className:"flex flex-col h-full",children:[n.jsx("div",{className:"flex-grow",children:b&&n.jsx(Kt,{displayedColumnIds:F,onEntityClick:m,tableController:D,tableRowActionsBuilder:S,title:n.jsx(j,{variant:"subtitle2",children:i.singularName?`Select ${i.singularName}`:`Select from ${i.name}`}),defaultSize:i.defaultSize,properties:P.properties,forceFilter:d,inlineEditing:!1,selectionController:w,actions:n.jsx(j3,{collection:i,path:h,onNewClick:v,onClear:k})})}),n.jsxs(wn,{translucent:!1,children:[s&&n.jsx(j,{variant:"body2",className:"flex-grow text-left",children:s}),n.jsx(te,{onClick:B,color:"primary",variant:"filled",children:"Done"})]})]})}function j3({collection:e,path:t,onClear:c,onNewClick:i}){const l=yn(),a=Ge(),s=i?u=>{u.preventDefault(),i()}:void 0,d=Vo(e,l,Xe(t),null)&&s&&(a?n.jsxs(te,{onClick:s,startIcon:n.jsx(hn,{}),variant:"outlined",color:"primary",children:["Add ",e.singularName??e.name]}):n.jsx(te,{onClick:s,size:"medium",variant:"outlined",color:"primary",children:n.jsx(hn,{})}));return n.jsxs(n.Fragment,{children:[n.jsx(te,{onClick:c,variant:"text",color:"primary",children:"Clear"}),d]})}function fn({title:e,children:t,invisible:c=!1,initiallyExpanded:i=!0,onExpandedChange:l,titleClassName:a,asField:s,className:d}){En("ExpandablePanel",`
|
|
1584
|
-
.CollapsibleContent {
|
|
1585
|
-
overflow: hidden;
|
|
1586
|
-
}
|
|
1587
|
-
.CollapsibleContent[data-state='open'] {
|
|
1588
|
-
animation: slideDown 220ms ease-out
|
|
1589
|
-
}
|
|
1590
|
-
.CollapsibleContent[data-state='closed'] {
|
|
1591
|
-
animation: slideUp 220ms ease-out;
|
|
1592
|
-
}
|
|
1593
|
-
|
|
1594
|
-
@keyframes slideDown {
|
|
1595
|
-
from {
|
|
1596
|
-
height: 0;
|
|
1597
|
-
}
|
|
1598
|
-
to {
|
|
1599
|
-
height: var(--radix-collapsible-content-height);
|
|
1600
|
-
}
|
|
1601
|
-
}
|
|
1602
|
-
|
|
1603
|
-
@keyframes slideUp {
|
|
1604
|
-
from {
|
|
1605
|
-
height: var(--radix-collapsible-content-height);
|
|
1606
|
-
}
|
|
1607
|
-
to {
|
|
1608
|
-
height: 0;
|
|
1609
|
-
}
|
|
1610
|
-
}`);const[u,A]=f.useState(i),[_,g]=f.useState(u);return f.useEffect(()=>{u?setTimeout(()=>{g(!0)},220):g(!1)},[u]),n.jsx(n.Fragment,{children:n.jsxs(qn.Root,{className:E(!c&&ue+" border","rounded-md"),open:u,onOpenChange:y=>{l?.(y),A(y)},children:[n.jsxs(qn.Trigger,{className:E(ge,"rounded flex items-center justify-between w-full min-h-[52px]",c?"border-b px-2":"p-4",c&&ue,s&&qe,a),children:[e,n.jsx(eo,{className:E("transition",u?"rotate-180":"")})]}),n.jsx(qn.Content,{className:E("CollapsibleContent"),style:{overflow:_?"visible":"hidden"},children:n.jsx("div",{className:d,children:t})})]})})}function $o({children:e,group:t}){const c=Bn();return n.jsx(fn,{invisible:!0,titleClassName:"font-medium text-sm text-gray-600 dark:text-gray-400",className:"py-4",initiallyExpanded:!(c?.collapsedGroups??[]).includes(t??"ungrouped"),onExpandedChange:i=>{if(c)if(i)c.setCollapsedGroups((c.collapsedGroups??[]).filter(l=>l!==(t??"ungrouped")));else{const l=(c.collapsedGroups??[]).concat(t??"ungrouped");c.setCollapsedGroups(l)}},title:n.jsx(j,{color:"secondary",className:"font-medium ml-1",children:t?.toUpperCase()??"Views".toUpperCase()}),children:n.jsx("div",{className:"mb-8",children:e})})}function Et({view:e,path:t,collection:c,url:i,name:l,description:a,onClick:s}){const d=Bn(),u=Wo(c??e),A=Ie.useNavigate(),_=re(),g=(d?.favouritePaths??[]).includes(t);let y;if(_.plugins&&c){const h={path:t,collection:c,context:_};y=n.jsx(n.Fragment,{children:_.plugins.map((I,b)=>I.homePage?.CollectionActions?n.jsx(I.homePage.CollectionActions,{...h,extraProps:I.homePage.extraProps},`actions_${b}`):null)})}return n.jsx(ya,{className:E("h-full p-4 cursor-pointer min-h-[230px]"),onClick:()=>{s?.(),A(i),d&&d.setRecentlyVisitedPaths([t,...(d.recentlyVisitedPaths??[]).filter(h=>h!==t)])},children:n.jsxs("div",{className:"flex flex-col items-start h-full",children:[n.jsxs("div",{className:"flex-grow w-full",children:[n.jsxs("div",{className:"h-10 flex items-center w-full justify-between text-gray-300 dark:text-gray-600",children:[u,n.jsxs("div",{className:"flex items-center gap-1",onClick:h=>{h.preventDefault(),h.stopPropagation()},children:[y,d&&n.jsx(ee,{onClick:h=>{h.preventDefault(),h.stopPropagation(),g?d.setFavouritePaths(d.favouritePaths.filter(I=>I!==t)):d.setFavouritePaths([...d.favouritePaths,t])},children:g?n.jsx(Cr,{size:18,className:"text-secondary"}):n.jsx(Sr,{size:18,className:"text-gray-400 dark:text-gray-500"})})]})]}),n.jsx(j,{gutterBottom:!0,variant:"h5",component:"h2",children:l}),a&&n.jsx(j,{variant:"body2",color:"secondary",component:"div",children:n.jsx(co,{source:a})})]}),n.jsx("div",{style:{alignSelf:"flex-end"},children:n.jsx("div",{className:"p-4",children:n.jsx(uc,{className:"text-primary"})})})]})})}function q3({entry:e}){const t=Ie.useNavigate(),c=Bn();if(!c)return null;const i=c.favouritePaths.includes(e.path),l=a=>{a.preventDefault(),a.stopPropagation(),i?c.setFavouritePaths(c.favouritePaths.filter(s=>s!==e.path)):c.setFavouritePaths([...c.favouritePaths,e.path])};return n.jsx(Ko,{onClick:()=>t(e.url),icon:i?n.jsx(Cr,{onClick:l,size:18,className:"text-secondary"}):n.jsx(Sr,{onClick:l,size:18,className:"text-gray-400 dark:text-gray-500"}),children:e.name},e.path)}function J3({hidden:e}){const t=re(),c=Ae(),i=Bn();if(!i)return null;const l=(i?.favouritePaths??[]).map(d=>c.topLevelNavigation?.navigationEntries.find(u=>u.path===d)).filter(Boolean),a=(i?.recentlyVisitedPaths??[]).map(d=>c.topLevelNavigation?.navigationEntries.find(u=>u.path===d)).filter(Boolean).slice(0,5),s=n.jsx(To,{in:!e&&l.length>0,children:n.jsx($o,{group:"Favourites",children:n.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:l.map(d=>n.jsx("div",{className:"col-span-1",children:n.jsx(Et,{...d,onClick:()=>{const u=d.type==="collection"?"home_favorite_navigate_to_collection":d.type==="view"?"home_favorite_navigate_to_view":"unmapped_event";t.onAnalyticsEvent?.(u,{path:d.path})}})},`nav_${d.group}_${d.name}`))})})});return n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"flex flex-row flex-wrap gap-1 pb-2",children:a.map(d=>n.jsx(q3,{entry:d},d.path))}),s]})}const Ft={};function Z3(){const e=Ie.useLocation(),t=f.useRef(null),[c,i]=f.useState(0),[l,a]=f.useState("down"),s=f.useCallback(()=>{!t.current||!e.key||(Ft[e.key]=t.current.scrollTop,i(t.current.scrollTop),a(t.current.scrollTop>c?"down":"up"))},[t,e.key,c]);return f.useEffect(()=>{const d=t.current;if(d)return d.addEventListener("scroll",s,{passive:!0}),()=>{d&&d.removeEventListener("scroll",s)}},[t,s,e]),f.useEffect(()=>{!t.current||!Ft[e.key]||t.current.scrollTo({top:Ft[e.key],behavior:"auto"})},[e]),{containerRef:t,scroll:c,direction:l}}const Wn=new Oa.Search("url");Wn.addIndex("name"),Wn.addIndex("description"),Wn.addIndex("group"),Wn.addIndex("path");function ta({additionalChildrenStart:e,additionalChildrenEnd:t}){const c=re(),i=Ae();if(!i.topLevelNavigation)throw Error("Navigation not ready in FireCMSHomePage");const{containerRef:l,scroll:a,direction:s}=Z3(),{navigationEntries:d,groups:u}=i.topLevelNavigation,[A,_]=f.useState(null),g=A?d.filter(b=>A.includes(b.url)):d;f.useEffect(()=>{Wn.addDocuments(d)},[d]);const y=f.useCallback(b=>{if(!b||b==="")_(null);else{const p=Wn.search(b);_(p.map(w=>w.url))}},[]),h=[...u];(g.filter(b=>!b.group).length>0||g.length===0)&&h.push(void 0);let I;if(c.plugins){const b={context:c};I=n.jsx(n.Fragment,{children:c.plugins.filter(p=>p.homePage?.includeSection).map((p,w)=>{const k=p.homePage.includeSection(b);return n.jsx($o,{group:k.title,children:k.children},`plugin_section_${p.name}`)})})}return n.jsx("div",{id:"home_page",ref:l,className:"py-2 overflow-auto h-full w-full",children:n.jsxs(Ot,{maxWidth:"6xl",children:[n.jsx("div",{className:"sticky py-4 transition-all duration-400 ease-in-out top-0 z-10",style:{top:s==="down"?-84:0},children:n.jsx(Qt,{onTextSearch:y,placeholder:"Search collections",large:!1,className:"w-full"})}),n.jsx(J3,{hidden:!!A}),e,h.map((b,p)=>{const w=[],k={group:b,context:c};c.plugins&&c.plugins.forEach(m=>{m.homePage?.AdditionalCards&&w.push(...Yo(m.homePage?.AdditionalCards))});const K=g.filter(m=>m.group===b||!m.group&&b===void 0);return K.length===0&&w.length===0?null:n.jsx($o,{group:b,children:n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:[K.map(m=>n.jsx("div",{className:"col-span-1",children:n.jsx(Et,{...m,onClick:()=>{const v=m.type==="collection"?"home_navigate_to_collection":m.type==="view"?"home_navigate_to_view":"unmapped_event";c.onAnalyticsEvent?.(v,{path:m.path})}})},`nav_${m.group}_${m.name}`)),w&&w.map((m,v)=>n.jsx("div",{children:n.jsx(m,{...k})},`nav_${b}_add_${v}`))]})},`plugin_section_${b}`)}),I,t]})})}function X3({widget:e}){const t="h-8 w-8 p-1 rounded-full shadow text-white";return n.jsx("div",{className:t,style:{background:e?.color??"#888"},children:dt(e,"medium")})}function x3({children:e,title:t,path:c}){const i=fr();return f.useEffect(()=>{i.set({breadcrumbs:[{title:t,url:c}]})},[c,t]),n.jsx(n.Fragment,{children:e})}function ca(){return n.jsx("div",{className:"flex w-full h-full",children:n.jsxs("div",{className:"m-auto flex items-center flex-col",children:[n.jsx(j,{variant:"h4",align:"center",gutterBottom:!0,children:"Page not found"}),n.jsx(j,{align:"center",gutterBottom:!0,children:"This page does not exist or you may not have access to it"}),n.jsx(te,{variant:"text",component:Ie.Link,to:"/",children:"Back to home"})]})})}function R3({open:e,onAccept:t,onCancel:c,title:i,loading:l,body:a}){return n.jsxs(Zo,{open:e,onOpenChange:s=>s?void 0:c(),children:[n.jsxs(Xo,{children:[n.jsx(j,{variant:"h6",className:"mb-2",children:i}),a]}),n.jsxs(wn,{children:[n.jsx(te,{variant:"text",onClick:c,autoFocus:!0,children:"Cancel"}),n.jsx(ha,{color:"primary",type:"submit",loading:l,onClick:t,children:"Ok"})]})]})}function ia({width:e,height:t,className:c,style:i}){return n.jsxs("svg",{width:e??"100%",height:t??"100%",viewBox:"0 0 599 599",version:"1.1",style:i,className:c,xmlns:"http://www.w3.org/2000/svg",children:[n.jsxs("defs",{children:[n.jsxs("radialGradient",{cx:"28.6213569%",cy:"43.1133328%",fx:"28.6213569%",fy:"43.1133328%",r:"71.5003456%",gradientTransform:"translate(0.286214,0.431133),rotate(3.343450),scale(1.000000,0.996175),translate(-0.286214,-0.431133)",id:"radialGradient-1",children:[n.jsx("stop",{stopColor:"#FF5B79",offset:"0%"}),n.jsx("stop",{stopColor:"#FA5574",offset:"28.0930803%"}),n.jsx("stop",{stopColor:"#EC4C51",offset:"44.7242531%"}),n.jsx("stop",{stopColor:"#9543C1",offset:"71.4578165%"}),n.jsx("stop",{stopColor:"#3857B3",offset:"100%"})]}),n.jsxs("radialGradient",{cx:"53.6205516%",cy:"47.2473036%",fx:"53.6205516%",fy:"47.2473036%",r:"50.8229649%",gradientTransform:"translate(0.536206,0.472473),rotate(90.000000),scale(1.000000,1.206631),translate(-0.536206,-0.472473)",id:"radialGradient-2",children:[n.jsx("stop",{stopColor:"#68294F",stopOpacity:"0",offset:"0%"}),n.jsx("stop",{stopColor:"#5E2548",stopOpacity:"0.04641108",offset:"75.3503173%"}),n.jsx("stop",{stopColor:"#0D060B",stopOpacity:"0.437431709",offset:"100%"})]}),n.jsxs("radialGradient",{cx:"53.8605015%",cy:"48.1990423%",fx:"53.8605015%",fy:"48.1990423%",r:"59.9151549%",gradientTransform:"translate(0.538605,0.481990),rotate(180.000000),scale(1.000000,0.925027),translate(-0.538605,-0.481990)",id:"radialGradient-3",children:[n.jsx("stop",{stopColor:"#68294F",stopOpacity:"0",offset:"0%"}),n.jsx("stop",{stopColor:"#5E2548",stopOpacity:"0.04641108",offset:"84.0867343%"}),n.jsx("stop",{stopColor:"#FF0000",stopOpacity:"0.567324765",offset:"100%"})]})]}),n.jsx("g",{id:"Page-1",stroke:"none",strokeWidth:"1",fill:"none",fillRule:"evenodd",children:n.jsxs("g",{id:"firecms_logo",children:[n.jsx("circle",{fill:"url(#radialGradient-1)",cx:"299.5",cy:"299.5",r:"299.5"}),n.jsx("circle",{fill:"url(#radialGradient-2)",cx:"299.5",cy:"299.5",r:"299.5"}),n.jsx("circle",{fill:"url(#radialGradient-3)",cx:"299.5",cy:"299.5",r:"299.5"})]})})]})}const eH={info:"bg-sky-200 dark:bg-teal-900",warn:"bg-orange-200 dark:bg-yellow-950"};function nH({children:e,mode:t="info"}){return n.jsx("div",{className:E("my-3 py-1 px-2 rounded",eH[t]),children:e})}const aa=function({title:t,endAdornment:c,startAdornment:i,drawerOpen:l,dropDownActions:a,includeDrawer:s,className:d,style:u,user:A}){const _=Ae(),g=yn(),{mode:y,toggleMode:h}=ur(),I=Ge(),b=A??g.user;let p;if(b&&b.photoURL)p=n.jsx(Tt,{src:b.photoURL});else if(b===void 0||g.initialLoading)p=n.jsx("div",{className:"p-1 flex justify-center",children:n.jsx(Ve,{className:"w-10 h-10 rounded-full"})});else{const w=b?.displayName?b.displayName[0].toUpperCase():b?.email?b.email[0].toUpperCase():"A";p=n.jsx(Tt,{children:w})}return n.jsx("div",{style:u,className:E("pr-2",{"ml-[17rem]":l&&I,"ml-16":s&&!(l&&I)&&!i,"h-16":!0,"z-10":I,"transition-all":!0,"ease-in":!0,"duration-75":!0,"w-full":!s,"w-[calc(100%-64px)]":s&&!(l&&I),"w-[calc(100%-17rem)]":s&&l&&I,"duration-150":l&&I,fixed:!0},d),children:n.jsxs("div",{className:"flex flex-row gap-2 px-4 h-full items-center",children:[i,_&&n.jsx("div",{className:"mr-8 hidden lg:block",children:n.jsx(Ie.Link,{className:"visited:text-inherit visited:dark:text-inherit",to:_?.basePath??"/",children:n.jsx(j,{variant:"subtitle1",noWrap:!0,className:"ml-2 !font-medium",children:t})})}),n.jsx("div",{className:"flex-grow"}),c&&n.jsx(se,{children:c}),n.jsx(ee,{color:"inherit","aria-label":"Open drawer",onClick:h,size:"large",children:y==="dark"?n.jsx(hc,{}):n.jsx(Ec,{})}),n.jsxs(Qn,{trigger:p,children:[a,!a&&n.jsxs(ke,{onClick:g.signOut,children:[n.jsx(Nc,{}),"Log Out"]})]})]})})},oH=e=>e&&Array.isArray(e)&&e.length>0?e.map((t,c)=>t?{[Vr(t)+c]:fo()}:{}).reduce((t,c)=>({...t,...c}),{}):{};function Pt({droppableId:e,addLabel:t,value:c,disabled:i=!1,buildEntry:l,size:a,onInternalIdAdded:s,includeAddButton:d,newDefaultEntry:u,onValueChange:A}){const _=c&&Array.isArray(c)&&c.length>0,g=f.useRef(oH(c)),[y,h]=f.useState(_?Object.values(g.current):[]);f.useEffect(()=>{if(_&&c&&c.length!==y.length){const k=c.map((K,m)=>{const v=Vr(K)+m;if(v in g.current)return g.current[v];{const S=fo();return g.current[v]=S,S}});h(k)}},[_,y.length,c]);const I=k=>{if(k.preventDefault(),i)return;const K=fo(),m=[...y,K];s&&s(K),h(m),A([...c??[],u])},b=k=>{const K=[...y];K.splice(k,1),h(K),A(c.filter((m,v)=>v!==k))},p=k=>{const K=fo(),m=c[k],v=[...y.splice(0,k+1),K,...y.splice(k+1,y.length-k-1)];s&&s(K),h(v),A([...c.slice(0,k+1),m,...c.slice(k+1)])},w=k=>{if(!k.destination)return;const K=k.source.index,m=k.destination.index,v=[...y],S=v[K];v[K]=v[m],v[m]=S,h(v),A(rH(c,K,m))};return n.jsx(Kn.DragDropContext,{onDragEnd:w,children:n.jsx(Kn.Droppable,{droppableId:e,renderClone:(k,K,m)=>{const v=m.source.index,S=y[v];return n.jsx(Dt,{provided:k,internalId:S,index:v,size:a,disabled:i,buildEntry:l,remove:b,copy:p,isDragging:K.isDragging})},children:(k,K)=>n.jsxs("div",{...k.droppableProps,ref:k.innerRef,children:[_&&y.map((m,v)=>n.jsx(Kn.Draggable,{draggableId:`array_field_${m}`,isDragDisabled:i,index:v,children:(S,B)=>n.jsx(Dt,{provided:S,internalId:m,index:v,size:a,disabled:i,buildEntry:l,remove:b,copy:p,isDragging:B.isDragging})},`array_field_${m}`)),k.placeholder,d&&n.jsx("div",{className:"p-4 justify-center text-left",children:n.jsx(te,{variant:a==="small"?"text":"outlined",size:a==="small"?"small":"medium",color:"primary",disabled:i,startIcon:n.jsx(hn,{}),onClick:I,children:t??"Add"})})]})})})}function Dt({provided:e,index:t,internalId:c,size:i,disabled:l,buildEntry:a,remove:s,copy:d,isDragging:u}){const[A,_]=nr(),g=i!=="small"&&_.height===0,y=i!=="small"&&_.height<100,[h,I]=f.useState(!1),b=f.useCallback(()=>I(!0),[]),p=f.useCallback(()=>I(!1),[]);return n.jsx("div",{onMouseEnter:b,onMouseMove:b,onMouseLeave:p,ref:e.innerRef,...e.draggableProps,style:e.draggableProps.style,className:`${u||h?ze:""} mb-1 rounded-md opacity-100`,children:n.jsxs("div",{className:"flex items-start",children:[n.jsx("div",{ref:A,className:"flex-grow w-[calc(100%-48px)] text-text-primary dark:text-text-primary-dark",children:a(t,c)}),n.jsx(la,{direction:i==="small"?"row":"column",disabled:l,remove:s,index:t,provided:e,measuring:g,contentOverflow:y,copy:d})]})})}function la({direction:e,disabled:t,remove:c,index:i,provided:l,copy:a,contentOverflow:s,measuring:d}){return n.jsxs("div",{className:`p-1 flex ${e==="row"?"flex-row-reverse":"flex-col"} items-center`,...l.dragHandleProps,children:[n.jsx(ye,{side:e==="column"?"left":void 0,title:"Move",children:n.jsx(ee,{size:"small",disabled:t,className:`cursor-${t?"inherit":"grab"}`,children:n.jsx("svg",{focusable:"false",fill:"currentColor","aria-hidden":"true",viewBox:"0 0 24 24",children:n.jsx("path",{d:"M20 9H4v2h16V9zM4 15h16v-2H4v2z"})})})}),!d&&!s&&n.jsxs(n.Fragment,{children:[n.jsx(ye,{title:"Remove",side:e==="column"?"left":void 0,children:n.jsx(ee,{size:"small","aria-label":"remove",disabled:t,onClick:()=>c(i),children:n.jsx(oo,{size:"small"})})}),n.jsx(ye,{side:e==="column"?"left":void 0,title:"Copy in this position",children:n.jsx(ee,{size:"small","aria-label":"copy",disabled:t,onClick:()=>a(i),children:n.jsx(Rn,{size:"small"})})})]}),!d&&s&&n.jsx(n.Fragment,{children:n.jsxs(Qn,{trigger:n.jsx(ee,{size:"small",children:n.jsx(vr,{size:"small"})}),children:[n.jsxs(ke,{dense:!0,onClick:()=>c(i),children:[n.jsx(oo,{size:"small"}),"Remove"]}),n.jsxs(ke,{dense:!0,onClick:()=>a(i),children:[n.jsx(Rn,{size:"small"}),"Copy"]})]})})]})}function rH(e,t,c){const i=Array.from(e),[l]=i.splice(t,1);return i.splice(c,0,l),i}function fo(){return Math.floor(Math.random()*Math.floor(Number.MAX_SAFE_INTEGER))}const tH="100vw",cH="55vw",sa="768px",jo="main_##Q$SC^#S6";function iH({path:e,entityId:t,selectedSubPath:c,copy:i,collection:l,onValuesAreModified:a,formWidth:s,onUpdate:d,onClose:u}){l.customId&&l.formAutoSave&&console.warn(`The collection ${l.path} has customId and formAutoSave enabled. This is not supported and formAutoSave will be ignored`);const[A,_]=f.useState(!1),[g,y]=f.useState(void 0);Do(g,()=>{g&&x({entityId:W?.id,collection:l,path:e,values:g,closeAfterSave:!1})},!1,2e3);const h=Qe(),I=Uo(),b=Cn(),p=cn(),w=re(),k=yn(),[K,m]=f.useState(void 0),[v,S]=f.useState(i?"copy":t?"existing":"new"),B=f.useRef(void 0),P=B.current,F=(l.subcollections??[]).filter(T=>!T.hideFromNavigation),D=F?.length??0,C=l.views,N=C?.length??0,M=l.formAutoSave&&!l.customId,H=N>0||D>0,Z=c??$r(l?l.defaultSelectedView:void 0,{status:v,entityId:t}),O=f.useRef(Z??jo),oe=O.current===jo,{entity:U,dataLoading:L,dataLoadingError:X}=sr({path:e,entityId:t,collection:l,useCache:!1}),[W,V]=f.useState(U),[Q,q]=f.useState(void 0);f.useEffect(()=>{U&&V(U)},[U]),f.useEffect(()=>{if(v==="new")q(!1);else{const T=W?ft(l,k,Xe(e),W??null):!1;W&&q(!T)}},[k,W,v]);const R=f.useCallback(T=>{_(!1),p.open({type:"error",message:"Error before saving: "+T?.message}),console.error(T)},[p]),$=f.useCallback(T=>{_(!1),p.open({type:"error",message:"Error after saving (entity is saved): "+T?.message}),console.error(T)},[p]),ne=(T,le)=>{_(!1),M||p.open({type:"success",message:`${l.singularName??l.name}: Saved correctly`}),V(T),S("existing"),a(!1),d&&d({entity:T}),le?(I.setBlocked(!1),I.close(!0),u?.()):v!=="existing"&&b.replace({path:e,entityId:T.id,selectedSubPath:O.current,updateUrl:!0,collection:l})},J=f.useCallback(T=>{_(!1),p.open({type:"error",message:"Error saving: "+T?.message}),console.error("Error saving entity",e,t),console.error(T)},[t,e,p]),x=({values:T,previousValues:le,closeAfterSave:he,entityId:Le,collection:mn,path:vn})=>{_(!0),dr({path:vn,entityId:Le,values:T,previousValues:le,collection:mn,status:v,dataSource:h,context:w,onSaveSuccess:z=>ne(z,he),onSaveFailure:J,onPreSaveHookError:R,onSaveSuccessHookError:$}).then()},ie=async({collection:T,path:le,entityId:he,values:Le,previousValues:mn,closeAfterSave:vn,autoSave:z})=>{v&&(z?y(Le):x({collection:T,path:le,entityId:he,values:Le,previousValues:mn,closeAfterSave:vn}))},Y=C&&C.map((T,le)=>{if(O.current!==T.key)return null;const he=T.Builder;return he?n.jsx("div",{className:E(ue,"relative flex-grow w-full h-full overflow-auto "),role:"tabpanel",children:n.jsx(se,{children:K&&n.jsx(he,{collection:l,entity:W,modifiedValues:P??W?.values,formContext:K})})},`custom_view_${T.key}`):(console.error("customView.Builder is not defined"),null)}).filter(Boolean),Be=L&&!W||(!W||Q===void 0)&&(v==="existing"||v==="copy"),Oe=Be||A,Ue=F&&F.map((T,le)=>{const he=T.alias??T.path,Le=W?`${e}/${W?.id}/${be(he)}`:void 0;return O.current!==he?null:n.jsxs("div",{className:"relative flex-grow h-full overflow-auto w-full",role:"tabpanel",children:[Oe&&n.jsx(uo,{}),!Be&&(W&&Le?n.jsx(St,{fullPath:Le,parentPathSegments:Xe(e),isSubCollection:!0,...T}):n.jsx("div",{className:"flex items-center justify-center w-full h-full p-3",children:n.jsx(j,{variant:"label",children:"You need to save your entity before adding additional collections"})}))]},`subcol_${he}`)}).filter(Boolean),zn=f.useCallback(()=>{a(!1)},[]),Ao=T=>{O.current=T,b.replace({path:e,entityId:t,selectedSubPath:T===jo?void 0:T,updateUrl:!0,collection:l})},kn=f.useCallback(T=>{B.current=T},[]),Hn=f.useCallback(T=>{p.open({type:"error",message:"Error updating id, check the console"})},[]),_o=f.useCallback(T=>{V(le=>le?{...le,id:T}:void 0)},[]),rn=T=>{M||a(T)};function yo(){const T=w.plugins;let le=n.jsx(Pi,{status:v,path:e,collection:l,onEntitySaveRequested:ie,onDiscard:zn,onValuesChanged:kn,onModified:rn,entity:W,onIdChange:_o,onFormContextChange:m,hideId:l.hideIdFromForm,autoSave:M,onIdUpdateError:Hn});return T&&T.forEach(he=>{he.form?.provider&&(le=n.jsx(he.form.provider.Component,{status:v,path:e,collection:l,onDiscard:zn,onValuesChanged:kn,onModified:rn,entity:W,context:w,formContext:K,...he.form.provider.props,children:le}))}),n.jsx(se,{children:le})}const G=Q===void 0?n.jsx(n.Fragment,{}):Q?n.jsxs(n.Fragment,{children:[n.jsx(j,{className:"mt-16 mb-8 mx-8",variant:"h4",children:l.singularName??l.name}),n.jsx(yt,{className:"px-12",entity:W,path:e,collection:l})]}):yo(),_e=F&&F.map(T=>n.jsx(xo,{className:"text-sm min-w-[140px]",value:T.path,children:T.name},`entity_detail_collection_tab_${T.name}`)),ae=C&&C.map(T=>n.jsx(xo,{className:"text-sm min-w-[140px]",value:T.key,children:T.name},`entity_detail_collection_tab_${T.name}`));return n.jsx("div",{className:"flex flex-col h-full w-full transition-width duration-250 ease-in-out",children:n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:E(ue,"no-scrollbar border-b pl-2 pr-2 pt-1 flex items-end overflow-scroll bg-gray-50 dark:bg-gray-950"),children:[n.jsx("div",{className:"pb-1 self-center",children:n.jsx(ee,{onClick:()=>(u?.(),I.close(!1)),size:"large",children:n.jsx(pr,{})})}),n.jsx("div",{className:"flex-grow"}),Be&&n.jsx("div",{className:"self-center",children:n.jsx(Gn,{size:"small"})}),n.jsxs(ga,{value:O.current,onValueChange:T=>{Ao(T)},className:"pl-4 pr-4 pt-0",children:[n.jsx(xo,{disabled:!H,value:jo,className:`${H?"":"hidden"} text-sm min-w-[140px]`,children:l.singularName??l.name}),ae,_e]})]}),n.jsxs("div",{className:"flex-grow h-full flex overflow-auto flex-row w-full ",style:{},children:[n.jsx("div",{role:"tabpanel",hidden:!oe,id:`form_${e}`,className:" w-full",children:Be?n.jsx(uo,{}):G}),Y,Ue]})]})})}function aH(e){const{blocked:t,setBlocked:c,setBlockedNavigationMessage:i}=Uo(),l=Ae(),a=f.useMemo(()=>{if(!e)return;let d=e.collection;if(!d&&(d=l.getCollection(e.path,e.entityId),!d))throw console.error("ERROR: No collection found in path `",e.path,"`. Entity id: ",e.entityId),Error("ERROR: No collection found in path `"+e.path+"`. Make sure you have defined a collection for this path in the root navigation.");return d},[l,e]);f.useEffect(()=>{function d(u){t&&a&&(u.preventDefault(),u.returnValue=`You have unsaved changes in this ${a.name}. Are you sure you want to leave this page?`)}return typeof window<"u"&&window.addEventListener("beforeunload",d),()=>{typeof window<"u"&&window.removeEventListener("beforeunload",d)}},[t,a]);const s=f.useCallback(d=>{c(d),i(d?n.jsxs(n.Fragment,{children:[" You have unsaved changes in this ",n.jsx("b",{children:a?.singularName??a?.name}),"."]}):void 0)},[a?.name,c,i]);return!e||!a?n.jsx("div",{className:"w-full"}):n.jsx(n.Fragment,{children:n.jsx(se,{children:n.jsx(iH,{...e,formWidth:e.width,collection:a,onValuesAreModified:s})})})}const da="new";function lH(e,t){if(t)return tH;const c=!e.selectedSubPath,i=typeof e.width=="number"?`${e.width}px`:e.width;return c?i??sa:`calc(${cH} + ${i??sa})`}const sH=(e,t)=>{const c=Ie.useLocation(),i=f.useRef(!1),l=!Ge();f.useEffect(()=>{if(!e.loading&&!i.current){if(e.isUrlCollectionPath(c.pathname)){const u=c.hash===`#${da}`,A=e.urlPathToDataPath(c.pathname),_=dH(A,e.collections,u);t.replace(_.map(g=>Nt(g,e,l)))}i.current=!0}},[c,e,t,l]);const a=f.useCallback(()=>{t.close()},[t]),s=f.useCallback(u=>{if(u.copy&&!u.entityId)throw Error("If you want to copy an entity you need to provide an entityId");const A=$r(u.collection?u.collection.defaultSelectedView:void 0,{status:u.copy?"copy":u.entityId?"existing":"new",entityId:u.entityId});t.open(Nt({selectedSubPath:A,...u},e,l))},[t,e,l]),d=f.useCallback(u=>{if(u.copy&&!u.entityId)throw Error("If you want to copy an entity you need to provide an entityId");t.replace(Nt(u,e,l))},[e,t,l]);return{close:a,open:s,replace:d}};function dH(e,t,c){const i=cr({path:e,collections:t}),l=[];let a="";for(let s=0;s<i.length;s++){const d=i[s];if(d.type==="collection"&&(a=d.path),s>0){const u=i[s-1];if(d.type==="entity")l.push({path:d.path,entityId:d.entityId,copy:!1});else if(d.type==="custom_view"){if(u.type==="entity"){const A=l[l.length-1];A&&(A.selectedSubPath=d.view.key)}}else if(d.type==="collection"&&u.type==="entity"){const A=l[l.length-1];A&&(A.selectedSubPath=d.collection.alias??d.collection.path)}}}return c&&l.push({path:a,copy:!1}),l}const Nt=(e,t,c)=>{const i=be(e.path),l=e.entityId?t.buildUrlCollectionPath(`${i}/${e.entityId}/${e.selectedSubPath||""}`):t.buildUrlCollectionPath(`${i}#${da}`);return{key:`${e.path}/${e.entityId}`,component:n.jsx(aH,{...e}),urlPath:l,parentUrlPath:t.buildUrlCollectionPath(i),width:lH(e,c),onClose:e.onClose}};function ua(e){const{path:t,collections:c=[],currentFullPath:i}=e,l=be(t).split("/"),a=bo(l),s=[];for(let d=0;d<a.length;d++){const u=a[d],A=c&&c.find(_=>_.alias===u||_.path===u);if(A){const _=A.alias??A.path,g=i&&i.length>0?i+"/"+_:_,y=be(be(t).replace(u,"")),h=y.length>0?y.split("/"):[];if(h.length>0){const I=h[0],b=g+"/"+I;if(s.push(new Je(I,g)),h.length>1){const p=h.slice(1).join("/");if(!A)throw Error("collection not found resolving path: "+A);A.subcollections&&s.push(...ua({path:p,collections:A.subcollections,currentFullPath:b}))}}break}}return s}function uH({basePath:e,baseCollectionPath:t,authController:c,collections:i,views:l,userConfigPersistence:a,plugins:s,dataSource:d}){const u=Ie.useLocation(),[A,_]=f.useState(),[g,y]=f.useState(),[h,I]=f.useState(!1),[b,p]=f.useState(void 0),[w,k]=f.useState(!0),[K,m]=f.useState(void 0),v=be(e),S=be(t),B=v?`/${v}`:"/",P=v?`/${v}/${S}`:`/${S}`,F=f.useCallback(V=>v?`/${v}/${qo(V)}`:`/${qo(V)}`,[v]),D=f.useCallback(V=>`${be(t)}/${qo(V)}`,[t]),C=f.useCallback((V,Q)=>{const q=[...(V??[]).map($=>$.hideFromNavigation?void 0:{url:D($.alias??$.path),type:"collection",name:$.name.trim(),path:$.alias??$.path,collection:$,description:$.description?.trim(),group:$.group?.trim()}).filter(Boolean),...(Q??[]).map($=>$.hideFromNavigation?void 0:{url:F(Array.isArray($.path)?$.path[0]:$.path),name:$.name.trim(),type:"view",view:$,description:$.description?.trim(),group:$.group?.trim()}).filter(Boolean)],R=Object.values(q).map($=>$.group).filter(Boolean).filter(($,ne,J)=>J.indexOf($)===ne);return{navigationEntries:q,groups:R}},[F,D]),N=f.useCallback(async()=>{if(!c.initialLoading){try{const[V=[],Q=[]]=await Promise.all([fH(i,c,d,s),AH(l,c,d)]);_(V),y(Q),p(C(V??[],Q))}catch(V){console.error(V),m(V)}k(!1),I(!0)}},[i,c.user,c.initialLoading,d,s,l,C]);f.useEffect(()=>{N()},[N]);const M=f.useCallback((V,Q,q=!1)=>{if(!A)return;const R=Io(be(V),A),$=q?a?.getCollectionConfig(V):void 0,ne=R?Ze(R,$):void 0;let J=ne;if(ne){const x=ne.subcollections,ie=ne.callbacks,Y=ne.permissions;J={...J,subcollections:J?.subcollections??x,callbacks:J?.callbacks??ie,permissions:J?.permissions??Y}}if(J)return{...ne,...J}},[e,t,A]),H=f.useCallback(V=>{let Q=A;if(!Q)throw Error("Collections have not been initialised yet");for(let q=0;q<V.length;q++){const R=V[q],$=Q.find(ne=>ne.alias===R||ne.path===R);if(!$)return;if(Q=$.subcollections,q===V.length-1)return $}},[A]),Z=f.useCallback(V=>be(V+"/").startsWith(be(P)+"/"),[P]),O=f.useCallback(V=>{if(V.startsWith(P))return V.replace(P,"");throw Error("Expected path starting with "+P)},[P]),oe=f.useCallback(({path:V})=>`s/edit/${qo(V)}`,[]),U=f.useCallback(V=>{if(!A)throw Error("Collections have not been initialised yet");return tr(V,A)},[A]),L=u.state,X=L&&L.base_location?L.base_location:u,W=f.useCallback(V=>ua({path:V,collections:A}),[A]);return f.useMemo(()=>({collections:A??[],views:g??[],loading:!h||w,navigationLoadingError:K,homeUrl:B,basePath:e,baseCollectionPath:t,initialised:h,getCollection:M,getCollectionFromPaths:H,isUrlCollectionPath:Z,urlPathToDataPath:O,buildUrlCollectionPath:D,buildUrlEditCollectionPath:oe,buildCMSUrlPath:F,resolveAliasesFrom:U,topLevelNavigation:b,baseLocation:X,refreshNavigation:N,getParentReferencesFromPath:W}),[t,X,e,F,D,oe,A,W,M,H,B,h,Z,w,K,N,U,b,O,g])}function qo(e){return encodeURIComponent(be(e)).replaceAll("%2F","/").replaceAll("%23","#")}function fa(e,t){return e.filter(c=>c.permissions?so(c,t,[c.path],null).read!==!1:!0).map(c=>c.subcollections?{...c,subcollections:fa(c.subcollections,t)}:c)}async function fH(e,t,c,i){let l=[];return typeof e=="function"?l=await e({user:t.user,authController:t,dataSource:c}):Array.isArray(e)&&(l=e),l=fa(l,t),i&&i.forEach(a=>{a.collections?.injectCollections&&(l=a.collections?.injectCollections(l??[]))}),l}async function AH(e,t,c){let i=[];return typeof e=="function"?i=await e({user:t.user,authController:t,dataSource:c}):Array.isArray(e)&&(i=e),i}function _H(){const e=Ie.useLocation(),t=Ie.useNavigate(),[c,i]=f.useState([]),l=f.useRef(c),a=f.useRef({}),s=f.useRef(0),d=g=>{l.current=g,i(g)};f.useEffect(()=>{const h=(e.state?.panels??[]).map(I=>a.current[I]).filter(I=>!!I);de(l.current.map(I=>I.key),h.map(I=>I.key))||d(h)},[e]);const u=f.useCallback(()=>{if(c.length===0)return;const g=c[c.length-1],y=[...c.slice(0,-1)];if(d(y),s.current>0)g.urlPath&&t(-1),s.current--;else if(g.parentUrlPath){const h=e.state?.base_location??e;t(g.parentUrlPath,{replace:!0,state:{base_location:h,panels:y.map(I=>I.key)}})}},[c,t,e]),A=f.useCallback(g=>{const y=Array.isArray(g)?g:[g];y.forEach(b=>{a.current[b.key]=b}),s.current=s.current+y.length;const h=e.state?.base_location??e,I=[...c,...y];d(I),y.forEach(b=>{b.urlPath&&t(b.urlPath,{state:{base_location:h,panels:I.map(p=>p.key)}})})},[e,t,c]),_=f.useCallback(g=>{const y=Array.isArray(g)?g:[g];y.forEach(b=>{a.current[b.key]=b});const h=e.state?.base_location??e,I=[...c.slice(0,-y.length),...y];d(I),y.forEach(b=>{b.urlPath&&t(b.urlPath,{replace:!0,state:{base_location:h,panels:I.map(p=>p.key)}})})},[e,t,c]);return{sidePanels:c,close:u,open:A,replace:_}}function yH(e){f.useEffect(()=>{if(!e)return;const t=Ut[e];t&&(Ro.registerLocale(e,t),Ro.setDefaultLocale(e))},[e])}const hH="/",gH="/c";function IH(e){const t=ur(),{children:c,collections:i,views:l,entityLinkBuilder:a,userConfigPersistence:s,dateTimeFormat:d,locale:u,authController:A,storageSource:_,dataSource:g,basePath:y=hH,baseCollectionPath:h=gH,plugins:I,onAnalyticsEvent:b,fields:p}=e;yH(u);const w=uH({basePath:y,baseCollectionPath:h,authController:A,collections:i,views:l,userConfigPersistence:s,dataSource:g,plugins:I}),k=_H(),K=sH(w,k),m=A.initialLoading||w.loading||(I?.some(S=>S.loading)??!1);if(w.navigationLoadingError)return n.jsx(Lt,{maxWidth:"md",fullScreen:!0,children:n.jsx(pe,{title:"Error loading navigation",error:w.navigationLoadingError})});if(A.authError)return n.jsx(Lt,{maxWidth:"md",fullScreen:!0,children:n.jsx(pe,{title:"Error loading auth",error:A.authError})});const v={entityLinkBuilder:a,dateTimeFormat:d,locale:u,plugins:I,onAnalyticsEvent:b,fields:p??{}};return n.jsx(rr.Provider,{value:t,children:n.jsx(ar.Provider,{value:v,children:n.jsx(Rt.Provider,{value:s,children:n.jsx(xt.Provider,{value:_,children:n.jsx(qt.Provider,{value:g,children:n.jsx(ir.Provider,{value:A,children:n.jsx(Zt.Provider,{value:k,children:n.jsx(Xt.Provider,{value:K,children:n.jsx(Jt.Provider,{value:w,children:n.jsx(Va,{children:n.jsx(bH,{loading:m,children:c})})})})})})})})})})})}function bH({loading:e,children:t}){const c=re();let i=t({context:c,loading:e});const l=c.plugins;return!e&&l&&l.forEach(a=>{a.provider&&(i=n.jsx(a.provider.Component,{...a.provider.props,context:c,children:i}))}),n.jsx(n.Fragment,{children:i})}function Aa({hovered:e,drawerOpen:t,closeDrawer:c}){const i=re(),l=Ae(),a=e&&!t,s=Ge();if(!l.topLevelNavigation)throw Error("Navigation not ready in Drawer");const{navigationEntries:d,groups:u}=l.topLevelNavigation,A=Object.values(d).filter(y=>!y.group),_=f.useCallback(y=>t?n.jsx("div",{className:"pt-8 pl-6 pr-8 pb-2 flex flex-row items-center",children:n.jsx(j,{variant:"caption",color:"secondary",className:"font-medium flex-grow",children:y?y.toUpperCase():"Views".toUpperCase()})}):n.jsx("div",{className:"h-4"}),[t]),g=y=>{const h=y.type==="collection"?"drawer_navigate_to_collection":y.type==="view"?"drawer_navigate_to_view":"unmapped_event";i.onAnalyticsEvent?.(h,{url:y.url}),s||c()};return n.jsxs("div",{className:"flex-grow overflow-scroll no-scrollbar",children:[u.map(y=>n.jsxs(f.Fragment,{children:[_(y),Object.values(d).filter(h=>h.group===y).map((h,I)=>n.jsx(Mt,{icon:Wo(h.collection??h.view),tooltipsOpen:a,drawerOpen:t,onClick:()=>g(h),url:h.url,name:h.name},`navigation_${I}`))]},`drawer_group_${y}`)),A.length>0&&_(),A.map((y,h)=>n.jsx(Mt,{icon:Wo(y.collection??y.view),tooltipsOpen:a,onClick:()=>g(y),drawerOpen:t,url:y.url,name:y.name},`navigation_${h}`))]})}function Mt({name:e,icon:t,drawerOpen:c,tooltipsOpen:i,url:l,onClick:a}){const s=n.jsx("div",{className:"text-gray-600 dark:text-gray-500",children:t}),d=n.jsxs(Ie.NavLink,{onClick:a,className:({isActive:u})=>E("rounded-r-xl truncate","hover:bg-gray-200 hover:bg-opacity-75 dark:hover:bg-gray-700 dark:hover:bg-opacity-75 text-gray-800 dark:text-gray-200 hover:text-gray-900 hover:dark:text-gray-100","flex flex-row items-center w-full mr-8",c?"pl-8 h-12":"pl-6 h-11","font-medium text-sm",u?"bg-gray-100 dark:bg-gray-800":""),to:l,children:[s,n.jsx("div",{className:E(c?"opacity-100":"opacity-0 hidden","ml-4 font-inherit text-inherit"),children:e.toUpperCase()})]});return c?d:n.jsx(ye,{open:i,side:"right",title:e,children:d})}const pH=280,wH=f.memo(function(t){const{children:c,name:i,logo:l,includeDrawer:a=!0,autoOpenDrawer:s,Drawer:d=Aa,drawerProps:u,FireCMSAppBarComponent:A=aa,fireCMSAppBarComponentProps:_}=t,g=Ge(),y=Ae(),[h,I]=f.useState(!1),[b,p]=f.useState(!1),w=f.useCallback(()=>p(!0),[]),k=f.useCallback(()=>p(!1),[]),K=f.useCallback(()=>{I(!1)},[]),m=h||!!(g&&s&&b);return n.jsxs("div",{className:"flex h-screen w-screen bg-gray-50 dark:bg-gray-900 text-gray-900 dark:text-white overflow-hidden",style:{paddingTop:"env(safe-area-inset-top)",paddingLeft:"env(safe-area-inset-left)",paddingRight:"env(safe-area-inset-right)",paddingBottom:"env(safe-area-inset-bottom)",height:"100dvh"},children:[n.jsx(A,{title:i,includeDrawer:a,drawerOpen:m,..._}),n.jsx(mH,{displayed:a,onMouseEnter:w,onMouseMove:w,onMouseLeave:k,open:m,logo:l,hovered:b,setDrawerOpen:I,children:a&&(y.loading?n.jsx(uo,{}):n.jsx(d,{hovered:b,drawerOpen:m,closeDrawer:K,...u}))}),n.jsxs("main",{className:"flex flex-col flex-grow overflow-auto",children:[n.jsx(kH,{}),n.jsx("div",{className:E(ue,"flex-grow overflow-auto lg:m-0 lg:mx-4 lg:mb-4 lg:rounded-lg lg:border lg:border-solid m-0 mt-1"),children:n.jsx(se,{children:c})})]})]})},de),kH=()=>n.jsx("div",{className:"flex flex-col min-h-[68px]"});function mH(e){const t=Ae(),c=e.displayed?e.open?pH:72:0,i=n.jsxs("div",{className:"relative h-full no-scrollbar overflow-y-auto overflow-x-hidden",style:{width:c,transition:"left 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms, opacity 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms, width 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms"},children:[!e.open&&e.displayed&&n.jsx(ye,{title:"Open menu",side:"right",sideOffset:12,className:"fixed top-2 left-3 !bg-gray-50 dark:!bg-gray-900 rounded-full w-fit",children:n.jsx(ee,{color:"inherit","aria-label":"Open menu",className:"sticky top-2 left-3 ",onClick:()=>e.setDrawerOpen(!0),size:"large",children:n.jsx(mr,{})})}),n.jsxs("div",{className:"flex flex-col h-full",children:[n.jsx("div",{style:{transition:"padding 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms",padding:e.open?"32px 96px 0px 24px":"72px 16px 0px"},className:E("cursor-pointer"),children:n.jsx(ye,{title:"Home",sideOffset:20,side:"right",children:n.jsx(Ie.Link,{to:t.basePath,children:e.logo?n.jsx("img",{src:e.logo,alt:"Logo",className:"max-w-full max-h-full"}):n.jsx(ia,{})})})}),e.children]})]});return Ge()?n.jsxs("div",{className:"relative",onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseLeave:e.onMouseLeave,style:{width:c,transition:"left 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms, opacity 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms, width 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms"},children:[i,n.jsx("div",{className:`absolute right-0 top-4 ${e.open?"opacity-100":"opacity-0 invisible"} transition-opacity duration-1000 ease-in-out`,children:n.jsx(ee,{"aria-label":"Close drawer",onClick:()=>e.setDrawerOpen(!1),children:n.jsx(yc,{})})})]}):e.displayed?n.jsxs(n.Fragment,{children:[n.jsx(ee,{color:"inherit","aria-label":"Open drawer",onClick:()=>e.setDrawerOpen(!0),size:"large",className:"absolute top-2 left-6",children:n.jsx(mr,{})}),n.jsx(Vt,{side:"left",transparent:!0,open:e.open,onOpenChange:e.setDrawerOpen,children:i})]}):null}const vH=f.memo(function({HomePage:t=ta,customRoutes:c}){const i=Ie.useLocation(),l=Ae();if(!l)return n.jsx(n.Fragment,{});const a=i.state,s=a&&a.base_location?a.base_location:i,d=[];l.views&&l.views.forEach(y=>{Array.isArray(y.path)?d.push(...y.path.map(h=>_a(h,y))):d.push(_a(y.path,y))});const A=[...l.collections??[]].sort((y,h)=>h.path.length-y.path.length).map(y=>{const h=l.buildUrlCollectionPath(y.alias??y.path);return n.jsx(Ie.Route,{path:h+"/*",element:n.jsx(Jo,{path:h,title:y.name,type:"collection",children:n.jsx(St,{isSubCollection:!1,parentPathSegments:[],fullPath:y.alias??y.path,...y,Actions:Yo(y.Actions)},`collection_view_${y.alias??y.path}`)})},`navigation_${y.alias??y.path}`)}),_=n.jsx(Ie.Route,{path:"/",element:n.jsx(Jo,{path:l.homeUrl,title:"Home",type:"home",children:n.jsx(t,{})},"navigation_home")}),g=n.jsx(Ie.Route,{path:"*",element:n.jsx(ca,{})});return n.jsxs(Ie.Routes,{location:s,children:[A,d,_,g,c]})}),_a=(e,t)=>n.jsx(Ie.Route,{path:e,element:n.jsx(Jo,{path:e,title:t.name,type:"view",children:t.view},`navigation_${e}`)},"navigation_view_"+e),Jo=f.memo(function({children:t,title:c,path:i,type:l}){const a=fr();return f.useEffect(()=>{a.set({breadcrumbs:[{title:c,url:i}]})},[i,c]),n.jsx(n.Fragment,{children:t})},de);function KH(e){return e}function CH(e){return e}function SH(e){return e}function BH(e){return e}function EH(e){return e}function FH(e){return e}function PH(e){return e}function DH(e){return e}function NH(e){return e}function MH(){const e=typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)"),c=(localStorage.getItem("prefers-dark-mode")!=null?localStorage.getItem("prefers-dark-mode")==="true":null)??e,[i,l]=f.useState(c?"dark":"light");f.useEffect(()=>{l(c?"dark":"light"),d(c?"dark":"light")},[c]);const a=f.useCallback(()=>{l("dark"),d("dark")},[e]),s=f.useCallback(()=>{l("light"),d("light")},[]),d=A=>{document.body.style.setProperty("color-scheme",A),document.documentElement.dataset.theme=A},u=f.useCallback(()=>{i==="light"?(e?localStorage.removeItem("prefers-dark-mode"):localStorage.setItem("prefers-dark-mode","true"),a()):(e?localStorage.setItem("prefers-dark-mode","false"):localStorage.removeItem("prefers-dark-mode"),s())},[i,e]);return{mode:i,setMode:l,toggleMode:u}}function TH(){const[e,t]=f.useState({}),c=f.useCallback(I=>{const b=localStorage.getItem(I);return b?JSON.parse(b):{}},[]),i=f.useCallback(I=>{const b=`collection_config::${jr(I)}`;return e[b]?e[b]:c(b)},[e,c]),l=f.useCallback((I,b)=>{const p=`collection_config::${jr(I)}`;localStorage.setItem(p,JSON.stringify(b)),t(w=>{const k=w[p],K=Ze(k??c(I),b);return Ze(w,K)})},[c]),[a,s]=f.useState([]),[d,u]=f.useState([]),[A,_]=f.useState([]);f.useEffect(()=>{s(localStorage.getItem("recently_visited_paths")?JSON.parse(localStorage.getItem("recently_visited_paths")):[]),u(localStorage.getItem("favourite_paths")?JSON.parse(localStorage.getItem("favourite_paths")):[]),_(localStorage.getItem("collapsed_groups")?JSON.parse(localStorage.getItem("collapsed_groups")):[])},[]);const g=f.useCallback(I=>{localStorage.setItem("recently_visited_paths",JSON.stringify(I)),s(I)},[]),y=f.useCallback(I=>{localStorage.setItem("favourite_paths",JSON.stringify(I)),u(I)},[]),h=f.useCallback(I=>{localStorage.setItem("collapsed_groups",JSON.stringify(I)),_(I)},[]);return{onCollectionModified:l,getCollectionConfig:i,recentlyVisitedPaths:a,setRecentlyVisitedPaths:g,favouritePaths:d,setFavouritePaths:y,collapsedGroups:A,setCollapsedGroups:h}}const OH=({children:e})=>n.jsx(Wt.SnackbarProvider,{maxSnack:3,autoHideDuration:3500,children:e}),LH=({ref:e})=>{const[t,c]=f.useState(!1),[i,l]=f.useState(!1);return f.useEffect(()=>{e.current&&(e.current.onfocus=()=>{c(!0),l(!0)},e.current.onblur=()=>{l(!1)})},[e]),{inputFocused:i,autoCompleteOpen:t,setAutoCompleteOpen:c}};function QH({children:e,open:t,setOpen:c}){const i=f.useRef(null);return Mo(i,()=>c(!1)),n.jsx(To,{in:t,duration:50,className:E("absolute top-full left-0 right-0 overflow-visible",t?"shadow":"","my-2","z-20","w-full"),children:n.jsx("div",{ref:i,className:E(t?He:"","bg-gray-50 dark:bg-gray-900 py-2"),children:e})})}function VH({children:e,onClick:t}){return n.jsx("div",{className:"flex w-full items-center pr-6 pl-14 h-[48px] cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800",onClick:t,children:e})}const WH=e=>{switch(e){case"error":return"bg-red-50 dark:bg-red-800 dark:text-red-100 text-red-900";case"warning":return"bg-amber-50 dark:bg-amber-800 dark:text-amber-100 text-amber-900";case"info":return"bg-blue-50 dark:bg-blue-800 dark:text-blue-100 text-blue-900";case"success":return"bg-emerald-50 dark:bg-emerald-800 dark:text-emerald-100 text-emerald-900";default:return"bg-blue-50 dark:bg-blue-800 dark:text-blue-100 text-blue-900"}},GH=({children:e,onDismiss:t,color:c="info",action:i,className:l,style:a})=>{const s=WH(c);return n.jsxs("div",{style:a,className:E("px-4 py-2 rounded-md flex items-center gap-2",s,l),children:[n.jsx("span",{className:"flex-grow",children:e}),t&&n.jsx("button",{className:"text-gray-400 hover:text-gray-600 dark:text-gray-500 dark:hover:text-gray-400",onClick:t,children:"×"}),i]})},zH=({src:e,alt:t,children:c,className:i,...l},a)=>n.jsx("button",{ref:a,...l,className:E("rounded-full flex items-center justify-center overflow-hidden",ge,"p-1 hover:bg-gray-200 hover:dark:bg-gray-700",i),children:e?n.jsx("img",{className:"object-cover rounded-full w-10 h-10 bg-gray-100 dark:bg-gray-800",src:e,alt:t}):n.jsx("span",{className:"py-1.5 text-lg font-medium text-gray-900 dark:text-white rounded-full w-10 h-10 bg-gray-100 dark:bg-gray-800",children:c})}),Tt=f.forwardRef(zH);function ya({children:e,style:t,onClick:c,className:i}){const l=f.useCallback(a=>{(a.key==="Enter"||a.key===" ")&&c?.()},[c]);return n.jsx("div",{onKeyPress:l,role:c?"button":void 0,tabIndex:c?0:void 0,onClick:c,className:E(cc,c&&ge,c&&ic,i),style:t,children:e})}const HH={xs:"max-w-xs",sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl","2xl":"max-w-2xl","3xl":"max-w-3xl","4xl":"max-w-4xl","5xl":"max-w-5xl","6xl":"max-w-6xl","7xl":"max-w-7xl"},UH=({children:e,className:t,style:c,maxWidth:i="7xl"},l)=>{const a=i?HH[i]:"";return n.jsx("div",{ref:l,className:E("mx-auto px-3 md:px-4 lg-px-6",a,t),style:c,children:e})},Ot=f.forwardRef(UH);function Lt({children:e,maxWidth:t,fullScreen:c=!1,className:i}){return n.jsx("div",{className:"flex flex-col flex-grow h-full",children:n.jsx(Ot,{className:E("m-auto",i),maxWidth:t,children:e})})}function Gn({size:e="medium",className:t}){let c="";e==="small"?c="w-4 h-4 m-1":e==="medium"?c="w-8 h-8 m-1":c="w-10 h-10 m-1";let i="";return e==="small"?i="border-[3px]":e==="medium"?i="border-4":i="border-[6px]",n.jsx("div",{className:E(c,i,"inline-block animate-spin rounded-full border-solid border-current border-r-transparent align-[-0.125em] motion-reduce:animate-[spin_1.5s_linear_infinite]","text-blue-600 dark:text-blue-400",t),role:"status",children:n.jsx("span",{className:"!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]",children:"Loading..."})})}const YH={xs:"max-w-xs min-w-xs w-xs",sm:"max-w-sm min-w-sm w-sm",md:"max-w-md min-w-md w-md",lg:"max-w-lg min-w-lg w-lg",xl:"max-w-xl min-w-xl w-xl","2xl":"max-w-2xl min-w-2xl w-2xl","3xl":"max-w-3xl min-w-3xl w-3xl","4xl":"max-w-4xl min-w-4xl w-4xl","5xl":"max-w-5xl min-w-5xl w-5xl","6xl":"max-w-6xl min-w-6xl w-6xl","7xl":"max-w-7xl min-w-7xl w-7xl",full:"max-w-full min-w-full w-full"},Zo=({open:e,onOpenChange:t,children:c,className:i,fullWidth:l=!0,fullHeight:a,fullScreen:s,scrollable:d=!0,maxWidth:u="lg"})=>{const[A,_]=f.useState(!1);return f.useEffect(()=>{if(e)return _(!0),()=>{};{const g=setTimeout(()=>{_(!1)},250);return()=>clearTimeout(g)}},[e]),n.jsx($e.Root,{open:A||e,onOpenChange:t,children:n.jsx($e.Portal,{children:n.jsxs("div",{className:"fixed inset-0 z-40",children:[n.jsx($e.Overlay,{className:E("fixed inset-0 transition-opacity z-20 ease-in-out duration-200 bg-black bg-opacity-50 dark:bg-opacity-60 backdrop-blur-sm ",A&&e?"opacity-100":"opacity-0","z-20 fixed top-0 left-0 w-full h-full flex justify-center items-center"),style:{pointerEvents:A?"auto":"none"}}),n.jsx($e.Content,{className:E("h-full outline-none flex justify-center items-center z-50 opacity-100 transition-all duration-200 ease-in-out"),children:n.jsx("div",{className:E(He,"z-30","relative","outline-none focus:outline-none",l&&!s?"w-11/12":void 0,a&&!s?"h-full":void 0,"text-gray-900 dark:text-white","justify-center items-center",s?"h-screen w-screen":"max-h-[90vh] shadow-xl","ease-in-out duration-200",d&&"overflow-y-auto",A&&e?"opacity-100":"opacity-0",u&&!s?YH[u]:void 0,i),children:c})})]})})})};function wn({children:e,position:t="sticky",translucent:c=!0,className:i}){return n.jsx("div",{className:E(ue,"py-3 px-4 border-t flex flex-row items-center justify-end bottom-0 right-0 left-0 text-right z-2 gap-2",t,"bg-white bg-opacity-60 dark:bg-gray-900 dark:bg-opacity-60",c?"backdrop-blur-sm":"",i),children:e})}function Xo({children:e,className:t,fullHeight:c}){return c?n.jsx("div",{className:"flex-grow flex flex-col h-full relative",children:e}):n.jsx("div",{className:E("py-6 px-6 h-full flex-grow",t),children:e})}function $H({accept:e,onFilesAdded:t,onFilesRejected:c,maxSize:i,disabled:l,maxFiles:a,title:s,uploadDescription:d="Drag and drop a file here or click",children:u,preventDropOnDocument:A=!0,size:_}){const{getRootProps:g,getInputProps:y,isDragActive:h,isDragAccept:I,isDragReject:b}=er.useDropzone({accept:e,noDragEventsBubbling:!0,maxSize:i,onDrop:t,onDropRejected:c,disabled:l,maxFiles:a,preventDropOnDocument:A});return n.jsxs("div",{...g(),className:E(qe,ze,ge,"flex gap-2","p-4 box-border relative items-center border-2 border-solid border-transparent outline-none rounded-md duration-200 ease-[cubic-bezier(0.4,0,0.2,1)] focus:border-primary-solid",{"h-44":_==="medium","h-28":_==="small","cursor-pointer":!l,"hover:bg-field-hover dark:hover:bg-field-hover-dark":!h,"transition-colors duration-200 ease-[cubic-bezier(0,0,0.2,1)] border-red-500":b,"transition-colors duration-200 ease-[cubic-bezier(0,0,0.2,1)] border-green-500":I}),children:[n.jsx(j,{variant:"caption",color:"secondary",className:"absolute top-2 left-3.5 cursor-inherit",children:s}),n.jsx("input",{...y()}),u,n.jsx("div",{className:"flex-grow h-28 box-border flex flex-col items-center justify-center text-center",children:n.jsx(j,{align:"center",variant:"label",children:d})})]})}function ha({children:e,loading:t,disabled:c,onClick:i,startIcon:l,...a}){return n.jsxs(te,{disabled:t||c,onClick:i,component:a.component,...a,children:[t&&n.jsx(Gn,{size:"small"}),!t&&l,e]})}function jH({children:e,style:t,className:c}){return n.jsx("div",{className:E(He,c),style:t,children:e})}function xe({inputRef:e,open:t,name:c,id:i,onOpenChange:l,value:a,onChange:s,onValueChange:d,onMultiValueChange:u,className:A,inputClassName:_,placeholder:g,renderValue:y,renderValues:h,label:I,size:b="medium",includeFocusOutline:p=!0,error:w,disabled:k,padding:K=!0,position:m="item-aligned",endAdornment:v,multiple:S,invisible:B,children:P,...F}){const[D,C]=f.useState(!1);f.useEffect(()=>{C(t??!1)},[t]);const N=f.useCallback(M=>{S?Array.isArray(a)&&a.includes(M)?u?.(a.filter(H=>H!==M)):u?.([...a??[],M]):d?.(M),!S&&s&&s({target:{name:c,value:M}})},[S,s,a,u,d]);return n.jsxs(je.Root,{name:c,value:Array.isArray(a)?void 0:a,defaultOpen:t,open:D,disabled:k,onValueChange:N,onOpenChange:M=>{l?.(M),C(M)},...F,children:[typeof I=="string"?n.jsx(di,{error:w,children:I}):I,n.jsxs("div",{className:E(b==="small"?"min-h-[42px]":"min-h-[64px]","select-none rounded-md text-sm",B?yr:qe,k?en:ze,"relative flex items-center",A),children:[n.jsxs(je.Trigger,{ref:e,id:i,className:E("w-full h-full",b==="small"?"h-[42px]":"h-[64px]",K?"px-4 ":"","outlin e-none focus:outline-none","select-none rounded-md text-sm",w?"text-red-500 dark:text-red-600":"focus:text-text-primary dark:focus:text-text-primary-dark",w?"border border-red-500 dark:border-red-600":"",k?"text-gray-600 dark:text-gray-400":"text-gray-800 dark:text-gray-200","relative flex items-center",p?ge:"",_),children:[n.jsx(je.Value,{asChild:!0,children:n.jsxs("div",{className:E("flex-grow w-full max-w-full flex flex-row gap-2 items-center","overflow-visible",b==="small"?"h-[42px]":"h-[64px]"),children:[y&&(a&&Array.isArray(a)?a.map((M,H)=>n.jsx("div",{className:"flex items-center gap-1 max-w-full",children:y?y(M,H):M},M)):typeof a=="string"?y?y(a,0):a:g),h&&(!a||Array.isArray(a))?h(a??[]):null,!y&&!h&&a]})}),n.jsx(je.Icon,{className:E("px-2 h-full flex items-center"),children:n.jsx(eo,{size:"small",className:E("transition",t?"rotate-180":"")})})]}),v&&n.jsx("div",{className:E("absolute h-full flex items-center",b==="small"?"right-10":"right-14"),onClick:M=>M.stopPropagation(),children:v})]}),n.jsx(je.Portal,{children:n.jsx(je.Content,{position:m,className:"z-50 overflow-hidden relative border border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-800 p-2 rounded-lg shadow-lg",children:n.jsx(je.Viewport,{children:P})})})]})}function Re({value:e,children:t,disabled:c,className:i}){return n.jsxs(je.Item,{value:e,disabled:c,onClick:l=>{l.preventDefault(),l.stopPropagation()},className:E("w-full","relative relative flex items-center p-2 rounded-md text-sm text-gray-700 dark:text-gray-300",ge,"focus:z-10","data-[state=checked]:bg-gray-100 data-[state=checked]:dark:bg-gray-900 focus:bg-gray-100 dark:focus:bg-gray-950","data-[state=checked]:focus:bg-gray-200 data-[state=checked]:dark:focus:bg-gray-950",c?"opacity-50 cursor-not-allowed":"cursor-pointer","[&>*]:w-full","overflow-visible",i),children:[n.jsx(je.ItemText,{children:t}),n.jsx("div",{className:"absolute left-1 data-[state=checked]:block hidden",children:n.jsx(_c,{size:16})})]},e)}function qH({label:e,children:t,className:c}){return n.jsxs(n.Fragment,{children:[n.jsx(je.Group,{className:E("text-xs text-gray-900 dark:text-gray-100 uppercase tracking-wider font-bold mt-6 first:mt-2","px-2 py-2",c),children:e}),t]})}function Qt({onTextSearch:e,placeholder:t="Search",expandable:c=!1,large:i=!1,className:l,autoFocus:a}){const[s,d]=f.useState(""),[u,A]=f.useState(!1),_=f.useDeferredValue(s);f.useEffect(()=>{e(_||void 0)},[_]);const g=f.useCallback(()=>{d(""),e(void 0)},[]);return n.jsxs("div",{className:E("relative",i?"h-14":"h-[42px]","bg-gray-50 dark:bg-gray-800 transition duration-150 ease-in-out border",ue,"rounded"),children:[n.jsx("div",{className:"absolute p-0 px-4 h-full absolute pointer-events-none flex items-center justify-center top-0",children:n.jsx(sc,{className:"text-gray-500"})}),n.jsx("input",{placeholder:t,value:s,onChange:y=>{d(y.target.value)},autoFocus:a,onFocus:()=>A(!0),onBlur:()=>A(!1),className:E("relative flex items-center rounded transition-all bg-transparent outline-none appearance-none border-none","pl-12 h-full text-current ",c?u?"w-[220px]":"w-[180px]":"",ge,l)}),s?n.jsx(ee,{className:`${i?"mr-2 top-1":"mr-1 top-0"} absolute right-0 z-10`,onClick:g,children:n.jsx(an,{size:"small"})}):n.jsx("div",{style:{width:26}})]})}const Vt=({children:e,side:t="right",open:c,onOpenChange:i,transparent:l,...a})=>{const[s,d]=f.useState(!1);f.useEffect(()=>{if(c)return d(!0),()=>{};{const A=setTimeout(()=>{d(!1)},250);return()=>clearTimeout(A)}},[c]);const u={top:"-translate-y-full",bottom:"translate-y-full",left:"-translate-x-full",right:"translate-x-full"};return n.jsx($e.Root,{open:s||c,onOpenChange:i,children:n.jsxs($e.Portal,{children:[n.jsx($e.Overlay,{className:E("fixed inset-0 transition-opacity z-20 ease-in-out duration-200 backdrop-blur-sm",l?"bg-white bg-opacity-80":"bg-black bg-opacity-50","dark:bg-black dark:bg-opacity-60",s&&c?"opacity-100":"opacity-0"),style:{pointerEvents:s?"auto":"none"}}),n.jsx($e.Content,{...a,className:E("text-gray-900 dark:text-white","fixed transform z-20 transition-all duration-[240ms] ease-in-out","outline-none focus:outline-none",l?"":"shadow-md",t==="top"||t==="bottom"?"w-full":"h-full",t==="left"||t==="top"?"left-0 top-0":"right-0 bottom-0",s&&c?"opacity-100":"opacity-0",!s||!c?u[t]:""),children:e})]})})};function JH(){return n.jsxs("div",{role:"status",children:[n.jsxs("svg",{"aria-hidden":"true",className:"w-8 h-8 mr-2 text-gray-200 animate-spin dark:text-gray-600 fill-primary",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[n.jsx("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),n.jsx("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})]}),n.jsx("span",{className:"sr-only",children:"Loading..."})]})}function An({value:e,onChange:t,label:c,type:i="text",multiline:l=!1,invisible:a,rows:s,disabled:d,error:u,endAdornment:A,autoFocus:_,placeholder:g,size:y="medium",className:h,style:I,inputClassName:b,inputStyle:p,inputRef:w,...k}){const K=w??f.useRef(null),[m,v]=f.useState(document.activeElement===K.current),S=e!=null&&e!=="",B=f.useCallback(F=>{F.target.blur(),F.stopPropagation(),setTimeout(()=>{F.target.focus()},0)},[]),P=l?n.jsx(gt,{...k,ref:K,placeholder:g,autoFocus:_,rows:s,value:e??"",onChange:t,style:p,className:E(a?Ar:ge,"rounded-md resize-none w-full outline-none p-[32px] text-base bg-transparent min-h-[64px] px-3 pt-[28px]",d&&"border border-transparent outline-none opacity-50 text-gray-600 dark:text-gray-500")}):n.jsx("input",{...k,ref:K,onWheel:i==="number"?B:void 0,disabled:d,style:p,className:E("w-full outline-none bg-transparent leading-normal px-3","rounded-md",a?Ar:ge,d?en:ze,y==="small"?"min-h-[48px]":"min-h-[64px]",c?y==="medium"?"pt-[28px] pb-2":"pt-4 pb-2":"py-2",m?"text-text-primary dark:text-text-primary-dark":"",A?"pr-10":"pr-3",b,d&&"border border-transparent outline-none opacity-50 dark:opacity-50 text-gray-800 dark:text-gray-200"),placeholder:g,autoFocus:_,onFocus:()=>v(!0),onBlur:()=>v(!1),type:i,value:Number.isNaN(e)?"":e??"",onChange:t});return n.jsxs("div",{className:E("rounded-md relative max-w-full",a?yr:qe,d?en:ze,u?"border border-red-500 dark:border-red-600":"",{"min-h-[48px]":!a&&y==="small","min-h-[64px]":!a&&y==="medium"},h),style:I,children:[c&&n.jsx(mt,{className:E("pointer-events-none absolute",y==="medium"?"top-1":"-top-1",u?"text-red-500 dark:text-red-600":m?"text-primary":"text-text-secondary dark:text-text-secondary-dark",d?"opacity-50":""),shrink:S||m,children:c}),P,A&&n.jsx("div",{className:"flex absolute right-0 top-3 mr-3 ",children:A})]})}function ga({value:e,onValueChange:t,className:c,children:i}){return n.jsx(or.Root,{value:e,onValueChange:t,children:n.jsx(or.List,{className:E("flex text-sm font-medium text-center text-gray-800 dark:text-gray-200",c),children:i})})}function xo({value:e,className:t,children:c,disabled:i}){return n.jsx(or.Trigger,{value:e,disabled:i,className:E(ge,"border-b-2 border-transparent","data-[state=active]:border-secondary",i?"text-gray-400 dark:text-gray-500":E("text-gray-700 dark:text-gray-300","data-[state=active]:text-gray-900 data-[state=active]:dark:text-gray-100","hover:text-gray-800 dark:hover:text-gray-200"),t),children:n.jsx("div",{className:E("uppercase inline-block p-2 px-4 m-2 rounded","hover:bg-gray-100 dark:hover:bg-gray-800"),children:c})})}const ZH=({children:e,className:t,style:c})=>n.jsx("table",{className:E("w-full text-left text-gray-800 dark:text-gray-200 rounded-md overflow-x-auto",t),style:c,children:e}),XH=({children:e,className:t})=>n.jsx("tbody",{className:E("bg-white text-sm dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700",t),children:e}),xH=({children:e,className:t})=>n.jsx("thead",{children:n.jsx("tr",{className:E(ue,"text-sm font-medium text-gray-700 dark:text-gray-300","bg-gray-50 border-b dark:bg-gray-900",t),children:e})}),RH=({children:e,className:t,onClick:c,style:i})=>n.jsx("tr",{onClick:c,style:i,className:E("divide-gray-100 dark:divide-gray-800","bg-white dark:bg-gray-950",c?"hover:bg-gray-100 dark:hover:bg-gray-800 cursor-pointer":"",t),children:e}),eU=({children:e,header:t=!1,scope:c="",align:i,className:l,style:a,colspan:s})=>{const d=f.useRef(null),u=t||nU(d.current)==="TableHeader"?"th":"td";return n.jsx(u,{scope:c,colSpan:s,ref:d,style:a,className:E("px-4 py-3 text-clip ",i==="center"?"text-center":i==="right"?"text-right":"text-left",l),children:e})};function nU(e){if(e){const t=Object.keys(e).find(a=>a.startsWith("__reactFiber$")||a.startsWith("__reactInternalInstance$")),c=e[t],i=a=>{let s=a.return;for(;typeof s.type=="string";)s=s.return;return s};let l=i(c);return l=i(l),l?.elementType?.name}}o.AbcIcon=ts,o.AcUnitIcon=cs,o.AccessAlarmIcon=is,o.AccessAlarmsIcon=as,o.AccessTimeFilledIcon=ss,o.AccessTimeIcon=ls,o.AccessibilityIcon=ds,o.AccessibilityNewIcon=us,o.AccessibleForwardIcon=As,o.AccessibleIcon=fs,o.AccountBalanceIcon=_s,o.AccountBalanceWalletIcon=ys,o.AccountBoxIcon=hs,o.AccountCircleIcon=gs,o.AccountTreeIcon=Is,o.AdUnitsIcon=bs,o.AdbIcon=ps,o.AddAPhotoIcon=ws,o.AddAlarmIcon=ks,o.AddAlertIcon=ms,o.AddBoxIcon=vs,o.AddBusinessIcon=Ks,o.AddCardIcon=Cs,o.AddChartIcon=Ss,o.AddCircleIcon=Bs,o.AddCircleOutlineIcon=Es,o.AddCommentIcon=Fs,o.AddHomeIcon=Ps,o.AddHomeWorkIcon=Ds,o.AddIcCallIcon=Ns,o.AddIcon=hn,o.AddLinkIcon=dc,o.AddLocationAltIcon=Ts,o.AddLocationIcon=Ms,o.AddModeratorIcon=Os,o.AddPhotoAlternateIcon=Ls,o.AddReactionIcon=Qs,o.AddRoadIcon=Vs,o.AddShoppingCartIcon=Ws,o.AddTaskIcon=Gs,o.AddToDriveIcon=zs,o.AddToHomeScreenIcon=Hs,o.AddToPhotosIcon=Us,o.AddToQueueIcon=Ys,o.AdfScannerIcon=$s,o.AdjustIcon=js,o.AdminPanelSettingsIcon=qs,o.AdsClickIcon=Js,o.AgricultureIcon=Zs,o.AirIcon=Xs,o.AirlineSeatFlatAngledIcon=Rs,o.AirlineSeatFlatIcon=xs,o.AirlineSeatIndividualSuiteIcon=ed,o.AirlineSeatLegroomExtraIcon=nd,o.AirlineSeatLegroomNormalIcon=od,o.AirlineSeatLegroomReducedIcon=rd,o.AirlineSeatReclineExtraIcon=td,o.AirlineSeatReclineNormalIcon=cd,o.AirlineStopsIcon=id,o.AirlinesIcon=ad,o.AirplaneTicketIcon=ld,o.AirplanemodeActiveIcon=sd,o.AirplanemodeInactiveIcon=dd,o.AirplayIcon=ud,o.AirportShuttleIcon=fd,o.AlarmAddIcon=_d,o.AlarmIcon=Ad,o.AlarmOffIcon=yd,o.AlarmOnIcon=hd,o.AlbumIcon=gd,o.Alert=GH,o.AlignHorizontalCenterIcon=Id,o.AlignHorizontalLeftIcon=bd,o.AlignHorizontalRightIcon=pd,o.AlignVerticalBottomIcon=wd,o.AlignVerticalCenterIcon=kd,o.AlignVerticalTopIcon=md,o.AllInboxIcon=vd,o.AllInclusiveIcon=Kd,o.AllOutIcon=Cd,o.AltRouteIcon=Sd,o.AlternateEmailIcon=Bd,o.AnalyticsIcon=Ed,o.AnchorIcon=Fd,o.AndroidIcon=Pd,o.AnimationIcon=Dd,o.AnnouncementIcon=Nd,o.AodIcon=Md,o.ApartmentIcon=Td,o.ApiIcon=Od,o.AppBlockingIcon=Ld,o.AppRegistrationIcon=Qd,o.AppSettingsAltIcon=Vd,o.AppShortcutIcon=Wd,o.ApprovalIcon=Gd,o.AppsIcon=zd,o.AppsOutageIcon=Hd,o.ArchitectureIcon=Ud,o.ArchiveIcon=Yd,o.AreaChartIcon=$d,o.ArrayContainer=Pt,o.ArrayContainerItem=Dt,o.ArrayCustomShapedFieldBinding=Bi,o.ArrayEnumPreview=Mr,o.ArrayItemOptions=la,o.ArrayOfMapsPreview=Jc,o.ArrayOfReferencesFieldBinding=fi,o.ArrayOfReferencesPreview=Xc,o.ArrayOfStorageComponentsPreview=xc,o.ArrayOfStringsPreview=Rc,o.ArrayOneOfPreview=ei,o.ArrayPropertyEnumPreview=Tr,o.ArrayPropertyPreview=Nr,o.ArrowBackIcon=jd,o.ArrowBackIosIcon=qd,o.ArrowBackIosNewIcon=Jd,o.ArrowCircleDownIcon=Zd,o.ArrowCircleLeftIcon=Xd,o.ArrowCircleRightIcon=xd,o.ArrowCircleUpIcon=Rd,o.ArrowDownwardIcon=eu,o.ArrowDropDownCircleIcon=nu,o.ArrowDropDownIcon=gr,o.ArrowDropUpIcon=ou,o.ArrowForwardIcon=uc,o.ArrowForwardIosIcon=ru,o.ArrowLeftIcon=tu,o.ArrowOutwardIcon=cu,o.ArrowRightAltIcon=au,o.ArrowRightIcon=iu,o.ArrowUpwardIcon=po,o.ArtTrackIcon=lu,o.ArticleIcon=su,o.AspectRatioIcon=du,o.AssessmentIcon=uu,o.AssignmentIcon=fc,o.AssignmentIndIcon=fu,o.AssignmentLateIcon=Au,o.AssignmentReturnIcon=_u,o.AssignmentReturnedIcon=yu,o.AssignmentTurnedInIcon=hu,o.AssistWalkerIcon=gu,o.AssistantDirectionIcon=bu,o.AssistantIcon=Iu,o.AssistantPhotoIcon=pu,o.AssuredWorkloadIcon=wu,o.AsyncPreviewComponent=VG,o.AtmIcon=ku,o.AttachEmailIcon=mu,o.AttachFileIcon=vu,o.AttachMoneyIcon=Ku,o.AttachmentIcon=Cu,o.AttractionsIcon=Su,o.AttributionIcon=Bu,o.AudioFileIcon=Eu,o.AudiotrackIcon=Fu,o.AuthControllerContext=ir,o.AutoAwesomeIcon=Pu,o.AutoAwesomeMosaicIcon=Du,o.AutoAwesomeMotionIcon=Nu,o.AutoDeleteIcon=Mu,o.AutoFixHighIcon=Tu,o.AutoFixNormalIcon=Ou,o.AutoFixOffIcon=Lu,o.AutoGraphIcon=Qu,o.AutoModeIcon=Vu,o.AutoStoriesIcon=Wu,o.Autocomplete=QH,o.AutocompleteItem=VH,o.AutofpsSelectIcon=Gu,o.AutorenewIcon=zu,o.AvTimerIcon=Hu,o.Avatar=Tt,o.BabyChangingStationIcon=Uu,o.BackHandIcon=Yu,o.BackpackIcon=$u,o.BackspaceIcon=ju,o.BackupIcon=qu,o.BackupTableIcon=Ju,o.BadgeIcon=Zu,o.BakeryDiningIcon=Xu,o.BalanceIcon=xu,o.BalconyIcon=Ru,o.BallotIcon=Ir,o.BarChartIcon=ef,o.BatchPredictionIcon=nf,o.BathroomIcon=of,o.BathtubIcon=rf,o.Battery0BarIcon=tf,o.Battery1BarIcon=cf,o.Battery2BarIcon=af,o.Battery3BarIcon=lf,o.Battery4BarIcon=sf,o.Battery5BarIcon=df,o.Battery6BarIcon=uf,o.BatteryAlertIcon=ff,o.BatteryChargingFullIcon=Af,o.BatteryFullIcon=_f,o.BatterySaverIcon=yf,o.BatteryStdIcon=hf,o.BatteryUnknownIcon=gf,o.BeachAccessIcon=If,o.BedIcon=bf,o.BedroomBabyIcon=pf,o.BedroomChildIcon=wf,o.BedroomParentIcon=kf,o.BedtimeIcon=mf,o.BedtimeOffIcon=vf,o.BeenhereIcon=Kf,o.BentoIcon=Cf,o.BikeScooterIcon=Sf,o.BiotechIcon=Bf,o.BlenderIcon=Ef,o.BlindIcon=Ff,o.BlindsClosedIcon=Df,o.BlindsIcon=Pf,o.BlockFieldBinding=Ci,o.BlockIcon=Nf,o.BloodtypeIcon=Mf,o.BluetoothAudioIcon=Of,o.BluetoothConnectedIcon=Lf,o.BluetoothDisabledIcon=Qf,o.BluetoothDriveIcon=Vf,o.BluetoothIcon=Tf,o.BluetoothSearchingIcon=Wf,o.BlurCircularIcon=Gf,o.BlurLinearIcon=zf,o.BlurOffIcon=Hf,o.BlurOnIcon=Uf,o.BoltIcon=Yf,o.BookIcon=$f,o.BookOnlineIcon=jf,o.BookmarkAddIcon=Jf,o.BookmarkAddedIcon=Zf,o.BookmarkBorderIcon=Xf,o.BookmarkIcon=qf,o.BookmarkRemoveIcon=xf,o.BookmarksIcon=Rf,o.BooleanPreview=ti,o.BooleanSwitch=ot,o.BooleanSwitchWithLabel=On,o.BorderAllIcon=eA,o.BorderBottomIcon=nA,o.BorderClearIcon=oA,o.BorderColorIcon=rA,o.BorderHorizontalIcon=tA,o.BorderInnerIcon=cA,o.BorderLeftIcon=iA,o.BorderOuterIcon=aA,o.BorderRightIcon=lA,o.BorderStyleIcon=sA,o.BorderTopIcon=dA,o.BorderVerticalIcon=uA,o.BoyIcon=fA,o.BrandingWatermarkIcon=AA,o.BreadcrumbUpdater=x3,o.BreakfastDiningIcon=_A,o.Brightness1Icon=yA,o.Brightness2Icon=hA,o.Brightness3Icon=gA,o.Brightness4Icon=IA,o.Brightness5Icon=bA,o.Brightness6Icon=pA,o.Brightness7Icon=wA,o.BrightnessAutoIcon=kA,o.BrightnessHighIcon=mA,o.BrightnessLowIcon=vA,o.BrightnessMediumIcon=KA,o.BroadcastOnHomeIcon=CA,o.BroadcastOnPersonalIcon=SA,o.BrokenImageIcon=BA,o.BrowseGalleryIcon=EA,o.BrowserNotSupportedIcon=FA,o.BrowserUpdatedIcon=PA,o.BrunchDiningIcon=DA,o.BrushIcon=NA,o.BubbleChartIcon=MA,o.BugReportIcon=TA,o.BuildCircleIcon=LA,o.BuildIcon=OA,o.BungalowIcon=QA,o.BurstModeIcon=VA,o.BusAlertIcon=WA,o.BusinessCenterIcon=zA,o.BusinessIcon=GA,o.Button=te,o.COLLECTION_PATH_SEPARATOR=ai,o.CabinIcon=HA,o.CableIcon=UA,o.CachedIcon=YA,o.CakeIcon=$A,o.CalculateIcon=jA,o.CalendarMonthIcon=Ac,o.CalendarTodayIcon=qA,o.CalendarViewDayIcon=JA,o.CalendarViewMonthIcon=ZA,o.CalendarViewWeekIcon=XA,o.CallEndIcon=RA,o.CallIcon=xA,o.CallMadeIcon=e_,o.CallMergeIcon=n_,o.CallMissedIcon=o_,o.CallMissedOutgoingIcon=r_,o.CallReceivedIcon=t_,o.CallSplitIcon=c_,o.CallToActionIcon=i_,o.CameraAltIcon=l_,o.CameraEnhanceIcon=s_,o.CameraFrontIcon=d_,o.CameraIcon=a_,o.CameraIndoorIcon=u_,o.CameraOutdoorIcon=f_,o.CameraRearIcon=A_,o.CameraRollIcon=__,o.CameraswitchIcon=y_,o.CampaignIcon=h_,o.CancelIcon=g_,o.CancelPresentationIcon=I_,o.CancelScheduleSendIcon=b_,o.CandlestickChartIcon=p_,o.CarCrashIcon=w_,o.CarRentalIcon=k_,o.CarRepairIcon=m_,o.Card=ya,o.CardGiftcardIcon=v_,o.CardMembershipIcon=K_,o.CardTravelIcon=C_,o.CarpenterIcon=S_,o.CasesIcon=B_,o.CasinoIcon=E_,o.CastConnectedIcon=P_,o.CastForEducationIcon=D_,o.CastIcon=F_,o.CastleIcon=N_,o.CatchingPokemonIcon=M_,o.CategoryIcon=T_,o.CelebrationIcon=O_,o.CellTowerIcon=L_,o.CellWifiIcon=Q_,o.CenterFocusStrongIcon=V_,o.CenterFocusWeakIcon=W_,o.CenteredView=Lt,o.ChairAltIcon=z_,o.ChairIcon=G_,o.ChaletIcon=H_,o.ChangeCircleIcon=U_,o.ChangeHistoryIcon=Y_,o.ChargingStationIcon=$_,o.ChatBubbleIcon=q_,o.ChatBubbleOutlineIcon=J_,o.ChatIcon=j_,o.CheckBoxIcon=Z_,o.CheckBoxOutlineBlankIcon=X_,o.CheckCircleIcon=x_,o.CheckCircleOutlineIcon=R_,o.CheckIcon=_c,o.Checkbox=Lr,o.ChecklistIcon=ey,o.ChecklistRtlIcon=ny,o.CheckroomIcon=oy,o.ChevronLeftIcon=yc,o.ChevronRightIcon=ry,o.ChildCareIcon=ty,o.ChildFriendlyIcon=cy,o.Chip=Ko,o.ChromeReaderModeIcon=iy,o.ChurchIcon=ay,o.CircleIcon=br,o.CircleNotificationsIcon=ly,o.CircularProgress=Gn,o.CircularProgressCenter=uo,o.ClassIcon=sy,o.CleanHandsIcon=dy,o.CleaningServicesIcon=uy,o.ClearAllIcon=fy,o.ClearIcon=an,o.CloseFullscreenIcon=Ay,o.CloseIcon=pr,o.ClosedCaptionDisabledIcon=yy,o.ClosedCaptionIcon=_y,o.ClosedCaptionOffIcon=hy,o.CloudCircleIcon=Iy,o.CloudDoneIcon=by,o.CloudDownloadIcon=py,o.CloudIcon=gy,o.CloudOffIcon=wy,o.CloudQueueIcon=ky,o.CloudSyncIcon=my,o.CloudUploadIcon=vy,o.Co2Icon=Ky,o.CoPresentIcon=Cy,o.CodeIcon=Sy,o.CodeOffIcon=By,o.CoffeeIcon=Ey,o.CoffeeMakerIcon=Fy,o.Collapse=To,o.CollectionsBookmarkIcon=Dy,o.CollectionsIcon=Py,o.ColorLensIcon=Ny,o.ColorizeIcon=My,o.CommentBankIcon=Oy,o.CommentIcon=Ty,o.CommentsDisabledIcon=Ly,o.CommitIcon=Qy,o.CommuteIcon=Vy,o.CompareArrowsIcon=Gy,o.CompareIcon=Wy,o.CompassCalibrationIcon=zy,o.CompostIcon=Hy,o.CompressIcon=Uy,o.ComputerIcon=Yy,o.ConfirmationNumberIcon=$y,o.ConnectWithoutContactIcon=jy,o.ConnectedTvIcon=qy,o.ConnectingAirportsIcon=Jy,o.ConstructionIcon=Zy,o.ContactEmergencyIcon=Xy,o.ContactMailIcon=xy,o.ContactPageIcon=Ry,o.ContactPhoneIcon=eh,o.ContactSupportIcon=nh,o.ContactlessIcon=oh,o.ContactsIcon=rh,o.Container=Ot,o.ContentCopyIcon=Rn,o.ContentCutIcon=th,o.ContentPasteGoIcon=ih,o.ContentPasteIcon=ch,o.ContentPasteOffIcon=ah,o.ContentPasteSearchIcon=lh,o.ContrastIcon=sh,o.ControlCameraIcon=dh,o.ControlPointDuplicateIcon=fh,o.ControlPointIcon=uh,o.CookieIcon=Ah,o.CopyAllIcon=_h,o.CopyrightIcon=yh,o.CoronavirusIcon=hh,o.CorporateFareIcon=gh,o.CottageIcon=Ih,o.CountertopsIcon=bh,o.CreateIcon=ph,o.CreateNewFolderIcon=wh,o.CreditCardIcon=kh,o.CreditCardOffIcon=mh,o.CreditScoreIcon=vh,o.CribIcon=Kh,o.CrisisAlertIcon=Ch,o.Crop169Icon=Bh,o.Crop32Icon=Eh,o.Crop54Icon=Fh,o.Crop75Icon=Ph,o.CropDinIcon=Dh,o.CropFreeIcon=Nh,o.CropIcon=Sh,o.CropLandscapeIcon=Mh,o.CropOriginalIcon=Th,o.CropPortraitIcon=Oh,o.CropRotateIcon=Lh,o.CropSquareIcon=Qh,o.CrueltyFreeIcon=Vh,o.CssIcon=Wh,o.CurrencyBitcoinIcon=Gh,o.CurrencyExchangeIcon=zh,o.CurrencyFrancIcon=Hh,o.CurrencyLiraIcon=Uh,o.CurrencyPoundIcon=Yh,o.CurrencyRubleIcon=$h,o.CurrencyRupeeIcon=jh,o.CurrencyYenIcon=qh,o.CurrencyYuanIcon=Jh,o.CurtainsClosedIcon=Xh,o.CurtainsIcon=Zh,o.CycloneIcon=xh,o.DEFAULT_FIELD_CONFIGS=Di,o.DangerousIcon=Rh,o.DarkModeIcon=hc,o.DashboardCustomizeIcon=ng,o.DashboardIcon=eg,o.DataArrayIcon=og,o.DataExplorationIcon=rg,o.DataObjectIcon=tg,o.DataSaverOffIcon=cg,o.DataSaverOnIcon=ig,o.DataThresholdingIcon=ag,o.DataUsageIcon=lg,o.DatasetIcon=sg,o.DatasetLinkedIcon=dg,o.DatePreview=ri,o.DateRangeIcon=ug,o.DateTimeField=Vn,o.DateTimeFieldBinding=wi,o.DeblurIcon=fg,o.DebouncedTextField=RG,o.DeckIcon=Ag,o.DehazeIcon=_g,o.DeleteConfirmationDialog=R3,o.DeleteForeverIcon=yg,o.DeleteIcon=wo,o.DeleteOutlineIcon=hg,o.DeleteSweepIcon=gg,o.DeliveryDiningIcon=Ig,o.DensityLargeIcon=bg,o.DensityMediumIcon=pg,o.DensitySmallIcon=wg,o.DepartureBoardIcon=kg,o.DescriptionIcon=gc,o.DeselectIcon=mg,o.DesignServicesIcon=vg,o.DeskIcon=Kg,o.DesktopAccessDisabledIcon=Cg,o.DesktopMacIcon=Sg,o.DesktopWindowsIcon=Bg,o.DetailsIcon=Eg,o.DeveloperBoardIcon=Fg,o.DeveloperBoardOffIcon=Pg,o.DeveloperModeIcon=Dg,o.DeviceHubIcon=Ng,o.DeviceThermostatIcon=Mg,o.DeviceUnknownIcon=Tg,o.DevicesFoldIcon=Lg,o.DevicesIcon=Og,o.DevicesOtherIcon=Qg,o.DialerSipIcon=Vg,o.Dialog=Zo,o.DialogActions=wn,o.DialogContent=Xo,o.DialpadIcon=Wg,o.DiamondIcon=Gg,o.DifferenceIcon=zg,o.DiningIcon=Hg,o.DinnerDiningIcon=Ug,o.DirectionsBikeIcon=$g,o.DirectionsBoatFilledIcon=qg,o.DirectionsBoatIcon=jg,o.DirectionsBusFilledIcon=Zg,o.DirectionsBusIcon=Jg,o.DirectionsCarFilledIcon=xg,o.DirectionsCarIcon=Xg,o.DirectionsIcon=Yg,o.DirectionsOffIcon=Rg,o.DirectionsRailwayFilledIcon=nI,o.DirectionsRailwayIcon=eI,o.DirectionsRunIcon=oI,o.DirectionsSubwayFilledIcon=tI,o.DirectionsSubwayIcon=rI,o.DirectionsTransitFilledIcon=iI,o.DirectionsTransitIcon=cI,o.DirectionsWalkIcon=aI,o.DirtyLensIcon=lI,o.DisabledByDefaultIcon=sI,o.DisabledVisibleIcon=dI,o.DiscFullIcon=uI,o.DiscountIcon=fI,o.DisplaySettingsIcon=AI,o.Diversity1Icon=_I,o.Diversity2Icon=yI,o.Diversity3Icon=hI,o.DnsIcon=gI,o.DoDisturbAltIcon=bI,o.DoDisturbIcon=II,o.DoDisturbOffIcon=pI,o.DoDisturbOnIcon=wI,o.DoNotDisturbAltIcon=mI,o.DoNotDisturbIcon=kI,o.DoNotDisturbOffIcon=vI,o.DoNotDisturbOnIcon=KI,o.DoNotDisturbOnTotalSilenceIcon=CI,o.DoNotStepIcon=SI,o.DoNotTouchIcon=BI,o.DockIcon=EI,o.DocumentScannerIcon=FI,o.DomainAddIcon=DI,o.DomainDisabledIcon=NI,o.DomainIcon=PI,o.DomainVerificationIcon=MI,o.DoneAllIcon=OI,o.DoneIcon=TI,o.DoneOutlineIcon=LI,o.DonutLargeIcon=QI,o.DonutSmallIcon=VI,o.DoorBackIcon=WI,o.DoorFrontIcon=GI,o.DoorSlidingIcon=zI,o.DoorbellIcon=HI,o.DoubleArrowIcon=UI,o.DownhillSkiingIcon=YI,o.DownloadDoneIcon=jI,o.DownloadForOfflineIcon=qI,o.DownloadIcon=$I,o.DownloadingIcon=JI,o.DraftsIcon=ZI,o.DragHandleIcon=XI,o.DragIndicatorIcon=xI,o.DrawIcon=RI,o.Drawer=Aa,o.DrawerNavigationItem=Mt,o.DriveEtaIcon=eb,o.DriveFileMoveIcon=nb,o.DriveFileMoveRtlIcon=ob,o.DriveFileRenameOutlineIcon=rb,o.DriveFolderUploadIcon=Ic,o.DryCleaningIcon=cb,o.DryIcon=tb,o.DuoIcon=ib,o.DvrIcon=ab,o.DynamicFeedIcon=lb,o.DynamicFormIcon=sb,o.EMobiledataIcon=db,o.EarbudsBatteryIcon=fb,o.EarbudsIcon=ub,o.EastIcon=Ab,o.EdgesensorHighIcon=_b,o.EdgesensorLowIcon=yb,o.EditAttributesIcon=hb,o.EditCalendarIcon=gb,o.EditIcon=bc,o.EditLocationAltIcon=bb,o.EditLocationIcon=Ib,o.EditNoteIcon=pb,o.EditNotificationsIcon=wb,o.EditOffIcon=kb,o.EditRoadIcon=mb,o.EggAltIcon=Kb,o.EggIcon=vb,o.EjectIcon=Cb,o.ElderlyIcon=Sb,o.ElderlyWomanIcon=Bb,o.ElectricBikeIcon=Eb,o.ElectricBoltIcon=Fb,o.ElectricCarIcon=Pb,o.ElectricMeterIcon=Db,o.ElectricMopedIcon=Nb,o.ElectricRickshawIcon=Mb,o.ElectricScooterIcon=Tb,o.ElectricalServicesIcon=Ob,o.ElevatorIcon=Lb,o.EmailIcon=pc,o.EmergencyIcon=Qb,o.EmergencyRecordingIcon=Vb,o.EmergencyShareIcon=Wb,o.EmojiEmotionsIcon=Gb,o.EmojiEventsIcon=zb,o.EmojiFoodBeverageIcon=Hb,o.EmojiNatureIcon=Ub,o.EmojiObjectsIcon=Yb,o.EmojiPeopleIcon=$b,o.EmojiSymbolsIcon=jb,o.EmojiTransportationIcon=qb,o.EmptyValue=Fn,o.EnergySavingsLeafIcon=Jb,o.EngineeringIcon=Zb,o.EnhancedEncryptionIcon=Xb,o.EntityCollectionTable=Kt,o.EntityCollectionView=St,o.EntityForm=Pi,o.EntityPreview=yt,o.EntityReference=Je,o.EnumValuesChip=Ee,o.EqualizerIcon=xb,o.ErrorBoundary=se,o.ErrorIcon=wr,o.ErrorOutlineIcon=wc,o.ErrorView=pe,o.EscalatorIcon=Rb,o.EscalatorWarningIcon=ep,o.EuroIcon=np,o.EuroSymbolIcon=op,o.EvStationIcon=rp,o.EventAvailableIcon=cp,o.EventBusyIcon=ip,o.EventIcon=tp,o.EventNoteIcon=ap,o.EventRepeatIcon=lp,o.EventSeatIcon=sp,o.ExitToAppIcon=dp,o.ExpandCircleDownIcon=fp,o.ExpandIcon=up,o.ExpandLessIcon=Ap,o.ExpandMoreIcon=eo,o.ExpandablePanel=fn,o.ExplicitIcon=_p,o.ExploreIcon=yp,o.ExploreOffIcon=hp,o.ExposureIcon=gp,o.ExposureNeg1Icon=Ip,o.ExposureNeg2Icon=bp,o.ExposurePlus1Icon=pp,o.ExposurePlus2Icon=wp,o.ExposureZeroIcon=kp,o.ExtensionIcon=mp,o.ExtensionOffIcon=vp,o.Face2Icon=Cp,o.Face3Icon=Sp,o.Face4Icon=Bp,o.Face5Icon=Ep,o.Face6Icon=Fp,o.FaceIcon=Kp,o.FaceRetouchingNaturalIcon=Pp,o.FaceRetouchingOffIcon=Dp,o.FactCheckIcon=Np,o.FactoryIcon=Mp,o.FamilyRestroomIcon=Tp,o.FastForwardIcon=Op,o.FastRewindIcon=Lp,o.FastfoodIcon=Qp,o.FavoriteBorderIcon=Wp,o.FavoriteIcon=Vp,o.FaxIcon=Gp,o.FeaturedPlayListIcon=zp,o.FeaturedVideoIcon=Hp,o.FeedIcon=Up,o.FeedbackIcon=Yp,o.FemaleIcon=$p,o.FenceIcon=jp,o.FestivalIcon=qp,o.FiberDvrIcon=Jp,o.FiberManualRecordIcon=Zp,o.FiberNewIcon=Xp,o.FiberPinIcon=xp,o.FiberSmartRecordIcon=Rp,o.FieldConfigBadge=X3,o.FieldHelperText=Se,o.FileCopyIcon=kc,o.FileDownloadDoneIcon=nw,o.FileDownloadIcon=ew,o.FileDownloadOffIcon=ow,o.FileOpenIcon=rw,o.FilePresentIcon=tw,o.FileUpload=$H,o.FileUploadIcon=cw,o.Filter1Icon=aw,o.Filter2Icon=lw,o.Filter3Icon=sw,o.Filter4Icon=dw,o.Filter5Icon=uw,o.Filter6Icon=fw,o.Filter7Icon=Aw,o.Filter8Icon=_w,o.Filter9Icon=yw,o.Filter9PlusIcon=hw,o.FilterAltIcon=gw,o.FilterAltOffIcon=Iw,o.FilterBAndWIcon=bw,o.FilterCenterFocusIcon=pw,o.FilterDramaIcon=ww,o.FilterFramesIcon=kw,o.FilterHdrIcon=mw,o.FilterIcon=iw,o.FilterListIcon=vw,o.FilterListOffIcon=mc,o.FilterNoneIcon=Kw,o.FilterTiltShiftIcon=Cw,o.FilterVintageIcon=Sw,o.FindInPageIcon=Bw,o.FindReplaceIcon=Ew,o.FingerprintIcon=Fw,o.FireCMS=IH,o.FireCMSAppBar=aa,o.FireCMSContextInstance=ar,o.FireCMSHomePage=ta,o.FireCMSLogo=ia,o.FireExtinguisherIcon=Pw,o.FireHydrantAltIcon=Dw,o.FireTruckIcon=Nw,o.FireplaceIcon=Mw,o.FirstPageIcon=Tw,o.FitScreenIcon=Ow,o.FitbitIcon=Lw,o.FitnessCenterIcon=Qw,o.FlagCircleIcon=Vw,o.FlagIcon=vc,o.FlakyIcon=Ww,o.FlareIcon=Gw,o.FlashAutoIcon=zw,o.FlashOffIcon=Hw,o.FlashOnIcon=Uw,o.FlashlightOffIcon=Yw,o.FlashlightOnIcon=$w,o.FlatwareIcon=jw,o.FlightClassIcon=Jw,o.FlightIcon=qw,o.FlightLandIcon=Zw,o.FlightTakeoffIcon=Xw,o.FlipCameraAndroidIcon=Rw,o.FlipCameraIosIcon=ek,o.FlipIcon=xw,o.FlipToBackIcon=nk,o.FlipToFrontIcon=ok,o.FloodIcon=rk,o.FluorescentIcon=tk,o.FlutterDashIcon=ck,o.FmdBadIcon=ik,o.FmdGoodIcon=ak,o.FolderCopyIcon=sk,o.FolderDeleteIcon=dk,o.FolderIcon=lk,o.FolderOffIcon=uk,o.FolderOpenIcon=fk,o.FolderSharedIcon=Ak,o.FolderSpecialIcon=_k,o.FolderZipIcon=yk,o.FollowTheSignsIcon=hk,o.FontDownloadIcon=gk,o.FontDownloadOffIcon=Ik,o.FoodBankIcon=bk,o.ForestIcon=pk,o.ForkLeftIcon=wk,o.ForkRightIcon=kk,o.FormatAlignCenterIcon=mk,o.FormatAlignJustifyIcon=vk,o.FormatAlignLeftIcon=Kk,o.FormatAlignRightIcon=Ck,o.FormatBoldIcon=Sk,o.FormatClearIcon=Bk,o.FormatColorFillIcon=Ek,o.FormatColorResetIcon=Fk,o.FormatColorTextIcon=Pk,o.FormatIndentDecreaseIcon=Dk,o.FormatIndentIncreaseIcon=Nk,o.FormatItalicIcon=Mk,o.FormatLineSpacingIcon=Tk,o.FormatListBulletedIcon=Ok,o.FormatListNumberedIcon=kr,o.FormatListNumberedRtlIcon=Lk,o.FormatOverlineIcon=Qk,o.FormatPaintIcon=Vk,o.FormatQuoteIcon=Kc,o.FormatShapesIcon=Wk,o.FormatSizeIcon=Gk,o.FormatStrikethroughIcon=zk,o.FormatTextdirectionLToRIcon=Hk,o.FormatTextdirectionRToLIcon=Uk,o.FormatUnderlinedIcon=Yk,o.FormikArrayContainer=No,o.FortIcon=$k,o.ForumIcon=jk,o.Forward10Icon=Jk,o.Forward30Icon=Zk,o.Forward5Icon=Xk,o.ForwardIcon=qk,o.ForwardToInboxIcon=xk,o.FoundationIcon=Rk,o.FreeBreakfastIcon=em,o.FreeCancellationIcon=nm,o.FrontHandIcon=om,o.FullscreenExitIcon=tm,o.FullscreenIcon=rm,o.FunctionsIcon=Cc,o.GMobiledataIcon=cm,o.GTranslateIcon=im,o.GamepadIcon=am,o.GamesIcon=lm,o.GarageIcon=sm,o.GasMeterIcon=dm,o.GavelIcon=um,o.GeneratingTokensIcon=fm,o.GeoPoint=Br,o.GestureIcon=Am,o.GetAppIcon=_m,o.GifBoxIcon=hm,o.GifIcon=ym,o.GirlIcon=gm,o.GitHubIcon=el,o.GiteIcon=Im,o.GolfCourseIcon=bm,o.GppBadIcon=pm,o.GppGoodIcon=wm,o.GppMaybeIcon=km,o.GpsFixedIcon=mm,o.GpsNotFixedIcon=vm,o.GpsOffIcon=Km,o.GradeIcon=Cm,o.GradientIcon=Sm,o.GradingIcon=Bm,o.GrainIcon=Em,o.GraphicEqIcon=Fm,o.GrassIcon=Pm,o.Grid3x3Icon=Dm,o.Grid4x4Icon=Nm,o.GridGoldenratioIcon=Mm,o.GridOffIcon=Tm,o.GridOnIcon=Om,o.GridViewIcon=Lm,o.GroupAddIcon=Vm,o.GroupIcon=Qm,o.GroupOffIcon=Wm,o.GroupRemoveIcon=Gm,o.GroupWorkIcon=zm,o.Groups2Icon=Um,o.Groups3Icon=Ym,o.GroupsIcon=Hm,o.HMobiledataIcon=$m,o.HPlusMobiledataIcon=jm,o.HailIcon=qm,o.HandshakeIcon=Jm,o.HandymanIcon=Zm,o.HardwareIcon=Xm,o.HdIcon=xm,o.HdrAutoIcon=Rm,o.HdrAutoSelectIcon=ev,o.HdrEnhancedSelectIcon=nv,o.HdrOffIcon=ov,o.HdrOffSelectIcon=rv,o.HdrOnIcon=tv,o.HdrOnSelectIcon=cv,o.HdrPlusIcon=iv,o.HdrStrongIcon=av,o.HdrWeakIcon=lv,o.HeadphonesBatteryIcon=dv,o.HeadphonesIcon=sv,o.HeadsetIcon=uv,o.HeadsetMicIcon=fv,o.HeadsetOffIcon=Av,o.HealingIcon=_v,o.HealthAndSafetyIcon=yv,o.HearingDisabledIcon=gv,o.HearingIcon=hv,o.HeartBrokenIcon=Iv,o.HeatPumpIcon=bv,o.HeightIcon=pv,o.HelpCenterIcon=kv,o.HelpIcon=wv,o.HelpOutlineIcon=mv,o.HevcIcon=vv,o.HexagonIcon=Kv,o.HideImageIcon=Cv,o.HideSourceIcon=Sv,o.HighQualityIcon=Bv,o.HighlightAltIcon=Fv,o.HighlightIcon=Ev,o.HighlightOffIcon=Pv,o.HikingIcon=Dv,o.HistoryEduIcon=Mv,o.HistoryIcon=Nv,o.HistoryToggleOffIcon=Tv,o.HiveIcon=Ov,o.HlsIcon=Lv,o.HlsOffIcon=Qv,o.HolidayVillageIcon=Vv,o.HomeIcon=Wv,o.HomeMaxIcon=Gv,o.HomeMiniIcon=zv,o.HomeRepairServiceIcon=Hv,o.HomeWorkIcon=Uv,o.HorizontalDistributeIcon=Yv,o.HorizontalRuleIcon=$v,o.HorizontalSplitIcon=jv,o.HotTubIcon=qv,o.HotelClassIcon=Zv,o.HotelIcon=Jv,o.HourglassBottomIcon=Xv,o.HourglassDisabledIcon=xv,o.HourglassEmptyIcon=Rv,o.HourglassFullIcon=e0,o.HourglassTopIcon=n0,o.HouseIcon=o0,o.HouseSidingIcon=r0,o.HouseboatIcon=t0,o.HowToRegIcon=c0,o.HowToVoteIcon=i0,o.HtmlIcon=a0,o.HttpIcon=Sc,o.HttpsIcon=l0,o.HubIcon=s0,o.HvacIcon=d0,o.IceSkatingIcon=u0,o.IcecreamIcon=f0,o.Icon=r,o.IconButton=ee,o.ImageAspectRatioIcon=_0,o.ImageIcon=A0,o.ImageNotSupportedIcon=y0,o.ImagePreview=Gc,o.ImageSearchIcon=h0,o.ImagesearchRollerIcon=g0,o.ImportContactsIcon=I0,o.ImportExportIcon=b0,o.ImportantDevicesIcon=p0,o.InboxIcon=w0,o.IncompleteCircleIcon=k0,o.IndeterminateCheckBoxIcon=m0,o.InfoIcon=Bc,o.InfoLabel=nH,o.InputIcon=v0,o.InputLabel=mt,o.InsertChartIcon=K0,o.InsertChartOutlinedIcon=C0,o.InsertCommentIcon=S0,o.InsertDriveFileIcon=B0,o.InsertEmoticonIcon=E0,o.InsertInvitationIcon=F0,o.InsertLinkIcon=P0,o.InsertPageBreakIcon=D0,o.InsertPhotoIcon=N0,o.InsightsIcon=M0,o.InstallDesktopIcon=T0,o.InstallMobileIcon=O0,o.IntegrationInstructionsIcon=L0,o.InterestsIcon=Q0,o.InterpreterModeIcon=V0,o.Inventory2Icon=G0,o.InventoryIcon=W0,o.InvertColorsIcon=z0,o.InvertColorsOffIcon=H0,o.IosShareIcon=U0,o.IronIcon=Y0,o.IsoIcon=$0,o.JavascriptIcon=j0,o.JoinFullIcon=q0,o.JoinInnerIcon=J0,o.JoinLeftIcon=Z0,o.JoinRightIcon=X0,o.KayakingIcon=x0,o.KebabDiningIcon=R0,o.KeyIcon=eK,o.KeyOffIcon=nK,o.KeyValueFieldBinding=vi,o.KeyValuePreview=Or,o.KeyboardAltIcon=rK,o.KeyboardArrowDownIcon=tK,o.KeyboardArrowLeftIcon=cK,o.KeyboardArrowRightIcon=iK,o.KeyboardArrowUpIcon=aK,o.KeyboardBackspaceIcon=lK,o.KeyboardCapslockIcon=sK,o.KeyboardCommandKeyIcon=dK,o.KeyboardControlKeyIcon=uK,o.KeyboardDoubleArrowDownIcon=fK,o.KeyboardDoubleArrowLeftIcon=AK,o.KeyboardDoubleArrowRightIcon=_K,o.KeyboardDoubleArrowUpIcon=yK,o.KeyboardHideIcon=hK,o.KeyboardIcon=oK,o.KeyboardOptionKeyIcon=gK,o.KeyboardReturnIcon=IK,o.KeyboardTabIcon=ko,o.KeyboardVoiceIcon=bK,o.KingBedIcon=pK,o.KitchenIcon=wK,o.KitesurfingIcon=kK,o.LabelIcon=mK,o.LabelImportantIcon=vK,o.LabelOffIcon=KK,o.LabelWithIcon=Ce,o.LanIcon=CK,o.LandscapeIcon=SK,o.LandslideIcon=BK,o.LanguageIcon=EK,o.LaptopChromebookIcon=PK,o.LaptopIcon=FK,o.LaptopMacIcon=DK,o.LaptopWindowsIcon=NK,o.LastPageIcon=MK,o.LaunchIcon=TK,o.LayersClearIcon=LK,o.LayersIcon=OK,o.LeaderboardIcon=QK,o.LeakAddIcon=VK,o.LeakRemoveIcon=WK,o.LegendToggleIcon=GK,o.LensBlurIcon=HK,o.LensIcon=zK,o.LibraryAddCheckIcon=YK,o.LibraryAddIcon=UK,o.LibraryBooksIcon=$K,o.LibraryMusicIcon=jK,o.LightIcon=qK,o.LightModeIcon=Ec,o.LightbulbCircleIcon=ZK,o.LightbulbIcon=JK,o.LineAxisIcon=XK,o.LineStyleIcon=xK,o.LineWeightIcon=RK,o.LinearScaleIcon=eC,o.LinkIcon=Fc,o.LinkOffIcon=nC,o.LinkedCameraIcon=oC,o.LiquorIcon=rC,o.ListAltIcon=Dc,o.ListIcon=Pc,o.LiveHelpIcon=tC,o.LiveTvIcon=cC,o.LivingIcon=iC,o.LoadingButton=ha,o.LocalActivityIcon=aC,o.LocalAirportIcon=lC,o.LocalAtmIcon=sC,o.LocalBarIcon=dC,o.LocalCafeIcon=uC,o.LocalCarWashIcon=fC,o.LocalConvenienceStoreIcon=AC,o.LocalDiningIcon=_C,o.LocalDrinkIcon=yC,o.LocalFireDepartmentIcon=hC,o.LocalFloristIcon=gC,o.LocalGasStationIcon=IC,o.LocalGroceryStoreIcon=bC,o.LocalHospitalIcon=pC,o.LocalHotelIcon=wC,o.LocalLaundryServiceIcon=kC,o.LocalLibraryIcon=mC,o.LocalMallIcon=vC,o.LocalMoviesIcon=KC,o.LocalOfferIcon=CC,o.LocalParkingIcon=SC,o.LocalPharmacyIcon=BC,o.LocalPhoneIcon=EC,o.LocalPizzaIcon=FC,o.LocalPlayIcon=PC,o.LocalPoliceIcon=DC,o.LocalPostOfficeIcon=NC,o.LocalPrintshopIcon=MC,o.LocalSeeIcon=TC,o.LocalShippingIcon=OC,o.LocalTaxiIcon=LC,o.LocationCityIcon=QC,o.LocationDisabledIcon=VC,o.LocationOffIcon=WC,o.LocationOnIcon=GC,o.LocationSearchingIcon=zC,o.LockClockIcon=UC,o.LockIcon=HC,o.LockOpenIcon=YC,o.LockPersonIcon=$C,o.LockResetIcon=jC,o.LoginIcon=qC,o.LogoDevIcon=JC,o.LogoutIcon=Nc,o.Looks3Icon=XC,o.Looks4Icon=xC,o.Looks5Icon=RC,o.Looks6Icon=eS,o.LooksIcon=ZC,o.LooksOneIcon=nS,o.LooksTwoIcon=oS,o.LoopIcon=rS,o.LoupeIcon=tS,o.LowPriorityIcon=cS,o.LoyaltyIcon=iS,o.LteMobiledataIcon=aS,o.LtePlusMobiledataIcon=lS,o.LuggageIcon=sS,o.LunchDiningIcon=dS,o.LyricsIcon=uS,o.MacroOffIcon=fS,o.MailIcon=AS,o.MailLockIcon=_S,o.MailOutlineIcon=yS,o.MaleIcon=hS,o.Man2Icon=IS,o.Man3Icon=bS,o.Man4Icon=pS,o.ManIcon=gS,o.ManageAccountsIcon=wS,o.ManageHistoryIcon=kS,o.ManageSearchIcon=mS,o.MapFieldBinding=mi,o.MapIcon=vS,o.MapPropertyPreview=ni,o.MapsHomeWorkIcon=KS,o.MapsUgcIcon=CS,o.MarginIcon=SS,o.MarkAsUnreadIcon=BS,o.MarkChatReadIcon=ES,o.MarkChatUnreadIcon=FS,o.MarkEmailReadIcon=PS,o.MarkEmailUnreadIcon=DS,o.MarkUnreadChatAltIcon=NS,o.Markdown=co,o.MarkdownFieldBinding=Si,o.MarkunreadIcon=MS,o.MarkunreadMailboxIcon=TS,o.MasksIcon=OS,o.MaximizeIcon=LS,o.MediaBluetoothOffIcon=QS,o.MediaBluetoothOnIcon=VS,o.MediationIcon=WS,o.MedicalInformationIcon=GS,o.MedicalServicesIcon=zS,o.MedicationIcon=HS,o.MedicationLiquidIcon=US,o.MeetingRoomIcon=YS,o.MemoryIcon=$S,o.Menu=Qn,o.MenuBookIcon=jS,o.MenuIcon=mr,o.MenuItem=ke,o.MenuOpenIcon=qS,o.MergeIcon=JS,o.MergeTypeIcon=ZS,o.MessageIcon=XS,o.MicExternalOffIcon=RS,o.MicExternalOnIcon=eB,o.MicIcon=xS,o.MicNoneIcon=nB,o.MicOffIcon=oB,o.MicrowaveIcon=rB,o.MilitaryTechIcon=tB,o.MinimizeIcon=cB,o.MinorCrashIcon=iB,o.MiscellaneousServicesIcon=aB,o.MissedVideoCallIcon=lB,o.MmsIcon=sB,o.MobileFriendlyIcon=dB,o.MobileOffIcon=uB,o.MobileScreenShareIcon=fB,o.MobiledataOffIcon=AB,o.ModeCommentIcon=yB,o.ModeControllerProvider=Ga,o.ModeEditIcon=hB,o.ModeEditOutlineIcon=gB,o.ModeFanOffIcon=IB,o.ModeIcon=_B,o.ModeNightIcon=bB,o.ModeOfTravelIcon=pB,o.ModeStandbyIcon=wB,o.ModelTrainingIcon=kB,o.MonetizationOnIcon=mB,o.MoneyIcon=vB,o.MoneyOffCsredIcon=CB,o.MoneyOffIcon=KB,o.MonitorHeartIcon=BB,o.MonitorIcon=SB,o.MonitorWeightIcon=EB,o.MonochromePhotosIcon=FB,o.MoodBadIcon=DB,o.MoodIcon=PB,o.MopedIcon=NB,o.MoreHorizIcon=TB,o.MoreIcon=MB,o.MoreTimeIcon=OB,o.MoreVertIcon=vr,o.MosqueIcon=LB,o.MotionPhotosAutoIcon=QB,o.MotionPhotosOffIcon=VB,o.MotionPhotosOnIcon=WB,o.MotionPhotosPauseIcon=GB,o.MotionPhotosPausedIcon=zB,o.MouseIcon=HB,o.MoveDownIcon=UB,o.MoveToInboxIcon=YB,o.MoveUpIcon=$B,o.MovieCreationIcon=qB,o.MovieFilterIcon=JB,o.MovieIcon=jB,o.MovingIcon=ZB,o.MpIcon=XB,o.MultiSelect=Zr,o.MultiSelectBinding=xr,o.MultiSelectContext=Jr,o.MultiSelectItem=Xr,o.MultilineChartIcon=xB,o.MultipleStopIcon=RB,o.MuseumIcon=eE,o.MusicNoteIcon=nE,o.MusicOffIcon=oE,o.MusicVideoIcon=rE,o.MyLocationIcon=tE,o.NatIcon=cE,o.NatureIcon=iE,o.NaturePeopleIcon=aE,o.NavigateBeforeIcon=lE,o.NavigateNextIcon=sE,o.NavigationCollectionCard=Et,o.NavigationGroup=$o,o.NavigationIcon=dE,o.NavigationRoutes=vH,o.NearMeDisabledIcon=fE,o.NearMeIcon=uE,o.NearbyErrorIcon=AE,o.NearbyOffIcon=_E,o.NestCamWiredStandIcon=yE,o.NetworkCellIcon=hE,o.NetworkCheckIcon=gE,o.NetworkLockedIcon=IE,o.NetworkPingIcon=bE,o.NetworkWifi1BarIcon=wE,o.NetworkWifi2BarIcon=kE,o.NetworkWifi3BarIcon=mE,o.NetworkWifiIcon=pE,o.NewLabelIcon=vE,o.NewReleasesIcon=KE,o.NewspaperIcon=CE,o.NextPlanIcon=SE,o.NextWeekIcon=BE,o.NfcIcon=EE,o.NightShelterIcon=FE,o.NightlifeIcon=PE,o.NightlightIcon=DE,o.NightlightRoundIcon=NE,o.NightsStayIcon=ME,o.NoAccountsIcon=TE,o.NoAdultContentIcon=OE,o.NoBackpackIcon=LE,o.NoCellIcon=QE,o.NoCrashIcon=VE,o.NoDrinksIcon=WE,o.NoEncryptionGmailerrorredIcon=zE,o.NoEncryptionIcon=GE,o.NoFlashIcon=HE,o.NoFoodIcon=UE,o.NoLuggageIcon=YE,o.NoMealsIcon=$E,o.NoMeetingRoomIcon=jE,o.NoPhotographyIcon=qE,o.NoSimIcon=JE,o.NoStrollerIcon=ZE,o.NoTransferIcon=XE,o.NoiseAwareIcon=xE,o.NoiseControlOffIcon=RE,o.NordicWalkingIcon=eF,o.NorthEastIcon=oF,o.NorthIcon=nF,o.NorthWestIcon=rF,o.NotAccessibleIcon=tF,o.NotFoundPage=ca,o.NotInterestedIcon=cF,o.NotListedLocationIcon=iF,o.NotStartedIcon=aF,o.NoteAddIcon=sF,o.NoteAltIcon=dF,o.NoteIcon=lF,o.NotesIcon=uF,o.NotificationAddIcon=fF,o.NotificationImportantIcon=AF,o.NotificationsActiveIcon=yF,o.NotificationsIcon=_F,o.NotificationsNoneIcon=hF,o.NotificationsOffIcon=gF,o.NotificationsPausedIcon=IF,o.NumberPropertyPreview=ci,o.NumbersIcon=Mc,o.OfflineBoltIcon=bF,o.OfflinePinIcon=pF,o.OfflineShareIcon=wF,o.OilBarrelIcon=kF,o.OnDeviceTrainingIcon=mF,o.OndemandVideoIcon=vF,o.OnlinePredictionIcon=KF,o.OpacityIcon=CF,o.OpenInBrowserIcon=SF,o.OpenInFullIcon=BF,o.OpenInNewIcon=no,o.OpenInNewOffIcon=EF,o.OpenWithIcon=FF,o.OtherHousesIcon=PF,o.OutboundIcon=DF,o.OutboxIcon=NF,o.OutdoorGrillIcon=MF,o.OutletIcon=TF,o.OutlinedFlagIcon=OF,o.OutputIcon=LF,o.PaddingIcon=QF,o.PagesIcon=VF,o.PageviewIcon=WF,o.PaidIcon=GF,o.PaletteIcon=zF,o.PanToolAltIcon=UF,o.PanToolIcon=HF,o.PanoramaFishEyeIcon=$F,o.PanoramaHorizontalIcon=jF,o.PanoramaHorizontalSelectIcon=qF,o.PanoramaIcon=YF,o.PanoramaPhotosphereIcon=JF,o.PanoramaPhotosphereSelectIcon=ZF,o.PanoramaVerticalIcon=XF,o.PanoramaVerticalSelectIcon=xF,o.PanoramaWideAngleIcon=RF,o.PanoramaWideAngleSelectIcon=eP,o.Paper=jH,o.ParaglidingIcon=nP,o.ParkIcon=oP,o.PartyModeIcon=rP,o.PasswordIcon=tP,o.PatternIcon=cP,o.PauseCircleFilledIcon=lP,o.PauseCircleIcon=aP,o.PauseCircleOutlineIcon=sP,o.PauseIcon=iP,o.PausePresentationIcon=dP,o.PaymentIcon=uP,o.PaymentsIcon=fP,o.PedalBikeIcon=AP,o.PendingActionsIcon=yP,o.PendingIcon=_P,o.PentagonIcon=hP,o.PeopleAltIcon=IP,o.PeopleIcon=gP,o.PeopleOutlineIcon=bP,o.PercentIcon=pP,o.PermCameraMicIcon=wP,o.PermContactCalendarIcon=kP,o.PermDataSettingIcon=mP,o.PermDeviceInformationIcon=vP,o.PermIdentityIcon=KP,o.PermMediaIcon=CP,o.PermPhoneMsgIcon=SP,o.PermScanWifiIcon=BP,o.Person2Icon=FP,o.Person3Icon=PP,o.Person4Icon=DP,o.PersonAddAlt1Icon=TP,o.PersonAddAltIcon=MP,o.PersonAddDisabledIcon=OP,o.PersonAddIcon=NP,o.PersonIcon=EP,o.PersonOffIcon=LP,o.PersonOutlineIcon=QP,o.PersonPinCircleIcon=WP,o.PersonPinIcon=VP,o.PersonRemoveAlt1Icon=zP,o.PersonRemoveIcon=GP,o.PersonSearchIcon=HP,o.PersonalInjuryIcon=UP,o.PersonalVideoIcon=YP,o.PestControlIcon=$P,o.PestControlRodentIcon=jP,o.PetsIcon=qP,o.PhishingIcon=JP,o.PhoneAndroidIcon=XP,o.PhoneBluetoothSpeakerIcon=xP,o.PhoneCallbackIcon=RP,o.PhoneDisabledIcon=e1,o.PhoneEnabledIcon=n1,o.PhoneForwardedIcon=o1,o.PhoneIcon=ZP,o.PhoneIphoneIcon=r1,o.PhoneLockedIcon=t1,o.PhoneMissedIcon=c1,o.PhonePausedIcon=i1,o.PhonelinkEraseIcon=l1,o.PhonelinkIcon=a1,o.PhonelinkLockIcon=s1,o.PhonelinkOffIcon=d1,o.PhonelinkRingIcon=u1,o.PhonelinkSetupIcon=f1,o.PhotoAlbumIcon=_1,o.PhotoCameraBackIcon=h1,o.PhotoCameraFrontIcon=g1,o.PhotoCameraIcon=y1,o.PhotoFilterIcon=I1,o.PhotoIcon=A1,o.PhotoLibraryIcon=b1,o.PhotoSizeSelectActualIcon=p1,o.PhotoSizeSelectLargeIcon=w1,o.PhotoSizeSelectSmallIcon=k1,o.PhpIcon=m1,o.PianoIcon=v1,o.PianoOffIcon=K1,o.PictureAsPdfIcon=C1,o.PictureInPictureAltIcon=B1,o.PictureInPictureIcon=S1,o.PieChartIcon=E1,o.PieChartOutlineIcon=F1,o.PinDropIcon=D1,o.PinEndIcon=N1,o.PinIcon=P1,o.PinInvokeIcon=M1,o.PinchIcon=T1,o.PivotTableChartIcon=O1,o.PixIcon=L1,o.PlaceIcon=Q1,o.PlagiarismIcon=V1,o.PlayArrowIcon=W1,o.PlayCircleFilledIcon=z1,o.PlayCircleIcon=G1,o.PlayCircleOutlineIcon=H1,o.PlayDisabledIcon=U1,o.PlayForWorkIcon=Y1,o.PlayLessonIcon=$1,o.PlaylistAddCheckCircleIcon=J1,o.PlaylistAddCheckIcon=q1,o.PlaylistAddCircleIcon=Z1,o.PlaylistAddIcon=j1,o.PlaylistPlayIcon=X1,o.PlaylistRemoveIcon=x1,o.PlumbingIcon=R1,o.PlusOneIcon=eD,o.PodcastsIcon=nD,o.PointOfSaleIcon=oD,o.PolicyIcon=rD,o.PollIcon=tD,o.PolylineIcon=cD,o.PolymerIcon=iD,o.PoolIcon=aD,o.PortableWifiOffIcon=lD,o.PortraitIcon=sD,o.PostAddIcon=dD,o.PowerIcon=uD,o.PowerInputIcon=fD,o.PowerOffIcon=AD,o.PowerSettingsNewIcon=_D,o.PrecisionManufacturingIcon=yD,o.PregnantWomanIcon=hD,o.PresentToAllIcon=gD,o.PreviewIcon=ID,o.PriceChangeIcon=bD,o.PriceCheckIcon=pD,o.PrintDisabledIcon=kD,o.PrintIcon=wD,o.PriorityHighIcon=mD,o.PrivacyTipIcon=vD,o.PrivateConnectivityIcon=KD,o.ProductionQuantityLimitsIcon=CD,o.PropaneIcon=SD,o.PropaneTankIcon=BD,o.PropertyFieldBinding=bn,o.PropertyPreview=Ke,o.PsychologyAltIcon=FD,o.PsychologyIcon=ED,o.PublicIcon=PD,o.PublicOffIcon=DD,o.PublishIcon=ND,o.PublishedWithChangesIcon=MD,o.PunchClockIcon=TD,o.PushPinIcon=OD,o.QrCode2Icon=QD,o.QrCodeIcon=LD,o.QrCodeScannerIcon=VD,o.QueryBuilderIcon=WD,o.QueryStatsIcon=GD,o.QuestionAnswerIcon=zD,o.QuestionMarkIcon=HD,o.QueueIcon=UD,o.QueueMusicIcon=YD,o.QueuePlayNextIcon=$D,o.QuickreplyIcon=jD,o.QuizIcon=qD,o.RMobiledataIcon=JD,o.RadarIcon=ZD,o.RadioButtonCheckedIcon=xD,o.RadioButtonUncheckedIcon=RD,o.RadioIcon=XD,o.RailwayAlertIcon=eN,o.RamenDiningIcon=nN,o.RampLeftIcon=oN,o.RampRightIcon=rN,o.RateReviewIcon=tN,o.RawOffIcon=cN,o.RawOnIcon=iN,o.ReadMoreIcon=aN,o.ReadOnlyFieldBinding=rt,o.RealEstateAgentIcon=lN,o.ReceiptIcon=sN,o.ReceiptLongIcon=dN,o.RecentActorsIcon=uN,o.RecommendIcon=fN,o.RecordVoiceOverIcon=AN,o.RectangleIcon=_N,o.RecyclingIcon=yN,o.RedeemIcon=hN,o.RedoIcon=gN,o.ReduceCapacityIcon=IN,o.ReferenceFieldBinding=ki,o.ReferencePreview=on,o.ReferencePreviewContainer=Co,o.ReferenceSelectionInner=ra,o.RefreshIcon=bN,o.RememberMeIcon=pN,o.RemoveCircleIcon=Tc,o.RemoveCircleOutlineIcon=wN,o.RemoveDoneIcon=kN,o.RemoveFromQueueIcon=mN,o.RemoveIcon=oo,o.RemoveModeratorIcon=vN,o.RemoveRedEyeIcon=KN,o.RemoveRoadIcon=CN,o.RemoveShoppingCartIcon=SN,o.ReorderIcon=BN,o.RepartitionIcon=EN,o.RepeatFieldBinding=Ki,o.RepeatIcon=Kr,o.RepeatOnIcon=FN,o.RepeatOneIcon=PN,o.RepeatOneOnIcon=DN,o.Replay10Icon=MN,o.Replay30Icon=TN,o.Replay5Icon=ON,o.ReplayCircleFilledIcon=LN,o.ReplayIcon=NN,o.ReplyAllIcon=VN,o.ReplyIcon=QN,o.ReportGmailerrorredIcon=GN,o.ReportIcon=WN,o.ReportOffIcon=zN,o.ReportProblemIcon=HN,o.RequestPageIcon=UN,o.RequestQuoteIcon=YN,o.ResetTvIcon=$N,o.RestartAltIcon=jN,o.RestaurantIcon=qN,o.RestaurantMenuIcon=JN,o.RestoreFromTrashIcon=XN,o.RestoreIcon=ZN,o.RestorePageIcon=xN,o.ReviewsIcon=RN,o.RiceBowlIcon=eM,o.RingVolumeIcon=nM,o.RocketIcon=oM,o.RocketLaunchIcon=rM,o.RollerShadesClosedIcon=cM,o.RollerShadesIcon=tM,o.RollerSkatingIcon=iM,o.RoofingIcon=aM,o.RoomIcon=lM,o.RoomPreferencesIcon=sM,o.RoomServiceIcon=dM,o.Rotate90DegreesCcwIcon=uM,o.Rotate90DegreesCwIcon=fM,o.RotateLeftIcon=AM,o.RotateRightIcon=_M,o.RoundaboutLeftIcon=yM,o.RoundaboutRightIcon=hM,o.RoundedCornerIcon=gM,o.RouteIcon=IM,o.RouteWrapper=Jo,o.RouterIcon=bM,o.RowingIcon=pM,o.RssFeedIcon=wM,o.RsvpIcon=kM,o.RttIcon=mM,o.RuleFolderIcon=KM,o.RuleIcon=vM,o.RunCircleIcon=CM,o.RunningWithErrorsIcon=SM,o.RvHookupIcon=BM,o.SafetyCheckIcon=EM,o.SafetyDividerIcon=FM,o.SailingIcon=PM,o.SanitizerIcon=DM,o.SatelliteAltIcon=MM,o.SatelliteIcon=NM,o.SaveAltIcon=OM,o.SaveAsIcon=LM,o.SaveIcon=TM,o.SavedSearchIcon=QM,o.SavingsIcon=VM,o.Scaffold=wH,o.ScaleIcon=WM,o.ScannerIcon=GM,o.ScatterPlotIcon=zM,o.ScheduleIcon=Oc,o.ScheduleSendIcon=HM,o.SchemaIcon=UM,o.SchoolIcon=YM,o.ScienceIcon=$M,o.ScoreIcon=jM,o.ScoreboardIcon=qM,o.ScreenLockLandscapeIcon=JM,o.ScreenLockPortraitIcon=ZM,o.ScreenLockRotationIcon=XM,o.ScreenRotationAltIcon=RM,o.ScreenRotationIcon=xM,o.ScreenSearchDesktopIcon=eT,o.ScreenShareIcon=nT,o.ScreenshotIcon=oT,o.ScreenshotMonitorIcon=rT,o.ScubaDivingIcon=tT,o.SdCardAlertIcon=aT,o.SdCardIcon=iT,o.SdIcon=cT,o.SdStorageIcon=lT,o.SearchBar=Qt,o.SearchIcon=sc,o.SearchOffIcon=sT,o.SecurityIcon=dT,o.SecurityUpdateGoodIcon=fT,o.SecurityUpdateIcon=uT,o.SecurityUpdateWarningIcon=AT,o.SegmentIcon=_T,o.Select=xe,o.SelectAllIcon=yT,o.SelectFieldBinding=qr,o.SelectGroup=qH,o.SelectItem=Re,o.SelfImprovementIcon=hT,o.SellIcon=gT,o.SendAndArchiveIcon=bT,o.SendIcon=IT,o.SendTimeExtensionIcon=pT,o.SendToMobileIcon=wT,o.SensorDoorIcon=kT,o.SensorOccupiedIcon=mT,o.SensorWindowIcon=vT,o.SensorsIcon=KT,o.SensorsOffIcon=CT,o.SentimentDissatisfiedIcon=ST,o.SentimentNeutralIcon=BT,o.SentimentSatisfiedAltIcon=FT,o.SentimentSatisfiedIcon=ET,o.SentimentVeryDissatisfiedIcon=PT,o.SentimentVerySatisfiedIcon=DT,o.SetMealIcon=NT,o.SettingsAccessibilityIcon=TT,o.SettingsApplicationsIcon=OT,o.SettingsBackupRestoreIcon=LT,o.SettingsBluetoothIcon=QT,o.SettingsBrightnessIcon=VT,o.SettingsCellIcon=WT,o.SettingsEthernetIcon=GT,o.SettingsIcon=MT,o.SettingsInputAntennaIcon=zT,o.SettingsInputComponentIcon=HT,o.SettingsInputCompositeIcon=UT,o.SettingsInputHdmiIcon=YT,o.SettingsInputSvideoIcon=$T,o.SettingsOverscanIcon=jT,o.SettingsPhoneIcon=qT,o.SettingsPowerIcon=JT,o.SettingsRemoteIcon=ZT,o.SettingsSuggestIcon=XT,o.SettingsSystemDaydreamIcon=xT,o.SettingsVoiceIcon=RT,o.SevereColdIcon=e2,o.ShapeLineIcon=n2,o.ShareIcon=o2,o.ShareLocationIcon=r2,o.Sheet=Vt,o.ShieldIcon=t2,o.ShieldMoonIcon=c2,o.Shop2Icon=a2,o.ShopIcon=i2,o.ShopTwoIcon=l2,o.ShoppingBagIcon=s2,o.ShoppingBasketIcon=d2,o.ShoppingCartCheckoutIcon=f2,o.ShoppingCartIcon=u2,o.ShortTextIcon=Lc,o.ShortcutIcon=A2,o.ShowChartIcon=_2,o.ShowerIcon=y2,o.ShuffleIcon=h2,o.ShuffleOnIcon=g2,o.ShutterSpeedIcon=I2,o.SickIcon=b2,o.SideDialogs=O3,o.SignLanguageIcon=p2,o.SignalCellular0BarIcon=w2,o.SignalCellular4BarIcon=k2,o.SignalCellularAlt1BarIcon=v2,o.SignalCellularAlt2BarIcon=K2,o.SignalCellularAltIcon=m2,o.SignalCellularConnectedNoInternet0BarIcon=C2,o.SignalCellularConnectedNoInternet4BarIcon=S2,o.SignalCellularNoSimIcon=B2,o.SignalCellularNodataIcon=E2,o.SignalCellularNullIcon=F2,o.SignalCellularOffIcon=P2,o.SignalWifi0BarIcon=D2,o.SignalWifi4BarIcon=N2,o.SignalWifi4BarLockIcon=M2,o.SignalWifiBadIcon=T2,o.SignalWifiConnectedNoInternet4Icon=O2,o.SignalWifiOffIcon=L2,o.SignalWifiStatusbar4BarIcon=Q2,o.SignalWifiStatusbarConnectedNoInternet4Icon=V2,o.SignalWifiStatusbarNullIcon=W2,o.SignpostIcon=G2,o.SimCardAlertIcon=H2,o.SimCardDownloadIcon=U2,o.SimCardIcon=z2,o.SingleBedIcon=Y2,o.SipIcon=$2,o.SkateboardingIcon=j2,o.SkeletonPropertyComponent=Dn,o.SkipNextIcon=q2,o.SkipPreviousIcon=J2,o.SleddingIcon=Z2,o.SlideshowIcon=X2,o.SlowMotionVideoIcon=x2,o.SmartButtonIcon=R2,o.SmartDisplayIcon=eO,o.SmartScreenIcon=nO,o.SmartToyIcon=oO,o.SmartphoneIcon=rO,o.SmokeFreeIcon=tO,o.SmokingRoomsIcon=cO,o.SmsFailedIcon=aO,o.SmsIcon=iO,o.SnackbarProvider=OH,o.SnippetFolderIcon=lO,o.SnoozeIcon=sO,o.SnowboardingIcon=dO,o.SnowmobileIcon=uO,o.SnowshoeingIcon=fO,o.SoapIcon=AO,o.SocialDistanceIcon=_O,o.SolarPowerIcon=yO,o.SortByAlphaIcon=gO,o.SortIcon=hO,o.SosIcon=IO,o.SoupKitchenIcon=bO,o.SourceIcon=pO,o.SouthAmericaIcon=kO,o.SouthEastIcon=mO,o.SouthIcon=wO,o.SouthWestIcon=vO,o.SpaIcon=KO,o.SpaceBarIcon=CO,o.SpaceDashboardIcon=SO,o.SpatialAudioIcon=BO,o.SpatialAudioOffIcon=EO,o.SpatialTrackingIcon=FO,o.SpeakerGroupIcon=DO,o.SpeakerIcon=PO,o.SpeakerNotesIcon=NO,o.SpeakerNotesOffIcon=MO,o.SpeakerPhoneIcon=TO,o.SpeedIcon=OO,o.SpellcheckIcon=LO,o.Spinner=JH,o.SplitscreenIcon=QO,o.SpokeIcon=VO,o.SportsBarIcon=GO,o.SportsBaseballIcon=zO,o.SportsBasketballIcon=HO,o.SportsCricketIcon=UO,o.SportsEsportsIcon=YO,o.SportsFootballIcon=$O,o.SportsGolfIcon=jO,o.SportsGymnasticsIcon=qO,o.SportsHandballIcon=JO,o.SportsHockeyIcon=ZO,o.SportsIcon=WO,o.SportsKabaddiIcon=XO,o.SportsMartialArtsIcon=xO,o.SportsMmaIcon=RO,o.SportsMotorsportsIcon=eL,o.SportsRugbyIcon=nL,o.SportsScoreIcon=oL,o.SportsSoccerIcon=rL,o.SportsTennisIcon=tL,o.SportsVolleyballIcon=cL,o.SquareFootIcon=aL,o.SquareIcon=iL,o.SsidChartIcon=lL,o.StackedBarChartIcon=sL,o.StackedLineChartIcon=dL,o.StadiumIcon=uL,o.StairsIcon=fL,o.StarBorderIcon=Sr,o.StarBorderPurple500Icon=AL,o.StarHalfIcon=_L,o.StarIcon=Cr,o.StarOutlineIcon=yL,o.StarPurple500Icon=hL,o.StarRateIcon=gL,o.StarsIcon=IL,o.StartIcon=bL,o.StayCurrentLandscapeIcon=pL,o.StayCurrentPortraitIcon=wL,o.StayPrimaryLandscapeIcon=kL,o.StayPrimaryPortraitIcon=mL,o.StickyNote2Icon=vL,o.StopCircleIcon=CL,o.StopIcon=KL,o.StopScreenShareIcon=SL,o.StorageIcon=BL,o.StorageThumbnail=zc,o.StorageThumbnailInternal=Uc,o.StorageUploadFieldBinding=nt,o.StoreIcon=EL,o.StoreMallDirectoryIcon=FL,o.StorefrontIcon=PL,o.StormIcon=DL,o.StraightIcon=NL,o.StraightenIcon=ML,o.StreamIcon=TL,o.StreetviewIcon=OL,o.StrikethroughSIcon=LL,o.StringPropertyPreview=Dr,o.StrollerIcon=QL,o.StyleIcon=VL,o.SubdirectoryArrowLeftIcon=WL,o.SubdirectoryArrowRightIcon=GL,o.SubjectIcon=Qc,o.SubscriptIcon=zL,o.SubscriptionsIcon=HL,o.SubtitlesIcon=UL,o.SubtitlesOffIcon=YL,o.SubwayIcon=$L,o.SummarizeIcon=jL,o.SuperscriptIcon=qL,o.SupervisedUserCircleIcon=JL,o.SupervisorAccountIcon=ZL,o.SupportAgentIcon=xL,o.SupportIcon=XL,o.SurfingIcon=RL,o.SurroundSoundIcon=e4,o.SwapCallsIcon=n4,o.SwapHorizIcon=o4,o.SwapHorizontalCircleIcon=r4,o.SwapVertIcon=t4,o.SwapVerticalCircleIcon=c4,o.SwipeDownAltIcon=l4,o.SwipeDownIcon=a4,o.SwipeIcon=i4,o.SwipeLeftAltIcon=d4,o.SwipeLeftIcon=s4,o.SwipeRightAltIcon=f4,o.SwipeRightIcon=u4,o.SwipeUpAltIcon=_4,o.SwipeUpIcon=A4,o.SwipeVerticalIcon=y4,o.SwitchAccessShortcutAddIcon=g4,o.SwitchAccessShortcutIcon=h4,o.SwitchAccountIcon=I4,o.SwitchCameraIcon=b4,o.SwitchControl=ez,o.SwitchFieldBinding=pi,o.SwitchLeftIcon=p4,o.SwitchRightIcon=w4,o.SwitchVideoIcon=k4,o.SynagogueIcon=m4,o.SyncAltIcon=K4,o.SyncDisabledIcon=C4,o.SyncIcon=v4,o.SyncLockIcon=S4,o.SyncProblemIcon=B4,o.SystemSecurityUpdateGoodIcon=F4,o.SystemSecurityUpdateIcon=E4,o.SystemSecurityUpdateWarningIcon=P4,o.SystemUpdateAltIcon=N4,o.SystemUpdateIcon=D4,o.Tab=xo,o.TabIcon=M4,o.TabUnselectedIcon=T4,o.Table=ZH,o.TableBarIcon=O4,o.TableBody=XH,o.TableCell=eU,o.TableChartIcon=L4,o.TableHeader=xH,o.TableRestaurantIcon=Q4,o.TableRow=RH,o.TableRowsIcon=V4,o.TableViewIcon=W4,o.TabletAndroidIcon=z4,o.TabletIcon=G4,o.TabletMacIcon=H4,o.Tabs=ga,o.TagFacesIcon=Y4,o.TagIcon=U4,o.TakeoutDiningIcon=$4,o.TapAndPlayIcon=j4,o.TapasIcon=q4,o.TaskAltIcon=Z4,o.TaskIcon=J4,o.TaxiAlertIcon=X4,o.TempleBuddhistIcon=x4,o.TempleHinduIcon=R4,o.TerminalIcon=eQ,o.TerrainIcon=nQ,o.TextDecreaseIcon=oQ,o.TextField=An,o.TextFieldBinding=Tn,o.TextFieldsIcon=rQ,o.TextFormatIcon=tQ,o.TextIncreaseIcon=cQ,o.TextRotateUpIcon=iQ,o.TextRotateVerticalIcon=aQ,o.TextRotationAngledownIcon=lQ,o.TextRotationAngleupIcon=sQ,o.TextRotationDownIcon=dQ,o.TextRotationNoneIcon=uQ,o.TextSnippetIcon=fQ,o.TextareaAutosize=gt,o.TextsmsIcon=AQ,o.TextureIcon=_Q,o.TheaterComedyIcon=yQ,o.TheatersIcon=hQ,o.ThermostatAutoIcon=IQ,o.ThermostatIcon=gQ,o.ThumbDownAltIcon=pQ,o.ThumbDownIcon=bQ,o.ThumbDownOffAltIcon=wQ,o.ThumbUpAltIcon=mQ,o.ThumbUpIcon=kQ,o.ThumbUpOffAltIcon=vQ,o.ThumbsUpDownIcon=KQ,o.ThunderstormIcon=CQ,o.TimeToLeaveIcon=SQ,o.TimelapseIcon=BQ,o.TimelineIcon=EQ,o.Timer10Icon=PQ,o.Timer10SelectIcon=DQ,o.Timer3Icon=NQ,o.Timer3SelectIcon=MQ,o.TimerIcon=FQ,o.TimerOffIcon=TQ,o.TipsAndUpdatesIcon=OQ,o.TireRepairIcon=LQ,o.TitleIcon=QQ,o.TocIcon=VQ,o.TodayIcon=WQ,o.ToggleOffIcon=GQ,o.ToggleOnIcon=zQ,o.TokenIcon=HQ,o.TollIcon=UQ,o.TonalityIcon=YQ,o.Tooltip=ye,o.TopicIcon=$Q,o.TornadoIcon=jQ,o.TouchAppIcon=qQ,o.TourIcon=JQ,o.ToysIcon=ZQ,o.TrackChangesIcon=XQ,o.TrafficIcon=xQ,o.TrainIcon=RQ,o.TramIcon=eV,o.TranscribeIcon=nV,o.TransferWithinAStationIcon=oV,o.TransformIcon=rV,o.TransgenderIcon=tV,o.TransitEnterexitIcon=cV,o.TranslateIcon=iV,o.TravelExploreIcon=aV,o.TrendingDownIcon=lV,o.TrendingFlatIcon=sV,o.TrendingUpIcon=dV,o.TripOriginIcon=uV,o.TroubleshootIcon=fV,o.TryIcon=AV,o.TsunamiIcon=_V,o.TtyIcon=yV,o.TuneIcon=hV,o.TungstenIcon=gV,o.TurnLeftIcon=IV,o.TurnRightIcon=bV,o.TurnSharpLeftIcon=pV,o.TurnSharpRightIcon=wV,o.TurnSlightLeftIcon=kV,o.TurnSlightRightIcon=mV,o.TurnedInIcon=vV,o.TurnedInNotIcon=KV,o.TvIcon=CV,o.TvOffIcon=SV,o.TwoWheelerIcon=BV,o.TypeSpecimenIcon=EV,o.Typography=j,o.UTurnLeftIcon=FV,o.UTurnRightIcon=PV,o.UmbrellaIcon=DV,o.UnarchiveIcon=NV,o.UndoIcon=MV,o.UnfoldLessDoubleIcon=OV,o.UnfoldLessIcon=TV,o.UnfoldMoreDoubleIcon=QV,o.UnfoldMoreIcon=LV,o.UnpublishedIcon=VV,o.UnsubscribeIcon=WV,o.UpcomingIcon=GV,o.UpdateDisabledIcon=HV,o.UpdateIcon=zV,o.UpgradeIcon=UV,o.UploadFileIcon=Vc,o.UploadIcon=YV,o.UrlComponentPreview=ro,o.UsbIcon=$V,o.UsbOffIcon=jV,o.VaccinesIcon=qV,o.VapeFreeIcon=JV,o.VapingRoomsIcon=ZV,o.VerifiedIcon=XV,o.VerifiedUserIcon=xV,o.VerticalAlignBottomIcon=RV,o.VerticalAlignCenterIcon=e5,o.VerticalAlignTopIcon=n5,o.VerticalDistributeIcon=o5,o.VerticalShadesClosedIcon=t5,o.VerticalShadesIcon=r5,o.VerticalSplitIcon=c5,o.VibrationIcon=i5,o.VideoCallIcon=a5,o.VideoCameraBackIcon=l5,o.VideoCameraFrontIcon=s5,o.VideoChatIcon=d5,o.VideoFileIcon=u5,o.VideoLabelIcon=f5,o.VideoLibraryIcon=A5,o.VideoSettingsIcon=_5,o.VideoStableIcon=y5,o.VideocamIcon=h5,o.VideocamOffIcon=g5,o.VideogameAssetIcon=I5,o.VideogameAssetOffIcon=b5,o.ViewAgendaIcon=p5,o.ViewArrayIcon=w5,o.ViewCarouselIcon=k5,o.ViewColumnIcon=m5,o.ViewComfyAltIcon=K5,o.ViewComfyIcon=v5,o.ViewCompactAltIcon=S5,o.ViewCompactIcon=C5,o.ViewCozyIcon=B5,o.ViewDayIcon=E5,o.ViewHeadlineIcon=F5,o.ViewInArIcon=P5,o.ViewKanbanIcon=D5,o.ViewListIcon=N5,o.ViewModuleIcon=M5,o.ViewQuiltIcon=T5,o.ViewSidebarIcon=O5,o.ViewStreamIcon=Wc,o.ViewTimelineIcon=L5,o.ViewWeekIcon=Q5,o.VignetteIcon=V5,o.VillaIcon=W5,o.VirtualTable=Yi,o.VisibilityIcon=G5,o.VisibilityOffIcon=z5,o.VoiceChatIcon=H5,o.VoiceOverOffIcon=U5,o.VoicemailIcon=Y5,o.VolcanoIcon=$5,o.VolumeDownIcon=j5,o.VolumeMuteIcon=q5,o.VolumeOffIcon=J5,o.VolumeUpIcon=Z5,o.VolunteerActivismIcon=X5,o.VpnKeyIcon=x5,o.VpnKeyOffIcon=R5,o.VpnLockIcon=eW,o.VrpanoIcon=nW,o.WalletIcon=oW,o.WallpaperIcon=rW,o.WarehouseIcon=tW,o.WarningAmberIcon=iW,o.WarningIcon=cW,o.WashIcon=aW,o.WatchIcon=lW,o.WatchLaterIcon=sW,o.WatchOffIcon=dW,o.WaterDamageIcon=fW,o.WaterDropIcon=AW,o.WaterIcon=uW,o.WaterfallChartIcon=_W,o.WavesIcon=yW,o.WavingHandIcon=hW,o.WbAutoIcon=gW,o.WbCloudyIcon=IW,o.WbIncandescentIcon=bW,o.WbIridescentIcon=pW,o.WbShadeIcon=wW,o.WbSunnyIcon=kW,o.WbTwilightIcon=mW,o.WcIcon=vW,o.WebAssetIcon=CW,o.WebAssetOffIcon=SW,o.WebIcon=KW,o.WebStoriesIcon=BW,o.WebhookIcon=EW,o.WeekendIcon=FW,o.WestIcon=PW,o.WhatshotIcon=DW,o.WheelchairPickupIcon=NW,o.WhereToVoteIcon=MW,o.WidgetsIcon=TW,o.WidthFullIcon=OW,o.WidthNormalIcon=LW,o.WidthWideIcon=QW,o.Wifi1BarIcon=WW,o.Wifi2BarIcon=GW,o.WifiCalling3Icon=HW,o.WifiCallingIcon=zW,o.WifiChannelIcon=UW,o.WifiFindIcon=YW,o.WifiIcon=VW,o.WifiLockIcon=$W,o.WifiOffIcon=jW,o.WifiPasswordIcon=qW,o.WifiProtectedSetupIcon=JW,o.WifiTetheringErrorIcon=XW,o.WifiTetheringIcon=ZW,o.WifiTetheringOffIcon=xW,o.WindPowerIcon=RW,o.WindowIcon=eG,o.WineBarIcon=nG,o.Woman2Icon=rG,o.WomanIcon=oG,o.WorkHistoryIcon=cG,o.WorkIcon=tG,o.WorkOffIcon=iG,o.WorkOutlineIcon=aG,o.WorkspacePremiumIcon=lG,o.WorkspacesIcon=sG,o.WrapTextIcon=dG,o.WrongLocationIcon=uG,o.WysiwygIcon=fG,o.YardIcon=AG,o.YoutubeSearchedForIcon=_G,o.ZoomInIcon=yG,o.ZoomInMapIcon=hG,o.ZoomOutIcon=gG,o.ZoomOutMapIcon=IG,o._10kIcon=rl,o._10mpIcon=tl,o._11mpIcon=cl,o._123Icon=nl,o._12mpIcon=il,o._13mpIcon=al,o._14mpIcon=ll,o._15mpIcon=sl,o._16mpIcon=dl,o._17mpIcon=ul,o._18UpRatingIcon=fl,o._18mpIcon=Al,o._19mpIcon=_l,o._1kIcon=yl,o._1kPlusIcon=hl,o._1xMobiledataIcon=gl,o._20mpIcon=Il,o._21mpIcon=bl,o._22mpIcon=pl,o._23mpIcon=wl,o._24mpIcon=kl,o._2kIcon=ml,o._2kPlusIcon=vl,o._2mpIcon=Kl,o._30fpsIcon=Cl,o._30fpsSelectIcon=Sl,o._360Icon=ol,o._3dRotationIcon=Bl,o._3gMobiledataIcon=El,o._3kIcon=Fl,o._3kPlusIcon=Pl,o._3mpIcon=Dl,o._3pIcon=Nl,o._4gMobiledataIcon=Ml,o._4gPlusMobiledataIcon=Tl,o._4kIcon=Ol,o._4kPlusIcon=Ll,o._4mpIcon=Ql,o._5gIcon=Vl,o._5kIcon=Wl,o._5kPlusIcon=Gl,o._5mpIcon=zl,o._60fpsIcon=Hl,o._60fpsSelectIcon=Ul,o._6FtApartIcon=Yl,o._6kIcon=$l,o._6kPlusIcon=jl,o._6mpIcon=ql,o._7kIcon=Jl,o._7kPlusIcon=Zl,o._7mpIcon=Xl,o._8kIcon=xl,o._8kPlusIcon=Rl,o._8mpIcon=es,o._9kIcon=ns,o._9kPlusIcon=os,o._9mpIcon=rs,o.addInitialSlash=Ha,o.buildAdditionalFieldDelegate=DH,o.buildCollection=KH,o.buildEntityCallbacks=PH,o.buildEnumLabel=qc,o.buildEnumValueConfig=FH,o.buildEnumValues=EH,o.buildFieldConfig=NH,o.buildProperties=SH,o.buildPropertiesOrBuilder=BH,o.buildProperty=CH,o.canCreateEntity=Vo,o.canDeleteEntity=At,o.canEditEntity=ft,o.cardClickableMixin=ic,o.cardMixin=cc,o.cardSelectedMixin=Za,o.cn=E,o.coolIconKeys=hr,o.debounce=Li,o.defaultBorderMixin=ue,o.defaultDateFormat=oi,o.deleteEntityWithCallbacks=nc,o.enumToObjectEntries=sn,o.fieldBackgroundDisabledMixin=en,o.fieldBackgroundHoverMixin=ze,o.fieldBackgroundInvisibleMixin=yr,o.fieldBackgroundMixin=qe,o.flattenObject=_t,o.focusedClasses=_r,o.focusedInvisibleMixin=Ar,o.focusedMixin=ge,o.fullPathToCollectionSegments=Xe,o.getArrayValuesCount=Qi,o.getBracketNotation=Qz,o.getCollectionByPathOrAlias=Io,o.getCollectionPathsCombinations=bo,o.getColorForProperty=Lz,o.getColorScheme=jc,o.getDefaultValueFor=Eo,o.getDefaultValueForDataType=zr,o.getDefaultValuesFor=ao,o.getFieldConfig=Lo,o.getFieldId=at,o.getHashValue=Vr,o.getIcon=Ti,o.getIconForProperty=we,o.getIconForView=Wo,o.getIconForWidget=dt,o.getIdIcon=Oz,o.getLabelOrConfigFrom=vo,o.getLastSegment=Ua,o.getPropertiesWithPropertiesOrder=Mi,o.getPropertyInPath=pn,o.getRandomId=fo,o.getReferenceFrom=In,o.getReferencePreviewKeys=Oi,o.getResolvedPropertyInPath=ut,o.getValueInPath=dn,o.hydrateRegExp=si,o.iconKeys=lc,o.isEmptyObject=Gr,o.isEnumValueDisabled=NG,o.isHidden=io,o.isObject=Bo,o.isPropertyBuilder=We,o.isReadOnly=Nn,o.isReferenceProperty=Ni,o.isValidRegExp=XG,o.joinCollectionLists=UG,o.mergeCollections=Ur,o.mergeDeep=Ze,o.paperMixin=He,o.pick=ii,o.plural=Vz,o.randomColor=JG,o.randomString=Mn,o.removeFunctions=Qr,o.removeInPath=GG,o.removeInitialAndTrailingSlashes=be,o.removeInitialSlash=$t,o.removeTrailingSlash=jt,o.removeUndefined=Wr,o.renderSkeletonCaptionText=EG,o.renderSkeletonIcon=Pr,o.renderSkeletonImageThumbnail=Fr,o.renderSkeletonText=nn,o.resolveArrayProperty=un,o.resolveCollection=Me,o.resolveCollectionPathAliases=tr,o.resolveDefaultSelectedView=$r,o.resolveEnumValues=Tz,o.resolveNavigationFrom=oc,o.resolvePermissions=so,o.resolveProperties=lt,o.resolveProperty=Te,o.resolvePropertyEnum=st,o.sanitizeData=HG,o.saveEntityWithCallbacks=dr,o.segmentsToStrippedPath=li,o.serializeRegExp=ZG,o.singular=Wz,o.slugify=Po,o.sortProperties=Yr,o.stripCollectionPath=jr,o.toKebabCase=$G,o.toSnakeCase=qG,o.traverseValueProperty=Fo,o.traverseValuesProperties=Hr,o.unslugify=za,o.updateDateAutoValues=zG,o.useAuthController=yn,o.useAutoComplete=LH,o.useBreadcrumbsContext=fr,o.useBrowserTitleAndIcon=qa,o.useBuildLocalConfigurationPersistence=TH,o.useBuildModeController=MH,o.useClearRestoreValue=Ne,o.useClipboard=rc,o.useCollectionFetch=ec,o.useCollectionTableController=Ct,o.useDataSource=Qe,o.useDebounce=Do,o.useDebounceValue=xG,o.useEntityFetch=sr,o.useFireCMSContext=re,o.useLargeLayout=Ge,o.useModeController=ur,o.useNavigationContext=Ae,o.useOutsideAlerter=Mo,o.useReferenceDialog=xn,o.useResolvedNavigationFrom=Ya,o.useSelectionController=Bt,o.useSideDialogContext=Uo,o.useSideDialogsController=Xn,o.useSideEntityController=Cn,o.useSnackbarController=cn,o.useStorageSource=Sn,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
|
|
587
|
+
`;function dn({propertyKey:e,value:t,error:o,showError:a,isSubmitting:n,setValue:i,tableMode:s,property:l,includeDescription:c,underlyingValueHasChanged:p,context:f,disabled:h}){if(Z(),!Array.isArray(l.resolvedProperties))throw Error("ArrayCustomShapedFieldBinding misconfiguration. Property `of` not set");const g=l.expanded===void 0?!0:l.expanded;Se({property:l,value:t,setValue:i});const m=r.jsx(we,{icon:fe(l,"small"),required:l.validation?.required,className:"text-text-secondary dark:text-text-secondary-dark",title:l.name}),A=l.resolvedProperties.map((b,y)=>{const k={propertyKey:`${e}[${y}]`,disabled:h,property:b,includeDescription:c,underlyingValueHasChanged:p,context:f,tableMode:!1,partOfArray:!0,partOfBlock:!1,autoFocus:!1};return r.jsx("div",{className:"pb-4",children:r.jsx(st,{...k})},`custom_shaped_array_${y}`)});return r.jsxs(r.Fragment,{children:[!s&&r.jsx(u.ExpandablePanel,{initiallyExpanded:g,title:m,className:"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",children:A}),s&&A,r.jsx(ye,{includeDescription:c,showError:a,error:o,disabled:h,property:l})]})}const il=({containerRef:e})=>{const{isSubmitting:t,isValidating:o,errors:a}=xe.useFormikContext();return d.useEffect(()=>{const n=Object.keys(a);if(n.length>0&&t&&!o){const i=e?.current?.querySelector(`#form_field_${n[0]}`);if(i&&e?.current){const s=pn(e.current);if(s){const c=i.getBoundingClientRect().top;s.scrollTo({top:s.scrollTop+c-64,behavior:"smooth"})}const l=i.querySelector("input");l&&l.focus()}}},[t,o,a,e]),null},sl=e=>{const t=e&&e.scrollHeight>e.clientHeight,o=e?window.getComputedStyle(e).overflowY:null,a=o&&o.indexOf("hidden")!==-1;return t&&!a},pn=e=>!e||e===document.body?document.body:sl(e)?e:pn(e.parentNode);function ll({customId:e,entityId:t,status:o,onChange:a,error:n,entity:i}){const s=o==="existing"||!e,l=o!=="existing"&&!e,c=d.useMemo(()=>{if(!(!e||typeof e=="boolean"||e==="optional"))return qe(e)},[e]),p=Xe(),{copy:f}=ua({onSuccess:m=>p.open({type:"success",message:`Copied ${m}`})}),h=Z(),g={label:l?"ID is set automatically":"ID",disabled:s,name:"id",value:(i&&o==="existing"?i.id:t)??"",endAdornment:i?r.jsxs(r.Fragment,{children:[r.jsx(u.Tooltip,{title:"Copy",children:r.jsx(u.IconButton,{onClick:m=>f(i.id),"aria-label":"copy-id",children:r.jsx(u.ContentCopyIcon,{size:"small"})})}),h?.entityLinkBuilder&&r.jsx(u.Tooltip,{title:"Open in the console",children:r.jsx(u.IconButton,{component:"a",href:h.entityLinkBuilder({entity:i}),rel:"noopener noreferrer",target:"_blank",onClick:m=>m.stopPropagation(),"aria-label":"go-to-datasource",children:r.jsx(u.OpenInNewIcon,{size:"small"})})})]}):void 0};return r.jsxs(r.Fragment,{children:[c&&r.jsx(u.Select,{error:n,onValueChange:m=>a(m),...g,renderValue:m=>{const A=c.find(b=>b.id===m);return A?`${A.id} - ${A.label}`:m},children:c.map(m=>r.jsx(u.SelectItem,{value:String(m.id),children:r.jsx(ke,{enumKey:m.id,enumValues:c,size:"medium"})},m.id))}),!c&&r.jsx(u.TextField,{...g,error:n,placeholder:e==="optional"?"Autogenerated ID, it can be manually changed":o==="new"||o==="copy"?"ID of the new document":"ID of the document",onChange:m=>{let A=m.target.value;return A&&(A=A.trim()),a(A.length?A:void 0)}}),r.jsx(xe.ErrorMessage,{name:"id",component:"div",children:m=>"You need to specify an ID"})]})}function un({entityOrEntitiesToDelete:e,collection:t,onClose:o,open:a,callbacks:n,onEntityDelete:i,onMultipleEntitiesDelete:s,path:l}){const c=De();console.log("dataSource",c);const p=Xe(),[f,h]=d.useState(!1),[g,m]=d.useState(),[A,b]=d.useState(),y=Z();d.useEffect(()=>{if(e){const I=Array.isArray(e)&&e.length===1?e[0]:e;m(I),b(Array.isArray(I))}},[e]);const k=d.useMemo(()=>Be({collection:t,path:l,fields:y.propertyConfigs}),[t,l]),v=d.useCallback(()=>{o()},[o]),_=d.useCallback(I=>{console.debug("Deleted",I)},[]),E=d.useCallback((I,M)=>{p.open({type:"error",message:"Error deleting: "+M?.message}),console.error("Error deleting entity"),console.error(M)},[k.name]),C=d.useCallback((I,M)=>{p.open({type:"error",message:"Error before deleting: "+M?.message}),console.error(M)},[k.name]),B=d.useCallback((I,M)=>{p.open({type:"error",message:"Error after deleting: "+M?.message}),console.error(M)},[k.name]),x=d.useCallback(I=>da({dataSource:c,entity:I,collection:k,callbacks:n,onDeleteSuccess:_,onDeleteFailure:E,onPreDeleteHookError:C,onDeleteSuccessHookError:B,context:y}),[c,k,n,_,E,C,B,y]),F=d.useCallback(async()=>{g&&(h(!0),A?Promise.all(g.map(x)).then(I=>{h(!1),s&&g&&s(l,g),I.every(Boolean)?p.open({type:"success",message:`${k.name}: multiple deleted`}):I.some(Boolean)?p.open({type:"warning",message:`${k.name}: Some of the entities have been deleted, but not all`}):p.open({type:"error",message:`${k.name}: Error deleting entities`}),o()}):x(g).then(I=>{h(!1),I&&(i&&g&&i(l,g),p.open({type:"success",message:`${k.singularName??k.name} deleted`}),o())}))},[g,A,x,s,l,o,p,k.name,i]);let S;if(g&&A)S=r.jsx(r.Fragment,{children:"Multiple entities"});else{const I=g;S=I?r.jsx(Xr,{entity:I,collection:t,path:l}):r.jsx(r.Fragment,{})}const P=A?r.jsxs(r.Fragment,{children:[r.jsx("b",{children:k.name}),": Confirm multiple delete?"]}):`Would you like to delete this ${k.singularName??k.name}?`;return r.jsxs(u.Dialog,{maxWidth:"2xl","aria-labelledby":"delete-dialog",open:a,onOpenChange:I=>I?void 0:o(),children:[r.jsxs(u.DialogContent,{fullHeight:!0,children:[r.jsx(u.Typography,{variant:"subtitle2",className:"p-4",children:P}),!A&&r.jsx("div",{className:"p-4",children:S})]}),r.jsxs(u.DialogActions,{children:[f&&r.jsx(u.CircularProgress,{size:"small"}),r.jsx(u.Button,{onClick:v,disabled:f,variant:"text",color:"primary",children:"Cancel"}),r.jsx(u.Button,{autoFocus:!0,disabled:f,onClick:F,variant:"filled",color:"primary",children:"Ok"})]})]})}const cl={icon:r.jsx(u.KeyboardTabIcon,{}),name:"Edit",collapsed:!1,onClick({entity:e,collection:t,context:o,highlightEntity:a,unhighlightEntity:n}){return a?.(e),o.onAnalyticsEvent?.("entity_click",{path:e.path,entityId:e.id}),o.sideEntityController.open({entityId:e.id,path:e.path,collection:t,updateUrl:!0,onClose:()=>n?.(e)}),Promise.resolve(void 0)}},mn={icon:r.jsx(u.FileCopyIcon,{}),name:"Copy",onClick({entity:e,collection:t,context:o,highlightEntity:a,unhighlightEntity:n}){return a?.(e),o.onAnalyticsEvent?.("copy_entity_click",{path:e.path,entityId:e.id}),o.sideEntityController.open({entityId:e.id,path:e.path,copy:!0,collection:t,updateUrl:!0,onClose:()=>n?.(e)}),Promise.resolve(void 0)}},fn={icon:r.jsx(u.DeleteIcon,{}),name:"Delete",onClick({entity:e,fullPath:t,collection:o,context:a,selectionController:n,onCollectionChange:i,sideEntityController:s}){const{closeDialog:l}=a.dialogsController.open({key:"delete_entity_dialog_"+e.id,Component:({open:c})=>{if(!o||!t)throw new Error("deleteEntityAction: Collection is undefined");return r.jsx(un,{entityOrEntitiesToDelete:e,path:t,collection:o,callbacks:o.callbacks,open:c,onEntityDelete:()=>{a.onAnalyticsEvent?.("single_entity_deleted",{path:t}),n?.setSelectedEntities(n.selectedEntities.filter(p=>p.id!==e.id)),i?.(),s?.close()},onClose:l})}});return Promise.resolve(void 0)}},hn=d.memo(dl,(e,t)=>e.status===t.status&&e.path===t.path&&ne(e.entity?.values,t.entity?.values));function dl({status:e,path:t,collection:o,entity:a,onEntitySaveRequested:n,onDiscard:i,onModified:s,onValuesChanged:l,onIdChange:c,onFormContextChange:p,hideId:f,autoSave:h,onIdUpdateError:g}){const m=Z(),A=De(),b=m.plugins,y=d.useMemo(()=>Be({collection:o,path:t,values:a?.values,fields:m.propertyConfigs}),[a?.values,t]),k=(e==="new"||e==="copy")&&!!y.customId&&y.customId!=="optional",v=d.useMemo(()=>e==="new"||e==="copy"?k?void 0:A.generateEntityId(t):a?.id,[]),_=d.useRef(!1),E=d.useMemo(()=>{const N=y.properties;if((e==="existing"||e==="copy")&&a)return a.values??St(N);if(e==="new")return St(N);throw console.error({status:e,entity:a}),new Error("Form has not been initialised with the correct parameters")},[e,y,a]),[C,B]=d.useState(v),[x,F]=d.useState(!1),[S,P]=d.useState(),I=d.useRef(a?.values??E),M=I.current,[L,U]=d.useState(M),V=N=>{U(N),l&&l(N),h&&N&&!ne(N,M)&&R(N)};d.useEffect(()=>{C&&c&&c(C)},[C,c]);const X=Be({collection:o,path:t,entityId:C,values:L,previousValues:M,fields:m.propertyConfigs}),H=o.callbacks?.onIdUpdate;d.useEffect(()=>{if(H&&L&&(e==="new"||e==="copy"))try{const N=H({collection:X,path:t,entityId:C,values:L,context:m});B(N)}catch(N){g&&g(N),console.error(N)}},[C,L,e]);const D=d.useMemo(()=>M&&e==="existing"?Object.entries(X.properties).map(([N,O])=>{if(Bt(O))return{};const Y=M[N],J=E[N];return ne(Y,J)?{}:{[N]:J}}).reduce((N,O)=>({...N,...O}),{}):{},[E,X.properties,M,e]),R=N=>n({collection:X,path:t,entityId:C,values:N,previousValues:a?.values,closeAfterSave:_.current,autoSave:h??!1}).then(O=>{const Y=e==="new"?"new_entity_saved":e==="copy"?"entity_copied":e==="existing"?"entity_edited":"unmapped_event";m.onAnalyticsEvent?.(Y,{path:t}),I.current=N}).catch(O=>{console.error(O),P(O)}).finally(()=>{_.current=!1}),q=(N,O)=>{if(k&&!C){console.error("Missing custom Id"),F(!0),O.setSubmitting(!1);return}if(P(void 0),F(!1),e==="existing"){if(!a?.id)throw Error("Form misconfiguration when saving, no id for existing entity")}else if(e==="new"||e==="copy"){if(o.customId&&o.customId!=="optional"&&!C)throw Error("Form misconfiguration when saving, entityId should be set")}else throw Error("New FormType added, check EntityForm");R(N)?.then(Y=>{O.resetForm({values:N,submitCount:0,touched:{}})}).finally(()=>{O.setSubmitting(!1)})},$=d.useCallback(({name:N,value:O,property:Y})=>A.checkUniqueField(t,N,O,C),[A,t,C]),W=d.useMemo(()=>C?Da(C,X.properties,$):void 0,[C,X.properties,$]),te=Je(),ie=d.useCallback(({entity:N,customEntityActions:O})=>{const Y=ft(o,te,Me(t),null),J=N?Xt(o,te,Me(t),N):!0,T=[];return Y&&T.push(mn),J&&T.push(fn),O&&T.push(...O),T},[te,o,t]);return r.jsx(xe.Formik,{initialValues:E,onSubmit:q,validationSchema:W,validate:N=>console.debug("Validating",N),onReset:()=>i&&i(),children:N=>{const O=[],Y={setFieldValue:N.setFieldValue,values:N.values,collection:X,entityId:C,path:t,save:R};if(d.useEffect(()=>{p&&p(Y)},[p,Y]),b&&o){const J={entityId:C,path:t,status:e,collection:o,context:m,currentEntityId:C,formContext:Y};O.push(...b.map((T,Q)=>T.form?.Actions?r.jsx(T.form.Actions,{...J},`actions_${T.name}`):null).filter(Boolean))}return r.jsxs("div",{className:"h-full overflow-auto",children:[O.length>0&&r.jsx("div",{className:u.cn("w-full flex justify-end items-center sticky top-0 right-0 left-0 z-10 bg-opacity-60 bg-slate-200 dark:bg-opacity-60 dark:bg-slate-800 backdrop-blur-md"),children:O}),r.jsxs("div",{className:"pl-4 pr-4 pt-12 pb-16 md:pl-8",children:[r.jsxs("div",{className:`w-full py-2 flex flex-col items-start mt-${4+(O?8:0)} lg:mt-${8+(O?8:0)} mb-8`,children:[r.jsx(u.Typography,{className:"mt-4 flex-grow "+o.hideIdFromForm?"mb-2":"mb-0",variant:"h4",children:o.singularName??o.name}),r.jsx(u.Alert,{color:"base",className:"w-full",size:"small",children:r.jsxs("code",{className:"text-xs select-all",children:[t,"/",C]})})]}),!f&&r.jsx(ll,{customId:o.customId,entityId:C,status:e,onChange:B,error:x,entity:a}),C&&r.jsx(pl,{...N,initialValues:M,onModified:s,onValuesChanged:V,underlyingChanges:D,entity:a,resolvedCollection:X,formContext:Y,status:e,savingError:S,closeAfterSaveRef:_,autoSave:h,entityActions:ie({entity:a,customEntityActions:o.entityActions})})]})]})}})}function pl(e){const{values:t,onModified:o,onValuesChanged:a,underlyingChanges:n,formContext:i,entity:s,touched:l,setFieldValue:c,resolvedCollection:p,isSubmitting:f,status:h,handleSubmit:g,savingError:m,dirty:A,closeAfterSaveRef:b,autoSave:y,entityActions:k}=e,v=Z(),_=k.filter(S=>S.includeInForm===void 0||S.includeInForm),E=Ze(),C=A;d.useEffect(()=>{o&&o(C),a&&a(t)},[C,t]),d.useEffect(()=>{!y&&n&&s&&Object.entries(n).forEach(([S,P])=>{const I=t[S];!ne(P,I)&&!l[S]&&(console.debug("Updated value from the datasource:",S,P),c(S,P!==void 0?P:null))})},[y,n,s,t,l,c]);const B=r.jsx("div",{className:"flex flex-col gap-8",children:(p.propertiesOrder??Object.keys(p.properties)).map(S=>{const P=p.properties[S];if(!P)return console.warn(`Property ${S} not found in collection ${p.name}`),null;const I=!!n&&Object.keys(n).includes(S)&&!!l[S],M=!y&&f||ut(P)||!!P.disabled;if(Bt(P))return null;const U={propertyKey:S,disabled:M,property:P,includeDescription:P.description||P.longDescription,underlyingValueHasChanged:I&&!y,context:i,tableMode:!1,partOfArray:!1,partOfBlock:!1,autoFocus:!1};return r.jsx("div",{id:`form_field_${S}`,children:r.jsx(oe,{children:r.jsx(st,{...U})})},`field_${p.name}_${S}`)}).filter(Boolean)}),x=f||!C&&h==="existing",F=d.useRef(null);return r.jsxs(xe.Form,{onSubmit:g,noValidate:!0,children:[r.jsxs("div",{className:"mt-12",ref:F,children:[B,r.jsx(il,{containerRef:F})]}),r.jsx("div",{className:"h-14"}),!y&&r.jsxs(u.DialogActions,{position:"absolute",children:[m&&r.jsx("div",{className:"text-right",children:r.jsx(u.Typography,{color:"error",children:m.message})}),s&&_.length>0&&r.jsx("div",{className:"flex-grow flex overflow-auto no-scrollbar",children:_.map(S=>r.jsx(u.IconButton,{color:"primary",onClick:P=>{P.stopPropagation(),s&&S.onClick({entity:s,fullPath:p.path,collection:p,context:v,sideEntityController:E})},children:S.icon},S.name))}),r.jsx(u.Button,{variant:"text",disabled:x,type:"reset",children:h==="existing"?"Discard":"Clear"}),r.jsxs(u.Button,{variant:"text",color:"primary",type:"submit",disabled:x,onClick:()=>{b.current=!1},children:[h==="existing"&&"Save",h==="copy"&&"Create copy",h==="new"&&"Create"]}),r.jsxs(u.Button,{variant:"filled",color:"primary",type:"submit",disabled:x,onClick:()=>{b.current=!0},children:[h==="existing"&&"Save and close",h==="copy"&&"Create copy and close",h==="new"&&"Create and close"]})]})]})}function ul(e){return e.open?r.jsx(ml,{...e}):null}function ml({tableKey:e,entity:t,customFieldValidator:o,propertyKey:a,collection:n,path:i,cellRect:s,open:l,onClose:c,onCellValueChange:p,container:f}){const h=Z(),[g,m]=d.useState(),[A,b]=d.useState(),y=t?.id,[k,v]=d.useState(t),[_,E]=d.useState(k?.values),C=n?Be({collection:n,path:i,values:_,entityId:y,fields:h.propertyConfigs}):void 0,B=Gs(),x=d.useRef(null),F=d.useRef(null),S=d.useRef(!1),P=d.useCallback(()=>{if(!s)throw Error("getInitialLocation error");return{x:s.left<B.width-s.right?s.x+s.width/2:s.x-s.width/2,y:s.top<B.height-s.bottom?s.y+s.height/2:s.y-s.height/2}},[s,B.height,B.width]),I=d.useCallback(({x:D,y:R})=>{const q=x.current?.getBoundingClientRect();if(!q)throw Error("normalizePosition called before draggableBoundingRect is set");return{x:Math.max(0,Math.min(D,B.width-q.width)),y:Math.max(0,Math.min(R,B.height-q.height))}},[B]),M=d.useCallback(D=>{const R=x.current?.getBoundingClientRect();if(!s||!R)return;const q=D??I(P());(!A||q.x!==A.x||q.y!==A.y)&&b(q)},[s,P,I,A]);Vs({containerRef:x,innerRef:F,x:A?.x,y:A?.y,onMove:M}),d.useEffect(()=>{S.current=!1},[a,k]),d.useLayoutEffect(()=>{const D=x.current?.getBoundingClientRect();!s||!D||S.current||(M(),S.current=!0)},[s,M,S.current]),d.useLayoutEffect(()=>{M(A)},[B,s]);const L=d.useMemo(()=>{if(!(!C||!y))return Da(y,a&&C.properties[a]?{[a]:C.properties[a]}:{},o)},[C,y,a,o]),U=d.useCallback(()=>M(A),[A,M]),V=async D=>(m(null),n&&k&&p&&a?p({value:D[a],propertyKey:a,entity:k,setError:m,onValueUpdated:()=>{},fullPath:i,context:h}):Promise.resolve());if(!k)return r.jsx(r.Fragment,{});const X=k&&r.jsxs("div",{className:`text-gray-900 dark:text-white overflow-auto rounded rounded-md bg-white dark:bg-gray-950 ${l?"":"hidden"} cursor-grab max-w-[100vw]`,children:[r.jsx(xe.Formik,{initialValues:k?.values??{},enableReinitialize:!0,validationSchema:L,validateOnMount:!0,validate:D=>console.debug("Validating",D),onSubmit:(D,R)=>{V(D).then(()=>c()).finally(()=>R.setSubmitting(!1))},children:({values:D,setFieldValue:R,handleSubmit:q,isSubmitting:$})=>{if(d.useEffect(()=>{ne(D,_)||E(D)},[D]),!k)return r.jsx(he,{error:"PopupFormField misconfiguration"});if(!C)return r.jsx(r.Fragment,{});const W=$,te={collection:C,entityId:y,values:D,path:i,setFieldValue:R,save:V},ie=a&&at(C.properties,a),N=a&&ie?{propertyKey:a,disabled:$||ut(ie)||!!ie.disabled,property:ie,includeDescription:!1,underlyingValueHasChanged:!1,context:te,tableMode:!0,partOfArray:!1,partOfBlock:!1,autoFocus:l}:void 0;let O=r.jsx(r.Fragment,{children:r.jsx("div",{className:"w-[560px] max-w-full max-h-[85vh]",children:r.jsxs(xe.Form,{onSubmit:q,noValidate:!0,children:[r.jsx("div",{className:"mb-1 p-4 flex flex-col relative",children:r.jsx("div",{ref:F,className:"cursor-auto",style:{cursor:"auto !important"},children:N&&r.jsx(st,{...N})})}),r.jsx(u.DialogActions,{children:r.jsx(u.Button,{variant:"filled",color:"primary",type:"submit",disabled:W,children:"Save"})})]})},`popup_form_${e}_${y}_${a}`)});const Y=h.plugins;return Y&&Y.forEach(J=>{J.form?.provider&&(O=r.jsx(J.form.provider.Component,{status:"existing",path:i,collection:C,entity:k,context:h,currentEntityId:y,formContext:te,...J.form.provider.props,children:O}))}),O}}),g&&r.jsx(u.Typography,{color:"error",children:g.message})]}),H=r.jsxs("div",{style:{boxShadow:"0 0 0 2px rgba(128,128,128,0.2)"},className:`inline-block fixed z-20 shadow-outline rounded-md bg-white dark:bg-gray-950 ${l?"visible":"invisible"} cursor-grab overflow-visible`,ref:x,children:[r.jsx(Ys,{onResize:U}),r.jsxs("div",{className:"overflow-hidden",children:[X,r.jsx("div",{className:"absolute -top-3.5 -right-3.5 bg-gray-500 rounded-full",style:{width:"32px",height:"32px"},children:r.jsx(u.IconButton,{size:"small",onClick:D=>{D.stopPropagation(),c()},children:r.jsx(u.ClearIcon,{className:"text-white",size:"small"})})})]})]},`draggable_${a}_${y}_${l}`);return r.jsx(Yn.Root,{asChild:!0,container:f,children:H})}const fl="collectionGroupParent",bo=d.memo(function({fullPath:t,parentCollectionIds:o,isSubCollection:a,className:n,...i}){const s=De(),l=le(),c=Ze(),p=Je(),f=gt(),h=Z(),g=d.useRef(null),m=d.useMemo(()=>{const j=f?.getCollectionConfig(t);return j?Pe(i,j):i},[i,t,f?.getCollectionConfig]),A=ft(m,p,Me(t),null),[b,y]=d.useState(void 0),[k,v]=d.useState(void 0),[_,E]=d.useState(!1),[C,B]=d.useState(0),[x,F]=d.useState(0),S=d.useCallback(()=>{const j=b;setTimeout(()=>{j===b&&y(void 0)},2400)},[b]),P=d.useCallback(j=>Mr(m,p,Me(t),j??null)?m.inlineEditing===void 0||m.inlineEditing:!1,[m,p,t]),I=m.selectionEnabled===void 0||m.selectionEnabled,M=!P(),[L,U]=d.useState(!1),V=yo(),X=m.selectionController??V,{selectedEntities:H,toggleEntitySelection:D,isEntitySelected:R,setSelectedEntities:q}=X;d.useEffect(()=>{v(void 0)},[H]);const $=co({fullPath:t,collection:m,entitiesDisplayedFirst:[],lastDeleteTimestamp:C}),W=d.useRef(Math.random().toString(36)),te=$.popupCell,ie=d.useCallback(()=>{$.setPopupCell?.(void 0)},[$.setPopupCell]),N=d.useCallback(j=>(y(j),h.onAnalyticsEvent?.("edit_entity_clicked",{path:j.path,entityId:j.id}),c.open({entityId:j.id,path:j.path,collection:m,updateUrl:!0,onClose:S})),[t,m,c]),O=d.useCallback(()=>{h.onAnalyticsEvent?.("new_entity_click",{path:t}),c.open({path:t,collection:m,updateUrl:!0,onClose:S})},[t,m,c]);d.useCallback(j=>{h.onAnalyticsEvent?.("single_delete_dialog_open",{path:t}),v(j)},[h,t]);const Y=d.useCallback(()=>{h.onAnalyticsEvent?.("multiple_delete_dialog_open",{path:t}),v(H)},[h,t,H]),J=d.useCallback((j,ee)=>{h.onAnalyticsEvent?.("single_entity_deleted",{path:t}),q(ae=>ae.filter(re=>re.id!==ee.id)),B(Date.now())},[h,t,q]),T=d.useCallback((j,ee)=>{h.onAnalyticsEvent?.("multiple_entities_deleted",{path:t}),q([]),v(void 0),B(Date.now())},[q]);let Q;h?.plugins&&(Q=h.plugins.find(j=>j.collectionView?.AddColumnComponent)?.collectionView?.AddColumnComponent);const K=d.useCallback((j,ee)=>{if(f){const ae=f.getCollectionConfig(j),re=Pe(ae,ee);f.onCollectionModified(j,re)}},[f]),ce=d.useCallback(({width:j,key:ee})=>{if(!at(m.properties,ee))return;const ae=gn(ee,j);K(t,ae)},[m,K,t]),Fe=d.useCallback(j=>{f&&K(t,{defaultSize:j})},[K,t,f]),ve=ft(m,p,Me(t),null),ze=d.useCallback(({name:j,value:ee,property:ae,entityId:re})=>s.checkUniqueField(t,j,ee,re),[t]),_e=({fullPath:j,context:ee,value:ae,propertyKey:re,onValueUpdated:G,setError:se,entity:Ne})=>{const Ye=xe.setIn({...Ne.values},re,ae),ge={path:j,entityId:Ne.id,values:Ye,previousValues:Ne.values,collection:m,status:"existing"};return Yr({...ge,collection:m,callbacks:m.callbacks,dataSource:s,context:ee,onSaveSuccess:()=>G(),onSaveFailure:je=>{console.error("Save failure"),console.error(je),se(je)}})},Re=l.resolveAliasesFrom(t),Ve=d.useMemo(()=>Be({collection:m,path:t,fields:h.propertyConfigs}),[m,t]),lt=d.useCallback(({propertyKey:j,propertyValue:ee,entity:ae})=>{let re=at(m.properties,j);return re||(re=at(Ve.properties,j)),Ee({propertyKey:j,propertyOrBuilder:re,path:t,propertyValue:ee,values:ae.values,entityId:ae.id,fields:h.propertyConfigs})},[m.properties,h.propertyConfigs,t,Ve.properties]),et=Ja(Ve,!0),Qt=d.useMemo(()=>{const j=m.subcollections?.map(ae=>({key:no(ae),name:ae.name,width:200,dependencies:[],Builder:({entity:re})=>r.jsx(u.Button,{color:"primary",variant:"outlined",startIcon:r.jsx(u.KeyboardTabIcon,{size:"small"}),onClick:G=>{G.stopPropagation(),c.open({path:t,entityId:re.id,selectedSubPath:ae.id??ae.path,collection:m,updateUrl:!0})},children:ae.name})}))??[],ee=m.collectionGroup?[{key:fl,name:"Parent entities",width:260,dependencies:[],Builder:({entity:ae})=>{const re=l.getParentReferencesFromPath(ae.path);return r.jsx(r.Fragment,{children:re.map(G=>r.jsx(Oe,{reference:G,size:"tiny"},G.path+"/"+G.id))})}}]:[];return[...m.additionalFields??[],...j,...ee]},[m,t]),_t=d.useCallback(()=>{B(Date.now())},[]),tt=Ie(),ct=d.useCallback(({entity:j,customEntityActions:ee})=>{const ae=j?Xt(m,p,Me(t),j):!0,re=[cl];return ve&&re.push(mn),ae&&re.push(fn),ee&&re.push(...ee),re},[p,m,ve,t]),Dt=d.useCallback(()=>{const j=ct({}),ee=j.filter(G=>G.collapsed!==!1),re=j.filter(G=>G.collapsed===!1).length*(tt?40:30);return(tt?80+re:70+re)+(ee.length>0?tt?40:30:0)},[tt,ct]),Ot=d.useCallback(({entity:j,size:ee,width:ae,frozen:re})=>{const G=R(j),se=ct({entity:j,customEntityActions:m.entityActions});return r.jsx(nr,{entity:j,width:ae,frozen:re,isSelected:G,selectionEnabled:I,size:ee,highlightEntity:y,unhighlightEntity:S,collection:m,fullPath:t,actions:se,hideId:m?.hideIdFromCollection,onCollectionChange:_t,selectionController:X})},[R,m,p,t,I,D,ve]),z=r.jsx(u.Popover,{open:L,onOpenChange:U,enabled:!!m.description,trigger:r.jsxs("div",{className:"flex flex-col items-start",children:[r.jsx(u.Typography,{variant:"subtitle1",className:`leading-none truncate max-w-[160px] lg:max-w-[240px] ${m.description?"cursor-pointer":"cursor-auto"}`,onClick:m.description?j=>{U(!0),j.stopPropagation()}:void 0,children:`${m.name}`}),r.jsx(hl,{fullPath:t,collection:m,filter:$.filterValues,sortBy:$.sortBy,onCountChange:F})]}),children:m.description&&r.jsx("div",{className:"m-4 text-gray-900 dark:text-white",children:r.jsx(u.Markdown,{source:m.description})})});function me({property:j,propertyKey:ee,onHover:ae}){return h.plugins?r.jsx(r.Fragment,{children:h.plugins.filter(re=>re.collectionView?.HeaderAction).map((re,G)=>{const se=re.collectionView.HeaderAction;return r.jsx(se,{onHover:ae,propertyKey:ee,property:j,fullPath:t,collection:m,parentCollectionIds:o??[]},`plugin_header_action_${G}`)})}):null}const ue=Q?function(){return typeof Q=="function"?r.jsx(Q,{fullPath:t,parentCollectionIds:o??[],collection:m}):null}:void 0,[Qe,rt]=d.useState(!1);let $e,Ge=!!m.textSearchEnabled;return h?.plugins&&($e=h.plugins?.find(ee=>!!ee.collectionView?.onTextSearchClick)?()=>{E(!0),Promise.all(h.plugins?.map(ee=>ee.collectionView?.onTextSearchClick?ee.collectionView.onTextSearchClick({context:h,path:Re,collection:m,parentCollectionIds:o}):Promise.resolve(!0))).then(ee=>{ee.every(Boolean)&&rt(!0)}).finally(()=>E(!1))}:void 0,h.plugins?.forEach(ee=>{Ge||ee.collectionView?.showTextSearchBar&&(Ge=ee.collectionView.showTextSearchBar({context:h,path:Re,collection:m,parentCollectionIds:o}))})),r.jsxs("div",{className:u.cn("overflow-hidden h-full w-full",n),ref:g,children:[r.jsx(lo,{additionalFields:Qt,tableController:$,displayedColumnIds:et,onSizeChanged:Fe,onEntityClick:N,onColumnResize:ce,onValueChange:_e,tableRowActionsBuilder:Ot,uniqueFieldValidator:ze,title:z,selectionController:X,highlightedEntities:b?[b]:[],defaultSize:m.defaultSize,properties:Ve.properties,getPropertyFor:lt,onTextSearchClick:Qe?void 0:$e,textSearchLoading:_,textSearchEnabled:Ge,actions:r.jsx(zs,{parentCollectionIds:o??[],collection:m,tableController:$,onMultipleDeleteClick:Y,onNewClick:O,path:t,relativePath:m.path,selectionController:X,selectionEnabled:I,collectionEntitiesCount:x}),emptyComponent:A&&$.filterValues===void 0&&$.sortBy===void 0?r.jsxs("div",{className:"flex flex-col items-center justify-center",children:[r.jsx(u.Typography,{variant:"subtitle2",children:"So empty..."}),r.jsxs(u.Button,{color:"primary",variant:"outlined",onClick:O,className:"mt-4",children:[r.jsx(u.AddIcon,{}),"Create your first entity"]})]}):r.jsx(u.Typography,{variant:"label",children:"No results with the applied filter/sort"}),hoverRow:M,inlineEditing:P(),AdditionalHeaderWidget:me,AddColumnComponent:ue,getIdColumnWidth:Dt,additionalIDHeaderWidget:r.jsx(gl,{path:t,collection:m})},`collection_table_${t}`),r.jsx(ul,{open:!!te,onClose:ie,cellRect:te?.cellRect,propertyKey:te?.propertyKey,collection:m,entity:te?.entity,tableKey:W.current,customFieldValidator:ze,path:Re,onCellValueChange:_e,container:g.current},`popup_form_${te?.propertyKey}_${te?.entity?.id}`),k&&r.jsx(un,{entityOrEntitiesToDelete:k,path:t,collection:m,callbacks:m.callbacks,open:!!k,onEntityDelete:J,onMultipleEntitiesDelete:T,onClose:()=>v(void 0)})]})},ne);function yo(){const[e,t]=d.useState([]),o=d.useCallback(n=>{let i;e.map(s=>s.id).includes(n.id)?i=e.filter(s=>s.id!==n.id):i=[...e,n],t(i)},[e]),a=d.useCallback(n=>e.map(i=>i.id).includes(n.id),[e]);return{selectedEntities:e,setSelectedEntities:t,isEntitySelected:a,toggleEntitySelection:o}}function hl({fullPath:e,collection:t,filter:o,sortBy:a,onCountChange:n}){const i=De(),s=le(),[l,c]=d.useState(void 0),[p,f]=d.useState(void 0),h=a?a[0]:void 0,g=a?a[1]:void 0,m=d.useMemo(()=>s.resolveAliasesFrom(e),[e,s.resolveAliasesFrom]);return d.useEffect(()=>{i.countEntities({path:m,collection:t,filter:o,orderBy:h,order:g}).then(c).catch(f)},[e,i,m,t,o,h,g]),d.useEffect(()=>{n&&n(l??0)},[n,l]),p?null:r.jsx(u.Typography,{className:"w-full text-ellipsis block overflow-hidden whitespace-nowrap max-w-xs text-left w-fit-content",variant:"caption",color:"secondary",children:l!==void 0?`${l} entities`:r.jsx(u.Skeleton,{className:"w-full max-w-[80px] mt-1"})})}function gn(e,t){if(e.includes(".")){const[o,...a]=e.split(".");return{properties:{[o]:gn(a.join("."),t)}}}return{properties:{[e]:{columnWidth:t}}}}function gl({collection:e,path:t}){const[o,a]=d.useState(!1),[n,i]=d.useState(""),s=Ze();return r.jsx(u.Tooltip,{title:o?void 0:"Find by ID",children:r.jsx(u.Popover,{open:o,onOpenChange:a,trigger:r.jsx(u.IconButton,{size:"small",children:r.jsx(u.SearchIcon,{size:"small"})}),children:r.jsx("form",{noValidate:!0,onSubmit:l=>{if(l.preventDefault(),!!n)return a(!1),s.open({entityId:n,path:t,collection:e,updateUrl:!0})},className:"text-gray-900 dark:text-white w-96 max-w-full",children:r.jsxs("div",{className:"flex p-4 w-full gap-4",children:[r.jsx(u.TextField,{placeholder:"Find entity by ID",size:"small",onChange:l=>i(l.target.value),value:n,className:"flex-grow"}),r.jsx(u.Button,{variant:"outlined",disabled:!n,type:"submit",children:"Go"})]})})})})}function An({onSingleEntitySelected:e,onMultipleEntitiesSelected:t,multiselect:o,collection:a,path:n,selectedEntityIds:i,description:s,forceFilter:l,maxSelection:c}){const p=dr(),f=Ze(),h=le(),g=Z(),m=h.resolveAliasesFrom(n),A=De(),[b,y]=d.useState([]),k=yo();d.useEffect(()=>{let I=!1;const M=i?.map(L=>L?.toString()).filter(Boolean);return M&&a?Promise.all(M.map(L=>A.fetchEntity({path:m,entityId:L,collection:a}))).then(L=>{if(!I){const U=L.filter(V=>V!==void 0);k.setSelectedEntities(U),y(U)}}):(k.setSelectedEntities([]),y([])),()=>{I=!0}},[A,m,i,a,k.setSelectedEntities]);const v=()=>{g.onAnalyticsEvent?.("reference_selection_clear",{path:m}),k.setSelectedEntities([]),!o&&e?e(null):t&&t([])},_=I=>{console.debug("ReferenceSelectionInner toggleEntitySelection",I);let M;const L=k.selectedEntities;if(g.onAnalyticsEvent?.("reference_selection_toggle",{path:m,entityId:I.id}),L){if(L.map(U=>U.id).indexOf(I.id)>-1)M=L.filter(U=>U.id!==I.id);else{if(c&&L.length>=c)return;M=[...L,I]}k.setSelectedEntities(M),t&&t(M)}},E=I=>{console.debug("ReferenceSelectionInner onEntityClick",I),!o&&e?(g.onAnalyticsEvent?.("reference_selected_single",{path:m,entityId:I.id}),e(I),p.close(!1)):_(I)},C=()=>{g.onAnalyticsEvent?.("reference_selection_new_entity",{path:m}),f.open({path:m,collection:a,updateUrl:!0,onUpdate:({entity:I})=>{y([I,...b]),E(I)},closeOnSave:!0})},B=({entity:I,size:M,width:L,frozen:U})=>{const V=k.selectedEntities,X=V&&V.map(H=>H.id).indexOf(I.id)>-1;return r.jsx(nr,{width:L,frozen:U,entity:I,size:M,isSelected:X,selectionEnabled:o,hideId:a?.hideIdFromCollection,fullPath:m,selectionController:k})},x=d.useCallback(I=>{I.stopPropagation(),p.close(!1)},[p]);if(!a)return r.jsx(he,{error:"Could not find collection with id "+a});const F=d.useMemo(()=>Be({collection:a,path:m,values:{},fields:g.propertyConfigs}),[a,g.propertyConfigs,m]),S=Ja(F,!1),P=co({fullPath:m,collection:a,entitiesDisplayedFirst:b,forceFilter:l});return r.jsxs("div",{className:"flex flex-col h-full",children:[r.jsx("div",{className:"flex-grow",children:b&&r.jsx(lo,{displayedColumnIds:S,onEntityClick:E,tableController:P,tableRowActionsBuilder:B,title:r.jsx(u.Typography,{variant:"subtitle2",children:a.singularName?`Select ${a.singularName}`:`Select from ${a.name}`}),defaultSize:a.defaultSize,properties:F.properties,forceFilter:l,inlineEditing:!1,selectionController:k,actions:r.jsx(Al,{collection:a,path:m,onNewClick:C,onClear:v})})}),r.jsxs(u.DialogActions,{translucent:!1,children:[s&&r.jsx(u.Typography,{variant:"body2",className:"flex-grow text-left",children:s}),r.jsx(u.Button,{onClick:x,color:"primary",variant:"filled",children:"Done"})]})]})}function Al({collection:e,path:t,onClear:o,onNewClick:a}){const n=Je(),i=Ie(),s=a?c=>{c.preventDefault(),a()}:void 0,l=ft(e,n,Me(t),null)&&s&&(i?r.jsxs(u.Button,{onClick:s,startIcon:r.jsx(u.AddIcon,{}),variant:"outlined",color:"primary",children:["Add ",e.singularName??e.name]}):r.jsx(u.Button,{onClick:s,size:"medium",variant:"outlined",color:"primary",children:r.jsx(u.AddIcon,{})}));return r.jsxs(r.Fragment,{children:[r.jsx(u.Button,{onClick:o,variant:"text",color:"primary",children:"Clear"}),l]})}function wo({children:e,group:t}){const o=gt();return r.jsx(u.ExpandablePanel,{invisible:!0,titleClassName:"font-medium text-sm text-gray-600 dark:text-gray-400",className:"py-4",initiallyExpanded:!(o?.collapsedGroups??[]).includes(t??"ungrouped"),onExpandedChange:a=>{if(o)if(a)o.setCollapsedGroups((o.collapsedGroups??[]).filter(n=>n!==(t??"ungrouped")));else{const n=(o.collapsedGroups??[]).concat(t??"ungrouped");o.setCollapsedGroups(n)}},title:r.jsx(u.Typography,{color:"secondary",className:"font-medium ml-1",children:t?.toUpperCase()??"Views".toUpperCase()}),children:r.jsx("div",{className:"mb-8",children:e})})}function bn({view:e,path:t,collection:o,url:a,name:n,description:i,onClick:s}){const l=gt(),c=Rt(o??e),p=de.useNavigate(),f=Z(),h=(l?.favouritePaths??[]).includes(t);let g;if(f.plugins&&o){const m={path:t,collection:o,context:f};g=r.jsx(r.Fragment,{children:f.plugins.map((A,b)=>A.homePage?.CollectionActions?r.jsx(A.homePage.CollectionActions,{...m,extraProps:A.homePage.extraProps},`actions_${b}`):null)})}return r.jsx(u.Card,{className:u.cn("h-full p-4 cursor-pointer min-h-[230px]"),onClick:()=>{s?.(),p(a),l&&l.setRecentlyVisitedPaths([t,...(l.recentlyVisitedPaths??[]).filter(m=>m!==t)])},children:r.jsxs("div",{className:"flex flex-col items-start h-full",children:[r.jsxs("div",{className:"flex-grow w-full",children:[r.jsxs("div",{className:"h-10 flex items-center w-full justify-between text-gray-300 dark:text-gray-600",children:[c,r.jsxs("div",{className:"flex items-center gap-1",onClick:m=>{m.preventDefault(),m.stopPropagation()},children:[g,l&&r.jsx(u.IconButton,{onClick:m=>{m.preventDefault(),m.stopPropagation(),h?l.setFavouritePaths(l.favouritePaths.filter(A=>A!==t)):l.setFavouritePaths([...l.favouritePaths,t])},children:h?r.jsx(u.StarIcon,{size:18,className:"text-secondary"}):r.jsx(u.StarBorderIcon,{size:18,className:"text-gray-400 dark:text-gray-500"})})]})]}),r.jsx(u.Typography,{gutterBottom:!0,variant:"h5",component:"h2",children:n}),i&&r.jsx(u.Typography,{variant:"body2",color:"secondary",component:"div",children:r.jsx(u.Markdown,{source:i})})]}),r.jsx("div",{style:{alignSelf:"flex-end"},children:r.jsx("div",{className:"p-4",children:r.jsx(u.ArrowForwardIcon,{className:"text-primary"})})})]})})}function bl({entry:e}){const t=de.useNavigate(),o=gt();if(!o)return null;const a=o.favouritePaths.includes(e.path),n=i=>{i.preventDefault(),i.stopPropagation(),a?o.setFavouritePaths(o.favouritePaths.filter(s=>s!==e.path)):o.setFavouritePaths([...o.favouritePaths,e.path])};return r.jsx(u.Chip,{onClick:()=>t(e.url),icon:a?r.jsx(u.StarIcon,{onClick:n,size:18,className:"text-secondary"}):r.jsx(u.StarBorderIcon,{onClick:n,size:18,className:"text-gray-400 dark:text-gray-500"}),children:e.name},e.path)}function yl({hidden:e}){const t=le(),o=gt();if(!o)return null;const a=(o?.favouritePaths??[]).map(n=>t.topLevelNavigation?.navigationEntries.find(i=>i.path===n)).filter(Boolean);return r.jsx(u.Collapse,{in:a.length>0,children:r.jsx("div",{className:"flex flex-row flex-wrap gap-2 pb-2 min-h-[32px]",children:a.map(n=>r.jsx(bl,{entry:n},n.path))})})}const vo={};function wl(){const e=de.useLocation(),t=d.useRef(null),[o,a]=d.useState(0),[n,i]=d.useState("down"),s=d.useCallback(()=>{!t.current||!e.key||(vo[e.key]=t.current.scrollTop,a(t.current.scrollTop),i(t.current.scrollTop>o?"down":"up"))},[t,e.key,o]);return d.useEffect(()=>{const l=t.current;if(l)return l.addEventListener("scroll",s,{passive:!0}),()=>{l&&l.removeEventListener("scroll",s)}},[t,s,e]),d.useEffect(()=>{!t.current||!vo[e.key]||t.current.scrollTo({top:vo[e.key],behavior:"auto"})},[e]),{containerRef:t,scroll:o,direction:n}}const vt=new To.Search("url");vt.addIndex("name"),vt.addIndex("description"),vt.addIndex("group"),vt.addIndex("path");function yn({additionalActions:e,additionalChildrenStart:t,additionalChildrenEnd:o}){const a=Z(),n=le();if(!n.topLevelNavigation)throw Error("Navigation not ready in FireCMSHomePage");const{containerRef:i,scroll:s,direction:l}=wl(),{navigationEntries:c,groups:p}=n.topLevelNavigation,[f,h]=d.useState(null),g=f?c.filter(v=>f.includes(v.url)):c;d.useEffect(()=>{vt.addDocuments(c)},[c]);const m=d.useCallback(v=>{if(!v||v==="")h(null);else{const _=vt.search(v);h(_.map(E=>E.url))}},[]),A=[...p];(g.filter(v=>!v.group).length>0||g.length===0)&&A.push(void 0);let b,y,k;if(a.plugins){const v={context:a};k=r.jsx(r.Fragment,{children:a.plugins.filter(_=>_.homePage?.includeSection).map((_,E)=>{const C=_.homePage.includeSection(v);return r.jsx(wo,{group:C.title,children:C.children},`plugin_section_${_.name}`)})}),b=r.jsx("div",{className:"flex flex-col gap-2",children:a.plugins.filter(_=>_.homePage?.additionalChildrenStart).map((_,E)=>r.jsx("div",{children:_.homePage.additionalChildrenStart},`plugin_children_start_${E}`))}),y=r.jsx("div",{className:"flex flex-col gap-2",children:a.plugins.filter(_=>_.homePage?.additionalChildrenEnd).map((_,E)=>r.jsx("div",{children:_.homePage.additionalChildrenEnd},`plugin_children_start_${E}`))})}return r.jsx("div",{id:"home_page",ref:i,className:"py-2 overflow-auto h-full w-full",children:r.jsxs(u.Container,{maxWidth:"6xl",children:[r.jsxs("div",{className:"w-full sticky py-4 transition-all duration-400 ease-in-out top-0 z-10 flex flex-row gap-4",style:{top:l==="down"?-84:0},children:[r.jsx(u.SearchBar,{onTextSearch:m,placeholder:"Search collections",large:!1,innerClassName:"w-full",className:"w-full flex-grow"}),e]}),r.jsx(yl,{hidden:!!f}),t,b,A.map((v,_)=>{const E=[],C={group:v,context:a};a.plugins&&a.plugins.forEach(x=>{x.homePage?.AdditionalCards&&E.push(...ir(x.homePage?.AdditionalCards))});const B=g.filter(x=>x.group===v||!x.group&&v===void 0);return B.length===0&&E.length===0?null:r.jsx(wo,{group:v,children:r.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:[B.map(x=>r.jsx("div",{className:"col-span-1",children:r.jsx(bn,{...x,onClick:()=>{const F=x.type==="collection"?"home_navigate_to_collection":x.type==="view"?"home_navigate_to_view":"unmapped_event";a.onAnalyticsEvent?.(F,{path:x.path})}})},`nav_${x.group}_${x.name}`)),E&&E.map((x,F)=>r.jsx("div",{children:r.jsx(x,{...C})},`nav_${v}_add_${F}`))]})},`plugin_section_${v}`)}),k,y,o]})})}function vl({propertyConfig:e}){const t="h-8 w-8 p-1 rounded-full shadow text-white",o=typeof e?.property=="object"?Fn(e.property):void 0;return r.jsx("div",{className:t,style:{background:e?.color??o?.color??"#888"},children:e?.Icon?Jt(e,"medium"):Jt(o,"medium")})}function wn(){return r.jsx("div",{className:"flex w-full h-full",children:r.jsxs("div",{className:"m-auto flex items-center flex-col",children:[r.jsx(u.Typography,{variant:"h4",align:"center",gutterBottom:!0,children:"Page not found"}),r.jsx(u.Typography,{align:"center",gutterBottom:!0,children:"This page does not exist or you may not have access to it"}),r.jsx(u.Button,{variant:"text",component:de.Link,to:"/",children:"Back to home"})]})})}function kl({open:e,onAccept:t,onCancel:o,title:a,loading:n,body:i}){return r.jsxs(u.Dialog,{open:e,onOpenChange:s=>s?void 0:o(),children:[r.jsxs(u.DialogContent,{children:[r.jsx(u.Typography,{variant:"h6",className:"mb-2",children:a}),i]}),r.jsxs(u.DialogActions,{children:[r.jsx(u.Button,{variant:"text",onClick:o,autoFocus:!0,children:"Cancel"}),r.jsx(u.LoadingButton,{color:"primary",type:"submit",loading:n,onClick:t,children:"Ok"})]})]})}function vn({width:e,height:t,className:o,style:a}){return r.jsxs("svg",{width:e??"100%",height:t??"100%",viewBox:"0 0 599 599",version:"1.1",style:a,className:o,xmlns:"http://www.w3.org/2000/svg",children:[r.jsxs("defs",{children:[r.jsxs("radialGradient",{cx:"28.6213569%",cy:"43.1133328%",fx:"28.6213569%",fy:"43.1133328%",r:"71.5003456%",gradientTransform:"translate(0.286214,0.431133),rotate(3.343450),scale(1.000000,0.996175),translate(-0.286214,-0.431133)",id:"radialGradient-1",children:[r.jsx("stop",{stopColor:"#FF5B79",offset:"0%"}),r.jsx("stop",{stopColor:"#FA5574",offset:"28.0930803%"}),r.jsx("stop",{stopColor:"#EC4C51",offset:"44.7242531%"}),r.jsx("stop",{stopColor:"#9543C1",offset:"71.4578165%"}),r.jsx("stop",{stopColor:"#3857B3",offset:"100%"})]}),r.jsxs("radialGradient",{cx:"53.6205516%",cy:"47.2473036%",fx:"53.6205516%",fy:"47.2473036%",r:"50.8229649%",gradientTransform:"translate(0.536206,0.472473),rotate(90.000000),scale(1.000000,1.206631),translate(-0.536206,-0.472473)",id:"radialGradient-2",children:[r.jsx("stop",{stopColor:"#68294F",stopOpacity:"0",offset:"0%"}),r.jsx("stop",{stopColor:"#5E2548",stopOpacity:"0.04641108",offset:"75.3503173%"}),r.jsx("stop",{stopColor:"#0D060B",stopOpacity:"0.437431709",offset:"100%"})]}),r.jsxs("radialGradient",{cx:"53.8605015%",cy:"48.1990423%",fx:"53.8605015%",fy:"48.1990423%",r:"59.9151549%",gradientTransform:"translate(0.538605,0.481990),rotate(180.000000),scale(1.000000,0.925027),translate(-0.538605,-0.481990)",id:"radialGradient-3",children:[r.jsx("stop",{stopColor:"#68294F",stopOpacity:"0",offset:"0%"}),r.jsx("stop",{stopColor:"#5E2548",stopOpacity:"0.04641108",offset:"84.0867343%"}),r.jsx("stop",{stopColor:"#FF0000",stopOpacity:"0.567324765",offset:"100%"})]})]}),r.jsx("g",{id:"Page-1",stroke:"none",strokeWidth:"1",fill:"none",fillRule:"evenodd",children:r.jsxs("g",{id:"firecms_logo",children:[r.jsx("circle",{fill:"url(#radialGradient-1)",cx:"299.5",cy:"299.5",r:"299.5"}),r.jsx("circle",{fill:"url(#radialGradient-2)",cx:"299.5",cy:"299.5",r:"299.5"}),r.jsx("circle",{fill:"url(#radialGradient-3)",cx:"299.5",cy:"299.5",r:"299.5"})]})})]})}const kn=function({title:t,endAdornment:o,startAdornment:a,drawerOpen:n,dropDownActions:i,includeDrawer:s,className:l,style:c,user:p}){const f=le(),h=Je(),{mode:g,toggleMode:m}=jr(),A=Ie(),b=p??h.user;let y;if(b&&b.photoURL)y=r.jsx(u.Avatar,{src:b.photoURL});else if(b===void 0||h.initialLoading)y=r.jsx("div",{className:"p-1 flex justify-center",children:r.jsx(u.Skeleton,{className:"w-10 h-10 rounded-full"})});else{const k=b?.displayName?b.displayName[0].toUpperCase():b?.email?b.email[0].toUpperCase():"A";y=r.jsx(u.Avatar,{children:k})}return r.jsx("div",{style:c,className:u.cn("pr-2",{"ml-[17rem]":n&&A,"ml-16":s&&!(n&&A)&&!a,"h-16":!0,"z-10":A,"transition-all":!0,"ease-in":!0,"duration-75":!0,"w-full":!s,"w-[calc(100%-64px)]":s&&!(n&&A),"w-[calc(100%-17rem)]":s&&n&&A,"duration-150":n&&A,fixed:!0},l),children:r.jsxs("div",{className:"flex flex-row gap-2 px-4 h-full items-center",children:[a,f&&r.jsx("div",{className:"mr-8 hidden lg:block",children:r.jsx(de.Link,{className:"visited:text-inherit visited:dark:text-inherit",to:f?.basePath??"/",children:r.jsx(u.Typography,{variant:"subtitle1",noWrap:!0,className:"ml-2 !font-medium",children:t})})}),r.jsx("div",{className:"flex-grow"}),o&&r.jsx(oe,{children:o}),r.jsx(u.IconButton,{color:"inherit","aria-label":"Open drawer",onClick:m,size:"large",children:g==="dark"?r.jsx(u.DarkModeIcon,{}):r.jsx(u.LightModeIcon,{})}),r.jsxs(u.Menu,{trigger:y,children:[i,!i&&r.jsxs(u.MenuItem,{onClick:h.signOut,children:[r.jsx(u.LogoutIcon,{}),"Log Out"]})]})]})})},_l=e=>e&&Array.isArray(e)&&e.length>0?e.map((t,o)=>t?{[vr(t)+o]:Mt()}:{}).reduce((t,o)=>({...t,...o}),{}):{};function ko({droppableId:e,addLabel:t,value:o,disabled:a=!1,buildEntry:n,size:i,onInternalIdAdded:s,includeAddButton:l,newDefaultEntry:c,onValueChange:p}){const f=o&&Array.isArray(o)&&o.length>0,h=d.useRef(_l(o)),[g,m]=d.useState(f?Object.values(h.current):[]);d.useEffect(()=>{if(f&&o&&o.length!==g.length){const v=o.map((_,E)=>{const C=vr(_)+E;if(C in h.current)return h.current[C];{const B=Mt();return h.current[C]=B,B}});m(v)}},[f,g.length,o]);const A=v=>{if(v.preventDefault(),a)return;const _=Mt(),E=[...g,_];s&&s(_),m(E),p([...o??[],c])},b=v=>{const _=[...g];_.splice(v,1),m(_),p(o.filter((E,C)=>C!==v))},y=v=>{const _=Mt(),E=o[v],C=[...g.splice(0,v+1),_,...g.splice(v+1,g.length-v-1)];s&&s(_),m(C),p([...o.slice(0,v+1),E,...o.slice(v+1)])},k=v=>{if(!v.destination)return;const _=v.source.index,E=v.destination.index,C=[...g],B=C[_];C[_]=C[E],C[E]=B,m(C),p(xl(o,_,E))};return r.jsx(pt.DragDropContext,{onDragEnd:k,children:r.jsx(pt.Droppable,{droppableId:e,renderClone:(v,_,E)=>{const C=E.source.index,B=g[C];return r.jsx(_o,{provided:v,internalId:B,index:C,size:i,disabled:a,buildEntry:n,remove:b,copy:y,isDragging:_.isDragging})},children:(v,_)=>r.jsxs("div",{...v.droppableProps,ref:v.innerRef,children:[f&&g.map((E,C)=>r.jsx(pt.Draggable,{draggableId:`array_field_${E}`,isDragDisabled:a,index:C,children:(B,x)=>r.jsx(_o,{provided:B,internalId:E,index:C,size:i,disabled:a,buildEntry:n,remove:b,copy:y,isDragging:x.isDragging})},`array_field_${E}`)),v.placeholder,l&&r.jsx("div",{className:"py-4 justify-center text-left",children:r.jsx(u.Button,{variant:"text",size:i==="small"?"small":"medium",color:"primary",disabled:a,startIcon:r.jsx(u.AddIcon,{}),onClick:A,children:t??"Add"})})]})})})}function _o({provided:e,index:t,internalId:o,size:a,disabled:n,buildEntry:i,remove:s,copy:l,isDragging:c}){const[p,f]=gr(),h=a!=="small"&&f.height===0,g=a!=="small"&&f.height<100,[m,A]=d.useState(!1),b=d.useCallback(()=>A(!0),[]),y=d.useCallback(()=>A(!1),[]);return r.jsx("div",{onMouseEnter:b,onMouseMove:b,onMouseLeave:y,ref:e.innerRef,...e.draggableProps,style:e.draggableProps.style,className:`${c||m?u.fieldBackgroundHoverMixin:""} mb-1 rounded-md opacity-100`,children:r.jsxs("div",{className:"flex items-start",children:[r.jsx("div",{ref:p,className:"flex-grow w-[calc(100%-48px)] text-text-primary dark:text-text-primary-dark",children:i(t,o)}),r.jsx(_n,{direction:a==="small"?"row":"column",disabled:n,remove:s,index:t,provided:e,measuring:h,contentOverflow:g,copy:l})]})})}function _n({direction:e,disabled:t,remove:o,index:a,provided:n,copy:i,contentOverflow:s,measuring:l}){return r.jsxs("div",{className:`p-1 flex ${e==="row"?"flex-row-reverse":"flex-col"} items-center`,...n.dragHandleProps,children:[r.jsx(u.Tooltip,{side:e==="column"?"left":void 0,title:"Move",children:r.jsx(u.IconButton,{size:"small",disabled:t,className:`cursor-${t?"inherit":"grab"}`,children:r.jsx("svg",{focusable:"false",fill:"currentColor","aria-hidden":"true",viewBox:"0 0 24 24",children:r.jsx("path",{d:"M20 9H4v2h16V9zM4 15h16v-2H4v2z"})})})}),!l&&!s&&r.jsxs(r.Fragment,{children:[r.jsx(u.Tooltip,{title:"Remove",side:e==="column"?"left":void 0,children:r.jsx(u.IconButton,{size:"small","aria-label":"remove",disabled:t,onClick:()=>o(a),children:r.jsx(u.RemoveIcon,{size:"small"})})}),r.jsx(u.Tooltip,{side:e==="column"?"left":void 0,title:"Copy in this position",children:r.jsx(u.IconButton,{size:"small","aria-label":"copy",disabled:t,onClick:()=>i(a),children:r.jsx(u.ContentCopyIcon,{size:"small"})})})]}),!l&&s&&r.jsx(r.Fragment,{children:r.jsxs(u.Menu,{trigger:r.jsx(u.IconButton,{size:"small",children:r.jsx(u.MoreVertIcon,{size:"small"})}),children:[r.jsxs(u.MenuItem,{dense:!0,onClick:()=>o(a),children:[r.jsx(u.RemoveIcon,{size:"small"}),"Remove"]}),r.jsxs(u.MenuItem,{dense:!0,onClick:()=>i(a),children:[r.jsx(u.ContentCopyIcon,{size:"small"}),"Copy"]})]})})]})}function xl(e,t,o){const a=Array.from(e),[n]=a.splice(t,1);return a.splice(o,0,n),a}function Mt(){return Math.floor(Math.random()*Math.floor(Number.MAX_SAFE_INTEGER))}function Cl({name:e,multiselect:t=!1,path:o,disabled:a,value:n,onReferenceSelected:i,onMultipleReferenceSelected:s,previewProperties:l,forceFilter:c,size:p,className:f}){const h=le(),g=d.useMemo(()=>h.getCollection(o),[o,h]);if(!g)throw Error(`Couldn't find the corresponding collection for the path: ${o}`);const m=d.useCallback(v=>{if(!a&&i){const _=v?Le(v):null;i?.({reference:_,entity:v})}},[a,i]),A=d.useCallback(v=>{if(!a&&s){const _=v?v.map(E=>Le(E)):null;s({references:_,entities:v})}},[a,i]),b=kt({multiselect:t,path:o,collection:g,onSingleEntitySelected:m,onMultipleEntitiesSelected:A,forceFilter:c});d.useCallback(v=>{v.stopPropagation(),t?A([]):m(null)},[i]);let y;const k=()=>{a||b.open()};return Array.isArray(n)?y=r.jsx("div",{className:"flex flex-col gap-4",children:n.map((v,_)=>r.jsx(Oe,{onClick:k,reference:v,disabled:a,previewProperties:l,size:p},`reference_preview_${_}`))}):n instanceof Te&&(y=r.jsx(Oe,{reference:n,onClick:k,disabled:a,previewProperties:l,size:p})),r.jsxs("div",{className:u.cn("text-sm font-medium text-gray-500","min-w-80 flex flex-col gap-4","relative transition-colors duration-200 ease-in rounded font-medium",a?"bg-opacity-50":"hover:bg-opacity-75","text-opacity-50 dark:text-white dark:text-opacity-50",f),children:[y,!n&&r.jsx("div",{className:"justify-center text-left",children:r.jsxs(u.Button,{variant:"outlined",color:"primary",disabled:a,onClick:k,children:["Edit ",e]})})]})}function we({icon:e,title:t,small:o,className:a,required:n}){return r.jsxs("span",{className:`inline-flex items-center my-0.5 ${o?"gap-1":"gap-2"} ${a??""}`,children:[e,r.jsx("span",{className:`font-medium text-${o?"base":"sm"} origin-top-left transform ${o?"translate-x-2 scale-75":""}`,children:(t??"")+(n?" *":"")})]})}const El=220;process.env.NODE_ENV!=="production"&&Object.keys(Qr).forEach(e=>{u.iconKeys.includes(e)||console.warn(`The icon ${e} no longer exists. Remove it from \`icon_synonyms\``)});function Bl({selectedIcon:e="",onIconSelected:t}){const[o,a]=d.useState(null),[n,i]=d.useState(""),s=d.useMemo(()=>u.debounce(c=>{if(!c||c==="")a(null);else{const p=Kt.search(c);a(p.map(f=>f.key))}},El),[]);d.useEffect(()=>(s(n),()=>{s.clear()}),[n,s]);const l=o===null?u.coolIconKeys:o;return r.jsxs(r.Fragment,{children:[r.jsx(u.SearchBar,{autoFocus:!0,innerClassName:"w-full sticky top-0 z-10",onTextSearch:c=>i(c??""),placeholder:"Search for more icons…"}),r.jsx("div",{className:"flex max-w-full flex-wrap mt-4",children:l.map(c=>r.jsx(u.Tooltip,{title:c,children:r.jsx(u.IconButton,{shape:"square",toggled:e===c,onClick:t?()=>t(c):void 0,className:"box-content m-1",children:r.jsx(u.Icon,{iconKey:c,size:24})})},c))})]})}function kt(e){const t=le(),o=Ft(),a=d.useCallback(()=>{if(e.path){let i=e.collection;if(i||(i=t.getCollection(e.path)),!i)throw Error("Not able to resolve the collection in useReferenceDialog");o.open({key:`reference_${e.path}`,component:r.jsx(An,{collection:i,...e}),width:"90vw",onClose:()=>{e.onClose?.()}})}else throw Error("useReferenceDialog: You are trying to open a reference dialog, but have not declared the `path`")},[t,e,o]),n=d.useCallback(()=>{o.close()},[o]);return{open:a,close:n}}const Sl=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAASAAAAEgARslrPgAAB9pJREFUWMONl12obVUVx39jzLk+9j7nHq9y1QT1qpcbSIaXQFGs24PQl3HroSQyqHwJFJF6qaceCsqQoJdELHoIC6EeJCSKsi/TFLGozGsKXksljRLxnrP3WmvOOUYPa+19zsmPWpux5pxrzTX///Exx5hb+B/X1y+/nuIlVKF5m0v1YbQ55tIcKTQXFerNQkumOZ1oTiXCqUH8saR+74L8ZIWWux7+7JuuL2/04s5jJyhWQlXV71KtbhCtr1WtD6s0KlrjNBRaEi3JGzpv6bymQ0sn9mwv9otB7Ls7kn9Xo+U7D9z8/xG4+bz3cs35SjE/HEK8NWr8RBOrs+tQUUlEtAYaijRkbxmY0fuMzucsfcbSWnZQtiWxJL3Uid09iH0jIM8/1f+d3/zuS29M4PvHrmG+cZA8dMdjiLfNYrx6owrMVKlVUQkgkeI1iYbBJ3A2WPpKNtnx+UQisy29L0gPDGKfrwkPn2bJPfd/Zo0ZVp0fvOOdnLGxheX+A/Mq3nGwqS8/q645o4psxkgbhFqdSgqVJKIkghgqjuDoWh+dlm1AI0gUC3o4C9d04idbmZ06euQDPPHMj3YJ3HnkrZx98Fys2PFZ1dxxsJkdPbOecaBqmcWGqBVBIkEiKkoQJ5IJJBTbY8aRgBMwjxgVJoJJwDScnYUrOy2PBamfv/CS4zz9zE+IAIfPuQQzPzyrmq9u1e3RM+qWeaipNCCiE4DjbjgF94xZQj2htpjeK84ImqlIUpO9JllgEKgJDFpfOoh8paN8chbOeQ4g/OTq97PdLXSz3fjiVjO7/sx6g804ow41QWuCrjQPBB3bkZQgAkpBJOMojmIEjIgRKV6RpaYIZHGKQlK5OIv0L8bul8eOfsxjDJGD8613z6rmhq1qxkY1o9YKFUFEEED2xqoE1MNoWgPBwQZMl2SrSbQM9NQyUMlA5S3Rlcqd6E50RdRvPMvn9yE8qP9+9WWtQvXxzdic8xrwPaJrUYJGoq4sVBM1Ukuiln4UBipJVJrGoHUhrARB0XMQ/cizbSd61uaZlzUhXjuvWmqt9oOyAmUPEabnkSDV2j0Rp2YgksZdQpoCtRBwAiN4cKYdw4m3pNnbY9Tw4SZUh9tQEda+ld1WpmThgoivU8fYDbgEggRcleiZ6BOoFNRXLQQX1Eelggsgh8GPx6DhWB2iRgkj2OTuVX8dBzJtMx93BAKK4hIwUUSEID4BGspecWTfDwSCw+UxqByJoqPf9+xmYWQg7H3u+5Poyk3o5BZDxRBxxH29fdkF3YcBXKHgF+m+hLxn4OvbnnbPzMkjsm/+f5cXec2ye6ZfpO6+OX7pE8TqPj1zcN/7Zu8CDm44Bu6skrKjuOs0FlxWCJNMYxMOqLlR3DAvsAKaZo6t7+u7r6nhjN/5RKIQKESKhykhjeIINgJi+0m4Fiuns2WKZQybtJ2AfAWzGu/ayt0wz5gXimeKQyKSPI4kiCMhDxSgyLiOiY9kxnW2NVs+1ZeBbAmzhLmtgd0d8z1k1mIUTxQbKD5gnkmuDN6QvCF5TaIie0UmkIU1id3WcfwZHUo61eWB3gayDdOiZR+JXUuMWmcbyGWcny2RzOi8obeWwRsGrxm8JlGPBHCyOJmpJkwkHHs09pnfL1L60KLqtBKZtprhU+lVmSq9+xRsBfOMW6L4QLFM7zWdz+l8Ru8tA+10YKlJIiSxkcC6dQqlmJc/xaHIvTuZT7UpHalFUHEqL6iGsfKtM8FEzMdy7J4oXui9mk5CczpGErtEKgacQUZJE3gSwzw/i+dfx2G7e6IcOPALCXIkakGkYx4iwceyq+uENPp+RSI7DN7Q+5ylb7JgJLH0+XRGbOlRerWJwNgmnOwJ83Tvq/7KX2KZb1nJfnfp5YRoda7hFC/MQyGI7Mteow2E4pHkDT2zyfS758HV4bSjolOjF2PYS4KBbN2L5vmHZ7DpsWQnDsvfLj1+Lwufy9LSO2y5M1Mnik8OEJxAoSJRk7xhoKX3+URiztI3WPgGS2/p1OnE6CcSvRQGH+htQfH07dPSP7Lp9ajcNy+9DnG/oMT67qqZHz/QtGxVyjworQqVCIjiPiaaTD1ttZZ+fTIeCXQ+Y6HCQm0tO5LYpmfHlyy9/1nCPi3ICw/99JbxUHrdvxr6Q4depdhTfeGapVeH+imKxwhv6ZnR+5zeN0aNGU2+ZIPON0cX0LBQYSnGQgsLSSzoWdiCHVvQ2fLP2fMtwf2vDz50K6TpVPxj/sn7Ni5iu9l6Tof+yd78yoWFQ0uvWYvVLK1h6e34B8RnY9DZnIW3LAijxpLYkZ6Fd+z4km3bYcd2WNry8ezppsZ5ZMd2+MfTv3xtjbr9/PfwyoFDzPvtq7I2t+Vq/m6pt4hxThVaojao1CANRkORmkwkiTCI00thKYWOzJJR+6V1JE8/z2JfqGgfW9jLPPLg7a9Xe8frHs7j5MVXESxfmLS5KYXmxhQ3z/a4icQNRFtEGlwjJkoRIamTmIKNTE+it57kw0sF+1ah3CkSXkiPf42Htl+3WL/2+vIFJ6ishJ3QXD1o9dEhVCcGbS7ModUcakwrigaKChkoYmQK2XMp5L8V/F7DfuDePYrEcv8f7npdnDcksEvkg9RewquhuayTcHzQeCyJXpFVD2fRzSxCFtkuwqks8mjB/ujYr9y6k0gs9528503X/w/F3eUgyIBI4wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wNS0xMFQxOToyODozMyswMDowMEzeSx4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDUtMTBUMTk6Mjg6MzMrMDA6MDA9g/OiAAAARnRFWHRzb2Z0d2FyZQBJbWFnZU1hZ2ljayA2LjcuOC05IDIwMTQtMDUtMTIgUTE2IGh0dHA6Ly93d3cuaW1hZ2VtYWdpY2sub3Jn3IbtAAAAABh0RVh0VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7LwAAABh0RVh0VGh1bWI6OkltYWdlOjpoZWlnaHQAMTkyDwByhQAAABd0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAAxOTLTrCEIAAAAGXRFWHRUaHVtYjo6TWltZXR5cGUAaW1hZ2UvcG5nP7JWTgAAABd0RVh0VGh1bWI6Ok1UaW1lADE2MjA2NzQ5MTMk8oswAAAAD3RFWHRUaHVtYjo6U2l6ZQAwQkKUoj7sAAAAVnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vbW50bG9nL2Zhdmljb25zLzIwMjEtMDUtMTAvOGIxNDNhYjgwODhkMjBlZThkYmUzOTFhN2NkNmQ3NmQuaWNvLnBuZ9msgG0AAAAASUVORK5CYII=
|
|
588
|
+
`;function Il(e,t){d.useEffect(()=>{if(document){document.title=`${e} - FireCMS`;let o=document.querySelector("link[rel~='icon']");o||(o=document.createElement("link"),o.rel="icon",document.getElementsByTagName("head")[0].appendChild(o)),o.href=t??Sl}},[e,t])}const cr="main_##Q$SC^#S6";function Fl({path:e,entityId:t,selectedSubPath:o,copy:a,collection:n,parentCollectionIds:i,onValuesAreModified:s,formWidth:l,onUpdate:c,onClose:p}){n.customId&&n.formAutoSave&&console.warn(`The collection ${n.path} has customId and formAutoSave enabled. This is not supported and formAutoSave will be ignored`);const[f,h]=d.useState(!1),[g,m]=d.useState(void 0);Ht(g,()=>{g&&Q({entityId:W?.id,collection:n,path:e,values:g,closeAfterSave:!1})},!1,2e3);const A=De(),b=dr(),y=Ze(),k=Xe(),v=Z(),_=Je(),[E,C]=d.useState(void 0),[B,x]=d.useState(a?"copy":t?"existing":"new"),F=d.useRef(void 0),S=F.current,P=(n.subcollections??[]).filter(z=>!z.hideFromNavigation),I=P?.length??0,M=n.entityViews,L=M?.length??0,U=n.formAutoSave&&!n.customId,V=L>0||I>0,X=o??Nr(n?n.defaultSelectedView:void 0,{status:B,entityId:t}),H=d.useRef(X??cr),D=H.current===cr,{entity:R,dataLoading:q,dataLoadingError:$}=Gr({path:e,entityId:t,collection:n,useCache:!1}),[W,te]=d.useState(R),[ie,N]=d.useState(void 0);d.useEffect(()=>{R&&te(R)},[R]),d.useEffect(()=>{if(B==="new")N(!1);else{const z=W?Mr(n,_,Me(e),W??null):!1;W&&N(!z)}},[_,W,B]);const O=d.useCallback(z=>{h(!1),k.open({type:"error",message:"Error before saving: "+z?.message}),console.error(z)},[k]),Y=d.useCallback(z=>{h(!1),k.open({type:"error",message:"Error after saving (entity is saved): "+z?.message}),console.error(z)},[k]),J=(z,me)=>{h(!1),U||k.open({type:"success",message:`${n.singularName??n.name}: Saved correctly`}),te(z),x("existing"),s(!1),c&&c({entity:z}),me?(b.setBlocked(!1),b.close(!0),p?.()):B!=="existing"&&y.replace({path:e,entityId:z.id,selectedSubPath:H.current,updateUrl:!0,collection:n})},T=d.useCallback(z=>{h(!1),k.open({type:"error",message:"Error saving: "+z?.message}),console.error("Error saving entity",e,t),console.error(z)},[t,e,k]),Q=({values:z,previousValues:me,closeAfterSave:ue,entityId:Qe,collection:rt,path:$e})=>{h(!0),Yr({path:$e,entityId:Qe,values:z,previousValues:me,collection:rt,status:B,dataSource:A,context:v,onSaveSuccess:Ge=>J(Ge,ue),onSaveFailure:T,onPreSaveHookError:O,onSaveSuccessHookError:Y}).then()},K=async({collection:z,path:me,entityId:ue,values:Qe,previousValues:rt,closeAfterSave:$e,autoSave:Ge})=>{B&&(Ge?m(Qe):Q({collection:z,path:me,entityId:ue,values:Qe,previousValues:rt,closeAfterSave:$e}))},ce=M?M.map(z=>Sr(z,v.entityViews)).filter(Boolean):[],Fe=M&&ce.map((z,me)=>{if(!z||H.current!==z.key)return null;const ue=z.Builder;return ue?r.jsx("div",{className:u.cn(u.defaultBorderMixin,"relative flex-grow w-full h-full overflow-auto "),role:"tabpanel",children:r.jsx(oe,{children:E&&r.jsx(ue,{collection:n,entity:W,modifiedValues:S??W?.values,formContext:E})})},`custom_view_${z.key}`):(console.error("customView.Builder is not defined"),null)}).filter(Boolean),ve=q&&!W||(!W||ie===void 0)&&(B==="existing"||B==="copy"),ze=ve||f,_e=P&&P.map((z,me)=>{const ue=z.id??z.path,Qe=W?`${e}/${W?.id}/${pe(ue)}`:void 0;return H.current!==ue?null:r.jsxs("div",{className:"relative flex-grow h-full overflow-auto w-full",role:"tabpanel",children:[ze&&r.jsx(or,{}),!ve&&(W&&Qe?r.jsx(bo,{fullPath:Qe,parentCollectionIds:[...i,n.id],isSubCollection:!0,...z}):r.jsx("div",{className:"flex items-center justify-center w-full h-full p-3",children:r.jsx(u.Typography,{variant:"label",children:"You need to save your entity before adding additional collections"})}))]},`subcol_${ue}`)}).filter(Boolean),Re=d.useCallback(()=>{s(!1)},[]),Ve=z=>{H.current=z,y.replace({path:e,entityId:t,selectedSubPath:z===cr?void 0:z,updateUrl:!0,collection:n})},lt=d.useCallback(z=>{F.current=z},[]),et=d.useCallback(z=>{k.open({type:"error",message:"Error updating id, check the console"})},[]),Qt=d.useCallback(z=>{te(me=>me?{...me,id:z}:void 0)},[]),_t=z=>{U||s(z)};function tt(){const z=v.plugins;let me=r.jsx(hn,{status:B,path:e,collection:n,onEntitySaveRequested:K,onDiscard:Re,onValuesChanged:lt,onModified:_t,entity:W,onIdChange:Qt,onFormContextChange:C,hideId:n.hideIdFromForm,autoSave:U,onIdUpdateError:et});return z&&z.forEach(ue=>{ue.form?.provider&&(me=r.jsx(ue.form.provider.Component,{status:B,path:e,collection:n,onDiscard:Re,onValuesChanged:lt,onModified:_t,entity:W,context:v,formContext:E,...ue.form.provider.props,children:me}))}),r.jsx(oe,{children:me})}const ct=ie===void 0?r.jsx(r.Fragment,{}):ie?r.jsxs(r.Fragment,{children:[r.jsx(u.Typography,{className:"mt-16 mb-8 mx-8",variant:"h4",children:n.singularName??n.name}),r.jsx(Xr,{className:"px-12",entity:W,path:e,collection:n})]}):tt(),Dt=P&&P.map(z=>r.jsx(u.Tab,{className:"text-sm min-w-[140px]",value:z.id,children:z.name},`entity_detail_collection_tab_${z.name}`)),Ot=ce.map(z=>r.jsx(u.Tab,{className:"text-sm min-w-[140px]",value:z.key,children:z.name},`entity_detail_collection_tab_${z.name}`));return r.jsx("div",{className:"flex flex-col h-full w-full transition-width duration-250 ease-in-out",children:r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:u.cn(u.defaultBorderMixin,"no-scrollbar border-b pl-2 pr-2 pt-1 flex items-end overflow-scroll bg-gray-50 dark:bg-gray-950"),children:[r.jsx("div",{className:"pb-1 self-center",children:r.jsx(u.IconButton,{onClick:()=>(p?.(),b.close(!1)),size:"large",children:r.jsx(u.CloseIcon,{})})}),r.jsx("div",{className:"flex-grow"}),ve&&r.jsx("div",{className:"self-center",children:r.jsx(u.CircularProgress,{size:"small"})}),r.jsxs(u.Tabs,{value:H.current,onValueChange:z=>{Ve(z)},className:"pl-4 pr-4 pt-0",children:[r.jsx(u.Tab,{disabled:!V,value:cr,className:`${V?"":"hidden"} text-sm min-w-[140px]`,children:n.singularName??n.name}),Ot,Dt]})]}),r.jsxs("div",{className:"flex-grow h-full flex overflow-auto flex-row w-full ",style:{},children:[r.jsx("div",{role:"tabpanel",hidden:!D,id:`form_${e}`,className:" w-full",children:ve?r.jsx(or,{}):ct}),Fe,_e]})]})})}function Nl(e,t){const[o,a]=d.useState(),{navigator:n}=d.useContext(de.UNSAFE_NavigationContext),i=de.useNavigate(),s=()=>{a(void 0)},l=()=>{t(),a(void 0),i(-1)},c=d.useCallback(({action:p,location:f,retry:h})=>{switch(p){case"REPLACE":{h();return}case"POP":a(f)}},[]);return d.useEffect(()=>{if(!e||o||!("block"in n))return;const p=n.block(f=>{const h={...f,retry(){p(),f.retry()}};c(h)});return p},[n,c,e,o]),{navigationWasBlocked:!!o,handleCancel:s,handleOk:l}}function Tl({open:e,handleOk:t,handleCancel:o,body:a,title:n}){return r.jsxs(u.Dialog,{open:e,onOpenChange:i=>i?o():t(),children:[r.jsxs(u.DialogContent,{children:[r.jsx(u.Typography,{variant:"h6",children:n}),a,r.jsx(u.Typography,{children:"Are you sure you want to leave this page?"})]}),r.jsxs(u.DialogActions,{children:[r.jsx(u.Button,{variant:"text",onClick:o,autoFocus:!0,children:" Cancel "}),r.jsx(u.Button,{onClick:t,children:" Ok "})]})]})}const xn=d.createContext({width:"",blocked:!1,setBlocked:e=>{},setBlockedNavigationMessage:e=>{},close:()=>{}}),dr=()=>d.useContext(xn);function Pl(){const t=Ft().sidePanels,o=[...t];return o.push(void 0),r.jsx(r.Fragment,{children:o.map((a,n)=>r.jsx(Ml,{panel:a,offsetPosition:t.length-n-1},`side_dialog_${n}`))})}function Ml({offsetPosition:e,panel:t}){const[o,a]=d.useState(!1),[n,i]=d.useState(!1),[s,l]=d.useState(),c=d.useRef(t?.width),p=c.current,f=Ft(),{navigationWasBlocked:h,handleOk:g,handleCancel:m}=Nl(n&&!o,()=>i(!1));d.useEffect(()=>{t&&(c.current=t.width)},[t]);const A=()=>{i(!1),a(!1),f.close(),t?.onClose?.()},b=()=>{a(!1)},y=k=>{n&&!k?a(!0):(f.close(),t?.onClose?.())};return r.jsxs(xn.Provider,{value:{blocked:n,setBlocked:i,setBlockedNavigationMessage:l,width:p,close:y},children:[r.jsxs(u.Sheet,{open:!!t,onOpenChange:k=>!k&&y(),children:[t&&r.jsx("div",{className:"transform max-w-[100vw] lg:max-w-[95vw] flex flex-col h-full transition-all duration-250 ease-in-out bg-white dark:bg-gray-900 ",style:{width:t.width,transform:`translateX(-${e*200}px)`},children:r.jsx(oe,{children:t.component})}),!t&&r.jsx("div",{style:{width:p}})]}),r.jsx(Tl,{open:h||o,handleOk:o?A:g,handleCancel:o?b:m,body:s})]})}function Ql(e){const{blocked:t,setBlocked:o,setBlockedNavigationMessage:a}=dr(),n=le(),i=d.useMemo(()=>n.getParentCollectionIds(e.path),[n,e.path]),s=d.useMemo(()=>{if(!e)return;let c=e.collection;if(!c&&(c=n.getCollection(e.path,e.entityId),!c))throw console.error("ERROR: No collection found in path `",e.path,"`. Entity id: ",e.entityId),Error("ERROR: No collection found in path `"+e.path+"`. Make sure you have defined a collection for this path in the root navigation.");return c},[n,e]);d.useEffect(()=>{function c(p){t&&s&&(p.preventDefault(),p.returnValue=`You have unsaved changes in this ${s.name}. Are you sure you want to leave this page?`)}return typeof window<"u"&&window.addEventListener("beforeunload",c),()=>{typeof window<"u"&&window.removeEventListener("beforeunload",c)}},[t,s]);const l=d.useCallback(c=>{o(c),a(c?r.jsxs(r.Fragment,{children:[" You have unsaved changes in this ",r.jsx("b",{children:s?.singularName??s?.name}),"."]}):void 0)},[s?.name,o,a]);return!e||!s?r.jsx("div",{className:"w-full"}):r.jsx(r.Fragment,{children:r.jsx(oe,{children:r.jsx(Fl,{...e,formWidth:e.width,collection:s,parentCollectionIds:i,onValuesAreModified:l})})})}const Cn="new";function Dl(e,t){if(t)return vi;const o=!e.selectedSubPath,a=typeof e.width=="number"?`${e.width}px`:e.width;return o?a??ra:`calc(${ki} + ${a??ra})`}const Ol=(e,t)=>{const o=de.useLocation(),a=d.useRef(!1),n=!Ie();d.useEffect(()=>{if(!e.loading&&!a.current){if(e.isUrlCollectionPath(o.pathname)){const c=o.hash===`#${Cn}`,p=e.urlPathToDataPath(o.pathname),f=zl(p,e.collections,c);for(let h=0;h<f.length;h++){const g=f[h];setTimeout(()=>{h===0?t.replace(pr(g,e,n)):t.open(pr(g,e,n))},1)}}a.current=!0}},[o,e,t,n]);const i=d.useCallback(()=>{t.close()},[t]),s=d.useCallback(c=>{if(c.copy&&!c.entityId)throw Error("If you want to copy an entity you need to provide an entityId");const p=Nr(c.collection?c.collection.defaultSelectedView:void 0,{status:c.copy?"copy":c.entityId?"existing":"new",entityId:c.entityId});t.open(pr({selectedSubPath:p,...c},e,n))},[t,e,n]),l=d.useCallback(c=>{if(c.copy&&!c.entityId)throw Error("If you want to copy an entity you need to provide an entityId");t.replace(pr(c,e,n))},[e,t,n]);return{close:i,open:s,replace:l}};function zl(e,t,o){const a=Ir({path:e,collections:t}),n=[];let i="";for(let s=0;s<a.length;s++){const l=a[s];if(l.type==="collection"&&(i=l.path),s>0){const c=a[s-1];if(l.type==="entity")n.push({path:l.path,entityId:l.entityId,copy:!1});else if(l.type==="custom_view"){if(c.type==="entity"){const p=n[n.length-1];p&&(p.selectedSubPath=l.view.key)}}else if(l.type==="collection"&&c.type==="entity"){const p=n[n.length-1];p&&(p.selectedSubPath=l.collection.id??l.collection.path)}}}return o&&n.push({path:i,copy:!1}),n}const pr=(e,t,o)=>{const a=pe(e.path),n=e.entityId?t.buildUrlCollectionPath(`${a}/${e.entityId}/${e.selectedSubPath||""}`):t.buildUrlCollectionPath(`${a}#${Cn}`),i=t.resolveAliasesFrom(e.path),s={...e,path:i};return{key:`${e.path}/${e.entityId}`,component:r.jsx(Ql,{...s}),urlPath:n,parentUrlPath:t.buildUrlCollectionPath(a),width:Dl(e,o),onClose:e.onClose}};function Vl(){console.log("useBuildSideDialogsController");const e=de.useLocation(),t=de.useNavigate(),[o,a]=d.useState([]),n=d.useRef(o),i=d.useRef({}),s=d.useRef(0),l=h=>{n.current=h,a(h)};d.useEffect(()=>{const m=(e.state?.panels??[]).map(A=>i.current[A]).filter(A=>!!A);ne(n.current.map(A=>A.key),m.map(A=>A.key))||l(m)},[e]);const c=d.useCallback(()=>{if(o.length===0)return;const h=o[o.length-1],g=[...o.slice(0,-1)];if(l(g),s.current>0)h.urlPath&&t(-1),s.current--;else if(h.parentUrlPath){const m=e.state?.base_location??e;t(h.parentUrlPath,{replace:!0,state:{base_location:m,panels:g.map(A=>A.key)}})}},[o,t,e]),p=d.useCallback(h=>{const g=Array.isArray(h)?h:[h];g.forEach(b=>{i.current[b.key]=b}),s.current=s.current+g.length;const m=e.state?.base_location??e,A=[...o,...g];l(A),g.forEach(b=>{b.urlPath&&t(b.urlPath,{state:{base_location:m,panels:A.map(y=>y.key)}})})},[e,t,o]),f=d.useCallback(h=>{const g=Array.isArray(h)?h:[h];g.forEach(b=>{i.current[b.key]=b});const m=e.state?.base_location??e,A=[...o.slice(0,-g.length),...g];l(A),g.forEach(b=>{b.urlPath&&t(b.urlPath,{replace:!0,state:{base_location:m,panels:A.map(y=>y.key)}})})},[e,t,o]);return{sidePanels:o,close:c,open:p,replace:f}}function Gl(e){d.useEffect(()=>{if(!e)return;const t=Po[e];t&&(No.registerLocale(e,t),No.setDefaultLocale(e))},[e])}function En(e){const{path:t,collections:o=[],currentFullPath:a}=e,n=pe(t).split("/"),i=Gt(n),s=[];for(let l=0;l<i.length;l++){const c=i[l],p=o&&o.find(f=>f.id===c||f.path===c);if(p){const f=p.id??p.path,h=a&&a.length>0?a+"/"+f:f,g=pe(pe(t).replace(c,"")),m=g.length>0?g.split("/"):[];if(m.length>0){const A=m[0],b=h+"/"+A;if(s.push(new Te(A,h)),m.length>1){const y=m.slice(1).join("/");if(!p)throw Error("collection not found resolving path: "+p);p.subcollections&&s.push(...En({path:y,collections:p.subcollections,currentFullPath:b}))}}break}}return s}const Yl="/",jl="/c";function Ll({basePath:e=Yl,baseCollectionPath:t=jl,authController:o,collections:a,views:n,userConfigPersistence:i,plugins:s,dataSource:l}){const c=de.useLocation(),[p,f]=d.useState(),[h,g]=d.useState(),[m,A]=d.useState(!1),[b,y]=d.useState(void 0),[k,v]=d.useState(!0),[_,E]=d.useState(void 0),C=pe(e),B=pe(t),x=C?`/${C}`:"/",F=C?`/${C}/${B}`:`/${B}`,S=d.useCallback(N=>C?`/${C}/${ur(N)}`:`/${ur(N)}`,[C]),P=d.useCallback(N=>`${pe(t)}/${ur(N)}`,[t]),I=d.useCallback((N,O)=>{const Y=[...(N??[]).map(T=>T.hideFromNavigation?void 0:{url:P(T.id??T.path),type:"collection",name:T.name.trim(),path:T.id??T.path,collection:T,description:T.description?.trim(),group:T.group?.trim()}).filter(Boolean),...(O??[]).map(T=>T.hideFromNavigation?void 0:{url:S(Array.isArray(T.path)?T.path[0]:T.path),name:T.name.trim(),type:"view",view:T,description:T.description?.trim(),group:T.group?.trim()}).filter(Boolean)],J=Object.values(Y).map(T=>T.group).filter(Boolean).filter((T,Q,K)=>K.indexOf(T)===Q);return{navigationEntries:Y,groups:J}},[S,P]),M=d.useCallback(async()=>{if(!o.initialLoading){try{const[N=[],O=[]]=await Promise.all([ql(a,o,l,s),Ul(n,o,l)]);f(N),g(O),y(I(N??[],O))}catch(N){console.error(N),E(N)}v(!1),A(!0)}},[a,o.user,o.initialLoading,s,n,I]);d.useEffect(()=>{M()},[M]);const L=d.useCallback((N,O,Y=!1)=>{if(!p)return;const J=Vt(pe(N),p),T=Y?i?.getCollectionConfig(N):void 0,Q=J?Pe(J,T):void 0;let K=Q;if(Q){const ce=Q.subcollections,Fe=Q.callbacks,ve=Q.permissions;K={...K,subcollections:K?.subcollections??ce,callbacks:K?.callbacks??Fe,permissions:K?.permissions??ve}}if(K)return{...Q,...K}},[e,t,p]),U=d.useCallback(N=>{let O=p;if(!O)throw Error("Collections have not been initialised yet");for(let Y=0;Y<N.length;Y++){const J=N[Y],T=O.find(Q=>Q.id===J||Q.path===J);if(!T)return;if(O=T.subcollections,Y===N.length-1)return T}},[p]),V=d.useCallback(N=>{let O=p;if(!O)throw Error("Collections have not been initialised yet");for(let Y=0;Y<N.length;Y++){const J=N[Y],T=O.find(Q=>Q.id===J);if(!T)return;if(O=T.subcollections,Y===N.length-1)return T}},[p]),X=d.useCallback(N=>pe(N+"/").startsWith(pe(F)+"/"),[F]),H=d.useCallback(N=>{if(N.startsWith(F))return N.replace(F,"");throw Error("Expected path starting with "+F)},[F]),D=d.useCallback(({path:N})=>`s/edit/${ur(N)}`,[]),R=d.useCallback(N=>{if(!p)throw Error("Collections have not been initialised yet");return yr(N,p)},[p]),q=c.state,$=q&&q.base_location?q.base_location:c,W=d.useCallback(N=>En({path:N,collections:p}),[p]),te=d.useCallback(N=>W(N).map(O=>O.id),[W]),ie=d.useCallback(N=>{let O=p;const Y=[];for(let J=0;J<N.length;J++){const T=N[J],Q=O.find(K=>K.id===T);if(!Q)throw Error(`Collection with id ${T} not found`);Y.push(Q.path),O=Q.subcollections}return Y},[V]);return d.useMemo(()=>({collections:p??[],views:h??[],loading:!m||k,navigationLoadingError:_,homeUrl:x,basePath:e,baseCollectionPath:t,initialised:m,getCollection:L,getCollectionFromPaths:U,getCollectionFromIds:V,isUrlCollectionPath:X,urlPathToDataPath:H,buildUrlCollectionPath:P,buildUrlEditCollectionPath:D,buildCMSUrlPath:S,resolveAliasesFrom:R,topLevelNavigation:b,baseLocation:$,refreshNavigation:M,getParentReferencesFromPath:W,getParentCollectionIds:te,convertIdsToPaths:ie}),[t,$,e,S,P,D,p,W,L,U,x,m,X,k,_,M,R,b,H,h])}function ur(e){return encodeURIComponent(pe(e)).replaceAll("%2F","/").replaceAll("%23","#")}function Bn(e,t){return e.filter(o=>o.permissions?It(o,t,[o.path],null).read!==!1:!0).map(o=>o.subcollections?{...o,subcollections:Bn(o.subcollections,t)}:o)}async function ql(e,t,o,a){let n=[];return typeof e=="function"?n=await e({user:t.user,authController:t,dataSource:o}):Array.isArray(e)&&(n=e),n=Bn(n,t),a&&a.forEach(i=>{i.collections?.injectCollections&&(n=i.collections?.injectCollections(n??[]))}),n}async function Ul(e,t,o){let a=[];return typeof e=="function"?a=await e({user:t.user,authController:t,dataSource:o}):Array.isArray(e)&&(a=e),a}function $l({delegate:e,propertyConfigs:t,navigationController:o}){return{fetchCollection:d.useCallback(({path:a,collection:n,filter:i,limit:s,startAfter:l,searchString:c,orderBy:p,order:f})=>e.fetchCollection({path:a,filter:i,limit:s,startAfter:l,searchString:c,orderBy:p,order:f}),[e]),listenCollection:e.listenCollection?d.useCallback(({path:a,collection:n,filter:i,limit:s,startAfter:l,searchString:c,orderBy:p,order:f,onUpdate:h,onError:g})=>{const m=n??o.getCollection(a),A=!!m?.collectionGroup;if(!e.listenCollection)throw Error("useBuildDataSource delegate not initialised");return e.listenCollection({path:a,filter:i,limit:s,startAfter:l,searchString:c,orderBy:p,order:f,onUpdate:h,onError:g,isCollectionGroup:A,collection:m})},[e,o.getCollection]):void 0,fetchEntity:d.useCallback(({path:a,entityId:n})=>e.fetchEntity({path:a,entityId:n}),[e]),listenEntity:e.listenEntity?d.useCallback(({path:a,entityId:n,collection:i,onUpdate:s,onError:l})=>{if(!e.listenEntity)throw Error("useBuildDataSource delegate not initialised");return e.listenEntity({path:a,entityId:n,onUpdate:s,onError:l})},[e.listenEntity]):void 0,saveEntity:d.useCallback(({path:a,entityId:n,values:i,collection:s,status:l})=>{const c=s??o.getCollection(a),f=(c?Be({collection:c,path:a,entityId:n,fields:t}):void 0)?.properties,h=xo(i,e.buildReference,e.buildGeoPoint,e.buildDate,e.buildDeleteFieldValue),g=f?zo({inputValues:h,properties:f,status:l,timestampNowValue:e.currentTime(),setDateToMidnight:e.setDateToMidnight}):h;return e.saveEntity({path:a,entityId:n,values:g,status:l}).then(m=>({id:m.id,path:m.path,values:e.delegateToCMSModel(g)}))},[e.saveEntity,o.getCollection]),deleteEntity:d.useCallback(({entity:a})=>e.deleteEntity({entity:a}),[e.deleteEntity]),checkUniqueField:d.useCallback((a,n,i,s)=>e.checkUniqueField(a,n,i,s),[e.checkUniqueField]),generateEntityId:d.useCallback(a=>e.generateEntityId(a),[e.generateEntityId]),countEntities:d.useCallback(async({path:a,collection:n,filter:i,order:s,orderBy:l})=>e.countEntities({path:a,filter:i,orderBy:l,order:s,isCollectionGroup:!!n.collectionGroup}),[e.countEntities]),isFilterCombinationValid:d.useCallback(({path:a,filterValues:n,sortBy:i})=>e.isFilterCombinationValid?e.isFilterCombinationValid({path:a,filterValues:n,sortBy:i}):!0,[e.isFilterCombinationValid])}}function xo(e,t,o,a,n){return e===void 0?n():Array.isArray(e)?e.map(i=>xo(i,t,o,a,n)):e instanceof Te?t(e):e instanceof Yt?o(e):e instanceof Date?a(e):e&&typeof e=="object"?Object.entries(e).map(([i,s])=>({[i]:xo(s,t,o,a,n)})).reduce((i,s)=>({...i,...s}),{}):e}function Wl(e){const t=jr(),{children:o,entityLinkBuilder:a,userConfigPersistence:n,dateTimeFormat:i,locale:s,authController:l,storageSource:c,dataSourceDelegate:p,plugins:f,onAnalyticsEvent:h,propertyConfigs:g,entityViews:m,components:A,baseCollectionPath:b,basePath:y,collections:k,views:v}=e;Gl(s);const _=Ll({basePath:y,baseCollectionPath:b,authController:l,collections:k,views:v,userConfigPersistence:n,dataSource:p,plugins:f}),E=$l({delegate:p,propertyConfigs:g,navigationController:_}),C=Vl(),B=Ol(_,C),x=f?.some(P=>P.loading)??!1,F=l.initialLoading||_.loading||x,S=d.useMemo(()=>({entityLinkBuilder:a,dateTimeFormat:i,locale:s,plugins:f,onAnalyticsEvent:h,entityViews:m??[],propertyConfigs:g??{},components:A}),[i,s,f,m,g,A]);return _.navigationLoadingError?r.jsx(u.CenteredView,{maxWidth:"md",children:r.jsx(he,{title:"Error loading navigation",error:_.navigationLoadingError})}):l.authError?r.jsx(u.CenteredView,{maxWidth:"md",children:r.jsx(he,{title:"Error loading auth",error:l.authError})}):r.jsx(zt.Provider,{value:t,children:r.jsx(zr.Provider,{value:S,children:r.jsx(la.Provider,{value:n,children:r.jsx(sa.Provider,{value:c,children:r.jsx(oa.Provider,{value:E,children:r.jsx(br.Provider,{value:l,children:r.jsx(na.Provider,{value:C,children:r.jsx(ia.Provider,{value:B,children:r.jsx(aa.Provider,{value:_,children:r.jsx(_i,{children:r.jsx(Hl,{loading:F,children:o})})})})})})})})})})})}function Hl({loading:e,children:t}){const o=Z();let a=t({context:o,loading:e});const n=o.plugins;return!e&&n&&n.forEach(i=>{i.provider&&(a=r.jsx(i.provider.Component,{...i.provider.props,context:o,children:a}))}),r.jsx(r.Fragment,{children:a})}function Sn({hovered:e,drawerOpen:t,closeDrawer:o}){const a=Z(),n=le(),i=e&&!t,s=Ie();if(!n.topLevelNavigation)throw Error("Navigation not ready in Drawer");const{navigationEntries:l,groups:c}=n.topLevelNavigation,p=Object.values(l).filter(g=>!g.group),f=d.useCallback(g=>t?r.jsx("div",{className:"pt-8 pl-6 pr-8 pb-2 flex flex-row items-center",children:r.jsx(u.Typography,{variant:"caption",color:"secondary",className:"font-medium flex-grow",children:g?g.toUpperCase():"Views".toUpperCase()})}):r.jsx("div",{className:"h-4"}),[t]),h=g=>{const m=g.type==="collection"?"drawer_navigate_to_collection":g.type==="view"?"drawer_navigate_to_view":"unmapped_event";a.onAnalyticsEvent?.(m,{url:g.url}),s||o()};return r.jsxs("div",{className:"flex-grow overflow-scroll no-scrollbar",children:[c.map(g=>r.jsxs(d.Fragment,{children:[f(g),Object.values(l).filter(m=>m.group===g).map((m,A)=>r.jsx(Co,{icon:Rt(m.collection??m.view),tooltipsOpen:i,drawerOpen:t,onClick:()=>h(m),url:m.url,name:m.name},`navigation_${A}`))]},`drawer_group_${g}`)),p.length>0&&f(),p.map((g,m)=>r.jsx(Co,{icon:Rt(g.collection??g.view),tooltipsOpen:i,onClick:()=>h(g),drawerOpen:t,url:g.url,name:g.name},`navigation_${m}`))]})}function Co({name:e,icon:t,drawerOpen:o,tooltipsOpen:a,url:n,onClick:i}){const s=r.jsx("div",{className:"text-gray-600 dark:text-gray-500",children:t}),l=r.jsxs(de.NavLink,{onClick:i,className:({isActive:c})=>u.cn("rounded-r-xl truncate","hover:bg-gray-200 hover:bg-opacity-75 dark:hover:bg-gray-700 dark:hover:bg-opacity-75 text-gray-800 dark:text-gray-200 hover:text-gray-900 hover:dark:text-gray-100","flex flex-row items-center w-full mr-8",o?"pl-8 h-12":"pl-6 h-11","font-medium text-sm",c?"bg-gray-100 dark:bg-gray-800":""),to:n,children:[s,r.jsx("div",{className:u.cn(o?"opacity-100":"opacity-0 hidden","ml-4 font-inherit text-inherit"),children:e.toUpperCase()})]});return o?l:r.jsx(u.Tooltip,{open:a,side:"right",title:e,children:l})}const Jl=280,Zl=d.memo(function(t){const{children:o,name:a,logo:n,includeDrawer:i=!0,autoOpenDrawer:s,Drawer:l=Sn,drawerProps:c,FireCMSAppBarComponent:p=kn,fireCMSAppBarComponentProps:f}=t,h=Ie(),[g,m]=d.useState(!1),[A,b]=d.useState(!1),y=d.useCallback(()=>b(!0),[]),k=d.useCallback(()=>b(!1),[]),v=d.useCallback(()=>{m(!1)},[]),_=g||!!(h&&s&&A);return r.jsxs("div",{className:"flex h-screen w-screen bg-gray-50 dark:bg-gray-900 text-gray-900 dark:text-white overflow-hidden",style:{paddingTop:"env(safe-area-inset-top)",paddingLeft:"env(safe-area-inset-left)",paddingRight:"env(safe-area-inset-right)",paddingBottom:"env(safe-area-inset-bottom)",height:"100dvh"},children:[r.jsx(p,{title:a,includeDrawer:i,drawerOpen:_,...f}),r.jsx(Kl,{displayed:i,onMouseEnter:y,onMouseMove:y,onMouseLeave:k,open:_,logo:n,hovered:A,setDrawerOpen:m,children:i&&r.jsx(l,{hovered:A,drawerOpen:_,closeDrawer:v,...c})}),r.jsxs("main",{className:"flex flex-col flex-grow overflow-auto",children:[r.jsx(Xl,{}),r.jsx("div",{className:u.cn(u.defaultBorderMixin,"flex-grow overflow-auto lg:m-0 lg:mx-4 lg:mb-4 lg:rounded-lg lg:border lg:border-solid m-0 mt-1"),children:r.jsx(oe,{children:o})})]})]})},ne),Xl=()=>r.jsx("div",{className:"flex flex-col min-h-[68px]"});function Kl(e){const t=le(),o=e.displayed?e.open?Jl:72:0,a=r.jsxs("div",{className:"relative h-full no-scrollbar overflow-y-auto overflow-x-hidden",style:{width:o,transition:"left 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms, opacity 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms, width 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms"},children:[!e.open&&e.displayed&&r.jsx(u.Tooltip,{title:"Open menu",side:"right",sideOffset:12,className:"fixed top-2 left-3 !bg-gray-50 dark:!bg-gray-900 rounded-full w-fit",children:r.jsx(u.IconButton,{color:"inherit","aria-label":"Open menu",className:"sticky top-2 left-3 ",onClick:()=>e.setDrawerOpen(!0),size:"large",children:r.jsx(u.MenuIcon,{})})}),r.jsxs("div",{className:"flex flex-col h-full",children:[r.jsx("div",{style:{transition:"padding 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms",padding:e.open?"32px 96px 0px 24px":"72px 16px 0px"},className:u.cn("cursor-pointer"),children:r.jsx(u.Tooltip,{title:"Home",sideOffset:20,side:"right",children:r.jsx(de.Link,{to:t.basePath,children:e.logo?r.jsx("img",{src:e.logo,alt:"Logo",className:u.cn("max-w-full max-h-full",e.open??"w-[160px] h-[160px]")}):r.jsx(vn,{})})})}),e.children]})]});return Ie()?r.jsxs("div",{className:"relative",onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseLeave:e.onMouseLeave,style:{width:o,transition:"left 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms, opacity 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms, width 150ms cubic-bezier(0.4, 0, 0.6, 1) 0ms"},children:[a,r.jsx("div",{className:`absolute right-0 top-4 ${e.open?"opacity-100":"opacity-0 invisible"} transition-opacity duration-1000 ease-in-out`,children:r.jsx(u.IconButton,{"aria-label":"Close drawer",onClick:()=>e.setDrawerOpen(!1),children:r.jsx(u.ChevronLeftIcon,{})})})]}):e.displayed?r.jsxs(r.Fragment,{children:[r.jsx(u.IconButton,{color:"inherit","aria-label":"Open drawer",onClick:()=>e.setDrawerOpen(!0),size:"large",className:"absolute top-2 left-6",children:r.jsx(u.MenuIcon,{})}),r.jsx(u.Sheet,{side:"left",transparent:!0,open:e.open,onOpenChange:e.setDrawerOpen,children:a})]}):null}function In(e){return Object.keys(mr).includes(e)}const mr={text_field:{key:"text_field",name:"Text field",description:"Simple short text",Icon:u.ShortTextIcon,color:"#2d7ff9",property:{dataType:"string",Field:wt}},multiline:{key:"multiline",name:"Multiline",description:"Text with multiple lines",Icon:u.SubjectIcon,color:"#2d7ff9",property:{dataType:"string",multiline:!0,Field:wt}},markdown:{key:"markdown",name:"Markdown",description:"Text with advanced markdown syntax",Icon:u.FormatQuoteIcon,color:"#2d7ff9",property:{dataType:"string",markdown:!0,Field:cn}},url:{key:"url",name:"Url",description:"Text with URL validation",Icon:u.HttpIcon,color:"#154fb3",property:{dataType:"string",url:!0,Field:wt}},email:{key:"email",name:"Email",description:"Text with email validation",Icon:u.EmailIcon,color:"#154fb3",property:{dataType:"string",email:!0,Field:wt}},select:{key:"select",name:"Select/enum",description:"Select one text value from within an enumeration",Icon:u.ListIcon,color:"#4223c9",property:{dataType:"string",enumValues:[],Field:po}},multi_select:{key:"multi_select",name:"Multi select",description:"Select multiple text values from within an enumeration",Icon:u.ListAltIcon,color:"#4223c9",property:{dataType:"array",of:{dataType:"string",enumValues:[]},Field:uo}},number_input:{key:"number_input",name:"Number input",description:"Simple number field with validation",Icon:u.NumbersIcon,color:"#bec920",property:{dataType:"number",Field:wt}},number_select:{key:"number_select",name:"Number select",description:"Select a number value from within an enumeration",Icon:u.FormatListNumberedIcon,color:"#bec920",property:{dataType:"number",enumValues:[],Field:po}},multi_number_select:{key:"multi_number_select",name:"Multiple number select",description:"Select multiple number values from within an enumeration",Icon:u.FormatListNumberedIcon,color:"#bec920",property:{dataType:"array",of:{dataType:"number",enumValues:[]},Field:uo}},file_upload:{key:"file_upload",name:"File upload",description:"Input for uploading single files",Icon:u.UploadFileIcon,color:"#f92d9a",property:{dataType:"string",storage:{storagePath:"{path}"},Field:mo}},multi_file_upload:{key:"multi_file_upload",name:"Multiple file upload",description:"Input for uploading multiple files",Icon:u.DriveFolderUploadIcon,color:"#f92d9a",property:{dataType:"array",of:{dataType:"string",storage:{storagePath:"{path}"}},Field:mo}},reference:{key:"reference",name:"Reference",description:"The value refers to a different collection",Icon:u.LinkIcon,color:"#ff0042",property:{dataType:"reference",Field:on}},multi_references:{key:"multi_references",name:"Multiple references",description:"Multiple values that refer to a different collection",Icon:u.AddLinkIcon,color:"#ff0042",property:{dataType:"array",of:{dataType:"reference"},Field:Ra}},switch:{key:"switch",name:"Switch",description:"Boolean true or false field (or yes or no, 0 or 1...)",Icon:u.FlagIcon,color:"#20d9d2",property:{dataType:"boolean",Field:tn}},date_time:{key:"date_time",name:"Date/time",description:"A date time select field",Icon:u.ScheduleIcon,color:"#8b46ff",property:{dataType:"date",Field:rn}},group:{key:"group",name:"Group",description:"Group of multiple fields",Icon:u.BallotIcon,color:"#ff9408",property:{dataType:"map",properties:{},Field:an}},key_value:{key:"key_value",name:"Key-value",description:"Flexible field that allows the user to add multiple key-value pairs",Icon:u.BallotIcon,color:"#ff9408",property:{dataType:"map",keyValue:!0,Field:nn}},repeat:{key:"repeat",name:"Repeat/list",description:"A field that gets repeated multiple times (e.g. multiple text fields)",Icon:u.RepeatIcon,color:"#ff9408",property:{dataType:"array",of:{dataType:"string"},Field:sn}},custom_array:{key:"custom_array",name:"Custom array",description:"A field that saved its value as an array of custom objects",Icon:u.RepeatIcon,color:"#ff9408",property:{dataType:"array",of:[],Field:dn}},block:{key:"block",name:"Block",description:"A complex field that allows the user to compose different fields together, with a key->value format",Icon:u.ViewStreamIcon,color:"#ff9408",property:{dataType:"array",oneOf:{properties:{}},Field:ln}}};function Fn(e){const t=hr(e);if(!t){console.error("No field id found for property",e);return}return mr[t]}function fr(e,t){const o=Eo(e),a=hr(e);if(!a){console.error("No field id found for property",e);return}const n=mr[a],i=o?t[o]:void 0;return Pe(n??{},i??{})}function hr(e){if(e.dataType==="string")return e.multiline?"multiline":e.markdown?"markdown":e.storage?"file_upload":e.url?"url":e.email?"email":e.enumValues?"select":"text_field";if(e.dataType==="number")return e.enumValues?"number_select":"number_input";if(e.dataType==="map"){if(e.keyValue)return"key_value";if(e.properties)return"group"}else if(e.dataType==="array"){const t=e.of;return e.oneOf?"block":Array.isArray(t)?"custom_array":Ae(t)?"repeat":t?.dataType==="string"&&t.enumValues?"multi_select":t?.dataType==="number"&&t.enumValues?"multi_number_select":t?.dataType==="string"&&t.storage?"multi_file_upload":t?.dataType==="reference"?"multi_references":"repeat"}else{if(e.dataType==="boolean")return"switch";if(e.dataType==="date")return"date_time";if(e.dataType==="reference")return"reference"}console.error("Unsupported field config mapping",e)}function Eo(e){return e.propertyConfig?e.propertyConfig:hr(e)}const Rl=d.memo(function({HomePage:t=yn,customRoutes:o}){const a=de.useLocation(),n=le();if(!n)return r.jsx(r.Fragment,{});const i=a.state,s=i&&i.base_location?i.base_location:a,l=[];n.views&&n.views.forEach(g=>{Array.isArray(g.path)?l.push(...g.path.map(m=>Nn(m,g))):l.push(Nn(g.path,g))});const p=[...n.collections??[]].sort((g,m)=>m.path.length-g.path.length).map(g=>{const m=n.buildUrlCollectionPath(g.id??g.path);return r.jsx(de.Route,{path:m+"/*",element:r.jsx(bo,{isSubCollection:!1,parentCollectionIds:[],fullPath:g.id??g.path,...g,Actions:ir(g.Actions)},`collection_view_${g.id??g.path}`)},`navigation_${g.id??g.path}`)}),f=r.jsx(de.Route,{path:"/",element:r.jsx(t,{})}),h=r.jsx(de.Route,{path:"*",element:r.jsx(wn,{})});return r.jsxs(de.Routes,{location:s,children:[p,l,f,h,o]})}),Nn=(e,t)=>r.jsx(de.Route,{path:e,element:t.view},"navigation_view_"+e);function ec(){const e=typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)"),o=(localStorage.getItem("prefers-dark-mode")!=null?localStorage.getItem("prefers-dark-mode")==="true":null)??e,[a,n]=d.useState(o?"dark":"light");d.useEffect(()=>{n(o?"dark":"light"),l(o?"dark":"light")},[o]);const i=d.useCallback(()=>{n("dark"),l("dark")},[e]),s=d.useCallback(()=>{n("light"),l("light")},[]),l=p=>{document.body.style.setProperty("color-scheme",p),document.documentElement.dataset.theme=p},c=d.useCallback(()=>{a==="light"?(e?localStorage.removeItem("prefers-dark-mode"):localStorage.setItem("prefers-dark-mode","true"),i()):(e?localStorage.setItem("prefers-dark-mode","false"):localStorage.removeItem("prefers-dark-mode"),s())},[a,e]);return{mode:a,setMode:n,toggleMode:c}}function tc(){const[e,t]=d.useState({}),o=d.useCallback(A=>{const b=localStorage.getItem(A);return b?JSON.parse(b):{}},[]),a=d.useCallback(A=>{const b=`collection_config::${Tr(A)}`;return e[b]?e[b]:o(b)},[e,o]),n=d.useCallback((A,b)=>{const y=`collection_config::${Tr(A)}`;localStorage.setItem(y,JSON.stringify(b)),t(k=>{const v=k[y],_=Pe(v??o(A),b);return Pe(k,_)})},[o]),[i,s]=d.useState([]),[l,c]=d.useState([]),[p,f]=d.useState([]);d.useEffect(()=>{s(localStorage.getItem("recently_visited_paths")?JSON.parse(localStorage.getItem("recently_visited_paths")):[]),c(localStorage.getItem("favourite_paths")?JSON.parse(localStorage.getItem("favourite_paths")):[]),f(localStorage.getItem("collapsed_groups")?JSON.parse(localStorage.getItem("collapsed_groups")):[])},[]);const h=d.useCallback(A=>{localStorage.setItem("recently_visited_paths",JSON.stringify(A)),s(A)},[]),g=d.useCallback(A=>{localStorage.setItem("favourite_paths",JSON.stringify(A)),c(A)},[]),m=d.useCallback(A=>{localStorage.setItem("collapsed_groups",JSON.stringify(A)),f(A)},[]);return{onCollectionModified:n,getCollectionConfig:a,recentlyVisitedPaths:i,setRecentlyVisitedPaths:h,favouritePaths:l,setFavouritePaths:g,collapsedGroups:p,setCollapsedGroups:m}}w.ArrayContainer=ko,w.ArrayContainerItem=_o,w.ArrayCustomShapedFieldBinding=dn,w.ArrayEnumPreview=Hr,w.ArrayItemOptions=_n,w.ArrayOfMapsPreview=Ui,w.ArrayOfReferencesFieldBinding=Ra,w.ArrayOfReferencesPreview=wa,w.ArrayOfStorageComponentsPreview=va,w.ArrayOfStringsPreview=ka,w.ArrayOneOfPreview=_a,w.ArrayPropertyEnumPreview=Jr,w.ArrayPropertyPreview=Wr,w.AsyncPreviewComponent=$i,w.AuthControllerContext=br,w.BlockFieldBinding=ln,w.BooleanPreview=Ea,w.COLLECTION_PATH_SEPARATOR=jo,w.CircularProgressCenter=or,w.DEFAULT_FIELD_CONFIGS=mr,w.DatePreview=Ca,w.DateTimeFieldBinding=rn,w.DefaultHomePage=yn,w.DeleteConfirmationDialog=kl,w.Drawer=Sn,w.DrawerNavigationItem=Co,w.EmptyValue=nt,w.EntityCollectionRowActions=nr,w.EntityCollectionTable=lo,w.EntityCollectionView=bo,w.EntityForm=hn,w.EntityPreview=Xr,w.EntityReference=Te,w.EnumValuesChip=ke,w.ErrorBoundary=oe,w.ErrorView=he,w.FieldConfigBadge=vl,w.FieldHelperText=ye,w.FireCMS=Wl,w.FireCMSAppBar=kn,w.FireCMSContextInstance=zr,w.FireCMSLogo=vn,w.FormikArrayContainer=sr,w.GeoPoint=Yt,w.ImagePreview=ha,w.KeyValueFieldBinding=nn,w.KeyValuePreview=Zr,w.LabelWithIcon=we,w.MapFieldBinding=an,w.MapPropertyPreview=xa,w.MarkdownFieldBinding=cn,w.ModeControllerContext=zt,w.ModeControllerProvider=qn,w.MultiSelectBinding=uo,w.NavigationCollectionCard=bn,w.NavigationGroup=wo,w.NavigationRoutes=Rl,w.NotFoundPage=wn,w.NumberPropertyPreview=Ba,w.PropertyFieldBinding=st,w.PropertyPreview=be,w.PropertyTableCell=Oa,w.ReadOnlyFieldBinding=fo,w.ReferenceFieldBinding=on,w.ReferencePreview=Oe,w.ReferencePreviewContainer=rr,w.ReferenceSelectionInner=An,w.ReferenceWidget=Cl,w.RepeatFieldBinding=sn,w.Scaffold=Zl,w.SearchIconsView=Bl,w.SelectFieldBinding=po,w.SideDialogs=Pl,w.SimpleEntityCollectionTable=Ps,w.SkeletonPropertyComponent=bt,w.SnackbarProvider=jn,w.StorageThumbnail=ga,w.StorageThumbnailInternal=ba,w.StorageUploadFieldBinding=mo,w.StringPropertyPreview=$r,w.SwitchControl=js,w.SwitchFieldBinding=tn,w.TextFieldBinding=wt,w.UrlComponentPreview=Tt,w.VirtualTable=ro,w.addInitialSlash=Un,w.buildAdditionalFieldDelegate=yi,w.buildCollection=ui,w.buildEntityCallbacks=bi,w.buildEnumLabel=Go,w.buildEnumValueConfig=Ai,w.buildEnumValues=gi,w.buildFieldConfig=wi,w.buildIdColumn=Is,w.buildProperties=fi,w.buildPropertiesOrBuilder=hi,w.buildProperty=mi,w.canCreateEntity=ft,w.canDeleteEntity=Xt,w.canEditEntity=Mr,w.defaultDateFormat=Yo,w.deleteEntityWithCallbacks=da,w.enumToObjectEntries=qe,w.flattenObject=Dr,w.fullPathToCollectionSegments=Me,w.getArrayValuesCount=Jo,w.getBracketNotation=si,w.getCollectionByPathOrId=Vt,w.getCollectionPathsCombinations=Gt,w.getColorForProperty=ii,w.getColorScheme=Vo,w.getDefaultFieldConfig=Fn,w.getDefaultFieldId=hr,w.getDefaultPropertiesOrder=li,w.getDefaultValueFor=qt,w.getDefaultValueForDataType=xr,w.getDefaultValuesFor=St,w.getFieldConfig=fr,w.getFieldId=Eo,w.getHashValue=vr,w.getIcon=Wo,w.getIconForProperty=fe,w.getIconForView=Rt,w.getIconForWidget=Jt,w.getIdIcon=ni,w.getLabelOrConfigFrom=$t,w.getLastSegment=$n,w.getPropertiesWithPropertiesOrder=$o,w.getPropertyInPath=at,w.getRandomId=Mt,w.getReferenceFrom=Le,w.getReferencePreviewKeys=Ho,w.getResolvedPropertyInPath=Pr,w.getValueInPath=We,w.hydrateRegExp=qo,w.icon_synonyms=Qr,w.iconsSearch=Kt,w.isDefaultFieldConfigId=In,w.isEmptyObject=_r,w.isEnumValueDisabled=Jn,w.isHidden=Bt,w.isObject=jt,w.isPropertyBuilder=Ae,w.isReadOnly=ut,w.isReferenceProperty=Uo,w.isValidRegExp=ai,w.joinCollectionLists=Ko,w.makePropertiesEditable=Zo,w.makePropertiesNonEditable=Xo,w.mergeCollection=Ro,w.mergeDeep=Pe,w.pick=Do,w.plural=di,w.propertiesToColumns=Xa,w.randomColor=ti,w.randomString=mt,w.removeFunctions=wr,w.removeInPath=Wn,w.removeInitialAndTrailingSlashes=pe,w.removeInitialSlash=Mo,w.removePropsIfExisting=Oo,w.removeTrailingSlash=Qo,w.removeUndefined=kr,w.renderSkeletonCaptionText=Vi,w.renderSkeletonIcon=Ur,w.renderSkeletonImageThumbnail=qr,w.renderSkeletonText=Ue,w.resolveArrayProperty=He,w.resolveCollection=Be,w.resolveCollectionPathIds=yr,w.resolveDefaultSelectedView=Nr,w.resolveEntityView=Sr,w.resolveEnumValues=Zn,w.resolveNavigationFrom=pa,w.resolvePermissions=It,w.resolveProperties=Er,w.resolveProperty=Ee,w.resolvePropertyEnum=Br,w.sanitizeData=Hn,w.saveEntityWithCallbacks=Yr,w.segmentsToStrippedPath=Lo,w.serializeRegExp=oi,w.singular=pi,w.slugify=Wt,w.sortProperties=Fr,w.stripCollectionPath=Tr,w.toKebabCase=Kn,w.toSnakeCase=ei,w.traverseValueProperty=Ut,w.traverseValuesProperties=Cr,w.unslugify=ri,w.updateDateAutoValues=zo,w.useAuthController=Je,w.useBrowserTitleAndIcon=Il,w.useBuildLocalConfigurationPersistence=tc,w.useBuildModeController=ec,w.useClearRestoreValue=Se,w.useClipboard=ua,w.useCollectionFetch=Ci,w.useDataSource=De,w.useDataSourceEntityCollectionTableController=co,w.useDebounce=Ht,w.useEntityFetch=Gr,w.useFireCMSContext=Z,w.useLargeLayout=Ie,w.useModeController=jr,w.useNavigationController=le,w.useReferenceDialog=kt,w.useResolvedNavigationFrom=Ei,w.useSelectionController=yo,w.useSideDialogContext=dr,w.useSideDialogsController=Ft,w.useSideEntityController=Ze,w.useSnackbarController=Xe,w.useStorageSource=ht,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});
|
|
1611
589
|
//# sourceMappingURL=index.umd.js.map
|