@stamhoofd/structures 2.84.0 → 2.84.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.
Files changed (41) hide show
  1. package/dist/src/AppliedRegistrationDiscount.d.ts +1 -1
  2. package/dist/src/AppliedRegistrationDiscount.d.ts.map +1 -1
  3. package/dist/src/AppliedRegistrationDiscount.js +3 -3
  4. package/dist/src/AppliedRegistrationDiscount.js.map +1 -1
  5. package/dist/src/BundleDiscount.d.ts +1 -1
  6. package/dist/src/BundleDiscount.d.ts.map +1 -1
  7. package/dist/src/BundleDiscount.js +5 -48
  8. package/dist/src/BundleDiscount.js.map +1 -1
  9. package/dist/src/filters/FilterCompilers.d.ts +1 -1
  10. package/dist/src/filters/FilterCompilers.d.ts.map +1 -1
  11. package/dist/src/helpers/MemberPlatformMembershipHelper.d.ts +2 -2
  12. package/dist/src/helpers/MemberPlatformMembershipHelper.d.ts.map +1 -1
  13. package/dist/src/helpers/MemberPlatformMembershipHelper.js +12 -12
  14. package/dist/src/helpers/MemberPlatformMembershipHelper.js.map +1 -1
  15. package/dist/src/helpers/calculateHungarianAlgorithm.d.ts +7 -0
  16. package/dist/src/helpers/calculateHungarianAlgorithm.d.ts.map +1 -0
  17. package/dist/src/helpers/calculateHungarianAlgorithm.js +85 -0
  18. package/dist/src/helpers/calculateHungarianAlgorithm.js.map +1 -0
  19. package/dist/src/helpers/calculateHungarianAlgorithm.test.d.ts +2 -0
  20. package/dist/src/helpers/calculateHungarianAlgorithm.test.d.ts.map +1 -0
  21. package/dist/src/helpers/calculateHungarianAlgorithm.test.js +291 -0
  22. package/dist/src/helpers/calculateHungarianAlgorithm.test.js.map +1 -0
  23. package/esm/dist/src/AppliedRegistrationDiscount.d.ts +1 -1
  24. package/esm/dist/src/AppliedRegistrationDiscount.d.ts.map +1 -1
  25. package/esm/dist/src/AppliedRegistrationDiscount.js +1 -1
  26. package/esm/dist/src/AppliedRegistrationDiscount.js.map +1 -1
  27. package/esm/dist/src/BundleDiscount.d.ts +1 -1
  28. package/esm/dist/src/BundleDiscount.d.ts.map +1 -1
  29. package/esm/dist/src/BundleDiscount.js +5 -48
  30. package/esm/dist/src/BundleDiscount.js.map +1 -1
  31. package/esm/dist/src/filters/FilterCompilers.d.ts +1 -1
  32. package/esm/dist/src/filters/FilterCompilers.d.ts.map +1 -1
  33. package/esm/dist/src/helpers/MemberPlatformMembershipHelper.d.ts +2 -2
  34. package/esm/dist/src/helpers/MemberPlatformMembershipHelper.d.ts.map +1 -1
  35. package/esm/dist/src/helpers/MemberPlatformMembershipHelper.js +1 -1
  36. package/esm/dist/src/helpers/MemberPlatformMembershipHelper.js.map +1 -1
  37. package/esm/dist/src/helpers/calculateHungarianAlgorithm.d.ts +7 -0
  38. package/esm/dist/src/helpers/calculateHungarianAlgorithm.d.ts.map +1 -0
  39. package/esm/dist/src/helpers/calculateHungarianAlgorithm.js +82 -0
  40. package/esm/dist/src/helpers/calculateHungarianAlgorithm.js.map +1 -0
  41. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  import { AutoEncoder } from '@simonbackx/simple-encoding';
2
- import { TranslatedString } from './TranslatedString';
2
+ import { TranslatedString } from './TranslatedString.js';
3
3
  export declare class AppliedRegistrationDiscount extends AutoEncoder {
4
4
  /**
5
5
  * Snapshot of the discount that was applied to this registration.
@@ -1 +1 @@
1
- {"version":3,"file":"AppliedRegistrationDiscount.d.ts","sourceRoot":"","sources":["../../src/AppliedRegistrationDiscount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,2BAA4B,SAAQ,WAAW;IACxD;;;OAGG;IAEH,IAAI,mBAA4B;IAEhC;;;OAGG;IAEH,MAAM,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"AppliedRegistrationDiscount.d.ts","sourceRoot":"","sources":["../../src/AppliedRegistrationDiscount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,2BAA4B,SAAQ,WAAW;IACxD;;;OAGG;IAEH,IAAI,mBAA4B;IAEhC;;;OAGG;IAEH,MAAM,EAAE,MAAM,CAAC;CAClB"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AppliedRegistrationDiscount = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const simple_encoding_1 = require("@simonbackx/simple-encoding");
6
- const TranslatedString_1 = require("./TranslatedString");
6
+ const TranslatedString_js_1 = require("./TranslatedString.js");
7
7
  class AppliedRegistrationDiscount extends simple_encoding_1.AutoEncoder {
8
8
  constructor() {
9
9
  super(...arguments);
@@ -11,12 +11,12 @@ class AppliedRegistrationDiscount extends simple_encoding_1.AutoEncoder {
11
11
  * Snapshot of the discount that was applied to this registration.
12
12
  * This contains the name of the discount and settings.
13
13
  */
14
- this.name = new TranslatedString_1.TranslatedString('');
14
+ this.name = new TranslatedString_js_1.TranslatedString('');
15
15
  }
16
16
  }
17
17
  exports.AppliedRegistrationDiscount = AppliedRegistrationDiscount;
18
18
  tslib_1.__decorate([
19
- (0, simple_encoding_1.field)(TranslatedString_1.TranslatedString.field({}))
19
+ (0, simple_encoding_1.field)(TranslatedString_js_1.TranslatedString.field({}))
20
20
  ], AppliedRegistrationDiscount.prototype, "name", void 0);
21
21
  tslib_1.__decorate([
22
22
  (0, simple_encoding_1.field)({ decoder: simple_encoding_1.IntegerDecoder })
@@ -1 +1 @@
1
- {"version":3,"file":"AppliedRegistrationDiscount.js","sourceRoot":"","sources":["../../src/AppliedRegistrationDiscount.ts"],"names":[],"mappings":";;;;AAAA,iEAAiF;AACjF,yDAAsD;AAEtD,MAAa,2BAA4B,SAAQ,6BAAW;IAA5D;;QACI;;;WAGG;QAEH,SAAI,GAAG,IAAI,mCAAgB,CAAC,EAAE,CAAC,CAAC;IAQpC,CAAC;CAAA;AAdD,kEAcC;AARG;IADC,IAAA,uBAAK,EAAC,mCAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yDACF;AAOhC;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,gCAAc,EAAE,CAAC;2DACpB"}
1
+ {"version":3,"file":"AppliedRegistrationDiscount.js","sourceRoot":"","sources":["../../src/AppliedRegistrationDiscount.ts"],"names":[],"mappings":";;;;AAAA,iEAAiF;AACjF,+DAAyD;AAEzD,MAAa,2BAA4B,SAAQ,6BAAW;IAA5D;;QACI;;;WAGG;QAEH,SAAI,GAAG,IAAI,sCAAgB,CAAC,EAAE,CAAC,CAAC;IAQpC,CAAC;CAAA;AAdD,kEAcC;AARG;IADC,IAAA,uBAAK,EAAC,sCAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yDACF;AAOhC;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,gCAAc,EAAE,CAAC;2DACpB"}
@@ -3,9 +3,9 @@ import { Group } from './Group.js';
3
3
  import { GroupPriceDiscount } from './GroupPriceDiscount.js';
4
4
  import { type RegisterCart } from './members/checkout/RegisterCart.js';
5
5
  import { RegisterItem } from './members/checkout/RegisterItem.js';
6
+ import { RegistrationWithPlatformMember } from './members/checkout/RegistrationWithPlatformMember.js';
6
7
  import { type PlatformMember } from './members/PlatformMember.js';
7
8
  import { TranslatedString } from './TranslatedString.js';
8
- import { RegistrationWithPlatformMember } from './members/checkout/RegistrationWithPlatformMember.js';
9
9
  export declare class BundleDiscount extends AutoEncoder {
10
10
  id: string;
11
11
  name: TranslatedString;
@@ -1 +1 @@
1
- {"version":3,"file":"BundleDiscount.d.ts","sourceRoot":"","sources":["../../src/BundleDiscount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAC9G,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAEvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AAGtG,qBAAa,cAAe,SAAQ,WAAW;IAE3C,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,mBAA4B;IAGhC,SAAS,EAAE,kBAAkB,EAAE,CAAM;IAErC;;OAEG;IAEH,gBAAgB,UAAS;IAEzB;;;OAGG;IAEH,aAAa,UAAS;IAEtB,IAAI,gBAAgB,WASnB;IAED,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE;IAkBtD,IAAI,aAAa,WAEhB;IAED,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAyD7D,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;CAalE;AAED,cAAM,8BAA8B;IAChC,MAAM,EAAE,cAAc,CAAC;IAEvB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAa;gBAErD,OAAO,EAAE;QACjB,MAAM,EAAE,cAAc,CAAC;KAC1B;IAID,SAAS;IAMT,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B,EAAE,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;CAqC9G;AAED,qBAAa,yBAAyB;IAClC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;;OAGG;IACH,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,aAAa,EAAE,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;IAE3D;;MAEE;IACF,mBAAmB,EAAE,8BAA8B,EAAE,CAAC;gBAE1C,OAAO,EAAE;QACjB,MAAM,EAAE,cAAc,CAAC;QACvB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;KAClC;IAUD,IAAI,IAAI,WAWP;IAED;;MAEE;IACF,IAAI,KAAK,WAGR;IAED,IAAI,mBAAmB,WAUtB;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,gBAAgB,WASnB;IAED,IAAI,cAAc,WAEjB;IAED,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAU/D,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAWxE,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IASvD,MAAM,CAAC,YAAY,EAAE,8BAA8B;IAInD,IAAI,qBAAqB,sDAqCxB;IAED,SAAS;CA4CZ"}
1
+ {"version":3,"file":"BundleDiscount.d.ts","sourceRoot":"","sources":["../../src/BundleDiscount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAG9G,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,cAAe,SAAQ,WAAW;IAE3C,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,mBAA4B;IAGhC,SAAS,EAAE,kBAAkB,EAAE,CAAM;IAErC;;OAEG;IAEH,gBAAgB,UAAS;IAEzB;;;OAGG;IAEH,aAAa,UAAS;IAEtB,IAAI,gBAAgB,WASnB;IAED,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE;IAkBtD,IAAI,aAAa,WAEhB;IAED,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAyD7D,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;CAalE;AAED,cAAM,8BAA8B;IAChC,MAAM,EAAE,cAAc,CAAC;IAEvB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAa;gBAErD,OAAO,EAAE;QACjB,MAAM,EAAE,cAAc,CAAC;KAC1B;IAID,SAAS;IAMT,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B,EAAE,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;CAqC9G;AAED,qBAAa,yBAAyB;IAClC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;;OAGG;IACH,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,aAAa,EAAE,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;IAE3D;;MAEE;IACF,mBAAmB,EAAE,8BAA8B,EAAE,CAAC;gBAE1C,OAAO,EAAE;QACjB,MAAM,EAAE,cAAc,CAAC;QACvB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;KAClC;IAUD,IAAI,IAAI,WAWP;IAED;;MAEE;IACF,IAAI,KAAK,WAGR;IAED,IAAI,mBAAmB,WAUtB;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,gBAAgB,WASnB;IAED,IAAI,cAAc,WAEjB;IAED,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAU/D,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAWxE,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IASvD,MAAM,CAAC,YAAY,EAAE,8BAA8B;IAInD,IAAI,qBAAqB,sDAqCxB;IAED,SAAS;CA4CZ"}
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BundleDiscountCalculation = exports.BundleDiscount = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const simple_encoding_1 = require("@simonbackx/simple-encoding");
6
+ const utility_1 = require("@stamhoofd/utility");
7
+ const uuid_1 = require("uuid");
6
8
  const GroupPriceDiscount_js_1 = require("./GroupPriceDiscount.js");
9
+ const calculateHungarianAlgorithm_js_1 = require("./helpers/calculateHungarianAlgorithm.js");
7
10
  const RegisterItem_js_1 = require("./members/checkout/RegisterItem.js");
8
- const uuid_1 = require("uuid");
9
- const TranslatedString_js_1 = require("./TranslatedString.js");
10
11
  const RegistrationWithPlatformMember_js_1 = require("./members/checkout/RegistrationWithPlatformMember.js");
11
- const utility_1 = require("@stamhoofd/utility");
12
+ const TranslatedString_js_1 = require("./TranslatedString.js");
12
13
  class BundleDiscount extends simple_encoding_1.AutoEncoder {
13
14
  constructor() {
14
15
  super(...arguments);
@@ -318,7 +319,7 @@ class BundleDiscountCalculation {
318
319
  }
319
320
  priceMatrix.push(row);
320
321
  }
321
- const solved = hungarian(priceMatrix);
322
+ const solved = (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(priceMatrix);
322
323
  for (const [index, item] of arr.entries()) {
323
324
  const nth = solved[index];
324
325
  const discount = priceMatrix[index][nth];
@@ -332,48 +333,4 @@ class BundleDiscountCalculation {
332
333
  }
333
334
  }
334
335
  exports.BundleDiscountCalculation = BundleDiscountCalculation;
335
- /**
336
- * Optimized algorithm to maximize the total discount
337
- * Returns an array where each index corresponds to the nth discount for each item
338
- * @param priceMatrix A 2D array where priceMatrix[i][j] represents the discount amount for the ith item at the jth position
339
- */
340
- function hungarian(priceMatrix) {
341
- // No items to process
342
- if (priceMatrix.length === 0) {
343
- return [];
344
- }
345
- const n = priceMatrix.length;
346
- const assignment = new Array(n).fill(0);
347
- // Pre-calculate max discounts for each item to avoid repeated calculations
348
- const itemMaxDiscounts = [];
349
- for (let i = 0; i < n; i++) {
350
- // Find max discount (skip position 0)
351
- let maxDiscount = 0;
352
- for (let j = 1; j < priceMatrix[i].length; j++) {
353
- maxDiscount = Math.max(maxDiscount, priceMatrix[i][j]);
354
- }
355
- itemMaxDiscounts.push({ index: i, maxDiscount });
356
- }
357
- // Sort indices by their maximum potential discount (descending)
358
- itemMaxDiscounts.sort((a, b) => b.maxDiscount - a.maxDiscount);
359
- // Track assigned positions
360
- const assigned = new Set();
361
- // For each item (in order of maximum discount potential)
362
- for (const { index: i } of itemMaxDiscounts) {
363
- let bestPos = 0;
364
- let bestDiscount = priceMatrix[i][0];
365
- // Find the best unassigned position for this item
366
- for (let j = 1; j < priceMatrix[i].length; j++) {
367
- if (!assigned.has(j) && priceMatrix[i][j] > bestDiscount) {
368
- bestPos = j;
369
- bestDiscount = priceMatrix[i][j];
370
- }
371
- }
372
- assignment[i] = bestPos;
373
- if (bestPos !== 0) {
374
- assigned.add(bestPos);
375
- }
376
- }
377
- return assignment;
378
- }
379
336
  //# sourceMappingURL=BundleDiscount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BundleDiscount.js","sourceRoot":"","sources":["../../src/BundleDiscount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BundleDiscount.js","sourceRoot":"","sources":["../../src/BundleDiscount.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { StamhoofdCompareValue, StamhoofdFilter } from './StamhoofdFilter';
1
+ import { StamhoofdCompareValue, StamhoofdFilter } from './StamhoofdFilter.js';
2
2
  export type FilterCompiler<Runner> = (filter: StamhoofdFilter, parentCompiler: FilterCompiler<Runner>, key: string) => Runner | undefined;
3
3
  export type RequiredFilterCompiler<Runner> = (filter: StamhoofdFilter, parentCompiler: FilterCompiler<Runner>) => Runner;
4
4
  export type FilterDefinitions<Runner> = {
@@ -1 +1 @@
1
- {"version":3,"file":"FilterCompilers.d.ts","sourceRoot":"","sources":["../../../src/filters/FilterCompilers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAmB3E,MAAM,MAAM,cAAc,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAC1I,MAAM,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;AAEzH,MAAM,MAAM,iBAAiB,CAAC,MAAM,IAAI;KACnC,CAAC,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;CACpE,CAAC;AAGF;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,2BAA2B,oCAA8B,CAAC;AAEvE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAsClH;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CA+B/G;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,qBAAqB,CA4BxE"}
1
+ {"version":3,"file":"FilterCompilers.d.ts","sourceRoot":"","sources":["../../../src/filters/FilterCompilers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAmB9E,MAAM,MAAM,cAAc,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAC1I,MAAM,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;AAEzH,MAAM,MAAM,iBAAiB,CAAC,MAAM,IAAI;KACnC,CAAC,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;CACpE,CAAC;AAGF;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,2BAA2B,oCAA8B,CAAC;AAEvE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAsClH;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CA+B/G;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,qBAAqB,CA4BxE"}
@@ -1,5 +1,5 @@
1
- import { MemberPlatformMembership } from '../members/MemberPlatformMembership';
2
- import { ContinuousMembershipStatus, MembershipStatus } from '../members/MembershipStatus';
1
+ import { MemberPlatformMembership } from '../members/MemberPlatformMembership.js';
2
+ import { ContinuousMembershipStatus, MembershipStatus } from '../members/MembershipStatus.js';
3
3
  export declare class MemberPlatformMembershipHelper {
4
4
  static getStatus(memberships: MemberPlatformMembership[]): MembershipStatus;
5
5
  static getContinuousMembershipStatus({ memberships, start, end }: {
@@ -1 +1 @@
1
- {"version":3,"file":"MemberPlatformMembershipHelper.d.ts","sourceRoot":"","sources":["../../../src/helpers/MemberPlatformMembershipHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE3F,qBAAa,8BAA8B;IACvC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,wBAAwB,EAAE;IAyCxD,MAAM,CAAC,6BAA6B,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;QAAC,KAAK,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,GAAG,0BAA0B;IAkClK,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,wBAAwB,EAAE,GAAG,OAAO;CAI/E"}
1
+ {"version":3,"file":"MemberPlatformMembershipHelper.d.ts","sourceRoot":"","sources":["../../../src/helpers/MemberPlatformMembershipHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAE9F,qBAAa,8BAA8B;IACvC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,wBAAwB,EAAE;IAyCxD,MAAM,CAAC,6BAA6B,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;QAAC,KAAK,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,GAAG,0BAA0B;IAkClK,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,wBAAwB,EAAE,GAAG,OAAO;CAI/E"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MemberPlatformMembershipHelper = void 0;
4
- const MembershipStatus_1 = require("../members/MembershipStatus");
4
+ const MembershipStatus_js_1 = require("../members/MembershipStatus.js");
5
5
  class MemberPlatformMembershipHelper {
6
6
  static getStatus(memberships) {
7
- let status = MembershipStatus_1.MembershipStatus.Inactive;
7
+ let status = MembershipStatus_js_1.MembershipStatus.Inactive;
8
8
  const now = new Date();
9
9
  for (const membership of memberships) {
10
10
  if (membership.endDate && membership.endDate < now) {
@@ -14,22 +14,22 @@ class MemberPlatformMembershipHelper {
14
14
  continue;
15
15
  }
16
16
  if (membership.expireDate && membership.expireDate < now) {
17
- if (status === MembershipStatus_1.MembershipStatus.Inactive) {
18
- status = MembershipStatus_1.MembershipStatus.Expiring;
17
+ if (status === MembershipStatus_js_1.MembershipStatus.Inactive) {
18
+ status = MembershipStatus_js_1.MembershipStatus.Expiring;
19
19
  }
20
20
  continue;
21
21
  }
22
22
  const isTemporary = membership.endDate.getTime() - membership.startDate.getTime() < 1000 * 60 * 60 * 24 * 31;
23
- if (status === MembershipStatus_1.MembershipStatus.Inactive || ((status === MembershipStatus_1.MembershipStatus.Expiring || status === MembershipStatus_1.MembershipStatus.Temporary) && !isTemporary)) {
23
+ if (status === MembershipStatus_js_1.MembershipStatus.Inactive || ((status === MembershipStatus_js_1.MembershipStatus.Expiring || status === MembershipStatus_js_1.MembershipStatus.Temporary) && !isTemporary)) {
24
24
  if (isTemporary) {
25
- status = MembershipStatus_1.MembershipStatus.Temporary;
25
+ status = MembershipStatus_js_1.MembershipStatus.Temporary;
26
26
  }
27
27
  else {
28
28
  if (membership.trialUntil && membership.trialUntil > now) {
29
- status = MembershipStatus_1.MembershipStatus.Trial;
29
+ status = MembershipStatus_js_1.MembershipStatus.Trial;
30
30
  }
31
31
  else {
32
- status = MembershipStatus_1.MembershipStatus.Active;
32
+ status = MembershipStatus_js_1.MembershipStatus.Active;
33
33
  break;
34
34
  }
35
35
  }
@@ -53,17 +53,17 @@ class MemberPlatformMembershipHelper {
53
53
  }
54
54
  // there is a gap -> partially covered
55
55
  else {
56
- return MembershipStatus_1.ContinuousMembershipStatus.Partial;
56
+ return MembershipStatus_js_1.ContinuousMembershipStatus.Partial;
57
57
  }
58
58
  }
59
59
  if (coveredDate >= end) {
60
- return MembershipStatus_1.ContinuousMembershipStatus.Full;
60
+ return MembershipStatus_js_1.ContinuousMembershipStatus.Full;
61
61
  }
62
62
  // if there is at least one membership in the period
63
63
  if (sorted.length > 0) {
64
- return MembershipStatus_1.ContinuousMembershipStatus.Partial;
64
+ return MembershipStatus_js_1.ContinuousMembershipStatus.Partial;
65
65
  }
66
- return MembershipStatus_1.ContinuousMembershipStatus.None;
66
+ return MembershipStatus_js_1.ContinuousMembershipStatus.None;
67
67
  }
68
68
  static hasFutureMembership(memberships) {
69
69
  const now = new Date();
@@ -1 +1 @@
1
- {"version":3,"file":"MemberPlatformMembershipHelper.js","sourceRoot":"","sources":["../../../src/helpers/MemberPlatformMembershipHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemberPlatformMembershipHelper.js","sourceRoot":"","sources":["../../../src/helpers/MemberPlatformMembershipHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Optimized algorithm to maximize the total discount
3
+ * Returns an array where each index corresponds to the nth discount for each item
4
+ * @param priceMatrix A 2D array where priceMatrix[i][j] represents the discount amount for the ith item at the jth position
5
+ */
6
+ export declare function calculateHungarianAlgorithm(priceMatrix: number[][]): number[];
7
+ //# sourceMappingURL=calculateHungarianAlgorithm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateHungarianAlgorithm.d.ts","sourceRoot":"","sources":["../../../src/helpers/calculateHungarianAlgorithm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAyF7E"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateHungarianAlgorithm = calculateHungarianAlgorithm;
4
+ /**
5
+ * Optimized algorithm to maximize the total discount
6
+ * Returns an array where each index corresponds to the nth discount for each item
7
+ * @param priceMatrix A 2D array where priceMatrix[i][j] represents the discount amount for the ith item at the jth position
8
+ */
9
+ function calculateHungarianAlgorithm(priceMatrix) {
10
+ // No items to process
11
+ if (priceMatrix.length === 0) {
12
+ return [];
13
+ }
14
+ if (priceMatrix.length > 500) {
15
+ throw new Error('Too many items to process. Maximum is 500.');
16
+ }
17
+ // Convert to cost minimization problem by negating values (since we want to maximize discount)
18
+ const C = priceMatrix.map(row => row.map(val => -val));
19
+ const J = C.length; // height of the cost matrix
20
+ const W = C[0].length; // width of the cost matrix
21
+ if (J > W) {
22
+ throw new Error('Number of items cannot exceed number of positions');
23
+ }
24
+ // job[w] = job assigned to w-th worker, or -1 if no job assigned
25
+ // note: a W-th worker was added for convenience
26
+ const job = new Array(W + 1).fill(-1);
27
+ const ys = new Array(J).fill(0);
28
+ const yt = new Array(W + 1).fill(0); // potentials
29
+ const inf = Number.MAX_SAFE_INTEGER;
30
+ for (let jCur = 0; jCur < J; ++jCur) { // assign jCur-th job
31
+ let wCur = W;
32
+ job[wCur] = jCur;
33
+ // min reduced cost over edges from Z to worker w
34
+ const minTo = new Array(W + 1).fill(inf);
35
+ const prev = new Array(W + 1).fill(-1); // previous worker on alternating path
36
+ const inZ = new Array(W + 1).fill(false); // whether worker is in Z
37
+ while (job[wCur] !== -1) { // runs at most jCur + 1 times
38
+ inZ[wCur] = true;
39
+ const j = job[wCur];
40
+ let delta = inf;
41
+ let wNext = 0;
42
+ for (let w = 0; w < W; ++w) {
43
+ if (!inZ[w]) {
44
+ const q = C[j][w] - ys[j] - yt[w];
45
+ if (q < minTo[w]) {
46
+ minTo[w] = q;
47
+ prev[w] = wCur;
48
+ }
49
+ if (minTo[w] < delta) {
50
+ delta = minTo[w];
51
+ wNext = w;
52
+ }
53
+ }
54
+ }
55
+ // delta will always be nonnegative,
56
+ // except possibly during the first time this loop runs
57
+ // if any entries of C[jCur] are negative
58
+ for (let w = 0; w <= W; ++w) {
59
+ if (inZ[w]) {
60
+ ys[job[w]] += delta;
61
+ yt[w] -= delta;
62
+ }
63
+ else {
64
+ minTo[w] -= delta;
65
+ }
66
+ }
67
+ wCur = wNext;
68
+ }
69
+ // update assignments along alternating path
70
+ let w;
71
+ for (; wCur !== W; wCur = w) {
72
+ w = prev[wCur];
73
+ job[wCur] = job[w];
74
+ }
75
+ }
76
+ // Extract assignment indices for each job
77
+ const result = new Array(J);
78
+ for (let w = 0; w < W; ++w) {
79
+ if (job[w] !== -1) {
80
+ result[job[w]] = w;
81
+ }
82
+ }
83
+ return result;
84
+ }
85
+ //# sourceMappingURL=calculateHungarianAlgorithm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateHungarianAlgorithm.js","sourceRoot":"","sources":["../../../src/helpers/calculateHungarianAlgorithm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=calculateHungarianAlgorithm.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateHungarianAlgorithm.test.d.ts","sourceRoot":"","sources":["../../../src/helpers/calculateHungarianAlgorithm.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,291 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const calculateHungarianAlgorithm_js_1 = require("./calculateHungarianAlgorithm.js");
4
+ function test(matrix, expectedIndexes) {
5
+ const result = (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(matrix);
6
+ expect(result).toEqual(expectedIndexes);
7
+ }
8
+ function testOptimalSum(matrix) {
9
+ const result = (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(matrix);
10
+ // Verify result has correct length
11
+ expect(result).toHaveLength(matrix.length);
12
+ // Verify each index is used exactly once
13
+ const uniqueIndexes = new Set(result);
14
+ expect(uniqueIndexes.size).toBe(result.length);
15
+ // Verify all indexes are valid
16
+ result.forEach((colIndex, rowIndex) => {
17
+ expect(colIndex).toBeGreaterThanOrEqual(0);
18
+ expect(colIndex).toBeLessThan(matrix[rowIndex].length);
19
+ });
20
+ // Calculate sum for this assignment
21
+ const sum = result.reduce((total, colIndex, rowIndex) => {
22
+ return total + matrix[rowIndex][colIndex];
23
+ }, 0);
24
+ // Verify this is indeed optimal by checking all possible permutations for small matrices
25
+ if (matrix.length <= 10) {
26
+ const allPermutations = generatePermutations(Array.from({ length: Math.min(matrix.length, matrix[0].length) }, (_, i) => i));
27
+ let maxSum = -Infinity;
28
+ for (const perm of allPermutations) {
29
+ if (perm.length === matrix.length) {
30
+ const permSum = perm.reduce((total, colIndex, rowIndex) => {
31
+ return total + matrix[rowIndex][colIndex];
32
+ }, 0);
33
+ maxSum = Math.max(maxSum, permSum);
34
+ }
35
+ }
36
+ expect(sum).toBe(maxSum);
37
+ }
38
+ return { result, sum };
39
+ }
40
+ function generatePermutations(arr) {
41
+ if (arr.length <= 1)
42
+ return [arr];
43
+ const result = [];
44
+ for (let i = 0; i < arr.length; i++) {
45
+ const rest = [...arr.slice(0, i), ...arr.slice(i + 1)];
46
+ const perms = generatePermutations(rest);
47
+ for (const perm of perms) {
48
+ result.push([arr[i], ...perm]);
49
+ }
50
+ }
51
+ return result;
52
+ }
53
+ describe('calculateHungarianAlgorithm', () => {
54
+ it('should returns the highest possible combination', () => {
55
+ test([
56
+ [0, 10, 20],
57
+ [0, 30, 45],
58
+ [0, 50, 60],
59
+ ], [0, 2, 1]); // 45 + 50 = 95, which is the highest possible combination
60
+ });
61
+ describe('Handling indeterminate cases', () => {
62
+ it('when there are two equal options, it returns the lowest indexes', () => {
63
+ test([
64
+ [0, 10, 20],
65
+ [0, 30, 40],
66
+ [0, 50, 60],
67
+ ], [0, 1, 2]); // not 0, 2, 1
68
+ test([
69
+ [0, 10, 20],
70
+ [0, 50, 60],
71
+ [0, 30, 40],
72
+ ], [0, 1, 2]);
73
+ });
74
+ it('Last one in the list of indeterminate cases receives no discount 3x3', () => {
75
+ test([
76
+ [0, 10, 10],
77
+ [0, 10, 10],
78
+ [0, 10, 10],
79
+ ], [1, 2, 0]);
80
+ });
81
+ it('Last one in the list of indeterminate cases receives no discount 4x4', () => {
82
+ test([
83
+ [0, 10, 10, 10],
84
+ [0, 10, 10, 10],
85
+ [0, 10, 10, 10],
86
+ [0, 10, 10, 10],
87
+ ], [1, 2, 3, 0]);
88
+ });
89
+ it('Last two in the list of indeterminate cases receives no discount 4x4', () => {
90
+ test([
91
+ [0, 10, 10, 0],
92
+ [0, 10, 10, 0],
93
+ [0, 10, 10, 0],
94
+ [0, 10, 10, 0],
95
+ ], [1, 2, 0, 3]);
96
+ });
97
+ it('Last three in the list of indeterminate cases receives no discount 5x5', () => {
98
+ test([
99
+ [0, 10, 10, 0, 0],
100
+ [0, 10, 10, 0, 0],
101
+ [0, 10, 10, 0, 0],
102
+ [0, 10, 10, 0, 0],
103
+ [0, 10, 10, 0, 0],
104
+ ], [1, 2, 0, 3, 4]);
105
+ });
106
+ });
107
+ describe('Edge cases', () => {
108
+ it('should handle 1x1 matrix', () => {
109
+ test([[42]], [0]);
110
+ });
111
+ it('should handle 2x2 matrix', () => {
112
+ test([
113
+ [10, 5],
114
+ [3, 8],
115
+ ], [0, 1]);
116
+ });
117
+ it('should handle matrices with all zeros', () => {
118
+ test([
119
+ [0, 0, 0],
120
+ [0, 0, 0],
121
+ [0, 0, 0],
122
+ ], [0, 1, 2]); // always prefer the lowest indexes for first items
123
+ });
124
+ it('should handle matrices with negative values', () => {
125
+ test([
126
+ [-10, -5, -1],
127
+ [-3, -8, -2],
128
+ [-6, -4, -9],
129
+ ], [2, 0, 1]); // -1 + (-3) + (-4) = -8 is the maximum (least negative)
130
+ });
131
+ it('should handle matrices with mixed positive and negative values', () => {
132
+ testOptimalSum([
133
+ [10, -5, 3],
134
+ [-2, 8, 1],
135
+ [4, -1, 6],
136
+ ]);
137
+ });
138
+ });
139
+ describe('Larger matrices', () => {
140
+ it('should handle 4x4 matrix', () => {
141
+ testOptimalSum([
142
+ [82, 83, 69, 92],
143
+ [77, 37, 49, 92],
144
+ [11, 69, 5, 86],
145
+ [8, 9, 98, 23],
146
+ ]);
147
+ });
148
+ it('should handle 5x5 matrix', () => {
149
+ testOptimalSum([
150
+ [12, 7, 9, 15, 3],
151
+ [8, 14, 6, 11, 18],
152
+ [13, 5, 16, 2, 10],
153
+ [4, 17, 1, 8, 12],
154
+ [19, 3, 11, 7, 14],
155
+ ]);
156
+ });
157
+ it('should handle 6x6 matrix', () => {
158
+ testOptimalSum([
159
+ [23, 17, 31, 12, 8, 45],
160
+ [19, 28, 14, 33, 22, 11],
161
+ [36, 9, 25, 18, 41, 7],
162
+ [15, 34, 6, 29, 13, 38],
163
+ [42, 21, 39, 4, 27, 16],
164
+ [10, 35, 20, 46, 1, 32],
165
+ ]);
166
+ });
167
+ });
168
+ describe('Special patterns', () => {
169
+ it('should handle identity-like matrices (diagonal has highest values)', () => {
170
+ test([
171
+ [100, 1, 1],
172
+ [1, 100, 1],
173
+ [1, 1, 100],
174
+ ], [0, 1, 2]); // Should pick the diagonal
175
+ });
176
+ it('should handle anti-diagonal pattern', () => {
177
+ test([
178
+ [1, 1, 100],
179
+ [1, 100, 1],
180
+ [100, 1, 1],
181
+ ], [2, 1, 0]); // Should pick the anti-diagonal
182
+ });
183
+ it('should handle matrices with duplicate maximum values', () => {
184
+ testOptimalSum([
185
+ [50, 50, 10],
186
+ [10, 50, 50],
187
+ [50, 10, 50],
188
+ ]);
189
+ });
190
+ it('should handle increasing sequences', () => {
191
+ testOptimalSum([
192
+ [1, 2, 3, 4],
193
+ [2, 3, 4, 5],
194
+ [3, 4, 5, 6],
195
+ [4, 5, 6, 7],
196
+ ]);
197
+ });
198
+ it('should handle decreasing sequences', () => {
199
+ testOptimalSum([
200
+ [7, 6, 5, 4],
201
+ [6, 5, 4, 3],
202
+ [5, 4, 3, 2],
203
+ [4, 3, 2, 1],
204
+ ]);
205
+ });
206
+ });
207
+ describe('Performance and stress tests', () => {
208
+ it('should handle larger matrices correctly', () => {
209
+ const size = 10;
210
+ const matrix = Array.from({ length: size }, (_, i) => Array.from({ length: size }, (_, j) => Math.floor(Math.random() * 1000)));
211
+ testOptimalSum(matrix); // because it is 10x10 the result will still be checked against all permutations
212
+ }, 1000);
213
+ it('should handle larger matrices efficiently', () => {
214
+ const size = 500;
215
+ const matrix = Array.from({ length: size }, (_, i) => Array.from({ length: size }, (_, j) => Math.floor(Math.random() * 1000)));
216
+ testOptimalSum(matrix);
217
+ }, 1000);
218
+ it('throws at 501 matrix', () => {
219
+ const size = 501;
220
+ const matrix = Array.from({ length: size }, (_, i) => Array.from({ length: size }, (_, j) => Math.floor(Math.random() * 1000)));
221
+ expect(() => (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(matrix)).toThrow('Too many items to process. Maximum is 500.');
222
+ }, 1000);
223
+ it('should be deterministic (same input produces same output)', () => {
224
+ const matrix = [
225
+ [15, 23, 7, 31],
226
+ [12, 8, 25, 19],
227
+ [28, 16, 4, 22],
228
+ [9, 33, 18, 5],
229
+ ];
230
+ const result1 = (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(matrix);
231
+ const result2 = (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(matrix);
232
+ const result3 = (0, calculateHungarianAlgorithm_js_1.calculateHungarianAlgorithm)(matrix);
233
+ expect(result1).toEqual(result2);
234
+ expect(result2).toEqual(result3);
235
+ });
236
+ });
237
+ describe('Real-world scenarios', () => {
238
+ it('should handle cost minimization by negating values', () => {
239
+ // Original cost matrix (we want to minimize cost)
240
+ const costMatrix = [
241
+ [4, 6, 8],
242
+ [2, 9, 1],
243
+ [7, 3, 5],
244
+ ];
245
+ // Convert to maximization problem by negating
246
+ const maxMatrix = costMatrix.map(row => row.map(val => -val));
247
+ // Verify this gives minimum cost assignment
248
+ test(maxMatrix, [
249
+ 0,
250
+ 2,
251
+ 1,
252
+ ]);
253
+ });
254
+ it('should handle worker-task assignment scenario', () => {
255
+ // Productivity scores for workers assigned to tasks
256
+ const productivityMatrix = [
257
+ [85, 92, 78, 88], // Worker 1's productivity on tasks 1-4
258
+ [90, 76, 85, 82], // Worker 2's productivity on tasks 1-4
259
+ [78, 88, 92, 85], // Worker 3's productivity on tasks 1-4
260
+ [88, 85, 80, 90], // Worker 4's productivity on tasks 1-4
261
+ ];
262
+ testOptimalSum(productivityMatrix);
263
+ });
264
+ });
265
+ describe('Boundary value testing', () => {
266
+ it('should handle very large values', () => {
267
+ testOptimalSum([
268
+ [1000000, 999999, 1000001],
269
+ [999998, 1000002, 999997],
270
+ [1000003, 999996, 1000000],
271
+ ]);
272
+ });
273
+ it('should handle small values', () => {
274
+ testOptimalSum([
275
+ [1, 2, 3],
276
+ [2, 1, 4],
277
+ [3, 4, 1],
278
+ ]);
279
+ });
280
+ it('should handle zero and one combinations', () => {
281
+ test([
282
+ [0, 1, 0],
283
+ [1, 0, 1],
284
+ [0, 1, 0],
285
+ ], [
286
+ 1, 0, 2, // Last one doesn't receive a discount (least priority)
287
+ ]);
288
+ });
289
+ });
290
+ });
291
+ //# sourceMappingURL=calculateHungarianAlgorithm.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateHungarianAlgorithm.test.js","sourceRoot":"","sources":["../../../src/helpers/calculateHungarianAlgorithm.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { AutoEncoder } from '@simonbackx/simple-encoding';
2
- import { TranslatedString } from './TranslatedString';
2
+ import { TranslatedString } from './TranslatedString.js';
3
3
  export declare class AppliedRegistrationDiscount extends AutoEncoder {
4
4
  /**
5
5
  * Snapshot of the discount that was applied to this registration.
@@ -1 +1 @@
1
- {"version":3,"file":"AppliedRegistrationDiscount.d.ts","sourceRoot":"","sources":["../../../src/AppliedRegistrationDiscount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,2BAA4B,SAAQ,WAAW;IACxD;;;OAGG;IAEH,IAAI,mBAA4B;IAEhC;;;OAGG;IAEH,MAAM,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"AppliedRegistrationDiscount.d.ts","sourceRoot":"","sources":["../../../src/AppliedRegistrationDiscount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,2BAA4B,SAAQ,WAAW;IACxD;;;OAGG;IAEH,IAAI,mBAA4B;IAEhC;;;OAGG;IAEH,MAAM,EAAE,MAAM,CAAC;CAClB"}
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { AutoEncoder, field, IntegerDecoder } from '@simonbackx/simple-encoding';
3
- import { TranslatedString } from './TranslatedString';
3
+ import { TranslatedString } from './TranslatedString.js';
4
4
  export class AppliedRegistrationDiscount extends AutoEncoder {
5
5
  constructor() {
6
6
  super(...arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"AppliedRegistrationDiscount.js","sourceRoot":"","sources":["../../../src/AppliedRegistrationDiscount.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,OAAO,2BAA4B,SAAQ,WAAW;IAA5D;;QACI;;;WAGG;QAEH,SAAI,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAQpC,CAAC;CAAA;AARG;IADC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yDACF;AAOhC;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;2DACpB"}
1
+ {"version":3,"file":"AppliedRegistrationDiscount.js","sourceRoot":"","sources":["../../../src/AppliedRegistrationDiscount.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,OAAO,2BAA4B,SAAQ,WAAW;IAA5D;;QACI;;;WAGG;QAEH,SAAI,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAQpC,CAAC;CAAA;AARG;IADC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yDACF;AAOhC;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;2DACpB"}
@@ -3,9 +3,9 @@ import { Group } from './Group.js';
3
3
  import { GroupPriceDiscount } from './GroupPriceDiscount.js';
4
4
  import { type RegisterCart } from './members/checkout/RegisterCart.js';
5
5
  import { RegisterItem } from './members/checkout/RegisterItem.js';
6
+ import { RegistrationWithPlatformMember } from './members/checkout/RegistrationWithPlatformMember.js';
6
7
  import { type PlatformMember } from './members/PlatformMember.js';
7
8
  import { TranslatedString } from './TranslatedString.js';
8
- import { RegistrationWithPlatformMember } from './members/checkout/RegistrationWithPlatformMember.js';
9
9
  export declare class BundleDiscount extends AutoEncoder {
10
10
  id: string;
11
11
  name: TranslatedString;
@@ -1 +1 @@
1
- {"version":3,"file":"BundleDiscount.d.ts","sourceRoot":"","sources":["../../../src/BundleDiscount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAC9G,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAEvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AAGtG,qBAAa,cAAe,SAAQ,WAAW;IAE3C,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,mBAA4B;IAGhC,SAAS,EAAE,kBAAkB,EAAE,CAAM;IAErC;;OAEG;IAEH,gBAAgB,UAAS;IAEzB;;;OAGG;IAEH,aAAa,UAAS;IAEtB,IAAI,gBAAgB,WASnB;IAED,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE;IAkBtD,IAAI,aAAa,WAEhB;IAED,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAyD7D,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;CAalE;AAED,cAAM,8BAA8B;IAChC,MAAM,EAAE,cAAc,CAAC;IAEvB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAa;gBAErD,OAAO,EAAE;QACjB,MAAM,EAAE,cAAc,CAAC;KAC1B;IAID,SAAS;IAMT,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B,EAAE,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;CAqC9G;AAED,qBAAa,yBAAyB;IAClC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;;OAGG;IACH,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,aAAa,EAAE,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;IAE3D;;MAEE;IACF,mBAAmB,EAAE,8BAA8B,EAAE,CAAC;gBAE1C,OAAO,EAAE;QACjB,MAAM,EAAE,cAAc,CAAC;QACvB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;KAClC;IAUD,IAAI,IAAI,WAWP;IAED;;MAEE;IACF,IAAI,KAAK,WAGR;IAED,IAAI,mBAAmB,WAUtB;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,gBAAgB,WASnB;IAED,IAAI,cAAc,WAEjB;IAED,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAU/D,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAWxE,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IASvD,MAAM,CAAC,YAAY,EAAE,8BAA8B;IAInD,IAAI,qBAAqB,sDAqCxB;IAED,SAAS;CA4CZ"}
1
+ {"version":3,"file":"BundleDiscount.d.ts","sourceRoot":"","sources":["../../../src/BundleDiscount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAG9G,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,cAAe,SAAQ,WAAW;IAE3C,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,mBAA4B;IAGhC,SAAS,EAAE,kBAAkB,EAAE,CAAM;IAErC;;OAEG;IAEH,gBAAgB,UAAS;IAEzB;;;OAGG;IAEH,aAAa,UAAS;IAEtB,IAAI,gBAAgB,WASnB;IAED,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE;IAkBtD,IAAI,aAAa,WAEhB;IAED,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAyD7D,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;CAalE;AAED,cAAM,8BAA8B;IAChC,MAAM,EAAE,cAAc,CAAC;IAEvB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAa;gBAErD,OAAO,EAAE;QACjB,MAAM,EAAE,cAAc,CAAC;KAC1B;IAID,SAAS;IAMT,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B,EAAE,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;CAqC9G;AAED,qBAAa,yBAAyB;IAClC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;;OAGG;IACH,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,aAAa,EAAE,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;IAE3D;;MAEE;IACF,mBAAmB,EAAE,8BAA8B,EAAE,CAAC;gBAE1C,OAAO,EAAE;QACjB,MAAM,EAAE,cAAc,CAAC;QACvB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;KAClC;IAUD,IAAI,IAAI,WAWP;IAED;;MAEE;IACF,IAAI,KAAK,WAGR;IAED,IAAI,mBAAmB,WAUtB;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,gBAAgB,WASnB;IAED,IAAI,cAAc,WAEjB;IAED,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAU/D,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IAWxE,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,8BAA8B;IASvD,MAAM,CAAC,YAAY,EAAE,8BAA8B;IAInD,IAAI,qBAAqB,sDAqCxB;IAED,SAAS;CA4CZ"}
@@ -1,11 +1,12 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { ArrayDecoder, AutoEncoder, BooleanDecoder, field, StringDecoder } from '@simonbackx/simple-encoding';
3
+ import { Sorter } from '@stamhoofd/utility';
4
+ import { v4 as uuidv4 } from 'uuid';
3
5
  import { GroupPriceDiscount } from './GroupPriceDiscount.js';
6
+ import { calculateHungarianAlgorithm } from './helpers/calculateHungarianAlgorithm.js';
4
7
  import { RegisterItem } from './members/checkout/RegisterItem.js';
5
- import { v4 as uuidv4 } from 'uuid';
6
- import { TranslatedString } from './TranslatedString.js';
7
8
  import { RegistrationWithPlatformMember } from './members/checkout/RegistrationWithPlatformMember.js';
8
- import { Sorter } from '@stamhoofd/utility';
9
+ import { TranslatedString } from './TranslatedString.js';
9
10
  export class BundleDiscount extends AutoEncoder {
10
11
  constructor() {
11
12
  super(...arguments);
@@ -314,7 +315,7 @@ export class BundleDiscountCalculation {
314
315
  }
315
316
  priceMatrix.push(row);
316
317
  }
317
- const solved = hungarian(priceMatrix);
318
+ const solved = calculateHungarianAlgorithm(priceMatrix);
318
319
  for (const [index, item] of arr.entries()) {
319
320
  const nth = solved[index];
320
321
  const discount = priceMatrix[index][nth];
@@ -327,48 +328,4 @@ export class BundleDiscountCalculation {
327
328
  }
328
329
  }
329
330
  }
330
- /**
331
- * Optimized algorithm to maximize the total discount
332
- * Returns an array where each index corresponds to the nth discount for each item
333
- * @param priceMatrix A 2D array where priceMatrix[i][j] represents the discount amount for the ith item at the jth position
334
- */
335
- function hungarian(priceMatrix) {
336
- // No items to process
337
- if (priceMatrix.length === 0) {
338
- return [];
339
- }
340
- const n = priceMatrix.length;
341
- const assignment = new Array(n).fill(0);
342
- // Pre-calculate max discounts for each item to avoid repeated calculations
343
- const itemMaxDiscounts = [];
344
- for (let i = 0; i < n; i++) {
345
- // Find max discount (skip position 0)
346
- let maxDiscount = 0;
347
- for (let j = 1; j < priceMatrix[i].length; j++) {
348
- maxDiscount = Math.max(maxDiscount, priceMatrix[i][j]);
349
- }
350
- itemMaxDiscounts.push({ index: i, maxDiscount });
351
- }
352
- // Sort indices by their maximum potential discount (descending)
353
- itemMaxDiscounts.sort((a, b) => b.maxDiscount - a.maxDiscount);
354
- // Track assigned positions
355
- const assigned = new Set();
356
- // For each item (in order of maximum discount potential)
357
- for (const { index: i } of itemMaxDiscounts) {
358
- let bestPos = 0;
359
- let bestDiscount = priceMatrix[i][0];
360
- // Find the best unassigned position for this item
361
- for (let j = 1; j < priceMatrix[i].length; j++) {
362
- if (!assigned.has(j) && priceMatrix[i][j] > bestDiscount) {
363
- bestPos = j;
364
- bestDiscount = priceMatrix[i][j];
365
- }
366
- }
367
- assignment[i] = bestPos;
368
- if (bestPos !== 0) {
369
- assigned.add(bestPos);
370
- }
371
- }
372
- return assignment;
373
- }
374
331
  //# sourceMappingURL=BundleDiscount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BundleDiscount.js","sourceRoot":"","sources":["../../../src/BundleDiscount.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,OAAO,cAAe,SAAQ,WAAW;IAA/C;;QAKI,SAAI,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAGhC,cAAS,GAAyB,EAAE,CAAC,CAAC,2BAA2B;QAEjE;;WAEG;QAEH,qBAAgB,GAAG,KAAK,CAAC;QAEzB;;;WAGG;QAEH,kBAAa,GAAG,KAAK,CAAC;IAyG1B,CAAC;IAvGG,IAAI,gBAAgB;QAChB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO,EAAE,CAAC,sCAAsC,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,EAAE,CAAC,sCAAsC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,EAAE,CAAC,sCAAsC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,SAA+B;QAClD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC,sCAAsC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC,sCAAsC,EAAE;oBAC9C,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;oBAClB,GAAG,EAAE,CAAC,GAAG,CAAC;iBACb,CAAC,CAAC;YACP,CAAC;YACD,OAAO,EAAE,CAAC,sCAAsC,EAAE;gBAC9C,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;gBAClB,GAAG,EAAE,CAAC,GAAG,CAAC;aACb,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,aAAa;QACb,OAAO,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS,CAAC,IAAkB;QACxB,MAAM,KAAK,GAAG,IAAI,8BAA8B,CAAC;YAC7C,MAAM,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAClD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAEvB,KAAK,MAAM,mBAAmB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;gBACxD,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzD,MAAM,EAAE,GAAG,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;YACxD,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACpC,CAAC;QAED,oGAAoG;QACpG,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;QACjD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QAExC,KAAK,MAAM,MAAM,IAAI;YACjB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7C,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;SAC9E,EAAE,CAAC;YACA,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,SAAS;YACb,CAAC;YACD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAE3B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC/B,SAAS;gBACb,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAE7B,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxD,MAAM,8BAA8B,GAAG,IAAI,8BAA8B,CAAC;wBACtE,YAAY;wBACZ,MAAM;qBACT,CAAC,CAAC;oBACH,MAAM,EAAE,GAAG,KAAK,CAAC,iBAAiB,CAAC,8BAA8B,EAAE;wBAC/D,2HAA2H;wBAC3H,YAAY,EAAE,IAAI;qBACrB,CAAC,CAAC;oBACH,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;gBAC7D,CAAC;YACL,CAAC;QACL,CAAC;QAED,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,IAAmD;QAC3D,MAAM,UAAU,GAAG,IAAI,YAAY,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC1H,IAAI,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,IAAI,YAAY,8BAA8B,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3C,gFAAgF;gBAChF,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA5HG;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;0CACrD;AAGX;IADC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;4CACF;AAGhC;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC;iDACpB;AAMrC;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;wDACV;AAOzB;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;qDACb;AA2G1B,MAAM,8BAA8B;IAKhC,YAAY,OAEX;QAJD,iBAAY,GAA2C,IAAI,GAAG,EAAE,CAAC;QAK7D,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,SAAS;QACL,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,WAAW,CAAC,SAAS,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,IAAmD,EAAE,OAAoC;QACvG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;QAC7D,IAAI,KAAK,GAAiB,IAAI,CAAC;QAC/B,IAAI,MAAM,GAA0B,IAAI,CAAC;QAEzC,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC5B,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,CAAC;iBACI,CAAC;gBACF,uCAAuC;YAC3C,CAAC;QACL,CAAC;aACI,CAAC;YACF,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACrB,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,MAAM,CAAC,GAAG,IAAI,yBAAyB,CAAC;gBACpC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK;gBACL,MAAM;aACT,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,CAAC;QACb,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ;AAED,MAAM,OAAO,yBAAyB;IAsBlC,YAAY,OAIX;;QACG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,IAAI,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAI,CAAC;QAErC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,IAAI;QACJ,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;MAEE;IACF,IAAI,KAAK;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;cACpD,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,mBAAmB;;QACnB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YACnD,CAAC,IAAI,MAAA,MAAA,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,0CAAE,MAAM,mCAAI,CAAC,CAAC;QAC9E,CAAC;QAED,mEAAmE;QACnE,wHAAwH;QACxH,wFAAwF;QACxF,OAAO,CAAC,CAAC;IACb,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC;IACjD,CAAC;IAED,IAAI,gBAAgB;QAChB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,YAAY;gBACZ,GAAG,IAAI,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;IACjD,CAAC;IAED,WAAW,CAAC,IAAmD;;QAC3D,IAAI,IAAI,YAAY,YAAY,EAAE,CAAC;YAC/B,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,CAAC,CAAC;QACrC,CAAC;aACI,IAAI,IAAI,YAAY,8BAA8B,EAAE,CAAC;YACtD,OAAO,CAAC,MAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,oBAAoB,CAAC,IAAmD;QACpE,uDAAuD;QACvD,IAAI,IAAI,YAAY,8BAA8B,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjF,OAAO;YACX,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,GAAG,CAAC,IAAmD;QACnD,IAAI,IAAI,YAAY,8BAA8B,EAAE,CAAC;YACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;aACI,IAAI,IAAI,YAAY,YAAY,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,MAAM,CAAC,YAA4C;QAC/C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,qBAAqB;QACrB,4FAA4F;QAC5F,+DAA+D;QAC/D,qBAAqB;QACrB,8FAA8F;QAE9F,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,MAAM,oBAAoB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;YACjD,OAAO;gBACH,IAAI;gBACJ,eAAe,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,0CAAE,MAAM,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnJ,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;aACjH,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,MAAM,4BAA4B,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;;YACpE,OAAO;gBACH,IAAI,EAAE,YAAY;gBAClB,eAAe,EAAE,MAAA,MAAA,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,0CAAE,MAAM,mCAAI,CAAC;gBACrF,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,SAAS;aACjD,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG;YACT,GAAG,oBAAoB;YACvB,GAAG,4BAA4B;SAClC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACZ,OAAO,MAAM,CAAC,KAAK,CACf,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,eAAe,CAAC,EAC1D,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAC/C,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,SAAS;;QACL,6DAA6D;QAC7D,uDAAuD;QACvD,uEAAuE;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACvC,MAAM,WAAW,GAAe,EAAE,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;YACrB,uJAAuJ;YACvJ,MAAM,KAAK,GAAG,IAAI,YAAY,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxJ,MAAM,SAAS,GAAG,IAAI,YAAY,YAAY;gBAC1C,CAAC,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,0CAAE,eAAe,mCAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;gBACjG,CAAC,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,0CAAE,eAAe,mCAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEnH,MAAM,GAAG,GAAa,EAAE,CAAC;YAEzB,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;gBAClC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACd,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACZ,SAAS;gBACb,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAA,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,mCAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc;gBACxF,MAAM,UAAU,GAAG,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzB,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QAEtC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YAEzC,IAAI,IAAI,YAAY,8BAA8B,EAAE,CAAC;gBACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC3C,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AACD;;;;GAIG;AACH,SAAS,SAAS,CAAC,WAAuB;IACtC,sBAAsB;IACtB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;IAC7B,MAAM,UAAU,GAAa,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAElD,2EAA2E;IAC3E,MAAM,gBAAgB,GAA6C,EAAE,CAAC;IACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,sCAAsC;QACtC,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,gEAAgE;IAChE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;IAE/D,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,yDAAyD;IACzD,KAAK,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,gBAAgB,EAAE,CAAC;QAC1C,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErC,kDAAkD;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,CAAC;gBACvD,OAAO,GAAG,CAAC,CAAC;gBACZ,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,CAAC;QACL,CAAC;QAED,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QACxB,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAChB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"BundleDiscount.js","sourceRoot":"","sources":["../../../src/BundleDiscount.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { StamhoofdCompareValue, StamhoofdFilter } from './StamhoofdFilter';
1
+ import { StamhoofdCompareValue, StamhoofdFilter } from './StamhoofdFilter.js';
2
2
  export type FilterCompiler<Runner> = (filter: StamhoofdFilter, parentCompiler: FilterCompiler<Runner>, key: string) => Runner | undefined;
3
3
  export type RequiredFilterCompiler<Runner> = (filter: StamhoofdFilter, parentCompiler: FilterCompiler<Runner>) => Runner;
4
4
  export type FilterDefinitions<Runner> = {
@@ -1 +1 @@
1
- {"version":3,"file":"FilterCompilers.d.ts","sourceRoot":"","sources":["../../../../src/filters/FilterCompilers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAmB3E,MAAM,MAAM,cAAc,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAC1I,MAAM,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;AAEzH,MAAM,MAAM,iBAAiB,CAAC,MAAM,IAAI;KACnC,CAAC,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;CACpE,CAAC;AAGF;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,2BAA2B,oCAA8B,CAAC;AAEvE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAsClH;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CA+B/G;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,qBAAqB,CA4BxE"}
1
+ {"version":3,"file":"FilterCompilers.d.ts","sourceRoot":"","sources":["../../../../src/filters/FilterCompilers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAmB9E,MAAM,MAAM,cAAc,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAC1I,MAAM,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;AAEzH,MAAM,MAAM,iBAAiB,CAAC,MAAM,IAAI;KACnC,CAAC,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;CACpE,CAAC;AAGF;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,2BAA2B,oCAA8B,CAAC;AAEvE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAsClH;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CA+B/G;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,qBAAqB,CA4BxE"}
@@ -1,5 +1,5 @@
1
- import { MemberPlatformMembership } from '../members/MemberPlatformMembership';
2
- import { ContinuousMembershipStatus, MembershipStatus } from '../members/MembershipStatus';
1
+ import { MemberPlatformMembership } from '../members/MemberPlatformMembership.js';
2
+ import { ContinuousMembershipStatus, MembershipStatus } from '../members/MembershipStatus.js';
3
3
  export declare class MemberPlatformMembershipHelper {
4
4
  static getStatus(memberships: MemberPlatformMembership[]): MembershipStatus;
5
5
  static getContinuousMembershipStatus({ memberships, start, end }: {
@@ -1 +1 @@
1
- {"version":3,"file":"MemberPlatformMembershipHelper.d.ts","sourceRoot":"","sources":["../../../../src/helpers/MemberPlatformMembershipHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE3F,qBAAa,8BAA8B;IACvC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,wBAAwB,EAAE;IAyCxD,MAAM,CAAC,6BAA6B,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;QAAC,KAAK,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,GAAG,0BAA0B;IAkClK,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,wBAAwB,EAAE,GAAG,OAAO;CAI/E"}
1
+ {"version":3,"file":"MemberPlatformMembershipHelper.d.ts","sourceRoot":"","sources":["../../../../src/helpers/MemberPlatformMembershipHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAE9F,qBAAa,8BAA8B;IACvC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,wBAAwB,EAAE;IAyCxD,MAAM,CAAC,6BAA6B,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;QAAC,KAAK,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,GAAG,0BAA0B;IAkClK,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,wBAAwB,EAAE,GAAG,OAAO;CAI/E"}
@@ -1,4 +1,4 @@
1
- import { ContinuousMembershipStatus, MembershipStatus } from '../members/MembershipStatus';
1
+ import { ContinuousMembershipStatus, MembershipStatus } from '../members/MembershipStatus.js';
2
2
  export class MemberPlatformMembershipHelper {
3
3
  static getStatus(memberships) {
4
4
  let status = MembershipStatus.Inactive;
@@ -1 +1 @@
1
- {"version":3,"file":"MemberPlatformMembershipHelper.js","sourceRoot":"","sources":["../../../../src/helpers/MemberPlatformMembershipHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemberPlatformMembershipHelper.js","sourceRoot":"","sources":["../../../../src/helpers/MemberPlatformMembershipHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Optimized algorithm to maximize the total discount
3
+ * Returns an array where each index corresponds to the nth discount for each item
4
+ * @param priceMatrix A 2D array where priceMatrix[i][j] represents the discount amount for the ith item at the jth position
5
+ */
6
+ export declare function calculateHungarianAlgorithm(priceMatrix: number[][]): number[];
7
+ //# sourceMappingURL=calculateHungarianAlgorithm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateHungarianAlgorithm.d.ts","sourceRoot":"","sources":["../../../../src/helpers/calculateHungarianAlgorithm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAyF7E"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Optimized algorithm to maximize the total discount
3
+ * Returns an array where each index corresponds to the nth discount for each item
4
+ * @param priceMatrix A 2D array where priceMatrix[i][j] represents the discount amount for the ith item at the jth position
5
+ */
6
+ export function calculateHungarianAlgorithm(priceMatrix) {
7
+ // No items to process
8
+ if (priceMatrix.length === 0) {
9
+ return [];
10
+ }
11
+ if (priceMatrix.length > 500) {
12
+ throw new Error('Too many items to process. Maximum is 500.');
13
+ }
14
+ // Convert to cost minimization problem by negating values (since we want to maximize discount)
15
+ const C = priceMatrix.map(row => row.map(val => -val));
16
+ const J = C.length; // height of the cost matrix
17
+ const W = C[0].length; // width of the cost matrix
18
+ if (J > W) {
19
+ throw new Error('Number of items cannot exceed number of positions');
20
+ }
21
+ // job[w] = job assigned to w-th worker, or -1 if no job assigned
22
+ // note: a W-th worker was added for convenience
23
+ const job = new Array(W + 1).fill(-1);
24
+ const ys = new Array(J).fill(0);
25
+ const yt = new Array(W + 1).fill(0); // potentials
26
+ const inf = Number.MAX_SAFE_INTEGER;
27
+ for (let jCur = 0; jCur < J; ++jCur) { // assign jCur-th job
28
+ let wCur = W;
29
+ job[wCur] = jCur;
30
+ // min reduced cost over edges from Z to worker w
31
+ const minTo = new Array(W + 1).fill(inf);
32
+ const prev = new Array(W + 1).fill(-1); // previous worker on alternating path
33
+ const inZ = new Array(W + 1).fill(false); // whether worker is in Z
34
+ while (job[wCur] !== -1) { // runs at most jCur + 1 times
35
+ inZ[wCur] = true;
36
+ const j = job[wCur];
37
+ let delta = inf;
38
+ let wNext = 0;
39
+ for (let w = 0; w < W; ++w) {
40
+ if (!inZ[w]) {
41
+ const q = C[j][w] - ys[j] - yt[w];
42
+ if (q < minTo[w]) {
43
+ minTo[w] = q;
44
+ prev[w] = wCur;
45
+ }
46
+ if (minTo[w] < delta) {
47
+ delta = minTo[w];
48
+ wNext = w;
49
+ }
50
+ }
51
+ }
52
+ // delta will always be nonnegative,
53
+ // except possibly during the first time this loop runs
54
+ // if any entries of C[jCur] are negative
55
+ for (let w = 0; w <= W; ++w) {
56
+ if (inZ[w]) {
57
+ ys[job[w]] += delta;
58
+ yt[w] -= delta;
59
+ }
60
+ else {
61
+ minTo[w] -= delta;
62
+ }
63
+ }
64
+ wCur = wNext;
65
+ }
66
+ // update assignments along alternating path
67
+ let w;
68
+ for (; wCur !== W; wCur = w) {
69
+ w = prev[wCur];
70
+ job[wCur] = job[w];
71
+ }
72
+ }
73
+ // Extract assignment indices for each job
74
+ const result = new Array(J);
75
+ for (let w = 0; w < W; ++w) {
76
+ if (job[w] !== -1) {
77
+ result[job[w]] = w;
78
+ }
79
+ }
80
+ return result;
81
+ }
82
+ //# sourceMappingURL=calculateHungarianAlgorithm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateHungarianAlgorithm.js","sourceRoot":"","sources":["../../../../src/helpers/calculateHungarianAlgorithm.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/structures",
3
- "version": "2.84.0",
3
+ "version": "2.84.2",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./esm/dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -44,5 +44,5 @@
44
44
  "publishConfig": {
45
45
  "access": "public"
46
46
  },
47
- "gitHead": "99cf8650892792358d7516bb83458642d886dee7"
47
+ "gitHead": "27083cc1d641a8182a51370f982858c073873c66"
48
48
  }