@esri/hub-common 14.98.1 → 14.100.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 (247) hide show
  1. package/dist/esm/core/EntityEditor.js +4 -0
  2. package/dist/esm/core/EntityEditor.js.map +1 -1
  3. package/dist/esm/core/fetchHubEntity.js +4 -0
  4. package/dist/esm/core/fetchHubEntity.js.map +1 -1
  5. package/dist/esm/core/getTypeFromEntity.js +3 -0
  6. package/dist/esm/core/getTypeFromEntity.js.map +1 -1
  7. package/dist/esm/core/schemas/internal/getEditorSchemas.js +10 -0
  8. package/dist/esm/core/schemas/internal/getEditorSchemas.js.map +1 -1
  9. package/dist/esm/core/schemas/types.js +2 -0
  10. package/dist/esm/core/schemas/types.js.map +1 -1
  11. package/dist/esm/core/types/HubEntityType.js +1 -0
  12. package/dist/esm/core/types/HubEntityType.js.map +1 -1
  13. package/dist/esm/core/types/IHubSurvey.js +1 -0
  14. package/dist/esm/core/types/IHubSurvey.js.map +1 -0
  15. package/dist/esm/core/types/index.js +1 -0
  16. package/dist/esm/core/types/index.js.map +1 -1
  17. package/dist/esm/discussions/HubDiscussion.js +1 -1
  18. package/dist/esm/discussions/api/settings/getDefaultEntitySettings.js +1 -0
  19. package/dist/esm/discussions/api/settings/getDefaultEntitySettings.js.map +1 -1
  20. package/dist/esm/index.js +1 -1
  21. package/dist/esm/index.js.map +1 -1
  22. package/dist/esm/permissions/HubPermissionPolicies.js +2 -0
  23. package/dist/esm/permissions/HubPermissionPolicies.js.map +1 -1
  24. package/dist/esm/permissions/types/Permission.js +2 -0
  25. package/dist/esm/permissions/types/Permission.js.map +1 -1
  26. package/dist/esm/search/_internal/commonHelpers/getApi.js +1 -1
  27. package/dist/esm/search/_internal/commonHelpers/getApi.js.map +1 -1
  28. package/dist/esm/search/_internal/commonHelpers/getOgcApiDefinition.js +10 -5
  29. package/dist/esm/search/_internal/commonHelpers/getOgcApiDefinition.js.map +1 -1
  30. package/dist/esm/search/_internal/commonHelpers/shouldUseOgcApi.js +5 -1
  31. package/dist/esm/search/_internal/commonHelpers/shouldUseOgcApi.js.map +1 -1
  32. package/dist/esm/search/_internal/hubSearchItemsHelpers/formatOgcItemsResponse.js +18 -0
  33. package/dist/esm/search/_internal/hubSearchItemsHelpers/formatOgcItemsResponse.js.map +1 -1
  34. package/dist/esm/search/_internal/hubSearchItemsHelpers/getOgcCollectionUrl.js +5 -0
  35. package/dist/esm/search/_internal/hubSearchItemsHelpers/getOgcCollectionUrl.js.map +1 -1
  36. package/dist/esm/search/_internal/hubSearchItemsHelpers/ogcItemToDiscussionPostResult.js +29 -0
  37. package/dist/esm/search/_internal/hubSearchItemsHelpers/ogcItemToDiscussionPostResult.js.map +1 -0
  38. package/dist/esm/search/_internal/hubSearchItemsHelpers/ogcItemToSearchResult.js.map +1 -1
  39. package/dist/esm/search/hubSearch.js +1 -0
  40. package/dist/esm/search/hubSearch.js.map +1 -1
  41. package/dist/esm/surveys/HubSurvey.js +130 -0
  42. package/dist/esm/surveys/HubSurvey.js.map +1 -0
  43. package/dist/esm/surveys/_internal/SurveyBusinessRules.js +78 -0
  44. package/dist/esm/surveys/_internal/SurveyBusinessRules.js.map +1 -0
  45. package/dist/esm/surveys/_internal/SurveySchema.js +18 -0
  46. package/dist/esm/surveys/_internal/SurveySchema.js.map +1 -0
  47. package/dist/esm/surveys/_internal/SurveyUiSchemaEdit.js +108 -0
  48. package/dist/esm/surveys/_internal/SurveyUiSchemaEdit.js.map +1 -0
  49. package/dist/esm/surveys/_internal/SurveyUiSchemaSettings.js +60 -0
  50. package/dist/esm/surveys/_internal/SurveyUiSchemaSettings.js.map +1 -0
  51. package/dist/esm/surveys/_internal/computeProps.js +35 -0
  52. package/dist/esm/surveys/_internal/computeProps.js.map +1 -0
  53. package/dist/esm/surveys/_internal/getPropertyMap.js +12 -0
  54. package/dist/esm/surveys/_internal/getPropertyMap.js.map +1 -0
  55. package/dist/esm/surveys/constants.js +2 -0
  56. package/dist/esm/surveys/constants.js.map +1 -0
  57. package/dist/esm/surveys/defaults.js +9 -0
  58. package/dist/esm/surveys/defaults.js.map +1 -0
  59. package/dist/esm/surveys/edit.js +49 -0
  60. package/dist/esm/surveys/edit.js.map +1 -0
  61. package/dist/esm/surveys/fetch.js +45 -0
  62. package/dist/esm/surveys/fetch.js.map +1 -0
  63. package/dist/esm/surveys/index.js +6 -5
  64. package/dist/esm/surveys/index.js.map +1 -1
  65. package/dist/esm/surveys/types.js +1 -0
  66. package/dist/esm/surveys/types.js.map +1 -0
  67. package/dist/esm/surveys/utils/decode-form.js +35 -0
  68. package/dist/esm/surveys/utils/decode-form.js.map +1 -0
  69. package/dist/esm/surveys/utils/get-form-info-json.js +12 -0
  70. package/dist/esm/surveys/utils/get-form-info-json.js.map +1 -0
  71. package/dist/esm/surveys/utils/get-form-json.js +65 -0
  72. package/dist/esm/surveys/utils/get-form-json.js.map +1 -0
  73. package/dist/esm/surveys/utils/get-input-feature-service-model.js.map +1 -0
  74. package/dist/esm/surveys/utils/get-map-question.js +31 -0
  75. package/dist/esm/surveys/utils/get-map-question.js.map +1 -0
  76. package/dist/esm/surveys/utils/get-source-feature-service-model-from-fieldworker.js.map +1 -0
  77. package/dist/esm/surveys/utils/get-stakeholder-model.js.map +1 -0
  78. package/dist/esm/surveys/utils/get-survey-models.js.map +1 -0
  79. package/dist/esm/surveys/utils/has-map-question.js +11 -0
  80. package/dist/esm/surveys/utils/has-map-question.js.map +1 -0
  81. package/dist/esm/surveys/utils/index.js +16 -0
  82. package/dist/esm/surveys/utils/index.js.map +1 -0
  83. package/dist/esm/surveys/utils/is-fieldworker-view.js.map +1 -0
  84. package/dist/esm/surveys/utils/is-map-question.js +16 -0
  85. package/dist/esm/surveys/utils/is-map-question.js.map +1 -0
  86. package/dist/esm/surveys/utils/is-page-question.js +9 -0
  87. package/dist/esm/surveys/utils/is-page-question.js.map +1 -0
  88. package/dist/esm/surveys/utils/is-survey123-connect.js +16 -0
  89. package/dist/esm/surveys/utils/is-survey123-connect.js.map +1 -0
  90. package/dist/esm/surveys/utils/set-display-map-keyword.js +15 -0
  91. package/dist/esm/surveys/utils/set-display-map-keyword.js.map +1 -0
  92. package/dist/esm/surveys/utils/should-display-map.js +10 -0
  93. package/dist/esm/surveys/utils/should-display-map.js.map +1 -0
  94. package/dist/node/core/EntityEditor.js +4 -0
  95. package/dist/node/core/EntityEditor.js.map +1 -1
  96. package/dist/node/core/fetchHubEntity.js +4 -0
  97. package/dist/node/core/fetchHubEntity.js.map +1 -1
  98. package/dist/node/core/getTypeFromEntity.js +3 -0
  99. package/dist/node/core/getTypeFromEntity.js.map +1 -1
  100. package/dist/node/core/schemas/internal/getEditorSchemas.js +10 -0
  101. package/dist/node/core/schemas/internal/getEditorSchemas.js.map +1 -1
  102. package/dist/node/core/schemas/types.js +2 -0
  103. package/dist/node/core/schemas/types.js.map +1 -1
  104. package/dist/node/core/types/HubEntityType.js +1 -0
  105. package/dist/node/core/types/HubEntityType.js.map +1 -1
  106. package/dist/node/core/types/IHubSurvey.js +3 -0
  107. package/dist/node/core/types/IHubSurvey.js.map +1 -0
  108. package/dist/node/core/types/index.js +1 -0
  109. package/dist/node/core/types/index.js.map +1 -1
  110. package/dist/node/discussions/HubDiscussion.js +1 -1
  111. package/dist/node/discussions/api/settings/getDefaultEntitySettings.js +1 -0
  112. package/dist/node/discussions/api/settings/getDefaultEntitySettings.js.map +1 -1
  113. package/dist/node/index.js +1 -1
  114. package/dist/node/index.js.map +1 -1
  115. package/dist/node/permissions/HubPermissionPolicies.js +2 -0
  116. package/dist/node/permissions/HubPermissionPolicies.js.map +1 -1
  117. package/dist/node/permissions/types/Permission.js +2 -0
  118. package/dist/node/permissions/types/Permission.js.map +1 -1
  119. package/dist/node/search/_internal/commonHelpers/getApi.js +1 -1
  120. package/dist/node/search/_internal/commonHelpers/getApi.js.map +1 -1
  121. package/dist/node/search/_internal/commonHelpers/getOgcApiDefinition.js +10 -5
  122. package/dist/node/search/_internal/commonHelpers/getOgcApiDefinition.js.map +1 -1
  123. package/dist/node/search/_internal/commonHelpers/shouldUseOgcApi.js +5 -1
  124. package/dist/node/search/_internal/commonHelpers/shouldUseOgcApi.js.map +1 -1
  125. package/dist/node/search/_internal/hubSearchItemsHelpers/formatOgcItemsResponse.js +19 -1
  126. package/dist/node/search/_internal/hubSearchItemsHelpers/formatOgcItemsResponse.js.map +1 -1
  127. package/dist/node/search/_internal/hubSearchItemsHelpers/getOgcCollectionUrl.js +5 -0
  128. package/dist/node/search/_internal/hubSearchItemsHelpers/getOgcCollectionUrl.js.map +1 -1
  129. package/dist/node/search/_internal/hubSearchItemsHelpers/ogcItemToDiscussionPostResult.js +33 -0
  130. package/dist/node/search/_internal/hubSearchItemsHelpers/ogcItemToDiscussionPostResult.js.map +1 -0
  131. package/dist/node/search/_internal/hubSearchItemsHelpers/ogcItemToSearchResult.js.map +1 -1
  132. package/dist/node/search/hubSearch.js +1 -0
  133. package/dist/node/search/hubSearch.js.map +1 -1
  134. package/dist/node/surveys/HubSurvey.js +134 -0
  135. package/dist/node/surveys/HubSurvey.js.map +1 -0
  136. package/dist/node/surveys/_internal/SurveyBusinessRules.js +81 -0
  137. package/dist/node/surveys/_internal/SurveyBusinessRules.js.map +1 -0
  138. package/dist/node/surveys/_internal/SurveySchema.js +21 -0
  139. package/dist/node/surveys/_internal/SurveySchema.js.map +1 -0
  140. package/dist/node/surveys/_internal/SurveyUiSchemaEdit.js +111 -0
  141. package/dist/node/surveys/_internal/SurveyUiSchemaEdit.js.map +1 -0
  142. package/dist/node/surveys/_internal/SurveyUiSchemaSettings.js +63 -0
  143. package/dist/node/surveys/_internal/SurveyUiSchemaSettings.js.map +1 -0
  144. package/dist/node/surveys/_internal/computeProps.js +39 -0
  145. package/dist/node/surveys/_internal/computeProps.js.map +1 -0
  146. package/dist/node/surveys/_internal/getPropertyMap.js +16 -0
  147. package/dist/node/surveys/_internal/getPropertyMap.js.map +1 -0
  148. package/dist/node/surveys/constants.js +5 -0
  149. package/dist/node/surveys/constants.js.map +1 -0
  150. package/dist/node/surveys/defaults.js +12 -0
  151. package/dist/node/surveys/defaults.js.map +1 -0
  152. package/dist/node/surveys/edit.js +54 -0
  153. package/dist/node/surveys/edit.js.map +1 -0
  154. package/dist/node/surveys/fetch.js +50 -0
  155. package/dist/node/surveys/fetch.js.map +1 -0
  156. package/dist/node/surveys/index.js +6 -5
  157. package/dist/node/surveys/index.js.map +1 -1
  158. package/dist/node/surveys/types.js +3 -0
  159. package/dist/node/surveys/types.js.map +1 -0
  160. package/dist/node/surveys/utils/decode-form.js +38 -0
  161. package/dist/node/surveys/utils/decode-form.js.map +1 -0
  162. package/dist/node/surveys/utils/get-form-info-json.js +15 -0
  163. package/dist/node/surveys/utils/get-form-info-json.js.map +1 -0
  164. package/dist/node/surveys/utils/get-form-json.js +68 -0
  165. package/dist/node/surveys/utils/get-form-json.js.map +1 -0
  166. package/dist/node/surveys/utils/get-input-feature-service-model.js.map +1 -0
  167. package/dist/node/surveys/utils/get-map-question.js +34 -0
  168. package/dist/node/surveys/utils/get-map-question.js.map +1 -0
  169. package/dist/node/surveys/utils/get-source-feature-service-model-from-fieldworker.js.map +1 -0
  170. package/dist/node/surveys/utils/get-stakeholder-model.js.map +1 -0
  171. package/dist/node/surveys/utils/get-survey-models.js.map +1 -0
  172. package/dist/node/surveys/utils/has-map-question.js +14 -0
  173. package/dist/node/surveys/utils/has-map-question.js.map +1 -0
  174. package/dist/node/surveys/utils/index.js +19 -0
  175. package/dist/node/surveys/utils/index.js.map +1 -0
  176. package/dist/node/surveys/utils/is-fieldworker-view.js.map +1 -0
  177. package/dist/node/surveys/utils/is-map-question.js +19 -0
  178. package/dist/node/surveys/utils/is-map-question.js.map +1 -0
  179. package/dist/node/surveys/utils/is-page-question.js +12 -0
  180. package/dist/node/surveys/utils/is-page-question.js.map +1 -0
  181. package/dist/node/surveys/utils/is-survey123-connect.js +19 -0
  182. package/dist/node/surveys/utils/is-survey123-connect.js.map +1 -0
  183. package/dist/node/surveys/utils/set-display-map-keyword.js +19 -0
  184. package/dist/node/surveys/utils/set-display-map-keyword.js.map +1 -0
  185. package/dist/node/surveys/utils/should-display-map.js +13 -0
  186. package/dist/node/surveys/utils/should-display-map.js.map +1 -0
  187. package/dist/types/core/schemas/types.d.ts +17 -2
  188. package/dist/types/core/types/HubEntity.d.ts +2 -1
  189. package/dist/types/core/types/HubEntityType.d.ts +1 -1
  190. package/dist/types/core/types/IHubSurvey.d.ts +11 -0
  191. package/dist/types/core/types/index.d.ts +1 -0
  192. package/dist/types/index.d.ts +1 -1
  193. package/dist/types/permissions/types/Permission.d.ts +2 -1
  194. package/dist/types/search/_internal/commonHelpers/getOgcApiDefinition.d.ts +2 -1
  195. package/dist/types/search/_internal/hubSearchItemsHelpers/formatOgcItemsResponse.d.ts +1 -1
  196. package/dist/types/search/_internal/hubSearchItemsHelpers/ogcItemToDiscussionPostResult.d.ts +11 -0
  197. package/dist/types/search/types/IHubCatalog.d.ts +1 -1
  198. package/dist/types/surveys/HubSurvey.d.ts +50 -0
  199. package/dist/types/surveys/_internal/SurveyBusinessRules.d.ts +12 -0
  200. package/dist/types/surveys/_internal/SurveySchema.d.ts +7 -0
  201. package/dist/types/surveys/_internal/SurveyUiSchemaEdit.d.ts +10 -0
  202. package/dist/types/surveys/_internal/SurveyUiSchemaSettings.d.ts +10 -0
  203. package/dist/types/surveys/_internal/computeProps.d.ts +12 -0
  204. package/dist/types/surveys/_internal/getPropertyMap.d.ts +8 -0
  205. package/dist/types/surveys/constants.d.ts +1 -0
  206. package/dist/types/surveys/defaults.d.ts +3 -0
  207. package/dist/types/surveys/edit.d.ts +17 -0
  208. package/dist/types/surveys/fetch.d.ts +20 -0
  209. package/dist/types/surveys/index.d.ts +6 -5
  210. package/dist/types/surveys/types.d.ts +15 -0
  211. package/dist/types/surveys/utils/decode-form.d.ts +8 -0
  212. package/dist/types/surveys/utils/get-form-info-json.d.ts +9 -0
  213. package/dist/types/surveys/utils/get-form-json.d.ts +8 -0
  214. package/dist/types/surveys/{get-input-feature-service-model.d.ts → utils/get-input-feature-service-model.d.ts} +1 -1
  215. package/dist/types/surveys/utils/get-map-question.d.ts +7 -0
  216. package/dist/types/surveys/{get-source-feature-service-model-from-fieldworker.d.ts → utils/get-source-feature-service-model-from-fieldworker.d.ts} +1 -1
  217. package/dist/types/surveys/{get-stakeholder-model.d.ts → utils/get-stakeholder-model.d.ts} +1 -1
  218. package/dist/types/surveys/{get-survey-models.d.ts → utils/get-survey-models.d.ts} +1 -1
  219. package/dist/types/surveys/utils/has-map-question.d.ts +8 -0
  220. package/dist/types/surveys/utils/index.d.ts +15 -0
  221. package/dist/types/surveys/utils/is-map-question.d.ts +7 -0
  222. package/dist/types/surveys/utils/is-page-question.d.ts +7 -0
  223. package/dist/types/surveys/utils/is-survey123-connect.d.ts +8 -0
  224. package/dist/types/surveys/utils/set-display-map-keyword.d.ts +7 -0
  225. package/dist/types/surveys/utils/should-display-map.d.ts +7 -0
  226. package/package.json +1 -1
  227. package/dist/esm/surveys/get-input-feature-service-model.js.map +0 -1
  228. package/dist/esm/surveys/get-source-feature-service-model-from-fieldworker.js.map +0 -1
  229. package/dist/esm/surveys/get-stakeholder-model.js.map +0 -1
  230. package/dist/esm/surveys/get-survey-models.js.map +0 -1
  231. package/dist/esm/surveys/is-fieldworker-view.js.map +0 -1
  232. package/dist/node/surveys/get-input-feature-service-model.js.map +0 -1
  233. package/dist/node/surveys/get-source-feature-service-model-from-fieldworker.js.map +0 -1
  234. package/dist/node/surveys/get-stakeholder-model.js.map +0 -1
  235. package/dist/node/surveys/get-survey-models.js.map +0 -1
  236. package/dist/node/surveys/is-fieldworker-view.js.map +0 -1
  237. /package/dist/esm/surveys/{get-input-feature-service-model.js → utils/get-input-feature-service-model.js} +0 -0
  238. /package/dist/esm/surveys/{get-source-feature-service-model-from-fieldworker.js → utils/get-source-feature-service-model-from-fieldworker.js} +0 -0
  239. /package/dist/esm/surveys/{get-stakeholder-model.js → utils/get-stakeholder-model.js} +0 -0
  240. /package/dist/esm/surveys/{get-survey-models.js → utils/get-survey-models.js} +0 -0
  241. /package/dist/esm/surveys/{is-fieldworker-view.js → utils/is-fieldworker-view.js} +0 -0
  242. /package/dist/node/surveys/{get-input-feature-service-model.js → utils/get-input-feature-service-model.js} +0 -0
  243. /package/dist/node/surveys/{get-source-feature-service-model-from-fieldworker.js → utils/get-source-feature-service-model-from-fieldworker.js} +0 -0
  244. /package/dist/node/surveys/{get-stakeholder-model.js → utils/get-stakeholder-model.js} +0 -0
  245. /package/dist/node/surveys/{get-survey-models.js → utils/get-survey-models.js} +0 -0
  246. /package/dist/node/surveys/{is-fieldworker-view.js → utils/is-fieldworker-view.js} +0 -0
  247. /package/dist/types/surveys/{is-fieldworker-view.d.ts → utils/is-fieldworker-view.d.ts} +0 -0
@@ -0,0 +1,130 @@
1
+ import { HubItemEntity } from "../core/HubItemEntity";
2
+ import { enrichEntity } from "../core/enrichEntity";
3
+ import { getEditorConfig } from "../core/schemas/getEditorConfig";
4
+ import { DEFAULT_SURVEY } from "./defaults";
5
+ import { cloneObject } from "../util";
6
+ import { deleteSurvey, updateSurvey } from "./edit";
7
+ /**
8
+ * Hub Survey Class
9
+ */
10
+ export class HubSurvey extends HubItemEntity {
11
+ /**
12
+ * Create an instance from a HubSurvey object
13
+ * @param json - JSON object to create a HubSurvey from
14
+ * @param context - ArcGIS context
15
+ * @returns
16
+ */
17
+ static fromJson(json, context) {
18
+ // merge what we have with the default values
19
+ const pojo = this.applyDefaults(json, context);
20
+ return new HubSurvey(pojo, context);
21
+ }
22
+ static applyDefaults(partialSurvey, context) {
23
+ // ensure we have the orgUrlKey
24
+ if (!partialSurvey.orgUrlKey) {
25
+ partialSurvey.orgUrlKey = context.portal.urlKey;
26
+ }
27
+ // extend the partial over the defaults
28
+ const pojo = Object.assign(Object.assign({}, DEFAULT_SURVEY), partialSurvey);
29
+ return pojo;
30
+ }
31
+ /**
32
+ * Apply a new state to the instance
33
+ * @param changes A partial IHubSurvey
34
+ */
35
+ update(changes) {
36
+ if (this.isDestroyed) {
37
+ throw new Error("HubSurvey is already destroyed.");
38
+ }
39
+ // merge partial onto existing entity
40
+ this.entity = Object.assign(Object.assign({}, this.entity), changes);
41
+ }
42
+ /**
43
+ * Save the class instance
44
+ */
45
+ async save() {
46
+ if (this.isDestroyed) {
47
+ throw new Error("HubSurvey is already destroyed.");
48
+ }
49
+ if (this.entity.id) {
50
+ // update it
51
+ this.entity = await updateSurvey(this.entity, this.context.userRequestOptions);
52
+ }
53
+ // call the after save hook on superclass
54
+ await super.afterSave();
55
+ return;
56
+ }
57
+ /**
58
+ * Delete the HubSurvey object from the store
59
+ * set a flag to indicate that it is destroyed
60
+ * @returns a promise
61
+ */
62
+ async delete() {
63
+ if (this.isDestroyed) {
64
+ throw new Error("HubSurvey is already destroyed.");
65
+ }
66
+ this.isDestroyed = true;
67
+ // Delegate to module fn
68
+ await deleteSurvey(this.entity.id, this.context.userRequestOptions);
69
+ }
70
+ /*
71
+ * Get the editor config for the HubSurvey entity.
72
+ * @param i18nScope translation scope to be interpolated into the uiSchema
73
+ * @param type editor type - corresonds to the returned uiSchema
74
+ */
75
+ getEditorConfig(i18nScope, type) {
76
+ // delegate to the schema subsystem
77
+ return getEditorConfig(i18nScope, type, this.entity, this.context);
78
+ }
79
+ /**
80
+ * Return the Survey object as an editor object
81
+ * @param editorContext
82
+ * @param include
83
+ * @returns
84
+ */
85
+ async toEditor(editorContext, include = []) {
86
+ // 1. optionally enrich entity and cast to editor
87
+ const editor = include.length
88
+ ? (await enrichEntity(cloneObject(this.entity), include, this.context.hubRequestOptions))
89
+ : cloneObject(this.entity);
90
+ // 2. Apply transforms to relevant entity values so they
91
+ // can be consumed by the editor
92
+ return editor;
93
+ }
94
+ /**
95
+ * Load the Survey object from the editor object
96
+ * @param editor
97
+ * @param editorContext
98
+ * @returns IHubSurvey
99
+ */
100
+ async fromEditor(editor, editorContext) {
101
+ var _a;
102
+ // Setting the thumbnailCache will ensure that
103
+ // the thumbnail is updated on next save
104
+ if (editor._thumbnail) {
105
+ if (editor._thumbnail.blob) {
106
+ this.thumbnailCache = {
107
+ file: editor._thumbnail.blob,
108
+ filename: editor._thumbnail.fileName,
109
+ clear: false,
110
+ };
111
+ }
112
+ else {
113
+ this.thumbnailCache = {
114
+ clear: true,
115
+ };
116
+ }
117
+ }
118
+ delete editor._thumbnail;
119
+ // convert back to an entity. Apply any reverse transforms used in
120
+ // of the toEditor method
121
+ const entity = cloneObject(editor);
122
+ // copy the location extent up one level
123
+ entity.extent = (_a = editor.location) === null || _a === void 0 ? void 0 : _a.extent;
124
+ // Save, which will also create new content if new
125
+ this.entity = entity;
126
+ await this.save();
127
+ return this.entity;
128
+ }
129
+ }
130
+ //# sourceMappingURL=HubSurvey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HubSurvey.js","sourceRoot":"","sources":["../../../src/surveys/HubSurvey.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * survey Permission Policies
3
+ * These define the requirements any user must meet to perform related actions
4
+ * @private
5
+ */
6
+ export const SurveyPermissions = [
7
+ "hub:survey",
8
+ "hub:survey:create",
9
+ "hub:survey:delete",
10
+ "hub:survey:edit",
11
+ "hub:survey:view",
12
+ "hub:survey:workspace",
13
+ "hub:survey:workspace:dashboard",
14
+ "hub:survey:workspace:details",
15
+ "hub:survey:workspace:settings",
16
+ "hub:survey:workspace:collaborators",
17
+ "hub:survey:manage",
18
+ ];
19
+ /**
20
+ * Survey permission policies
21
+ * @private
22
+ */
23
+ export const SurveyPermissionPolicies = [
24
+ {
25
+ permission: "hub:survey",
26
+ services: ["portal"],
27
+ // gated for now
28
+ availability: ["alpha"],
29
+ environments: ["devext", "qaext"],
30
+ },
31
+ {
32
+ permission: "hub:survey:view",
33
+ dependencies: ["hub:survey"],
34
+ },
35
+ {
36
+ permission: "hub:survey:create",
37
+ authenticated: true,
38
+ dependencies: ["hub:survey"],
39
+ entityEdit: true,
40
+ },
41
+ {
42
+ permission: "hub:survey:edit",
43
+ authenticated: true,
44
+ dependencies: ["hub:survey"],
45
+ entityEdit: true,
46
+ },
47
+ {
48
+ permission: "hub:survey:delete",
49
+ authenticated: true,
50
+ dependencies: ["hub:survey"],
51
+ entityOwner: true,
52
+ },
53
+ {
54
+ permission: "hub:survey:workspace",
55
+ dependencies: ["hub:feature:workspace"],
56
+ },
57
+ {
58
+ permission: "hub:survey:workspace:dashboard",
59
+ dependencies: ["hub:survey:workspace", "hub:survey:view"],
60
+ },
61
+ {
62
+ permission: "hub:survey:workspace:details",
63
+ dependencies: ["hub:survey:workspace", "hub:survey:edit"],
64
+ },
65
+ {
66
+ permission: "hub:survey:workspace:settings",
67
+ dependencies: ["hub:survey:workspace", "hub:survey:edit"],
68
+ },
69
+ {
70
+ permission: "hub:survey:workspace:collaborators",
71
+ dependencies: ["hub:survey:workspace", "hub:survey:edit"],
72
+ },
73
+ {
74
+ permission: "hub:survey:manage",
75
+ dependencies: ["hub:survey:edit"],
76
+ },
77
+ ];
78
+ //# sourceMappingURL=SurveyBusinessRules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SurveyBusinessRules.js","sourceRoot":"","sources":["../../../../src/surveys/_internal/SurveyBusinessRules.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,YAAY;IACZ,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;IACjB,sBAAsB;IACtB,gCAAgC;IAChC,8BAA8B;IAC9B,+BAA+B;IAC/B,oCAAoC;IACpC,mBAAmB;CACX,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAwB;IAC3D;QACE,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,gBAAgB;QAChB,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;KAClC;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,YAAY,EAAE,CAAC,YAAY,CAAC;KAC7B;IACD;QACE,UAAU,EAAE,mBAAmB;QAC/B,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,CAAC,YAAY,CAAC;QAC5B,UAAU,EAAE,IAAI;KACjB;IACD;QACE,UAAU,EAAE,iBAAiB;QAC7B,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,CAAC,YAAY,CAAC;QAC5B,UAAU,EAAE,IAAI;KACjB;IACD;QACE,UAAU,EAAE,mBAAmB;QAC/B,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,CAAC,YAAY,CAAC;QAC5B,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,sBAAsB;QAClC,YAAY,EAAE,CAAC,uBAAuB,CAAC;KACxC;IACD;QACE,UAAU,EAAE,gCAAgC;QAC5C,YAAY,EAAE,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;KAC1D;IACD;QACE,UAAU,EAAE,8BAA8B;QAC1C,YAAY,EAAE,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;KAC1D;IACD;QACE,UAAU,EAAE,+BAA+B;QAC3C,YAAY,EAAE,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;KAC1D;IACD;QACE,UAAU,EAAE,oCAAoC;QAChD,YAAY,EAAE,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;KAC1D;IACD;QACE,UAAU,EAAE,mBAAmB;QAC/B,YAAY,EAAE,CAAC,iBAAiB,CAAC;KAClC;CACF,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { HubItemEntitySchema } from "../../core/schemas/shared/HubItemEntitySchema";
2
+ export const SurveyEditorTypes = [
3
+ "hub:survey:edit",
4
+ "hub:survey:settings",
5
+ ];
6
+ /**
7
+ * defines the JSON schema for a Survey entity's editable fields
8
+ */
9
+ export const SurveySchema = Object.assign(Object.assign({}, HubItemEntitySchema), { properties: Object.assign({ displayMap: {
10
+ type: "boolean",
11
+ enum: [true, false],
12
+ default: false,
13
+ }, hasMapQuestion: {
14
+ type: "boolean",
15
+ enum: [true, false],
16
+ default: false,
17
+ } }, HubItemEntitySchema.properties) });
18
+ //# sourceMappingURL=SurveySchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SurveySchema.js","sourceRoot":"","sources":["../../../../src/surveys/_internal/SurveySchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAIpF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,iBAAiB;IACjB,qBAAqB;CACb,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAyB,gCAC7C,mBAAmB,KACtB,UAAU,kBACR,UAAU,EAAE;YACV,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;YACnB,OAAO,EAAE,KAAK;SACf,EACD,cAAc,EAAE;YACd,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;YACnB,OAAO,EAAE,KAAK;SACf,IACE,mBAAmB,CAAC,UAAU,IAEZ,CAAC"}
@@ -0,0 +1,108 @@
1
+ import { getCategoryItems } from "../../core/schemas/internal/getCategoryItems";
2
+ import { getTagItems } from "../../core/schemas/internal/getTagItems";
3
+ import { getThumbnailUiSchemaElement } from "../../core/schemas/internal/getThumbnailUiSchemaElement";
4
+ /**
5
+ * @private
6
+ * constructs the complete edit uiSchema for Hub Survey.
7
+ * This defines how the schema properties should be
8
+ * rendered in the survey editing experience
9
+ */
10
+ export const buildUiSchema = async (i18nScope, options, context) => {
11
+ return {
12
+ type: "Layout",
13
+ elements: [
14
+ {
15
+ type: "Section",
16
+ labelKey: `${i18nScope}.sections.basicInfo.label`,
17
+ elements: [
18
+ {
19
+ labelKey: `${i18nScope}.fields.name.label`,
20
+ scope: "/properties/name",
21
+ type: "Control",
22
+ options: {
23
+ messages: [
24
+ {
25
+ type: "ERROR",
26
+ keyword: "required",
27
+ icon: true,
28
+ labelKey: `${i18nScope}.fields.name.requiredError`,
29
+ },
30
+ {
31
+ type: "ERROR",
32
+ keyword: "maxLength",
33
+ icon: true,
34
+ labelKey: `shared.fields.title.maxLengthError`,
35
+ },
36
+ ],
37
+ },
38
+ },
39
+ {
40
+ labelKey: `${i18nScope}.fields.description.label`,
41
+ scope: "/properties/description",
42
+ type: "Control",
43
+ options: {
44
+ control: "hub-field-input-rich-text",
45
+ type: "textarea",
46
+ helperText: {
47
+ labelKey: `${i18nScope}.fields.description.helperText`,
48
+ },
49
+ },
50
+ },
51
+ {
52
+ labelKey: `${i18nScope}.fields.summary.label`,
53
+ scope: "/properties/summary",
54
+ type: "Control",
55
+ options: {
56
+ control: "hub-field-input-input",
57
+ type: "textarea",
58
+ rows: 4,
59
+ helperText: {
60
+ labelKey: `${i18nScope}.fields.summary.helperText`,
61
+ },
62
+ messages: [
63
+ {
64
+ type: "ERROR",
65
+ keyword: "maxLength",
66
+ icon: true,
67
+ labelKey: `shared.fields.purpose.maxLengthError`,
68
+ },
69
+ ],
70
+ },
71
+ },
72
+ ],
73
+ },
74
+ {
75
+ type: "Section",
76
+ labelKey: `${i18nScope}.sections.searchDiscoverability.label`,
77
+ elements: [
78
+ {
79
+ labelKey: `${i18nScope}.fields.tags.label`,
80
+ scope: "/properties/tags",
81
+ type: "Control",
82
+ options: {
83
+ control: "hub-field-input-combobox",
84
+ items: await getTagItems(options.tags, context.portal.id, context.hubRequestOptions),
85
+ allowCustomValues: true,
86
+ selectionMode: "multiple",
87
+ placeholderIcon: "label",
88
+ },
89
+ },
90
+ {
91
+ labelKey: `${i18nScope}.fields.categories.label`,
92
+ scope: "/properties/categories",
93
+ type: "Control",
94
+ options: {
95
+ control: "hub-field-input-combobox",
96
+ items: await getCategoryItems(context.portal.id, context.hubRequestOptions),
97
+ allowCustomValues: false,
98
+ selectionMode: "multiple",
99
+ placeholderIcon: "select-category",
100
+ },
101
+ },
102
+ getThumbnailUiSchemaElement(i18nScope, options.thumbnail, options.thumbnailUrl),
103
+ ],
104
+ },
105
+ ],
106
+ };
107
+ };
108
+ //# sourceMappingURL=SurveyUiSchemaEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SurveyUiSchemaEdit.js","sourceRoot":"","sources":["../../../../src/surveys/_internal/SurveyUiSchemaEdit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { UiSchemaMessageTypes, UiSchemaRuleEffects, } from "../../core/schemas/types";
2
+ /**
3
+ * @private
4
+ * settings uiSchema for Hub Survey - this
5
+ * defines how the schema properties should be
6
+ * rendered in the Survey settings experience
7
+ */
8
+ export const buildUiSchema = async (i18nScope, options, context) => {
9
+ return {
10
+ type: "Layout",
11
+ elements: [
12
+ {
13
+ type: "Section",
14
+ labelKey: `${i18nScope}.sections.settings.label`,
15
+ elements: [
16
+ {
17
+ labelKey: `${i18nScope}.fields.displayMap.label`,
18
+ scope: "/properties/displayMap",
19
+ type: "Control",
20
+ rule: {
21
+ effect: UiSchemaRuleEffects.DISABLE,
22
+ condition: {
23
+ scope: "/properties/hasMapQuestion",
24
+ schema: { const: false },
25
+ },
26
+ },
27
+ options: {
28
+ control: "hub-field-input-tile-select",
29
+ type: "radio",
30
+ labels: [
31
+ `{{${i18nScope}.fields.displayMap.enabled.label:translate}}`,
32
+ `{{${i18nScope}.fields.displayMap.disabled.label:translate}}`,
33
+ ],
34
+ descriptions: [
35
+ `{{${i18nScope}.fields.displayMap.enabled.description:translate}}`,
36
+ `{{${i18nScope}.fields.displayMap.disabled.description:translate}}`,
37
+ ],
38
+ icons: ["sidecar", "form-elements"],
39
+ layout: "horizontal",
40
+ messages: options.hasMapQuestion
41
+ ? []
42
+ : [
43
+ {
44
+ type: UiSchemaMessageTypes.custom,
45
+ display: "notice",
46
+ keyword: "mapQuestion",
47
+ titleKey: `${i18nScope}.fields.displayMap.notice.title`,
48
+ labelKey: `${i18nScope}.fields.displayMap.notice.message`,
49
+ allowShowBeforeInteract: true,
50
+ alwaysShow: true,
51
+ },
52
+ ],
53
+ },
54
+ },
55
+ ],
56
+ },
57
+ ],
58
+ };
59
+ };
60
+ //# sourceMappingURL=SurveyUiSchemaSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SurveyUiSchemaSettings.js","sourceRoot":"","sources":["../../../../src/surveys/_internal/SurveyUiSchemaSettings.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAGlC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,SAAiB,EACjB,OAA4B,EAC5B,OAAuB,EACH,EAAE;IACtB,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,GAAG,SAAS,0BAA0B;gBAChD,QAAQ,EAAE;oBACR;wBACE,QAAQ,EAAE,GAAG,SAAS,0BAA0B;wBAChD,KAAK,EAAE,wBAAwB;wBAC/B,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE;4BACJ,MAAM,EAAE,mBAAmB,CAAC,OAAO;4BACnC,SAAS,EAAE;gCACT,KAAK,EAAE,4BAA4B;gCACnC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;6BACzB;yBACF;wBACD,OAAO,EAAE;4BACP,OAAO,EAAE,6BAA6B;4BACtC,IAAI,EAAE,OAAO;4BACb,MAAM,EAAE;gCACN,KAAK,SAAS,8CAA8C;gCAC5D,KAAK,SAAS,+CAA+C;6BAC9D;4BACD,YAAY,EAAE;gCACZ,KAAK,SAAS,oDAAoD;gCAClE,KAAK,SAAS,qDAAqD;6BACpE;4BACD,KAAK,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;4BACnC,MAAM,EAAE,YAAY;4BACpB,QAAQ,EAAG,OAAsB,CAAC,cAAc;gCAC9C,CAAC,CAAC,EAAE;gCACJ,CAAC,CAAC;oCACE;wCACE,IAAI,EAAE,oBAAoB,CAAC,MAAM;wCACjC,OAAO,EAAE,QAAQ;wCACjB,OAAO,EAAE,aAAa;wCACtB,QAAQ,EAAE,GAAG,SAAS,iCAAiC;wCACvD,QAAQ,EAAE,GAAG,SAAS,mCAAmC;wCACzD,uBAAuB,EAAE,IAAI;wCAC7B,UAAU,EAAE,IAAI;qCACjB;iCACF;yBACN;qBACF;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { computeBaseProps } from "../../core/_internal/computeBaseProps";
2
+ import { getItemThumbnailUrl } from "../../resources/get-item-thumbnail-url";
3
+ import { isDiscussable } from "../../discussions/utils";
4
+ import { hasMapQuestion } from "../utils/has-map-question";
5
+ import { shouldDisplayMap } from "../utils/should-display-map";
6
+ /**
7
+ * Given a model and a Survey object, set various computed properties that can't be directly mapped
8
+ * @private
9
+ * @param model
10
+ * @param survey
11
+ * @param requestOptions
12
+ * @returns an IHubSurvey object
13
+ */
14
+ export function computeProps(model, survey, requestOptions) {
15
+ let token;
16
+ if (requestOptions.authentication) {
17
+ const session = requestOptions.authentication;
18
+ token = session.token;
19
+ }
20
+ // compute base properties on survey object
21
+ survey = computeBaseProps(model.item, survey);
22
+ // thumbnail url
23
+ survey.thumbnailUrl = getItemThumbnailUrl(model.item, requestOptions, token);
24
+ // Handle Dates
25
+ survey.createdDate = new Date(model.item.created);
26
+ survey.createdDateSource = "item.created";
27
+ survey.updatedDate = new Date(model.item.modified);
28
+ survey.updatedDateSource = "item.modified";
29
+ survey.isDiscussable = isDiscussable(survey);
30
+ survey.hasMapQuestion = hasMapQuestion(model.formJSON.questions);
31
+ survey.displayMap = shouldDisplayMap(model.item);
32
+ // cast b/c this takes a partial but returns a full object
33
+ return survey;
34
+ }
35
+ //# sourceMappingURL=computeProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/surveys/_internal/computeProps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAGzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,MAA2B,EAC3B,cAA+B;IAE/B,IAAI,KAAa,CAAC;IAClB,IAAI,cAAc,CAAC,cAAc,EAAE;QACjC,MAAM,OAAO,GAAgB,cAAc,CAAC,cAA6B,CAAC;QAC1E,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;KACvB;IACD,2CAA2C;IAC3C,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE9C,gBAAgB;IAChB,MAAM,CAAC,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAE7E,eAAe;IACf,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,CAAC,iBAAiB,GAAG,cAAc,CAAC;IAC1C,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAC3C,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjD,0DAA0D;IAC1D,OAAO,MAAoB,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { getBasePropertyMap } from "../../core/_internal/getBasePropertyMap";
2
+ /**
3
+ * Returns an Array of IPropertyMap objects
4
+ * that define the projection of properties from a IModel to an IHubSurvey object
5
+ * @returns an IPropertyMap array
6
+ * @private
7
+ */
8
+ export function getPropertyMap() {
9
+ const map = getBasePropertyMap();
10
+ return map;
11
+ }
12
+ //# sourceMappingURL=getPropertyMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/surveys/_internal/getPropertyMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const MAP_SURVEY_TYPEKEYWORD = "hubMapSurvey";
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/surveys/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ /** Default values for a new IHubSurvey */
2
+ export const DEFAULT_SURVEY = {
3
+ schemaVersion: 1,
4
+ catalog: { schemaVersion: 0 },
5
+ name: "",
6
+ tags: [],
7
+ typeKeywords: [],
8
+ };
9
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/surveys/defaults.ts"],"names":[],"mappings":"AAEA,0CAA0C;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAwB;IACjD,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7B,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,EAAE;CACjB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { getItem, removeItem, } from "@esri/arcgis-rest-portal";
2
+ import { PropertyMapper } from "../core/_internal/PropertyMapper";
3
+ import { computeProps } from "./_internal/computeProps";
4
+ import { getPropertyMap } from "./_internal/getPropertyMap";
5
+ import { setDiscussableKeyword } from "../discussions/utils";
6
+ import { setDisplayMapKeyword } from "./utils/set-display-map-keyword";
7
+ import { updateModel } from "../models";
8
+ import { getFormJson } from "./utils/get-form-json";
9
+ /**
10
+ * @private
11
+ * Update a Hub Survey obejct
12
+ * @param survey the survey to update
13
+ * @param requestOptions user request options
14
+ * @returns promise that resolves a IHubSurvey
15
+ */
16
+ export async function updateSurvey(survey, requestOptions) {
17
+ survey.typeKeywords = setDiscussableKeyword(survey.typeKeywords, survey.isDiscussable);
18
+ survey.typeKeywords = setDisplayMapKeyword(survey.typeKeywords, survey.displayMap);
19
+ // get the backing item
20
+ const item = await getItem(survey.id, requestOptions);
21
+ const model = { item };
22
+ model.formJSON = await getFormJson(item, requestOptions);
23
+ // create the PropertyMapper
24
+ const mapper = new PropertyMapper(getPropertyMap());
25
+ // Note: Although we are fetching the model, and applying changes onto it,
26
+ // we are not attempting to handle "concurrent edit" conflict resolution
27
+ // but this is where we would apply that sort of logic
28
+ const modelToUpdate = mapper.entityToStore(survey, model);
29
+ // update the backing item
30
+ const updatedModel = await updateModel(modelToUpdate, requestOptions);
31
+ // now map back into a survey and return that
32
+ let updatedSurvey = mapper.storeToEntity(updatedModel, survey);
33
+ updatedSurvey = computeProps(model, updatedSurvey, requestOptions);
34
+ // the casting is needed because modelToObject returns a `Partial<T>`
35
+ // where as this function returns a `T`
36
+ return updatedSurvey;
37
+ }
38
+ /**
39
+ * @private
40
+ * Remove a Hub Survey object
41
+ * @param id
42
+ * @param requestOptions
43
+ */
44
+ export async function deleteSurvey(id, requestOptions) {
45
+ const ro = Object.assign(Object.assign({}, requestOptions), { id });
46
+ await removeItem(ro);
47
+ return;
48
+ }
49
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/surveys/edit.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EACP,UAAU,GACX,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAkB,EAClB,cAAmC;IAEnC,MAAM,CAAC,YAAY,GAAG,qBAAqB,CACzC,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,aAAa,CACrB,CAAC;IACF,MAAM,CAAC,YAAY,GAAG,oBAAoB,CACxC,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,UAAU,CAClB,CAAC;IACF,uBAAuB;IACvB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,KAAK,GAAW,EAAE,IAAI,EAAE,CAAC;IAC/B,KAAK,CAAC,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACzD,4BAA4B;IAC5B,MAAM,MAAM,GAAG,IAAI,cAAc,CAC/B,cAAc,EAAE,CACjB,CAAC;IACF,0EAA0E;IAC1E,wEAAwE;IACxE,sDAAsD;IACtD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1D,0BAA0B;IAC1B,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACtE,6CAA6C;IAC7C,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/D,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IACnE,qEAAqE;IACrE,uCAAuC;IACvC,OAAO,aAA2B,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAU,EACV,cAAmC;IAEnC,MAAM,EAAE,GAAG,gCAAK,cAAc,GAAK,EAAE,EAAE,EAAE,CAAsB,CAAC;IAChE,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;IACrB,OAAO;AACT,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { getItem } from "@esri/arcgis-rest-portal";
2
+ import { PropertyMapper } from "../core/_internal/PropertyMapper";
3
+ import { computeProps } from "./_internal/computeProps";
4
+ import { getPropertyMap } from "./_internal/getPropertyMap";
5
+ import { getFormJson } from "./utils/get-form-json";
6
+ import { isGuid } from "../utils/is-guid";
7
+ import { getItemBySlug } from "../items/slugs";
8
+ /**
9
+ * @private
10
+ * Get a Survey entity by id or slug
11
+ * @param identifier item id or slug
12
+ * @param requestOptions request options
13
+ * @returns a promise that resolves a IHubSurvey object
14
+ */
15
+ export async function fetchSurvey(identifier, requestOptions) {
16
+ let getPrms;
17
+ if (isGuid(identifier)) {
18
+ // get item by id
19
+ getPrms = getItem(identifier, requestOptions);
20
+ }
21
+ else {
22
+ getPrms = getItemBySlug(identifier, requestOptions);
23
+ }
24
+ return getPrms.then((item) => {
25
+ if (!item)
26
+ return null;
27
+ return convertItemToSurvey(item, requestOptions);
28
+ });
29
+ }
30
+ /**
31
+ * @private
32
+ * Convert a Hub Survey Item into a Hub Survey entity, fetching any additional
33
+ * information that may be required
34
+ * @param item the Survey item
35
+ * @param auth request options
36
+ * @returns a promise that resolves a IHubSurvey object
37
+ */
38
+ export async function convertItemToSurvey(item, requestOptions) {
39
+ const model = { item };
40
+ model.formJSON = await getFormJson(item, requestOptions);
41
+ const mapper = new PropertyMapper(getPropertyMap());
42
+ const survey = mapper.storeToEntity(model, {});
43
+ return computeProps(model, survey, requestOptions);
44
+ }
45
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/surveys/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAkB,EAClB,cAAkC;IAElC,IAAI,OAAO,CAAC;IACZ,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;QACtB,iBAAiB;QACjB,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;KAC/C;SAAM;QACL,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;KACrD;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,OAAO,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAW,EACX,cAAkC;IAElC,MAAM,KAAK,GAAW,EAAE,IAAI,EAAE,CAAC;IAC/B,KAAK,CAAC,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,cAAc,CAC/B,cAAc,EAAE,CACjB,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAe,CAAC;IAC7D,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;AACrD,CAAC"}
@@ -1,6 +1,7 @@
1
- export * from "./get-input-feature-service-model";
2
- export * from "./get-source-feature-service-model-from-fieldworker";
3
- export * from "./get-stakeholder-model";
4
- export * from "./get-survey-models";
5
- export * from "./is-fieldworker-view";
1
+ export * from "./HubSurvey";
2
+ export * from "./edit";
3
+ export * from "./fetch";
4
+ export * from "./constants";
5
+ export * from "./types";
6
+ export * from "./utils";
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/surveys/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,qDAAqD,CAAC;AACpE,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/surveys/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/surveys/types.ts"],"names":[],"mappings":""}