sgerp-frontend-lib 0.1.1 → 0.1.3
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/connection-manager.d.ts +48 -0
- package/dist/connection-manager.d.ts.map +1 -0
- package/dist/connection-manager.js +156 -0
- package/dist/index.js +20 -2
- package/dist/locales/locale-server.d.ts +10 -0
- package/dist/locales/locale-server.d.ts.map +1 -0
- package/dist/locales/locale-server.js +49 -0
- package/dist/locales/locale.d.ts +23 -0
- package/dist/locales/locale.d.ts.map +1 -0
- package/dist/locales/locale.js +145 -0
- package/dist/locales/locale_en.d.ts.map +1 -1
- package/dist/locales/locale_en.js +84 -9
- package/dist/locales/locale_ja.d.ts.map +1 -1
- package/dist/locales/locale_ja.js +84 -9
- package/dist/locales/locale_ms.d.ts.map +1 -1
- package/dist/locales/locale_ms.js +84 -9
- package/dist/locales/useLocalization.d.ts +11 -0
- package/dist/locales/useLocalization.d.ts.map +1 -0
- package/dist/locales/useLocalization.js +64 -0
- package/dist/locales.d.ts +228 -0
- package/dist/locales.d.ts.map +1 -0
- package/dist/locales.js +229 -0
- package/dist/sgerp/api/client.d.ts +45 -0
- package/dist/sgerp/api/client.d.ts.map +1 -0
- package/dist/sgerp/api/client.js +141 -0
- package/dist/sgerp/client.js +341 -0
- package/dist/sgerp/collection.d.ts +391 -0
- package/dist/sgerp/collection.d.ts.map +1 -0
- package/dist/sgerp/collection.js +756 -0
- package/dist/sgerp/collections/account/user.d.ts +8 -0
- package/dist/sgerp/collections/account/user.d.ts.map +1 -0
- package/dist/sgerp/collections/account/user.js +10 -0
- package/dist/sgerp/collections/masstransit/building.d.ts +26 -0
- package/dist/sgerp/collections/masstransit/building.d.ts.map +1 -0
- package/dist/sgerp/collections/masstransit/building.js +53 -0
- package/dist/sgerp/collections/masstransit/transitstop.d.ts +15 -0
- package/dist/sgerp/collections/masstransit/transitstop.d.ts.map +1 -0
- package/dist/sgerp/collections/masstransit/transitstop.js +54 -0
- package/dist/sgerp/collections/masstransit/transitstopset.d.ts +10 -0
- package/dist/sgerp/collections/masstransit/transitstopset.d.ts.map +1 -0
- package/dist/sgerp/collections/masstransit/transitstopset.js +10 -0
- package/dist/sgerp/collections/sharing/organization-project.d.ts +11 -0
- package/dist/sgerp/collections/sharing/organization-project.d.ts.map +1 -0
- package/dist/sgerp/collections/sharing/organization-project.js +13 -0
- package/dist/sgerp/collections/sharing/organization.d.ts +11 -0
- package/dist/sgerp/collections/sharing/organization.d.ts.map +1 -0
- package/dist/sgerp/collections/sharing/organization.js +13 -0
- package/dist/sgerp/collections/sharing/pricing.d.ts +18 -0
- package/dist/sgerp/collections/sharing/pricing.d.ts.map +1 -0
- package/dist/sgerp/collections/sharing/pricing.js +23 -0
- package/dist/sgerp/collections/sharing/project-member.d.ts +8 -0
- package/dist/sgerp/collections/sharing/project-member.d.ts.map +1 -0
- package/dist/sgerp/collections/sharing/project-member.js +10 -0
- package/dist/sgerp/collections/sharing/project.d.ts +8 -0
- package/dist/sgerp/collections/sharing/project.d.ts.map +1 -0
- package/dist/sgerp/collections/sharing/project.js +10 -0
- package/dist/sgerp/collections/simulation/booking.d.ts +11 -0
- package/dist/sgerp/collections/simulation/booking.d.ts.map +1 -0
- package/dist/sgerp/collections/simulation/booking.js +13 -0
- package/dist/sgerp/collections/simulation/dataset.d.ts +14 -0
- package/dist/sgerp/collections/simulation/dataset.d.ts.map +1 -0
- package/dist/sgerp/collections/simulation/dataset.js +17 -0
- package/dist/sgerp/collections/simulation/driver.d.ts +12 -0
- package/dist/sgerp/collections/simulation/driver.d.ts.map +1 -0
- package/dist/sgerp/collections/simulation/driver.js +40 -0
- package/dist/sgerp/collections/simulation/geofence.d.ts +24 -0
- package/dist/sgerp/collections/simulation/geofence.d.ts.map +1 -0
- package/dist/sgerp/collections/simulation/geofence.js +66 -0
- package/dist/sgerp/collections/simulation/mapboxtoken.d.ts +18 -0
- package/dist/sgerp/collections/simulation/mapboxtoken.d.ts.map +1 -0
- package/dist/sgerp/collections/simulation/mapboxtoken.js +24 -0
- package/dist/sgerp/collections/simulation/node.js +13 -0
- package/dist/sgerp/collections/simulation/operationslocation.d.ts +28 -0
- package/dist/sgerp/collections/simulation/operationslocation.d.ts.map +1 -0
- package/dist/sgerp/collections/simulation/operationslocation.js +64 -0
- package/dist/sgerp/collections/simulation/operationslocationgroup.d.ts +12 -0
- package/dist/sgerp/collections/simulation/operationslocationgroup.d.ts.map +1 -0
- package/dist/sgerp/collections/simulation/operationslocationgroup.js +24 -0
- package/dist/sgerp/collections/simulation/routingprofile.d.ts +10 -0
- package/dist/sgerp/collections/simulation/routingprofile.d.ts.map +1 -0
- package/dist/sgerp/collections/simulation/routingprofile.js +10 -0
- package/dist/sgerp/collections/simulation/simulation.d.ts +12 -0
- package/dist/sgerp/collections/simulation/simulation.d.ts.map +1 -0
- package/dist/sgerp/collections/simulation/simulation.js +35 -0
- package/dist/sgerp/collections/simulation/simulationprocessor.d.ts +19 -0
- package/dist/sgerp/collections/simulation/simulationprocessor.d.ts.map +1 -0
- package/dist/sgerp/collections/simulation/simulationprocessor.js +27 -0
- package/dist/sgerp/collections/simulation/vehicle.js +13 -0
- package/dist/sgerp/collections/simulation/vehicletype.d.ts +11 -0
- package/dist/sgerp/collections/simulation/vehicletype.d.ts.map +1 -0
- package/dist/sgerp/collections/simulation/vehicletype.js +13 -0
- package/dist/sgerp/collections/sms_notify/smsscheduled.d.ts +11 -0
- package/dist/sgerp/collections/sms_notify/smsscheduled.d.ts.map +1 -0
- package/dist/sgerp/collections/sms_notify/smsscheduled.js +13 -0
- package/dist/sgerp/collections/transportation/passenger.d.ts +8 -0
- package/dist/sgerp/collections/transportation/passenger.d.ts.map +1 -0
- package/dist/sgerp/collections/transportation/passenger.js +10 -0
- package/dist/sgerp/collections/transportation/ticket.d.ts +11 -0
- package/dist/sgerp/collections/transportation/ticket.d.ts.map +1 -0
- package/dist/sgerp/collections/transportation/ticket.js +13 -0
- package/dist/sgerp/collections/transportation/transaction.d.ts +11 -0
- package/dist/sgerp/collections/transportation/transaction.d.ts.map +1 -0
- package/dist/sgerp/collections/transportation/transaction.js +13 -0
- package/dist/sgerp/constants/bulkoperations-enums.d.ts +71 -0
- package/dist/sgerp/constants/bulkoperations-enums.d.ts.map +1 -0
- package/dist/sgerp/constants/bulkoperations-enums.js +99 -0
- package/dist/sgerp/constants/messages-enums.d.ts +47 -0
- package/dist/sgerp/constants/messages-enums.d.ts.map +1 -0
- package/dist/sgerp/constants/messages-enums.js +67 -0
- package/dist/sgerp/constants/scheduling-enums.d.ts +42 -0
- package/dist/sgerp/constants/scheduling-enums.d.ts.map +1 -0
- package/dist/sgerp/constants/scheduling-enums.js +61 -0
- package/dist/sgerp/constants/simulation-enums.d.ts +93 -0
- package/dist/sgerp/constants/simulation-enums.d.ts.map +1 -0
- package/dist/sgerp/constants/simulation-enums.js +147 -0
- package/dist/sgerp/constants/solver-strategies.d.ts +75 -0
- package/dist/sgerp/constants/solver-strategies.d.ts.map +1 -0
- package/dist/sgerp/constants/solver-strategies.js +26 -0
- package/dist/sgerp/context/sgerp-context.js +134 -0
- package/dist/sgerp/domains.d.ts +47 -0
- package/dist/sgerp/domains.d.ts.map +1 -0
- package/dist/sgerp/domains.js +45 -0
- package/dist/sgerp/hooks/use-collection.js +122 -0
- package/dist/sgerp/hooks/use-live-updates.js +16 -13
- package/dist/sgerp/index.js +153 -0
- package/dist/sgerp/map-states/operations-location-state.d.ts +12 -0
- package/dist/sgerp/map-states/operations-location-state.d.ts.map +1 -0
- package/dist/sgerp/map-states/operations-location-state.js +86 -0
- package/dist/sgerp/routing/index.d.ts +51 -0
- package/dist/sgerp/routing/index.d.ts.map +1 -0
- package/dist/sgerp/routing/index.js +373 -0
- package/dist/sgerp/simulation-logic/fetchUtils.d.ts +8 -8
- package/dist/sgerp/simulation-logic/fetchUtils.d.ts.map +1 -1
- package/dist/sgerp/simulation-logic/fetchUtils.js +226 -0
- package/dist/sgerp/simulation-logic/index.js +27 -7
- package/dist/sgerp/simulation-logic/manualEditUtils.d.ts +1 -1
- package/dist/sgerp/simulation-logic/manualEditUtils.d.ts.map +1 -1
- package/dist/sgerp/simulation-logic/manualEditUtils.js +69 -0
- package/dist/sgerp/simulation-logic/mapUtils.js +58 -0
- package/dist/sgerp/simulation-logic/optimisticUpdateUtils.js +8 -5
- package/dist/sgerp/simulation-logic/referenceUtils.d.ts +3 -3
- package/dist/sgerp/simulation-logic/referenceUtils.d.ts.map +1 -1
- package/dist/sgerp/simulation-logic/referenceUtils.js +110 -0
- package/dist/sgerp/simulation-logic/routeCalculationUtils.d.ts +3 -3
- package/dist/sgerp/simulation-logic/routeCalculationUtils.d.ts.map +1 -1
- package/dist/sgerp/simulation-logic/routeCalculationUtils.js +43 -0
- package/dist/sgerp/simulation-logic/timeShiftUtils.d.ts +1 -1
- package/dist/sgerp/simulation-logic/timeShiftUtils.d.ts.map +1 -1
- package/dist/sgerp/simulation-logic/timeShiftUtils.js +63 -0
- package/dist/sgerp/types/account/user.d.ts +38 -0
- package/dist/sgerp/types/account/user.d.ts.map +1 -0
- package/dist/sgerp/types/account/user.js +2 -0
- package/dist/sgerp/types/bulkoperations/index.d.ts +37 -0
- package/dist/sgerp/types/bulkoperations/index.d.ts.map +1 -0
- package/dist/sgerp/types/bulkoperations/index.js +35 -0
- package/dist/sgerp/types/bulkoperations/vehicle-upload.d.ts +335 -0
- package/dist/sgerp/types/bulkoperations/vehicle-upload.d.ts.map +1 -0
- package/dist/sgerp/types/bulkoperations/vehicle-upload.js +49 -0
- package/dist/sgerp/types/config.d.ts +25 -0
- package/dist/sgerp/types/config.d.ts.map +1 -0
- package/dist/sgerp/types/config.js +2 -0
- package/dist/sgerp/types/geojson.d.ts +45 -0
- package/dist/sgerp/types/geojson.d.ts.map +1 -0
- package/dist/sgerp/types/geojson.js +6 -0
- package/dist/sgerp/types/map.d.ts +24 -0
- package/dist/sgerp/types/map.d.ts.map +1 -0
- package/dist/sgerp/types/map.js +2 -0
- package/dist/sgerp/types/masstransit/building.d.ts +24 -0
- package/dist/sgerp/types/masstransit/building.d.ts.map +1 -0
- package/dist/sgerp/types/masstransit/building.js +2 -0
- package/dist/sgerp/types/masstransit/transitstop.d.ts +35 -0
- package/dist/sgerp/types/masstransit/transitstop.d.ts.map +1 -0
- package/dist/sgerp/types/masstransit/transitstop.js +2 -0
- package/dist/sgerp/types/masstransit/transitstopset.d.ts +14 -0
- package/dist/sgerp/types/masstransit/transitstopset.d.ts.map +1 -0
- package/dist/sgerp/types/masstransit/transitstopset.js +2 -0
- package/dist/sgerp/types/sharing/organization-project.d.ts +14 -0
- package/dist/sgerp/types/sharing/organization-project.d.ts.map +1 -0
- package/dist/sgerp/types/sharing/organization-project.js +2 -0
- package/dist/sgerp/types/sharing/organization.d.ts +14 -0
- package/dist/sgerp/types/sharing/organization.d.ts.map +1 -0
- package/dist/sgerp/types/sharing/organization.js +2 -0
- package/dist/sgerp/types/sharing/pricing.d.ts +98 -0
- package/dist/sgerp/types/sharing/pricing.d.ts.map +1 -0
- package/dist/sgerp/types/sharing/pricing.js +2 -0
- package/dist/sgerp/types/sharing/project-member.d.ts +15 -0
- package/dist/sgerp/types/sharing/project-member.d.ts.map +1 -0
- package/dist/sgerp/types/sharing/project-member.js +2 -0
- package/dist/sgerp/types/sharing/project.d.ts +16 -0
- package/dist/sgerp/types/sharing/project.d.ts.map +1 -0
- package/dist/sgerp/types/sharing/project.js +2 -0
- package/dist/sgerp/types/simulation/booking.d.ts +128 -0
- package/dist/sgerp/types/simulation/booking.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/booking.js +24 -0
- package/dist/sgerp/types/simulation/calculation-params.d.ts +20 -0
- package/dist/sgerp/types/simulation/calculation-params.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/calculation-params.js +2 -0
- package/dist/sgerp/types/simulation/dataset.d.ts +16 -0
- package/dist/sgerp/types/simulation/dataset.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/dataset.js +2 -0
- package/dist/sgerp/types/simulation/driver.d.ts +19 -0
- package/dist/sgerp/types/simulation/driver.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/driver.js +2 -0
- package/dist/sgerp/types/simulation/geofence.d.ts +19 -0
- package/dist/sgerp/types/simulation/geofence.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/geofence.js +2 -0
- package/dist/sgerp/types/simulation/logistics-api-settings.d.ts +98 -0
- package/dist/sgerp/types/simulation/logistics-api-settings.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/logistics-api-settings.js +104 -0
- package/dist/sgerp/types/simulation/mapboxtoken.d.ts +13 -0
- package/dist/sgerp/types/simulation/mapboxtoken.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/mapboxtoken.js +2 -0
- package/dist/sgerp/types/simulation/node.js +5 -2
- package/dist/sgerp/types/simulation/operationslocation.d.ts +40 -0
- package/dist/sgerp/types/simulation/operationslocation.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/operationslocation.js +2 -0
- package/dist/sgerp/types/simulation/operationslocationgroup.d.ts +11 -0
- package/dist/sgerp/types/simulation/operationslocationgroup.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/operationslocationgroup.js +2 -0
- package/dist/sgerp/types/simulation/pricing.d.ts +171 -0
- package/dist/sgerp/types/simulation/pricing.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/pricing.js +2 -0
- package/dist/sgerp/types/simulation/route-cost-modification.d.ts +35 -0
- package/dist/sgerp/types/simulation/route-cost-modification.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/route-cost-modification.js +5 -0
- package/dist/sgerp/types/simulation/routing-engine-settings.d.ts +42 -0
- package/dist/sgerp/types/simulation/routing-engine-settings.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/routing-engine-settings.js +35 -0
- package/dist/sgerp/types/simulation/routingprofile.d.ts +32 -0
- package/dist/sgerp/types/simulation/routingprofile.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/routingprofile.js +37 -0
- package/dist/sgerp/types/simulation/simulation.d.ts +120 -0
- package/dist/sgerp/types/simulation/simulation.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/simulation.js +2 -0
- package/dist/sgerp/types/simulation/simulationprocessor.d.ts +31 -0
- package/dist/sgerp/types/simulation/simulationprocessor.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/simulationprocessor.js +2 -0
- package/dist/sgerp/types/simulation/vehicle.js +2 -1
- package/dist/sgerp/types/simulation/vehicletype.d.ts +33 -0
- package/dist/sgerp/types/simulation/vehicletype.d.ts.map +1 -0
- package/dist/sgerp/types/simulation/vehicletype.js +2 -0
- package/dist/sgerp/types/sms_notify/smsscheduled.d.ts +36 -0
- package/dist/sgerp/types/sms_notify/smsscheduled.d.ts.map +1 -0
- package/dist/sgerp/types/sms_notify/smsscheduled.js +6 -0
- package/dist/sgerp/types/transportation/passenger.d.ts +49 -0
- package/dist/sgerp/types/transportation/passenger.d.ts.map +1 -0
- package/dist/sgerp/types/transportation/passenger.js +13 -0
- package/dist/sgerp/types/transportation/ticket.d.ts +31 -0
- package/dist/sgerp/types/transportation/ticket.d.ts.map +1 -0
- package/dist/sgerp/types/transportation/ticket.js +2 -0
- package/dist/sgerp/types/transportation/transaction.d.ts +71 -0
- package/dist/sgerp/types/transportation/transaction.d.ts.map +1 -0
- package/dist/sgerp/types/transportation/transaction.js +54 -0
- package/dist/sgerp/utils/bookingPayload.d.ts +80 -0
- package/dist/sgerp/utils/bookingPayload.d.ts.map +1 -0
- package/dist/sgerp/utils/bookingPayload.js +44 -0
- package/dist/sgerp/utils/color.d.ts +30 -0
- package/dist/sgerp/utils/color.d.ts.map +1 -0
- package/dist/sgerp/utils/color.js +117 -0
- package/dist/sgerp/utils/enum-helpers.d.ts +41 -0
- package/dist/sgerp/utils/enum-helpers.d.ts.map +1 -0
- package/dist/sgerp/utils/enum-helpers.js +54 -0
- package/dist/sgerp/utils/routeUtils.d.ts +1 -1
- package/dist/sgerp/utils/routeUtils.d.ts.map +1 -1
- package/dist/sgerp/utils/routeUtils.js +171 -0
- package/package.json +1 -1
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
import type { SGERPListResponse, SGERPMeta } from './types/account/user';
|
|
2
|
+
import type { RequestConfig } from './types/config';
|
|
3
|
+
import type { GeoJSONFeatureCollection, ToGeoJSONFeature } from './types/geojson';
|
|
4
|
+
type FetchFunction<T> = (params?: unknown, config?: RequestConfig) => Promise<SGERPListResponse<T>>;
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for dependent API calls
|
|
7
|
+
* Used to automatically fetch related data after the main collection is loaded
|
|
8
|
+
*/
|
|
9
|
+
export interface DependentCall<T> {
|
|
10
|
+
/**
|
|
11
|
+
* Name of the related collection (e.g., 'user')
|
|
12
|
+
*/
|
|
13
|
+
collectionName: string;
|
|
14
|
+
/**
|
|
15
|
+
* Function to extract foreign key IDs from loaded models
|
|
16
|
+
* @example (driver) => driver.user_id
|
|
17
|
+
*/
|
|
18
|
+
extractIds: (model: T) => number | string | null | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Field name in the API response to merge back into the model
|
|
21
|
+
* @example 'user' - will create model.user property
|
|
22
|
+
*/
|
|
23
|
+
targetField: string;
|
|
24
|
+
/**
|
|
25
|
+
* Optional: API parameter name for the ID list (defaults to 'id__in')
|
|
26
|
+
*/
|
|
27
|
+
idParam?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Optional: Fields to fetch from the related model (only_fields param)
|
|
30
|
+
*/
|
|
31
|
+
onlyFields?: string[];
|
|
32
|
+
/**
|
|
33
|
+
* Optional: Field name in the related object to match against extractIds
|
|
34
|
+
* For one-to-many relationships (defaults to 'id' for one-to-one)
|
|
35
|
+
* @example 'user_id' for projectmember relationship
|
|
36
|
+
*/
|
|
37
|
+
matchField?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Optional: If true, creates an array of related objects (one-to-many)
|
|
40
|
+
* If false, creates a single object (one-to-one, default)
|
|
41
|
+
*/
|
|
42
|
+
isArray?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Optional: Additional filter parameters to include in the fetch request
|
|
45
|
+
* @example { project__organizations__type: 'participation' }
|
|
46
|
+
*/
|
|
47
|
+
extraParams?: Record<string, string | number | boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Fetch function for the dependent collection
|
|
50
|
+
*/
|
|
51
|
+
fetchFn: (params?: unknown, config?: RequestConfig) => Promise<SGERPListResponse<unknown>>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Base Collection class inspired by Backbone.js
|
|
55
|
+
* Provides indexing, pagination, and utility methods for model arrays
|
|
56
|
+
* Uses underscore.js for collection operations
|
|
57
|
+
* Supports React integration via change listeners
|
|
58
|
+
*/
|
|
59
|
+
export declare class Collection<T extends {
|
|
60
|
+
id: number | string;
|
|
61
|
+
}> {
|
|
62
|
+
protected _models: T[];
|
|
63
|
+
protected _index: Map<number | string, T>;
|
|
64
|
+
protected _meta: SGERPMeta;
|
|
65
|
+
protected _offset: number;
|
|
66
|
+
protected _limit: number;
|
|
67
|
+
protected fetchFn: FetchFunction<T>;
|
|
68
|
+
lastParams: Record<string, unknown>;
|
|
69
|
+
protected _listeners: Set<() => void>;
|
|
70
|
+
protected _dependentCalls: DependentCall<T>[];
|
|
71
|
+
protected _batchQueue: Map<number | string, ((value: T | null) => void)[]>;
|
|
72
|
+
protected _batchTimeout: NodeJS.Timeout | null;
|
|
73
|
+
protected _isBatchFetching: boolean;
|
|
74
|
+
protected _cacheHits: Set<number | string>;
|
|
75
|
+
constructor(fetchFn: FetchFunction<T>, models?: T[], meta?: SGERPMeta);
|
|
76
|
+
/**
|
|
77
|
+
* Register a dependent call configuration
|
|
78
|
+
* This will automatically fetch related data after the main collection is loaded
|
|
79
|
+
*/
|
|
80
|
+
protected registerDependentCall(config: DependentCall<T>): void;
|
|
81
|
+
/**
|
|
82
|
+
* Subscribe to collection changes (for React integration)
|
|
83
|
+
*/
|
|
84
|
+
onChange(listener: () => void): () => void;
|
|
85
|
+
/**
|
|
86
|
+
* Notify all listeners of changes
|
|
87
|
+
*/
|
|
88
|
+
protected _notifyChange(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Get all models in the collection
|
|
91
|
+
*/
|
|
92
|
+
get models(): T[];
|
|
93
|
+
/**
|
|
94
|
+
* Get the number of models in the collection
|
|
95
|
+
*/
|
|
96
|
+
get length(): number;
|
|
97
|
+
/**
|
|
98
|
+
* Get pagination metadata
|
|
99
|
+
*/
|
|
100
|
+
get meta(): SGERPMeta;
|
|
101
|
+
/**
|
|
102
|
+
* Check if there are more pages to fetch
|
|
103
|
+
*/
|
|
104
|
+
get hasMore(): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Get a model by ID from the index
|
|
107
|
+
*/
|
|
108
|
+
get(id: number | string): T | undefined;
|
|
109
|
+
/**
|
|
110
|
+
* Asynchronously get a model by ID with automatic batched fetching
|
|
111
|
+
* If the model is not in the collection, it will be fetched along with other requested IDs
|
|
112
|
+
* All getAsync calls within 50ms are batched into a single API request
|
|
113
|
+
*
|
|
114
|
+
* @param id - The ID of the model to fetch
|
|
115
|
+
* @returns Promise that resolves to the model or null if not found
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* const project = await api.collections.project.getAsync(123);
|
|
119
|
+
* if (project) {
|
|
120
|
+
* console.log(project.name);
|
|
121
|
+
* }
|
|
122
|
+
*/
|
|
123
|
+
getAsync(id: number | string, forceFresh?: boolean): Promise<T | null>;
|
|
124
|
+
/**
|
|
125
|
+
* Process the batched getAsync requests
|
|
126
|
+
* @private
|
|
127
|
+
*/
|
|
128
|
+
protected _processBatch(): Promise<void>;
|
|
129
|
+
/**
|
|
130
|
+
* Get a model at a specific position
|
|
131
|
+
*/
|
|
132
|
+
at(index: number): T | undefined;
|
|
133
|
+
/**
|
|
134
|
+
* Add models to the collection and update the index
|
|
135
|
+
* Creates a new array reference for React compatibility
|
|
136
|
+
* Only triggers change notification if data actually changed
|
|
137
|
+
*/
|
|
138
|
+
add(models: T | T[]): void;
|
|
139
|
+
/**
|
|
140
|
+
* Prepend models to the beginning of the collection
|
|
141
|
+
* Useful for adding newly created items to the top of a list
|
|
142
|
+
*/
|
|
143
|
+
prepend(models: T | T[]): void;
|
|
144
|
+
/**
|
|
145
|
+
* Prepend models to the beginning of the collection and fetch their related data
|
|
146
|
+
* This is useful when adding newly created items without refetching the entire collection
|
|
147
|
+
* @param models - Model(s) to prepend
|
|
148
|
+
* @param config - Optional request configuration
|
|
149
|
+
*/
|
|
150
|
+
prependWithRelations(models: T | T[], config?: RequestConfig): Promise<void>;
|
|
151
|
+
/**
|
|
152
|
+
* Remove a model by ID
|
|
153
|
+
*/
|
|
154
|
+
remove(id: number | string): void;
|
|
155
|
+
/**
|
|
156
|
+
* Reset the collection with new models
|
|
157
|
+
*/
|
|
158
|
+
reset(models: T[], meta?: SGERPMeta): void;
|
|
159
|
+
/**
|
|
160
|
+
* Get the maximum modified_at value from the collection
|
|
161
|
+
* Useful for incremental updates
|
|
162
|
+
*/
|
|
163
|
+
getMaxModifiedAt(): string | null;
|
|
164
|
+
/**
|
|
165
|
+
* Fetch and merge updates since the last modified_at timestamp
|
|
166
|
+
* Returns true if new data was fetched, false otherwise
|
|
167
|
+
*/
|
|
168
|
+
fetchUpdates(additionalParams?: Record<string, unknown>, useGte?: boolean): Promise<boolean>;
|
|
169
|
+
/**
|
|
170
|
+
* Clear all models from the collection
|
|
171
|
+
*/
|
|
172
|
+
clear(): void;
|
|
173
|
+
/**
|
|
174
|
+
* Iterate over each model
|
|
175
|
+
*/
|
|
176
|
+
forEach(callback: (model: T, index: number) => void): void;
|
|
177
|
+
/**
|
|
178
|
+
* Map over models
|
|
179
|
+
*/
|
|
180
|
+
map<U>(callback: (model: T, index: number) => U): U[];
|
|
181
|
+
/**
|
|
182
|
+
* Filter models
|
|
183
|
+
*/
|
|
184
|
+
filter(callback: (model: T, index: number) => boolean): T[];
|
|
185
|
+
/**
|
|
186
|
+
* Find a model
|
|
187
|
+
*/
|
|
188
|
+
find(callback: (model: T, index: number) => boolean): T | undefined;
|
|
189
|
+
/**
|
|
190
|
+
* Check if collection contains a model with the given ID
|
|
191
|
+
*/
|
|
192
|
+
has(id: number | string): boolean;
|
|
193
|
+
/**
|
|
194
|
+
* Convert to plain array
|
|
195
|
+
*/
|
|
196
|
+
toArray(): T[];
|
|
197
|
+
/**
|
|
198
|
+
* Convert to JSON
|
|
199
|
+
*/
|
|
200
|
+
toJSON(): T[];
|
|
201
|
+
/**
|
|
202
|
+
* Extract a single property from each model
|
|
203
|
+
* @example projects.pluck('name') // ['Project 1', 'Project 2']
|
|
204
|
+
*/
|
|
205
|
+
pluck<K extends keyof T>(key: K): T[K][];
|
|
206
|
+
/**
|
|
207
|
+
* Filter models that match all the given properties
|
|
208
|
+
* @example projects.where({ timezone: 'UTC' })
|
|
209
|
+
*/
|
|
210
|
+
where(properties: Partial<T>): T[];
|
|
211
|
+
/**
|
|
212
|
+
* Find the first model that matches all the given properties
|
|
213
|
+
* @example projects.findWhere({ timezone: 'UTC' })
|
|
214
|
+
*/
|
|
215
|
+
findWhere(properties: Partial<T>): T | undefined;
|
|
216
|
+
/**
|
|
217
|
+
* Sort models by a property or function
|
|
218
|
+
* @example projects.sortBy('name')
|
|
219
|
+
* @example projects.sortBy(p => p.name.toLowerCase())
|
|
220
|
+
*/
|
|
221
|
+
sortBy(iteratee: keyof T | ((model: T) => number | string)): T[];
|
|
222
|
+
/**
|
|
223
|
+
* Group models by a property or function
|
|
224
|
+
* @example projects.groupBy('timezone')
|
|
225
|
+
* @example projects.groupBy(p => p.name[0]) // Group by first letter
|
|
226
|
+
*/
|
|
227
|
+
groupBy(iteratee: keyof T | ((model: T) => string | number)): Record<string, T[]>;
|
|
228
|
+
/**
|
|
229
|
+
* Count models by a property or function
|
|
230
|
+
* @example projects.countBy('timezone')
|
|
231
|
+
*/
|
|
232
|
+
countBy(iteratee: keyof T | ((model: T) => string | number)): Record<string, number>;
|
|
233
|
+
/**
|
|
234
|
+
* Index models by a property or function (returns a map)
|
|
235
|
+
* @example projects.indexBy('name')
|
|
236
|
+
*/
|
|
237
|
+
indexBy(iteratee: keyof T | ((model: T) => string | number)): Record<string, T>;
|
|
238
|
+
/**
|
|
239
|
+
* Split collection into two arrays: [matches, non-matches]
|
|
240
|
+
* @example const [active, inactive] = projects.partition(p => !p.is_invalidated)
|
|
241
|
+
*/
|
|
242
|
+
partition(predicate: (model: T, index: number) => boolean): [T[], T[]];
|
|
243
|
+
/**
|
|
244
|
+
* Get n random models from the collection
|
|
245
|
+
* @example projects.sample(3) // Get 3 random projects
|
|
246
|
+
*/
|
|
247
|
+
sample(n?: number): T | T[];
|
|
248
|
+
/**
|
|
249
|
+
* Shuffle the models (returns new array)
|
|
250
|
+
* @example projects.shuffle()
|
|
251
|
+
*/
|
|
252
|
+
shuffle(): T[];
|
|
253
|
+
/**
|
|
254
|
+
* Get the first n models (or first model if n not specified)
|
|
255
|
+
* @example projects.first() // First project
|
|
256
|
+
* @example projects.first(5) // First 5 projects
|
|
257
|
+
*/
|
|
258
|
+
first(n?: number): T | T[] | undefined;
|
|
259
|
+
/**
|
|
260
|
+
* Get the last n models (or last model if n not specified)
|
|
261
|
+
* @example projects.last() // Last project
|
|
262
|
+
* @example projects.last(5) // Last 5 projects
|
|
263
|
+
*/
|
|
264
|
+
last(n?: number): T | T[] | undefined;
|
|
265
|
+
/**
|
|
266
|
+
* Get all models except the last n
|
|
267
|
+
* @example projects.initial(2) // All except last 2
|
|
268
|
+
*/
|
|
269
|
+
initial(n?: number): T[];
|
|
270
|
+
/**
|
|
271
|
+
* Get all models except the first n
|
|
272
|
+
* @example projects.rest(2) // All except first 2
|
|
273
|
+
*/
|
|
274
|
+
rest(n?: number): T[];
|
|
275
|
+
/**
|
|
276
|
+
* Exclude models with the given IDs
|
|
277
|
+
* @example projects.without(1, 2, 3)
|
|
278
|
+
*/
|
|
279
|
+
without(...ids: (number | string)[]): T[];
|
|
280
|
+
/**
|
|
281
|
+
* Check if collection is empty
|
|
282
|
+
* @example projects.isEmpty()
|
|
283
|
+
*/
|
|
284
|
+
isEmpty(): boolean;
|
|
285
|
+
/**
|
|
286
|
+
* Get the size of the collection (alias for length)
|
|
287
|
+
* @example projects.size()
|
|
288
|
+
*/
|
|
289
|
+
size(): number;
|
|
290
|
+
/**
|
|
291
|
+
* Test if all models pass the predicate
|
|
292
|
+
* @example projects.every(p => !p.is_invalidated)
|
|
293
|
+
*/
|
|
294
|
+
every(predicate: (model: T, index: number) => boolean): boolean;
|
|
295
|
+
/**
|
|
296
|
+
* Test if any model passes the predicate
|
|
297
|
+
* @example projects.some(p => p.timezone === 'UTC')
|
|
298
|
+
*/
|
|
299
|
+
some(predicate: (model: T, index: number) => boolean): boolean;
|
|
300
|
+
/**
|
|
301
|
+
* Opposite of filter - returns models that don't match
|
|
302
|
+
* @example projects.reject(p => p.is_invalidated)
|
|
303
|
+
*/
|
|
304
|
+
reject(predicate: (model: T, index: number) => boolean): T[];
|
|
305
|
+
/**
|
|
306
|
+
* Find the maximum value by a property or function
|
|
307
|
+
* @example projects.max('created_at')
|
|
308
|
+
* @example projects.max(p => p.name.length)
|
|
309
|
+
*/
|
|
310
|
+
max(iteratee: keyof T | ((model: T) => number)): T | undefined;
|
|
311
|
+
/**
|
|
312
|
+
* Find the minimum value by a property or function
|
|
313
|
+
* @example projects.min('created_at')
|
|
314
|
+
* @example projects.min(p => p.name.length)
|
|
315
|
+
*/
|
|
316
|
+
min(iteratee: keyof T | ((model: T) => number)): T | undefined;
|
|
317
|
+
/**
|
|
318
|
+
* Reduce the collection to a single value
|
|
319
|
+
* @example projects.reduce((sum, p) => sum + 1, 0)
|
|
320
|
+
*/
|
|
321
|
+
reduce<U>(callback: (accumulator: U, model: T, index: number) => U, initialValue: U): U;
|
|
322
|
+
/**
|
|
323
|
+
* Get unique models (removes duplicates by ID)
|
|
324
|
+
* @example projects.uniq()
|
|
325
|
+
*/
|
|
326
|
+
uniq(): T[];
|
|
327
|
+
/**
|
|
328
|
+
* Check if the collection contains a model matching the predicate
|
|
329
|
+
* @example projects.contains(p => p.name === 'Test')
|
|
330
|
+
*/
|
|
331
|
+
contains(predicate: (model: T) => boolean): boolean;
|
|
332
|
+
/**
|
|
333
|
+
* Invoke a method on each model (if models have methods)
|
|
334
|
+
* @example projects.invoke('toString')
|
|
335
|
+
*/
|
|
336
|
+
invoke(methodName: keyof T, ...args: unknown[]): unknown[];
|
|
337
|
+
/**
|
|
338
|
+
* Execute all dependent calls after the main collection is loaded
|
|
339
|
+
*/
|
|
340
|
+
protected executeDependentCalls(config?: RequestConfig): Promise<void>;
|
|
341
|
+
/**
|
|
342
|
+
* Fetch the first page of models
|
|
343
|
+
*/
|
|
344
|
+
fetch(params?: unknown, config?: RequestConfig): Promise<void>;
|
|
345
|
+
/**
|
|
346
|
+
* Fetch the next page and append to the collection
|
|
347
|
+
*/
|
|
348
|
+
fetchNext(config?: RequestConfig): Promise<void>;
|
|
349
|
+
/**
|
|
350
|
+
* Fetch all pages and populate the collection
|
|
351
|
+
*/
|
|
352
|
+
fetchAll(params?: unknown, config?: RequestConfig): Promise<void>;
|
|
353
|
+
/**
|
|
354
|
+
* Convert collection models to GeoJSON FeatureCollection
|
|
355
|
+
*
|
|
356
|
+
* @param toFeature - Optional function to convert a model to a GeoJSON Feature.
|
|
357
|
+
* If not provided, subclasses should override this method.
|
|
358
|
+
* @returns GeoJSON FeatureCollection or null if conversion is not supported
|
|
359
|
+
*
|
|
360
|
+
* @example
|
|
361
|
+
* // With callback
|
|
362
|
+
* const geojson = collection.toGeoJSON((location) => ({
|
|
363
|
+
* type: 'Feature',
|
|
364
|
+
* geometry: location.point,
|
|
365
|
+
* properties: {
|
|
366
|
+
* name: location.name,
|
|
367
|
+
* code: location.code
|
|
368
|
+
* },
|
|
369
|
+
* id: location.id
|
|
370
|
+
* }));
|
|
371
|
+
*
|
|
372
|
+
* @example
|
|
373
|
+
* // Override in subclass
|
|
374
|
+
* class MyCollection extends Collection<MyModel> {
|
|
375
|
+
* toGeoJSON(): GeoJSONFeatureCollection {
|
|
376
|
+
* return {
|
|
377
|
+
* type: 'FeatureCollection',
|
|
378
|
+
* features: this.models.map(model => ({
|
|
379
|
+
* type: 'Feature',
|
|
380
|
+
* geometry: model.geometry,
|
|
381
|
+
* properties: { name: model.name },
|
|
382
|
+
* id: model.id
|
|
383
|
+
* }))
|
|
384
|
+
* };
|
|
385
|
+
* }
|
|
386
|
+
* }
|
|
387
|
+
*/
|
|
388
|
+
toGeoJSON(toFeature?: ToGeoJSONFeature<T>): GeoJSONFeatureCollection | null;
|
|
389
|
+
}
|
|
390
|
+
export {};
|
|
391
|
+
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../sgerplib/sgerp/collection.ts"],"names":[],"mappings":"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"}
|