@esri/hub-common 14.98.0 → 14.99.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 (226) 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/sites/HubSites.js +1 -0
  27. package/dist/esm/sites/HubSites.js.map +1 -1
  28. package/dist/esm/sites/_internal/ensureBaseTelemetry.js +21 -0
  29. package/dist/esm/sites/_internal/ensureBaseTelemetry.js.map +1 -0
  30. package/dist/esm/sites/upgrade-site-schema.js +2 -0
  31. package/dist/esm/sites/upgrade-site-schema.js.map +1 -1
  32. package/dist/esm/surveys/HubSurvey.js +130 -0
  33. package/dist/esm/surveys/HubSurvey.js.map +1 -0
  34. package/dist/esm/surveys/_internal/SurveyBusinessRules.js +73 -0
  35. package/dist/esm/surveys/_internal/SurveyBusinessRules.js.map +1 -0
  36. package/dist/esm/surveys/_internal/SurveySchema.js +18 -0
  37. package/dist/esm/surveys/_internal/SurveySchema.js.map +1 -0
  38. package/dist/esm/surveys/_internal/SurveyUiSchemaEdit.js +108 -0
  39. package/dist/esm/surveys/_internal/SurveyUiSchemaEdit.js.map +1 -0
  40. package/dist/esm/surveys/_internal/SurveyUiSchemaSettings.js +60 -0
  41. package/dist/esm/surveys/_internal/SurveyUiSchemaSettings.js.map +1 -0
  42. package/dist/esm/surveys/_internal/computeProps.js +35 -0
  43. package/dist/esm/surveys/_internal/computeProps.js.map +1 -0
  44. package/dist/esm/surveys/_internal/getPropertyMap.js +12 -0
  45. package/dist/esm/surveys/_internal/getPropertyMap.js.map +1 -0
  46. package/dist/esm/surveys/constants.js +2 -0
  47. package/dist/esm/surveys/constants.js.map +1 -0
  48. package/dist/esm/surveys/defaults.js +9 -0
  49. package/dist/esm/surveys/defaults.js.map +1 -0
  50. package/dist/esm/surveys/edit.js +49 -0
  51. package/dist/esm/surveys/edit.js.map +1 -0
  52. package/dist/esm/surveys/fetch.js +45 -0
  53. package/dist/esm/surveys/fetch.js.map +1 -0
  54. package/dist/esm/surveys/index.js +6 -5
  55. package/dist/esm/surveys/index.js.map +1 -1
  56. package/dist/esm/surveys/types.js +1 -0
  57. package/dist/esm/surveys/types.js.map +1 -0
  58. package/dist/esm/surveys/utils/decode-form.js +35 -0
  59. package/dist/esm/surveys/utils/decode-form.js.map +1 -0
  60. package/dist/esm/surveys/utils/get-form-info-json.js +12 -0
  61. package/dist/esm/surveys/utils/get-form-info-json.js.map +1 -0
  62. package/dist/esm/surveys/utils/get-form-json.js +65 -0
  63. package/dist/esm/surveys/utils/get-form-json.js.map +1 -0
  64. package/dist/esm/surveys/utils/get-input-feature-service-model.js.map +1 -0
  65. package/dist/esm/surveys/utils/get-map-question.js +31 -0
  66. package/dist/esm/surveys/utils/get-map-question.js.map +1 -0
  67. package/dist/esm/surveys/utils/get-source-feature-service-model-from-fieldworker.js.map +1 -0
  68. package/dist/esm/surveys/utils/get-stakeholder-model.js.map +1 -0
  69. package/dist/esm/surveys/utils/get-survey-models.js.map +1 -0
  70. package/dist/esm/surveys/utils/has-map-question.js +11 -0
  71. package/dist/esm/surveys/utils/has-map-question.js.map +1 -0
  72. package/dist/esm/surveys/utils/index.js +16 -0
  73. package/dist/esm/surveys/utils/index.js.map +1 -0
  74. package/dist/esm/surveys/utils/is-fieldworker-view.js.map +1 -0
  75. package/dist/esm/surveys/utils/is-map-question.js +16 -0
  76. package/dist/esm/surveys/utils/is-map-question.js.map +1 -0
  77. package/dist/esm/surveys/utils/is-page-question.js +9 -0
  78. package/dist/esm/surveys/utils/is-page-question.js.map +1 -0
  79. package/dist/esm/surveys/utils/is-survey123-connect.js +16 -0
  80. package/dist/esm/surveys/utils/is-survey123-connect.js.map +1 -0
  81. package/dist/esm/surveys/utils/set-display-map-keyword.js +15 -0
  82. package/dist/esm/surveys/utils/set-display-map-keyword.js.map +1 -0
  83. package/dist/esm/surveys/utils/should-display-map.js +10 -0
  84. package/dist/esm/surveys/utils/should-display-map.js.map +1 -0
  85. package/dist/node/core/EntityEditor.js +4 -0
  86. package/dist/node/core/EntityEditor.js.map +1 -1
  87. package/dist/node/core/fetchHubEntity.js +4 -0
  88. package/dist/node/core/fetchHubEntity.js.map +1 -1
  89. package/dist/node/core/getTypeFromEntity.js +3 -0
  90. package/dist/node/core/getTypeFromEntity.js.map +1 -1
  91. package/dist/node/core/schemas/internal/getEditorSchemas.js +10 -0
  92. package/dist/node/core/schemas/internal/getEditorSchemas.js.map +1 -1
  93. package/dist/node/core/schemas/types.js +2 -0
  94. package/dist/node/core/schemas/types.js.map +1 -1
  95. package/dist/node/core/types/HubEntityType.js +1 -0
  96. package/dist/node/core/types/HubEntityType.js.map +1 -1
  97. package/dist/node/core/types/IHubSurvey.js +3 -0
  98. package/dist/node/core/types/IHubSurvey.js.map +1 -0
  99. package/dist/node/core/types/index.js +1 -0
  100. package/dist/node/core/types/index.js.map +1 -1
  101. package/dist/node/discussions/HubDiscussion.js +1 -1
  102. package/dist/node/discussions/api/settings/getDefaultEntitySettings.js +1 -0
  103. package/dist/node/discussions/api/settings/getDefaultEntitySettings.js.map +1 -1
  104. package/dist/node/index.js +1 -1
  105. package/dist/node/index.js.map +1 -1
  106. package/dist/node/permissions/HubPermissionPolicies.js +2 -0
  107. package/dist/node/permissions/HubPermissionPolicies.js.map +1 -1
  108. package/dist/node/permissions/types/Permission.js +2 -0
  109. package/dist/node/permissions/types/Permission.js.map +1 -1
  110. package/dist/node/sites/HubSites.js +1 -0
  111. package/dist/node/sites/HubSites.js.map +1 -1
  112. package/dist/node/sites/_internal/ensureBaseTelemetry.js +25 -0
  113. package/dist/node/sites/_internal/ensureBaseTelemetry.js.map +1 -0
  114. package/dist/node/sites/upgrade-site-schema.js +2 -0
  115. package/dist/node/sites/upgrade-site-schema.js.map +1 -1
  116. package/dist/node/surveys/HubSurvey.js +134 -0
  117. package/dist/node/surveys/HubSurvey.js.map +1 -0
  118. package/dist/node/surveys/_internal/SurveyBusinessRules.js +76 -0
  119. package/dist/node/surveys/_internal/SurveyBusinessRules.js.map +1 -0
  120. package/dist/node/surveys/_internal/SurveySchema.js +21 -0
  121. package/dist/node/surveys/_internal/SurveySchema.js.map +1 -0
  122. package/dist/node/surveys/_internal/SurveyUiSchemaEdit.js +111 -0
  123. package/dist/node/surveys/_internal/SurveyUiSchemaEdit.js.map +1 -0
  124. package/dist/node/surveys/_internal/SurveyUiSchemaSettings.js +63 -0
  125. package/dist/node/surveys/_internal/SurveyUiSchemaSettings.js.map +1 -0
  126. package/dist/node/surveys/_internal/computeProps.js +39 -0
  127. package/dist/node/surveys/_internal/computeProps.js.map +1 -0
  128. package/dist/node/surveys/_internal/getPropertyMap.js +16 -0
  129. package/dist/node/surveys/_internal/getPropertyMap.js.map +1 -0
  130. package/dist/node/surveys/constants.js +5 -0
  131. package/dist/node/surveys/constants.js.map +1 -0
  132. package/dist/node/surveys/defaults.js +12 -0
  133. package/dist/node/surveys/defaults.js.map +1 -0
  134. package/dist/node/surveys/edit.js +54 -0
  135. package/dist/node/surveys/edit.js.map +1 -0
  136. package/dist/node/surveys/fetch.js +50 -0
  137. package/dist/node/surveys/fetch.js.map +1 -0
  138. package/dist/node/surveys/index.js +6 -5
  139. package/dist/node/surveys/index.js.map +1 -1
  140. package/dist/node/surveys/types.js +3 -0
  141. package/dist/node/surveys/types.js.map +1 -0
  142. package/dist/node/surveys/utils/decode-form.js +38 -0
  143. package/dist/node/surveys/utils/decode-form.js.map +1 -0
  144. package/dist/node/surveys/utils/get-form-info-json.js +15 -0
  145. package/dist/node/surveys/utils/get-form-info-json.js.map +1 -0
  146. package/dist/node/surveys/utils/get-form-json.js +68 -0
  147. package/dist/node/surveys/utils/get-form-json.js.map +1 -0
  148. package/dist/node/surveys/utils/get-input-feature-service-model.js.map +1 -0
  149. package/dist/node/surveys/utils/get-map-question.js +34 -0
  150. package/dist/node/surveys/utils/get-map-question.js.map +1 -0
  151. package/dist/node/surveys/utils/get-source-feature-service-model-from-fieldworker.js.map +1 -0
  152. package/dist/node/surveys/utils/get-stakeholder-model.js.map +1 -0
  153. package/dist/node/surveys/utils/get-survey-models.js.map +1 -0
  154. package/dist/node/surveys/utils/has-map-question.js +14 -0
  155. package/dist/node/surveys/utils/has-map-question.js.map +1 -0
  156. package/dist/node/surveys/utils/index.js +19 -0
  157. package/dist/node/surveys/utils/index.js.map +1 -0
  158. package/dist/node/surveys/utils/is-fieldworker-view.js.map +1 -0
  159. package/dist/node/surveys/utils/is-map-question.js +19 -0
  160. package/dist/node/surveys/utils/is-map-question.js.map +1 -0
  161. package/dist/node/surveys/utils/is-page-question.js +12 -0
  162. package/dist/node/surveys/utils/is-page-question.js.map +1 -0
  163. package/dist/node/surveys/utils/is-survey123-connect.js +19 -0
  164. package/dist/node/surveys/utils/is-survey123-connect.js.map +1 -0
  165. package/dist/node/surveys/utils/set-display-map-keyword.js +19 -0
  166. package/dist/node/surveys/utils/set-display-map-keyword.js.map +1 -0
  167. package/dist/node/surveys/utils/should-display-map.js +13 -0
  168. package/dist/node/surveys/utils/should-display-map.js.map +1 -0
  169. package/dist/types/core/schemas/types.d.ts +17 -2
  170. package/dist/types/core/types/HubEntity.d.ts +2 -1
  171. package/dist/types/core/types/HubEntityType.d.ts +1 -1
  172. package/dist/types/core/types/IHubSurvey.d.ts +11 -0
  173. package/dist/types/core/types/index.d.ts +1 -0
  174. package/dist/types/index.d.ts +1 -1
  175. package/dist/types/permissions/types/Permission.d.ts +2 -1
  176. package/dist/types/sites/_internal/ensureBaseTelemetry.d.ts +9 -0
  177. package/dist/types/surveys/HubSurvey.d.ts +50 -0
  178. package/dist/types/surveys/_internal/SurveyBusinessRules.d.ts +12 -0
  179. package/dist/types/surveys/_internal/SurveySchema.d.ts +7 -0
  180. package/dist/types/surveys/_internal/SurveyUiSchemaEdit.d.ts +10 -0
  181. package/dist/types/surveys/_internal/SurveyUiSchemaSettings.d.ts +10 -0
  182. package/dist/types/surveys/_internal/computeProps.d.ts +12 -0
  183. package/dist/types/surveys/_internal/getPropertyMap.d.ts +8 -0
  184. package/dist/types/surveys/constants.d.ts +1 -0
  185. package/dist/types/surveys/defaults.d.ts +3 -0
  186. package/dist/types/surveys/edit.d.ts +17 -0
  187. package/dist/types/surveys/fetch.d.ts +20 -0
  188. package/dist/types/surveys/index.d.ts +6 -5
  189. package/dist/types/surveys/types.d.ts +15 -0
  190. package/dist/types/surveys/utils/decode-form.d.ts +8 -0
  191. package/dist/types/surveys/utils/get-form-info-json.d.ts +9 -0
  192. package/dist/types/surveys/utils/get-form-json.d.ts +8 -0
  193. package/dist/types/surveys/{get-input-feature-service-model.d.ts → utils/get-input-feature-service-model.d.ts} +1 -1
  194. package/dist/types/surveys/utils/get-map-question.d.ts +7 -0
  195. 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
  196. package/dist/types/surveys/{get-stakeholder-model.d.ts → utils/get-stakeholder-model.d.ts} +1 -1
  197. package/dist/types/surveys/{get-survey-models.d.ts → utils/get-survey-models.d.ts} +1 -1
  198. package/dist/types/surveys/utils/has-map-question.d.ts +8 -0
  199. package/dist/types/surveys/utils/index.d.ts +15 -0
  200. package/dist/types/surveys/utils/is-map-question.d.ts +7 -0
  201. package/dist/types/surveys/utils/is-page-question.d.ts +7 -0
  202. package/dist/types/surveys/utils/is-survey123-connect.d.ts +8 -0
  203. package/dist/types/surveys/utils/set-display-map-keyword.d.ts +7 -0
  204. package/dist/types/surveys/utils/should-display-map.d.ts +7 -0
  205. package/package.json +1 -1
  206. package/dist/esm/surveys/get-input-feature-service-model.js.map +0 -1
  207. package/dist/esm/surveys/get-source-feature-service-model-from-fieldworker.js.map +0 -1
  208. package/dist/esm/surveys/get-stakeholder-model.js.map +0 -1
  209. package/dist/esm/surveys/get-survey-models.js.map +0 -1
  210. package/dist/esm/surveys/is-fieldworker-view.js.map +0 -1
  211. package/dist/node/surveys/get-input-feature-service-model.js.map +0 -1
  212. package/dist/node/surveys/get-source-feature-service-model-from-fieldworker.js.map +0 -1
  213. package/dist/node/surveys/get-stakeholder-model.js.map +0 -1
  214. package/dist/node/surveys/get-survey-models.js.map +0 -1
  215. package/dist/node/surveys/is-fieldworker-view.js.map +0 -1
  216. /package/dist/esm/surveys/{get-input-feature-service-model.js → utils/get-input-feature-service-model.js} +0 -0
  217. /package/dist/esm/surveys/{get-source-feature-service-model-from-fieldworker.js → utils/get-source-feature-service-model-from-fieldworker.js} +0 -0
  218. /package/dist/esm/surveys/{get-stakeholder-model.js → utils/get-stakeholder-model.js} +0 -0
  219. /package/dist/esm/surveys/{get-survey-models.js → utils/get-survey-models.js} +0 -0
  220. /package/dist/esm/surveys/{is-fieldworker-view.js → utils/is-fieldworker-view.js} +0 -0
  221. /package/dist/node/surveys/{get-input-feature-service-model.js → utils/get-input-feature-service-model.js} +0 -0
  222. /package/dist/node/surveys/{get-source-feature-service-model-from-fieldworker.js → utils/get-source-feature-service-model-from-fieldworker.js} +0 -0
  223. /package/dist/node/surveys/{get-stakeholder-model.js → utils/get-stakeholder-model.js} +0 -0
  224. /package/dist/node/surveys/{get-survey-models.js → utils/get-survey-models.js} +0 -0
  225. /package/dist/node/surveys/{is-fieldworker-view.js → utils/is-fieldworker-view.js} +0 -0
  226. /package/dist/types/surveys/{is-fieldworker-view.d.ts → utils/is-fieldworker-view.d.ts} +0 -0
@@ -0,0 +1,73 @@
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:manage",
17
+ ];
18
+ /**
19
+ * Survey permission policies
20
+ * @private
21
+ */
22
+ export const SurveyPermissionPolicies = [
23
+ {
24
+ permission: "hub:survey",
25
+ services: ["portal"],
26
+ // gated for now
27
+ availability: ["alpha"],
28
+ environments: ["devext", "qaext"],
29
+ },
30
+ {
31
+ permission: "hub:survey:view",
32
+ dependencies: ["hub:survey"],
33
+ },
34
+ {
35
+ permission: "hub:survey:create",
36
+ authenticated: true,
37
+ dependencies: ["hub:survey"],
38
+ entityEdit: true,
39
+ },
40
+ {
41
+ permission: "hub:survey:edit",
42
+ authenticated: true,
43
+ dependencies: ["hub:survey"],
44
+ entityEdit: true,
45
+ },
46
+ {
47
+ permission: "hub:survey:delete",
48
+ authenticated: true,
49
+ dependencies: ["hub:survey"],
50
+ entityOwner: true,
51
+ },
52
+ {
53
+ permission: "hub:survey:workspace",
54
+ dependencies: ["hub:feature:workspace"],
55
+ },
56
+ {
57
+ permission: "hub:survey:workspace:dashboard",
58
+ dependencies: ["hub:survey:workspace", "hub:survey:view"],
59
+ },
60
+ {
61
+ permission: "hub:survey:workspace:details",
62
+ dependencies: ["hub:survey:workspace", "hub:survey:edit"],
63
+ },
64
+ {
65
+ permission: "hub:survey:workspace:settings",
66
+ dependencies: ["hub:survey:workspace", "hub:survey:edit"],
67
+ },
68
+ {
69
+ permission: "hub:survey:manage",
70
+ dependencies: ["hub:survey:edit"],
71
+ },
72
+ ];
73
+ //# 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,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,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":""}
@@ -0,0 +1,35 @@
1
+ import { getProp } from "../../objects/get-prop";
2
+ import { setProp } from "../../objects/set-prop";
3
+ import { cloneObject } from "../../util";
4
+ import { isPageQuestion } from "./is-page-question";
5
+ /**
6
+ * Decodes certain properties of the Survey Form json into html
7
+ * @param {IS123FormJSON} form
8
+ */
9
+ export const decodeForm = (form) => {
10
+ const target = cloneObject(form);
11
+ const props = [
12
+ "header.content",
13
+ "subHeader.content",
14
+ "footer.content",
15
+ "settings.thankYouScreenContent",
16
+ ];
17
+ props.forEach((prop) => {
18
+ if (getProp(target, prop)) {
19
+ setProp(prop, decodeURIComponent(getProp(target, prop)), target);
20
+ }
21
+ });
22
+ const toDecoded = (question) => {
23
+ const decode = (q) => {
24
+ if (q.description) {
25
+ q.description = decodeURIComponent(q.description);
26
+ }
27
+ return q;
28
+ };
29
+ return !isPageQuestion(question)
30
+ ? decode(question)
31
+ : Object.assign(Object.assign({}, question), { questions: question.questions.map(decode) });
32
+ };
33
+ return Object.assign(Object.assign({}, target), { questions: (target.questions || []).map(toDecoded) });
34
+ };
35
+ //# sourceMappingURL=decode-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-form.js","sourceRoot":"","sources":["../../../../src/surveys/utils/decode-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAmB,EAAE,EAAE;IAChD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG;QACZ,gBAAgB;QAChB,mBAAmB;QACnB,gBAAgB;QAChB,gCAAgC;KACjC,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YACzB,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;SAClE;IACH,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,CAAC,QAAuB,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,CAAC,CAAgB,EAAE,EAAE;YAClC,IAAI,CAAC,CAAC,WAAW,EAAE;gBACjB,CAAC,CAAC,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;aACnD;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YAClB,CAAC,iCAAM,QAAQ,KAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAE,CAAC;IACjE,CAAC,CAAC;IACF,uCACK,MAAM,KACT,SAAS,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAClD;AACJ,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { getItemInfo } from "@esri/arcgis-rest-portal";
2
+ /**
3
+ * This returns the /info/forminfo.json which simply has the form name and type.
4
+ * We need the name so we can make the getFormInfo call
5
+ * @param {string} id
6
+ * @param {IRequestOptions} requestOptions
7
+ * @returns {Promise}
8
+ */
9
+ export const getFormInfoJson = (id, requestOptions) => {
10
+ return getItemInfo(id, Object.assign({ fileName: "forminfo.json", readAs: "json" }, requestOptions));
11
+ };
12
+ //# sourceMappingURL=get-form-info-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-form-info-json.js","sourceRoot":"","sources":["../../../../src/surveys/utils/get-form-info-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,EAAU,EACV,cAA+B,EAC/B,EAAE;IACF,OAAO,WAAW,CAAC,EAAE,kBACnB,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,MAAM,IACX,cAAc,EACjB,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { getItemInfo, } from "@esri/arcgis-rest-portal";
2
+ import { getFormInfoJson } from "./get-form-info-json";
3
+ import { isSurvey123Connect } from "./is-survey123-connect";
4
+ import { decodeForm } from "./decode-form";
5
+ /**
6
+ * Given a Survey Item, return the form json, if it exists.
7
+ * @param {IItem} the survey item
8
+ * @param {IGetItemInfoOptions} requestOptions
9
+ * @returns {Promise}
10
+ */
11
+ export const getFormJson = async (item, requestOptions) => {
12
+ const { name } = await getFormInfoJson(item.id, requestOptions);
13
+ let promise;
14
+ if (isSurvey123Connect(item)) {
15
+ // survey123 connect does not have a <name>.json file, instead
16
+ // that configuration is split between <name>.webform & <name>.info
17
+ promise = Promise.all([
18
+ getItemInfo(item.id, Object.assign({ fileName: `${name}.webform`, readAs: "json" }, requestOptions)),
19
+ getItemInfo(item.id, Object.assign({ fileName: `${name}.info`, readAs: "json" }, requestOptions)),
20
+ ]).then(([webform, info]) => {
21
+ // webform contains questions
22
+ const { surveyFormJson = {} } = webform;
23
+ // other settings come from info
24
+ // const { webformInfo: { settings } } = info;
25
+ const {
26
+ // webformInfo only exists if settings have been
27
+ // managed/changed from the s123 web application.
28
+ // Disabling survey submissions from the ArcGISSurvey123Connect
29
+ // desktop application does not disable survey submissions from
30
+ // the web UI. Therefore, just default to open when the survey settings
31
+ // have not been changed from the s123 web application.
32
+ webformInfo = {
33
+ settings: {
34
+ openStatusInfo: {
35
+ status: "open",
36
+ schedule: {
37
+ end: null,
38
+ status: null,
39
+ },
40
+ },
41
+ multiSubmissionInfo: {
42
+ maxAllowed: 0,
43
+ },
44
+ },
45
+ }, } = info;
46
+ const { settings } = webformInfo;
47
+ // combine relevant parts
48
+ return Object.assign(Object.assign({}, surveyFormJson), { settings });
49
+ });
50
+ }
51
+ else {
52
+ promise = getItemInfo(item.id, Object.assign({ fileName: `${name}.json`, readAs: "json" }, requestOptions));
53
+ }
54
+ return promise.then((form) => {
55
+ // response may be null... so check...
56
+ if (form) {
57
+ // form's have some properties which may contain html, these will
58
+ // be run thru encodeURIComponent, so we decode it here for use
59
+ // in our template
60
+ form = decodeForm(form);
61
+ }
62
+ return form;
63
+ });
64
+ };
65
+ //# sourceMappingURL=get-form-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-form-json.js","sourceRoot":"","sources":["../../../../src/surveys/utils/get-form-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,IAAW,EACX,cAAmC,EACnC,EAAE;IACF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC;IACZ,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;QAC5B,8DAA8D;QAC9D,mEAAmE;QACnE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;YACpB,WAAW,CAAC,IAAI,CAAC,EAAE,kBACjB,QAAQ,EAAE,GAAG,IAAI,UAAU,EAC3B,MAAM,EAAE,MAAM,IACX,cAAc,EACjB;YACF,WAAW,CAAC,IAAI,CAAC,EAAE,kBACjB,QAAQ,EAAE,GAAG,IAAI,OAAO,EACxB,MAAM,EAAE,MAAM,IACX,cAAc,EACjB;SACH,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YAC1B,6BAA6B;YAC7B,MAAM,EAAE,cAAc,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;YACxC,gCAAgC;YAChC,8CAA8C;YAC9C,MAAM;YACJ,gDAAgD;YAChD,iDAAiD;YACjD,+DAA+D;YAC/D,+DAA+D;YAC/D,uEAAuE;YACvE,uDAAuD;YACvD,WAAW,GAAG;gBACZ,QAAQ,EAAE;oBACR,cAAc,EAAE;wBACd,MAAM,EAAE,MAAM;wBACd,QAAQ,EAAE;4BACR,GAAG,EAAE,IAAI;4BACT,MAAM,EAAE,IAAI;yBACb;qBACF;oBACD,mBAAmB,EAAE;wBACnB,UAAU,EAAE,CAAC;qBACd;iBACF;aACF,GACF,GAAG,IAAI,CAAC;YACT,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;YACjC,yBAAyB;YACzB,uCAAY,cAAc,KAAE,QAAQ,IAAG;QACzC,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,kBAC3B,QAAQ,EAAE,GAAG,IAAI,OAAO,EACxB,MAAM,EAAE,MAAM,IACX,cAAc,EACjB,CAAC;KACJ;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,sCAAsC;QACtC,IAAI,IAAI,EAAE;YACR,iEAAiE;YACjE,+DAA+D;YAC/D,kBAAkB;YAClB,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-input-feature-service-model.js","sourceRoot":"","sources":["../../../../src/surveys/utils/get-input-feature-service-model.ts"],"names":[],"mappings":"AAAA;gBACgB;AAGhB,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,MAAc,EACd,cAA+B,EACd,EAAE;IACnB,OAAO,eAAe,iBACpB,EAAE,EAAE,MAAM,EACV,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,IACjB,cAAc,EACjB,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE;QAC7C,IAAI,KAAK,CAAC;QACV,IAAI,cAAc,EAAE;YAClB,KAAK,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;SAClC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}