orc-shared 5.10.0-dev.1 → 5.10.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.variantPropertyMapKvaSelector = exports.variantPropertyKeyValuesSelector = exports.selectCurrentLookupDetails = exports.profileAttributeGroupsSelector = exports.productPropertyValuesSelector = exports.productPropertyValueSelector = exports.productPropertyMapSelector = exports.orderLookupsNextPageToLoad = exports.orderLookupsListCurrentInfo = exports.newProfileDefinitionNameSelector = exports.newProfileDefinitionInstanceSelector = exports.namedLookupValuesSelector = exports.namedLookupSelector = exports.namedLookupLocalizedValuesSelector = exports.namedLookupLocalizedSelector = exports.mappedOrderLookupsListSelector = exports.mappedLookupsListSelector = exports.mappedLookupListSelector = exports.mappedDefinitionsListSelector = exports.mappedDefinitionEntity = exports.mappedDefinitionAttributesSelector = exports.mappedCustomDefinitionsListSelector = exports.mappedBaseDefinitionsListSelector = exports.lookupsNextPageToLoad = exports.lookupsListSelector = exports.lookupsListCurrentInfo = exports.lookupSelector = exports.lookupExistAndIsActiveSelector = exports.lookupByNameSelector = exports.groupedCustomAttributesDefinitionSelector = exports.definitionEntityCustomAttributesSelector = exports.definitionEntityBaseAttributesSelector = exports.definitionEntity = exports.customProfileTypesSelector = exports.customAttributesSelector = exports.customAttributesDefinitionSelector = exports.baseAttributesSelector = void 0;
4
+ exports.variantPropertyMapKvaSelector = exports.variantPropertyKeyValuesSelector = exports.selectCurrentLookupDetails = exports.profileAttributeGroupsSelector = exports.productPropertyValuesSelector = exports.productPropertyValueSelector = exports.productPropertyMapSelector = exports.orderLookupsNextPageToLoad = exports.orderLookupsListCurrentInfo = exports.newProfileDefinitionNameSelector = exports.newProfileDefinitionInstanceSelector = exports.namedLookupsValuesSelector = exports.namedLookupValuesSelector = exports.namedLookupSelector = exports.namedLookupLocalizedValuesSelector = exports.namedLookupLocalizedSelector = exports.mappedOrderLookupsListSelector = exports.mappedLookupsListSelector = exports.mappedLookupListSelector = exports.mappedDefinitionsListSelector = exports.mappedDefinitionEntity = exports.mappedDefinitionAttributesSelector = exports.mappedCustomDefinitionsListSelector = exports.mappedBaseDefinitionsListSelector = exports.lookupsNextPageToLoad = exports.lookupsListSelector = exports.lookupsListCurrentInfo = exports.lookupSelector = exports.lookupExistAndIsActiveSelector = exports.lookupByNameSelector = exports.groupedCustomAttributesDefinitionSelector = exports.definitionEntityCustomAttributesSelector = exports.definitionEntityBaseAttributesSelector = exports.definitionEntity = exports.customProfileTypesSelector = exports.customAttributesSelector = exports.customAttributesDefinitionSelector = exports.baseAttributesSelector = void 0;
5
5
  var _reselect = require("reselect");
6
6
  var _immutable = _interopRequireDefault(require("immutable"));
7
7
  var _utils = require("../utils");
@@ -77,6 +77,19 @@ var namedLookupValuesSelector = exports.namedLookupValuesSelector = (0, _utils.m
77
77
  });
78
78
  });
79
79
  });
80
+ var namedLookupsValuesSelector = exports.namedLookupsValuesSelector = (0, _utils.memoize)(function (moduleName, lookupNames) {
81
+ return (0, _reselect.createSelector)(lookupSelector(moduleName), _locale.currentLocaleOrDefault, function (lookups, locale) {
82
+ var lookupsValues = {};
83
+ (0, _lodash.each)(lookupNames, function (name) {
84
+ var lookup = lookups.get(name);
85
+ if (!lookup) return;
86
+ lookupsValues[name] = lookup.get("values", _immutable.default.Map()).map(function (lookupValue) {
87
+ return (0, _setTranslationWithFallback.setTranslationWithFallbackField)(locale, lookupValue, "name", "displayName");
88
+ });
89
+ });
90
+ return _immutable.default.fromJS(lookupsValues);
91
+ });
92
+ });
80
93
  var selectCurrentLookupDetails = exports.selectCurrentLookupDetails = (0, _utils.memoize)(function (moduleName, lookupName) {
81
94
  return namedLookupSelector(moduleName, lookupName);
82
95
  });
@@ -364,6 +377,7 @@ var resolveProductPropertyValue = function resolveProductPropertyValue(property,
364
377
  reactHotLoader.register(lookupByNameSelector, "lookupByNameSelector", "/home/vsts/work/1/s/src/selectors/metadata.js");
365
378
  reactHotLoader.register(namedLookupSelector, "namedLookupSelector", "/home/vsts/work/1/s/src/selectors/metadata.js");
366
379
  reactHotLoader.register(namedLookupValuesSelector, "namedLookupValuesSelector", "/home/vsts/work/1/s/src/selectors/metadata.js");
380
+ reactHotLoader.register(namedLookupsValuesSelector, "namedLookupsValuesSelector", "/home/vsts/work/1/s/src/selectors/metadata.js");
367
381
  reactHotLoader.register(selectCurrentLookupDetails, "selectCurrentLookupDetails", "/home/vsts/work/1/s/src/selectors/metadata.js");
368
382
  reactHotLoader.register(namedLookupLocalizedSelector, "namedLookupLocalizedSelector", "/home/vsts/work/1/s/src/selectors/metadata.js");
369
383
  reactHotLoader.register(lookupExistAndIsActiveSelector, "lookupExistAndIsActiveSelector", "/home/vsts/work/1/s/src/selectors/metadata.js");
@@ -422,6 +436,7 @@ var resolveProductPropertyValue = function resolveProductPropertyValue(property,
422
436
  reactHotLoader.register(lookupByNameSelector, "lookupByNameSelector", "/home/vsts/work/1/s/src/selectors/metadata.js");
423
437
  reactHotLoader.register(namedLookupSelector, "namedLookupSelector", "/home/vsts/work/1/s/src/selectors/metadata.js");
424
438
  reactHotLoader.register(namedLookupValuesSelector, "namedLookupValuesSelector", "/home/vsts/work/1/s/src/selectors/metadata.js");
439
+ reactHotLoader.register(namedLookupsValuesSelector, "namedLookupsValuesSelector", "/home/vsts/work/1/s/src/selectors/metadata.js");
425
440
  reactHotLoader.register(selectCurrentLookupDetails, "selectCurrentLookupDetails", "/home/vsts/work/1/s/src/selectors/metadata.js");
426
441
  reactHotLoader.register(namedLookupLocalizedSelector, "namedLookupLocalizedSelector", "/home/vsts/work/1/s/src/selectors/metadata.js");
427
442
  reactHotLoader.register(lookupExistAndIsActiveSelector, "lookupExistAndIsActiveSelector", "/home/vsts/work/1/s/src/selectors/metadata.js");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orc-shared",
3
- "version": "5.10.0-dev.1",
3
+ "version": "5.10.0-dev.2",
4
4
  "description": "Shared code for Orckestra applications",
5
5
  "main": "./src/index.js",
6
6
  "exports": {
@@ -53,6 +53,23 @@ export const namedLookupValuesSelector = memoize((moduleName, lookupName) =>
53
53
  ),
54
54
  );
55
55
 
56
+ export const namedLookupsValuesSelector = memoize((moduleName, lookupNames) =>
57
+ createSelector(lookupSelector(moduleName), currentLocaleOrDefault, (lookups, locale) => {
58
+ const lookupsValues = {};
59
+
60
+ each(lookupNames, name => {
61
+ const lookup = lookups.get(name);
62
+ if (!lookup) return;
63
+
64
+ lookupsValues[name] = lookup
65
+ .get("values", Immutable.Map())
66
+ .map(lookupValue => setTranslationWithFallbackField(locale, lookupValue, "name", "displayName"));
67
+ });
68
+
69
+ return Immutable.fromJS(lookupsValues);
70
+ }),
71
+ );
72
+
56
73
  export const selectCurrentLookupDetails = memoize((moduleName, lookupName) =>
57
74
  namedLookupSelector(moduleName, lookupName),
58
75
  );
@@ -340,7 +357,7 @@ export const variantPropertyKeyValuesSelector = memoize(({ definitionName }, pro
340
357
  ? {
341
358
  ...acc,
342
359
  [rec]: resolveProductPropertyValue(propertyMap[camelCase(rec)], propertyBag[rec], locale, lookups),
343
- }
360
+ }
344
361
  : acc,
345
362
  {},
346
363
  );
@@ -31,6 +31,7 @@ import {
31
31
  lookupByNameSelector,
32
32
  mappedLookupsListSelector,
33
33
  lookupExistAndIsActiveSelector,
34
+ namedLookupsValuesSelector,
34
35
  } from "./metadata";
35
36
 
36
37
  const lookups = {
@@ -409,6 +410,109 @@ describe("namedLookupValuesSelector", () => {
409
410
  });
410
411
  });
411
412
 
413
+ describe("namedLookupsValuesSelector", () => {
414
+ let state;
415
+ beforeEach(() => {
416
+ state = Immutable.fromJS({
417
+ locale: { locale: "it-IT" },
418
+ metadata: {
419
+ lookups: {
420
+ order: {
421
+ index: {
422
+ CanceledStatusReasons: {
423
+ lookupName: "CanceledStatusReasons",
424
+ values: {
425
+ CanceledReason1: {
426
+ id: "e16d07f847284775b77cfb985724cf58",
427
+ value: "CanceledReason1",
428
+ lookupId: "CanceledStatusReasons",
429
+ sortOrder: 0,
430
+ isActive: true,
431
+ isSystem: true,
432
+ displayName: {
433
+ "en-CA": "Cancel for reason 1",
434
+ "en-US": "Cancel for reason 1",
435
+ "fr-CA": "Annulé pour raison 1",
436
+ "it-IT": "Annulla per motivo 1",
437
+ },
438
+ },
439
+ CanceledReason2: {
440
+ id: "6bbfe77703c745d68b8eaceb9cd484b1",
441
+ value: "CanceledReason2",
442
+ lookupId: "CanceledStatusReasons",
443
+ sortOrder: 0,
444
+ isActive: true,
445
+ isSystem: true,
446
+ displayName: {
447
+ "en-CA": "Cancel for reason 2",
448
+ "en-US": "Cancel for reason 2",
449
+ "fr-CA": "Annulé pour raison 2",
450
+ "it-IT": "Annulla per motivo 2",
451
+ },
452
+ },
453
+ },
454
+ isActive: true,
455
+ isSystem: true,
456
+ },
457
+ CartStatus: {
458
+ lookupName: "CartStatus",
459
+ values: {},
460
+ isActive: true,
461
+ isSystem: true,
462
+ },
463
+ },
464
+ list: [],
465
+ },
466
+ },
467
+ },
468
+ });
469
+ });
470
+
471
+ it("gets the value list for multiple named lookups", () =>
472
+ expect(
473
+ namedLookupsValuesSelector,
474
+ "when called with",
475
+ ["order", ["CanceledStatusReasons", "CartStatus"]],
476
+ "when called with",
477
+ [state],
478
+ "to satisfy",
479
+ Immutable.fromJS({
480
+ CanceledStatusReasons: {
481
+ CanceledReason1: {
482
+ id: "e16d07f847284775b77cfb985724cf58",
483
+ value: "CanceledReason1",
484
+ lookupId: "CanceledStatusReasons",
485
+ sortOrder: 0,
486
+ isActive: true,
487
+ isSystem: true,
488
+ displayName: "Annulla per motivo 1",
489
+ },
490
+ CanceledReason2: {
491
+ id: "6bbfe77703c745d68b8eaceb9cd484b1",
492
+ value: "CanceledReason2",
493
+ lookupId: "CanceledStatusReasons",
494
+ sortOrder: 0,
495
+ isActive: true,
496
+ isSystem: true,
497
+ displayName: "Annulla per motivo 2",
498
+ },
499
+ },
500
+ CartStatus: {},
501
+ }),
502
+ ));
503
+
504
+ it("will get an empty Map if lookup does not exist", () =>
505
+ expect(
506
+ namedLookupsValuesSelector,
507
+ "when called with",
508
+ ["order", ["NotALookup"]],
509
+ "when called with",
510
+ [state],
511
+ "to equal",
512
+ Immutable.fromJS({}),
513
+ ));
514
+ });
515
+
412
516
  describe("selectCurrentLookupDetails", () => {
413
517
  let state;
414
518
  beforeEach(() => {