@smallpearl/ngx-helper 0.31.33 → 0.31.35

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.
@@ -148,12 +148,21 @@ function sideloadToComposite(resp, targetObjKey, idKey = 'id', mergeStrategy = '
148
148
  // The second check avoids duplicate merging of sideload data
149
149
  if (sideloadData.length > 0 && !Object.prototype.hasOwnProperty.call(obj, keyPlural)) {
150
150
  const matchingSideloadObj = sideloadData.find((so) => so?.[sideloadId] === value);
151
- if (matchingSideloadObj) {
151
+ // Merge any FKs in the inner object with their sideloaded data
152
+ const compositeSideloadObj = mergeSideloadIntoObject(matchingSideloadObj || {}, mergeStrategy, appendObjSuffix);
153
+ if (compositeSideloadObj) {
152
154
  const targetKey = mergeStrategy === 'inplace'
153
155
  ? key
154
156
  : `${singular(key)}${appendObjSuffix}`;
155
- obj[targetKey] = { ...matchingSideloadObj };
157
+ obj[targetKey] = { ...compositeSideloadObj };
156
158
  }
159
+ // if (matchingSideloadObj) {
160
+ // const targetKey =
161
+ // mergeStrategy === 'inplace'
162
+ // ? key
163
+ // : `${singular(key)}${appendObjSuffix}`;
164
+ // obj[targetKey] = { ...matchingSideloadObj };
165
+ // }
157
166
  }
158
167
  }
159
168
  }
@@ -1 +1 @@
1
- {"version":3,"file":"smallpearl-ngx-helper-sideload.mjs","sources":["../../../../projects/smallpearl/ngx-helper/sideload/src/sideload.ts","../../../../projects/smallpearl/ngx-helper/sideload/smallpearl-ngx-helper-sideload.ts"],"sourcesContent":["import { plural, singular } from 'pluralize';\n\n/**\n * A function merge sideloaded content into the main object thereby returning\n * a composite object.\n * @param resp - the JSON response object, typically received from remote for\n * an HTTP request.\n * @param targetObjKey - the key name of the target object into which the\n * sideloaded data are to be merged.\n * @param idKey - idKey. Function assumes that all the objects use the same\n * key name as the unique object identifier.\n * @param sideloadDataMap: An array of [string, string], where the first\n * element specifies the property name of the target object and the second\n * element the sideload data element's key. This is useful when the the\n * target objet's property name that is to be merged with sideload data do not\n * match.\n * @returns\n */\nexport function sideloadToComposite(\n resp: any,\n targetObjKey: string,\n idKey: string = 'id',\n mergeStrategy: 'inplace' | 'append' = 'append',\n appendObjSuffix: string = 'Detail',\n sideloadDataMap?: Array<[string, string, string?]>\n) {\n if (typeof resp !== 'object' && !Array.isArray(resp)) {\n return;\n }\n\n const allRespKeys = Object.keys(resp);\n const targetObjResponse = resp[targetObjKey];\n if (!targetObjResponse) {\n return;\n }\n\n // all sideload keys, except the targetObjKey\n allRespKeys.splice(\n allRespKeys.findIndex((k) => k === targetObjKey),\n 1\n );\n const allRespKeysSingular = allRespKeys.map(k => singular(k));\n\n // Normalize single target object into an array to simplify handling\n let entities: Array<any> = Array.isArray(targetObjResponse)\n ? targetObjResponse\n : [targetObjResponse];\n\n // standard keys that'll never be merged with sideloaded content\n const KEYS_TO_SKIP = new Set([\n 'id',\n 'number',\n 'date',\n 'time',\n 'timestamp',\n 'modified',\n 'created',\n 'createdAt',\n 'updatedAt',\n 'updated',\n 'description',\n 'notes',\n 'desc',\n 'description',\n 'name',\n 'firstName',\n 'lastName',\n 'fullName',\n 'email',\n 'telephone',\n 'phone',\n 'mobile',\n 'address',\n 'title',\n 'content',\n ]);\n if (idKey) {\n KEYS_TO_SKIP.add(idKey);\n }\n const getSideloadPluralKey = (key: string) => {\n if (sideloadDataMap) {\n const entry = sideloadDataMap.find(([objKey]) => objKey === key);\n if (entry?.[1]) return entry[1];\n }\n // Prefer actual response keys to avoid pluralization mismatches\n if (resp.hasOwnProperty(key)) return key;\n const pluralKey = plural(key);\n if (resp.hasOwnProperty(pluralKey)) return pluralKey;\n return pluralKey;\n };\n const getSideloadDataKey = (key: string): string => {\n if (sideloadDataMap) {\n const entry = sideloadDataMap.find(([objKey]) => objKey === key);\n // Prefer explicit sideload data key if provided, else fallback to idKey\n if (entry) {\n return entry[2] ?? idKey;\n }\n }\n return idKey;\n };\n const isEntityKeyType = (value: string) =>\n typeof value === 'string' || typeof value === 'number';\n\n /**\n * Given an object, enumerates all keys of the object and for any key with\n * a matching sideload value, merges that into the 'obj', either by\n * replacing the matching key's value or by appending it as a new property.\n * If the value of a property is an object, recurses with the object as\n * first argument.\n * @param obj\n * @param mergeStrategy\n * @param appendObjSuffix\n * @returns\n */\n const mergeSideloadIntoObject = (\n obj: any,\n mergeStrategy: 'inplace' | 'append',\n appendObjSuffix: string = 'Detail'\n ) => {\n for (const key in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, key) || KEYS_TO_SKIP.has(key)) {\n continue;\n }\n const value = obj[key];\n\n // Helper to get sideload data array for a key\n const getSideloadArray = (keyPlural: string) => {\n const data = resp[keyPlural];\n if (Array.isArray(data)) return data;\n if (data != null) return [data];\n return [];\n };\n\n if (Array.isArray(value) && value.length > 0) {\n if (isEntityKeyType(value[0])) {\n // Array of ids: merge sideloaded objects\n const keyPlural = getSideloadPluralKey(key);\n const sideloadId = getSideloadDataKey(key);\n const sideloadData = getSideloadArray(keyPlural);\n const matchingSideloadObjs = sideloadData.filter((so: any) =>\n value.includes(so?.[sideloadId])\n );\n if (matchingSideloadObjs.length > 0) {\n const targetKey =\n mergeStrategy === 'inplace'\n ? key\n : `${singular(key)}${appendObjSuffix}s`;\n obj[targetKey] = mergeSideloadIntoObjects(\n matchingSideloadObjs,\n mergeStrategy,\n appendObjSuffix\n );\n }\n } else {\n // Array of objects: recurse\n value.forEach((item: any) => {\n if (typeof item === 'object' && item !== null) {\n mergeSideloadIntoObject(item, mergeStrategy, appendObjSuffix);\n }\n });\n }\n } else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n // Nested object: recurse\n mergeSideloadIntoObject(value, mergeStrategy, appendObjSuffix);\n } else if (isEntityKeyType(value)) {\n const keyPlural = getSideloadPluralKey(key);\n const sideloadId = getSideloadDataKey(key);\n const sideloadData = getSideloadArray(keyPlural);\n // The second check avoids duplicate merging of sideload data\n if (sideloadData.length > 0 && !Object.prototype.hasOwnProperty.call(obj, keyPlural)) {\n const matchingSideloadObj = sideloadData.find(\n (so: any) => so?.[sideloadId] === value\n );\n if (matchingSideloadObj) {\n const targetKey =\n mergeStrategy === 'inplace'\n ? key\n : `${singular(key)}${appendObjSuffix}`;\n obj[targetKey] = {...matchingSideloadObj};\n }\n }\n }\n }\n return obj;\n };\n\n const mergeSideloadIntoObjects = (objs: Array<any>, mergeStrategy: 'inplace' | 'append', appendObjSuffix: string) => {\n return objs.map((obj) => {\n return mergeSideloadIntoObject(obj, mergeStrategy, appendObjSuffix);\n });\n };\n\n mergeSideloadIntoObjects(entities, mergeStrategy, appendObjSuffix);\n return resp[targetObjKey];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smallpearl-ngx-helper-sideload.mjs","sources":["../../../../projects/smallpearl/ngx-helper/sideload/src/sideload.ts","../../../../projects/smallpearl/ngx-helper/sideload/smallpearl-ngx-helper-sideload.ts"],"sourcesContent":["import { plural, singular } from 'pluralize';\n\n/**\n * A function merge sideloaded content into the main object thereby returning\n * a composite object.\n * @param resp - the JSON response object, typically received from remote for\n * an HTTP request.\n * @param targetObjKey - the key name of the target object into which the\n * sideloaded data are to be merged.\n * @param idKey - idKey. Function assumes that all the objects use the same\n * key name as the unique object identifier.\n * @param sideloadDataMap: An array of [string, string], where the first\n * element specifies the property name of the target object and the second\n * element the sideload data element's key. This is useful when the the\n * target objet's property name that is to be merged with sideload data do not\n * match.\n * @returns\n */\nexport function sideloadToComposite(\n resp: any,\n targetObjKey: string,\n idKey: string = 'id',\n mergeStrategy: 'inplace' | 'append' = 'append',\n appendObjSuffix: string = 'Detail',\n sideloadDataMap?: Array<[string, string, string?]>\n) {\n if (typeof resp !== 'object' && !Array.isArray(resp)) {\n return;\n }\n\n const allRespKeys = Object.keys(resp);\n const targetObjResponse = resp[targetObjKey];\n if (!targetObjResponse) {\n return;\n }\n\n // all sideload keys, except the targetObjKey\n allRespKeys.splice(\n allRespKeys.findIndex((k) => k === targetObjKey),\n 1\n );\n const allRespKeysSingular = allRespKeys.map(k => singular(k));\n\n // Normalize single target object into an array to simplify handling\n let entities: Array<any> = Array.isArray(targetObjResponse)\n ? targetObjResponse\n : [targetObjResponse];\n\n // standard keys that'll never be merged with sideloaded content\n const KEYS_TO_SKIP = new Set([\n 'id',\n 'number',\n 'date',\n 'time',\n 'timestamp',\n 'modified',\n 'created',\n 'createdAt',\n 'updatedAt',\n 'updated',\n 'description',\n 'notes',\n 'desc',\n 'description',\n 'name',\n 'firstName',\n 'lastName',\n 'fullName',\n 'email',\n 'telephone',\n 'phone',\n 'mobile',\n 'address',\n 'title',\n 'content',\n ]);\n if (idKey) {\n KEYS_TO_SKIP.add(idKey);\n }\n const getSideloadPluralKey = (key: string) => {\n if (sideloadDataMap) {\n const entry = sideloadDataMap.find(([objKey]) => objKey === key);\n if (entry?.[1]) return entry[1];\n }\n // Prefer actual response keys to avoid pluralization mismatches\n if (resp.hasOwnProperty(key)) return key;\n const pluralKey = plural(key);\n if (resp.hasOwnProperty(pluralKey)) return pluralKey;\n return pluralKey;\n };\n const getSideloadDataKey = (key: string): string => {\n if (sideloadDataMap) {\n const entry = sideloadDataMap.find(([objKey]) => objKey === key);\n // Prefer explicit sideload data key if provided, else fallback to idKey\n if (entry) {\n return entry[2] ?? idKey;\n }\n }\n return idKey;\n };\n const isEntityKeyType = (value: string) =>\n typeof value === 'string' || typeof value === 'number';\n\n /**\n * Given an object, enumerates all keys of the object and for any key with\n * a matching sideload value, merges that into the 'obj', either by\n * replacing the matching key's value or by appending it as a new property.\n * If the value of a property is an object, recurses with the object as\n * first argument.\n * @param obj\n * @param mergeStrategy\n * @param appendObjSuffix\n * @returns\n */\n const mergeSideloadIntoObject = (\n obj: any,\n mergeStrategy: 'inplace' | 'append',\n appendObjSuffix: string = 'Detail'\n ) => {\n for (const key in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, key) || KEYS_TO_SKIP.has(key)) {\n continue;\n }\n const value = obj[key];\n\n // Helper to get sideload data array for a key\n const getSideloadArray = (keyPlural: string) => {\n const data = resp[keyPlural];\n if (Array.isArray(data)) return data;\n if (data != null) return [data];\n return [];\n };\n\n if (Array.isArray(value) && value.length > 0) {\n if (isEntityKeyType(value[0])) {\n // Array of ids: merge sideloaded objects\n const keyPlural = getSideloadPluralKey(key);\n const sideloadId = getSideloadDataKey(key);\n const sideloadData = getSideloadArray(keyPlural);\n const matchingSideloadObjs = sideloadData.filter((so: any) =>\n value.includes(so?.[sideloadId])\n );\n if (matchingSideloadObjs.length > 0) {\n const targetKey =\n mergeStrategy === 'inplace'\n ? key\n : `${singular(key)}${appendObjSuffix}s`;\n obj[targetKey] = mergeSideloadIntoObjects(\n matchingSideloadObjs,\n mergeStrategy,\n appendObjSuffix\n );\n }\n } else {\n // Array of objects: recurse\n value.forEach((item: any) => {\n if (typeof item === 'object' && item !== null) {\n mergeSideloadIntoObject(item, mergeStrategy, appendObjSuffix);\n }\n });\n }\n } else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n // Nested object: recurse\n mergeSideloadIntoObject(value, mergeStrategy, appendObjSuffix);\n } else if (isEntityKeyType(value)) {\n const keyPlural = getSideloadPluralKey(key);\n const sideloadId = getSideloadDataKey(key);\n const sideloadData = getSideloadArray(keyPlural);\n // The second check avoids duplicate merging of sideload data\n if (sideloadData.length > 0 && !Object.prototype.hasOwnProperty.call(obj, keyPlural)) {\n const matchingSideloadObj = sideloadData.find(\n (so: any) => so?.[sideloadId] === value\n );\n\n // Merge any FKs in the inner object with their sideloaded data\n const compositeSideloadObj = mergeSideloadIntoObject(\n matchingSideloadObj || {},\n mergeStrategy,\n appendObjSuffix\n );\n if (compositeSideloadObj) {\n const targetKey =\n mergeStrategy === 'inplace'\n ? key\n : `${singular(key)}${appendObjSuffix}`;\n obj[targetKey] = { ...compositeSideloadObj };\n }\n // if (matchingSideloadObj) {\n // const targetKey =\n // mergeStrategy === 'inplace'\n // ? key\n // : `${singular(key)}${appendObjSuffix}`;\n // obj[targetKey] = { ...matchingSideloadObj };\n // }\n }\n }\n }\n return obj;\n };\n\n const mergeSideloadIntoObjects = (objs: Array<any>, mergeStrategy: 'inplace' | 'append', appendObjSuffix: string) => {\n return objs.map((obj) => {\n return mergeSideloadIntoObject(obj, mergeStrategy, appendObjSuffix);\n });\n };\n\n mergeSideloadIntoObjects(entities, mergeStrategy, appendObjSuffix);\n return resp[targetObjKey];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "path": "src/assets/i18n/"
7
7
  }
8
8
  ],
9
- "version": "0.31.33",
9
+ "version": "0.31.35",
10
10
  "peerDependencies": {
11
11
  "@angular/common": "^19.1.0",
12
12
  "@angular/core": "^19.1.0",
@@ -43,14 +43,18 @@
43
43
  "types": "./core/index.d.ts",
44
44
  "default": "./fesm2022/smallpearl-ngx-helper-core.mjs"
45
45
  },
46
- "./locale": {
47
- "types": "./locale/index.d.ts",
48
- "default": "./fesm2022/smallpearl-ngx-helper-locale.mjs"
46
+ "./entity-field": {
47
+ "types": "./entity-field/index.d.ts",
48
+ "default": "./fesm2022/smallpearl-ngx-helper-entity-field.mjs"
49
49
  },
50
50
  "./forms": {
51
51
  "types": "./forms/index.d.ts",
52
52
  "default": "./fesm2022/smallpearl-ngx-helper-forms.mjs"
53
53
  },
54
+ "./locale": {
55
+ "types": "./locale/index.d.ts",
56
+ "default": "./fesm2022/smallpearl-ngx-helper-locale.mjs"
57
+ },
54
58
  "./hover-dropdown": {
55
59
  "types": "./hover-dropdown/index.d.ts",
56
60
  "default": "./fesm2022/smallpearl-ngx-helper-hover-dropdown.mjs"
@@ -63,10 +67,6 @@
63
67
  "types": "./mat-context-menu/index.d.ts",
64
68
  "default": "./fesm2022/smallpearl-ngx-helper-mat-context-menu.mjs"
65
69
  },
66
- "./entity-field": {
67
- "types": "./entity-field/index.d.ts",
68
- "default": "./fesm2022/smallpearl-ngx-helper-entity-field.mjs"
69
- },
70
70
  "./mat-entity-crud": {
71
71
  "types": "./mat-entity-crud/index.d.ts",
72
72
  "default": "./fesm2022/smallpearl-ngx-helper-mat-entity-crud.mjs"