@mapvx/web-js 4.0.3-dev.1 → 4.0.3-dev.2
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/cjs/index.js +4 -2
- package/dist/es/assets/icons.d.ts +0 -1
- package/dist/es/assets/icons.js +0 -50
- package/dist/es/config/draco.d.ts +0 -1
- package/dist/es/config/draco.js +0 -10
- package/dist/es/config/sdkConfig.d.ts +0 -1
- package/dist/es/config/sdkConfig.js +0 -1
- package/dist/es/controllers/markerLayoutController.d.ts +0 -1
- package/dist/es/controllers/markerLayoutController.js +0 -103
- package/dist/es/controllers/routeController.d.ts +0 -1
- package/dist/es/controllers/routeController.js +1 -473
- package/dist/es/domain/models/_internal.d.ts +0 -1
- package/dist/es/domain/models/_internal.js +0 -8
- package/dist/es/domain/models/animation.d.ts +0 -1
- package/dist/es/domain/models/animation.js +0 -6
- package/dist/es/domain/models/banner.d.ts +0 -1
- package/dist/es/domain/models/banner.js +0 -10
- package/dist/es/domain/models/campaign.d.ts +0 -1
- package/dist/es/domain/models/campaign.js +0 -29
- package/dist/es/domain/models/categories.d.ts +0 -1
- package/dist/es/domain/models/categories.js +0 -20
- package/dist/es/domain/models/circle.d.ts +0 -1
- package/dist/es/domain/models/circle.js +0 -118
- package/dist/es/domain/models/cityFilterOption.d.ts +0 -1
- package/dist/es/domain/models/cityFilterOption.js +0 -1
- package/dist/es/domain/models/configuration.d.ts +0 -1
- package/dist/es/domain/models/configuration.js +0 -1
- package/dist/es/domain/models/cssCustomization.d.ts +0 -1
- package/dist/es/domain/models/cssCustomization.js +0 -1
- package/dist/es/domain/models/fitOptions.d.ts +0 -1
- package/dist/es/domain/models/fitOptions.js +0 -1
- package/dist/es/domain/models/innerFloors.d.ts +0 -1
- package/dist/es/domain/models/innerFloors.js +0 -1
- package/dist/es/domain/models/institution.d.ts +0 -1
- package/dist/es/domain/models/institution.js +0 -26
- package/dist/es/domain/models/latLng.d.ts +0 -1
- package/dist/es/domain/models/latLng.js +0 -1
- package/dist/es/domain/models/location.d.ts +0 -1
- package/dist/es/domain/models/location.js +0 -1
- package/dist/es/domain/models/loggeable.d.ts +0 -1
- package/dist/es/domain/models/loggeable.js +0 -24
- package/dist/es/domain/models/mapCamera.d.ts +0 -1
- package/dist/es/domain/models/mapCamera.js +0 -1
- package/dist/es/domain/models/mapConfig.d.ts +0 -1
- package/dist/es/domain/models/mapConfig.js +1 -17
- package/dist/es/domain/models/marker.d.ts +0 -1
- package/dist/es/domain/models/marker.js +0 -292
- package/dist/es/domain/models/multilanguage.d.ts +0 -1
- package/dist/es/domain/models/multilanguage.js +0 -10
- package/dist/es/domain/models/openingHours.d.ts +0 -1
- package/dist/es/domain/models/openingHours.js +0 -1
- package/dist/es/domain/models/place.d.ts +0 -1
- package/dist/es/domain/models/place.js +0 -68
- package/dist/es/domain/models/platform.d.ts +0 -1
- package/dist/es/domain/models/platform.js +0 -1
- package/dist/es/domain/models/popover.d.ts +0 -1
- package/dist/es/domain/models/popover.js +0 -1
- package/dist/es/domain/models/product.d.ts +0 -1
- package/dist/es/domain/models/product.js +0 -1
- package/dist/es/domain/models/property.d.ts +0 -1
- package/dist/es/domain/models/property.js +0 -16
- package/dist/es/domain/models/route.d.ts +0 -1
- package/dist/es/domain/models/route.js +0 -71
- package/dist/es/domain/models/routeConfiguration.d.ts +0 -1
- package/dist/es/domain/models/routeConfiguration.js +0 -36
- package/dist/es/domain/models/routeInstance.d.ts +0 -1
- package/dist/es/domain/models/routeInstance.js +0 -8
- package/dist/es/domain/models/routeStyle.d.ts +0 -1
- package/dist/es/domain/models/routeStyle.js +0 -1
- package/dist/es/domain/models/scene3D.d.ts +0 -1
- package/dist/es/domain/models/scene3D.js +0 -1
- package/dist/es/domain/models/transport.d.ts +0 -1
- package/dist/es/domain/models/transport.js +0 -12
- package/dist/es/domain/ports/ICache.d.ts +0 -1
- package/dist/es/domain/ports/ICache.js +0 -1
- package/dist/es/domain/ports/IHttpClient.d.ts +0 -1
- package/dist/es/domain/ports/IHttpClient.js +0 -1
- package/dist/es/domain/ports/ILogger.d.ts +0 -1
- package/dist/es/domain/ports/ILogger.js +0 -9
- package/dist/es/domain/ports/index.d.ts +0 -1
- package/dist/es/domain/ports/index.js +0 -5
- package/dist/es/index.d.ts +0 -1
- package/dist/es/index.js +1 -28
- package/dist/es/infrastructure/cache/CacheManager.d.ts +0 -1
- package/dist/es/infrastructure/cache/CacheManager.js +0 -94
- package/dist/es/infrastructure/cache/LRUCache.d.ts +0 -1
- package/dist/es/infrastructure/cache/LRUCache.js +0 -57
- package/dist/es/infrastructure/cache/PersistentCache.d.ts +0 -1
- package/dist/es/infrastructure/cache/PersistentCache.js +0 -51
- package/dist/es/infrastructure/cache/cacheConfig.d.ts +0 -1
- package/dist/es/infrastructure/cache/cacheConfig.js +8 -27
- package/dist/es/infrastructure/http/FetchHttpClient.d.ts +0 -1
- package/dist/es/infrastructure/http/FetchHttpClient.js +0 -36
- package/dist/es/infrastructure/logging/MVXLogger.d.ts +0 -1
- package/dist/es/infrastructure/logging/MVXLogger.js +0 -37
- package/dist/es/interfaces/cache.d.ts +0 -1
- package/dist/es/interfaces/cache.js +0 -1
- package/dist/es/interfaces/healthResponse.d.ts +0 -1
- package/dist/es/interfaces/healthResponse.js +0 -1
- package/dist/es/interfaces/institutionResponse.d.ts +0 -1
- package/dist/es/interfaces/institutionResponse.js +0 -1
- package/dist/es/interfaces/metadata.d.ts +0 -1
- package/dist/es/interfaces/metadata.js +0 -1
- package/dist/es/interfaces/placeResponse.d.ts +0 -1
- package/dist/es/interfaces/placeResponse.js +0 -1
- package/dist/es/interfaces/routeCacheResponse.d.ts +0 -1
- package/dist/es/interfaces/routeCacheResponse.js +0 -1
- package/dist/es/interfaces/routeResponse.d.ts +0 -1
- package/dist/es/interfaces/routeResponse.js +0 -1
- package/dist/es/interfaces/styleResponse.d.ts +0 -1
- package/dist/es/interfaces/styleResponse.js +0 -1
- package/dist/es/logger/logger.d.ts +0 -1
- package/dist/es/logger/logger.js +0 -10
- package/dist/es/logger/sentry.d.ts +0 -1
- package/dist/es/logger/sentry.js +1 -39
- package/dist/es/map/fitCamera.d.ts +0 -1
- package/dist/es/map/fitCamera.js +0 -44
- package/dist/es/map/generated/maplibreWorkerSource.d.ts +0 -1
- package/dist/es/map/generated/maplibreWorkerSource.js +0 -12
- package/dist/es/map/installMapLibreWorker.d.ts +0 -1
- package/dist/es/map/installMapLibreWorker.js +0 -100
- package/dist/es/map/liveMapFitTransform.d.ts +0 -1
- package/dist/es/map/liveMapFitTransform.js +0 -82
- package/dist/es/map/map.d.ts +0 -1
- package/dist/es/map/map.js +4 -681
- package/dist/es/map/mapInteractionOptions.d.ts +0 -1
- package/dist/es/map/mapInteractionOptions.js +0 -35
- package/dist/es/map/scene3DController.d.ts +0 -1
- package/dist/es/map/scene3DController.js +0 -221
- package/dist/es/repository/repository.d.ts +0 -1
- package/dist/es/repository/repository.js +0 -56
- package/dist/es/repository/requester.d.ts +0 -1
- package/dist/es/repository/requester.js +0 -233
- package/dist/es/sdk.d.ts +0 -1
- package/dist/es/sdk.js +0 -35
- package/dist/es/utils/3d.d.ts +0 -1
- package/dist/es/utils/3d.js +0 -79
- package/dist/es/utils/deckLayers.d.ts +0 -1
- package/dist/es/utils/deckLayers.js +1 -27
- package/dist/es/utils/error.d.ts +0 -1
- package/dist/es/utils/error.js +0 -7
- package/dist/es/utils/images.d.ts +0 -1
- package/dist/es/utils/images.js +0 -7
- package/dist/es/utils/loadGlb.d.ts +0 -1
- package/dist/es/utils/loadGlb.js +2 -96
- package/dist/es/utils/mapvxHostname.d.ts +0 -1
- package/dist/es/utils/mapvxHostname.js +0 -11
- package/dist/es/utils/nav-functions.d.ts +0 -1
- package/dist/es/utils/nav-functions.js +0 -82
- package/dist/es/utils/opening-hours-helper.d.ts +0 -1
- package/dist/es/utils/opening-hours-helper.js +6 -382
- package/dist/es/utils/preconnect.d.ts +0 -1
- package/dist/es/utils/preconnect.js +0 -61
- package/dist/es/utils/route-utils.d.ts +0 -1
- package/dist/es/utils/route-utils.js +0 -25
- package/dist/es/utils/semaphore.d.ts +0 -1
- package/dist/es/utils/semaphore.js +0 -78
- package/dist/es/utils/three.d.ts +0 -1
- package/dist/es/utils/three.js +0 -43
- package/dist/es/utils/threeScene.d.ts +0 -1
- package/dist/es/utils/threeScene.js +0 -38
- package/dist/es/utils/update-css.d.ts +0 -1
- package/dist/es/utils/update-css.js +0 -26
- package/dist/es/utils/utils.d.ts +0 -1
- package/dist/es/utils/utils.js +0 -53
- package/dist/umd/index.js +4 -29240
- package/dist/umd/index.js.LICENSE.txt +1 -0
- package/dist/umd/styles.css +0 -1
- package/dist/umd/styles.js +3 -32
- package/package.json +11 -5
- package/dist/cjs/index.js.map +0 -1
- package/dist/es/assets/icons.d.ts.map +0 -1
- package/dist/es/assets/icons.js.map +0 -1
- package/dist/es/config/draco.d.ts.map +0 -1
- package/dist/es/config/draco.js.map +0 -1
- package/dist/es/config/sdkConfig.d.ts.map +0 -1
- package/dist/es/config/sdkConfig.js.map +0 -1
- package/dist/es/controllers/markerLayoutController.d.ts.map +0 -1
- package/dist/es/controllers/markerLayoutController.js.map +0 -1
- package/dist/es/controllers/routeController.d.ts.map +0 -1
- package/dist/es/controllers/routeController.js.map +0 -1
- package/dist/es/domain/models/_internal.d.ts.map +0 -1
- package/dist/es/domain/models/_internal.js.map +0 -1
- package/dist/es/domain/models/animation.d.ts.map +0 -1
- package/dist/es/domain/models/animation.js.map +0 -1
- package/dist/es/domain/models/banner.d.ts.map +0 -1
- package/dist/es/domain/models/banner.js.map +0 -1
- package/dist/es/domain/models/campaign.d.ts.map +0 -1
- package/dist/es/domain/models/campaign.js.map +0 -1
- package/dist/es/domain/models/categories.d.ts.map +0 -1
- package/dist/es/domain/models/categories.js.map +0 -1
- package/dist/es/domain/models/circle.d.ts.map +0 -1
- package/dist/es/domain/models/circle.js.map +0 -1
- package/dist/es/domain/models/cityFilterOption.d.ts.map +0 -1
- package/dist/es/domain/models/cityFilterOption.js.map +0 -1
- package/dist/es/domain/models/configuration.d.ts.map +0 -1
- package/dist/es/domain/models/configuration.js.map +0 -1
- package/dist/es/domain/models/cssCustomization.d.ts.map +0 -1
- package/dist/es/domain/models/cssCustomization.js.map +0 -1
- package/dist/es/domain/models/fitOptions.d.ts.map +0 -1
- package/dist/es/domain/models/fitOptions.js.map +0 -1
- package/dist/es/domain/models/innerFloors.d.ts.map +0 -1
- package/dist/es/domain/models/innerFloors.js.map +0 -1
- package/dist/es/domain/models/institution.d.ts.map +0 -1
- package/dist/es/domain/models/institution.js.map +0 -1
- package/dist/es/domain/models/latLng.d.ts.map +0 -1
- package/dist/es/domain/models/latLng.js.map +0 -1
- package/dist/es/domain/models/location.d.ts.map +0 -1
- package/dist/es/domain/models/location.js.map +0 -1
- package/dist/es/domain/models/loggeable.d.ts.map +0 -1
- package/dist/es/domain/models/loggeable.js.map +0 -1
- package/dist/es/domain/models/mapCamera.d.ts.map +0 -1
- package/dist/es/domain/models/mapCamera.js.map +0 -1
- package/dist/es/domain/models/mapConfig.d.ts.map +0 -1
- package/dist/es/domain/models/mapConfig.js.map +0 -1
- package/dist/es/domain/models/marker.d.ts.map +0 -1
- package/dist/es/domain/models/marker.js.map +0 -1
- package/dist/es/domain/models/multilanguage.d.ts.map +0 -1
- package/dist/es/domain/models/multilanguage.js.map +0 -1
- package/dist/es/domain/models/openingHours.d.ts.map +0 -1
- package/dist/es/domain/models/openingHours.js.map +0 -1
- package/dist/es/domain/models/place.d.ts.map +0 -1
- package/dist/es/domain/models/place.js.map +0 -1
- package/dist/es/domain/models/platform.d.ts.map +0 -1
- package/dist/es/domain/models/platform.js.map +0 -1
- package/dist/es/domain/models/popover.d.ts.map +0 -1
- package/dist/es/domain/models/popover.js.map +0 -1
- package/dist/es/domain/models/product.d.ts.map +0 -1
- package/dist/es/domain/models/product.js.map +0 -1
- package/dist/es/domain/models/property.d.ts.map +0 -1
- package/dist/es/domain/models/property.js.map +0 -1
- package/dist/es/domain/models/route.d.ts.map +0 -1
- package/dist/es/domain/models/route.js.map +0 -1
- package/dist/es/domain/models/routeConfiguration.d.ts.map +0 -1
- package/dist/es/domain/models/routeConfiguration.js.map +0 -1
- package/dist/es/domain/models/routeInstance.d.ts.map +0 -1
- package/dist/es/domain/models/routeInstance.js.map +0 -1
- package/dist/es/domain/models/routeStyle.d.ts.map +0 -1
- package/dist/es/domain/models/routeStyle.js.map +0 -1
- package/dist/es/domain/models/scene3D.d.ts.map +0 -1
- package/dist/es/domain/models/scene3D.js.map +0 -1
- package/dist/es/domain/models/transport.d.ts.map +0 -1
- package/dist/es/domain/models/transport.js.map +0 -1
- package/dist/es/domain/ports/ICache.d.ts.map +0 -1
- package/dist/es/domain/ports/ICache.js.map +0 -1
- package/dist/es/domain/ports/IHttpClient.d.ts.map +0 -1
- package/dist/es/domain/ports/IHttpClient.js.map +0 -1
- package/dist/es/domain/ports/ILogger.d.ts.map +0 -1
- package/dist/es/domain/ports/ILogger.js.map +0 -1
- package/dist/es/domain/ports/index.d.ts.map +0 -1
- package/dist/es/domain/ports/index.js.map +0 -1
- package/dist/es/index.d.ts.map +0 -1
- package/dist/es/index.js.map +0 -1
- package/dist/es/infrastructure/cache/CacheManager.d.ts.map +0 -1
- package/dist/es/infrastructure/cache/CacheManager.js.map +0 -1
- package/dist/es/infrastructure/cache/LRUCache.d.ts.map +0 -1
- package/dist/es/infrastructure/cache/LRUCache.js.map +0 -1
- package/dist/es/infrastructure/cache/PersistentCache.d.ts.map +0 -1
- package/dist/es/infrastructure/cache/PersistentCache.js.map +0 -1
- package/dist/es/infrastructure/cache/cacheConfig.d.ts.map +0 -1
- package/dist/es/infrastructure/cache/cacheConfig.js.map +0 -1
- package/dist/es/infrastructure/http/FetchHttpClient.d.ts.map +0 -1
- package/dist/es/infrastructure/http/FetchHttpClient.js.map +0 -1
- package/dist/es/infrastructure/logging/MVXLogger.d.ts.map +0 -1
- package/dist/es/infrastructure/logging/MVXLogger.js.map +0 -1
- package/dist/es/interfaces/cache.d.ts.map +0 -1
- package/dist/es/interfaces/cache.js.map +0 -1
- package/dist/es/interfaces/healthResponse.d.ts.map +0 -1
- package/dist/es/interfaces/healthResponse.js.map +0 -1
- package/dist/es/interfaces/institutionResponse.d.ts.map +0 -1
- package/dist/es/interfaces/institutionResponse.js.map +0 -1
- package/dist/es/interfaces/metadata.d.ts.map +0 -1
- package/dist/es/interfaces/metadata.js.map +0 -1
- package/dist/es/interfaces/placeResponse.d.ts.map +0 -1
- package/dist/es/interfaces/placeResponse.js.map +0 -1
- package/dist/es/interfaces/routeCacheResponse.d.ts.map +0 -1
- package/dist/es/interfaces/routeCacheResponse.js.map +0 -1
- package/dist/es/interfaces/routeResponse.d.ts.map +0 -1
- package/dist/es/interfaces/routeResponse.js.map +0 -1
- package/dist/es/interfaces/styleResponse.d.ts.map +0 -1
- package/dist/es/interfaces/styleResponse.js.map +0 -1
- package/dist/es/logger/logger.d.ts.map +0 -1
- package/dist/es/logger/logger.js.map +0 -1
- package/dist/es/logger/sentry.d.ts.map +0 -1
- package/dist/es/logger/sentry.js.map +0 -1
- package/dist/es/map/fitCamera.d.ts.map +0 -1
- package/dist/es/map/fitCamera.js.map +0 -1
- package/dist/es/map/generated/maplibreWorkerSource.d.ts.map +0 -1
- package/dist/es/map/generated/maplibreWorkerSource.js.map +0 -1
- package/dist/es/map/installMapLibreWorker.d.ts.map +0 -1
- package/dist/es/map/installMapLibreWorker.js.map +0 -1
- package/dist/es/map/liveMapFitTransform.d.ts.map +0 -1
- package/dist/es/map/liveMapFitTransform.js.map +0 -1
- package/dist/es/map/map.d.ts.map +0 -1
- package/dist/es/map/map.js.map +0 -1
- package/dist/es/map/mapInteractionOptions.d.ts.map +0 -1
- package/dist/es/map/mapInteractionOptions.js.map +0 -1
- package/dist/es/map/scene3DController.d.ts.map +0 -1
- package/dist/es/map/scene3DController.js.map +0 -1
- package/dist/es/repository/repository.d.ts.map +0 -1
- package/dist/es/repository/repository.js.map +0 -1
- package/dist/es/repository/requester.d.ts.map +0 -1
- package/dist/es/repository/requester.js.map +0 -1
- package/dist/es/sdk.d.ts.map +0 -1
- package/dist/es/sdk.js.map +0 -1
- package/dist/es/utils/3d.d.ts.map +0 -1
- package/dist/es/utils/3d.js.map +0 -1
- package/dist/es/utils/deckLayers.d.ts.map +0 -1
- package/dist/es/utils/deckLayers.js.map +0 -1
- package/dist/es/utils/error.d.ts.map +0 -1
- package/dist/es/utils/error.js.map +0 -1
- package/dist/es/utils/images.d.ts.map +0 -1
- package/dist/es/utils/images.js.map +0 -1
- package/dist/es/utils/loadGlb.d.ts.map +0 -1
- package/dist/es/utils/loadGlb.js.map +0 -1
- package/dist/es/utils/mapvxHostname.d.ts.map +0 -1
- package/dist/es/utils/mapvxHostname.js.map +0 -1
- package/dist/es/utils/nav-functions.d.ts.map +0 -1
- package/dist/es/utils/nav-functions.js.map +0 -1
- package/dist/es/utils/opening-hours-helper.d.ts.map +0 -1
- package/dist/es/utils/opening-hours-helper.js.map +0 -1
- package/dist/es/utils/preconnect.d.ts.map +0 -1
- package/dist/es/utils/preconnect.js.map +0 -1
- package/dist/es/utils/route-utils.d.ts.map +0 -1
- package/dist/es/utils/route-utils.js.map +0 -1
- package/dist/es/utils/semaphore.d.ts.map +0 -1
- package/dist/es/utils/semaphore.js.map +0 -1
- package/dist/es/utils/three.d.ts.map +0 -1
- package/dist/es/utils/three.js.map +0 -1
- package/dist/es/utils/threeScene.d.ts.map +0 -1
- package/dist/es/utils/threeScene.js.map +0 -1
- package/dist/es/utils/update-css.d.ts.map +0 -1
- package/dist/es/utils/update-css.js.map +0 -1
- package/dist/es/utils/utils.d.ts.map +0 -1
- package/dist/es/utils/utils.js.map +0 -1
- package/dist/umd/index.js.map +0 -1
- package/dist/umd/styles.css.map +0 -1
- package/dist/umd/styles.js.map +0 -1
|
@@ -1,24 +1,8 @@
|
|
|
1
1
|
import { InternalMapVXSDK } from "../sdk";
|
|
2
|
-
/**
|
|
3
|
-
* Helper class for opening hours.
|
|
4
|
-
*/
|
|
5
2
|
export class OpeningHoursHelper {
|
|
6
|
-
/**
|
|
7
|
-
* Gets the day of the week as a two-character string indicator.
|
|
8
|
-
*
|
|
9
|
-
* @param date The Date object to extract the day from.
|
|
10
|
-
* @returns A `DaysOfTheWeek` string representing the day of the week.
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* const date = new Date(2024, 0, 1); // Monday
|
|
14
|
-
* const day = OpeningHoursHelper.getDay(date);
|
|
15
|
-
* console.log(day); // "mo"
|
|
16
|
-
* ```
|
|
17
|
-
* @default Returns null if an error occurs or invalid date is provided.
|
|
18
|
-
*/
|
|
19
3
|
static getDay(date) {
|
|
20
4
|
try {
|
|
21
|
-
const dayNumber = date.getDay();
|
|
5
|
+
const dayNumber = date.getDay();
|
|
22
6
|
switch (dayNumber) {
|
|
23
7
|
case 0:
|
|
24
8
|
return "su";
|
|
@@ -35,7 +19,6 @@ export class OpeningHoursHelper {
|
|
|
35
19
|
case 6:
|
|
36
20
|
return "sa";
|
|
37
21
|
default:
|
|
38
|
-
// This default shouldn't happen. I'll add it just for completeness.
|
|
39
22
|
return null;
|
|
40
23
|
}
|
|
41
24
|
}
|
|
@@ -43,21 +26,6 @@ export class OpeningHoursHelper {
|
|
|
43
26
|
return null;
|
|
44
27
|
}
|
|
45
28
|
}
|
|
46
|
-
/**
|
|
47
|
-
* Converts a 24-hour time format to 12-hour format with AM/PM.
|
|
48
|
-
*
|
|
49
|
-
* @param time24h The time string in 24-hour format (HH:mm).
|
|
50
|
-
* @returns Time formatted in 12-hour format with AM/PM.
|
|
51
|
-
* @example
|
|
52
|
-
* ```typescript
|
|
53
|
-
* const time12h = OpeningHoursHelper.convertSingleTimeTo12Hour("14:30");
|
|
54
|
-
* console.log(time12h); // "2:30 p.m."
|
|
55
|
-
*
|
|
56
|
-
* const morningTime = OpeningHoursHelper.convertSingleTimeTo12Hour("09:00");
|
|
57
|
-
* console.log(morningTime); // "9:00 a.m."
|
|
58
|
-
* ```
|
|
59
|
-
* @default Returns empty string "" if an error occurs or invalid time is provided.
|
|
60
|
-
*/
|
|
61
29
|
static convertSingleTimeTo12Hour(time24h) {
|
|
62
30
|
var _a;
|
|
63
31
|
try {
|
|
@@ -98,31 +66,16 @@ export class OpeningHoursHelper {
|
|
|
98
66
|
return "";
|
|
99
67
|
}
|
|
100
68
|
}
|
|
101
|
-
/**
|
|
102
|
-
* Formats an opening time schedule into a readable string.
|
|
103
|
-
*
|
|
104
|
-
* @param openingTime The opening time object containing open and close times.
|
|
105
|
-
* @returns Formatted time schedule string.
|
|
106
|
-
* @example
|
|
107
|
-
* ```typescript
|
|
108
|
-
* const schedule = { open: "09:00", close: "17:00" };
|
|
109
|
-
* const formatted = OpeningHoursHelper.formatTimeSchedule(schedule);
|
|
110
|
-
* console.log(formatted); // "9:00 a.m. - 5:00 p.m."
|
|
111
|
-
* ```
|
|
112
|
-
* @default Returns empty string "" if an error occurs or invalid opening time is provided.
|
|
113
|
-
*/
|
|
114
69
|
static formatTimeSchedule(openingTime) {
|
|
115
70
|
try {
|
|
116
71
|
if (!openingTime || !openingTime.open || !openingTime.close) {
|
|
117
72
|
return "";
|
|
118
73
|
}
|
|
119
|
-
// Check if it's a 24-hour schedule
|
|
120
74
|
if (is24Hours(openingTime)) {
|
|
121
75
|
return "24 hrs";
|
|
122
76
|
}
|
|
123
77
|
const openTime = OpeningHoursHelper.convertSingleTimeTo12Hour(openingTime.open);
|
|
124
78
|
const closeTime = OpeningHoursHelper.convertSingleTimeTo12Hour(openingTime.close);
|
|
125
|
-
// Check if conversion failed (returned empty string)
|
|
126
79
|
if (openTime === "" || closeTime === "") {
|
|
127
80
|
return "";
|
|
128
81
|
}
|
|
@@ -132,21 +85,6 @@ export class OpeningHoursHelper {
|
|
|
132
85
|
return "";
|
|
133
86
|
}
|
|
134
87
|
}
|
|
135
|
-
/**
|
|
136
|
-
* Gets the day number (1-7) for a given day string.
|
|
137
|
-
*
|
|
138
|
-
* @param day The two-character day string (e.g., "mo", "tu").
|
|
139
|
-
* @returns The day number (1-7), or -1 if the day is invalid.
|
|
140
|
-
* @example
|
|
141
|
-
* ```typescript
|
|
142
|
-
* const dayNumber = OpeningHoursHelper.getDayNumber("mo");
|
|
143
|
-
* console.log(dayNumber); // 1
|
|
144
|
-
*
|
|
145
|
-
* const invalidDay = OpeningHoursHelper.getDayNumber("invalid");
|
|
146
|
-
* console.log(invalidDay); // -1
|
|
147
|
-
* ```
|
|
148
|
-
* @default Returns -1 if an error occurs or invalid day string is provided.
|
|
149
|
-
*/
|
|
150
88
|
static getDayNumber(day) {
|
|
151
89
|
try {
|
|
152
90
|
switch (day) {
|
|
@@ -172,21 +110,6 @@ export class OpeningHoursHelper {
|
|
|
172
110
|
return -1;
|
|
173
111
|
}
|
|
174
112
|
}
|
|
175
|
-
/**
|
|
176
|
-
* Gets the full day name (localized) for a given day string.
|
|
177
|
-
*
|
|
178
|
-
* @param day The two-character day string (e.g., "mo", "tu").
|
|
179
|
-
* @returns The localized day name, or an empty string if the day is invalid.
|
|
180
|
-
* @example
|
|
181
|
-
* ```typescript
|
|
182
|
-
* const dayName = OpeningHoursHelper.getDayName("mo");
|
|
183
|
-
* console.log(dayName); // "Monday" (or localized equivalent)
|
|
184
|
-
*
|
|
185
|
-
* const invalidDay = OpeningHoursHelper.getDayName("invalid");
|
|
186
|
-
* console.log(invalidDay); // ""
|
|
187
|
-
* ```
|
|
188
|
-
* @default Returns empty string "" if an error occurs or invalid day string is provided.
|
|
189
|
-
*/
|
|
190
113
|
static getDayName(day) {
|
|
191
114
|
try {
|
|
192
115
|
const dayNumber = OpeningHoursHelper.getDayNumber(day);
|
|
@@ -199,7 +122,6 @@ export class OpeningHoursHelper {
|
|
|
199
122
|
return date.toLocaleDateString(currentLang, { weekday: "long" });
|
|
200
123
|
}
|
|
201
124
|
catch (_a) {
|
|
202
|
-
// Fallback to English if the language is not valid
|
|
203
125
|
return date.toLocaleDateString("en", { weekday: "long" });
|
|
204
126
|
}
|
|
205
127
|
}
|
|
@@ -207,19 +129,6 @@ export class OpeningHoursHelper {
|
|
|
207
129
|
return "";
|
|
208
130
|
}
|
|
209
131
|
}
|
|
210
|
-
/**
|
|
211
|
-
* Sorts the opening hours object by day of the week.
|
|
212
|
-
*
|
|
213
|
-
* @param openingHours The opening hours object to sort.
|
|
214
|
-
* @returns A new object with the opening hours sorted by day of the week.
|
|
215
|
-
* @example
|
|
216
|
-
* ```typescript
|
|
217
|
-
* const unsortedHours = { fr: [...], mo: [...], we: [...] };
|
|
218
|
-
* const sortedHours = OpeningHoursHelper.sortDays(unsortedHours);
|
|
219
|
-
* console.log(Object.keys(sortedHours)); // ["mo", "we", "fr"]
|
|
220
|
-
* ```
|
|
221
|
-
* @default Returns the original openingHours object if an error occurs.
|
|
222
|
-
*/
|
|
223
132
|
static sortDays(openingHours) {
|
|
224
133
|
try {
|
|
225
134
|
return Object.fromEntries(Object.entries(openingHours).sort(([keyA], [keyB]) => {
|
|
@@ -232,27 +141,13 @@ export class OpeningHoursHelper {
|
|
|
232
141
|
return openingHours;
|
|
233
142
|
}
|
|
234
143
|
}
|
|
235
|
-
/**
|
|
236
|
-
* Checks if a store is open from the previous day (for overnight hours).
|
|
237
|
-
*
|
|
238
|
-
* @param openingHours The opening hours of the store.
|
|
239
|
-
* @param currentDate Optional date to check against. If not provided, uses the current date.
|
|
240
|
-
* @returns `true` if the store is open from the previous day, `false` otherwise.
|
|
241
|
-
* @example
|
|
242
|
-
* ```typescript
|
|
243
|
-
* const overnightHours = { mo: [{ open: "22:00", close: "06:00" }] };
|
|
244
|
-
* const isOpen = OpeningHoursHelper.isOpenFromPreviousDay(overnightHours);
|
|
245
|
-
* console.log(isOpen); // true if current time is between 22:00 and 06:00
|
|
246
|
-
* ```
|
|
247
|
-
* @default Returns `false` if an error occurs or invalid opening hours are provided.
|
|
248
|
-
*/
|
|
249
144
|
static isOpenFromPreviousDay(openingHours, currentDate) {
|
|
250
145
|
try {
|
|
251
146
|
if (!openingHours || typeof openingHours !== "object") {
|
|
252
147
|
return false;
|
|
253
148
|
}
|
|
254
|
-
const now = currentDate || new Date();
|
|
255
|
-
const yesterday = new Date(now);
|
|
149
|
+
const now = currentDate || new Date();
|
|
150
|
+
const yesterday = new Date(now);
|
|
256
151
|
OpeningHoursHelper.previousDate(yesterday);
|
|
257
152
|
const yesterdayString = OpeningHoursHelper.getDay(yesterday);
|
|
258
153
|
if (yesterdayString == null) {
|
|
@@ -263,7 +158,6 @@ export class OpeningHoursHelper {
|
|
|
263
158
|
return false;
|
|
264
159
|
}
|
|
265
160
|
for (const interval of intervals) {
|
|
266
|
-
// Check if it's a 24-hour schedule
|
|
267
161
|
if (is24Hours(interval)) {
|
|
268
162
|
return true;
|
|
269
163
|
}
|
|
@@ -271,14 +165,13 @@ export class OpeningHoursHelper {
|
|
|
271
165
|
interval.close &&
|
|
272
166
|
OpeningHoursHelper.isValidTime(interval.open) &&
|
|
273
167
|
OpeningHoursHelper.isValidTime(interval.close)) {
|
|
274
|
-
// Create the date object based on yesterday
|
|
275
168
|
const openTime = OpeningHoursHelper.parseTimeAsDate(interval.open, yesterday);
|
|
276
169
|
const closeTime = OpeningHoursHelper.parseTimeAsDate(interval.close, yesterday);
|
|
277
170
|
if (openTime > closeTime) {
|
|
278
171
|
OpeningHoursHelper.nextDate(closeTime);
|
|
279
172
|
}
|
|
280
173
|
if (now >= openTime && now <= closeTime) {
|
|
281
|
-
return true;
|
|
174
|
+
return true;
|
|
282
175
|
}
|
|
283
176
|
}
|
|
284
177
|
}
|
|
@@ -288,18 +181,6 @@ export class OpeningHoursHelper {
|
|
|
288
181
|
return false;
|
|
289
182
|
}
|
|
290
183
|
}
|
|
291
|
-
/**
|
|
292
|
-
* Modifies the given Date object to represent the previous day.
|
|
293
|
-
*
|
|
294
|
-
* @param date The Date object to modify. This object will be mutated.
|
|
295
|
-
* @returns This function modifies the Date object in place and does not return a value.
|
|
296
|
-
* @example
|
|
297
|
-
* ```typescript
|
|
298
|
-
* const date = new Date(2024, 0, 15); // January 15, 2024
|
|
299
|
-
* OpeningHoursHelper.previousDate(date);
|
|
300
|
-
* console.log(date.getDate()); // 14
|
|
301
|
-
* ```
|
|
302
|
-
*/
|
|
303
184
|
static previousDate(date) {
|
|
304
185
|
try {
|
|
305
186
|
const day = date.getDate();
|
|
@@ -307,18 +188,6 @@ export class OpeningHoursHelper {
|
|
|
307
188
|
}
|
|
308
189
|
catch (_a) { }
|
|
309
190
|
}
|
|
310
|
-
/**
|
|
311
|
-
* Modifies the given Date object to represent the next day.
|
|
312
|
-
*
|
|
313
|
-
* @param date The Date object to modify. This object will be mutated.
|
|
314
|
-
* @returns This function modifies the Date object in place and does not return a value.
|
|
315
|
-
* @example
|
|
316
|
-
* ```typescript
|
|
317
|
-
* const date = new Date(2024, 0, 15); // January 15, 2024
|
|
318
|
-
* OpeningHoursHelper.nextDate(date);
|
|
319
|
-
* console.log(date.getDate()); // 16
|
|
320
|
-
* ```
|
|
321
|
-
*/
|
|
322
191
|
static nextDate(date) {
|
|
323
192
|
try {
|
|
324
193
|
const day = date.getDate();
|
|
@@ -326,20 +195,6 @@ export class OpeningHoursHelper {
|
|
|
326
195
|
}
|
|
327
196
|
catch (_a) { }
|
|
328
197
|
}
|
|
329
|
-
/**
|
|
330
|
-
* Checks if the current time is within the opening hours defined for the current day.
|
|
331
|
-
*
|
|
332
|
-
* @param openingHours An object containing the opening hours for each day of the week.
|
|
333
|
-
* @param currentDate Optional date to check against. If not provided, uses the current date.
|
|
334
|
-
* @returns `true` if the current time is within the opening hours, `false` otherwise.
|
|
335
|
-
* @example
|
|
336
|
-
* ```typescript
|
|
337
|
-
* const hours = { mo: [{ open: "09:00", close: "17:00" }] };
|
|
338
|
-
* const isOpen = OpeningHoursHelper.isWithinOpeningHours(hours);
|
|
339
|
-
* console.log(isOpen); // true if current time is between 09:00 and 17:00 on Monday
|
|
340
|
-
* ```
|
|
341
|
-
* @default Returns `false` if an error occurs or invalid opening hours are provided.
|
|
342
|
-
*/
|
|
343
198
|
static isWithinOpeningHours(openingHours, currentDate) {
|
|
344
199
|
try {
|
|
345
200
|
if (!openingHours || typeof openingHours !== "object") {
|
|
@@ -358,7 +213,6 @@ export class OpeningHoursHelper {
|
|
|
358
213
|
return false;
|
|
359
214
|
}
|
|
360
215
|
for (const interval of intervals) {
|
|
361
|
-
// Check if it's a 24-hour schedule
|
|
362
216
|
if (is24Hours(interval)) {
|
|
363
217
|
return true;
|
|
364
218
|
}
|
|
@@ -366,7 +220,6 @@ export class OpeningHoursHelper {
|
|
|
366
220
|
interval.close &&
|
|
367
221
|
OpeningHoursHelper.isValidTime(interval.open) &&
|
|
368
222
|
OpeningHoursHelper.isValidTime(interval.close)) {
|
|
369
|
-
// Create Date objects based on today
|
|
370
223
|
const openTime = OpeningHoursHelper.parseTimeAsDate(interval.open, now);
|
|
371
224
|
const closeTime = OpeningHoursHelper.parseTimeAsDate(interval.close, now);
|
|
372
225
|
if (openTime >= closeTime) {
|
|
@@ -377,25 +230,12 @@ export class OpeningHoursHelper {
|
|
|
377
230
|
}
|
|
378
231
|
}
|
|
379
232
|
}
|
|
380
|
-
return false;
|
|
233
|
+
return false;
|
|
381
234
|
}
|
|
382
235
|
catch (_a) {
|
|
383
236
|
return false;
|
|
384
237
|
}
|
|
385
238
|
}
|
|
386
|
-
/**
|
|
387
|
-
* Checks if there are opening times defined for today.
|
|
388
|
-
*
|
|
389
|
-
* @param openingHours The opening hours of a store.
|
|
390
|
-
* @returns `true` if there are opening times for today, `false` otherwise.
|
|
391
|
-
* @example
|
|
392
|
-
* ```typescript
|
|
393
|
-
* const hours = { mo: [{ open: "09:00", close: "17:00" }] };
|
|
394
|
-
* const hasHours = OpeningHoursHelper.hasOpeningHoursToday(hours);
|
|
395
|
-
* console.log(hasHours); // true if today is Monday
|
|
396
|
-
* ```
|
|
397
|
-
* @default Returns `false` if an error occurs or invalid opening hours are provided.
|
|
398
|
-
*/
|
|
399
239
|
static hasOpeningHoursToday(openingHours) {
|
|
400
240
|
try {
|
|
401
241
|
if (!openingHours || typeof openingHours !== "object") {
|
|
@@ -413,47 +253,18 @@ export class OpeningHoursHelper {
|
|
|
413
253
|
return false;
|
|
414
254
|
}
|
|
415
255
|
}
|
|
416
|
-
/**
|
|
417
|
-
* Checks if a given string is a valid time in HH:mm format.
|
|
418
|
-
*
|
|
419
|
-
* @param time The string to validate.
|
|
420
|
-
* @returns `true` if the string is a valid time, `false` otherwise.
|
|
421
|
-
* @example
|
|
422
|
-
* ```typescript
|
|
423
|
-
* const isValid = OpeningHoursHelper.isValidTime("14:30");
|
|
424
|
-
* console.log(isValid); // true
|
|
425
|
-
*
|
|
426
|
-
* const isInvalid = OpeningHoursHelper.isValidTime("25:00");
|
|
427
|
-
* console.log(isInvalid); // false
|
|
428
|
-
* ```
|
|
429
|
-
* @default Returns `false` if an error occurs or invalid time format is provided.
|
|
430
|
-
*/
|
|
431
256
|
static isValidTime(time) {
|
|
432
257
|
try {
|
|
433
258
|
if (!time || typeof time !== "string") {
|
|
434
259
|
return false;
|
|
435
260
|
}
|
|
436
|
-
const timeRegex = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;
|
|
261
|
+
const timeRegex = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;
|
|
437
262
|
return timeRegex.test(time);
|
|
438
263
|
}
|
|
439
264
|
catch (_a) {
|
|
440
265
|
return false;
|
|
441
266
|
}
|
|
442
267
|
}
|
|
443
|
-
/**
|
|
444
|
-
* Parses a time string (HH:mm) and combines it with a date to create a new Date object.
|
|
445
|
-
*
|
|
446
|
-
* @param time The time string in HH:mm format (e.g., "14:30").
|
|
447
|
-
* @param date An optional Date object to combine with the time. If not provided, the current date is used.
|
|
448
|
-
* @returns A new Date object representing the combined date and time.
|
|
449
|
-
* @example
|
|
450
|
-
* ```typescript
|
|
451
|
-
* const date = new Date(2024, 0, 15);
|
|
452
|
-
* const timeDate = OpeningHoursHelper.parseTimeAsDate("14:30", date);
|
|
453
|
-
* console.log(timeDate); // Date object for January 15, 2024 at 2:30 PM
|
|
454
|
-
* ```
|
|
455
|
-
* @default Returns current date if an error occurs or invalid time is provided.
|
|
456
|
-
*/
|
|
457
268
|
static parseTimeAsDate(time, date) {
|
|
458
269
|
try {
|
|
459
270
|
const [hours, minutes] = time.split(":").map(Number);
|
|
@@ -465,23 +276,6 @@ export class OpeningHoursHelper {
|
|
|
465
276
|
return new Date();
|
|
466
277
|
}
|
|
467
278
|
}
|
|
468
|
-
/**
|
|
469
|
-
* Flattens an array of OpeningTime objects into a single OpeningTime object,
|
|
470
|
-
* taking the earliest open time and the latest close time.
|
|
471
|
-
*
|
|
472
|
-
* @param openingTimes The array of OpeningTime objects to flatten.
|
|
473
|
-
* @returns A single OpeningTime object representing the flattened time range.
|
|
474
|
-
* @example
|
|
475
|
-
* ```typescript
|
|
476
|
-
* const times = [
|
|
477
|
-
* { open: "09:00", close: "12:00" },
|
|
478
|
-
* { open: "14:00", close: "18:00" }
|
|
479
|
-
* ];
|
|
480
|
-
* const flattened = OpeningHoursHelper.flattenOpeningTimes(times);
|
|
481
|
-
* console.log(flattened); // { open: "09:00", close: "18:00" }
|
|
482
|
-
* ```
|
|
483
|
-
* @default Returns `{ open: "00:00", close: "00:00" }` if an error occurs or invalid array is provided.
|
|
484
|
-
*/
|
|
485
279
|
static flattenOpeningTimes(openingTimes) {
|
|
486
280
|
try {
|
|
487
281
|
if (!openingTimes || !Array.isArray(openingTimes) || openingTimes.length === 0) {
|
|
@@ -502,28 +296,9 @@ export class OpeningHoursHelper {
|
|
|
502
296
|
return { open: "00:00", close: "00:00" };
|
|
503
297
|
}
|
|
504
298
|
}
|
|
505
|
-
/**
|
|
506
|
-
* Sorts a list of OpeningTime objects in place, based on the 'open' property.
|
|
507
|
-
*
|
|
508
|
-
* This method mutates the array and returns a reference to the same array.
|
|
509
|
-
*
|
|
510
|
-
* @param openingTimes The array of OpeningTime objects to sort. This array will be mutated.
|
|
511
|
-
* @returns The sorted array of OpeningTime objects (mutated in place).
|
|
512
|
-
* @example
|
|
513
|
-
* ```typescript
|
|
514
|
-
* const times = [
|
|
515
|
-
* { open: "14:00", close: "18:00" },
|
|
516
|
-
* { open: "09:00", close: "12:00" }
|
|
517
|
-
* ];
|
|
518
|
-
* const sorted = OpeningHoursHelper.sortOpeningTimesByOpen(times);
|
|
519
|
-
* console.log(sorted[0].open); // "09:00"
|
|
520
|
-
* ```
|
|
521
|
-
* @default Returns the original array if an error occurs.
|
|
522
|
-
*/
|
|
523
299
|
static sortOpeningTimesByOpen(openingTimes) {
|
|
524
300
|
try {
|
|
525
301
|
return openingTimes.sort((a, b) => {
|
|
526
|
-
// Compare the 'open' times as strings
|
|
527
302
|
return a.open.localeCompare(b.open);
|
|
528
303
|
});
|
|
529
304
|
}
|
|
@@ -531,19 +306,6 @@ export class OpeningHoursHelper {
|
|
|
531
306
|
return openingTimes;
|
|
532
307
|
}
|
|
533
308
|
}
|
|
534
|
-
/**
|
|
535
|
-
* Formats the opening hours for the current day into a string representation.
|
|
536
|
-
*
|
|
537
|
-
* @param openingHours The opening hours for the store.
|
|
538
|
-
* @returns A string representing the opening hours for the current day, or an empty string if there are no opening hours for today.
|
|
539
|
-
* @example
|
|
540
|
-
* ```typescript
|
|
541
|
-
* const hours = { mo: [{ open: "09:00", close: "17:00" }] };
|
|
542
|
-
* const schedule = OpeningHoursHelper.formatCurrentDaySchedule(hours);
|
|
543
|
-
* console.log(schedule); // "9:00 a.m. - 5:00 p.m." (if today is Monday)
|
|
544
|
-
* ```
|
|
545
|
-
* @default Returns empty string "" if an error occurs or no opening hours for today.
|
|
546
|
-
*/
|
|
547
309
|
static formatCurrentDaySchedule(openingHours) {
|
|
548
310
|
try {
|
|
549
311
|
const now = new Date();
|
|
@@ -564,19 +326,6 @@ export class OpeningHoursHelper {
|
|
|
564
326
|
return "";
|
|
565
327
|
}
|
|
566
328
|
}
|
|
567
|
-
/**
|
|
568
|
-
* Formats the opening hours for the previous day into a string representation.
|
|
569
|
-
*
|
|
570
|
-
* @param openingHours The opening hours for the store.
|
|
571
|
-
* @returns A string representing the opening hours for the previous day, or an empty string if there are no opening hours for yesterday.
|
|
572
|
-
* @example
|
|
573
|
-
* ```typescript
|
|
574
|
-
* const hours = { su: [{ open: "10:00", close: "15:00" }] };
|
|
575
|
-
* const schedule = OpeningHoursHelper.formatPreviousDaySchedule(hours);
|
|
576
|
-
* console.log(schedule); // "10:00 a.m. - 3:00 p.m." (if yesterday was Sunday)
|
|
577
|
-
* ```
|
|
578
|
-
* @default Returns empty string "" if an error occurs or no opening hours for yesterday.
|
|
579
|
-
*/
|
|
580
329
|
static formatPreviousDaySchedule(openingHours) {
|
|
581
330
|
try {
|
|
582
331
|
const yesterday = new Date();
|
|
@@ -598,23 +347,6 @@ export class OpeningHoursHelper {
|
|
|
598
347
|
return "";
|
|
599
348
|
}
|
|
600
349
|
}
|
|
601
|
-
/**
|
|
602
|
-
* Checks if the current time is within the specified opening hours.
|
|
603
|
-
*
|
|
604
|
-
* @param openHour The opening time in HH:mm format (e.g., "09:00").
|
|
605
|
-
* @param closeHour The closing time in HH:mm format (e.g., "18:00").
|
|
606
|
-
* @param currentHour The current time in HH:mm format (e.g., "14:30").
|
|
607
|
-
* @returns `true` if the current time is within the opening hours, `false` otherwise.
|
|
608
|
-
* @example
|
|
609
|
-
* ```typescript
|
|
610
|
-
* const isWithinHours = OpeningHoursHelper.isValidSchedule("09:00", "17:00", "14:30");
|
|
611
|
-
* console.log(isWithinHours); // true
|
|
612
|
-
*
|
|
613
|
-
* const isOutsideHours = OpeningHoursHelper.isValidSchedule("09:00", "17:00", "20:00");
|
|
614
|
-
* console.log(isOutsideHours); // false
|
|
615
|
-
* ```
|
|
616
|
-
* @default Returns `false` if an error occurs or invalid time format is provided.
|
|
617
|
-
*/
|
|
618
350
|
static isValidSchedule(openHour, closeHour, currentHour) {
|
|
619
351
|
try {
|
|
620
352
|
if (!OpeningHoursHelper.isValidTime(openHour) ||
|
|
@@ -631,19 +363,6 @@ export class OpeningHoursHelper {
|
|
|
631
363
|
return false;
|
|
632
364
|
}
|
|
633
365
|
}
|
|
634
|
-
/**
|
|
635
|
-
* Parses a time string (HH:mm) and creates a Date object for today with that time.
|
|
636
|
-
*
|
|
637
|
-
* @param time The time string in HH:mm format (e.g., "14:30").
|
|
638
|
-
* @param baseDate Optional base date to use. If not provided, uses the current date.
|
|
639
|
-
* @returns A Date object representing the date with the specified time.
|
|
640
|
-
* @example
|
|
641
|
-
* ```typescript
|
|
642
|
-
* const timeDate = OpeningHoursHelper.parseTimeToDate("14:30");
|
|
643
|
-
* console.log(timeDate); // Date object for today at 2:30 PM
|
|
644
|
-
* ```
|
|
645
|
-
* @default Returns current date if an error occurs or invalid time is provided.
|
|
646
|
-
*/
|
|
647
366
|
static parseTimeToDate(time, baseDate) {
|
|
648
367
|
try {
|
|
649
368
|
if (!time || typeof time !== "string") {
|
|
@@ -666,21 +385,6 @@ export class OpeningHoursHelper {
|
|
|
666
385
|
return new Date();
|
|
667
386
|
}
|
|
668
387
|
}
|
|
669
|
-
/**
|
|
670
|
-
* Converts an array of day abbreviations to a readable day range string.
|
|
671
|
-
*
|
|
672
|
-
* @param days An array of day abbreviations (e.g., ["Mo", "Tu", "We"]).
|
|
673
|
-
* @returns A string representing the day range (e.g., "Monday - Wednesday" for consecutive days, or just "Monday" for a single day).
|
|
674
|
-
* @example
|
|
675
|
-
* ```typescript
|
|
676
|
-
* const range = OpeningHoursHelper.getDaysRange(["Mo", "Tu", "We"]);
|
|
677
|
-
* console.log(range); // "Monday - Wednesday"
|
|
678
|
-
*
|
|
679
|
-
* const singleDay = OpeningHoursHelper.getDaysRange(["Mo"]);
|
|
680
|
-
* console.log(singleDay); // "Monday"
|
|
681
|
-
* ```
|
|
682
|
-
* @default Returns empty string "" if an error occurs or empty array is provided.
|
|
683
|
-
*/
|
|
684
388
|
static getDaysRange(days) {
|
|
685
389
|
try {
|
|
686
390
|
const dayMap = {
|
|
@@ -706,21 +410,6 @@ export class OpeningHoursHelper {
|
|
|
706
410
|
return "";
|
|
707
411
|
}
|
|
708
412
|
}
|
|
709
|
-
/**
|
|
710
|
-
* Finds the next closest time from an array of time strings relative to the current date.
|
|
711
|
-
*
|
|
712
|
-
* @param times An array of time strings in HH:mm format (e.g., ["09:00", "14:30", "18:00"]).
|
|
713
|
-
* @param currentDate The current date and time to compare against.
|
|
714
|
-
* @returns The closest upcoming time string, or empty string if no times are provided.
|
|
715
|
-
* @example
|
|
716
|
-
* ```typescript
|
|
717
|
-
* const times = ["09:00", "12:00", "18:00"];
|
|
718
|
-
* const currentTime = new Date(); // Assume it's 10:30 AM
|
|
719
|
-
* const nextTime = OpeningHoursHelper.getNextClosestTime(times, currentTime);
|
|
720
|
-
* console.log(nextTime); // "12:00"
|
|
721
|
-
* ```
|
|
722
|
-
* @default Returns empty string "" if an error occurs or no times are provided.
|
|
723
|
-
*/
|
|
724
413
|
static getNextClosestTime(times, currentDate) {
|
|
725
414
|
try {
|
|
726
415
|
const nowMinutes = currentDate.getHours() * 60 + currentDate.getMinutes();
|
|
@@ -736,20 +425,6 @@ export class OpeningHoursHelper {
|
|
|
736
425
|
return "";
|
|
737
426
|
}
|
|
738
427
|
}
|
|
739
|
-
/**
|
|
740
|
-
* Checks if a place is currently open based on its opening hours.
|
|
741
|
-
*
|
|
742
|
-
* @param openingHours An object containing the opening hours for each day of the week.
|
|
743
|
-
* @param currentDate Optional date to check against. If not provided, uses the current date.
|
|
744
|
-
* @returns `true` if the place is currently open, `false` otherwise.
|
|
745
|
-
* @example
|
|
746
|
-
* ```typescript
|
|
747
|
-
* const hours = { mo: [{ open: "09:00", close: "17:00" }] };
|
|
748
|
-
* const isOpen = OpeningHoursHelper.isPlaceOpen(hours);
|
|
749
|
-
* console.log(isOpen); // true if current time is between 09:00 and 17:00 on Monday
|
|
750
|
-
* ```
|
|
751
|
-
* @default Returns `false` if an error occurs or invalid opening hours are provided.
|
|
752
|
-
*/
|
|
753
428
|
static isPlaceOpen(openingHours, currentDate) {
|
|
754
429
|
try {
|
|
755
430
|
if (!openingHours || typeof openingHours !== "object") {
|
|
@@ -785,20 +460,6 @@ export class OpeningHoursHelper {
|
|
|
785
460
|
return false;
|
|
786
461
|
}
|
|
787
462
|
}
|
|
788
|
-
/**
|
|
789
|
-
* Gets the next schedule time (opening or closing) for a place in 12-hour format.
|
|
790
|
-
*
|
|
791
|
-
* @param openingHours An object containing the opening hours for each day of the week.
|
|
792
|
-
* @param currentDate Optional date to check against. If not provided, uses the current date.
|
|
793
|
-
* @returns The next schedule time in 12-hour format (e.g., "9:00 a.m." or "6:00 p.m.").
|
|
794
|
-
* @example
|
|
795
|
-
* ```typescript
|
|
796
|
-
* const hours = { mo: [{ open: "09:00", close: "17:00" }] };
|
|
797
|
-
* const nextSchedule = OpeningHoursHelper.getNextSchedule(hours);
|
|
798
|
-
* console.log(nextSchedule); // "9:00 a.m." if closed, "5:00 p.m." if open
|
|
799
|
-
* ```
|
|
800
|
-
* @default Returns "" if an error occurs or invalid opening hours are provided.
|
|
801
|
-
*/
|
|
802
463
|
static getNextSchedule(openingHours, currentDate) {
|
|
803
464
|
try {
|
|
804
465
|
if (!openingHours || typeof openingHours !== "object") {
|
|
@@ -827,20 +488,6 @@ export class OpeningHoursHelper {
|
|
|
827
488
|
return "";
|
|
828
489
|
}
|
|
829
490
|
}
|
|
830
|
-
/**
|
|
831
|
-
* Checks if a specific day has a schedule defined in the opening hours.
|
|
832
|
-
*
|
|
833
|
-
* @param openingHours An object containing the opening hours for each day of the week.
|
|
834
|
-
* @param currentDate Optional date to check against. If not provided, uses the current date.
|
|
835
|
-
* @returns `true` if the day has a schedule defined, `false` otherwise.
|
|
836
|
-
* @example
|
|
837
|
-
* ```typescript
|
|
838
|
-
* const hours = { mo: [{ open: "09:00", close: "17:00" }] };
|
|
839
|
-
* const hasSchedule = OpeningHoursHelper.checkDayHasSchedule(hours);
|
|
840
|
-
* console.log(hasSchedule); // true if today is Monday
|
|
841
|
-
* ```
|
|
842
|
-
* @default Returns `false` if an error occurs or invalid opening hours are provided.
|
|
843
|
-
*/
|
|
844
491
|
static checkDayHasSchedule(openingHours, currentDate) {
|
|
845
492
|
try {
|
|
846
493
|
const date = currentDate || new Date();
|
|
@@ -854,21 +501,6 @@ export class OpeningHoursHelper {
|
|
|
854
501
|
return false;
|
|
855
502
|
}
|
|
856
503
|
}
|
|
857
|
-
/**
|
|
858
|
-
* Converts a time string (HH:mm) to total minutes since midnight.
|
|
859
|
-
*
|
|
860
|
-
* @param time The time string in HH:mm format (e.g., "14:30").
|
|
861
|
-
* @returns The total number of minutes since midnight (e.g., 870 for "14:30").
|
|
862
|
-
* @example
|
|
863
|
-
* ```typescript
|
|
864
|
-
* const minutes = OpeningHoursHelper.toMinutes("14:30");
|
|
865
|
-
* console.log(minutes); // 870
|
|
866
|
-
*
|
|
867
|
-
* const morningMinutes = OpeningHoursHelper.toMinutes("09:00");
|
|
868
|
-
* console.log(morningMinutes); // 540
|
|
869
|
-
* ```
|
|
870
|
-
* @default Returns 0 if an error occurs or invalid time format is provided.
|
|
871
|
-
*/
|
|
872
504
|
static toMinutes(time) {
|
|
873
505
|
try {
|
|
874
506
|
if (!time || typeof time !== "string") {
|
|
@@ -890,12 +522,6 @@ export class OpeningHoursHelper {
|
|
|
890
522
|
}
|
|
891
523
|
}
|
|
892
524
|
}
|
|
893
|
-
/**
|
|
894
|
-
* Checks if an OpeningTime represents a 24-hour schedule (open all day).
|
|
895
|
-
*
|
|
896
|
-
* @param openingTime The OpeningTime to check.
|
|
897
|
-
* @returns `true` if the schedule represents 24 hours, `false` otherwise.
|
|
898
|
-
*/
|
|
899
525
|
export function is24Hours(openingTime) {
|
|
900
526
|
var _a, _b, _c, _d;
|
|
901
527
|
if (!(openingTime === null || openingTime === void 0 ? void 0 : openingTime.open) || !(openingTime === null || openingTime === void 0 ? void 0 : openingTime.close)) {
|
|
@@ -903,7 +529,5 @@ export function is24Hours(openingTime) {
|
|
|
903
529
|
}
|
|
904
530
|
const open = (_b = (_a = openingTime === null || openingTime === void 0 ? void 0 : openingTime.open) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : "";
|
|
905
531
|
const close = (_d = (_c = openingTime === null || openingTime === void 0 ? void 0 : openingTime.close) === null || _c === void 0 ? void 0 : _c.trim()) !== null && _d !== void 0 ? _d : "";
|
|
906
|
-
// Check if open is "00:00" and close is "24:00" or "00:00"
|
|
907
532
|
return (open === "00:00" && close === "24:00") || (open === "00:00" && close === "00:00");
|
|
908
533
|
}
|
|
909
|
-
//# sourceMappingURL=opening-hours-helper.js.map
|