@esri/solution-common 5.5.1 → 5.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/dist/cjs/completeItem.js +2 -2
  2. package/dist/cjs/completeItem.js.map +1 -1
  3. package/dist/cjs/create-hub-request-options.js +1 -1
  4. package/dist/cjs/deleteHelpers/deleteEmptyGroups.js +1 -1
  5. package/dist/cjs/deleteHelpers/deleteEmptyGroups.js.map +1 -1
  6. package/dist/cjs/deleteHelpers/deleteGroupIfEmpty.js +6 -6
  7. package/dist/cjs/deleteHelpers/deleteGroupIfEmpty.js.map +1 -1
  8. package/dist/cjs/deleteHelpers/deleteSolutionContents.js +7 -11
  9. package/dist/cjs/deleteHelpers/deleteSolutionContents.js.map +1 -1
  10. package/dist/cjs/deleteHelpers/deleteSolutionFolder.js +6 -6
  11. package/dist/cjs/deleteHelpers/deleteSolutionFolder.js.map +1 -1
  12. package/dist/cjs/deleteHelpers/deleteSolutionItem.js +4 -4
  13. package/dist/cjs/deleteHelpers/deleteSolutionItem.js.map +1 -1
  14. package/dist/cjs/deleteHelpers/reconstructBuildOrderIds.js.map +1 -1
  15. package/dist/cjs/deleteHelpers/removeItems.js +5 -6
  16. package/dist/cjs/deleteHelpers/removeItems.js.map +1 -1
  17. package/dist/cjs/deleteHelpers/reportProgress.js +1 -1
  18. package/dist/cjs/deleteHelpers/reportProgress.js.map +1 -1
  19. package/dist/cjs/deleteSolution.js +7 -7
  20. package/dist/cjs/deleteSolution.js.map +1 -1
  21. package/dist/cjs/dependencies.js +5 -5
  22. package/dist/cjs/dependencies.js.map +1 -1
  23. package/dist/cjs/featureServiceHelpers.js +132 -165
  24. package/dist/cjs/featureServiceHelpers.js.map +1 -1
  25. package/dist/cjs/formHelpers.js +1 -1
  26. package/dist/cjs/formHelpers.js.map +1 -1
  27. package/dist/cjs/generalHelpers.js +25 -40
  28. package/dist/cjs/generalHelpers.js.map +1 -1
  29. package/dist/cjs/get-subscription-info.js +1 -1
  30. package/dist/cjs/get-subscription-info.js.map +1 -1
  31. package/dist/cjs/getDeletableSolutionInfo.js.map +1 -1
  32. package/dist/cjs/getItemTypeAbbrev.js +27 -27
  33. package/dist/cjs/getItemTypeAbbrev.js.map +1 -1
  34. package/dist/cjs/getSolutionSummary.js +50 -51
  35. package/dist/cjs/getSolutionSummary.js.map +1 -1
  36. package/dist/cjs/interfaces.d.ts +2 -2
  37. package/dist/cjs/interfaces.js +1 -1
  38. package/dist/cjs/interfaces.js.map +1 -1
  39. package/dist/cjs/item-reuse.js +27 -24
  40. package/dist/cjs/item-reuse.js.map +1 -1
  41. package/dist/cjs/libConnectors.js +1 -1
  42. package/dist/cjs/libConnectors.js.map +1 -1
  43. package/dist/cjs/migrations/apply-schema.js +1 -1
  44. package/dist/cjs/migrations/is-legacy-solution.js +1 -2
  45. package/dist/cjs/migrations/is-legacy-solution.js.map +1 -1
  46. package/dist/cjs/migrations/upgrade-two-dot-five.js +2 -2
  47. package/dist/cjs/migrations/upgrade-two-dot-five.js.map +1 -1
  48. package/dist/cjs/migrations/upgrade-two-dot-four.js +4 -4
  49. package/dist/cjs/migrations/upgrade-two-dot-four.js.map +1 -1
  50. package/dist/cjs/migrations/upgrade-two-dot-seven.js.map +1 -1
  51. package/dist/cjs/migrations/upgrade-two-dot-six.js +2 -2
  52. package/dist/cjs/migrations/upgrade-two-dot-six.js.map +1 -1
  53. package/dist/cjs/migrations/upgrade-two-dot-three.js +3 -3
  54. package/dist/cjs/migrations/upgrade-two-dot-three.js.map +1 -1
  55. package/dist/cjs/migrations/upgrade-two-dot-two.js +3 -3
  56. package/dist/cjs/migrations/upgrade-two-dot-two.js.map +1 -1
  57. package/dist/cjs/migrations/upgrade-two-dot-zero.js +3 -3
  58. package/dist/cjs/migrations/upgrade-two-dot-zero.js.map +1 -1
  59. package/dist/cjs/migrator.js +1 -3
  60. package/dist/cjs/migrator.js.map +1 -1
  61. package/dist/cjs/resourceHelpers.js +24 -29
  62. package/dist/cjs/resourceHelpers.js.map +1 -1
  63. package/dist/cjs/resources/add-resource-from-blob.js +2 -2
  64. package/dist/cjs/resources/add-resource-from-blob.js.map +1 -1
  65. package/dist/cjs/resources/addMetadataFromBlob.js +3 -3
  66. package/dist/cjs/resources/addMetadataFromBlob.js.map +1 -1
  67. package/dist/cjs/resources/copyAssociatedFiles.js +25 -31
  68. package/dist/cjs/resources/copyAssociatedFiles.js.map +1 -1
  69. package/dist/cjs/resources/copyDataIntoItem.js +7 -9
  70. package/dist/cjs/resources/copyDataIntoItem.js.map +1 -1
  71. package/dist/cjs/resources/copyMetadataIntoItem.js +4 -6
  72. package/dist/cjs/resources/copyMetadataIntoItem.js.map +1 -1
  73. package/dist/cjs/resources/copyResourceIntoZip.js +3 -7
  74. package/dist/cjs/resources/copyResourceIntoZip.js.map +1 -1
  75. package/dist/cjs/resources/copyZipIntoItem.js +4 -5
  76. package/dist/cjs/resources/copyZipIntoItem.js.map +1 -1
  77. package/dist/cjs/resources/createCopyResults.js +1 -1
  78. package/dist/cjs/resources/get-blob.js +2 -2
  79. package/dist/cjs/resources/get-blob.js.map +1 -1
  80. package/dist/cjs/resources/getItemResourcesFilesFromPaths.js +5 -5
  81. package/dist/cjs/resources/getItemResourcesFilesFromPaths.js.map +1 -1
  82. package/dist/cjs/resources/getItemResourcesPaths.js +1 -1
  83. package/dist/cjs/resources/getItemResourcesPaths.js.map +1 -1
  84. package/dist/cjs/resources/transform-resource-paths-to-solution-resources.js +5 -11
  85. package/dist/cjs/resources/transform-resource-paths-to-solution-resources.js.map +1 -1
  86. package/dist/cjs/restHelpers.js +219 -261
  87. package/dist/cjs/restHelpers.js.map +1 -1
  88. package/dist/cjs/restHelpersGet.js +55 -63
  89. package/dist/cjs/restHelpersGet.js.map +1 -1
  90. package/dist/cjs/sharing/share-item-to-groups.js +2 -2
  91. package/dist/cjs/sharing/share-item-to-groups.js.map +1 -1
  92. package/dist/cjs/templatization.js +10 -12
  93. package/dist/cjs/templatization.js.map +1 -1
  94. package/dist/cjs/trackingHelpers.js +10 -15
  95. package/dist/cjs/trackingHelpers.js.map +1 -1
  96. package/dist/cjs/velocityHelpers.js +7 -11
  97. package/dist/cjs/velocityHelpers.js.map +1 -1
  98. package/dist/cjs/workflowHelpers.js +15 -17
  99. package/dist/cjs/workflowHelpers.js.map +1 -1
  100. package/dist/cjs/workforceHelpers.js +75 -103
  101. package/dist/cjs/workforceHelpers.js.map +1 -1
  102. package/dist/cjs/zip-utils.js +3 -3
  103. package/dist/cjs/zip-utils.js.map +1 -1
  104. package/dist/esm/completeItem.js +2 -2
  105. package/dist/esm/completeItem.js.map +1 -1
  106. package/dist/esm/create-hub-request-options.js +1 -1
  107. package/dist/esm/deleteHelpers/deleteEmptyGroups.js +1 -1
  108. package/dist/esm/deleteHelpers/deleteEmptyGroups.js.map +1 -1
  109. package/dist/esm/deleteHelpers/deleteGroupIfEmpty.js +6 -6
  110. package/dist/esm/deleteHelpers/deleteGroupIfEmpty.js.map +1 -1
  111. package/dist/esm/deleteHelpers/deleteSolutionContents.js +8 -12
  112. package/dist/esm/deleteHelpers/deleteSolutionContents.js.map +1 -1
  113. package/dist/esm/deleteHelpers/deleteSolutionFolder.js +6 -6
  114. package/dist/esm/deleteHelpers/deleteSolutionFolder.js.map +1 -1
  115. package/dist/esm/deleteHelpers/deleteSolutionItem.js +4 -4
  116. package/dist/esm/deleteHelpers/deleteSolutionItem.js.map +1 -1
  117. package/dist/esm/deleteHelpers/reconstructBuildOrderIds.js.map +1 -1
  118. package/dist/esm/deleteHelpers/removeItems.js +5 -6
  119. package/dist/esm/deleteHelpers/removeItems.js.map +1 -1
  120. package/dist/esm/deleteHelpers/reportProgress.js +1 -1
  121. package/dist/esm/deleteHelpers/reportProgress.js.map +1 -1
  122. package/dist/esm/deleteSolution.js +7 -7
  123. package/dist/esm/deleteSolution.js.map +1 -1
  124. package/dist/esm/dependencies.js +5 -5
  125. package/dist/esm/dependencies.js.map +1 -1
  126. package/dist/esm/featureServiceHelpers.js +134 -167
  127. package/dist/esm/featureServiceHelpers.js.map +1 -1
  128. package/dist/esm/formHelpers.js +1 -1
  129. package/dist/esm/formHelpers.js.map +1 -1
  130. package/dist/esm/generalHelpers.js +25 -40
  131. package/dist/esm/generalHelpers.js.map +1 -1
  132. package/dist/esm/get-subscription-info.js +1 -1
  133. package/dist/esm/get-subscription-info.js.map +1 -1
  134. package/dist/esm/getDeletableSolutionInfo.js.map +1 -1
  135. package/dist/esm/getItemTypeAbbrev.js +27 -27
  136. package/dist/esm/getItemTypeAbbrev.js.map +1 -1
  137. package/dist/esm/getSolutionSummary.js +51 -52
  138. package/dist/esm/getSolutionSummary.js.map +1 -1
  139. package/dist/esm/interfaces.d.ts +2 -2
  140. package/dist/esm/interfaces.js +2 -2
  141. package/dist/esm/interfaces.js.map +1 -1
  142. package/dist/esm/item-reuse.js +27 -24
  143. package/dist/esm/item-reuse.js.map +1 -1
  144. package/dist/esm/libConnectors.js +1 -1
  145. package/dist/esm/libConnectors.js.map +1 -1
  146. package/dist/esm/migrations/apply-schema.js +1 -1
  147. package/dist/esm/migrations/is-legacy-solution.js +1 -2
  148. package/dist/esm/migrations/is-legacy-solution.js.map +1 -1
  149. package/dist/esm/migrations/upgrade-two-dot-five.js +2 -2
  150. package/dist/esm/migrations/upgrade-two-dot-five.js.map +1 -1
  151. package/dist/esm/migrations/upgrade-two-dot-four.js +4 -4
  152. package/dist/esm/migrations/upgrade-two-dot-four.js.map +1 -1
  153. package/dist/esm/migrations/upgrade-two-dot-seven.js.map +1 -1
  154. package/dist/esm/migrations/upgrade-two-dot-six.js +2 -2
  155. package/dist/esm/migrations/upgrade-two-dot-six.js.map +1 -1
  156. package/dist/esm/migrations/upgrade-two-dot-three.js +3 -3
  157. package/dist/esm/migrations/upgrade-two-dot-three.js.map +1 -1
  158. package/dist/esm/migrations/upgrade-two-dot-two.js +3 -3
  159. package/dist/esm/migrations/upgrade-two-dot-two.js.map +1 -1
  160. package/dist/esm/migrations/upgrade-two-dot-zero.js +3 -3
  161. package/dist/esm/migrations/upgrade-two-dot-zero.js.map +1 -1
  162. package/dist/esm/migrator.js +1 -3
  163. package/dist/esm/migrator.js.map +1 -1
  164. package/dist/esm/resourceHelpers.js +26 -31
  165. package/dist/esm/resourceHelpers.js.map +1 -1
  166. package/dist/esm/resources/add-resource-from-blob.js +2 -2
  167. package/dist/esm/resources/add-resource-from-blob.js.map +1 -1
  168. package/dist/esm/resources/addMetadataFromBlob.js +3 -3
  169. package/dist/esm/resources/addMetadataFromBlob.js.map +1 -1
  170. package/dist/esm/resources/copyAssociatedFiles.js +26 -32
  171. package/dist/esm/resources/copyAssociatedFiles.js.map +1 -1
  172. package/dist/esm/resources/copyDataIntoItem.js +7 -9
  173. package/dist/esm/resources/copyDataIntoItem.js.map +1 -1
  174. package/dist/esm/resources/copyMetadataIntoItem.js +4 -6
  175. package/dist/esm/resources/copyMetadataIntoItem.js.map +1 -1
  176. package/dist/esm/resources/copyResourceIntoZip.js +3 -7
  177. package/dist/esm/resources/copyResourceIntoZip.js.map +1 -1
  178. package/dist/esm/resources/copyZipIntoItem.js +4 -5
  179. package/dist/esm/resources/copyZipIntoItem.js.map +1 -1
  180. package/dist/esm/resources/createCopyResults.js +1 -1
  181. package/dist/esm/resources/get-blob.js +2 -2
  182. package/dist/esm/resources/get-blob.js.map +1 -1
  183. package/dist/esm/resources/getItemResourcesFilesFromPaths.js +5 -5
  184. package/dist/esm/resources/getItemResourcesFilesFromPaths.js.map +1 -1
  185. package/dist/esm/resources/getItemResourcesPaths.js +1 -1
  186. package/dist/esm/resources/getItemResourcesPaths.js.map +1 -1
  187. package/dist/esm/resources/transform-resource-paths-to-solution-resources.js +5 -11
  188. package/dist/esm/resources/transform-resource-paths-to-solution-resources.js.map +1 -1
  189. package/dist/esm/restHelpers.js +224 -266
  190. package/dist/esm/restHelpers.js.map +1 -1
  191. package/dist/esm/restHelpersGet.js +56 -64
  192. package/dist/esm/restHelpersGet.js.map +1 -1
  193. package/dist/esm/sharing/share-item-to-groups.js +2 -2
  194. package/dist/esm/sharing/share-item-to-groups.js.map +1 -1
  195. package/dist/esm/templatization.js +10 -12
  196. package/dist/esm/templatization.js.map +1 -1
  197. package/dist/esm/trackingHelpers.js +10 -15
  198. package/dist/esm/trackingHelpers.js.map +1 -1
  199. package/dist/esm/velocityHelpers.js +7 -11
  200. package/dist/esm/velocityHelpers.js.map +1 -1
  201. package/dist/esm/workflowHelpers.js +15 -17
  202. package/dist/esm/workflowHelpers.js.map +1 -1
  203. package/dist/esm/workforceHelpers.js +75 -103
  204. package/dist/esm/workforceHelpers.js.map +1 -1
  205. package/dist/esm/zip-utils.js +3 -3
  206. package/dist/esm/zip-utils.js.map +1 -1
  207. package/dist/solution.js_commit.txt +5 -5
  208. package/package.json +5 -5
@@ -21,8 +21,8 @@
21
21
  // ------------------------------------------------------------------------------------------------------------------ //
22
22
  export { queryFeatures as rest_queryFeatures, addFeatures as rest_addFeatures } from "@esri/arcgis-rest-feature-layer";
23
23
  //#region Imports -------------------------------------------------------------------------------------------------------//
24
- import { UNREACHABLE } from "./interfaces";
25
- import { checkUrlPathTermination, deleteProp, deleteProps, fail, getProp, setCreateProp, setProp } from "./generalHelpers";
24
+ import { UNREACHABLE, } from "./interfaces";
25
+ import { checkUrlPathTermination, deleteProp, deleteProps, fail, getProp, setCreateProp, setProp, } from "./generalHelpers";
26
26
  import { replaceInTemplate, templatizeTerm, templatizeIds } from "./templatization";
27
27
  import { addToServiceDefinition, getLayerUpdates, getRequest, rest_request } from "./restHelpers";
28
28
  import { isTrackingViewTemplate, templatizeTracker } from "./trackingHelpers";
@@ -40,7 +40,7 @@ export function getFeatureServiceRelatedRecords(url, relationshipId, objectIds)
40
40
  const options = {
41
41
  url: url + `/${relationshipId}`,
42
42
  relationshipId,
43
- objectIds
43
+ objectIds,
44
44
  };
45
45
  return queryRelated(options);
46
46
  }
@@ -63,7 +63,7 @@ export function templatize(itemTemplate, dependencies, templatizeFieldReferences
63
63
  ...itemTemplate.item,
64
64
  id: templatizeTerm(id, id, ".itemId"),
65
65
  url: _templatize(id, "url"),
66
- typeKeywords: templatizeIds(itemTemplate.item.typeKeywords)
66
+ typeKeywords: templatizeIds(itemTemplate.item.typeKeywords),
67
67
  };
68
68
  // special handeling if we are dealing with a tracker view
69
69
  templatizeTracker(itemTemplate);
@@ -78,7 +78,7 @@ export function templatize(itemTemplate, dependencies, templatizeFieldReferences
78
78
  const _items = layers.concat(tables);
79
79
  // Set up symbols for the URL of the feature service and its layers and tables
80
80
  templateDictionary[fsUrl] = itemTemplate.item.url; // map FS URL to its templatized form
81
- jsonItems.concat(_items).forEach(layer => {
81
+ jsonItems.concat(_items).forEach((layer) => {
82
82
  templateDictionary[fsUrl + "/" + layer.id] = _templatize(id, "layer" + layer.id + ".url");
83
83
  });
84
84
  // templatize the service references serviceItemId
@@ -107,7 +107,7 @@ export function templatize(itemTemplate, dependencies, templatizeFieldReferences
107
107
  let hasZ = false;
108
108
  jsonItems.forEach((jsonItem) => {
109
109
  // get the source service json for the given data item
110
- const matchingItems = _items.filter(item => {
110
+ const matchingItems = _items.filter((item) => {
111
111
  return jsonItem.id === item.id;
112
112
  });
113
113
  // templatize the source service json
@@ -128,7 +128,7 @@ export function templatize(itemTemplate, dependencies, templatizeFieldReferences
128
128
  */
129
129
  export function deleteViewProps(layer) {
130
130
  const props = ["definitionQuery"];
131
- props.forEach(prop => {
131
+ props.forEach((prop) => {
132
132
  deleteProp(layer, prop);
133
133
  });
134
134
  }
@@ -149,7 +149,7 @@ export function cacheFieldInfos(layer, fieldInfos) {
149
149
  fieldInfos[layer.id] = {
150
150
  sourceFields: JSON.parse(JSON.stringify(layer.fields)),
151
151
  type: layer.type,
152
- id: layer.id
152
+ id: layer.id,
153
153
  };
154
154
  }
155
155
  // cache each of these properties as they each can contain field references
@@ -162,9 +162,9 @@ export function cacheFieldInfos(layer, fieldInfos) {
162
162
  relationships: true,
163
163
  drawingInfo: false,
164
164
  timeInfo: false,
165
- viewDefinitionQuery: false
165
+ viewDefinitionQuery: false,
166
166
  };
167
- Object.keys(props).forEach(k => {
167
+ Object.keys(props).forEach((k) => {
168
168
  _cacheFieldInfo(layer, k, fieldInfos, props[k]);
169
169
  });
170
170
  return fieldInfos;
@@ -178,9 +178,9 @@ export function cacheFieldInfos(layer, fieldInfos) {
178
178
  * @returns An updated instance of the fieldInfos
179
179
  */
180
180
  export function cacheContingentValues(id, fieldInfos, itemTemplate) {
181
- const contingentValues = getProp(itemTemplate, 'properties.contingentValues');
181
+ const contingentValues = getProp(itemTemplate, "properties.contingentValues");
182
182
  if (contingentValues && contingentValues[id]) {
183
- fieldInfos[id]['contingentValues'] = contingentValues[id];
183
+ fieldInfos[id]["contingentValues"] = contingentValues[id];
184
184
  }
185
185
  return fieldInfos;
186
186
  }
@@ -195,10 +195,7 @@ export function cacheContingentValues(id, fieldInfos, itemTemplate) {
195
195
  */
196
196
  export function _cacheFieldInfo(layer, prop, fieldInfos, removeProp) {
197
197
  /* istanbul ignore else */
198
- if (layer &&
199
- layer.hasOwnProperty(prop) &&
200
- fieldInfos &&
201
- fieldInfos.hasOwnProperty(layer.id)) {
198
+ if (layer && layer.hasOwnProperty(prop) && fieldInfos && fieldInfos.hasOwnProperty(layer.id)) {
202
199
  fieldInfos[layer.id][prop] = layer[prop];
203
200
  // editFieldsInfo does not come through unless its with the layer
204
201
  // when it's being added
@@ -218,7 +215,7 @@ export function cachePopupInfos(data) {
218
215
  // store any popupInfo so we can update after any potential name changes
219
216
  const popupInfos = {
220
217
  layers: {},
221
- tables: {}
218
+ tables: {},
222
219
  };
223
220
  if (data && data.layers && data.layers.length > 0) {
224
221
  _cachePopupInfo(popupInfos, "layers", data.layers);
@@ -261,11 +258,11 @@ export function cacheLayerInfo(layerId, itemId, url, templateDictionary) {
261
258
  // need to structure these differently so they are not used for standard replacement calls
262
259
  // this now adds additional vars that are not needing replacement unless we fail to fetch the service
263
260
  const newVars = getProp(templateDictionary, `${UNREACHABLE}.${itemId}`) || {
264
- itemId
261
+ itemId,
265
262
  };
266
263
  newVars[layerIdVar] = getProp(newVars, layerIdVar) || {
267
264
  layerId,
268
- itemId
265
+ itemId,
269
266
  };
270
267
  if (url !== "") {
271
268
  newVars[layerIdVar]["url"] = url;
@@ -274,7 +271,7 @@ export function cacheLayerInfo(layerId, itemId, url, templateDictionary) {
274
271
  unreachableVars[itemId] = newVars;
275
272
  templateDictionary[UNREACHABLE] = {
276
273
  ...templateDictionary[UNREACHABLE],
277
- ...unreachableVars
274
+ ...unreachableVars,
278
275
  };
279
276
  }
280
277
  }
@@ -294,7 +291,7 @@ export function updateTemplate(itemTemplate, templateDictionary, createResponse)
294
291
  templateDictionary[itemTemplate.itemId] = Object.assign(templateDictionary[itemTemplate.itemId] || {}, {
295
292
  itemId: createResponse.serviceItemId,
296
293
  url: checkUrlPathTermination(createResponse.serviceurl),
297
- name: createResponse.name
294
+ name: createResponse.name,
298
295
  });
299
296
  // Update the item template now that the new service has been created
300
297
  itemTemplate.itemId = createResponse.serviceItemId;
@@ -314,7 +311,7 @@ export function _updateTypeKeywords(itemTemplate, createResponse) {
314
311
  const iKwords = getProp(itemTemplate, "item.typeKeywords");
315
312
  const cKwords = getProp(createResponse, "typeKeywords");
316
313
  if (iKwords && cKwords) {
317
- setProp(itemTemplate, "item.typeKeywords", iKwords.concat(cKwords.filter(k => iKwords.indexOf(k) < 0)));
314
+ setProp(itemTemplate, "item.typeKeywords", iKwords.concat(cKwords.filter((k) => iKwords.indexOf(k) < 0)));
318
315
  }
319
316
  return itemTemplate;
320
317
  }
@@ -335,16 +332,12 @@ export function getLayerSettings(layerInfos, url, itemId, enterpriseIDMapping) {
335
332
  ids.forEach((id) => {
336
333
  const _layerId = getProp(layerInfos[id], "item.id");
337
334
  const isNum = parseInt(_layerId, 10) > -1;
338
- const layerId = isNum && enterpriseIDMapping
339
- ? enterpriseIDMapping[_layerId]
340
- : isNum
341
- ? _layerId
342
- : id;
335
+ const layerId = isNum && enterpriseIDMapping ? enterpriseIDMapping[_layerId] : isNum ? _layerId : id;
343
336
  settings[`layer${isNum ? _layerId : id}`] = {
344
337
  fields: _getNameMapping(layerInfos, id),
345
338
  url: checkUrlPathTermination(url) + layerId,
346
339
  layerId,
347
- itemId
340
+ itemId,
348
341
  };
349
342
  deleteProp(layerInfos[id], "newFields");
350
343
  deleteProp(layerInfos[id], "sourceFields");
@@ -363,7 +356,7 @@ export function getLayerSettings(layerInfos, url, itemId, enterpriseIDMapping) {
363
356
  */
364
357
  export function setNamesAndTitles(templates, solutionItemId) {
365
358
  const names = [];
366
- return templates.map(t => {
359
+ return templates.map((t) => {
367
360
  /* istanbul ignore else */
368
361
  if (t.item.type === "Feature Service") {
369
362
  // Retain the existing title but swap with name if it's missing
@@ -378,10 +371,7 @@ export function setNamesAndTitles(templates, solutionItemId) {
378
371
  // Limit the baseName to 50 characters before the _<guid>
379
372
  const name = baseName.substring(0, 50) + "_" + solutionItemId;
380
373
  // If the name + GUID already exists then append "_occurrenceCount"
381
- t.item.name =
382
- names.indexOf(name) === -1
383
- ? name
384
- : `${name}_${names.filter(n => n === name).length}`;
374
+ t.item.name = names.indexOf(name) === -1 ? name : `${name}_${names.filter((n) => n === name).length}`;
385
375
  names.push(name);
386
376
  }
387
377
  }
@@ -414,7 +404,7 @@ export function updateSettingsFieldInfos(itemTemplate, settings) {
414
404
  ? { ...settings[k]["sourceServiceFields"], ...fieldInfos }
415
405
  : fieldInfos;
416
406
  const layerKeys = Object.keys(settings[_k]);
417
- layerKeys.forEach(layerKey => {
407
+ layerKeys.forEach((layerKey) => {
418
408
  /* istanbul ignore else */
419
409
  if (layerKey.startsWith("layer")) {
420
410
  settings[k][layerKey] = settings[_k][layerKey];
@@ -442,8 +432,8 @@ export function updateTemplateForInvalidDesignations(template, authentication) {
442
432
  // get the admin URL
443
433
  const url = template.item.url;
444
434
  rest_request(url + "?f=json", {
445
- authentication: authentication
446
- }).then(serviceData => {
435
+ authentication: authentication,
436
+ }).then((serviceData) => {
447
437
  const layerInfos = {};
448
438
  const layersAndTables = (serviceData.layers || []).concat(serviceData.tables || []);
449
439
  layersAndTables.forEach((l) => {
@@ -453,10 +443,10 @@ export function updateTemplateForInvalidDesignations(template, authentication) {
453
443
  }
454
444
  });
455
445
  template.data[template.itemId] = Object.assign({
456
- itemId: template.itemId
446
+ itemId: template.itemId,
457
447
  }, getLayerSettings(layerInfos, url, template.itemId));
458
448
  resolve(template);
459
- }, e => reject(fail(e)));
449
+ }, (e) => reject(fail(e)));
460
450
  }
461
451
  else {
462
452
  resolve(template);
@@ -476,7 +466,7 @@ export function updateTemplateForInvalidDesignations(template, authentication) {
476
466
  */
477
467
  export function processContingentValues(properties, adminUrl, authentication) {
478
468
  return new Promise((resolve, reject) => {
479
- if (getProp(properties, 'service.isView')) {
469
+ if (getProp(properties, "service.isView")) {
480
470
  // views will inherit from the source service
481
471
  resolve();
482
472
  }
@@ -486,8 +476,10 @@ export function processContingentValues(properties, adminUrl, authentication) {
486
476
  const contingentValuePromises = layersAndTables.reduce((prev, cur) => {
487
477
  /* istanbul ignore else */
488
478
  if (cur.hasContingentValuesDefinition) {
489
- prev.push(rest_request(`${adminUrl}/${cur['id']}/contingentValues?f=json`, { authentication }));
490
- layerIds.push(cur['id']);
479
+ prev.push(rest_request(`${adminUrl}/${cur["id"]}/contingentValues?f=json`, {
480
+ authentication,
481
+ }));
482
+ layerIds.push(cur["id"]);
491
483
  }
492
484
  return prev;
493
485
  }, []);
@@ -495,13 +487,18 @@ export function processContingentValues(properties, adminUrl, authentication) {
495
487
  Promise.all(contingentValuePromises).then((results) => {
496
488
  const contingentValues = {};
497
489
  results.forEach((r, i) => {
498
- deleteProp(r, 'typeCodes');
490
+ deleteProp(r, "typeCodes");
499
491
  /* istanbul ignore else */
500
- if (getProp(r, 'stringDicts') && getProp(r, 'contingentValuesDefinition')) {
501
- r.contingentValuesDefinition['stringDicts'] = r.stringDicts;
502
- deleteProp(r, 'stringDicts');
492
+ if (getProp(r, "stringDicts") && getProp(r, "contingentValuesDefinition")) {
493
+ r.contingentValuesDefinition["stringDicts"] = r.stringDicts;
494
+ deleteProp(r, "stringDicts");
503
495
  }
504
- deleteProps(getProp(r, 'contingentValuesDefinition'), ['layerID', 'layerName', 'geometryType', 'hasSubType']);
496
+ deleteProps(getProp(r, "contingentValuesDefinition"), [
497
+ "layerID",
498
+ "layerName",
499
+ "geometryType",
500
+ "hasSubType",
501
+ ]);
505
502
  contingentValues[layerIds[i]] = r;
506
503
  });
507
504
  properties.contingentValues = contingentValues;
@@ -525,13 +522,12 @@ export function processContingentValues(properties, adminUrl, authentication) {
525
522
  */
526
523
  export function deTemplatizeFieldInfos(fieldInfos, popupInfos, adminLayerInfos, settings) {
527
524
  const fieldInfoKeys = Object.keys(fieldInfos);
528
- fieldInfoKeys.forEach(id => {
525
+ fieldInfoKeys.forEach((id) => {
529
526
  if (fieldInfos[id].hasOwnProperty("templates")) {
530
527
  fieldInfos[id].templates = JSON.parse(replaceInTemplate(JSON.stringify(fieldInfos[id].templates), settings));
531
528
  }
532
529
  if (fieldInfos[id].hasOwnProperty("adminLayerInfo")) {
533
- adminLayerInfos[id].viewLayerDefinition.table.relatedTables =
534
- fieldInfos[id].adminLayerInfo;
530
+ adminLayerInfos[id].viewLayerDefinition.table.relatedTables = fieldInfos[id].adminLayerInfo;
535
531
  deleteProp(fieldInfos[id], "adminLayerInfo");
536
532
  }
537
533
  if (fieldInfos[id].hasOwnProperty("types")) {
@@ -541,7 +537,7 @@ export function deTemplatizeFieldInfos(fieldInfos, popupInfos, adminLayerInfos,
541
537
  return {
542
538
  popupInfos: replaceInTemplate(popupInfos, settings),
543
539
  fieldInfos: replaceInTemplate(fieldInfos, settings),
544
- adminLayerInfos: replaceInTemplate(adminLayerInfos, settings)
540
+ adminLayerInfos: replaceInTemplate(adminLayerInfos, settings),
545
541
  };
546
542
  }
547
543
  /**
@@ -559,13 +555,13 @@ export function getLayersAndTables(itemTemplate) {
559
555
  (properties.layers || []).forEach(function (layer) {
560
556
  layersAndTables.push({
561
557
  item: layer,
562
- type: "layer"
558
+ type: "layer",
563
559
  });
564
560
  });
565
561
  (properties.tables || []).forEach(function (table) {
566
562
  layersAndTables.push({
567
563
  item: table,
568
- type: "table"
564
+ type: "table",
569
565
  });
570
566
  });
571
567
  return layersAndTables;
@@ -583,14 +579,14 @@ export function getLayersAndTables(itemTemplate) {
583
579
  */
584
580
  export function getExistingLayersAndTables(url, ids, authentication) {
585
581
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
586
- return new Promise(resolve => {
587
- const defs = ids.map(id => {
582
+ return new Promise((resolve) => {
583
+ const defs = ids.map((id) => {
588
584
  return rest_request(checkUrlPathTermination(url) + id, {
589
- authentication
585
+ authentication,
590
586
  });
591
587
  });
592
588
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
593
- Promise.all(defs.map(p => p.catch(e => e))).then(resolve);
589
+ Promise.all(defs.map((p) => p.catch((e) => e))).then(resolve);
594
590
  });
595
591
  }
596
592
  /**
@@ -620,13 +616,13 @@ export function addFeatureServiceLayersAndTables(itemTemplate, templateDictionar
620
616
  // Detemplatize field references and update the layer properties
621
617
  // Only failure path is handled by addFeatureServiceDefinition
622
618
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
623
- updateLayerFieldReferences(itemTemplate, fieldInfos, popupInfos, adminLayerInfos, templateDictionary).then(r => {
619
+ updateLayerFieldReferences(itemTemplate, fieldInfos, popupInfos, adminLayerInfos, templateDictionary).then((r) => {
624
620
  // Update relationships and layer definitions
625
621
  const updates = getLayerUpdates({
626
622
  message: "updated layer definition",
627
623
  objects: r.layerInfos.fieldInfos,
628
624
  itemTemplate: r.itemTemplate,
629
- authentication
625
+ authentication,
630
626
  }, templateDictionary.isPortal);
631
627
  // Process the updates sequentially
632
628
  updates
@@ -635,11 +631,9 @@ export function addFeatureServiceLayersAndTables(itemTemplate, templateDictionar
635
631
  return getRequest(update);
636
632
  });
637
633
  }, Promise.resolve(null))
638
- .then(() => resolve(null), (e) => reject(fail(e)) // getRequest
639
- );
634
+ .then(() => resolve(null), (e) => reject(fail(e)));
640
635
  });
641
- }, e => reject(fail(e)) // addFeatureServiceDefinition
642
- );
636
+ }, (e) => reject(fail(e)));
643
637
  }
644
638
  else {
645
639
  resolve(null);
@@ -671,7 +665,7 @@ export function addFeatureServiceDefinition(serviceUrl, listToAdd, templateDicti
671
665
  let options = {
672
666
  layers: [],
673
667
  tables: [],
674
- authentication
668
+ authentication,
675
669
  };
676
670
  // if the service has veiws keep track of the fields so we can use them to
677
671
  // compare with the view fields
@@ -705,10 +699,9 @@ export function addFeatureServiceDefinition(serviceUrl, listToAdd, templateDicti
705
699
  item.adminLayerInfo = replaceInTemplate(item.adminLayerInfo, templateDictionary);
706
700
  /* istanbul ignore else */
707
701
  if (fieldInfos && fieldInfos.hasOwnProperty(item.id)) {
708
- Object.keys(templateDictionary).some(k => {
702
+ Object.keys(templateDictionary).some((k) => {
709
703
  if (templateDictionary[k].itemId === itemTemplate.itemId) {
710
- fieldInfos[item.id]["sourceServiceFields"] =
711
- templateDictionary[k].sourceServiceFields;
704
+ fieldInfos[item.id]["sourceServiceFields"] = templateDictionary[k].sourceServiceFields;
712
705
  return true;
713
706
  }
714
707
  else {
@@ -740,7 +733,7 @@ export function addFeatureServiceDefinition(serviceUrl, listToAdd, templateDicti
740
733
  options = {
741
734
  layers: [],
742
735
  tables: [],
743
- authentication
736
+ authentication,
744
737
  };
745
738
  }
746
739
  });
@@ -792,7 +785,7 @@ export function _updateAddOptions(itemTemplate, options, layerChunks, isSelfRefe
792
785
  options = {
793
786
  layers: [],
794
787
  tables: [],
795
- authentication
788
+ authentication,
796
789
  };
797
790
  }
798
791
  }
@@ -808,9 +801,9 @@ export function _updateAddOptions(itemTemplate, options, layerChunks, isSelfRefe
808
801
  * @private
809
802
  */
810
803
  export function _isSelfReferential(layersAndTables) {
811
- const names = layersAndTables.map(l => l.item.name);
804
+ const names = layersAndTables.map((l) => l.item.name);
812
805
  const srcTables = {};
813
- return layersAndTables.some(l => {
806
+ return layersAndTables.some((l) => {
814
807
  const table = l.item.adminLayerInfo?.viewLayerDefinition?.table;
815
808
  if (table) {
816
809
  const name = table.sourceServiceName;
@@ -828,7 +821,7 @@ export function _isSelfReferential(layersAndTables) {
828
821
  srcTables[name] = [id];
829
822
  }
830
823
  }
831
- return (table.relatedTables || []).some(r => names.indexOf(r.name) > -1);
824
+ return (table.relatedTables || []).some((r) => names.indexOf(r.name) > -1);
832
825
  }
833
826
  });
834
827
  }
@@ -888,7 +881,7 @@ export function _updateForPortal(item, itemTemplate, templateDictionary) {
888
881
  }
889
882
  }
890
883
  else {
891
- Object.keys(templateDictionary).some(k => {
884
+ Object.keys(templateDictionary).some((k) => {
892
885
  /* istanbul ignore else */
893
886
  if (templateDictionary[k].itemId === item.serviceItemId) {
894
887
  const layerInfo = templateDictionary[k][`layer${item.id}`];
@@ -928,12 +921,10 @@ export function _getFieldNames(table, itemTemplate, templateDictionary) {
928
921
  /* istanbul ignore else */
929
922
  if (typeof viewSourceLayerId === "number") {
930
923
  // need to make sure these actually exist in the source..
931
- itemTemplate.dependencies.forEach(d => {
924
+ itemTemplate.dependencies.forEach((d) => {
932
925
  const layerInfo = templateDictionary[d][`layer${viewSourceLayerId}`];
933
926
  /* istanbul ignore else */
934
- if (layerInfo &&
935
- layerInfo.fields &&
936
- templateDictionary[d].name === table.sourceServiceName) {
927
+ if (layerInfo && layerInfo.fields && templateDictionary[d].name === table.sourceServiceName) {
937
928
  if (Array.isArray(layerInfo.fields)) {
938
929
  sourceLayerFields = sourceLayerFields.concat(layerInfo.fields.map((f) => f.name));
939
930
  }
@@ -996,8 +987,7 @@ export function _updateItemFields(item, fieldNames) {
996
987
  */
997
988
  export function _updateSourceLayerFields(table, sourceLayerFields) {
998
989
  /* istanbul ignore else */
999
- if (Array.isArray(table.sourceLayerFields) &&
1000
- table.sourceLayerFields.length > 0) {
990
+ if (Array.isArray(table.sourceLayerFields) && table.sourceLayerFields.length > 0) {
1001
991
  // need to make sure these actually exist in the source..
1002
992
  /* istanbul ignore else */
1003
993
  if (sourceLayerFields.length > 0) {
@@ -1020,9 +1010,7 @@ export function _updateGeomFieldName(adminLayerInfo, templateDictionary) {
1020
1010
  const fieldName = getProp(adminLayerInfo, "geometryField.name");
1021
1011
  /* istanbul ignore else */
1022
1012
  if (fieldName && tableName) {
1023
- const geomName = templateDictionary.isPortal
1024
- ? `${tableName}.shape`
1025
- : `${tableName}.Shape`;
1013
+ const geomName = templateDictionary.isPortal ? `${tableName}.shape` : `${tableName}.Shape`;
1026
1014
  setProp(adminLayerInfo, "geometryField.name", geomName);
1027
1015
  }
1028
1016
  else if (!fieldName && getProp(adminLayerInfo, "geometryField")) {
@@ -1047,13 +1035,11 @@ export function _updateTemplateDictionaryFields(itemTemplate, templateDictionary
1047
1035
  const tables = itemTemplate.properties.tables;
1048
1036
  const layersAndTables = layers.concat(tables);
1049
1037
  const fieldInfos = {};
1050
- layersAndTables.forEach(layerOrTable => {
1038
+ layersAndTables.forEach((layerOrTable) => {
1051
1039
  fieldInfos[layerOrTable.id] = layerOrTable.fields;
1052
1040
  });
1053
- Object.keys(templateDictionary).some(k => {
1054
- if (compareItemId
1055
- ? templateDictionary[k].itemId === itemTemplate.itemId
1056
- : k === itemTemplate.itemId) {
1041
+ Object.keys(templateDictionary).some((k) => {
1042
+ if (compareItemId ? templateDictionary[k].itemId === itemTemplate.itemId : k === itemTemplate.itemId) {
1057
1043
  templateDictionary[k].fieldInfos = fieldInfos;
1058
1044
  return true;
1059
1045
  }
@@ -1107,9 +1093,7 @@ export function validateSpatialReferenceAndExtent(serviceInfo, itemTemplate, tem
1107
1093
  }
1108
1094
  const viewExt = getProp(serviceInfo, "service.fullExtent");
1109
1095
  /* istanbul ignore else */
1110
- if (sourceExt &&
1111
- viewExt &&
1112
- JSON.stringify(sourceExt) !== JSON.stringify(viewExt)) {
1096
+ if (sourceExt && viewExt && JSON.stringify(sourceExt) !== JSON.stringify(viewExt)) {
1113
1097
  setCreateProp(serviceInfo, "defaultExtent", sourceExt);
1114
1098
  }
1115
1099
  }
@@ -1127,18 +1111,17 @@ export function validateSpatialReferenceAndExtent(serviceInfo, itemTemplate, tem
1127
1111
  * @private
1128
1112
  */
1129
1113
  export function _getSourceSpatialReferenceAndExtent(serviceInfo, itemTemplate, templateDictionary, validateGeom) {
1130
- const layersAndTables = [
1131
- ...serviceInfo.layers || [],
1132
- ...serviceInfo.tables || []
1133
- ];
1114
+ const layersAndTables = [...(serviceInfo.layers || []), ...(serviceInfo.tables || [])];
1134
1115
  let spatialReference;
1135
1116
  let extent;
1136
- itemTemplate.dependencies.some(id => {
1117
+ itemTemplate.dependencies.some((id) => {
1137
1118
  const source = templateDictionary[id];
1138
- const hasGeom = validateGeom ? layersAndTables.some(layerOrTable => {
1139
- const name = getProp(layerOrTable, "adminLayerInfo.viewLayerDefinition.table.sourceServiceName");
1140
- return name && source.name && name === source.name && layerOrTable.geometryType;
1141
- }) : true;
1119
+ const hasGeom = validateGeom
1120
+ ? layersAndTables.some((layerOrTable) => {
1121
+ const name = getProp(layerOrTable, "adminLayerInfo.viewLayerDefinition.table.sourceServiceName");
1122
+ return name && source.name && name === source.name && layerOrTable.geometryType;
1123
+ })
1124
+ : true;
1142
1125
  const sr = getProp(source, "defaultSpatialReference");
1143
1126
  /* istanbul ignore else */
1144
1127
  if (!spatialReference && sr && hasGeom) {
@@ -1153,7 +1136,7 @@ export function _getSourceSpatialReferenceAndExtent(serviceInfo, itemTemplate, t
1153
1136
  });
1154
1137
  return {
1155
1138
  spatialReference,
1156
- extent
1139
+ extent,
1157
1140
  };
1158
1141
  }
1159
1142
  /**
@@ -1177,9 +1160,9 @@ export function updateLayerFieldReferences(itemTemplate, fieldInfos, popupInfos,
1177
1160
  updatePopupInfo(itemTemplate, layerInfos.popupInfos);
1178
1161
  resolveFn({
1179
1162
  itemTemplate,
1180
- layerInfos
1163
+ layerInfos,
1181
1164
  });
1182
- }, e => rejectFn(fail(e)));
1165
+ }, (e) => rejectFn(fail(e)));
1183
1166
  });
1184
1167
  }
1185
1168
  /**
@@ -1204,7 +1187,7 @@ export function postProcessFields(itemTemplate, layerInfos, popupInfos, adminLay
1204
1187
  const id = itemTemplate.itemId;
1205
1188
  const settingsKeys = Object.keys(templateDictionary);
1206
1189
  let templateInfo;
1207
- settingsKeys.some(k => {
1190
+ settingsKeys.some((k) => {
1208
1191
  if (templateDictionary[k].itemId === id) {
1209
1192
  templateInfo = templateDictionary[k];
1210
1193
  return true;
@@ -1229,8 +1212,7 @@ export function postProcessFields(itemTemplate, layerInfos, popupInfos, adminLay
1229
1212
  const layerInfo = layerInfos[item.id];
1230
1213
  layerInfo["isView"] = item.isView;
1231
1214
  layerInfo["newFields"] = item.fields;
1232
- layerInfo["sourceSchemaChangesAllowed"] =
1233
- item.sourceSchemaChangesAllowed;
1215
+ layerInfo["sourceSchemaChangesAllowed"] = item.sourceSchemaChangesAllowed;
1234
1216
  /* istanbul ignore else */
1235
1217
  if (item.editFieldsInfo) {
1236
1218
  // more than case change when deployed to protal so keep track of the new names
@@ -1262,7 +1244,7 @@ export function postProcessFields(itemTemplate, layerInfos, popupInfos, adminLay
1262
1244
  * @private
1263
1245
  */
1264
1246
  export function updatePopupInfo(itemTemplate, popupInfos) {
1265
- ["layers", "tables"].forEach(type => {
1247
+ ["layers", "tables"].forEach((type) => {
1266
1248
  const _items = getProp(itemTemplate, "data." + type);
1267
1249
  /* istanbul ignore else */
1268
1250
  if (_items && Array.isArray(_items)) {
@@ -1325,7 +1307,7 @@ export function _templatizeLayer(dataItem, adminItem, itemTemplate, dependencies
1325
1307
  if (dataItem) {
1326
1308
  updates.push(dataItem);
1327
1309
  }
1328
- updates.forEach(update => {
1310
+ updates.forEach((update) => {
1329
1311
  if (update.hasOwnProperty("name")) {
1330
1312
  // templatize the name but leave the current name as the optional default
1331
1313
  update.name = templatizeTerm(update["serviceItemId"] + ".layer" + update.id, update["serviceItemId"] + ".layer" + update.id, ".name||" + update.name);
@@ -1371,7 +1353,7 @@ export function _validateFields(adminItem) {
1371
1353
  export function _validateDisplayField(adminItem, fieldNames) {
1372
1354
  const displayField = adminItem.displayField || "";
1373
1355
  let i = -1;
1374
- if (fieldNames.some(name => {
1356
+ if (fieldNames.some((name) => {
1375
1357
  i += 1;
1376
1358
  return name === displayField || name === displayField.toLowerCase();
1377
1359
  })) {
@@ -1390,7 +1372,7 @@ export function _validateDisplayField(adminItem, fieldNames) {
1390
1372
  if (globalIdField) {
1391
1373
  skipFields.push(globalIdField);
1392
1374
  }
1393
- fieldNames.some(name => {
1375
+ fieldNames.some((name) => {
1394
1376
  if (skipFields.indexOf(name) === -1) {
1395
1377
  adminItem.displayField = name;
1396
1378
  return true;
@@ -1417,7 +1399,7 @@ export function _validateIndexes(adminItem, fieldNames) {
1417
1399
  adminItem.indexes = indexes.reduce((filtered, index) => {
1418
1400
  const indexFields = index.fields.split(",");
1419
1401
  const verifiedFields = [];
1420
- indexFields.forEach(indexField => {
1402
+ indexFields.forEach((indexField) => {
1421
1403
  /* istanbul ignore else */
1422
1404
  if (indexedFields.indexOf(indexField) === -1) {
1423
1405
  indexedFields.push(indexField);
@@ -1449,11 +1431,11 @@ export function _validateTemplatesFields(adminItem, fieldNames) {
1449
1431
  const templates = adminItem.templates;
1450
1432
  /* istanbul ignore else */
1451
1433
  if (templates) {
1452
- adminItem.templates = templates.map(template => {
1434
+ adminItem.templates = templates.map((template) => {
1453
1435
  const attributes = getProp(template, "prototype.attributes");
1454
1436
  /* istanbul ignore else */
1455
1437
  if (attributes) {
1456
- Object.keys(attributes).forEach(k => {
1438
+ Object.keys(attributes).forEach((k) => {
1457
1439
  /* istanbul ignore else */
1458
1440
  if (fieldNames.indexOf(k) === -1) {
1459
1441
  delete attributes[k];
@@ -1476,7 +1458,7 @@ export function _validateTypesTemplates(adminItem, fieldNames) {
1476
1458
  const types = adminItem.types;
1477
1459
  /* istanbul ignore else */
1478
1460
  if (types) {
1479
- adminItem.types = types.map(t => {
1461
+ adminItem.types = types.map((t) => {
1480
1462
  _validateTemplatesFields(t, fieldNames);
1481
1463
  return t;
1482
1464
  });
@@ -1494,11 +1476,11 @@ export function _validateEditFieldsInfo(adminItem, fieldNames) {
1494
1476
  /* istanbul ignore else */
1495
1477
  if (editFieldsInfo) {
1496
1478
  const editFieldsInfoKeys = Object.keys(editFieldsInfo);
1497
- editFieldsInfoKeys.forEach(k => {
1479
+ editFieldsInfoKeys.forEach((k) => {
1498
1480
  const editFieldName = editFieldsInfo[k];
1499
1481
  /* istanbul ignore else */
1500
1482
  if (editFieldName) {
1501
- fieldNames.some(name => {
1483
+ fieldNames.some((name) => {
1502
1484
  if (name === editFieldName) {
1503
1485
  return true;
1504
1486
  }
@@ -1605,7 +1587,7 @@ export function _processAdminObject(object, dependencies) {
1605
1587
  * @private
1606
1588
  */
1607
1589
  export function _templatizeSourceServiceName(lookupName, dependencies) {
1608
- const deps = dependencies.filter(dependency => dependency.name === lookupName);
1590
+ const deps = dependencies.filter((dependency) => dependency.name === lookupName);
1609
1591
  return deps.length === 1 ? _templatize(deps[0].id, "name") : undefined;
1610
1592
  }
1611
1593
  /**
@@ -1651,7 +1633,7 @@ export function _templatizeAdminLayerInfoFields(layer, dependencies) {
1651
1633
  * @private
1652
1634
  */
1653
1635
  export function _getDependantItemId(lookupName, dependencies) {
1654
- const deps = dependencies.filter(dependency => dependency.name === lookupName);
1636
+ const deps = dependencies.filter((dependency) => dependency.name === lookupName);
1655
1637
  return deps.length === 1 ? deps[0].id : "";
1656
1638
  }
1657
1639
  /**
@@ -1662,7 +1644,7 @@ export function _getDependantItemId(lookupName, dependencies) {
1662
1644
  * @private
1663
1645
  */
1664
1646
  export function _templatizeAdminSourceLayerFields(fields, basePath) {
1665
- fields.forEach(f => _templatizeProperty(f, "source", basePath, "name"));
1647
+ fields.forEach((f) => _templatizeProperty(f, "source", basePath, "name"));
1666
1648
  }
1667
1649
  /**
1668
1650
  * templatize the topFilter property from adminLayerInfo related tables
@@ -1705,7 +1687,7 @@ export function _templatizeTopFilter(topFilter, basePath) {
1705
1687
  export function _templatizeRelationshipFields(layer, itemID) {
1706
1688
  if (layer && layer.relationships) {
1707
1689
  const relationships = layer.relationships;
1708
- relationships.forEach(r => {
1690
+ relationships.forEach((r) => {
1709
1691
  /* istanbul ignore else */
1710
1692
  if (r.keyField) {
1711
1693
  const basePath = itemID + ".layer" + layer.id + ".fields";
@@ -1753,7 +1735,7 @@ export function _templatizePopupInfo(layerDefinition, layer, basePath, itemID, f
1753
1735
  */
1754
1736
  export function _templatizeName(object, property, fieldNames, basePath) {
1755
1737
  if (object.hasOwnProperty(property)) {
1756
- fieldNames.forEach(name => {
1738
+ fieldNames.forEach((name) => {
1757
1739
  // Only test and replace instance of the name so any enclosing characters
1758
1740
  // will be retained
1759
1741
  const regEx = new RegExp("(\\b" + name + "\\b(?![}]{2}))", "gm");
@@ -1799,9 +1781,7 @@ export function _templatizeFieldName(name, layer, itemID, basePath) {
1799
1781
  const relatedTable = relatedTables[relationshipId];
1800
1782
  // the layers relationships stores the property as relatedTableId
1801
1783
  // the layers adminLayerInfo relatedTables stores the property as sourceLayerId
1802
- const prop = getProp(relatedTable, "relatedTableId")
1803
- ? "relatedTableId"
1804
- : "sourceLayerId";
1784
+ const prop = getProp(relatedTable, "relatedTableId") ? "relatedTableId" : "sourceLayerId";
1805
1785
  const _basePath = itemID + ".layer" + relatedTable[prop] + ".fields";
1806
1786
  rels[2] = _templatize(_basePath, rels[2], "name");
1807
1787
  name = rels.join("/");
@@ -1826,7 +1806,7 @@ export function _templatizeFieldName(name, layer, itemID, basePath) {
1826
1806
  */
1827
1807
  export function _templatizeExpressionInfos(expressionInfos, fieldNames, basePath) {
1828
1808
  return expressionInfos.map((i) => {
1829
- fieldNames.forEach(name => {
1809
+ fieldNames.forEach((name) => {
1830
1810
  i.expression = _templatizeArcadeExpressions(i.expression, name, basePath);
1831
1811
  });
1832
1812
  return i;
@@ -1865,13 +1845,13 @@ export function _templatizePopupElements(popupElelments, basePath, layer, itemID
1865
1845
  export function _templatizeMediaInfos(mediaInfos, fieldNames, basePath, layer, itemId) {
1866
1846
  // templatize various properties of mediaInfos
1867
1847
  const props = ["title", "caption"];
1868
- props.forEach(p => _templatizeName(mediaInfos, p, fieldNames, basePath));
1848
+ props.forEach((p) => _templatizeName(mediaInfos, p, fieldNames, basePath));
1869
1849
  mediaInfos.forEach((mi) => {
1870
1850
  /* istanbul ignore else */
1871
1851
  if (mi.hasOwnProperty("value")) {
1872
1852
  const v = mi.value;
1873
1853
  const vfields = v.fields || [];
1874
- v.fields = vfields.map(f => _templatizeFieldName(f, layer, itemId, basePath));
1854
+ v.fields = vfields.map((f) => _templatizeFieldName(f, layer, itemId, basePath));
1875
1855
  if (v.hasOwnProperty("normalizeField")) {
1876
1856
  _templatizeProperty(v, "normalizeField", basePath, "name");
1877
1857
  }
@@ -1897,7 +1877,7 @@ export function _templatizeDefinitionEditor(layer, basePath, fieldNames) {
1897
1877
  if (defEditor) {
1898
1878
  const inputs = defEditor.inputs;
1899
1879
  if (inputs) {
1900
- inputs.forEach(i => {
1880
+ inputs.forEach((i) => {
1901
1881
  /* istanbul ignore else */
1902
1882
  if (i.parameters) {
1903
1883
  i.parameters.forEach((p) => {
@@ -1934,7 +1914,7 @@ export function _templatizeDefinitionExpression(layer, basePath, fieldNames) {
1934
1914
  * @private
1935
1915
  */
1936
1916
  export function _templatizeSimpleName(expression, basePath, fieldNames, suffix) {
1937
- fieldNames.forEach(name => {
1917
+ fieldNames.forEach((name) => {
1938
1918
  // look for the name but not if its followed by }}
1939
1919
  const regEx = new RegExp("\\b" + name + "\\b(?![}]{2})", "gm");
1940
1920
  if (expression && regEx.test(expression)) {
@@ -2005,13 +1985,13 @@ export function _templatizeGenRenderer(renderer, basePath, fieldNames) {
2005
1985
  _templatizeAuthoringInfo(authoringInfo, basePath, fieldNames);
2006
1986
  }
2007
1987
  const props = ["field", "normalizationField"];
2008
- props.forEach(p => _templatizeProperty(renderer, p, basePath, "name"));
1988
+ props.forEach((p) => _templatizeProperty(renderer, p, basePath, "name"));
2009
1989
  const fieldNameProps = ["field1", "field2", "field3"];
2010
- fieldNameProps.forEach(fnP => _templatizeProperty(renderer, fnP, basePath, "name"));
1990
+ fieldNameProps.forEach((fnP) => _templatizeProperty(renderer, fnP, basePath, "name"));
2011
1991
  // When an attribute name is specified, it's enclosed in square brackets
2012
1992
  const rExp = renderer.rotationExpression;
2013
1993
  if (rExp) {
2014
- fieldNames.forEach(name => {
1994
+ fieldNames.forEach((name) => {
2015
1995
  const regEx = new RegExp("(\\[" + name + "\\])", "gm");
2016
1996
  if (regEx.test(rExp)) {
2017
1997
  renderer.rotationExpression = rExp.replace(regEx, "[" + _templatize(basePath, name, "name") + "]");
@@ -2020,17 +2000,17 @@ export function _templatizeGenRenderer(renderer, basePath, fieldNames) {
2020
2000
  }
2021
2001
  // update valueExpression
2022
2002
  if (renderer.valueExpression) {
2023
- fieldNames.forEach(name => {
2003
+ fieldNames.forEach((name) => {
2024
2004
  renderer.valueExpression = _templatizeArcadeExpressions(renderer.valueExpression, name, basePath);
2025
2005
  });
2026
2006
  }
2027
2007
  // update visualVariables
2028
2008
  const visualVariables = renderer.visualVariables;
2029
2009
  if (visualVariables) {
2030
- visualVariables.forEach(v => {
2031
- props.forEach(p => _templatizeProperty(v, p, basePath, "name"));
2010
+ visualVariables.forEach((v) => {
2011
+ props.forEach((p) => _templatizeProperty(v, p, basePath, "name"));
2032
2012
  if (v.valueExpression) {
2033
- fieldNames.forEach(name => {
2013
+ fieldNames.forEach((name) => {
2034
2014
  v.valueExpression = _templatizeArcadeExpressions(v.valueExpression, name, basePath);
2035
2015
  });
2036
2016
  }
@@ -2047,12 +2027,8 @@ export function _templatizeGenRenderer(renderer, basePath, fieldNames) {
2047
2027
  * @private
2048
2028
  */
2049
2029
  export function _templatizeTemporalRenderer(renderer, basePath, fieldNames) {
2050
- const renderers = [
2051
- renderer.latestObservationRenderer,
2052
- renderer.observationRenderer,
2053
- renderer.trackRenderer
2054
- ];
2055
- renderers.forEach(r => {
2030
+ const renderers = [renderer.latestObservationRenderer, renderer.observationRenderer, renderer.trackRenderer];
2031
+ renderers.forEach((r) => {
2056
2032
  _templatizeRenderer(r, basePath, fieldNames);
2057
2033
  });
2058
2034
  }
@@ -2069,17 +2045,17 @@ export function _templatizeAuthoringInfo(authoringInfo, basePath, fieldNames) {
2069
2045
  if (authoringInfo) {
2070
2046
  const props = ["field", "normalizationField"];
2071
2047
  const field1 = authoringInfo.field1;
2072
- props.forEach(p => _templatizeProperty(field1, p, basePath, "name"));
2048
+ props.forEach((p) => _templatizeProperty(field1, p, basePath, "name"));
2073
2049
  const field2 = authoringInfo.field2;
2074
- props.forEach(p => _templatizeProperty(field2, p, basePath, "name"));
2050
+ props.forEach((p) => _templatizeProperty(field2, p, basePath, "name"));
2075
2051
  const fields = authoringInfo.fields;
2076
2052
  if (fields) {
2077
- authoringInfo.fields = fields.map(f => _templatize(basePath, f, "name"));
2053
+ authoringInfo.fields = fields.map((f) => _templatize(basePath, f, "name"));
2078
2054
  }
2079
2055
  const vProps = ["endTime", "field", "startTime"];
2080
2056
  const vVars = authoringInfo.visualVariables;
2081
2057
  if (vVars) {
2082
- vProps.forEach(p => {
2058
+ vProps.forEach((p) => {
2083
2059
  // endTime and startTime may or may not be a field name
2084
2060
  if (fieldNames.indexOf(vVars[p]) > -1) {
2085
2061
  _templatizeProperty(vVars, p, basePath, "name");
@@ -2116,8 +2092,7 @@ export function _templatizeArcadeExpressions(text, fieldName, basePath) {
2116
2092
  }
2117
2093
  // test for $feature[] with join case
2118
2094
  // captures VOTED_DEM_2016 from $feature["COUNTY_ID.VOTED_DEM_2016"]
2119
- exp =
2120
- "(?:[$]feature)(\\[\\\"?\\'?)(\\w+)[.]" + fieldName + "(\\\"?\\'?\\])";
2095
+ exp = "(?:[$]feature)(\\[\\\"?\\'?)(\\w+)[.]" + fieldName + "(\\\"?\\'?\\])";
2121
2096
  regEx = new RegExp(exp, "gm");
2122
2097
  result = regEx.exec(text);
2123
2098
  if (result && result.length > 3) {
@@ -2149,11 +2124,11 @@ export function _templatizeLabelingInfo(labelingInfo, basePath, fieldNames) {
2149
2124
  /* istanbul ignore else */
2150
2125
  if (li.hasOwnProperty("fieldInfos")) {
2151
2126
  const fieldInfos = li.fieldInfos || [];
2152
- fieldInfos.forEach(fi => _templatizeProperty(fi, "fieldName", basePath, "name"));
2127
+ fieldInfos.forEach((fi) => _templatizeProperty(fi, "fieldName", basePath, "name"));
2153
2128
  }
2154
2129
  const labelExp = li.labelExpression || "";
2155
2130
  const labelExpInfo = li.labelExpressionInfo || {};
2156
- fieldNames.forEach(n => {
2131
+ fieldNames.forEach((n) => {
2157
2132
  const t = _templatize(basePath, n, "name");
2158
2133
  // check for [fieldName] or ["fieldName"]
2159
2134
  const regExBracket = new RegExp('(\\[\\"*)+(' + n + ')(\\"*\\])+', "gm");
@@ -2188,7 +2163,7 @@ export function _templatizeLabelingInfo(labelingInfo, basePath, fieldNames) {
2188
2163
  */
2189
2164
  export function _templatizeTemplates(layer, basePath) {
2190
2165
  const templates = layer.templates || [];
2191
- templates.forEach(t => {
2166
+ templates.forEach((t) => {
2192
2167
  const attributes = getProp(t, "prototype.attributes");
2193
2168
  const _attributes = _templatizeKeys(attributes, basePath, "name");
2194
2169
  /* istanbul ignore else */
@@ -2244,7 +2219,7 @@ export function _templatizeKeys(obj, basePath, suffix) {
2244
2219
  const objKeys = Object.keys(obj);
2245
2220
  /* istanbul ignore else */
2246
2221
  if (objKeys && objKeys.length > 0) {
2247
- objKeys.forEach(k => {
2222
+ objKeys.forEach((k) => {
2248
2223
  _obj[_templatize(basePath, k, suffix)] = obj[k];
2249
2224
  });
2250
2225
  }
@@ -2261,12 +2236,8 @@ export function _templatizeKeys(obj, basePath, suffix) {
2261
2236
  export function _templatizeTimeInfo(layer, basePath) {
2262
2237
  if (layer.timeInfo) {
2263
2238
  const timeInfo = layer.timeInfo;
2264
- const timeProps = [
2265
- "endTimeField",
2266
- "startTimeField",
2267
- "trackIdField"
2268
- ];
2269
- timeProps.forEach(t => {
2239
+ const timeProps = ["endTimeField", "startTimeField", "trackIdField"];
2240
+ timeProps.forEach((t) => {
2270
2241
  if (timeInfo[t] !== "") {
2271
2242
  _templatizeProperty(timeInfo, t, basePath, "name");
2272
2243
  }
@@ -2306,22 +2277,19 @@ export function _getNameMapping(fieldInfos, id) {
2306
2277
  const fInfo = fieldInfos[id];
2307
2278
  const nameMapping = {};
2308
2279
  const newFields = fInfo.newFields;
2309
- const newFieldNames = newFields
2310
- ? newFields.map((f) => f.name)
2311
- : [];
2280
+ const newFieldNames = newFields ? newFields.map((f) => f.name) : [];
2312
2281
  const sourceFields = fInfo.sourceFields || [];
2313
2282
  sourceFields.forEach((field) => {
2314
2283
  const lName = String(field.name).toLowerCase();
2315
2284
  newFields.forEach((f) => {
2316
2285
  // Names can change more than case
2317
- if (newFieldNames.indexOf(field.name) === -1 &&
2318
- newFieldNames.indexOf(lName) === -1) {
2286
+ if (newFieldNames.indexOf(field.name) === -1 && newFieldNames.indexOf(lName) === -1) {
2319
2287
  // If both new (f) and source (field) aliases are defined and are equal, map the source name to the new name
2320
2288
  if (f.alias && f.alias === field.alias) {
2321
2289
  nameMapping[lName] = {
2322
2290
  name: f.name,
2323
2291
  alias: f.alias,
2324
- type: f.type ? f.type : ""
2292
+ type: f.type ? f.type : "",
2325
2293
  };
2326
2294
  }
2327
2295
  }
@@ -2329,7 +2297,7 @@ export function _getNameMapping(fieldInfos, id) {
2329
2297
  nameMapping[lName] = {
2330
2298
  name: f.name,
2331
2299
  alias: f.alias ? f.alias : "",
2332
- type: f.type ? f.type : ""
2300
+ type: f.type ? f.type : "",
2333
2301
  };
2334
2302
  }
2335
2303
  });
@@ -2339,10 +2307,9 @@ export function _getNameMapping(fieldInfos, id) {
2339
2307
  const efi = JSON.parse(JSON.stringify(fInfo.editFieldsInfo));
2340
2308
  const newEfi = JSON.parse(JSON.stringify(fInfo.newEditFieldsInfo));
2341
2309
  const nameMappingKeys = Object.keys(nameMapping);
2342
- Object.keys(efi).forEach(k => {
2310
+ Object.keys(efi).forEach((k) => {
2343
2311
  const lowerEfi = String(efi[k]).toLowerCase();
2344
- if ((nameMappingKeys.indexOf(lowerEfi) === -1 ||
2345
- nameMapping[lowerEfi].name !== newEfi[k]) &&
2312
+ if ((nameMappingKeys.indexOf(lowerEfi) === -1 || nameMapping[lowerEfi].name !== newEfi[k]) &&
2346
2313
  newFieldNames.indexOf(lowerEfi) > -1) {
2347
2314
  // Only add delete fields if source schema changes allowed
2348
2315
  /* istanbul ignore else */
@@ -2366,7 +2333,7 @@ export function _getNameMapping(fieldInfos, id) {
2366
2333
  nameMapping[lowerEfi] = {
2367
2334
  name: newEfi[k],
2368
2335
  alias: sourceEfiField && sourceEfiField.alias ? sourceEfiField.alias : "",
2369
- type: sourceEfiField && sourceEfiField.type ? sourceEfiField.type : ""
2336
+ type: sourceEfiField && sourceEfiField.type ? sourceEfiField.type : "",
2370
2337
  };
2371
2338
  }
2372
2339
  });