sgerp-frontend-lib 0.1.4 → 0.2.0

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.
Files changed (81) hide show
  1. package/dist/constants/timezones.d.ts +7 -2
  2. package/dist/constants/timezones.d.ts.map +1 -1
  3. package/dist/constants/timezones.js +17 -2
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +2 -0
  7. package/dist/locales/locale-server.d.ts +1 -1
  8. package/dist/locales/locale-server.d.ts.map +1 -1
  9. package/dist/locales/locale-server.js +5 -0
  10. package/dist/locales/locale.d.ts +1 -1
  11. package/dist/locales/locale.d.ts.map +1 -1
  12. package/dist/locales/locale.js +6 -2
  13. package/dist/locales/locale_en.d.ts.map +1 -1
  14. package/dist/locales/locale_en.js +236 -1
  15. package/dist/locales/locale_id.d.ts +2 -0
  16. package/dist/locales/locale_id.d.ts.map +1 -0
  17. package/dist/locales/locale_id.js +2473 -0
  18. package/dist/locales/locale_ja.d.ts.map +1 -1
  19. package/dist/locales/locale_ja.js +188 -1
  20. package/dist/locales/locale_ms.d.ts.map +1 -1
  21. package/dist/locales/locale_ms.js +60 -1
  22. package/dist/locales/locale_tl.d.ts +2 -0
  23. package/dist/locales/locale_tl.d.ts.map +1 -0
  24. package/dist/locales/locale_tl.js +1122 -0
  25. package/dist/sgerp/collection.d.ts.map +1 -1
  26. package/dist/sgerp/collection.js +18 -4
  27. package/dist/sgerp/domains.d.ts +16 -2
  28. package/dist/sgerp/domains.d.ts.map +1 -1
  29. package/dist/sgerp/domains.js +47 -1
  30. package/dist/sgerp/hooks/use-selection-state.d.ts +37 -0
  31. package/dist/sgerp/hooks/use-selection-state.d.ts.map +1 -0
  32. package/dist/sgerp/hooks/use-selection-state.js +121 -0
  33. package/dist/sgerp/hooks/use-simulation-data.d.ts +105 -0
  34. package/dist/sgerp/hooks/use-simulation-data.d.ts.map +1 -0
  35. package/dist/sgerp/hooks/use-simulation-data.js +146 -0
  36. package/dist/sgerp/hooks/use-simulation-state.d.ts +80 -0
  37. package/dist/sgerp/hooks/use-simulation-state.d.ts.map +1 -0
  38. package/dist/sgerp/hooks/use-simulation-state.js +161 -0
  39. package/dist/sgerp/index.d.ts +10 -3
  40. package/dist/sgerp/index.d.ts.map +1 -1
  41. package/dist/sgerp/index.js +30 -2
  42. package/dist/sgerp/simulation-logic/fetchUtils.d.ts +18 -0
  43. package/dist/sgerp/simulation-logic/fetchUtils.d.ts.map +1 -1
  44. package/dist/sgerp/simulation-logic/fetchUtils.js +196 -0
  45. package/dist/sgerp/simulation-logic/index.d.ts +7 -2
  46. package/dist/sgerp/simulation-logic/index.d.ts.map +1 -1
  47. package/dist/sgerp/simulation-logic/index.js +18 -1
  48. package/dist/sgerp/simulation-logic/liveUpdates.d.ts +102 -0
  49. package/dist/sgerp/simulation-logic/liveUpdates.d.ts.map +1 -0
  50. package/dist/sgerp/simulation-logic/liveUpdates.js +87 -0
  51. package/dist/sgerp/simulation-logic/prepareSimulationData.d.ts +36 -0
  52. package/dist/sgerp/simulation-logic/prepareSimulationData.d.ts.map +1 -0
  53. package/dist/sgerp/simulation-logic/prepareSimulationData.js +34 -0
  54. package/dist/sgerp/simulation-logic/routeCalculationUtils.d.ts +7 -1
  55. package/dist/sgerp/simulation-logic/routeCalculationUtils.d.ts.map +1 -1
  56. package/dist/sgerp/simulation-logic/routeCalculationUtils.js +81 -0
  57. package/dist/sgerp/simulation-logic/vrpStatsCalculator.d.ts +52 -0
  58. package/dist/sgerp/simulation-logic/vrpStatsCalculator.d.ts.map +1 -0
  59. package/dist/sgerp/simulation-logic/vrpStatsCalculator.js +247 -0
  60. package/dist/sgerp/simulation-logic/vrpStatsUtils.d.ts +17 -0
  61. package/dist/sgerp/simulation-logic/vrpStatsUtils.d.ts.map +1 -0
  62. package/dist/sgerp/simulation-logic/vrpStatsUtils.js +48 -0
  63. package/dist/sgerp/utils/timezone.d.ts +15 -0
  64. package/dist/sgerp/utils/timezone.d.ts.map +1 -0
  65. package/dist/sgerp/utils/timezone.js +19 -0
  66. package/dist/sgerp/vrptoolbox-analyzer.d.ts +39 -0
  67. package/dist/sgerp/vrptoolbox-analyzer.d.ts.map +1 -0
  68. package/dist/sgerp/vrptoolbox-analyzer.js +210 -0
  69. package/dist/vrptoolbox/collection.d.ts +16 -0
  70. package/dist/vrptoolbox/collection.d.ts.map +1 -0
  71. package/dist/vrptoolbox/collection.js +62 -0
  72. package/dist/vrptoolbox/index.d.ts +7 -0
  73. package/dist/vrptoolbox/index.d.ts.map +1 -0
  74. package/dist/vrptoolbox/index.js +24 -0
  75. package/dist/vrptoolbox/types/job.d.ts +46 -0
  76. package/dist/vrptoolbox/types/job.d.ts.map +1 -0
  77. package/dist/vrptoolbox/types/job.js +5 -0
  78. package/dist/vrptoolbox/vrptoolbox-utils.d.ts +133 -0
  79. package/dist/vrptoolbox/vrptoolbox-utils.d.ts.map +1 -0
  80. package/dist/vrptoolbox/vrptoolbox-utils.js +207 -0
  81. package/package.json +9 -4
@@ -2,6 +2,10 @@
2
2
  * Get all available timezone names from moment-timezone
3
3
  */
4
4
  export declare function getAllTimezones(): string[];
5
+ /**
6
+ * Get localized timezone label
7
+ */
8
+ export declare function getLocalizedTimezoneName(tz: string, locale: string): string;
5
9
  /**
6
10
  * Get timezone options formatted for select dropdowns
7
11
  */
@@ -10,9 +14,10 @@ export declare function getTimezoneOptions(locale?: string): {
10
14
  value: string;
11
15
  }[];
12
16
  /**
13
- * Common timezones for quick access
17
+ * Common timezones organized by regions
18
+ * Priority: Areas of business presence first, then other major timezones
14
19
  */
15
- export declare const COMMON_TIMEZONES: readonly ["UTC", "America/New_York", "America/Los_Angeles", "America/Chicago", "Europe/London", "Europe/Paris", "Asia/Tokyo", "Asia/Shanghai", "Australia/Sydney"];
20
+ export declare const COMMON_TIMEZONES: readonly ["Asia/Singapore", "Asia/Tokyo", "Asia/Bangkok", "Asia/Manila", "Asia/Ho_Chi_Minh", "Asia/Jakarta", "Asia/Kuala_Lumpur", "UTC", "America/New_York", "America/Los_Angeles", "America/Chicago", "Europe/London", "Europe/Paris", "Asia/Shanghai", "Asia/Hong_Kong", "Australia/Sydney"];
16
21
  /**
17
22
  * Get common timezone options formatted for select dropdowns
18
23
  */
@@ -1 +1 @@
1
- {"version":3,"file":"timezones.d.ts","sourceRoot":"","sources":["../../sgerplib/constants/timezones.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AA2DD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,MAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAY5F;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,oKAUnB,CAAC;AAEX;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,GAAE,MAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAUlG"}
1
+ {"version":3,"file":"timezones.d.ts","sourceRoot":"","sources":["../../sgerplib/constants/timezones.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAoDD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAM3E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,MAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAY5F;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,gSAoBnB,CAAC;AAEX;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,GAAE,MAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAUlG"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.COMMON_TIMEZONES = void 0;
7
7
  exports.getAllTimezones = getAllTimezones;
8
+ exports.getLocalizedTimezoneName = getLocalizedTimezoneName;
8
9
  exports.getTimezoneOptions = getTimezoneOptions;
9
10
  exports.getCommonTimezoneOptions = getCommonTimezoneOptions;
10
11
  const moment_timezone_1 = __importDefault(require("moment-timezone"));
@@ -25,6 +26,10 @@ const TIMEZONE_NAMES_JA = {
25
26
  'Asia/Hong_Kong': 'アジア/香港',
26
27
  'Asia/Singapore': 'アジア/シンガポール',
27
28
  'Asia/Bangkok': 'アジア/バンコク',
29
+ 'Asia/Manila': 'アジア/マニラ',
30
+ 'Asia/Ho_Chi_Minh': 'アジア/ホーチミン',
31
+ 'Asia/Jakarta': 'アジア/ジャカルタ',
32
+ 'Asia/Kuala_Lumpur': 'アジア/クアラルンプール',
28
33
  'Asia/Dubai': 'アジア/ドバイ',
29
34
  'Asia/Kolkata': 'アジア/コルカタ',
30
35
  // Europe
@@ -79,17 +84,27 @@ function getTimezoneOptions(locale = 'en') {
79
84
  });
80
85
  }
81
86
  /**
82
- * Common timezones for quick access
87
+ * Common timezones organized by regions
88
+ * Priority: Areas of business presence first, then other major timezones
83
89
  */
84
90
  exports.COMMON_TIMEZONES = [
91
+ // Areas of presence (Southeast Asia & Japan)
92
+ 'Asia/Singapore',
93
+ 'Asia/Tokyo',
94
+ 'Asia/Bangkok',
95
+ 'Asia/Manila',
96
+ 'Asia/Ho_Chi_Minh',
97
+ 'Asia/Jakarta',
98
+ 'Asia/Kuala_Lumpur',
99
+ // Other major timezones
85
100
  'UTC',
86
101
  'America/New_York',
87
102
  'America/Los_Angeles',
88
103
  'America/Chicago',
89
104
  'Europe/London',
90
105
  'Europe/Paris',
91
- 'Asia/Tokyo',
92
106
  'Asia/Shanghai',
107
+ 'Asia/Hong_Kong',
93
108
  'Australia/Sydney',
94
109
  ];
95
110
  /**
package/dist/index.d.ts CHANGED
@@ -4,4 +4,5 @@
4
4
  */
5
5
  export * from './sgerp';
6
6
  export { ConnectionManager } from './connection-manager';
7
+ export * from './vrptoolbox';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../sgerplib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../sgerplib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,cAAc,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -24,3 +24,5 @@ __exportStar(require("./sgerp"), exports);
24
24
  // Re-export connection manager
25
25
  var connection_manager_1 = require("./connection-manager");
26
26
  Object.defineProperty(exports, "ConnectionManager", { enumerable: true, get: function () { return connection_manager_1.ConnectionManager; } });
27
+ // Re-export VRP Toolbox module
28
+ __exportStar(require("./vrptoolbox"), exports);
@@ -1,4 +1,4 @@
1
- export type Language = "en" | "ja" | "ms";
1
+ export type Language = "en" | "ja" | "ms" | "tl" | "fil" | "id";
2
2
  /**
3
3
  * Server-side localization function (no localStorage, no client features)
4
4
  * @param key - The translation key
@@ -1 +1 @@
1
- {"version":3,"file":"locale-server.d.ts","sourceRoot":"","sources":["../../sgerplib/locales/locale-server.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAU1C;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,MAAM,EACX,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,SAAQ,QAAyB,KAChC,MAmCF,CAAC"}
1
+ {"version":3,"file":"locale-server.d.ts","sourceRoot":"","sources":["../../sgerplib/locales/locale-server.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAahE;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,MAAM,EACX,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,SAAQ,QAAyB,KAChC,MAmCF,CAAC"}
@@ -4,10 +4,15 @@ exports.localizeServer = void 0;
4
4
  const locale_en_1 = require("./locale_en");
5
5
  const locale_ja_1 = require("./locale_ja");
6
6
  const locale_ms_1 = require("./locale_ms");
7
+ const locale_tl_1 = require("./locale_tl");
8
+ const locale_id_1 = require("./locale_id");
7
9
  const locales = {
8
10
  en: locale_en_1.translations,
9
11
  ja: locale_ja_1.translations,
10
12
  ms: locale_ms_1.translations,
13
+ tl: locale_tl_1.translations,
14
+ fil: locale_tl_1.translations, // Filipino uses same translations as Tagalog
15
+ id: locale_id_1.translations,
11
16
  };
12
17
  const DEFAULT_LOCALE = "en";
13
18
  /**
@@ -1,4 +1,4 @@
1
- export type Language = "en" | "ja" | "ms";
1
+ export type Language = "en" | "ja" | "ms" | "tl" | "fil";
2
2
  type LocaleChangeListener = (locale: Language) => void;
3
3
  export declare const subscribeToLocaleChanges: (listener: LocaleChangeListener) => () => void;
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../sgerplib/locales/locale.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAc1C,KAAK,oBAAoB,GAAG,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAC;AAGvD,eAAO,MAAM,wBAAwB,GAAI,UAAU,oBAAoB,eAKtE,CAAC;AA6BF;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAO,QAe5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,QAAQ,QAAQ,KAAG,IAU5C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GACnB,KAAK,MAAM,EACX,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,SAAQ,QAAsB,KAC7B,MAmCF,CAAC"}
1
+ {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../sgerplib/locales/locale.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAiBzD,KAAK,oBAAoB,GAAG,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAC;AAGvD,eAAO,MAAM,wBAAwB,GAAI,UAAU,oBAAoB,eAKtE,CAAC;AA6BF;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAO,QAe5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,QAAQ,QAAQ,KAAG,IAU5C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GACnB,KAAK,MAAM,EACX,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,SAAQ,QAAsB,KAC7B,MAmCF,CAAC"}
@@ -5,10 +5,14 @@ exports.localize = exports.setLocale = exports.getLocale = exports.subscribeToLo
5
5
  const locale_en_1 = require("./locale_en");
6
6
  const locale_ja_1 = require("./locale_ja");
7
7
  const locale_ms_1 = require("./locale_ms");
8
+ const locale_tl_1 = require("./locale_tl");
8
9
  const locales = {
9
10
  en: locale_en_1.translations,
10
11
  ja: locale_ja_1.translations,
11
12
  ms: locale_ms_1.translations,
13
+ tl: locale_tl_1.translations,
14
+ fil: locale_tl_1.translations, // Filipino uses same translations as Tagalog
15
+ // id: translations_id,
12
16
  };
13
17
  const DEFAULT_LOCALE = "en";
14
18
  const STORAGE_KEY = "sgerp-language";
@@ -60,7 +64,7 @@ const getLocale = () => {
60
64
  else if (typeof window !== "undefined") {
61
65
  // Browser environment
62
66
  const stored = safeLocalStorage.getItem(STORAGE_KEY);
63
- if (stored === "en" || stored === "ja" || stored === "ms") {
67
+ if (stored === "en" || stored === "ja" || stored === "ms" || stored === "tl" || stored === "fil") {
64
68
  return stored;
65
69
  }
66
70
  return DEFAULT_LOCALE;
@@ -139,7 +143,7 @@ if (typeof self !== "undefined" && self.postMessage) {
139
143
  if (typeof window !== "undefined") {
140
144
  // Initialize locale from localStorage
141
145
  const storedLocale = safeLocalStorage.getItem(STORAGE_KEY);
142
- if (storedLocale === "en" || storedLocale === "ja" || storedLocale === "ms") {
146
+ if (storedLocale === "en" || storedLocale === "ja" || storedLocale === "ms" || storedLocale === "tl" || storedLocale === "fil") {
143
147
  (0, exports.setLocale)(storedLocale);
144
148
  }
145
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"locale_en.d.ts","sourceRoot":"","sources":["../../sgerplib/locales/locale_en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAomE/C,CAAC"}
1
+ {"version":3,"file":"locale_en.d.ts","sourceRoot":"","sources":["../../sgerplib/locales/locale_en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAm1E/C,CAAC"}
@@ -234,6 +234,27 @@ exports.translations = {
234
234
  "ptapp.simulation.vehicles": "Vehicles",
235
235
  "ptapp.simulation.trips": "Trips",
236
236
  "ptapp.simulation.bookings": "Bookings",
237
+ // Simulation status
238
+ "simulation.info_title": "Simulation Information",
239
+ "simulation.live": "Live",
240
+ "simulation.mode": "Mode",
241
+ "simulation.mode_template": "Template",
242
+ "simulation.mode_real_operations": "Real Operations",
243
+ "simulation.service_period": "Service Period",
244
+ "simulation.booking_period": "Booking Period",
245
+ "simulation.vehicles": "Vehicles",
246
+ "simulation.bookings": "Bookings",
247
+ "simulation.algorithm": "Algorithm",
248
+ "simulation.algo_dynamic": "Dynamic",
249
+ "simulation.algo_static": "Static",
250
+ "simulation.acceptable_waiting_time": "Acceptable Waiting Time",
251
+ "simulation.max_additional_journey_time": "Max Additional Journey Time",
252
+ "simulation.max_additional_journey_time_percent": "Max Additional Journey Time %",
253
+ "simulation.min_advance_booking_window": "Min Advance Booking Window",
254
+ "simulation.max_advance_booking_window": "Max Advance Booking Window",
255
+ "simulation.vehicle_capacity": "Vehicle Capacity",
256
+ "simulation.max_walking_distance": "Max Walking Distance",
257
+ "simulation.services_on_date": "Services on",
237
258
  "ptapp.passengers.title": "Passengers",
238
259
  "ptapp.passengers.description": "Manage passenger information",
239
260
  "ptapp.passengers.back_to_list": "Back to Passengers",
@@ -333,6 +354,7 @@ exports.translations = {
333
354
  "common.loading_data": "Loading data...",
334
355
  "common.loading_routes": "Loading routes...",
335
356
  "common.calculating": "Calculating",
357
+ "common.analyzing": "Analyzing...",
336
358
  "common.show": "Show",
337
359
  "common.hide": "Hide",
338
360
  "common.show_all": "Show All",
@@ -359,10 +381,28 @@ exports.translations = {
359
381
  "common.filter": "Filter",
360
382
  "common.done": "Done",
361
383
  "common.clear": "Clear",
384
+ "common.open": "Open",
385
+ "common.close": "Close",
386
+ "common.service": "Service",
387
+ "common.timezone": "Timezone",
388
+ "common.details": "Details",
389
+ "common.see_details": "See Details",
390
+ // Month names for localization
391
+ "month.january": "January",
392
+ "month.february": "February",
393
+ "month.march": "March",
394
+ "month.april": "April",
395
+ "month.may": "May",
396
+ "month.june": "June",
397
+ "month.july": "July",
398
+ "month.august": "August",
399
+ "month.september": "September",
400
+ "month.october": "October",
401
+ "month.november": "November",
402
+ "month.december": "December",
362
403
  "common.clear_all": "Clear All",
363
404
  "common.select": "Select...",
364
405
  "common.apply": "Apply",
365
- "common.close": "Close",
366
406
  "common.change": "Change",
367
407
  "common.yes": "Yes",
368
408
  "common.no": "No",
@@ -400,6 +440,10 @@ exports.translations = {
400
440
  "common.vehicle_plural": "vehicles",
401
441
  "common.vehicles": "vehicles",
402
442
  "common.bookings": "bookings",
443
+ "common.booking_singular": "Booking",
444
+ "common.booking_plural": "Bookings",
445
+ "common.drag_to_assign": "Drag to assign",
446
+ "common.assigning": "Assigning",
403
447
  "common.help": "Help",
404
448
  "common.keyboard_shortcuts": "Keyboard Shortcuts",
405
449
  // Autoplan Confirmation Dialog
@@ -422,6 +466,7 @@ exports.translations = {
422
466
  "autoplan.button_running": "Auto-planning...",
423
467
  // Calculation/Processor
424
468
  "processor.calculating_by": "Calculating by {username}",
469
+ "processor.system": "System",
425
470
  "processor.history_title": "Calculation History",
426
471
  "processor.total_calculations": "{count} total calculation{plural}",
427
472
  // Keyboard Shortcuts Help
@@ -491,6 +536,10 @@ exports.translations = {
491
536
  "vehicle.of_project": "of project",
492
537
  "vehicle.vehicle": "Vehicle",
493
538
  "vehicle.vehicle_details": "Vehicle Details",
539
+ "vehicle.total_travel_time": "Total Travel Time",
540
+ "vehicle.total_distance": "Total Distance",
541
+ "vehicle.search": "Search",
542
+ "vehicle.search_placeholder": "Search vehicles...",
494
543
  // Driver
495
544
  "driver.create_driver": "Create Driver",
496
545
  "driver.create_description": "Create a new driver account with user credentials",
@@ -599,6 +648,17 @@ exports.translations = {
599
648
  // Filter labels
600
649
  "filter.all": "All",
601
650
  "filter.all_statuses": "All Statuses",
651
+ "filter.search": "Search...",
652
+ "filter.select_all": "Select All",
653
+ "filter.clear_all": "Clear All",
654
+ "filter.no_matches": "No matches found",
655
+ "filter.selected": "selected",
656
+ "filter.reset": "Reset",
657
+ "filter.date_from": "From",
658
+ "filter.date_to": "To",
659
+ "filter.select_date": "Select date",
660
+ "filter.apply": "Apply",
661
+ "filter.no_date_range": "No date range",
602
662
  "filter.project": "Project",
603
663
  "filter.simulation": "Simulation",
604
664
  "filter.organization": "Organization",
@@ -657,6 +717,10 @@ exports.translations = {
657
717
  "column.vehicle_id": "Vehicle ID",
658
718
  "column.location": "Location",
659
719
  "column.scheduled": "Scheduled",
720
+ "column.node_type": "Node Type",
721
+ "column.open_time": "Open Time",
722
+ "column.close_time": "Close Time",
723
+ "column.service_time": "Service Time",
660
724
  "filter.vehicle": "Vehicle",
661
725
  // Dialog texts
662
726
  "dialog.unassign_orders_title": "Unassign {count} order{plural}?",
@@ -673,6 +737,9 @@ exports.translations = {
673
737
  "toast.unassign_from_vehicle_singular_description": "All bookings have been removed from this vehicle.",
674
738
  "toast.unassign_from_vehicles_plural_description": "All bookings have been removed from {count} vehicles.",
675
739
  "toast.unassign_error": "Failed to unassign bookings",
740
+ "toast.assign_bookings_success": "Assigned {count} {booking} to {vehicle}",
741
+ "toast.assign_bookings_error": "Failed to assign bookings - operation not committed",
742
+ "toast.assign_bookings_error_generic": "Failed to assign bookings to vehicle",
676
743
  "toast.unassign_orders_success": "Orders unassigned successfully!",
677
744
  "toast.unassign_order_singular_description": "The order has been unassigned from its vehicle.",
678
745
  "toast.unassign_orders_plural_description": "{count} orders have been unassigned from their vehicles.",
@@ -942,6 +1009,8 @@ exports.translations = {
942
1009
  "template.create_title": "Create Template",
943
1010
  "template.create_description": "Create a new simulation template",
944
1011
  "template.create_button": "Create Template",
1012
+ "template.calendar_of_services": "Calendar of Services",
1013
+ "template.default_template_for_project": "Default template simulation for project",
945
1014
  "template.type_label": "Template Type",
946
1015
  "template.type_jit": "JIT",
947
1016
  "template.type_on-demand": "On-demand",
@@ -1370,6 +1439,12 @@ exports.translations = {
1370
1439
  "service.create_title": "Create Service",
1371
1440
  "service.create_description": "Create a new service from a template",
1372
1441
  "service.create_button": "Create Service",
1442
+ "service.create_from_template": "Create Service from Template",
1443
+ "service.created_successfully": "Service created successfully!",
1444
+ "service.created_successfully_title": "Services Created Successfully",
1445
+ "service.created_count": "{{count}} service(s) processed:",
1446
+ "service.created": "Created",
1447
+ "service.already_exists": "Already Exists",
1373
1448
  "service.project_label": "Project",
1374
1449
  "service.project_placeholder": "Search projects...",
1375
1450
  "service.template_label": "Template",
@@ -1514,6 +1589,10 @@ exports.translations = {
1514
1589
  // Language Selector
1515
1590
  "language.english": "English",
1516
1591
  "language.japanese": "Japanese",
1592
+ "language.malay": "Malay",
1593
+ "language.tagalog": "Tagalog",
1594
+ "language.filipino": "Filipino",
1595
+ "language.indonesian": "Indonesian",
1517
1596
  "language.select": "Select language",
1518
1597
  // Timezone Selector
1519
1598
  "timezone.search_placeholder": "Search timezone...",
@@ -1564,6 +1643,8 @@ exports.translations = {
1564
1643
  "booking.dropoff_location": "Dropoff Location",
1565
1644
  "booking.search_pickup": "Search pickup locations...",
1566
1645
  "booking.search_dropoff": "Search dropoff locations...",
1646
+ "booking.search": "Search",
1647
+ "booking.search_placeholder": "Search bookings...",
1567
1648
  "booking.tickets": "Tickets",
1568
1649
  "booking.payment_summary": "Payment Summary",
1569
1650
  "booking.show_details": "Show Details",
@@ -2014,4 +2095,158 @@ exports.translations = {
2014
2095
  "examples.custom_onedit_handler": "Custom onEdit Handler",
2015
2096
  "examples.custom_onedit_desc": "For advanced use cases, provide your own onEdit handler for full control.",
2016
2097
  "examples.see_code_above": "See code example above for custom implementation",
2098
+ // VRPToolbox
2099
+ "vrptoolbox.analyze": "Analyze",
2100
+ "vrptoolbox.analysis_results": "Analysis Results",
2101
+ "vrptoolbox.rejected_bookings": "Rejected Bookings",
2102
+ "vrptoolbox.no_rejected_bookings": "No rejected bookings to analyze",
2103
+ "vrptoolbox.possible_vehicles": "Possible Vehicles",
2104
+ "vrptoolbox.impossible_vehicles": "Impossible Vehicles",
2105
+ "vrptoolbox.reasons": "Reasons",
2106
+ "vrptoolbox.no_data_available": "No VRPToolbox data available to analyze",
2107
+ "vrptoolbox.analysis_complete": "Analyzed {count} rejected bookings",
2108
+ "vrptoolbox.analysis_failed": "Failed to analyze VRP data",
2109
+ "vrptoolbox.all_vehicles_impossible": "All vehicles are impossible",
2110
+ "vrptoolbox.vehicle_has_assigned_nodes": "Vehicle {vehicleId} has assigned nodes. Possibly change the first solution strategy to 16 or clear vehicles",
2111
+ "vrptoolbox.characteristic_unavailable": "{nodeType} cannot be assigned to vehicle {vehicleId} because characteristic {char} is not available",
2112
+ "vrptoolbox.characteristic_min_violation": "{nodeType} cannot be assigned to vehicle {vehicleId} because of {char}.min violation: {vehicleValue} < {requiredMin}",
2113
+ "vrptoolbox.characteristic_max_violation": "{nodeType} cannot be assigned to vehicle {vehicleId} because of {char}.max violation: {vehicleValue} > {requiredMax}",
2114
+ "vrptoolbox.characteristic_value_violation": "Cannot be assigned to vehicle {vehicleId} - {char} value mismatch",
2115
+ "vrptoolbox.start_time_violation": "{nodeType} cannot be assigned to vehicle {vehicleId} - start time violation: {vehicleStartTime} > {nodeCloseTime}",
2116
+ "vrptoolbox.end_time_violation": "{nodeType} cannot be assigned to vehicle {vehicleId} - end time violation: {vehicleEndTime} < {nodeOpenTime}",
2117
+ "vrptoolbox.geofence_violation": "Cannot be assigned to vehicle {vehicleId} - geofence mismatch",
2118
+ "vrptoolbox.label_violation": "Vehicle {vehicleId} labels do not satisfy booking requirements",
2119
+ "vrptoolbox.engine_settings": "Engine Settings",
2120
+ "vrptoolbox.engine_settings_description": "Routing and solver configuration",
2121
+ "vrptoolbox.routing_engine": "Routing Engine",
2122
+ "vrptoolbox.routing_configuration": "Routing configuration",
2123
+ "vrptoolbox.solver_configuration": "Solver Configuration",
2124
+ "vrptoolbox.algorithm_settings": "Algorithm settings",
2125
+ "vrptoolbox.model_parameters": "Model Parameters",
2126
+ "vrptoolbox.model_configuration": "Model configuration",
2127
+ "vrptoolbox.calculation_parameters": "Calculation Parameters",
2128
+ "vrptoolbox.calculation_settings": "Calculation settings",
2129
+ "vrptoolbox.no_engine_settings": "No engine settings available",
2130
+ "vrptoolbox.nodes": "Nodes",
2131
+ "vrptoolbox.all_nodes_count": "All nodes ({count} total)",
2132
+ "vrptoolbox.no_nodes": "No nodes found",
2133
+ "vrptoolbox.vehicles": "Vehicles",
2134
+ "vrptoolbox.all_vehicles_count": "All vehicles ({count} total)",
2135
+ "vrptoolbox.no_vehicles": "No vehicles found",
2136
+ "vrptoolbox.raw_data": "Raw Data",
2137
+ "vrptoolbox.complete_payload_result": "Complete payload and result",
2138
+ "vrptoolbox.no_data": "No data available",
2139
+ "vrptoolbox.engine_name": "Engine Name",
2140
+ "vrptoolbox.url": "URL",
2141
+ "vrptoolbox.road_network": "Road Network",
2142
+ "vrptoolbox.speed": "Speed",
2143
+ "vrptoolbox.time_factor": "Time Factor",
2144
+ "vrptoolbox.make_depot_zero": "Make Depot Zero",
2145
+ "vrptoolbox.radius": "Radius",
2146
+ "vrptoolbox.curb": "Curb",
2147
+ "vrptoolbox.intermediate_curb": "Intermediate Curb",
2148
+ "vrptoolbox.use_speed_in_routing": "Use Speed in Routing",
2149
+ "vrptoolbox.profile": "Profile",
2150
+ "vrptoolbox.batch_matrix_size": "Batch Matrix Size",
2151
+ "vrptoolbox.key_token": "Key / Token",
2152
+ "vrptoolbox.algorithm": "Algorithm",
2153
+ "vrptoolbox.first_solution_strategy": "First Solution Strategy",
2154
+ "vrptoolbox.solution_limit": "Solution Limit",
2155
+ "vrptoolbox.time_limit_ms": "Time Limit (ms)",
2156
+ "vrptoolbox.local_search_metaheuristic": "Local Search Metaheuristic",
2157
+ "vrptoolbox.tsp_optimization": "TSP Optimization",
2158
+ "vrptoolbox.log_search": "Log Search",
2159
+ "vrptoolbox.vehicle_costs": "Vehicle Costs",
2160
+ "vrptoolbox.booking_penalty": "Booking Penalty",
2161
+ "vrptoolbox.mixed_fleet": "Mixed Fleet",
2162
+ "vrptoolbox.max_slack": "Max Slack",
2163
+ "vrptoolbox.scheduling_mode": "Scheduling Mode",
2164
+ "vrptoolbox.use_vehicles_nodes": "Use Vehicles Nodes",
2165
+ "vrptoolbox.allow_vehicle_late": "Allow Vehicle Late",
2166
+ "vrptoolbox.gls_lambda_coefficient": "GLS Lambda Coefficient",
2167
+ "vrptoolbox.lns_time_limit_ms": "LNS Time Limit (ms)",
2168
+ "vrptoolbox.savings_neighbors_ratio": "Savings Neighbors Ratio",
2169
+ "vrptoolbox.waypoints_solution_limit": "Waypoints Solution Limit",
2170
+ "vrptoolbox.waypoints_opt_2nd_phase": "Waypoints Opt 2nd Phase",
2171
+ "vrptoolbox.depth_first_search": "Depth First Search",
2172
+ "vrptoolbox.all_local_search_operators": "All Local Search Operators",
2173
+ "vrptoolbox.waypoints_optimization": "Waypoints Optimization",
2174
+ "vrptoolbox.optimization_step": "Optimization Step",
2175
+ "vrptoolbox.cvb_local_search": "CVB Local Search",
2176
+ "vrptoolbox.cvb_fleetmin_solutions": "CVB Fleet Min Solutions",
2177
+ "vrptoolbox.cvb_fleetmin_iterations": "CVB Fleet Min Iterations",
2178
+ "vrptoolbox.cvb_fleetmin_time_limit": "CVB Fleet Min Time Limit",
2179
+ "vrptoolbox.cvb_local_search_iterations": "CVB Local Search Iterations",
2180
+ "vrptoolbox.path_equalizer": "Path Equalizer",
2181
+ "vrptoolbox.waiting_time_cost": "Waiting Time Cost",
2182
+ "vrptoolbox.total_furthest_distance_ratio": "Total/Furthest Distance Ratio",
2183
+ "vrptoolbox.use_walking_time": "Use Walking Time",
2184
+ "vrptoolbox.lifo_order_check": "LIFO Order Check",
2185
+ "vrptoolbox.lifo_on_all_vehicles": "LIFO on All Vehicles",
2186
+ "vrptoolbox.time_dependent_transit": "Time Dependent Transit",
2187
+ "vrptoolbox.optimize_quantity": "Optimize Quantity",
2188
+ "vrptoolbox.group_crossing_penalty": "Group Crossing Penalty",
2189
+ "vrptoolbox.slack_cost_factor": "Slack Cost Factor",
2190
+ "vrptoolbox.vehicle_linear_cost_factor": "Vehicle Linear Cost Factor",
2191
+ "vrptoolbox.vehicle_quadratic_cost_factor": "Vehicle Quadratic Cost Factor",
2192
+ "vrptoolbox.assigned_nodes_protection_mode": "Assigned Nodes Protection Mode",
2193
+ "vrptoolbox.path_constraints_mode": "Path Constraints Mode",
2194
+ "vrptoolbox.calculations_mode": "Calculations Mode",
2195
+ "vrptoolbox.vehicle_late_penalty": "Vehicle Late Penalty",
2196
+ "vrptoolbox.max_possible_lateness": "Max Possible Lateness",
2197
+ "vrptoolbox.use_node_weights_cost": "Use Node Weights Cost",
2198
+ "vrptoolbox.cvrptw_artificial_nodes": "CVRPTW Artificial Nodes",
2199
+ "vrptoolbox.use_mixed_time_matrix": "Use Mixed Time Matrix",
2200
+ "vrptoolbox.use_path_equalizer_calc": "Use Path Equalizer",
2201
+ "vrptoolbox.path_equalizer_weight": "Path Equalizer Weight",
2202
+ "vrptoolbox.waiting_time_cost_factor": "Waiting Time Cost Factor",
2203
+ "vrptoolbox.start_end_time_limitations": "Start/End Time Limitations",
2204
+ "vrptoolbox.use_pickup_delivery": "Use Pickup Delivery",
2205
+ "vrptoolbox.allow_jump": "Allow Jump",
2206
+ "vrptoolbox.remove_vehicle_positions": "Remove Vehicle Positions",
2207
+ "vrptoolbox.calculate_cumulative_distance": "Calculate Cumulative Distance",
2208
+ "vrptoolbox.dropoff_earlier": "Dropoff Earlier",
2209
+ "vrptoolbox.pickup_later": "Pickup Later",
2210
+ "vrptoolbox.exclude_unroutable_bookings": "Exclude Unroutable Bookings",
2211
+ "vrptoolbox.partition_nodes": "Partition Nodes",
2212
+ "vrptoolbox.cumulative_limitations_mode": "Cumulative Limitations Mode",
2213
+ // VRPToolbox Statistics
2214
+ "vrptoolbox.statistics": "Statistics",
2215
+ "vrptoolbox.statistics_description": "Fleet statistics, timeline, and utilization analysis",
2216
+ "vrptoolbox.no_stats_data": "No statistics data available",
2217
+ "vrptoolbox.stats.timeline": "Timeline",
2218
+ "vrptoolbox.stats.utilization": "Utilization",
2219
+ "vrptoolbox.stats.utilization_title": "Stats & Utilization",
2220
+ "vrptoolbox.stats.travel": "Travel",
2221
+ "vrptoolbox.stats.service": "Service",
2222
+ "vrptoolbox.stats.slack": "Slack",
2223
+ "vrptoolbox.stats.break": "Break",
2224
+ "vrptoolbox.stats.start_end": "Start/End",
2225
+ "vrptoolbox.stats.start": "Start",
2226
+ "vrptoolbox.stats.end": "End",
2227
+ "vrptoolbox.stats.total_slack": "Total Slack",
2228
+ "vrptoolbox.stats.total_mileage": "Total Mileage",
2229
+ "vrptoolbox.stats.total_driving_time": "Total Driving Time",
2230
+ "vrptoolbox.stats.total_break_time": "Total Break Time",
2231
+ "vrptoolbox.stats.distance": "Distance",
2232
+ "vrptoolbox.stats.time": "Time",
2233
+ "vrptoolbox.stats.drive": "Drive",
2234
+ "vrptoolbox.stats.no_utilization": "No utilization data available",
2235
+ // Tooltip labels
2236
+ "vrptoolbox.tooltip.from": "From",
2237
+ "vrptoolbox.tooltip.to": "To",
2238
+ "vrptoolbox.tooltip.origin": "Origin",
2239
+ "vrptoolbox.tooltip.destination": "Destination",
2240
+ "vrptoolbox.tooltip.location": "Location",
2241
+ "vrptoolbox.tooltip.coordinates": "Coordinates",
2242
+ "vrptoolbox.tooltip.scheduled": "Scheduled",
2243
+ "vrptoolbox.tooltip.type": "Type",
2244
+ "vrptoolbox.tooltip.booking": "Booking",
2245
+ "vrptoolbox.tooltip.service_time": "Service Time",
2246
+ "vrptoolbox.tooltip.travel_time": "Travel Time",
2247
+ "vrptoolbox.tooltip.slack": "Slack",
2248
+ "vrptoolbox.tooltip.break": "Break",
2249
+ "vrptoolbox.tooltip.time_window": "Time Window",
2250
+ "vrptoolbox.tooltip.open": "Open",
2251
+ "vrptoolbox.tooltip.close": "Close",
2017
2252
  };
@@ -0,0 +1,2 @@
1
+ export declare const translations: Record<string, string>;
2
+ //# sourceMappingURL=locale_id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale_id.d.ts","sourceRoot":"","sources":["../../sgerplib/locales/locale_id.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4gF/C,CAAC"}