@dashadmin/dash-admin 1.3.73 → 1.3.74-srcfree.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/tenant/TenancyPlan.js +307 -0
- package/dist/systemResources.js +18 -2
- package/package.json +25 -22
- package/src/AppAsyncWrapper.tsx +0 -42
- package/src/AppWrapper.tsx +0 -45
- package/src/DASHAdmin.tsx +0 -502
- package/src/DASHAdmin.tsx.old +0 -456
- package/src/RoutingWrapper.tsx +0 -143
- package/src/classes/DASHStorageClass.tsx +0 -8
- package/src/components/Input/RichTextField.tsx +0 -27
- package/src/components/Redirect.tsx +0 -46
- package/src/components/avatar/Avatar.tsx +0 -71
- package/src/components/avatar/SingleImageUploader.tsx +0 -107
- package/src/components/currency/Format.tsx +0 -79
- package/src/components/custom/Redirect.tsx +0 -23
- package/src/components/error/Error.tsx +0 -168
- package/src/components/geocoding/GeocodingField.tsx +0 -167
- package/src/components/i18n/BridgedLocalesMenuButton.tsx +0 -160
- package/src/components/i18n/LangSwitcher.tsx +0 -204
- package/src/components/loader/GlobalLoader.tsx +0 -49
- package/src/components/logs/LogFile.tsx +0 -88
- package/src/components/logs/LogFileById.tsx +0 -68
- package/src/components/logs/LogViewer.tsx +0 -43
- package/src/components/menu/AppMenu.tsx +0 -22
- package/src/components/menu/CustomMenuItemLink.tsx +0 -61
- package/src/components/menu/DarkToggleMode.tsx +0 -65
- package/src/components/menu/LanguageToggleMode.tsx +0 -120
- package/src/components/misc/CustomImageInput.tsx +0 -62
- package/src/components/misc/DASHGlobalErrorHandler.tsx +0 -194
- package/src/components/misc/DarkModeSwitcher.tsx +0 -112
- package/src/components/misc/HorizontalScroller.tsx +0 -225
- package/src/components/misc/LanguageSwitcher.tsx +0 -199
- package/src/components/misc/MUIHtmlToolTip.tsx +0 -15
- package/src/components/misc/MuiSimpleJsonTable.tsx +0 -279
- package/src/components/misc/MultiLevelTable.tsx +0 -229
- package/src/components/misc/NoResults.tsx +0 -28
- package/src/components/misc/PDFViewer.tsx +0 -85
- package/src/components/navigation/Breadcrumbs.tsx +0 -220
- package/src/components/navigation/BreadcrumbsManager.tsx +0 -310
- package/src/components/navigation/index.tsx +0 -5
- package/src/components/panel/Error.tsx +0 -168
- package/src/components/permission/AvailablePermissionsContext.tsx +0 -173
- package/src/components/permission/PermissionsSelector.tsx +0 -834
- package/src/components/permission/PermissionsSelectorList.tsx +0 -473
- package/src/components/permission/tsx +0 -0
- package/src/components/racustombuttons/CustomRAButton.tsx +0 -87
- package/src/components/racustombuttons/QuickButton.tsx +0 -117
- package/src/components/racustombuttons/QuickEditButton.tsx +0 -115
- package/src/components/racustombuttons/QuickIconButton.tsx +0 -122
- package/src/components/scrollbar/Scrollbar.tsx +0 -31
- package/src/components/selects/MultiSelect.tsx +0 -53
- package/src/components/selects/RASearchableSelect.tsx +0 -282
- package/src/components/selects/RASearchableSelectChips.tsx +0 -308
- package/src/components/selects/SearchableSelect.tsx +0 -139
- package/src/components/serviceAccount/ApiKeyRevealDialog.tsx +0 -129
- package/src/components/serviceAccount/ServiceAccountStatusSwitch.tsx +0 -99
- package/src/components/subscription/BillingCycleSelectInput.tsx +0 -68
- package/src/components/subscription/PlanAddonsSettings.tsx +0 -563
- package/src/components/subscription/PlanAuditLog.tsx +0 -453
- package/src/components/subscription/PlanFeaturesSettings.tsx +0 -243
- package/src/components/subscription/PlanLimitsSettings.tsx +0 -230
- package/src/components/subscription/PlanMetadataSettings.tsx +0 -306
- package/src/components/subscription/PlanPricesSettings.tsx +0 -307
- package/src/components/subscription/index.ts +0 -7
- package/src/components/svgelements/SvgLoading.tsx +0 -229
- package/src/components/svgelements/SvgLogo.tsx +0 -53
- package/src/components/svgelements/SvgLogoMin.tsx +0 -64
- package/src/components/svgelements/SvgShipping.tsx +0 -673
- package/src/components/tenancy/GlobalTenantWrapper.tsx +0 -84
- package/src/components/tenancy/TenantSwitcher.tsx +0 -514
- package/src/components/tenant/AvailablePermissionsContext.tsx +0 -0
- package/src/components/tenant/SettingsSections.tsx +0 -151
- package/src/components/tenant/TenancySettings.tsx +0 -122
- package/src/components/tenant/TenantAttributes.tsx +0 -153
- package/src/components/tenant/TenantAttributesContext.tsx +0 -163
- package/src/components/tenant/TenantSelector.tsx +0 -142
- package/src/components/tenant/TenantSettings.tsx +0 -184
- package/src/components/tenant/TenantSettingsContext.tsx +0 -165
- package/src/components/tenant/TenantTheme.tsx +0 -172
- package/src/components/user/AvatarComponent.tsx +0 -317
- package/src/components/user/TenantAvatarComponent.tsx +0 -99
- package/src/components/user/UserPreferences.tsx +0 -677
- package/src/config/ACTIONS.tsx +0 -26
- package/src/config/ConstantsService.tsx +0 -44
- package/src/config/DASHAdminSystemConstants.tsx +0 -183
- package/src/config/PARSERS.tsx +0 -9
- package/src/contexts/DashQueryClientContext.tsx +0 -113
- package/src/contexts/DashResourceContext.tsx +0 -34
- package/src/contexts/I18nBridgeContext.tsx +0 -156
- package/src/contexts/I18nBridgeSetter.tsx +0 -39
- package/src/contexts/I18nReduxSync.tsx +0 -27
- package/src/contexts/SubscriptionPlanFormatsProvider.tsx +0 -217
- package/src/contexts/SystemRequestsCache.tsx +0 -215
- package/src/contexts/auth/AuthContext.tsx +0 -567
- package/src/contexts/auth/AuthContextLocalStorage.tsx +0 -140
- package/src/contexts/auth/DASHAuthenticationService.tsx +0 -915
- package/src/contexts/auth/WindowContext.tsx +0 -15
- package/src/contexts/auth/index.tsx +0 -3
- package/src/contexts/com/FCMContext.tsx +0 -415
- package/src/contexts/com/LaravelEchoContext.tsx +0 -41
- package/src/contexts/com/LaravelEchoMgr.tsx +0 -155
- package/src/contexts/com/components/DefaultNotificationComponent.tsx +0 -20
- package/src/contexts/com/components/EchoNotificationsCenter.tsx +0 -65
- package/src/contexts/com/components/NotificationAttributesTable.tsx +0 -54
- package/src/contexts/com/components/NotificationRenderer.tsx +0 -42
- package/src/contexts/com/components/NotificationsWidget.tsx +0 -182
- package/src/contexts/com/components/notificationFormats.tsx +0 -50
- package/src/contexts/com/useLaravelEcho.tsx +0 -432
- package/src/contexts/dictionary/DictionaryContext.tsx +0 -94
- package/src/declarations.d.ts +0 -17
- package/src/default-theme/DASHAppProviders.tsx +0 -117
- package/src/default-theme/DashThemeContext.tsx +0 -209
- package/src/default-theme/DashThemeContext.tsx.fast +0 -143
- package/src/default-theme/DashThemeContext.tsx.old +0 -306
- package/src/default-theme/DashThemeHelperProvider.tsx +0 -98
- package/src/default-theme/DomainAppLayout.tsx +0 -166
- package/src/default-theme/DomainHeader.tsx +0 -162
- package/src/default-theme/DomainTheme.tsx +0 -59
- package/src/default-theme/FullLayoutMarkup.tsx +0 -231
- package/src/default-theme/StaticLayout.tsx +0 -47
- package/src/default-theme/index.tsx +0 -11
- package/src/default-theme/menu/AppDashboardGrid.tsx +0 -279
- package/src/default-theme/menu/AppMaterialMenu.tsx +0 -546
- package/src/default-theme/menu/AppMenuComponents/SubmenuPortal.tsx +0 -61
- package/src/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItem.tsx +0 -264
- package/src/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItems.tsx +0 -31
- package/src/default-theme/menu/AppMenuComponents/expanded/CollapsableSidebarMenu.tsx +0 -293
- package/src/default-theme/menu/AppMenuComponents/expanded/SidebarItem.tsx +0 -92
- package/src/default-theme/menu/AppMenuComponents/getItem.tsx +0 -17
- package/src/default-theme/menu/AppMenuComponents/interfaces.tsx +0 -41
- package/src/default-theme/menu/AppMenuComponents/submenuConstants.ts +0 -90
- package/src/default-theme/menu/AppSidebarMaterial.tsx +0 -339
- package/src/default-theme/menu/SidebarActions.tsx +0 -84
- package/src/default-theme/updateDomCssVariables.tsx +0 -176
- package/src/helpers/checkRole.tsx +0 -66
- package/src/helpers/parseAxiosError.tsx +0 -41
- package/src/hooks/audio/useAudio.tsx +0 -39
- package/src/hooks/axios.tsx +0 -165
- package/src/hooks/data/useDashboardStats.tsx +0 -65
- package/src/hooks/data/usePackageByClientsStats.tsx +0 -44
- package/src/hooks/data/usePackageByCommunesStats.tsx +0 -44
- package/src/hooks/data/usePackageStats.tsx +0 -69
- package/src/hooks/data/usePackageWithdrawDetails.tsx +0 -61
- package/src/hooks/data/useStats.tsx +0 -86
- package/src/hooks/isCurrentPath.tsx +0 -22
- package/src/hooks/notifications/WSMessagesManager.tsx +0 -152
- package/src/hooks/notifications/WSPusherManager.tsx +0 -92
- package/src/hooks/useBreadcrumbs.tsx +0 -329
- package/src/hooks/useClickOutside.tsx +0 -57
- package/src/hooks/useFormPersistance.tsx +0 -150
- package/src/hooks/useGlobalErrorMediator.tsx +0 -43
- package/src/hooks/useGlobalLoaderMgr.tsx +0 -21
- package/src/hooks/useHash.tsx +0 -27
- package/src/hooks/useLocalStorage.tsx +0 -196
- package/src/hooks/usePolyglotTranslation.tsx +0 -62
- package/src/hooks/usePrevious.tsx +0 -9
- package/src/hooks/usePrintSelected.tsx +0 -37
- package/src/hooks/useVirtualHash.tsx +0 -33
- package/src/hooks/window/useWindowSize.tsx +0 -36
- package/src/index.tsx +0 -134
- package/src/interfaces/IAppResourceConfig.tsx +0 -20
- package/src/interfaces/Log.tsx +0 -16
- package/src/interfaces/Tenant.tsx +0 -25
- package/src/interfaces/communication/IActions.tsx +0 -5
- package/src/interfaces/communication/INotification.tsx +0 -21
- package/src/interfaces/communication/IPayload.tsx +0 -3
- package/src/interfaces/communication/IRequestAction.tsx +0 -10
- package/src/interfaces/communication/IRequestPayload.tsx +0 -7
- package/src/interfaces/communication/IResponseAction.tsx +0 -7
- package/src/interfaces/misc/IAny.tsx +0 -3
- package/src/interfaces/misc/IFlashMessage.tsx +0 -10
- package/src/interfaces/navigation/IAppMenu.ts +0 -14
- package/src/interfaces/navigation/ICollapsableSidebarMenu.ts +0 -12
- package/src/interfaces/navigation/IMenuItem.ts +0 -16
- package/src/interfaces/notifications/IModel.tsx +0 -6
- package/src/interfaces/notifications/IModelField.tsx +0 -8
- package/src/interfaces/notifications/IUserNotification.tsx +0 -12
- package/src/interfaces/notifications/IUserNotificationData.tsx +0 -13
- package/src/interfaces/notifications/IUserNotificationPayload.tsx +0 -8
- package/src/interfaces/user/IGetAuth.tsx +0 -92
- package/src/interfaces/user/ITenantSettings.tsx +0 -3
- package/src/interfaces/user/IUser.tsx +0 -60
- package/src/interfaces/user/IUserSettings.tsx +0 -43
- package/src/interfaces.tsx +0 -6
- package/src/layout/AppLayout.tsx +0 -112
- package/src/layout/ApplicationLayout.tsx +0 -197
- package/src/layout/MotionWrapper.original.tsx +0 -236
- package/src/layout/MotionWrapper.tsx +0 -236
- package/src/layout/ResourceMenu.tsx +0 -164
- package/src/layout/ResoureLayout.tsx +0 -105
- package/src/layout/TransitionWrapper.tsx +0 -125
- package/src/pages/ChangePassword.tsx +0 -179
- package/src/pages/DASHLanding.tsx +0 -22
- package/src/pages/DASHLightWeightLogin.tsx +0 -611
- package/src/pages/DASHSimpleLogin.tsx +0 -260
- package/src/pages/Login.tsx +0 -111
- package/src/pages/Profile.tsx +0 -357
- package/src/pages/RecoverPassword.tsx +0 -175
- package/src/pages/SingleImageUploader.tsx +0 -55
- package/src/pages/VerifyAccount.tsx +0 -128
- package/src/providers/authProvider.tsx +0 -217
- package/src/providers/dataProvider.tsx +0 -672
- package/src/providers/i18n/en.ts +0 -646
- package/src/providers/i18n/es.ts +0 -652
- package/src/providers/i18n/languages.tsx +0 -8
- package/src/providers/i18n/mergeTranslations.ts +0 -53
- package/src/providers/i18nProvider.tsx +0 -23
- package/src/react-admin-dash/RADashComponent.tsx +0 -240
- package/src/react-admin-dash/Resource.tsx +0 -77
- package/src/resources/Brand/BrandResource.tsx +0 -130
- package/src/resources/DASHResourceLoader.ts +0 -180
- package/src/resources/Log/LogResource.tsx +0 -73
- package/src/resources/Tenant/ImpersonateTenantResource.tsx +0 -113
- package/src/resources/Trash/TrashTemplate.tsx +0 -180
- package/src/resources/User/components/AvatarUploadField.tsx +0 -57
- package/src/resources/User/components/PasswordFields.tsx +0 -73
- package/src/resources/User/getProfileMenu.ts +0 -57
- package/src/resources/User/profileResource.tsx +0 -51
- package/src/resources/User/userLayout.tsx +0 -62
- package/src/resources/User/userResource.tsx +0 -111
- package/src/resources/User/userSchema.tsx +0 -213
- package/src/resources/User/usersFilters.tsx +0 -21
- package/src/resources.tsx +0 -280
- package/src/schemas/log.tsx +0 -45
- package/src/schemas/notification.tsx +0 -42
- package/src/schemas/permissions.tsx +0 -44
- package/src/schemas/roles.tsx +0 -48
- package/src/schemas/rolesDataGrid.tsx +0 -48
- package/src/schemas/subscription/components/SubscriptionActions.tsx +0 -153
- package/src/schemas/subscription/components/SubscriptionPaymentHistory.tsx +0 -127
- package/src/schemas/subscription/components/SubscriptionPlanFeatures.tsx +0 -162
- package/src/schemas/subscription/components/SubscriptionPlanPreview.tsx +0 -141
- package/src/schemas/subscription/components/SubscriptionPlanStats.tsx +0 -318
- package/src/schemas/subscription/components/SubscriptionStatusIndicator.tsx +0 -72
- package/src/schemas/subscription/subscriptionPlanSchema.tsx +0 -185
- package/src/schemas/subscription/subscriptionSchema.tsx +0 -152
- package/src/schemas/subscriptionPlan.ts +0 -422
- package/src/schemas/tenant.tsx +0 -129
- package/src/schemas/tenantUser.tsx +0 -96
- package/src/schemas/tenant_superadmin.tsx +0 -119
- package/src/schemas/user.tsx +0 -26
- package/src/systemResources.old.tsx +0 -928
- package/src/systemResources.tsx +0 -1369
- package/src/templates/ResourceTemplate.tsx +0 -240
- package/src/templates/ResourceTemplate.tsx.memoized_experiment +0 -350
- package/src/templates/ResourceTemplate.tsx.original +0 -396
- package/src/templates/ResourceTemplateCreate.tsx +0 -182
- package/src/templates/ResourceTemplateEdit.tsx +0 -176
- package/src/templates/ResourceTemplateFull.tsx +0 -581
- package/src/templates/ResourceTemplateList.tsx +0 -340
- package/src/templates/ResourceTemplateOld.tsx.bkup +0 -567
- package/src/templates/ResourceTemplateShow.tsx +0 -88
- package/src/templates/TrashTemplate.tsx +0 -179
- package/src/tenantResources.tsx +0 -223
- package/src/test_portal_bubbles.tsx +0 -40
- package/src/theme/AppHeader.tsx +0 -52
- package/src/theme/AppLayoutSetting.tsx +0 -33
- package/src/theme/AppLogo.tsx +0 -13
- package/src/theme/AppSidebar.tsx +0 -12
- package/src/theme/AppSidebarContent.tsx +0 -105
- package/src/theme/AppSidebarLogo.tsx +0 -48
- package/src/theme/components/PageTitle.tsx +0 -37
- package/src/utils/cache/CacheInvalidatorContext.tsx +0 -125
- package/src/utils/cache/CacheInvalidatorListenerComponent.tsx +0 -10
- package/src/utils/cache/useCacheInvalidatorListener.tsx +0 -27
- package/src/utils/convertFileToBase64.tsx +0 -9
- package/src/utils/convertToFile.tsx +0 -14
- package/src/utils/cookies.tsx +0 -33
- package/src/utils/dashDefaultQueryClient.tsx +0 -34
- package/src/utils/dataUrlToBlob.tsx +0 -30
- package/src/utils/deepReplace.tsx +0 -19
- package/src/utils/getProfileMenu.tsx +0 -41
- package/src/utils/getTenantSettings.tsx +0 -9
- package/src/utils/getType.tsx +0 -8
- package/src/utils/getUserSettings.tsx +0 -8
- package/src/utils/hasCode.tsx +0 -14
- package/src/utils/index.ts +0 -19
- package/src/utils/injectTenantStyles.ts +0 -28
- package/src/utils/isComponent.tsx +0 -45
- package/src/utils/navEvents.tsx +0 -91
- package/src/utils/prototypes.tsx +0 -5
- package/src/utils/regexp.tsx +0 -4
- package/src/utils/resolveObjectPath.tsx +0 -4
- package/src/utils/setNativeValue.tsx +0 -24
- package/src/utils/slugify.tsx +0 -11
- package/src/utils/validators/emailValidator.tsx +0 -6
- package/src/utils/validators/requiredValidator.tsx +0 -5
- package/src/utils/validators/rutValidator.tsx +0 -31
- package/src/utils/validators.tsx +0 -96
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import React, { JSX } from 'react';
|
|
2
|
-
import { useSelector } from 'react-redux';
|
|
3
|
-
|
|
4
|
-
import AppLogo from './AppLogo';
|
|
5
|
-
export interface IAppSidebarLogo {
|
|
6
|
-
horizontalLogo: JSX.Element;
|
|
7
|
-
squaredLogo?: JSX.Element;
|
|
8
|
-
setSidebarExpanded?: Function;
|
|
9
|
-
sidebarExpanded: boolean;
|
|
10
|
-
}
|
|
11
|
-
const AppSidebarLogo: React.FC<IAppSidebarLogo> = ({
|
|
12
|
-
// @ts-ignore - logo prop not in interface
|
|
13
|
-
logo,
|
|
14
|
-
sidebarExpanded,
|
|
15
|
-
squaredLogo,
|
|
16
|
-
setSidebarExpanded,
|
|
17
|
-
...props
|
|
18
|
-
}) => {
|
|
19
|
-
/*const {themeType} =useSelector((state:IDASHAppState) => state.settings);
|
|
20
|
-
const {width} =useSelector((state:IDASHAppState) => state.common);
|
|
21
|
-
|
|
22
|
-
let navStyle =useSelector((state:IDASHAppState) => state.settings.navStyle);*/
|
|
23
|
-
/*if (width < TAB_SIZE && navStyle === NAV_STYLE_FIXED) {
|
|
24
|
-
navStyle = NAV_STYLE_DRAWER;
|
|
25
|
-
}*/
|
|
26
|
-
|
|
27
|
-
return (
|
|
28
|
-
<div className='dash-layout-sider-header'>
|
|
29
|
-
{!sidebarExpanded ? (
|
|
30
|
-
// @ts-ignore - AppLogo props compatibility issue
|
|
31
|
-
(<AppLogo type='logo' logoBig={logo} squaredLogo={squaredLogo} />)
|
|
32
|
-
) : (
|
|
33
|
-
// @ts-ignore - AppLogo props compatibility issue
|
|
34
|
-
(<AppLogo type='iso' logoBig={logo} squaredLogo={squaredLogo} />)
|
|
35
|
-
)}
|
|
36
|
-
|
|
37
|
-
{/*<Link to="/" className="dash-site-logo">
|
|
38
|
-
{navStyle === NAV_STYLE_NO_HEADER_MINI_SIDEBAR && width >= TAB_SIZE ?
|
|
39
|
-
<img alt="lo" src={("/assets/images/w-logo.png")}/> :
|
|
40
|
-
themeType === THEME_TYPE_LIGHT ?
|
|
41
|
-
<img alt="logo1" src={("/assets/images/logo-white.png")}/> :
|
|
42
|
-
<img alt="logo2" src={("/assets/images/logo.png")}/>}
|
|
43
|
-
</Link>*/}
|
|
44
|
-
</div>
|
|
45
|
-
);
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export default AppSidebarLogo;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// @Deprecated: not in use.
|
|
2
|
-
|
|
3
|
-
import React, { PropsWithChildren, ReactNode } from 'react';
|
|
4
|
-
|
|
5
|
-
export interface IPageTitle extends PropsWithChildren {
|
|
6
|
-
avatar: ReactNode;
|
|
7
|
-
// @ts-ignore - JSX namespace issue
|
|
8
|
-
title: string | JSX.Element;
|
|
9
|
-
subTitle?: string;
|
|
10
|
-
className?: string;
|
|
11
|
-
// @ts-ignore - JSX namespace issue
|
|
12
|
-
extra?: JSX.Element[];
|
|
13
|
-
// custom component props
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const PageTitle: React.FC<IPageTitle> = ({
|
|
17
|
-
avatar,
|
|
18
|
-
title,
|
|
19
|
-
subTitle,
|
|
20
|
-
className,
|
|
21
|
-
extra,
|
|
22
|
-
children,
|
|
23
|
-
...props
|
|
24
|
-
}) => {
|
|
25
|
-
|
|
26
|
-
if(!title || title === "") { return <></>}
|
|
27
|
-
return (
|
|
28
|
-
<div className={`dash-page-header ${className || ''}`} {...props}>
|
|
29
|
-
<h3>{title}</h3>
|
|
30
|
-
<b>{subTitle}</b>
|
|
31
|
-
{/*...(avatar && {avatar:{src: avatar}})*/}
|
|
32
|
-
{children || extra}
|
|
33
|
-
</div>
|
|
34
|
-
);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export default PageTitle;
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import React, {
|
|
3
|
-
FC,
|
|
4
|
-
PropsWithChildren,
|
|
5
|
-
useContext,
|
|
6
|
-
useEffect
|
|
7
|
-
} from 'react';
|
|
8
|
-
import useLocalStorage from '../../hooks/useLocalStorage';
|
|
9
|
-
import { dashStorage } from 'dash-utils';
|
|
10
|
-
|
|
11
|
-
const currentTimestamp = ():string => {
|
|
12
|
-
const currentdate = new Date();
|
|
13
|
-
const datetime = currentdate.getFullYear() + ""
|
|
14
|
-
+ (currentdate.getMonth()+1) + ""
|
|
15
|
-
+ currentdate.getDate() + ""
|
|
16
|
-
+ currentdate.getHours() + ""
|
|
17
|
-
+ currentdate.getMinutes() + ""
|
|
18
|
-
+ currentdate.getSeconds();
|
|
19
|
-
|
|
20
|
-
return datetime;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export class CacheInvalidatorContextClass {
|
|
24
|
-
static values: Partial<ICacheInvalidatorContextProps>;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface ICacheInvalidatorStore {
|
|
28
|
-
[x:string]: string
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export interface ICacheInvalidatorContextProps {
|
|
32
|
-
cacheInvalidatorStore: ICacheInvalidatorStore;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export interface ICacheInvalidatorContext extends Partial<ICacheInvalidatorContextProps> {
|
|
36
|
-
updateEntry: (entry: string) => void;
|
|
37
|
-
//removeEntry: (entry: string) => void;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const defaultValues: ICacheInvalidatorContextProps = {
|
|
41
|
-
cacheInvalidatorStore: {},
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
export const CacheInvalidatorContext = React.createContext<ICacheInvalidatorContext>(null);
|
|
45
|
-
|
|
46
|
-
export interface ICacheInvalidatorContextProvider extends PropsWithChildren {
|
|
47
|
-
values?: Partial<ICacheInvalidatorContextProps>;
|
|
48
|
-
}
|
|
49
|
-
export const CacheInvalidatorContextProvider: FC<ICacheInvalidatorContextProvider> = (props) => {
|
|
50
|
-
const { children, values } = props;
|
|
51
|
-
|
|
52
|
-
const initialValue = JSON.stringify(values || defaultValues);
|
|
53
|
-
|
|
54
|
-
const [currentValues, setCurrentValues] = useLocalStorage(
|
|
55
|
-
'SerializedCacheInvalidatorContext',
|
|
56
|
-
initialValue,
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
const updateEntry = (entry: string) => {
|
|
60
|
-
setCurrentValues((state) => {
|
|
61
|
-
|
|
62
|
-
//const _state:ICacheInvalidatorContextProps = JSON.parse(state);
|
|
63
|
-
const _state:ICacheInvalidatorContextProps = typeof state === "string" ? JSON.parse(state) : state;
|
|
64
|
-
_state.cacheInvalidatorStore = !!_state.cacheInvalidatorStore ? {..._state.cacheInvalidatorStore, ...{[entry]: currentTimestamp() }} : {[entry]: currentTimestamp() }
|
|
65
|
-
return _state;
|
|
66
|
-
});
|
|
67
|
-
};
|
|
68
|
-
// Deuda Técnica: Tch debt: el currentValues no se propaga con el useEffect. es posible accederlo por el localstorage cuando es requerido
|
|
69
|
-
// sin embargo, cuando se actualiza el currentValue no se puede acceder a él por useState, posiblemente por memoización, no ocurre el re-render.
|
|
70
|
-
// Bug minor - No afecta la característica.
|
|
71
|
-
return (
|
|
72
|
-
<CacheInvalidatorContext.Provider value={{ ...currentValues, updateEntry }}>
|
|
73
|
-
{children}
|
|
74
|
-
</CacheInvalidatorContext.Provider>
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
export const CacheInvalidatorContextConsumer = CacheInvalidatorContext.Consumer;
|
|
80
|
-
|
|
81
|
-
export const useCacheInvalidatorContext = () => {
|
|
82
|
-
const cacheInvalidatorContext: ICacheInvalidatorContext = useContext(CacheInvalidatorContext);
|
|
83
|
-
return cacheInvalidatorContext;
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
export const getCacheInvalidatorContext = () => {
|
|
87
|
-
const response = JSON.parse(
|
|
88
|
-
dashStorage.getItem('SerializedCacheInvalidatorContext')
|
|
89
|
-
) as ICacheInvalidatorContextProps;
|
|
90
|
-
|
|
91
|
-
return response;
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
function findKeysWithStringValue(obj, searchString) {
|
|
95
|
-
return Object.keys(obj).filter(key => {
|
|
96
|
-
return searchString.includes(key);
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export const cacheInvalidatorHash = (resource:string): string | null => {
|
|
101
|
-
|
|
102
|
-
const store = getCacheInvalidatorContext();
|
|
103
|
-
if(!store) return null;
|
|
104
|
-
|
|
105
|
-
const find = findKeysWithStringValue(store.cacheInvalidatorStore, resource);
|
|
106
|
-
|
|
107
|
-
if(!find) return null;
|
|
108
|
-
return store.cacheInvalidatorStore[find[0]]
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
export const updateCacheInvalidatorContext = (values: Partial<ICacheInvalidatorContextProps>) => {
|
|
113
|
-
const prevState = getCacheInvalidatorContext();
|
|
114
|
-
|
|
115
|
-
dashStorage.setItem(
|
|
116
|
-
'SerializedCacheInvalidatorContext',
|
|
117
|
-
JSON.stringify({ ...prevState, ...values }),
|
|
118
|
-
);
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
export const setCacheInvalidatorContext = (values: Partial<ICacheInvalidatorContextProps>) => {
|
|
122
|
-
dashStorage.setItem('SerializedCacheInvalidatorContext', JSON.stringify(values));
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
export default CacheInvalidatorContext;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { FC } from "react";
|
|
2
|
-
import useCacheInvalidatorListener from "./useCacheInvalidatorListener";
|
|
3
|
-
import React from "react";
|
|
4
|
-
|
|
5
|
-
const CacheInvalidatorListenerComponent:FC<any> = () => {
|
|
6
|
-
const _cacheInvalidatorStore = useCacheInvalidatorListener();
|
|
7
|
-
return <></>
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export default CacheInvalidatorListenerComponent;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import React, { useContext, useEffect, useState } from 'react';
|
|
3
|
-
|
|
4
|
-
import CacheInvalidatorContext from './CacheInvalidatorContext';
|
|
5
|
-
import LaravelEchoContext, { ILaravelEchoContext } from '../../contexts/com/LaravelEchoContext';
|
|
6
|
-
|
|
7
|
-
const useCacheInvalidatorListener = () => {
|
|
8
|
-
|
|
9
|
-
const laravelEchoContext = useContext<ILaravelEchoContext>(LaravelEchoContext);
|
|
10
|
-
const {cacheInvalidatorStore,updateEntry} = useContext(CacheInvalidatorContext);
|
|
11
|
-
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
const lastNotification = laravelEchoContext?.lastEvent;
|
|
14
|
-
|
|
15
|
-
/*if (lastNotification?.type === 'invalidate-cache') {
|
|
16
|
-
if(lastNotification.notificationPayload?.resource) {
|
|
17
|
-
updateEntry(lastNotification.notificationPayload?.resource)
|
|
18
|
-
}
|
|
19
|
-
}*/
|
|
20
|
-
}, [laravelEchoContext]);
|
|
21
|
-
|
|
22
|
-
return {
|
|
23
|
-
cacheInvalidatorStore: cacheInvalidatorStore
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export default useCacheInvalidatorListener;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
const convertFileToBase64 = (file) =>
|
|
2
|
-
new Promise((resolve, reject) => {
|
|
3
|
-
const reader = new FileReader();
|
|
4
|
-
reader.onload = () => resolve(reader.result);
|
|
5
|
-
reader.onerror = reject;
|
|
6
|
-
reader.readAsDataURL(file.rawFile);
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
export default convertFileToBase64;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
const converToFile = (file) =>
|
|
2
|
-
new Promise((resolve, reject) => {
|
|
3
|
-
const reader = new FileReader();
|
|
4
|
-
|
|
5
|
-
reader.onload = () => {
|
|
6
|
-
//
|
|
7
|
-
resolve(reader.result);
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
reader.onerror = reject;
|
|
11
|
-
reader.readAsDataURL(file.rawFile);
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
export default converToFile;
|
package/src/utils/cookies.tsx
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import cookie from 'js-cookie';
|
|
2
|
-
|
|
3
|
-
export const setCookie = (
|
|
4
|
-
key: string,
|
|
5
|
-
value: string,
|
|
6
|
-
options: cookie.CookieAttributes = {},
|
|
7
|
-
) => {
|
|
8
|
-
cookie.set(key, value, {
|
|
9
|
-
path: '/',
|
|
10
|
-
...options,
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export const removeCookie = (key) => {
|
|
15
|
-
cookie.remove(key, {
|
|
16
|
-
expires: 1,
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export const getCookie = (key) => {
|
|
21
|
-
return getCookieFromBrowser(key);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const getCookieFromBrowser = (key) => {
|
|
25
|
-
return cookie.get(key);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export const clearAllCookies = () => {
|
|
29
|
-
const allCookies = cookie.get();
|
|
30
|
-
Object.keys(allCookies).forEach((key) => {
|
|
31
|
-
cookie.remove(key, { path: '/' });
|
|
32
|
-
});
|
|
33
|
-
};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { QueryClient } from "react-query";
|
|
2
|
-
/*
|
|
3
|
-
const dashDefaultQueryClient = new QueryClient({
|
|
4
|
-
defaultOptions: {
|
|
5
|
-
queries: {
|
|
6
|
-
refetchOnWindowFocus: false, // default: true
|
|
7
|
-
},
|
|
8
|
-
},
|
|
9
|
-
// @ts-ignore: required to avoid error during development.
|
|
10
|
-
logger: {
|
|
11
|
-
log: (...args) => {
|
|
12
|
-
console.log(args);
|
|
13
|
-
},
|
|
14
|
-
warn: (...args) => {
|
|
15
|
-
console.warn(args);
|
|
16
|
-
},
|
|
17
|
-
error: (...args) => {
|
|
18
|
-
console.error(args);
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
const dashDefaultQueryClient = new QueryClient({
|
|
25
|
-
defaultOptions: {
|
|
26
|
-
queries: {
|
|
27
|
-
refetchOnWindowFocus: false,
|
|
28
|
-
staleTime: 5 * 60 * 1000, // 5 minutes
|
|
29
|
-
retry: 1,
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
export default dashDefaultQueryClient;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
function dataURLToBlob(dropFile) {
|
|
2
|
-
//https://gist.github.com/aermolaev/a96ba40cd68fe357195f
|
|
3
|
-
|
|
4
|
-
const BASE64_MARKER = ';base64,';
|
|
5
|
-
//
|
|
6
|
-
const dataURL = dropFile.src;
|
|
7
|
-
|
|
8
|
-
if (dataURL.indexOf(BASE64_MARKER) === -1) {
|
|
9
|
-
const parts = dataURL.split(',');
|
|
10
|
-
const contentType = parts[0].split(':')[1];
|
|
11
|
-
const raw = decodeURIComponent(parts[1]);
|
|
12
|
-
|
|
13
|
-
return new Blob([raw], { type: contentType });
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const parts = dataURL.split(BASE64_MARKER);
|
|
17
|
-
const contentType = parts[0].split(':')[1];
|
|
18
|
-
const raw = window.atob(parts[1]);
|
|
19
|
-
const rawLength = raw.length;
|
|
20
|
-
|
|
21
|
-
const uInt8Array = new Uint8Array(rawLength);
|
|
22
|
-
|
|
23
|
-
for (let i = 0; i < rawLength; ++i) {
|
|
24
|
-
uInt8Array[i] = raw.charCodeAt(i);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return new Blob([uInt8Array], { type: contentType });
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export default dataURLToBlob;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
const deepReplace = (
|
|
2
|
-
obj: object,
|
|
3
|
-
keyName: string,
|
|
4
|
-
replacer: (from: any) => string,
|
|
5
|
-
) => {
|
|
6
|
-
for (const key in obj) {
|
|
7
|
-
if (key === keyName) {
|
|
8
|
-
obj[key] = replacer(obj[key]);
|
|
9
|
-
} else if (Array.isArray(obj[key])) {
|
|
10
|
-
(obj[key] as any[]).forEach((member) =>
|
|
11
|
-
deepReplace(member, keyName, replacer),
|
|
12
|
-
);
|
|
13
|
-
} else if (typeof obj[key] === 'object') {
|
|
14
|
-
deepReplace(obj[key], keyName, replacer);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export default deepReplace;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/* deprecated used in domain */
|
|
2
|
-
//import { IApplicationLayoutMenuItem } from '@dash-auto-admin/interfaces';
|
|
3
|
-
|
|
4
|
-
import { IApplicationLayoutMenuItem } from "../layout/ApplicationLayout";
|
|
5
|
-
import { dashStorage } from 'dash-utils';
|
|
6
|
-
|
|
7
|
-
const getProfileMenu = (resourceConfig): IApplicationLayoutMenuItem[] => {
|
|
8
|
-
const user = JSON.parse(dashStorage.getItem('user'));
|
|
9
|
-
const roles: any[] = JSON.parse(dashStorage.getItem('roles'));
|
|
10
|
-
|
|
11
|
-
const profileMenu = [
|
|
12
|
-
{
|
|
13
|
-
title: 'Perfil',
|
|
14
|
-
redirect: '/profile',
|
|
15
|
-
},
|
|
16
|
-
];
|
|
17
|
-
|
|
18
|
-
const isCliente = roles
|
|
19
|
-
? roles.map((role) => role.name).includes('Cliente')
|
|
20
|
-
: false;
|
|
21
|
-
|
|
22
|
-
isCliente &&
|
|
23
|
-
profileMenu.push(
|
|
24
|
-
{
|
|
25
|
-
title: 'Comunas',
|
|
26
|
-
redirect: '/profile/commune',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
title: 'Centros Logísticos',
|
|
30
|
-
redirect: '/profile/logistic-center',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
title: 'Notificaciones',
|
|
34
|
-
redirect: '/profile/notification',
|
|
35
|
-
},
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
return profileMenu;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export default getProfileMenu;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ITenantSettings } from "../interfaces/user/ITenantSettings"
|
|
2
|
-
import { dashStorage } from 'dash-utils';
|
|
3
|
-
|
|
4
|
-
const getTenantSettings = ():ITenantSettings => {
|
|
5
|
-
const auth = JSON.parse(dashStorage.getItem('tenantSettings')) as ITenantSettings;
|
|
6
|
-
return auth;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export default getTenantSettings;
|
package/src/utils/getType.tsx
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IUserSettings } from "../interfaces/user/IUserSettings"
|
|
2
|
-
import { dashStorage } from 'dash-utils';
|
|
3
|
-
const getUserSettings = ():IUserSettings => {
|
|
4
|
-
const auth = JSON.parse(dashStorage.getItem('userSettings')) as IUserSettings;
|
|
5
|
-
return auth;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export default getUserSettings;
|
package/src/utils/hasCode.tsx
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
const hashCode = (string: string) => {
|
|
2
|
-
var hash = 0,
|
|
3
|
-
i,
|
|
4
|
-
chr;
|
|
5
|
-
if (string.length === 0) return hash;
|
|
6
|
-
for (i = 0; i < string.length; i++) {
|
|
7
|
-
chr = string.charCodeAt(i);
|
|
8
|
-
hash = (hash << 5) - hash + chr;
|
|
9
|
-
hash |= 0; // Convert to 32bit integer
|
|
10
|
-
}
|
|
11
|
-
return hash;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export default hashCode;
|
package/src/utils/index.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export * from "./convertFileToBase64"
|
|
2
|
-
export * from "./convertToFile"
|
|
3
|
-
export * from "./cookies"
|
|
4
|
-
export * from "./dataUrlToBlob"
|
|
5
|
-
export * from "./deepReplace"
|
|
6
|
-
export * from "./getProfileMenu"
|
|
7
|
-
export * from "./getTenantSettings"
|
|
8
|
-
export * from "./getType"
|
|
9
|
-
export * from "./getUserSettings"
|
|
10
|
-
export * from "./hasCode"
|
|
11
|
-
export * from "./injectTenantStyles"
|
|
12
|
-
export * from "./isComponent"
|
|
13
|
-
export * from "./regexp"
|
|
14
|
-
export * from "./resolveObjectPath"
|
|
15
|
-
export * from "./setNativeValue"
|
|
16
|
-
export * from "./slugify"
|
|
17
|
-
export * from "./validators"
|
|
18
|
-
export * from './dashDefaultQueryClient';
|
|
19
|
-
export * from './navEvents';
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tenant Styles Injection Utility
|
|
3
|
-
*
|
|
4
|
-
* Injects CSS variables from tenant settings into the DOM.
|
|
5
|
-
* This is placed in dash-admin to avoid cyclic dependencies between dash-utils and dash-auth.
|
|
6
|
-
*/
|
|
7
|
-
import { AuthPersistenceService } from 'dash-auth';
|
|
8
|
-
import { updateDomCssVariables } from 'dash-utils';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Inject tenant styles from persisted settings
|
|
12
|
-
* @param defaultTheme - The default theme type to use
|
|
13
|
-
*/
|
|
14
|
-
export const injectTenantStyles = (defaultTheme: string): void => {
|
|
15
|
-
const tenantSettings = AuthPersistenceService.getTenantSettings();
|
|
16
|
-
|
|
17
|
-
if (tenantSettings) {
|
|
18
|
-
try {
|
|
19
|
-
const colors = tenantSettings.colors;
|
|
20
|
-
console.log('Updating colors from local storage');
|
|
21
|
-
updateDomCssVariables(defaultTheme, colors);
|
|
22
|
-
} catch (error) {
|
|
23
|
-
console.error('Error parsing tenant settings:', error);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export default injectTenantStyles;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
function isClassComponent(component) {
|
|
4
|
-
return (
|
|
5
|
-
typeof component === 'function' && !!component.prototype.isReactComponent
|
|
6
|
-
);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
function isFunctionComponent(component) {
|
|
10
|
-
return (
|
|
11
|
-
typeof component === 'function' &&
|
|
12
|
-
String(component).includes('return React.createElement')
|
|
13
|
-
);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function isReactComponent(component) {
|
|
17
|
-
return isClassComponent(component) || isFunctionComponent(component);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function isElement(element) {
|
|
21
|
-
return React.isValidElement(element);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function isDOMTypeElement(element) {
|
|
25
|
-
return isElement(element) && typeof element.type === 'string';
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function isCompositeTypeElement(element) {
|
|
29
|
-
return isElement(element) && typeof element.type === 'function';
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export default isReactComponent;
|
|
33
|
-
|
|
34
|
-
/*const isComponent = (Component) => {
|
|
35
|
-
|
|
36
|
-
if (typeof Component === "undefined") return false;
|
|
37
|
-
return !!Component.name
|
|
38
|
-
return (
|
|
39
|
-
typeof Component === 'function' // can be various things
|
|
40
|
-
&& !(
|
|
41
|
-
Component.prototype // native arrows don't have prototypes
|
|
42
|
-
&& Component.prototype.isReactComponent // special property
|
|
43
|
-
)
|
|
44
|
-
);
|
|
45
|
-
}*/
|
package/src/utils/navEvents.tsx
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
// Custom event system for nav state communication
|
|
2
|
-
export const NAV_EVENTS = {
|
|
3
|
-
TOGGLE_EXPANDED: 'nav:toggle-expanded',
|
|
4
|
-
SET_EXPANDED: 'nav:set-expanded',
|
|
5
|
-
STATE_CHANGED: 'nav:state-changed',
|
|
6
|
-
CLOSE_DRAWER: 'nav:close-drawer',
|
|
7
|
-
CLOSE_ALL_SUBMENUS: 'nav:close-all-submenus',
|
|
8
|
-
SUBMENU_OPENED: 'nav:submenu-opened'
|
|
9
|
-
} as const;
|
|
10
|
-
|
|
11
|
-
export interface NavStateChangeEvent extends CustomEvent {
|
|
12
|
-
detail: {
|
|
13
|
-
expanded: boolean;
|
|
14
|
-
size: 'small' | 'large';
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export class NavEventManager {
|
|
19
|
-
static toggleExpanded() {
|
|
20
|
-
window.dispatchEvent(new CustomEvent(NAV_EVENTS.TOGGLE_EXPANDED));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
static setExpanded(expanded: boolean) {
|
|
24
|
-
window.dispatchEvent(new CustomEvent(NAV_EVENTS.SET_EXPANDED, {
|
|
25
|
-
detail: { expanded }
|
|
26
|
-
}));
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
static notifyStateChange(expanded: boolean, size: 'small' | 'large') {
|
|
30
|
-
window.dispatchEvent(new CustomEvent(NAV_EVENTS.STATE_CHANGED, {
|
|
31
|
-
detail: { expanded, size }
|
|
32
|
-
}));
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// Close drawer (used when navigating on mobile)
|
|
36
|
-
static closeDrawer() {
|
|
37
|
-
window.dispatchEvent(new CustomEvent(NAV_EVENTS.CLOSE_DRAWER));
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
static onCloseDrawer(callback: () => void) {
|
|
41
|
-
const handler = () => callback();
|
|
42
|
-
window.addEventListener(NAV_EVENTS.CLOSE_DRAWER, handler);
|
|
43
|
-
return () => window.removeEventListener(NAV_EVENTS.CLOSE_DRAWER, handler);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Submenu accordion behavior - notify when a submenu opens
|
|
47
|
-
static notifySubmenuOpened(submenuKey: string) {
|
|
48
|
-
window.dispatchEvent(new CustomEvent(NAV_EVENTS.SUBMENU_OPENED, {
|
|
49
|
-
detail: { submenuKey }
|
|
50
|
-
}));
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
static onSubmenuOpened(callback: (submenuKey: string) => void) {
|
|
54
|
-
const handler = (event: CustomEvent<{submenuKey: string}>) => {
|
|
55
|
-
callback(event.detail.submenuKey);
|
|
56
|
-
};
|
|
57
|
-
window.addEventListener(NAV_EVENTS.SUBMENU_OPENED, handler as EventListener);
|
|
58
|
-
return () => window.removeEventListener(NAV_EVENTS.SUBMENU_OPENED, handler as EventListener);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Close all submenus
|
|
62
|
-
static closeAllSubmenus() {
|
|
63
|
-
window.dispatchEvent(new CustomEvent(NAV_EVENTS.CLOSE_ALL_SUBMENUS));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
static onCloseAllSubmenus(callback: () => void) {
|
|
67
|
-
const handler = () => callback();
|
|
68
|
-
window.addEventListener(NAV_EVENTS.CLOSE_ALL_SUBMENUS, handler);
|
|
69
|
-
return () => window.removeEventListener(NAV_EVENTS.CLOSE_ALL_SUBMENUS, handler);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
static onToggleExpanded(callback: () => void) {
|
|
73
|
-
const handler = () => callback();
|
|
74
|
-
window.addEventListener(NAV_EVENTS.TOGGLE_EXPANDED, handler);
|
|
75
|
-
return () => window.removeEventListener(NAV_EVENTS.TOGGLE_EXPANDED, handler);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
static onSetExpanded(callback: (expanded: boolean) => void) {
|
|
79
|
-
const handler = (event: CustomEvent) => callback(event.detail.expanded);
|
|
80
|
-
window.addEventListener(NAV_EVENTS.SET_EXPANDED, handler as EventListener);
|
|
81
|
-
return () => window.removeEventListener(NAV_EVENTS.SET_EXPANDED, handler as EventListener);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
static onStateChange(callback: (expanded: boolean, size: 'small' | 'large') => void) {
|
|
85
|
-
const handler = (event: CustomEvent<{expanded: boolean; size: 'small' | 'large'}>) => {
|
|
86
|
-
callback(event.detail.expanded, event.detail.size);
|
|
87
|
-
};
|
|
88
|
-
window.addEventListener(NAV_EVENTS.STATE_CHANGED, handler as EventListener);
|
|
89
|
-
return () => window.removeEventListener(NAV_EVENTS.STATE_CHANGED, handler as EventListener);
|
|
90
|
-
}
|
|
91
|
-
}
|
package/src/utils/prototypes.tsx
DELETED
package/src/utils/regexp.tsx
DELETED