@esri/solution-common 4.1.2 → 5.0.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 (261) hide show
  1. package/dist/cjs/completeItem.d.ts +29 -29
  2. package/dist/cjs/completeItem.js +81 -81
  3. package/dist/cjs/create-hub-request-options.d.ts +29 -29
  4. package/dist/cjs/create-hub-request-options.js +63 -63
  5. package/dist/cjs/deleteHelpers/deleteEmptyGroups.d.ts +24 -24
  6. package/dist/cjs/deleteHelpers/deleteEmptyGroups.js +41 -41
  7. package/dist/cjs/deleteHelpers/deleteGroupIfEmpty.d.ts +27 -27
  8. package/dist/cjs/deleteHelpers/deleteGroupIfEmpty.js +96 -96
  9. package/dist/cjs/deleteHelpers/deleteSolutionContents.d.ts +38 -38
  10. package/dist/cjs/deleteHelpers/deleteSolutionContents.js +129 -129
  11. package/dist/cjs/deleteHelpers/deleteSolutionFolder.d.ts +29 -29
  12. package/dist/cjs/deleteHelpers/deleteSolutionFolder.js +78 -78
  13. package/dist/cjs/deleteHelpers/deleteSolutionItem.d.ts +30 -30
  14. package/dist/cjs/deleteHelpers/deleteSolutionItem.js +53 -53
  15. package/dist/cjs/deleteHelpers/index.d.ts +22 -22
  16. package/dist/cjs/deleteHelpers/index.js +25 -25
  17. package/dist/cjs/deleteHelpers/reconstructBuildOrderIds.d.ts +27 -27
  18. package/dist/cjs/deleteHelpers/reconstructBuildOrderIds.js +33 -33
  19. package/dist/cjs/deleteHelpers/removeItems.d.ts +34 -34
  20. package/dist/cjs/deleteHelpers/removeItems.js +111 -111
  21. package/dist/cjs/deleteHelpers/reportProgress.d.ts +27 -27
  22. package/dist/cjs/deleteHelpers/reportProgress.js +45 -45
  23. package/dist/cjs/deleteSolution.d.ts +55 -55
  24. package/dist/cjs/deleteSolution.js +106 -106
  25. package/dist/cjs/dependencies.d.ts +26 -26
  26. package/dist/cjs/dependencies.js +170 -170
  27. package/dist/cjs/featureServiceHelpers.d.ts +791 -791
  28. package/dist/cjs/featureServiceHelpers.js +2420 -2420
  29. package/dist/cjs/generalHelpers.d.ts +392 -385
  30. package/dist/cjs/generalHelpers.js +857 -854
  31. package/dist/cjs/generalHelpers.js.map +1 -1
  32. package/dist/cjs/get-subscription-info.d.ts +27 -27
  33. package/dist/cjs/get-subscription-info.js +38 -38
  34. package/dist/cjs/getDeletableSolutionInfo.d.ts +29 -29
  35. package/dist/cjs/getDeletableSolutionInfo.js +52 -52
  36. package/dist/cjs/getItemTypeAbbrev.d.ts +19 -19
  37. package/dist/cjs/getItemTypeAbbrev.js +184 -184
  38. package/dist/cjs/getSolutionSummary.d.ts +27 -27
  39. package/dist/cjs/getSolutionSummary.js +100 -100
  40. package/dist/cjs/index.d.ts +43 -44
  41. package/dist/cjs/index.js +46 -47
  42. package/dist/cjs/index.js.map +1 -1
  43. package/dist/cjs/interfaces.d.ts +1334 -1334
  44. package/dist/cjs/interfaces.js +74 -74
  45. package/dist/cjs/interfaces.js.map +1 -1
  46. package/dist/cjs/libConnectors.d.ts +73 -73
  47. package/dist/cjs/libConnectors.js +114 -114
  48. package/dist/cjs/migrations/apply-schema.d.ts +24 -24
  49. package/dist/cjs/migrations/apply-schema.js +35 -35
  50. package/dist/cjs/migrations/is-legacy-solution.d.ts +24 -24
  51. package/dist/cjs/migrations/is-legacy-solution.js +39 -39
  52. package/dist/cjs/migrations/upgrade-three-dot-one.d.ts +27 -27
  53. package/dist/cjs/migrations/upgrade-three-dot-one.js +48 -48
  54. package/dist/cjs/migrations/upgrade-three-dot-zero.d.ts +27 -27
  55. package/dist/cjs/migrations/upgrade-three-dot-zero.js +42 -42
  56. package/dist/cjs/migrations/upgrade-two-dot-five.d.ts +24 -24
  57. package/dist/cjs/migrations/upgrade-two-dot-five.js +72 -72
  58. package/dist/cjs/migrations/upgrade-two-dot-four.d.ts +24 -24
  59. package/dist/cjs/migrations/upgrade-two-dot-four.js +71 -71
  60. package/dist/cjs/migrations/upgrade-two-dot-one.d.ts +7 -7
  61. package/dist/cjs/migrations/upgrade-two-dot-one.js +38 -38
  62. package/dist/cjs/migrations/upgrade-two-dot-seven.d.ts +23 -23
  63. package/dist/cjs/migrations/upgrade-two-dot-seven.js +57 -57
  64. package/dist/cjs/migrations/upgrade-two-dot-six.d.ts +27 -27
  65. package/dist/cjs/migrations/upgrade-two-dot-six.js +60 -60
  66. package/dist/cjs/migrations/upgrade-two-dot-three.d.ts +23 -23
  67. package/dist/cjs/migrations/upgrade-two-dot-three.js +54 -54
  68. package/dist/cjs/migrations/upgrade-two-dot-two.d.ts +23 -23
  69. package/dist/cjs/migrations/upgrade-two-dot-two.js +57 -57
  70. package/dist/cjs/migrations/upgrade-two-dot-zero.d.ts +44 -44
  71. package/dist/cjs/migrations/upgrade-two-dot-zero.js +94 -94
  72. package/dist/cjs/migrator.d.ts +25 -25
  73. package/dist/cjs/migrator.js +76 -76
  74. package/dist/cjs/resourceHelpers.d.ts +191 -191
  75. package/dist/cjs/resourceHelpers.js +383 -390
  76. package/dist/cjs/resourceHelpers.js.map +1 -1
  77. package/dist/cjs/resources/add-resource-from-blob.d.ts +26 -26
  78. package/dist/cjs/resources/add-resource-from-blob.js +51 -51
  79. package/dist/cjs/resources/addMetadataFromBlob.d.ts +25 -25
  80. package/dist/cjs/resources/addMetadataFromBlob.js +42 -42
  81. package/dist/cjs/resources/convert-item-resource-to-storage-resource.d.ts +32 -32
  82. package/dist/cjs/resources/convert-item-resource-to-storage-resource.js +69 -69
  83. package/dist/cjs/resources/convert-storage-resource-to-item-resource.d.ts +29 -29
  84. package/dist/cjs/resources/convert-storage-resource-to-item-resource.js +69 -69
  85. package/dist/cjs/resources/copyAssociatedFiles.d.ts +67 -67
  86. package/dist/cjs/resources/copyAssociatedFiles.js +301 -301
  87. package/dist/cjs/resources/copyDataIntoItem.d.ts +33 -33
  88. package/dist/cjs/resources/copyDataIntoItem.js +61 -62
  89. package/dist/cjs/resources/copyDataIntoItem.js.map +1 -1
  90. package/dist/cjs/resources/copyMetadataIntoItem.d.ts +26 -26
  91. package/dist/cjs/resources/copyMetadataIntoItem.js +45 -45
  92. package/dist/cjs/resources/copyResourceIntoZip.d.ts +33 -33
  93. package/dist/cjs/resources/copyResourceIntoZip.js +77 -77
  94. package/dist/cjs/resources/copyZipIntoItem.d.ts +25 -25
  95. package/dist/cjs/resources/copyZipIntoItem.js +53 -53
  96. package/dist/cjs/resources/createCopyResults.d.ts +25 -25
  97. package/dist/cjs/resources/createCopyResults.js +35 -35
  98. package/dist/cjs/resources/get-blob.d.ts +26 -26
  99. package/dist/cjs/resources/get-blob.js +26 -26
  100. package/dist/cjs/resources/getItemResourcesFilesFromPaths.d.ts +24 -24
  101. package/dist/cjs/resources/getItemResourcesFilesFromPaths.js +48 -48
  102. package/dist/cjs/resources/getItemResourcesPaths.d.ts +26 -26
  103. package/dist/cjs/resources/getItemResourcesPaths.js +72 -72
  104. package/dist/cjs/resources/index.d.ts +29 -29
  105. package/dist/cjs/resources/index.js +32 -32
  106. package/dist/cjs/resources/solution-resource.d.ts +35 -35
  107. package/dist/cjs/resources/solution-resource.js +30 -30
  108. package/dist/cjs/resources/solution-resource.js.map +1 -1
  109. package/dist/cjs/resources/transform-resource-paths-to-solution-resources.d.ts +56 -56
  110. package/dist/cjs/resources/transform-resource-paths-to-solution-resources.js +145 -145
  111. package/dist/cjs/restHelpers.d.ts +586 -585
  112. package/dist/cjs/restHelpers.js +1888 -1883
  113. package/dist/cjs/restHelpers.js.map +1 -1
  114. package/dist/cjs/restHelpersGet.d.ts +288 -288
  115. package/dist/cjs/restHelpersGet.js +803 -803
  116. package/dist/cjs/sharing/index.d.ts +16 -16
  117. package/dist/cjs/sharing/index.js +19 -19
  118. package/dist/cjs/sharing/share-item-to-groups.d.ts +26 -26
  119. package/dist/cjs/sharing/share-item-to-groups.js +43 -43
  120. package/dist/cjs/templatization.d.ts +139 -139
  121. package/dist/cjs/templatization.js +313 -313
  122. package/dist/cjs/trackingHelpers.d.ts +116 -116
  123. package/dist/cjs/trackingHelpers.js +216 -216
  124. package/dist/cjs/velocityHelpers.d.ts +57 -57
  125. package/dist/cjs/velocityHelpers.js +134 -134
  126. package/dist/cjs/workforceHelpers.d.ts +115 -115
  127. package/dist/cjs/workforceHelpers.js +746 -746
  128. package/dist/cjs/workforceHelpers.js.map +1 -1
  129. package/dist/esm/completeItem.d.ts +29 -29
  130. package/dist/esm/completeItem.js +76 -76
  131. package/dist/esm/create-hub-request-options.d.ts +29 -29
  132. package/dist/esm/create-hub-request-options.js +59 -59
  133. package/dist/esm/deleteHelpers/deleteEmptyGroups.d.ts +24 -24
  134. package/dist/esm/deleteHelpers/deleteEmptyGroups.js +37 -37
  135. package/dist/esm/deleteHelpers/deleteGroupIfEmpty.d.ts +27 -27
  136. package/dist/esm/deleteHelpers/deleteGroupIfEmpty.js +91 -91
  137. package/dist/esm/deleteHelpers/deleteSolutionContents.d.ts +38 -38
  138. package/dist/esm/deleteHelpers/deleteSolutionContents.js +124 -124
  139. package/dist/esm/deleteHelpers/deleteSolutionFolder.d.ts +29 -29
  140. package/dist/esm/deleteHelpers/deleteSolutionFolder.js +73 -73
  141. package/dist/esm/deleteHelpers/deleteSolutionItem.d.ts +30 -30
  142. package/dist/esm/deleteHelpers/deleteSolutionItem.js +48 -48
  143. package/dist/esm/deleteHelpers/index.d.ts +22 -22
  144. package/dist/esm/deleteHelpers/index.js +22 -22
  145. package/dist/esm/deleteHelpers/reconstructBuildOrderIds.d.ts +27 -27
  146. package/dist/esm/deleteHelpers/reconstructBuildOrderIds.js +28 -28
  147. package/dist/esm/deleteHelpers/removeItems.d.ts +34 -34
  148. package/dist/esm/deleteHelpers/removeItems.js +106 -106
  149. package/dist/esm/deleteHelpers/reportProgress.d.ts +27 -27
  150. package/dist/esm/deleteHelpers/reportProgress.js +41 -41
  151. package/dist/esm/deleteSolution.d.ts +55 -55
  152. package/dist/esm/deleteSolution.js +100 -100
  153. package/dist/esm/dependencies.d.ts +26 -26
  154. package/dist/esm/dependencies.js +166 -166
  155. package/dist/esm/featureServiceHelpers.d.ts +791 -791
  156. package/dist/esm/featureServiceHelpers.js +2336 -2336
  157. package/dist/esm/generalHelpers.d.ts +392 -385
  158. package/dist/esm/generalHelpers.js +810 -808
  159. package/dist/esm/generalHelpers.js.map +1 -1
  160. package/dist/esm/get-subscription-info.d.ts +27 -27
  161. package/dist/esm/get-subscription-info.js +34 -34
  162. package/dist/esm/getDeletableSolutionInfo.d.ts +29 -29
  163. package/dist/esm/getDeletableSolutionInfo.js +47 -47
  164. package/dist/esm/getItemTypeAbbrev.d.ts +19 -19
  165. package/dist/esm/getItemTypeAbbrev.js +180 -180
  166. package/dist/esm/getSolutionSummary.d.ts +27 -27
  167. package/dist/esm/getSolutionSummary.js +95 -95
  168. package/dist/esm/index.d.ts +43 -44
  169. package/dist/esm/index.js +43 -44
  170. package/dist/esm/index.js.map +1 -1
  171. package/dist/esm/interfaces.d.ts +1334 -1334
  172. package/dist/esm/interfaces.js +70 -70
  173. package/dist/esm/libConnectors.d.ts +73 -73
  174. package/dist/esm/libConnectors.js +104 -104
  175. package/dist/esm/migrations/apply-schema.d.ts +24 -24
  176. package/dist/esm/migrations/apply-schema.js +31 -31
  177. package/dist/esm/migrations/is-legacy-solution.d.ts +24 -24
  178. package/dist/esm/migrations/is-legacy-solution.js +35 -35
  179. package/dist/esm/migrations/upgrade-three-dot-one.d.ts +27 -27
  180. package/dist/esm/migrations/upgrade-three-dot-one.js +44 -44
  181. package/dist/esm/migrations/upgrade-three-dot-zero.d.ts +27 -27
  182. package/dist/esm/migrations/upgrade-three-dot-zero.js +38 -38
  183. package/dist/esm/migrations/upgrade-two-dot-five.d.ts +24 -24
  184. package/dist/esm/migrations/upgrade-two-dot-five.js +68 -68
  185. package/dist/esm/migrations/upgrade-two-dot-four.d.ts +24 -24
  186. package/dist/esm/migrations/upgrade-two-dot-four.js +67 -67
  187. package/dist/esm/migrations/upgrade-two-dot-one.d.ts +7 -7
  188. package/dist/esm/migrations/upgrade-two-dot-one.js +34 -34
  189. package/dist/esm/migrations/upgrade-two-dot-seven.d.ts +23 -23
  190. package/dist/esm/migrations/upgrade-two-dot-seven.js +53 -53
  191. package/dist/esm/migrations/upgrade-two-dot-six.d.ts +27 -27
  192. package/dist/esm/migrations/upgrade-two-dot-six.js +56 -56
  193. package/dist/esm/migrations/upgrade-two-dot-three.d.ts +23 -23
  194. package/dist/esm/migrations/upgrade-two-dot-three.js +50 -50
  195. package/dist/esm/migrations/upgrade-two-dot-two.d.ts +23 -23
  196. package/dist/esm/migrations/upgrade-two-dot-two.js +53 -53
  197. package/dist/esm/migrations/upgrade-two-dot-zero.d.ts +44 -44
  198. package/dist/esm/migrations/upgrade-two-dot-zero.js +87 -87
  199. package/dist/esm/migrator.d.ts +25 -25
  200. package/dist/esm/migrator.js +72 -72
  201. package/dist/esm/resourceHelpers.d.ts +191 -191
  202. package/dist/esm/resourceHelpers.js +364 -371
  203. package/dist/esm/resourceHelpers.js.map +1 -1
  204. package/dist/esm/resources/add-resource-from-blob.d.ts +26 -26
  205. package/dist/esm/resources/add-resource-from-blob.js +47 -47
  206. package/dist/esm/resources/addMetadataFromBlob.d.ts +25 -25
  207. package/dist/esm/resources/addMetadataFromBlob.js +38 -38
  208. package/dist/esm/resources/convert-item-resource-to-storage-resource.d.ts +32 -32
  209. package/dist/esm/resources/convert-item-resource-to-storage-resource.js +65 -65
  210. package/dist/esm/resources/convert-storage-resource-to-item-resource.d.ts +29 -29
  211. package/dist/esm/resources/convert-storage-resource-to-item-resource.js +65 -65
  212. package/dist/esm/resources/copyAssociatedFiles.d.ts +67 -67
  213. package/dist/esm/resources/copyAssociatedFiles.js +293 -293
  214. package/dist/esm/resources/copyDataIntoItem.d.ts +33 -33
  215. package/dist/esm/resources/copyDataIntoItem.js +56 -57
  216. package/dist/esm/resources/copyDataIntoItem.js.map +1 -1
  217. package/dist/esm/resources/copyMetadataIntoItem.d.ts +26 -26
  218. package/dist/esm/resources/copyMetadataIntoItem.js +41 -41
  219. package/dist/esm/resources/copyResourceIntoZip.d.ts +33 -33
  220. package/dist/esm/resources/copyResourceIntoZip.js +72 -72
  221. package/dist/esm/resources/copyZipIntoItem.d.ts +25 -25
  222. package/dist/esm/resources/copyZipIntoItem.js +49 -49
  223. package/dist/esm/resources/createCopyResults.d.ts +25 -25
  224. package/dist/esm/resources/createCopyResults.js +31 -31
  225. package/dist/esm/resources/get-blob.d.ts +26 -26
  226. package/dist/esm/resources/get-blob.js +22 -22
  227. package/dist/esm/resources/getItemResourcesFilesFromPaths.d.ts +24 -24
  228. package/dist/esm/resources/getItemResourcesFilesFromPaths.js +44 -44
  229. package/dist/esm/resources/getItemResourcesPaths.d.ts +26 -26
  230. package/dist/esm/resources/getItemResourcesPaths.js +68 -68
  231. package/dist/esm/resources/index.d.ts +29 -29
  232. package/dist/esm/resources/index.js +29 -29
  233. package/dist/esm/resources/solution-resource.d.ts +35 -35
  234. package/dist/esm/resources/solution-resource.js +27 -27
  235. package/dist/esm/resources/transform-resource-paths-to-solution-resources.d.ts +56 -56
  236. package/dist/esm/resources/transform-resource-paths-to-solution-resources.js +137 -137
  237. package/dist/esm/restHelpers.d.ts +586 -585
  238. package/dist/esm/restHelpers.js +1827 -1823
  239. package/dist/esm/restHelpers.js.map +1 -1
  240. package/dist/esm/restHelpersGet.d.ts +288 -288
  241. package/dist/esm/restHelpersGet.js +763 -763
  242. package/dist/esm/sharing/index.d.ts +16 -16
  243. package/dist/esm/sharing/index.js +16 -16
  244. package/dist/esm/sharing/share-item-to-groups.d.ts +26 -26
  245. package/dist/esm/sharing/share-item-to-groups.js +39 -39
  246. package/dist/esm/templatization.d.ts +139 -139
  247. package/dist/esm/templatization.js +293 -293
  248. package/dist/esm/trackingHelpers.d.ts +116 -116
  249. package/dist/esm/trackingHelpers.js +204 -204
  250. package/dist/esm/velocityHelpers.d.ts +57 -57
  251. package/dist/esm/velocityHelpers.js +128 -128
  252. package/dist/esm/workforceHelpers.d.ts +115 -115
  253. package/dist/esm/workforceHelpers.js +717 -717
  254. package/dist/esm/workforceHelpers.js.map +1 -1
  255. package/package.json +2 -2
  256. package/dist/cjs/polyfills.d.ts +0 -40
  257. package/dist/cjs/polyfills.js +0 -98
  258. package/dist/cjs/polyfills.js.map +0 -1
  259. package/dist/esm/polyfills.d.ts +0 -40
  260. package/dist/esm/polyfills.js +0 -93
  261. package/dist/esm/polyfills.js.map +0 -1
@@ -1,385 +1,392 @@
1
- /** @license
2
- * Copyright 2018 Esri
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- /**
17
- * Provides general helper functions.
18
- *
19
- * @module generalHelpers
20
- */
21
- import { IModel } from "@esri/hub-common";
22
- import { ICreateItemFromTemplateResponse, IDatasourceInfo, IItemTemplate, IStringValuePair } from "./interfaces";
23
- import { Sanitizer } from "./libConnectors";
24
- /**
25
- * Returns a URL with a query parameter appended
26
- *
27
- * @param url URL to append to
28
- * @param parameter Query parameter to append, prefixed with "?" or "&" as appropriate to what url already has
29
- * @returns New URL combining url and parameter
30
- */
31
- export declare function appendQueryParam(url: string, parameter: string): string;
32
- /**
33
- * Extracts JSON from a Blob.
34
- *
35
- * @param blob Blob to use as source
36
- * @returns A promise that will resolve with JSON or null
37
- */
38
- export declare function blobToJson(blob: Blob): Promise<any>;
39
- /**
40
- * Converts a Blob to a File.
41
- *
42
- * @param blob Blob to use as source
43
- * @param filename Name to use for file
44
- * @param mimeType MIME type to override blob's MIME type
45
- * @returns File created out of Blob and filename
46
- */
47
- export declare function blobToFile(blob: Blob, filename: string, mimeType?: string): File;
48
- /**
49
- * Extracts text from a Blob.
50
- *
51
- * @param blob Blob to use as source
52
- * @returns A promise that will resolve with text read from blob
53
- */
54
- export declare function blobToText(blob: Blob): Promise<string>;
55
- /**
56
- * Checks that a URL path ends with a slash.
57
- *
58
- * @param url URL to check
59
- * @returns URL, appended with slash if missing
60
- */
61
- export declare function checkUrlPathTermination(url: string): string;
62
- /**
63
- * Converts a hub-style item into a solutions-style item, the difference being handling of resources.
64
- *
65
- * @param hubModel Hub-style item
66
- * @return solutions-style item
67
- */
68
- export declare function convertIModel(hubModel: IModel): IItemTemplate;
69
- /**
70
- * Creates a random 32-character alphanumeric string.
71
- *
72
- * @returns A lowercase 32-char alphanumeric string
73
- * @internal
74
- */
75
- export declare function createLongId(): string;
76
- /**
77
- * Creates a random 8-character alphanumeric string that begins with an alphabetic character.
78
- *
79
- * @returns An alphanumeric string in the range [a0000000..zzzzzzzz]
80
- */
81
- export declare function createShortId(): string;
82
- /**
83
- * Copies an input list removing duplicates.
84
- *
85
- * @param input List to be deduped
86
- * @returns Deduped list; order of items in input is not maintained
87
- */
88
- export declare function dedupe(input?: string[]): string[];
89
- /**
90
- * Flags a failure to create an item from a template.
91
- *
92
- * @param itemType The AGO item type
93
- * @param id Item id to include in response
94
- * @returns Empty creation response
95
- */
96
- export declare function generateEmptyCreationResponse(itemType: string, id?: string): ICreateItemFromTemplateResponse;
97
- /**
98
- * Converts JSON to a Blob.
99
- *
100
- * @param json JSON to use as source
101
- * @returns A blob from the source JSON
102
- */
103
- export declare function jsonToBlob(json: any): Blob;
104
- /**
105
- * Converts JSON to a File.
106
- *
107
- * @param json JSON to use as source
108
- * @param filename Name to use for file
109
- * @param mimeType MIME type to override blob's MIME type
110
- * @returns File created out of JSON and filename
111
- */
112
- export declare function jsonToFile(json: any, filename: string, mimeType?: string): File;
113
- /**
114
- * Saves a blob to a file.
115
- *
116
- * @param filename Name to give file
117
- * @param blob Blob to save
118
- * @returns Promise resolving when operation is complete
119
- */
120
- export declare function saveBlobAsFile(filename: string, blob: Blob): Promise<void>;
121
- /**
122
- * Makes a deep clone, including arrays but not functions.
123
- *
124
- * @param obj Object to be cloned
125
- * @returns Clone of obj
126
- * @example
127
- * ```js
128
- * import { cloneObject } from "utils/object-helpers";
129
- * const original = { foo: "bar" }
130
- * const copy = cloneObject(original)
131
- * copy.foo // "bar"
132
- * copy === original // false
133
- * ```
134
- */
135
- export declare function cloneObject(obj: {
136
- [index: string]: any;
137
- }): any;
138
- /**
139
- * Compares two JSON objects using JSON.stringify.
140
- *
141
- * @param json1 First object
142
- * @param json2 Second object
143
- * @returns True if objects are the same
144
- */
145
- export declare function compareJSON(json1: any, json2: any): boolean;
146
- /**
147
- * Compares two JSON objects using JSON.stringify, converting empty strings to nulls.
148
- *
149
- * @param json1 First object
150
- * @param json2 Second object
151
- * @returns True if objects are the same
152
- */
153
- export declare function compareJSONNoEmptyStrings(json1: any, json2: any): boolean;
154
- /**
155
- * Compares two JSON objects property by property and reports each mismatch.
156
- *
157
- * @param json1 First object
158
- * @param json2 Second object
159
- * @returns A list of mismatch report strings
160
- */
161
- export declare function compareJSONProperties(json1: any, json2: any): string[];
162
- /**
163
- * Sanitizes JSON and echoes changes to console.
164
- *
165
- * @param json JSON to sanitize
166
- * @param sanitizer Instance of Sanitizer class
167
- * @returns Sanitized version of `json`
168
- * @see https://github.com/esri/arcgis-html-sanitizer#sanitize-json
169
- */
170
- export declare function sanitizeJSONAndReportChanges(json: any, sanitizer?: Sanitizer): any;
171
- export declare function deleteItemProps(itemTemplate: any): any;
172
- /**
173
- * Deletes a property from an object.
174
- *
175
- * @param obj Object with property to delete
176
- * @param path Path into an object to property, e.g., "data.values.webmap", where "data" is a top-level property
177
- * in obj
178
- */
179
- export declare function deleteProp(obj: any, path: string): void;
180
- /**
181
- * Deletes properties from an object.
182
- *
183
- * @param obj Object with properties to delete
184
- * @param props Array of properties on object that should be deleted
185
- */
186
- export declare function deleteProps(obj: any, props: string[]): void;
187
- /**
188
- * Creates an AGO-style JSON failure response with success property.
189
- *
190
- * @param e Optional error information
191
- * @returns JSON structure with property success set to false and optionally including `e`
192
- */
193
- export declare function fail(e?: any): any;
194
- /**
195
- * Creates an AGO-style JSON failure response with success property and extended with ids list.
196
- *
197
- * @param ids List of ids
198
- * @param e Optional error information
199
- * @returns JSON structure with property success set to false and optionally including `e`
200
- */
201
- export declare function failWithIds(itemIds: string[], e?: any): any;
202
- /**
203
- * Extracts the ids from a string
204
- *
205
- * @param v String to examine
206
- * @returns List of id strings found
207
- * @example
208
- * get id from
209
- * bad3483e025c47338d43df308c117308
210
- * {bad3483e025c47338d43df308c117308
211
- * =bad3483e025c47338d43df308c117308
212
- * do not get id from
213
- * http: *something/name_bad3483e025c47338d43df308c117308
214
- * {{bad3483e025c47338d43df308c117308.itemId}}
215
- * bad3483e025c47338d43df308c117308bad3483e025c47338d43df308c117308
216
- */
217
- export declare function getIDs(v: string): string[];
218
- /**
219
- * Gets a property out of a deeply nested object.
220
- * Does not handle anything but nested object graph
221
- *
222
- * @param obj Object to retrieve value from
223
- * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property
224
- * in obj
225
- * @returns Value at end of path
226
- */
227
- export declare function getProp(obj: {
228
- [index: string]: any;
229
- }, path: string): any;
230
- /**
231
- * Returns an array of values from an object based on an array of property paths.
232
- *
233
- * @param obj Object to retrieve values from
234
- * @param props Array of paths into the object e.g., "data.values.webmap", where "data" is a top-level property
235
- * @returns Array of the values plucked from the object; only defined values are returned
236
- */
237
- export declare function getProps(obj: any, props: string[]): any;
238
- /**
239
- * Get a property out of a deeply nested object
240
- * Does not handle anything but nested object graph
241
- *
242
- * @param obj Object to retrieve value from
243
- * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property
244
- * in obj
245
- * @param defaultV Optional value to use if any part of path--including final value--is undefined
246
- * @returns Value at end of path
247
- */
248
- export declare function getPropWithDefault(obj: IStringValuePair, path: string, defaultV?: any): any;
249
- /**
250
- * Updates a list of the items dependencies if more are found in the
251
- * provided value.
252
- *
253
- * @param v a string value to check for ids
254
- * @param deps a list of the items dependencies
255
- */
256
- export declare function idTest(v: any, deps: string[]): void;
257
- /**
258
- * Sets a deeply nested property of an object.
259
- * Creates the full path if it does not exist.
260
- *
261
- * @param obj Object to set value of
262
- * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property in obj
263
- * @param value The value to set at the end of the path
264
- */
265
- export declare function setCreateProp(obj: any, path: string, value: any): void;
266
- /**
267
- * Sets a deeply nested property of an object.
268
- * Does nothing if the full path does not exist.
269
- *
270
- * @param obj Object to set value of
271
- * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property in obj
272
- * @param value The value to set at the end of the path
273
- */
274
- export declare function setProp(obj: any, path: string, value: any): void;
275
- /**
276
- * Creates a timestamp string using the current UTC date and time.
277
- *
278
- * @returns Timestamp formatted as YYYYMMDD_hhmm_ssmmm, with month one-based and all values padded with zeroes on the
279
- * left as needed (`ssmmm` stands for seconds from 0..59 and milliseconds from 0..999)
280
- * @private
281
- */
282
- export declare function getUTCTimestamp(): string;
283
- /**
284
- * Tests if an object's `item.typeKeywords` or `typeKeywords` properties has any of a set of keywords.
285
- *
286
- * @param jsonObj Object to test
287
- * @param keywords List of keywords to look for in jsonObj
288
- * @returns Boolean indicating result
289
- */
290
- export declare function hasAnyKeyword(jsonObj: any, keywords: string[]): boolean;
291
- /**
292
- * Tests if an object's `item.typeKeywords` or `typeKeywords` properties has a specific keyword.
293
- *
294
- * @param jsonObj Object to test
295
- * @param keyword Keyword to look for in jsonObj
296
- * @returns Boolean indicating result
297
- */
298
- export declare function hasTypeKeyword(jsonObj: any, keyword: string): boolean;
299
- /**
300
- * Will return the provided title if it does not exist as a property
301
- * in one of the objects at the defined path. Otherwise the title will
302
- * have a numerical value attached.
303
- *
304
- * @param title The root title to test
305
- * @param templateDictionary Hash of the facts
306
- * @param path to the objects to evaluate for potantial name clashes
307
- * @returns string The unique title to use
308
- */
309
- export declare function getUniqueTitle(title: string, templateDictionary: any, path: string): string;
310
- /**
311
- * Performs string replacement on every string in an object.
312
- *
313
- * @param obj Object to scan and to modify
314
- * @param pattern Search pattern in each string
315
- * @param replacement Replacement for matches to search pattern
316
- * @returns Modified obj is returned
317
- */
318
- export declare function globalStringReplace(obj: any, pattern: RegExp, replacement: string): any;
319
- /**
320
- * Tests if an array of DatasourceInfos has a given item and layer id already.
321
- *
322
- * @param datasourceInfos Array of DatasourceInfos to evaluate
323
- * @param itemId The items id to check for
324
- * @param layerId The layers id to check for
325
- * @returns Boolean indicating result
326
- */
327
- export declare function hasDatasource(datasourceInfos: IDatasourceInfo[], itemId: string, layerId: number): boolean;
328
- /**
329
- * remove templatization from item id to compare
330
- *
331
- * @example
332
- * \{\{934a9ef8efa7448fa8ddf7b13cef0240.itemId\}\}
333
- * returns 934a9ef8efa7448fa8ddf7b13cef0240
334
- */
335
- export declare function cleanItemId(id: any): any;
336
- /**
337
- * remove templatization from layer based item id to compare
338
- *
339
- * @example
340
- * \{\{934a9ef8efa7448fa8ddf7b13cef0240.layer0.itemId\}\}
341
- * returns 934a9ef8efa7448fa8ddf7b13cef0240
342
- */
343
- export declare function cleanLayerBasedItemId(id: any): any;
344
- /**
345
- * remove templatization from layer id to compare
346
- *
347
- * @example
348
- * \{\{934a9ef8efa7448fa8ddf7b13cef0240.layer0.layerId\}\}
349
- * returns 0
350
- */
351
- export declare function cleanLayerId(id: any): any;
352
- /**
353
- * Get template from list of templates by ID
354
- *
355
- * @param templates Array of item templates to search
356
- * @param id of template we are searching for
357
- *
358
- * @returns Template associated with the user provided id argument
359
- */
360
- export declare function getTemplateById(templates: IItemTemplate[], id: string): any;
361
- /**
362
- * Evaluates a value with a regular expression
363
- *
364
- * @param v a string value to test with the expression
365
- * @param ex the regular expresion to test with
366
- * @returns an array of matches
367
- */
368
- export declare function regExTest(v: any, ex: RegExp): any[];
369
- /**
370
- * Creates a random number between two values.
371
- *
372
- * @param min Inclusive minimum desired value
373
- * @param max Non-inclusive maximum desired value
374
- * @returns Random number in the range [min, max)
375
- */
376
- export declare function _getRandomNumberInRange(min: number, max: number): number;
377
- /**
378
- * Pads the string representation of a number to a minimum width. Requires modern browser.
379
- *
380
- * @param n Number to pad
381
- * @param totalSize Desired *minimum* width of number after padding with zeroes
382
- * @returns Number converted to string and padded on the left as needed
383
- * @private
384
- */
385
- export declare function _padPositiveNum(n: number, totalSize: number): string;
1
+ /** @license
2
+ * Copyright 2018 Esri
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * Provides general helper functions.
18
+ *
19
+ * @module generalHelpers
20
+ */
21
+ import { IModel } from "@esri/hub-common";
22
+ import { ICreateItemFromTemplateResponse, IDatasourceInfo, IItemTemplate, IStringValuePair } from "./interfaces";
23
+ import { Sanitizer } from "./libConnectors";
24
+ /**
25
+ * Returns a URL with a query parameter appended
26
+ *
27
+ * @param url URL to append to
28
+ * @param parameter Query parameter to append, prefixed with "?" or "&" as appropriate to what url already has
29
+ * @returns New URL combining url and parameter
30
+ */
31
+ export declare function appendQueryParam(url: string, parameter: string): string;
32
+ /**
33
+ * Extracts JSON from a Blob.
34
+ *
35
+ * @param blob Blob to use as source
36
+ * @returns A promise that will resolve with JSON or null
37
+ */
38
+ export declare function blobToJson(blob: Blob): Promise<any>;
39
+ /**
40
+ * Converts a Blob to a File.
41
+ *
42
+ * @param blob Blob to use as source
43
+ * @param filename Name to use for file
44
+ * @param mimeType MIME type to override blob's MIME type
45
+ * @returns File created out of Blob and filename
46
+ */
47
+ export declare function blobToFile(blob: Blob, filename: string, mimeType?: string): File;
48
+ /**
49
+ * Extracts text from a Blob.
50
+ *
51
+ * @param blob Blob to use as source
52
+ * @returns A promise that will resolve with text read from blob
53
+ */
54
+ export declare function blobToText(blob: Blob): Promise<string>;
55
+ /**
56
+ * Checks that a URL path ends with a slash.
57
+ *
58
+ * @param url URL to check
59
+ * @returns URL, appended with slash if missing
60
+ */
61
+ export declare function checkUrlPathTermination(url: string): string;
62
+ /**
63
+ * Converts a hub-style item into a solutions-style item, the difference being handling of resources.
64
+ *
65
+ * @param hubModel Hub-style item
66
+ * @return solutions-style item
67
+ */
68
+ export declare function convertIModel(hubModel: IModel | undefined): IItemTemplate;
69
+ /**
70
+ * Creates a random 32-character alphanumeric string.
71
+ *
72
+ * @returns A lowercase 32-char alphanumeric string
73
+ * @internal
74
+ */
75
+ export declare function createLongId(): string;
76
+ /**
77
+ * Creates a random 8-character alphanumeric string that begins with an alphabetic character.
78
+ *
79
+ * @returns An alphanumeric string in the range [a0000000..zzzzzzzz]
80
+ */
81
+ export declare function createShortId(): string;
82
+ /**
83
+ * Copies an input list removing duplicates.
84
+ *
85
+ * @param input List to be deduped
86
+ * @returns Deduped list; order of items in input is not maintained
87
+ */
88
+ export declare function dedupe(input?: string[]): string[];
89
+ /**
90
+ * Flags a failure to create an item from a template.
91
+ *
92
+ * @param itemType The AGO item type
93
+ * @param id Item id to include in response
94
+ * @returns Empty creation response
95
+ */
96
+ export declare function generateEmptyCreationResponse(itemType: string, id?: string): ICreateItemFromTemplateResponse;
97
+ /**
98
+ * Converts JSON to a Blob.
99
+ *
100
+ * @param json JSON to use as source
101
+ * @returns A blob from the source JSON
102
+ */
103
+ export declare function jsonToBlob(json: any): Blob;
104
+ /**
105
+ * Converts JSON to a File.
106
+ *
107
+ * @param json JSON to use as source
108
+ * @param filename Name to use for file
109
+ * @param mimeType MIME type to override blob's MIME type
110
+ * @returns File created out of JSON and filename
111
+ */
112
+ export declare function jsonToFile(json: any, filename: string, mimeType?: string): File;
113
+ /**
114
+ * Makes a unique copy of JSON by stringifying and parsing.
115
+ *
116
+ * @param json JSON to use as source
117
+ * @returns A JSON object from the source JSON
118
+ */
119
+ export declare function jsonToJson(json: any): any;
120
+ /**
121
+ * Saves a blob to a file.
122
+ *
123
+ * @param filename Name to give file
124
+ * @param blob Blob to save
125
+ * @returns Promise resolving when operation is complete
126
+ */
127
+ export declare function saveBlobAsFile(filename: string, blob: Blob): Promise<void>;
128
+ /**
129
+ * Makes a deep clone, including arrays but not functions.
130
+ *
131
+ * @param obj Object to be cloned
132
+ * @returns Clone of obj
133
+ * @example
134
+ * ```js
135
+ * import { cloneObject } from "utils/object-helpers";
136
+ * const original = { foo: "bar" }
137
+ * const copy = cloneObject(original)
138
+ * copy.foo // "bar"
139
+ * copy === original // false
140
+ * ```
141
+ */
142
+ export declare function cloneObject(obj: {
143
+ [index: string]: any;
144
+ }): any;
145
+ /**
146
+ * Compares two JSON objects using JSON.stringify.
147
+ *
148
+ * @param json1 First object
149
+ * @param json2 Second object
150
+ * @returns True if objects are the same
151
+ */
152
+ export declare function compareJSON(json1: any, json2: any): boolean;
153
+ /**
154
+ * Compares two JSON objects using JSON.stringify, converting empty strings to nulls.
155
+ *
156
+ * @param json1 First object
157
+ * @param json2 Second object
158
+ * @returns True if objects are the same
159
+ */
160
+ export declare function compareJSONNoEmptyStrings(json1: any, json2: any): boolean;
161
+ /**
162
+ * Compares two JSON objects property by property and reports each mismatch.
163
+ *
164
+ * @param json1 First object
165
+ * @param json2 Second object
166
+ * @returns A list of mismatch report strings
167
+ */
168
+ export declare function compareJSONProperties(json1: any, json2: any): string[];
169
+ /**
170
+ * Sanitizes JSON and echoes changes to console.
171
+ *
172
+ * @param json JSON to sanitize
173
+ * @param sanitizer Instance of Sanitizer class
174
+ * @returns Sanitized version of `json`
175
+ * @see https://github.com/esri/arcgis-html-sanitizer#sanitize-json
176
+ */
177
+ export declare function sanitizeJSONAndReportChanges(json: any, sanitizer?: Sanitizer): any;
178
+ export declare function deleteItemProps(itemTemplate: any): any;
179
+ /**
180
+ * Deletes a property from an object.
181
+ *
182
+ * @param obj Object with property to delete
183
+ * @param path Path into an object to property, e.g., "data.values.webmap", where "data" is a top-level property
184
+ * in obj
185
+ */
186
+ export declare function deleteProp(obj: any, path: string): void;
187
+ /**
188
+ * Deletes properties from an object.
189
+ *
190
+ * @param obj Object with properties to delete
191
+ * @param props Array of properties on object that should be deleted
192
+ */
193
+ export declare function deleteProps(obj: any, props: string[]): void;
194
+ /**
195
+ * Creates an AGO-style JSON failure response with success property.
196
+ *
197
+ * @param e Optional error information
198
+ * @returns JSON structure with property success set to false and optionally including `e`
199
+ */
200
+ export declare function fail(e?: any): any;
201
+ /**
202
+ * Creates an AGO-style JSON failure response with success property and extended with ids list.
203
+ *
204
+ * @param ids List of ids
205
+ * @param e Optional error information
206
+ * @returns JSON structure with property success set to false and optionally including `e`
207
+ */
208
+ export declare function failWithIds(itemIds: string[], e?: any): any;
209
+ /**
210
+ * Extracts the ids from a string
211
+ *
212
+ * @param v String to examine
213
+ * @returns List of id strings found
214
+ * @example
215
+ * get id from
216
+ * bad3483e025c47338d43df308c117308
217
+ * {bad3483e025c47338d43df308c117308
218
+ * =bad3483e025c47338d43df308c117308
219
+ * do not get id from
220
+ * http: *something/name_bad3483e025c47338d43df308c117308
221
+ * {{bad3483e025c47338d43df308c117308.itemId}}
222
+ * bad3483e025c47338d43df308c117308bad3483e025c47338d43df308c117308
223
+ */
224
+ export declare function getIDs(v: string): string[];
225
+ /**
226
+ * Gets a property out of a deeply nested object.
227
+ * Does not handle anything but nested object graph
228
+ *
229
+ * @param obj Object to retrieve value from
230
+ * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property
231
+ * in obj
232
+ * @returns Value at end of path
233
+ */
234
+ export declare function getProp(obj: {
235
+ [index: string]: any;
236
+ }, path: string): any;
237
+ /**
238
+ * Returns an array of values from an object based on an array of property paths.
239
+ *
240
+ * @param obj Object to retrieve values from
241
+ * @param props Array of paths into the object e.g., "data.values.webmap", where "data" is a top-level property
242
+ * @returns Array of the values plucked from the object; only defined values are returned
243
+ */
244
+ export declare function getProps(obj: any, props: string[]): any;
245
+ /**
246
+ * Get a property out of a deeply nested object
247
+ * Does not handle anything but nested object graph
248
+ *
249
+ * @param obj Object to retrieve value from
250
+ * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property
251
+ * in obj
252
+ * @param defaultV Optional value to use if any part of path--including final value--is undefined
253
+ * @returns Value at end of path
254
+ */
255
+ export declare function getPropWithDefault(obj: IStringValuePair, path: string, defaultV?: any): any;
256
+ /**
257
+ * Updates a list of the items dependencies if more are found in the
258
+ * provided value.
259
+ *
260
+ * @param v a string value to check for ids
261
+ * @param deps a list of the items dependencies
262
+ */
263
+ export declare function idTest(v: any, deps: string[]): void;
264
+ /**
265
+ * Sets a deeply nested property of an object.
266
+ * Creates the full path if it does not exist.
267
+ *
268
+ * @param obj Object to set value of
269
+ * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property in obj
270
+ * @param value The value to set at the end of the path
271
+ */
272
+ export declare function setCreateProp(obj: any, path: string, value: any): void;
273
+ /**
274
+ * Sets a deeply nested property of an object.
275
+ * Does nothing if the full path does not exist.
276
+ *
277
+ * @param obj Object to set value of
278
+ * @param path Path into an object, e.g., "data.values.webmap", where "data" is a top-level property in obj
279
+ * @param value The value to set at the end of the path
280
+ */
281
+ export declare function setProp(obj: any, path: string, value: any): void;
282
+ /**
283
+ * Creates a timestamp string using the current UTC date and time.
284
+ *
285
+ * @returns Timestamp formatted as YYYYMMDD_hhmm_ssmmm, with month one-based and all values padded with zeroes on the
286
+ * left as needed (`ssmmm` stands for seconds from 0..59 and milliseconds from 0..999)
287
+ * @private
288
+ */
289
+ export declare function getUTCTimestamp(): string;
290
+ /**
291
+ * Tests if an object's `item.typeKeywords` or `typeKeywords` properties has any of a set of keywords.
292
+ *
293
+ * @param jsonObj Object to test
294
+ * @param keywords List of keywords to look for in jsonObj
295
+ * @returns Boolean indicating result
296
+ */
297
+ export declare function hasAnyKeyword(jsonObj: any, keywords: string[]): boolean;
298
+ /**
299
+ * Tests if an object's `item.typeKeywords` or `typeKeywords` properties has a specific keyword.
300
+ *
301
+ * @param jsonObj Object to test
302
+ * @param keyword Keyword to look for in jsonObj
303
+ * @returns Boolean indicating result
304
+ */
305
+ export declare function hasTypeKeyword(jsonObj: any, keyword: string): boolean;
306
+ /**
307
+ * Will return the provided title if it does not exist as a property
308
+ * in one of the objects at the defined path. Otherwise the title will
309
+ * have a numerical value attached.
310
+ *
311
+ * @param title The root title to test
312
+ * @param templateDictionary Hash of the facts
313
+ * @param path to the objects to evaluate for potantial name clashes
314
+ * @returns string The unique title to use
315
+ */
316
+ export declare function getUniqueTitle(title: string, templateDictionary: any, path: string): string;
317
+ /**
318
+ * Performs string replacement on every string in an object.
319
+ *
320
+ * @param obj Object to scan and to modify
321
+ * @param pattern Search pattern in each string
322
+ * @param replacement Replacement for matches to search pattern
323
+ * @returns Modified obj is returned
324
+ */
325
+ export declare function globalStringReplace(obj: any, pattern: RegExp, replacement: string): any;
326
+ /**
327
+ * Tests if an array of DatasourceInfos has a given item and layer id already.
328
+ *
329
+ * @param datasourceInfos Array of DatasourceInfos to evaluate
330
+ * @param itemId The items id to check for
331
+ * @param layerId The layers id to check for
332
+ * @returns Boolean indicating result
333
+ */
334
+ export declare function hasDatasource(datasourceInfos: IDatasourceInfo[], itemId: string, layerId: number): boolean;
335
+ /**
336
+ * remove templatization from item id to compare
337
+ *
338
+ * @example
339
+ * \{\{934a9ef8efa7448fa8ddf7b13cef0240.itemId\}\}
340
+ * returns 934a9ef8efa7448fa8ddf7b13cef0240
341
+ */
342
+ export declare function cleanItemId(id: any): any;
343
+ /**
344
+ * remove templatization from layer based item id to compare
345
+ *
346
+ * @example
347
+ * \{\{934a9ef8efa7448fa8ddf7b13cef0240.layer0.itemId\}\}
348
+ * returns 934a9ef8efa7448fa8ddf7b13cef0240
349
+ */
350
+ export declare function cleanLayerBasedItemId(id: any): any;
351
+ /**
352
+ * remove templatization from layer id to compare
353
+ *
354
+ * @example
355
+ * \{\{934a9ef8efa7448fa8ddf7b13cef0240.layer0.layerId\}\}
356
+ * returns 0
357
+ */
358
+ export declare function cleanLayerId(id: any): any;
359
+ /**
360
+ * Get template from list of templates by ID
361
+ *
362
+ * @param templates Array of item templates to search
363
+ * @param id of template we are searching for
364
+ *
365
+ * @returns Template associated with the user provided id argument
366
+ */
367
+ export declare function getTemplateById(templates: IItemTemplate[], id: string): any;
368
+ /**
369
+ * Evaluates a value with a regular expression
370
+ *
371
+ * @param v a string value to test with the expression
372
+ * @param ex the regular expresion to test with
373
+ * @returns an array of matches
374
+ */
375
+ export declare function regExTest(v: any, ex: RegExp): any[];
376
+ /**
377
+ * Creates a random number between two values.
378
+ *
379
+ * @param min Inclusive minimum desired value
380
+ * @param max Non-inclusive maximum desired value
381
+ * @returns Random number in the range [min, max)
382
+ */
383
+ export declare function _getRandomNumberInRange(min: number, max: number): number;
384
+ /**
385
+ * Pads the string representation of a number to a minimum width. Requires modern browser.
386
+ *
387
+ * @param n Number to pad
388
+ * @param totalSize Desired *minimum* width of number after padding with zeroes
389
+ * @returns Number converted to string and padded on the left as needed
390
+ * @private
391
+ */
392
+ export declare function _padPositiveNum(n: number, totalSize: number): string;