@bigbinary/neeto-commons-frontend 4.0.2 → 4.1.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.
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.buildNestedAttributesPayload = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _neetoCist = require("@bigbinary/neeto-cist");
11
+ var _ramda = require("ramda");
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+ var buildNestedAttributesPayload = function buildNestedAttributesPayload(_ref) {
15
+ var modifiedValues = _ref.modifiedValues,
16
+ initialValues = _ref.initialValues,
17
+ nestedKeyToModify = _ref.nestedKeyToModify,
18
+ nestedAttributeKeyInPayload = _ref.nestedAttributeKeyInPayload,
19
+ nestedAttributesForArrayKey = _ref.nestedAttributesForArrayKey;
20
+ var itemsToDestroy = initialValues[nestedKeyToModify].filter(function (initialItem) {
21
+ return (0, _neetoCist.isNotPresent)((0, _neetoCist.findBy)({
22
+ value: initialItem[nestedAttributeKeyInPayload]
23
+ }, modifiedValues[nestedKeyToModify]));
24
+ });
25
+ var itemsToDestroyAttrs = itemsToDestroy.map(function (item) {
26
+ var _ref2;
27
+ return _ref2 = {
28
+ id: item.id
29
+ }, (0, _defineProperty2["default"])(_ref2, nestedAttributeKeyInPayload, item[nestedAttributeKeyInPayload]), (0, _defineProperty2["default"])(_ref2, "_destroy", true), _ref2;
30
+ });
31
+ var itemsToBeCreated = modifiedValues[nestedKeyToModify].filter(function (modifiedItem) {
32
+ return (0, _neetoCist.isNotPresent)((0, _neetoCist.findBy)((0, _defineProperty2["default"])({}, nestedAttributeKeyInPayload, modifiedItem.value.toLowerCase()), initialValues[nestedKeyToModify]));
33
+ });
34
+ var itemsToCreateAttrs = itemsToBeCreated.map(function (item) {
35
+ return (0, _defineProperty2["default"])({}, nestedAttributeKeyInPayload, item.value);
36
+ });
37
+ var nestedAttributes = [].concat((0, _toConsumableArray2["default"])(itemsToCreateAttrs), (0, _toConsumableArray2["default"])(itemsToDestroyAttrs));
38
+ return _objectSpread(_objectSpread({}, (0, _ramda.omit)([nestedKeyToModify], modifiedValues)), {}, (0, _defineProperty2["default"])({}, nestedAttributesForArrayKey, nestedAttributes));
39
+ };
40
+ exports.buildNestedAttributesPayload = buildNestedAttributesPayload;
41
+ //# sourceMappingURL=buildNestedAttributesPayload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildNestedAttributesPayload.js","names":["_neetoCist","require","_ramda","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","buildNestedAttributesPayload","_ref","modifiedValues","initialValues","nestedKeyToModify","nestedAttributeKeyInPayload","nestedAttributesForArrayKey","itemsToDestroy","initialItem","isNotPresent","findBy","value","itemsToDestroyAttrs","map","item","_ref2","id","itemsToBeCreated","modifiedItem","toLowerCase","itemsToCreateAttrs","nestedAttributes","concat","_toConsumableArray2","omit","exports"],"sources":["../../../src/utils/buildNestedAttributesPayload.js"],"sourcesContent":["import { findBy, isNotPresent } from \"neetocist\";\nimport { omit } from \"ramda\";\n\nexport const buildNestedAttributesPayload = ({\n modifiedValues,\n initialValues,\n nestedKeyToModify,\n nestedAttributeKeyInPayload,\n nestedAttributesForArrayKey,\n}) => {\n const itemsToDestroy = initialValues[nestedKeyToModify].filter(initialItem =>\n isNotPresent(\n findBy(\n { value: initialItem[nestedAttributeKeyInPayload] },\n modifiedValues[nestedKeyToModify]\n )\n )\n );\n\n const itemsToDestroyAttrs = itemsToDestroy.map(item => ({\n id: item.id,\n [nestedAttributeKeyInPayload]: item[nestedAttributeKeyInPayload],\n _destroy: true,\n }));\n\n const itemsToBeCreated = modifiedValues[nestedKeyToModify].filter(\n modifiedItem =>\n isNotPresent(\n findBy(\n { [nestedAttributeKeyInPayload]: modifiedItem.value.toLowerCase() },\n initialValues[nestedKeyToModify]\n )\n )\n );\n\n const itemsToCreateAttrs = itemsToBeCreated.map(item => ({\n [nestedAttributeKeyInPayload]: item.value,\n }));\n\n const nestedAttributes = [...itemsToCreateAttrs, ...itemsToDestroyAttrs];\n\n return {\n ...omit([nestedKeyToModify], modifiedValues),\n [nestedAttributesForArrayKey]: nestedAttributes,\n };\n};\n"],"mappings":"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"}
@@ -102,4 +102,15 @@ Object.keys(_captureAnalyticsPageView).forEach(function (key) {
102
102
  }
103
103
  });
104
104
  });
105
+ var _buildNestedAttributesPayload = require("./buildNestedAttributesPayload");
106
+ Object.keys(_buildNestedAttributesPayload).forEach(function (key) {
107
+ if (key === "default" || key === "__esModule") return;
108
+ if (key in exports && exports[key] === _buildNestedAttributesPayload[key]) return;
109
+ Object.defineProperty(exports, key, {
110
+ enumerable: true,
111
+ get: function get() {
112
+ return _buildNestedAttributesPayload[key];
113
+ }
114
+ });
115
+ });
105
116
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_axios","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_general","_datetime","_permissions","_createSubscription","_currencyFormat","_validators","_captureAnalyticsEvent","_captureAnalyticsPageView"],"sources":["../../../src/utils/index.js"],"sourcesContent":["export * from \"./axios\";\nexport * from \"./general\";\nexport * from \"./datetime\";\nexport * from \"./permissions\";\nexport * from \"./createSubscription\";\nexport * from \"./currencyFormat\";\nexport * from \"./validators\";\nexport * from \"./captureAnalyticsEvent\";\nexport * from \"./captureAnalyticsPageView\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_axios","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_general","_datetime","_permissions","_createSubscription","_currencyFormat","_validators","_captureAnalyticsEvent","_captureAnalyticsPageView","_buildNestedAttributesPayload"],"sources":["../../../src/utils/index.js"],"sourcesContent":["export * from \"./axios\";\nexport * from \"./general\";\nexport * from \"./datetime\";\nexport * from \"./permissions\";\nexport * from \"./createSubscription\";\nexport * from \"./currencyFormat\";\nexport * from \"./validators\";\nexport * from \"./captureAnalyticsEvent\";\nexport * from \"./captureAnalyticsPageView\";\nexport * from \"./buildNestedAttributesPayload\";\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-commons-frontend",
3
- "version": "4.0.2",
3
+ "version": "4.1.0",
4
4
  "description": "A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.",
5
5
  "repository": "git@github.com:bigbinary/neeto-commons-frontend.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -0,0 +1,33 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
+ import { findBy, isNotPresent } from "@bigbinary/neeto-cist";
6
+ import { omit } from "ramda";
7
+ export var buildNestedAttributesPayload = function buildNestedAttributesPayload(_ref) {
8
+ var modifiedValues = _ref.modifiedValues,
9
+ initialValues = _ref.initialValues,
10
+ nestedKeyToModify = _ref.nestedKeyToModify,
11
+ nestedAttributeKeyInPayload = _ref.nestedAttributeKeyInPayload,
12
+ nestedAttributesForArrayKey = _ref.nestedAttributesForArrayKey;
13
+ var itemsToDestroy = initialValues[nestedKeyToModify].filter(function (initialItem) {
14
+ return isNotPresent(findBy({
15
+ value: initialItem[nestedAttributeKeyInPayload]
16
+ }, modifiedValues[nestedKeyToModify]));
17
+ });
18
+ var itemsToDestroyAttrs = itemsToDestroy.map(function (item) {
19
+ var _ref2;
20
+ return _ref2 = {
21
+ id: item.id
22
+ }, _defineProperty(_ref2, nestedAttributeKeyInPayload, item[nestedAttributeKeyInPayload]), _defineProperty(_ref2, "_destroy", true), _ref2;
23
+ });
24
+ var itemsToBeCreated = modifiedValues[nestedKeyToModify].filter(function (modifiedItem) {
25
+ return isNotPresent(findBy(_defineProperty({}, nestedAttributeKeyInPayload, modifiedItem.value.toLowerCase()), initialValues[nestedKeyToModify]));
26
+ });
27
+ var itemsToCreateAttrs = itemsToBeCreated.map(function (item) {
28
+ return _defineProperty({}, nestedAttributeKeyInPayload, item.value);
29
+ });
30
+ var nestedAttributes = [].concat(_toConsumableArray(itemsToCreateAttrs), _toConsumableArray(itemsToDestroyAttrs));
31
+ return _objectSpread(_objectSpread({}, omit([nestedKeyToModify], modifiedValues)), {}, _defineProperty({}, nestedAttributesForArrayKey, nestedAttributes));
32
+ };
33
+ //# sourceMappingURL=buildNestedAttributesPayload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildNestedAttributesPayload.js","names":["findBy","isNotPresent","omit","buildNestedAttributesPayload","_ref","modifiedValues","initialValues","nestedKeyToModify","nestedAttributeKeyInPayload","nestedAttributesForArrayKey","itemsToDestroy","filter","initialItem","value","itemsToDestroyAttrs","map","item","_ref2","id","_defineProperty","itemsToBeCreated","modifiedItem","toLowerCase","itemsToCreateAttrs","nestedAttributes","concat","_toConsumableArray","_objectSpread"],"sources":["../../src/utils/buildNestedAttributesPayload.js"],"sourcesContent":["import { findBy, isNotPresent } from \"neetocist\";\nimport { omit } from \"ramda\";\n\nexport const buildNestedAttributesPayload = ({\n modifiedValues,\n initialValues,\n nestedKeyToModify,\n nestedAttributeKeyInPayload,\n nestedAttributesForArrayKey,\n}) => {\n const itemsToDestroy = initialValues[nestedKeyToModify].filter(initialItem =>\n isNotPresent(\n findBy(\n { value: initialItem[nestedAttributeKeyInPayload] },\n modifiedValues[nestedKeyToModify]\n )\n )\n );\n\n const itemsToDestroyAttrs = itemsToDestroy.map(item => ({\n id: item.id,\n [nestedAttributeKeyInPayload]: item[nestedAttributeKeyInPayload],\n _destroy: true,\n }));\n\n const itemsToBeCreated = modifiedValues[nestedKeyToModify].filter(\n modifiedItem =>\n isNotPresent(\n findBy(\n { [nestedAttributeKeyInPayload]: modifiedItem.value.toLowerCase() },\n initialValues[nestedKeyToModify]\n )\n )\n );\n\n const itemsToCreateAttrs = itemsToBeCreated.map(item => ({\n [nestedAttributeKeyInPayload]: item.value,\n }));\n\n const nestedAttributes = [...itemsToCreateAttrs, ...itemsToDestroyAttrs];\n\n return {\n ...omit([nestedKeyToModify], modifiedValues),\n [nestedAttributesForArrayKey]: nestedAttributes,\n };\n};\n"],"mappings":";;;;AAAA,SAASA,MAAM,EAAEC,YAAY;AAC7B,SAASC,IAAI,QAAQ,OAAO;AAE5B,OAAO,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAAC,IAAA,EAMnC;EAAA,IALJC,cAAc,GAAAD,IAAA,CAAdC,cAAc;IACdC,aAAa,GAAAF,IAAA,CAAbE,aAAa;IACbC,iBAAiB,GAAAH,IAAA,CAAjBG,iBAAiB;IACjBC,2BAA2B,GAAAJ,IAAA,CAA3BI,2BAA2B;IAC3BC,2BAA2B,GAAAL,IAAA,CAA3BK,2BAA2B;EAE3B,IAAMC,cAAc,GAAGJ,aAAa,CAACC,iBAAiB,CAAC,CAACI,MAAM,CAAC,UAAAC,WAAW;IAAA,OACxEX,YAAY,CACVD,MAAM,CACJ;MAAEa,KAAK,EAAED,WAAW,CAACJ,2BAA2B;IAAE,CAAC,EACnDH,cAAc,CAACE,iBAAiB,CAAC,CAClC,CACF;EAAA,EACF;EAED,IAAMO,mBAAmB,GAAGJ,cAAc,CAACK,GAAG,CAAC,UAAAC,IAAI;IAAA,IAAAC,KAAA;IAAA,OAAAA,KAAA;MACjDC,EAAE,EAAEF,IAAI,CAACE;IAAE,GAAAC,eAAA,CAAAF,KAAA,EACVT,2BAA2B,EAAGQ,IAAI,CAACR,2BAA2B,CAAC,GAAAW,eAAA,CAAAF,KAAA,cACtD,IAAI,GAAAA,KAAA;EAAA,CACd,CAAC;EAEH,IAAMG,gBAAgB,GAAGf,cAAc,CAACE,iBAAiB,CAAC,CAACI,MAAM,CAC/D,UAAAU,YAAY;IAAA,OACVpB,YAAY,CACVD,MAAM,CAAAmB,eAAA,KACDX,2BAA2B,EAAGa,YAAY,CAACR,KAAK,CAACS,WAAW,EAAE,GACjEhB,aAAa,CAACC,iBAAiB,CAAC,CACjC,CACF;EAAA,EACJ;EAED,IAAMgB,kBAAkB,GAAGH,gBAAgB,CAACL,GAAG,CAAC,UAAAC,IAAI;IAAA,OAAAG,eAAA,KACjDX,2BAA2B,EAAGQ,IAAI,CAACH,KAAK;EAAA,CACzC,CAAC;EAEH,IAAMW,gBAAgB,MAAAC,MAAA,CAAAC,kBAAA,CAAOH,kBAAkB,GAAAG,kBAAA,CAAKZ,mBAAmB,EAAC;EAExE,OAAAa,aAAA,CAAAA,aAAA,KACKzB,IAAI,CAAC,CAACK,iBAAiB,CAAC,EAAEF,cAAc,CAAC,OAAAc,eAAA,KAC3CV,2BAA2B,EAAGe,gBAAgB;AAEnD,CAAC"}
package/utils/index.js CHANGED
@@ -7,4 +7,5 @@ export * from "./currencyFormat";
7
7
  export * from "./validators";
8
8
  export * from "./captureAnalyticsEvent";
9
9
  export * from "./captureAnalyticsPageView";
10
+ export * from "./buildNestedAttributesPayload";
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/utils/index.js"],"sourcesContent":["export * from \"./axios\";\nexport * from \"./general\";\nexport * from \"./datetime\";\nexport * from \"./permissions\";\nexport * from \"./createSubscription\";\nexport * from \"./currencyFormat\";\nexport * from \"./validators\";\nexport * from \"./captureAnalyticsEvent\";\nexport * from \"./captureAnalyticsPageView\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/utils/index.js"],"sourcesContent":["export * from \"./axios\";\nexport * from \"./general\";\nexport * from \"./datetime\";\nexport * from \"./permissions\";\nexport * from \"./createSubscription\";\nexport * from \"./currencyFormat\";\nexport * from \"./validators\";\nexport * from \"./captureAnalyticsEvent\";\nexport * from \"./captureAnalyticsPageView\";\nexport * from \"./buildNestedAttributesPayload\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
package/utils.d.ts CHANGED
@@ -576,4 +576,57 @@ export function captureAnalyticsEvent(name: string, properties?: {
576
576
  */
577
577
  export function captureAnalyticsPageView(page: string, properties?: {
578
578
  [key: string]: string;
579
- }): void;
579
+ }): void;
580
+ /**
581
+ *
582
+ * The buildNestedAttributesPayload function is a utility designed to
583
+ *
584
+ * create payloads for Rails' Active Record Nested Attributes. This function
585
+ *
586
+ * simplifies the process of handling nested forms by generating the correct
587
+ *
588
+ * payload structure, which includes the necessary attributes for creating and
589
+ *
590
+ * destroying nested records.
591
+ *
592
+ * @example
593
+ *
594
+ * import { buildNestedAttributesPayload } from "@bigbinary/neeto-commons-frontend/utils";
595
+ *
596
+ * // Example initial and modified values
597
+ * const initialValues = {
598
+ * emails: [
599
+ * { id: 1, email: "test1@example.com" },
600
+ * { id: 2, email: "test2@example.com" },
601
+ * ],
602
+ * };
603
+ *
604
+ * const modifiedValues = {
605
+ * emails: [{ value: "test2@example.com" }, { value: "test3@example.com" }],
606
+ * };
607
+ *
608
+ * const payload = buildNestedAttributesPayload({
609
+ * initialValues,
610
+ * modifiedValues,
611
+ * nestedKeyToModify: "emails",
612
+ * nestedAttributeKeyInPayload: "email",
613
+ * nestedAttributesForArrayKey: "whitelistedEmailsAttributes",
614
+ * });
615
+ *
616
+ * console.log(payload);
617
+ * // Output:
618
+ * // {
619
+ * // whitelistedEmailsAttributes: [
620
+ * // { email: "test3@example.com" },
621
+ * // { id: 1, email: "test1@example.com", _destroy: true }
622
+ * // ]
623
+ * // }
624
+ * @endexample
625
+ */
626
+ export function buildNestedAttributesPayload(modifiedValues: {
627
+ [key: string]: any;
628
+ }, initialValues: {
629
+ [key: string]: any;
630
+ }, nestedKeyToModify: string, nestedAttributeKeyInPayload: string, nestedAttributesForArrayKey: string): {
631
+ [key: string]: any;
632
+ };