@pnp/sp 2.7.0 → 2.11.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 (309) hide show
  1. package/LICENSE +25 -25
  2. package/appcatalog/index.d.ts +8 -8
  3. package/appcatalog/index.js +30 -30
  4. package/appcatalog/types.d.ts +81 -81
  5. package/appcatalog/types.js +177 -177
  6. package/appcatalog/web.d.ts +16 -16
  7. package/appcatalog/web.js +6 -6
  8. package/attachments/index.d.ts +2 -2
  9. package/attachments/index.js +2 -2
  10. package/attachments/item.d.ts +12 -12
  11. package/attachments/item.js +4 -4
  12. package/attachments/types.d.ts +92 -92
  13. package/attachments/types.js +240 -240
  14. package/batch.d.ts +17 -17
  15. package/batch.js +223 -223
  16. package/batch.js.map +1 -1
  17. package/clientside-pages/funcs.d.ts +22 -22
  18. package/clientside-pages/funcs.js +25 -25
  19. package/clientside-pages/index.d.ts +2 -2
  20. package/clientside-pages/index.js +2 -2
  21. package/clientside-pages/types.d.ts +496 -494
  22. package/clientside-pages/types.d.ts.map +1 -1
  23. package/clientside-pages/types.js +1496 -1485
  24. package/clientside-pages/types.js.map +1 -1
  25. package/clientside-pages/web.d.ts +41 -41
  26. package/clientside-pages/web.js +57 -57
  27. package/column-defaults/folder.d.ts +27 -27
  28. package/column-defaults/folder.js +82 -82
  29. package/column-defaults/index.d.ts +3 -3
  30. package/column-defaults/index.js +2 -2
  31. package/column-defaults/list.d.ts +19 -19
  32. package/column-defaults/list.js +198 -198
  33. package/column-defaults/types.d.ts +21 -21
  34. package/column-defaults/types.js +1 -1
  35. package/comments/clientside-page.d.ts +57 -57
  36. package/comments/clientside-page.d.ts.map +1 -1
  37. package/comments/clientside-page.js +136 -136
  38. package/comments/index.d.ts +2 -2
  39. package/comments/index.js +2 -2
  40. package/comments/item.d.ts +29 -29
  41. package/comments/item.js +47 -47
  42. package/comments/types.d.ts +107 -107
  43. package/comments/types.d.ts.map +1 -1
  44. package/comments/types.js +145 -145
  45. package/comments/types.js.map +1 -1
  46. package/content-types/index.d.ts +4 -4
  47. package/content-types/index.js +4 -4
  48. package/content-types/item.d.ts +12 -12
  49. package/content-types/item.js +4 -4
  50. package/content-types/list.d.ts +12 -12
  51. package/content-types/list.js +4 -4
  52. package/content-types/types.d.ts +107 -107
  53. package/content-types/types.js +166 -166
  54. package/content-types/web.d.ts +12 -12
  55. package/content-types/web.js +4 -4
  56. package/decorators.d.ts +11 -11
  57. package/decorators.js +28 -28
  58. package/features/index.d.ts +3 -3
  59. package/features/index.js +3 -3
  60. package/features/site.d.ts +12 -12
  61. package/features/site.js +4 -4
  62. package/features/types.d.ts +47 -47
  63. package/features/types.js +109 -109
  64. package/features/web.d.ts +12 -12
  65. package/features/web.js +4 -4
  66. package/fields/index.d.ts +4 -4
  67. package/fields/index.js +4 -4
  68. package/fields/list.d.ts +12 -12
  69. package/fields/list.js +4 -4
  70. package/fields/types.d.ts +368 -361
  71. package/fields/types.d.ts.map +1 -1
  72. package/fields/types.js +624 -609
  73. package/fields/types.js.map +1 -1
  74. package/fields/web.d.ts +17 -17
  75. package/fields/web.js +5 -5
  76. package/files/folder.d.ts +12 -12
  77. package/files/folder.js +4 -4
  78. package/files/index.d.ts +4 -4
  79. package/files/index.js +4 -4
  80. package/files/item.d.ts +12 -12
  81. package/files/item.js +4 -4
  82. package/files/types.d.ts +421 -421
  83. package/files/types.js +853 -853
  84. package/files/types.js.map +1 -1
  85. package/files/web.d.ts +35 -35
  86. package/files/web.js +15 -15
  87. package/folders/index.d.ts +4 -4
  88. package/folders/index.js +4 -4
  89. package/folders/item.d.ts +9 -9
  90. package/folders/item.js +4 -4
  91. package/folders/list.d.ts +12 -12
  92. package/folders/list.js +4 -4
  93. package/folders/types.d.ts +207 -207
  94. package/folders/types.js +433 -433
  95. package/folders/types.js.map +1 -1
  96. package/folders/web.d.ts +39 -39
  97. package/folders/web.js +15 -15
  98. package/forms/index.d.ts +2 -2
  99. package/forms/index.js +2 -2
  100. package/forms/list.d.ts +9 -9
  101. package/forms/list.js +4 -4
  102. package/forms/types.d.ts +35 -35
  103. package/forms/types.js +41 -41
  104. package/hubsites/index.d.ts +12 -12
  105. package/hubsites/index.js +15 -15
  106. package/hubsites/site.d.ts +26 -26
  107. package/hubsites/site.js +39 -39
  108. package/hubsites/types.d.ts +55 -55
  109. package/hubsites/types.js +53 -53
  110. package/hubsites/web.d.ts +21 -21
  111. package/hubsites/web.js +23 -23
  112. package/index.d.ts +14 -14
  113. package/index.js +13 -13
  114. package/items/index.d.ts +2 -2
  115. package/items/index.js +2 -2
  116. package/items/list.d.ts +9 -9
  117. package/items/list.js +4 -4
  118. package/items/types.d.ts +226 -219
  119. package/items/types.d.ts.map +1 -1
  120. package/items/types.js +549 -511
  121. package/items/types.js.map +1 -1
  122. package/lists/index.d.ts +2 -2
  123. package/lists/index.js +2 -2
  124. package/lists/types.d.ts +495 -495
  125. package/lists/types.js +522 -522
  126. package/lists/types.js.map +1 -1
  127. package/lists/web.d.ts +43 -43
  128. package/lists/web.js +27 -27
  129. package/navigation/index.d.ts +8 -8
  130. package/navigation/index.js +14 -14
  131. package/navigation/types.d.ts +154 -154
  132. package/navigation/types.js +219 -219
  133. package/navigation/web.d.ts +13 -13
  134. package/navigation/web.js +4 -4
  135. package/odata.d.ts +5 -5
  136. package/odata.js +90 -90
  137. package/odata.js.map +1 -1
  138. package/operations.d.ts +9 -9
  139. package/operations.js +63 -63
  140. package/package.json +4 -4
  141. package/presets/all.d.ts +72 -72
  142. package/presets/all.js +72 -72
  143. package/presets/core.d.ts +11 -11
  144. package/presets/core.js +11 -11
  145. package/profiles/index.d.ts +7 -7
  146. package/profiles/index.js +13 -13
  147. package/profiles/types.d.ts +357 -357
  148. package/profiles/types.js +454 -454
  149. package/readme.md +21 -21
  150. package/regional-settings/content-type.d.ts +7 -7
  151. package/regional-settings/content-type.js +4 -4
  152. package/regional-settings/field.d.ts +7 -7
  153. package/regional-settings/field.js +4 -4
  154. package/regional-settings/funcs.d.ts +2 -2
  155. package/regional-settings/funcs.js +8 -8
  156. package/regional-settings/index.d.ts +6 -6
  157. package/regional-settings/index.js +6 -6
  158. package/regional-settings/list.d.ts +7 -7
  159. package/regional-settings/list.js +4 -4
  160. package/regional-settings/types.d.ts +111 -111
  161. package/regional-settings/types.js +159 -159
  162. package/regional-settings/user-custom-actions.d.ts +7 -7
  163. package/regional-settings/user-custom-actions.js +4 -4
  164. package/regional-settings/web.d.ts +12 -12
  165. package/regional-settings/web.js +7 -7
  166. package/related-items/index.d.ts +1 -1
  167. package/related-items/index.js +1 -1
  168. package/related-items/types.d.ts +76 -76
  169. package/related-items/types.js +103 -103
  170. package/related-items/web.d.ts +12 -12
  171. package/related-items/web.js +9 -9
  172. package/rest.d.ts +44 -44
  173. package/rest.js +72 -72
  174. package/search/index.d.ts +30 -30
  175. package/search/index.js +25 -25
  176. package/search/query.d.ts +62 -62
  177. package/search/query.js +302 -302
  178. package/search/suggest.d.ts +76 -76
  179. package/search/suggest.js +66 -66
  180. package/search/types.d.ts +426 -426
  181. package/search/types.js +57 -57
  182. package/security/funcs.d.ts +43 -43
  183. package/security/funcs.js +142 -142
  184. package/security/index.d.ts +4 -4
  185. package/security/index.js +4 -4
  186. package/security/item.d.ts +7 -7
  187. package/security/item.js +14 -14
  188. package/security/list.d.ts +7 -7
  189. package/security/list.js +14 -14
  190. package/security/types.d.ts +318 -318
  191. package/security/types.js +399 -399
  192. package/security/web.d.ts +9 -9
  193. package/security/web.js +15 -15
  194. package/sharepointqueryable.d.ts +135 -135
  195. package/sharepointqueryable.js +265 -265
  196. package/sharing/file.d.ts +18 -18
  197. package/sharing/file.d.ts.map +1 -1
  198. package/sharing/file.js +116 -15
  199. package/sharing/file.js.map +1 -1
  200. package/sharing/folder.d.ts +9 -9
  201. package/sharing/folder.js +136 -136
  202. package/sharing/funcs.d.ts +62 -62
  203. package/sharing/funcs.js +239 -239
  204. package/sharing/funcs.js.map +1 -1
  205. package/sharing/index.d.ts +5 -5
  206. package/sharing/index.js +5 -5
  207. package/sharing/item.d.ts +16 -16
  208. package/sharing/item.js +15 -15
  209. package/sharing/types.d.ts +583 -583
  210. package/sharing/types.js +113 -113
  211. package/sharing/web.d.ts +19 -19
  212. package/sharing/web.js +76 -76
  213. package/site-designs/index.d.ts +8 -8
  214. package/site-designs/index.js +14 -14
  215. package/site-designs/types.d.ts +319 -319
  216. package/site-designs/types.js +203 -203
  217. package/site-designs/web.d.ts +25 -25
  218. package/site-designs/web.js +11 -11
  219. package/site-groups/index.d.ts +2 -2
  220. package/site-groups/index.js +2 -2
  221. package/site-groups/types.d.ts +89 -89
  222. package/site-groups/types.js +125 -125
  223. package/site-groups/web.d.ts +40 -40
  224. package/site-groups/web.js +30 -30
  225. package/site-scripts/index.d.ts +9 -9
  226. package/site-scripts/index.js +15 -15
  227. package/site-scripts/list.d.ts +12 -12
  228. package/site-scripts/list.js +24 -24
  229. package/site-scripts/types.d.ts +183 -183
  230. package/site-scripts/types.js +141 -141
  231. package/site-scripts/web.d.ts +13 -13
  232. package/site-scripts/web.js +5 -5
  233. package/site-users/index.d.ts +2 -2
  234. package/site-users/index.js +2 -2
  235. package/site-users/types.d.ts +138 -138
  236. package/site-users/types.js +122 -122
  237. package/site-users/web.d.ts +31 -31
  238. package/site-users/web.js +27 -27
  239. package/sites/index.d.ts +7 -7
  240. package/sites/index.js +13 -13
  241. package/sites/types.d.ts +147 -147
  242. package/sites/types.js +321 -321
  243. package/social/index.d.ts +10 -10
  244. package/social/index.js +13 -13
  245. package/social/types.d.ts +309 -309
  246. package/social/types.js +322 -322
  247. package/sphttpclient.d.ts +18 -18
  248. package/sphttpclient.js +189 -189
  249. package/splibconfig.d.ts +22 -22
  250. package/splibconfig.js +13 -13
  251. package/sputilities/index.d.ts +7 -7
  252. package/sputilities/index.js +13 -13
  253. package/sputilities/types.d.ts +130 -130
  254. package/sputilities/types.js +118 -118
  255. package/subscriptions/index.d.ts +2 -2
  256. package/subscriptions/index.js +2 -2
  257. package/subscriptions/list.d.ts +13 -13
  258. package/subscriptions/list.js +4 -4
  259. package/subscriptions/types.d.ts +54 -54
  260. package/subscriptions/types.js +111 -111
  261. package/taxonomy/index.d.ts +7 -7
  262. package/taxonomy/index.js +13 -13
  263. package/taxonomy/types.d.ts +200 -200
  264. package/taxonomy/types.js +347 -347
  265. package/taxonomy/types.js.map +1 -1
  266. package/telemetry.d.ts +12 -12
  267. package/telemetry.js +48 -48
  268. package/types.d.ts +218 -218
  269. package/types.js +79 -79
  270. package/user-custom-actions/index.d.ts +4 -4
  271. package/user-custom-actions/index.js +4 -4
  272. package/user-custom-actions/list.d.ts +12 -12
  273. package/user-custom-actions/list.js +4 -4
  274. package/user-custom-actions/site.d.ts +12 -12
  275. package/user-custom-actions/site.js +4 -4
  276. package/user-custom-actions/types.d.ts +82 -82
  277. package/user-custom-actions/types.js +93 -93
  278. package/user-custom-actions/web.d.ts +15 -15
  279. package/user-custom-actions/web.js +4 -4
  280. package/utils/escapeQueryStrValue.d.ts +1 -1
  281. package/utils/escapeQueryStrValue.js +19 -19
  282. package/utils/extractweburl.d.ts +1 -1
  283. package/utils/extractweburl.js +15 -15
  284. package/utils/file-names.d.ts +17 -17
  285. package/utils/file-names.js +38 -38
  286. package/utils/metadata.d.ts +5 -5
  287. package/utils/metadata.js +5 -5
  288. package/utils/objectToSPKeyValueCollection.d.ts +20 -20
  289. package/utils/objectToSPKeyValueCollection.js +16 -16
  290. package/utils/toResourcePath.d.ts +7 -7
  291. package/utils/toResourcePath.js +6 -6
  292. package/utils/toabsoluteurl.d.ts +7 -7
  293. package/utils/toabsoluteurl.js +61 -61
  294. package/views/index.d.ts +2 -2
  295. package/views/index.js +2 -2
  296. package/views/list.d.ts +23 -23
  297. package/views/list.js +8 -8
  298. package/views/types.d.ts +140 -140
  299. package/views/types.js +184 -184
  300. package/webparts/file.d.ts +15 -15
  301. package/webparts/file.js +6 -6
  302. package/webparts/index.d.ts +2 -2
  303. package/webparts/index.js +2 -2
  304. package/webparts/types.d.ts +83 -83
  305. package/webparts/types.js +117 -117
  306. package/webs/index.d.ts +16 -16
  307. package/webs/index.js +16 -16
  308. package/webs/types.d.ts +210 -210
  309. package/webs/types.js +295 -295
package/lists/types.js CHANGED
@@ -1,523 +1,523 @@
1
- import { __awaiter, __decorate, __extends, __generator, __read, __spreadArray } from "tslib";
2
- import { assign, dateAdd, hOP, isArray, objectDefinedNotNull } from "@pnp/common";
3
- import { body, headers } from "@pnp/odata";
4
- import { SharePointQueryable, SharePointQueryableCollection, _SharePointQueryableInstance, _SharePointQueryableCollection, spInvokableFactory, deleteableWithETag, } from "../sharepointqueryable.js";
5
- import { odataUrlFrom } from "../odata.js";
6
- import { metadata } from "../utils/metadata.js";
7
- import { defaultPath } from "../decorators.js";
8
- import { spPost } from "../operations.js";
9
- import { escapeQueryStrValue } from "../utils/escapeQueryStrValue.js";
10
- import { tag } from "../telemetry.js";
11
- import { toResourcePath } from "../utils/toResourcePath.js";
12
- var _Lists = /** @class */ (function (_super) {
13
- __extends(_Lists, _super);
14
- function _Lists() {
15
- return _super !== null && _super.apply(this, arguments) || this;
16
- }
17
- /**
18
- * Gets a list from the collection by guid id
19
- *
20
- * @param id The Id of the list (GUID)
21
- */
22
- _Lists.prototype.getById = function (id) {
23
- return tag.configure(List(this).concat("('" + id + "')"), "ls.getById");
24
- };
25
- /**
26
- * Gets a list from the collection by title
27
- *
28
- * @param title The title of the list
29
- */
30
- _Lists.prototype.getByTitle = function (title) {
31
- return tag.configure(List(this, "getByTitle('" + escapeQueryStrValue(title) + "')"), "ls.getByTitle");
32
- };
33
- /**
34
- * Adds a new list to the collection
35
- *
36
- * @param title The new list's title
37
- * @param description The new list's description
38
- * @param template The list template value
39
- * @param enableContentTypes If true content types will be allowed and enabled, otherwise they will be disallowed and not enabled
40
- * @param additionalSettings Will be passed as part of the list creation body
41
- */
42
- _Lists.prototype.add = function (title, desc, template, enableContentTypes, additionalSettings) {
43
- if (desc === void 0) { desc = ""; }
44
- if (template === void 0) { template = 100; }
45
- if (enableContentTypes === void 0) { enableContentTypes = false; }
46
- if (additionalSettings === void 0) { additionalSettings = {}; }
47
- return __awaiter(this, void 0, void 0, function () {
48
- var addSettings, data;
49
- return __generator(this, function (_a) {
50
- switch (_a.label) {
51
- case 0:
52
- addSettings = Object.assign({
53
- "AllowContentTypes": enableContentTypes,
54
- "BaseTemplate": template,
55
- "ContentTypesEnabled": enableContentTypes,
56
- "Description": desc,
57
- "Title": title,
58
- }, metadata("SP.List"), additionalSettings);
59
- return [4 /*yield*/, spPost(this, body(addSettings))];
60
- case 1:
61
- data = _a.sent();
62
- return [2 /*return*/, { data: data, list: this.getByTitle(addSettings.Title) }];
63
- }
64
- });
65
- });
66
- };
67
- /**
68
- * Ensures that the specified list exists in the collection (note: this method not supported for batching)
69
- *
70
- * @param title The new list's title
71
- * @param desc The new list's description
72
- * @param template The list template value
73
- * @param enableContentTypes If true content types will be allowed and enabled, otherwise they will be disallowed and not enabled
74
- * @param additionalSettings Will be passed as part of the list creation body or used to update an existing list
75
- */
76
- _Lists.prototype.ensure = function (title, desc, template, enableContentTypes, additionalSettings) {
77
- if (desc === void 0) { desc = ""; }
78
- if (template === void 0) { template = 100; }
79
- if (enableContentTypes === void 0) { enableContentTypes = false; }
80
- if (additionalSettings === void 0) { additionalSettings = {}; }
81
- return __awaiter(this, void 0, void 0, function () {
82
- var addOrUpdateSettings, list, data, e_1, data;
83
- return __generator(this, function (_a) {
84
- switch (_a.label) {
85
- case 0:
86
- if (this.hasBatch) {
87
- throw Error("The ensure list method is not supported for use in a batch.");
88
- }
89
- addOrUpdateSettings = assign(additionalSettings, { Title: title, Description: desc, ContentTypesEnabled: enableContentTypes }, true);
90
- list = this.getByTitle(addOrUpdateSettings.Title);
91
- _a.label = 1;
92
- case 1:
93
- _a.trys.push([1, 4, , 6]);
94
- // this will throw if the list doesn't exist
95
- return [4 /*yield*/, list.select("Title")()];
96
- case 2:
97
- // this will throw if the list doesn't exist
98
- _a.sent();
99
- return [4 /*yield*/, list.update(addOrUpdateSettings).then(function (r) { return r.data; })];
100
- case 3:
101
- data = _a.sent();
102
- return [2 /*return*/, { created: false, data: data, list: this.getByTitle(addOrUpdateSettings.Title) }];
103
- case 4:
104
- e_1 = _a.sent();
105
- return [4 /*yield*/, this.add(title, desc, template, enableContentTypes, addOrUpdateSettings).then(function (r) { return r.data; })];
106
- case 5:
107
- data = _a.sent();
108
- return [2 /*return*/, { created: true, data: data, list: this.getByTitle(addOrUpdateSettings.Title) }];
109
- case 6: return [2 /*return*/];
110
- }
111
- });
112
- });
113
- };
114
- /**
115
- * Gets a list that is the default asset location for images or other files, which the users upload to their wiki pages.
116
- */
117
- _Lists.prototype.ensureSiteAssetsLibrary = function () {
118
- return __awaiter(this, void 0, void 0, function () {
119
- var json;
120
- return __generator(this, function (_a) {
121
- switch (_a.label) {
122
- case 0: return [4 /*yield*/, spPost(this.clone(Lists, "ensuresiteassetslibrary"))];
123
- case 1:
124
- json = _a.sent();
125
- return [2 /*return*/, List(odataUrlFrom(json))];
126
- }
127
- });
128
- });
129
- };
130
- /**
131
- * Gets a list that is the default location for wiki pages.
132
- */
133
- _Lists.prototype.ensureSitePagesLibrary = function () {
134
- return __awaiter(this, void 0, void 0, function () {
135
- var json;
136
- return __generator(this, function (_a) {
137
- switch (_a.label) {
138
- case 0: return [4 /*yield*/, spPost(this.clone(Lists, "ensuresitepageslibrary"))];
139
- case 1:
140
- json = _a.sent();
141
- return [2 /*return*/, List(odataUrlFrom(json))];
142
- }
143
- });
144
- });
145
- };
146
- __decorate([
147
- tag("ls.add")
148
- ], _Lists.prototype, "add", null);
149
- __decorate([
150
- tag("ls.ensure")
151
- ], _Lists.prototype, "ensure", null);
152
- __decorate([
153
- tag("ls.ensureSiteAssetsLibrary")
154
- ], _Lists.prototype, "ensureSiteAssetsLibrary", null);
155
- __decorate([
156
- tag("ls.ensureSitePagesLibrary")
157
- ], _Lists.prototype, "ensureSitePagesLibrary", null);
158
- _Lists = __decorate([
159
- defaultPath("lists")
160
- ], _Lists);
161
- return _Lists;
162
- }(_SharePointQueryableCollection));
163
- export { _Lists };
164
- export var Lists = spInvokableFactory(_Lists);
165
- var _List = /** @class */ (function (_super) {
166
- __extends(_List, _super);
167
- function _List() {
168
- var _this = _super !== null && _super.apply(this, arguments) || this;
169
- _this.delete = deleteableWithETag("l");
170
- return _this;
171
- }
172
- Object.defineProperty(_List.prototype, "effectiveBasePermissions", {
173
- /**
174
- * Gets the effective base permissions of this list
175
- *
176
- */
177
- get: function () {
178
- return tag.configure(SharePointQueryable(this, "EffectiveBasePermissions"), "l.effectiveBasePermissions");
179
- },
180
- enumerable: false,
181
- configurable: true
182
- });
183
- Object.defineProperty(_List.prototype, "eventReceivers", {
184
- /**
185
- * Gets the event receivers attached to this list
186
- *
187
- */
188
- get: function () {
189
- return tag.configure(SharePointQueryableCollection(this, "EventReceivers"), "l.eventReceivers");
190
- },
191
- enumerable: false,
192
- configurable: true
193
- });
194
- Object.defineProperty(_List.prototype, "relatedFields", {
195
- /**
196
- * Gets the related fields of this list
197
- *
198
- */
199
- get: function () {
200
- return tag.configure(SharePointQueryable(this, "getRelatedFields"), "l.relatedFields");
201
- },
202
- enumerable: false,
203
- configurable: true
204
- });
205
- Object.defineProperty(_List.prototype, "informationRightsManagementSettings", {
206
- /**
207
- * Gets the IRM settings for this list
208
- *
209
- */
210
- get: function () {
211
- return tag.configure(SharePointQueryable(this, "InformationRightsManagementSettings"), "l.informationRightsManagementSettings");
212
- },
213
- enumerable: false,
214
- configurable: true
215
- });
216
- /**
217
- * Updates this list intance with the supplied properties
218
- *
219
- * @param properties A plain object hash of values to update for the list
220
- * @param eTag Value used in the IF-Match header, by default "*"
221
- */
222
- _List.prototype.update = function (properties, eTag) {
223
- if (eTag === void 0) { eTag = "*"; }
224
- return __awaiter(this, void 0, void 0, function () {
225
- var postBody, data, list;
226
- return __generator(this, function (_a) {
227
- switch (_a.label) {
228
- case 0:
229
- postBody = body(assign(metadata("SP.List"), properties), headers({
230
- "IF-Match": eTag,
231
- "X-HTTP-Method": "MERGE",
232
- }));
233
- return [4 /*yield*/, spPost(this, postBody)];
234
- case 1:
235
- data = _a.sent();
236
- list = hOP(properties, "Title") ? this.getParent(List, this.parentUrl, "getByTitle('" + properties.Title + "')") : List(this);
237
- return [2 /*return*/, {
238
- data: data,
239
- list: list,
240
- }];
241
- }
242
- });
243
- });
244
- };
245
- /**
246
- * Returns the collection of changes from the change log that have occurred within the list, based on the specified query.
247
- * @param query A query that is performed against the change log.
248
- */
249
- _List.prototype.getChanges = function (query) {
250
- return spPost(this.clone(List, "getchanges"), body({ query: assign(metadata("SP.ChangeQuery"), query) }));
251
- };
252
- /**
253
- * Returns the collection of items in the list based on the provided CamlQuery
254
- * @param query A query that is performed against the list
255
- * @param expands An expanded array of n items that contains fields to expand in the CamlQuery
256
- */
257
- _List.prototype.getItemsByCAMLQuery = function (query) {
258
- var expands = [];
259
- for (var _i = 1; _i < arguments.length; _i++) {
260
- expands[_i - 1] = arguments[_i];
261
- }
262
- var q = this.clone(List, "getitems");
263
- return spPost(q.expand.apply(q, __spreadArray([], __read(expands))), body({ query: assign(metadata("SP.CamlQuery"), query) }));
264
- };
265
- /**
266
- * See: https://msdn.microsoft.com/en-us/library/office/dn292554.aspx
267
- * @param query An object that defines the change log item query
268
- */
269
- _List.prototype.getListItemChangesSinceToken = function (query) {
270
- var o = this.clone(List, "getlistitemchangessincetoken").usingParser({
271
- parse: function (r) {
272
- return r.text();
273
- },
274
- });
275
- return spPost(o, body({ "query": assign(metadata("SP.ChangeLogItemQuery"), query) }));
276
- };
277
- /**
278
- * Moves the list to the Recycle Bin and returns the identifier of the new Recycle Bin item.
279
- */
280
- _List.prototype.recycle = function () {
281
- return __awaiter(this, void 0, void 0, function () {
282
- var data;
283
- return __generator(this, function (_a) {
284
- switch (_a.label) {
285
- case 0: return [4 /*yield*/, spPost(this.clone(List, "recycle"))];
286
- case 1:
287
- data = _a.sent();
288
- return [2 /*return*/, hOP(data, "Recycle") ? data.Recycle : data];
289
- }
290
- });
291
- });
292
- };
293
- /**
294
- * Renders list data based on the view xml provided
295
- * @param viewXml A string object representing a view xml
296
- */
297
- _List.prototype.renderListData = function (viewXml) {
298
- return __awaiter(this, void 0, void 0, function () {
299
- var q, data;
300
- return __generator(this, function (_a) {
301
- switch (_a.label) {
302
- case 0:
303
- q = this.clone(List, "renderlistdata(@viewXml)");
304
- q.query.set("@viewXml", "'" + viewXml + "'");
305
- return [4 /*yield*/, spPost(q)];
306
- case 1:
307
- data = _a.sent();
308
- // data will be a string, so we parse it again
309
- return [2 /*return*/, JSON.parse(hOP(data, "RenderListData") ? data.RenderListData : data)];
310
- }
311
- });
312
- });
313
- };
314
- /**
315
- * Returns the data for the specified query view
316
- *
317
- * @param parameters The parameters to be used to render list data as JSON string.
318
- * @param overrideParams The parameters that are used to override and extend the regular SPRenderListDataParameters.
319
- * @param query Allows setting of query parameters
320
- */
321
- _List.prototype.renderListDataAsStream = function (parameters, overrideParams, query) {
322
- if (overrideParams === void 0) { overrideParams = null; }
323
- if (query === void 0) { query = new Map(); }
324
- if (hOP(parameters, "RenderOptions") && isArray(parameters.RenderOptions)) {
325
- parameters.RenderOptions = parameters.RenderOptions.reduce(function (v, c) { return v + c; });
326
- }
327
- var bodyOptions = { parameters: assign(metadata("SP.RenderListDataParameters"), parameters) };
328
- if (objectDefinedNotNull(overrideParams)) {
329
- bodyOptions = assign(bodyOptions, { overrideParameters: assign(metadata("SP.RenderListDataOverrideParameters"), overrideParams) });
330
- }
331
- var clone = this.clone(List, "RenderListDataAsStream", true, true);
332
- if (query && query.size > 0) {
333
- query.forEach(function (v, k) { return clone.query.set(k, v); });
334
- }
335
- return spPost(clone, body(bodyOptions));
336
- };
337
- /**
338
- * Gets the field values and field schema attributes for a list item.
339
- * @param itemId Item id of the item to render form data for
340
- * @param formId The id of the form
341
- * @param mode Enum representing the control mode of the form (Display, Edit, New)
342
- */
343
- _List.prototype.renderListFormData = function (itemId, formId, mode) {
344
- return __awaiter(this, void 0, void 0, function () {
345
- var data;
346
- return __generator(this, function (_a) {
347
- switch (_a.label) {
348
- case 0: return [4 /*yield*/, spPost(this.clone(List, "renderlistformdata(itemid=" + itemId + ", formid='" + formId + "', mode='" + mode + "')"))];
349
- case 1:
350
- data = _a.sent();
351
- // data will be a string, so we parse it again
352
- return [2 /*return*/, JSON.parse(hOP(data, "RenderListFormData") ? data.RenderListFormData : data)];
353
- }
354
- });
355
- });
356
- };
357
- /**
358
- * Reserves a list item ID for idempotent list item creation.
359
- */
360
- _List.prototype.reserveListItemId = function () {
361
- return __awaiter(this, void 0, void 0, function () {
362
- var data;
363
- return __generator(this, function (_a) {
364
- switch (_a.label) {
365
- case 0: return [4 /*yield*/, spPost(this.clone(List, "reservelistitemid"))];
366
- case 1:
367
- data = _a.sent();
368
- return [2 /*return*/, hOP(data, "ReserveListItemId") ? data.ReserveListItemId : data];
369
- }
370
- });
371
- });
372
- };
373
- /**
374
- * Returns the ListItemEntityTypeFullName for this list, used when adding/updating list items. Does not support batching.
375
- */
376
- _List.prototype.getListItemEntityTypeFullName = function () {
377
- // we cache these requests as the entity name doesn't change and we can save traffic
378
- // this is justified as this method generates our second highest number of monthly executions ahead of item add and update
379
- return this.clone(List, null, false).select("ListItemEntityTypeFullName").usingCaching({
380
- expiration: dateAdd(new Date(), "day", 5),
381
- key: "PnPjs-ListEntityName:" + this.toUrl(),
382
- storeName: "local",
383
- })().then(function (o) { return o.ListItemEntityTypeFullName; });
384
- };
385
- /**
386
- * Creates an item using path (in a folder), validates and sets its field values.
387
- *
388
- * @param formValues The fields to change and their new values.
389
- * @param decodedUrl Path decoded url; folder's server relative path.
390
- * @param bNewDocumentUpdate true if the list item is a document being updated after upload; otherwise false.
391
- * @param checkInComment Optional check in comment.
392
- * @param additionalProps Optional set of additional properties LeafName new document file name,
393
- */
394
- _List.prototype.addValidateUpdateItemUsingPath = function (formValues, decodedUrl, bNewDocumentUpdate, checkInComment, additionalProps) {
395
- if (bNewDocumentUpdate === void 0) { bNewDocumentUpdate = false; }
396
- return __awaiter(this, void 0, void 0, function () {
397
- var addProps, res;
398
- return __generator(this, function (_a) {
399
- switch (_a.label) {
400
- case 0:
401
- addProps = {
402
- FolderPath: toResourcePath(decodedUrl),
403
- };
404
- if (objectDefinedNotNull(additionalProps)) {
405
- if (additionalProps.leafName) {
406
- addProps.LeafName = toResourcePath(additionalProps.leafName);
407
- }
408
- if (additionalProps.objectType) {
409
- addProps.UnderlyingObjectType = additionalProps.objectType;
410
- }
411
- }
412
- return [4 /*yield*/, spPost(this.clone(List, "AddValidateUpdateItemUsingPath()"), body({
413
- bNewDocumentUpdate: bNewDocumentUpdate,
414
- checkInComment: checkInComment,
415
- formValues: formValues,
416
- listItemCreateInfo: assign(metadata("SP.ListItemCreationInformationUsingPath"), addProps),
417
- }))];
418
- case 1:
419
- res = _a.sent();
420
- return [2 /*return*/, hOP(res, "AddValidateUpdateItemUsingPath") ? res.AddValidateUpdateItemUsingPath : res];
421
- }
422
- });
423
- });
424
- };
425
- /**
426
- * Gets the parent information for this item's list and web
427
- */
428
- _List.prototype.getParentInfos = function () {
429
- return __awaiter(this, void 0, void 0, function () {
430
- var urlInfo;
431
- return __generator(this, function (_a) {
432
- switch (_a.label) {
433
- case 0: return [4 /*yield*/, this.select("Id", "RootFolder/UniqueId", "RootFolder/ServerRelativeUrl", "RootFolder/ServerRelativePath", "ParentWeb/Id", "ParentWeb/Url", "ParentWeb/ServerRelativeUrl", "ParentWeb/ServerRelativePath").expand("RootFolder", "ParentWeb")()];
434
- case 1:
435
- urlInfo = _a.sent();
436
- return [2 /*return*/, {
437
- List: {
438
- Id: urlInfo.Id,
439
- RootFolderServerRelativePath: urlInfo.RootFolder.ServerRelativePath,
440
- RootFolderServerRelativeUrl: urlInfo.RootFolder.ServerRelativeUrl,
441
- RootFolderUniqueId: urlInfo.RootFolder.UniqueId,
442
- },
443
- ParentWeb: {
444
- Id: urlInfo.ParentWeb.Id,
445
- ServerRelativePath: urlInfo.ParentWeb.ServerRelativePath,
446
- ServerRelativeUrl: urlInfo.ParentWeb.ServerRelativeUrl,
447
- Url: urlInfo.ParentWeb.Url,
448
- },
449
- }];
450
- }
451
- });
452
- });
453
- };
454
- __decorate([
455
- tag("l.update")
456
- ], _List.prototype, "update", null);
457
- __decorate([
458
- tag("l.getChanges")
459
- ], _List.prototype, "getChanges", null);
460
- __decorate([
461
- tag("l.CAMLQuery")
462
- ], _List.prototype, "getItemsByCAMLQuery", null);
463
- __decorate([
464
- tag("l.ChangesSinceToken")
465
- ], _List.prototype, "getListItemChangesSinceToken", null);
466
- __decorate([
467
- tag("l.recycle")
468
- ], _List.prototype, "recycle", null);
469
- __decorate([
470
- tag("l.renderListData")
471
- ], _List.prototype, "renderListData", null);
472
- __decorate([
473
- tag("l.AsStream")
474
- ], _List.prototype, "renderListDataAsStream", null);
475
- __decorate([
476
- tag("l.renderListFormData")
477
- ], _List.prototype, "renderListFormData", null);
478
- __decorate([
479
- tag("l.reserveListItemId")
480
- ], _List.prototype, "reserveListItemId", null);
481
- __decorate([
482
- tag("l.getListItemEntityTypeFullName")
483
- ], _List.prototype, "getListItemEntityTypeFullName", null);
484
- __decorate([
485
- tag("l.addValidateUpdateItemUsingPath")
486
- ], _List.prototype, "addValidateUpdateItemUsingPath", null);
487
- return _List;
488
- }(_SharePointQueryableInstance));
489
- export { _List };
490
- export var List = spInvokableFactory(_List);
491
- /**
492
- * Enum representing the options of the RenderOptions property on IRenderListDataParameters interface
493
- */
494
- export var RenderListDataOptions;
495
- (function (RenderListDataOptions) {
496
- RenderListDataOptions[RenderListDataOptions["None"] = 0] = "None";
497
- RenderListDataOptions[RenderListDataOptions["ContextInfo"] = 1] = "ContextInfo";
498
- RenderListDataOptions[RenderListDataOptions["ListData"] = 2] = "ListData";
499
- RenderListDataOptions[RenderListDataOptions["ListSchema"] = 4] = "ListSchema";
500
- RenderListDataOptions[RenderListDataOptions["MenuView"] = 8] = "MenuView";
501
- RenderListDataOptions[RenderListDataOptions["ListContentType"] = 16] = "ListContentType";
502
- RenderListDataOptions[RenderListDataOptions["FileSystemItemId"] = 32] = "FileSystemItemId";
503
- RenderListDataOptions[RenderListDataOptions["ClientFormSchema"] = 64] = "ClientFormSchema";
504
- RenderListDataOptions[RenderListDataOptions["QuickLaunch"] = 128] = "QuickLaunch";
505
- RenderListDataOptions[RenderListDataOptions["Spotlight"] = 256] = "Spotlight";
506
- RenderListDataOptions[RenderListDataOptions["Visualization"] = 512] = "Visualization";
507
- RenderListDataOptions[RenderListDataOptions["ViewMetadata"] = 1024] = "ViewMetadata";
508
- RenderListDataOptions[RenderListDataOptions["DisableAutoHyperlink"] = 2048] = "DisableAutoHyperlink";
509
- RenderListDataOptions[RenderListDataOptions["EnableMediaTAUrls"] = 4096] = "EnableMediaTAUrls";
510
- RenderListDataOptions[RenderListDataOptions["ParentInfo"] = 8192] = "ParentInfo";
511
- RenderListDataOptions[RenderListDataOptions["PageContextInfo"] = 16384] = "PageContextInfo";
512
- RenderListDataOptions[RenderListDataOptions["ClientSideComponentManifest"] = 32768] = "ClientSideComponentManifest";
513
- })(RenderListDataOptions || (RenderListDataOptions = {}));
514
- /**
515
- * Determines the display mode of the given control or view
516
- */
517
- export var ControlMode;
518
- (function (ControlMode) {
519
- ControlMode[ControlMode["Display"] = 1] = "Display";
520
- ControlMode[ControlMode["Edit"] = 2] = "Edit";
521
- ControlMode[ControlMode["New"] = 3] = "New";
522
- })(ControlMode || (ControlMode = {}));
1
+ import { __awaiter, __decorate, __extends, __generator, __read, __spreadArray } from "tslib";
2
+ import { assign, dateAdd, hOP, isArray, objectDefinedNotNull } from "@pnp/common";
3
+ import { body, headers } from "@pnp/odata";
4
+ import { SharePointQueryable, SharePointQueryableCollection, _SharePointQueryableInstance, _SharePointQueryableCollection, spInvokableFactory, deleteableWithETag, } from "../sharepointqueryable.js";
5
+ import { odataUrlFrom } from "../odata.js";
6
+ import { metadata } from "../utils/metadata.js";
7
+ import { defaultPath } from "../decorators.js";
8
+ import { spPost } from "../operations.js";
9
+ import { escapeQueryStrValue } from "../utils/escapeQueryStrValue.js";
10
+ import { tag } from "../telemetry.js";
11
+ import { toResourcePath } from "../utils/toResourcePath.js";
12
+ var _Lists = /** @class */ (function (_super) {
13
+ __extends(_Lists, _super);
14
+ function _Lists() {
15
+ return _super !== null && _super.apply(this, arguments) || this;
16
+ }
17
+ /**
18
+ * Gets a list from the collection by guid id
19
+ *
20
+ * @param id The Id of the list (GUID)
21
+ */
22
+ _Lists.prototype.getById = function (id) {
23
+ return tag.configure(List(this).concat("('" + id + "')"), "ls.getById");
24
+ };
25
+ /**
26
+ * Gets a list from the collection by title
27
+ *
28
+ * @param title The title of the list
29
+ */
30
+ _Lists.prototype.getByTitle = function (title) {
31
+ return tag.configure(List(this, "getByTitle('" + escapeQueryStrValue(title) + "')"), "ls.getByTitle");
32
+ };
33
+ /**
34
+ * Adds a new list to the collection
35
+ *
36
+ * @param title The new list's title
37
+ * @param description The new list's description
38
+ * @param template The list template value
39
+ * @param enableContentTypes If true content types will be allowed and enabled, otherwise they will be disallowed and not enabled
40
+ * @param additionalSettings Will be passed as part of the list creation body
41
+ */
42
+ _Lists.prototype.add = function (title, desc, template, enableContentTypes, additionalSettings) {
43
+ if (desc === void 0) { desc = ""; }
44
+ if (template === void 0) { template = 100; }
45
+ if (enableContentTypes === void 0) { enableContentTypes = false; }
46
+ if (additionalSettings === void 0) { additionalSettings = {}; }
47
+ return __awaiter(this, void 0, void 0, function () {
48
+ var addSettings, data;
49
+ return __generator(this, function (_a) {
50
+ switch (_a.label) {
51
+ case 0:
52
+ addSettings = Object.assign({
53
+ "AllowContentTypes": enableContentTypes,
54
+ "BaseTemplate": template,
55
+ "ContentTypesEnabled": enableContentTypes,
56
+ "Description": desc,
57
+ "Title": title,
58
+ }, metadata("SP.List"), additionalSettings);
59
+ return [4 /*yield*/, spPost(this, body(addSettings))];
60
+ case 1:
61
+ data = _a.sent();
62
+ return [2 /*return*/, { data: data, list: this.getByTitle(addSettings.Title) }];
63
+ }
64
+ });
65
+ });
66
+ };
67
+ /**
68
+ * Ensures that the specified list exists in the collection (note: this method not supported for batching)
69
+ *
70
+ * @param title The new list's title
71
+ * @param desc The new list's description
72
+ * @param template The list template value
73
+ * @param enableContentTypes If true content types will be allowed and enabled, otherwise they will be disallowed and not enabled
74
+ * @param additionalSettings Will be passed as part of the list creation body or used to update an existing list
75
+ */
76
+ _Lists.prototype.ensure = function (title, desc, template, enableContentTypes, additionalSettings) {
77
+ if (desc === void 0) { desc = ""; }
78
+ if (template === void 0) { template = 100; }
79
+ if (enableContentTypes === void 0) { enableContentTypes = false; }
80
+ if (additionalSettings === void 0) { additionalSettings = {}; }
81
+ return __awaiter(this, void 0, void 0, function () {
82
+ var addOrUpdateSettings, list, data, e_1, data;
83
+ return __generator(this, function (_a) {
84
+ switch (_a.label) {
85
+ case 0:
86
+ if (this.hasBatch) {
87
+ throw Error("The ensure list method is not supported for use in a batch.");
88
+ }
89
+ addOrUpdateSettings = assign(additionalSettings, { Title: title, Description: desc, ContentTypesEnabled: enableContentTypes }, true);
90
+ list = this.getByTitle(addOrUpdateSettings.Title);
91
+ _a.label = 1;
92
+ case 1:
93
+ _a.trys.push([1, 4, , 6]);
94
+ // this will throw if the list doesn't exist
95
+ return [4 /*yield*/, list.select("Title")()];
96
+ case 2:
97
+ // this will throw if the list doesn't exist
98
+ _a.sent();
99
+ return [4 /*yield*/, list.update(addOrUpdateSettings).then(function (r) { return r.data; })];
100
+ case 3:
101
+ data = _a.sent();
102
+ return [2 /*return*/, { created: false, data: data, list: this.getByTitle(addOrUpdateSettings.Title) }];
103
+ case 4:
104
+ e_1 = _a.sent();
105
+ return [4 /*yield*/, this.add(title, desc, template, enableContentTypes, addOrUpdateSettings).then(function (r) { return r.data; })];
106
+ case 5:
107
+ data = _a.sent();
108
+ return [2 /*return*/, { created: true, data: data, list: this.getByTitle(addOrUpdateSettings.Title) }];
109
+ case 6: return [2 /*return*/];
110
+ }
111
+ });
112
+ });
113
+ };
114
+ /**
115
+ * Gets a list that is the default asset location for images or other files, which the users upload to their wiki pages.
116
+ */
117
+ _Lists.prototype.ensureSiteAssetsLibrary = function () {
118
+ return __awaiter(this, void 0, void 0, function () {
119
+ var json;
120
+ return __generator(this, function (_a) {
121
+ switch (_a.label) {
122
+ case 0: return [4 /*yield*/, spPost(this.clone(Lists, "ensuresiteassetslibrary"))];
123
+ case 1:
124
+ json = _a.sent();
125
+ return [2 /*return*/, List(odataUrlFrom(json))];
126
+ }
127
+ });
128
+ });
129
+ };
130
+ /**
131
+ * Gets a list that is the default location for wiki pages.
132
+ */
133
+ _Lists.prototype.ensureSitePagesLibrary = function () {
134
+ return __awaiter(this, void 0, void 0, function () {
135
+ var json;
136
+ return __generator(this, function (_a) {
137
+ switch (_a.label) {
138
+ case 0: return [4 /*yield*/, spPost(this.clone(Lists, "ensuresitepageslibrary"))];
139
+ case 1:
140
+ json = _a.sent();
141
+ return [2 /*return*/, List(odataUrlFrom(json))];
142
+ }
143
+ });
144
+ });
145
+ };
146
+ __decorate([
147
+ tag("ls.add")
148
+ ], _Lists.prototype, "add", null);
149
+ __decorate([
150
+ tag("ls.ensure")
151
+ ], _Lists.prototype, "ensure", null);
152
+ __decorate([
153
+ tag("ls.ensureSiteAssetsLibrary")
154
+ ], _Lists.prototype, "ensureSiteAssetsLibrary", null);
155
+ __decorate([
156
+ tag("ls.ensureSitePagesLibrary")
157
+ ], _Lists.prototype, "ensureSitePagesLibrary", null);
158
+ _Lists = __decorate([
159
+ defaultPath("lists")
160
+ ], _Lists);
161
+ return _Lists;
162
+ }(_SharePointQueryableCollection));
163
+ export { _Lists };
164
+ export var Lists = spInvokableFactory(_Lists);
165
+ var _List = /** @class */ (function (_super) {
166
+ __extends(_List, _super);
167
+ function _List() {
168
+ var _this = _super !== null && _super.apply(this, arguments) || this;
169
+ _this.delete = deleteableWithETag("l");
170
+ return _this;
171
+ }
172
+ Object.defineProperty(_List.prototype, "effectiveBasePermissions", {
173
+ /**
174
+ * Gets the effective base permissions of this list
175
+ *
176
+ */
177
+ get: function () {
178
+ return tag.configure(SharePointQueryable(this, "EffectiveBasePermissions"), "l.effectiveBasePermissions");
179
+ },
180
+ enumerable: false,
181
+ configurable: true
182
+ });
183
+ Object.defineProperty(_List.prototype, "eventReceivers", {
184
+ /**
185
+ * Gets the event receivers attached to this list
186
+ *
187
+ */
188
+ get: function () {
189
+ return tag.configure(SharePointQueryableCollection(this, "EventReceivers"), "l.eventReceivers");
190
+ },
191
+ enumerable: false,
192
+ configurable: true
193
+ });
194
+ Object.defineProperty(_List.prototype, "relatedFields", {
195
+ /**
196
+ * Gets the related fields of this list
197
+ *
198
+ */
199
+ get: function () {
200
+ return tag.configure(SharePointQueryable(this, "getRelatedFields"), "l.relatedFields");
201
+ },
202
+ enumerable: false,
203
+ configurable: true
204
+ });
205
+ Object.defineProperty(_List.prototype, "informationRightsManagementSettings", {
206
+ /**
207
+ * Gets the IRM settings for this list
208
+ *
209
+ */
210
+ get: function () {
211
+ return tag.configure(SharePointQueryable(this, "InformationRightsManagementSettings"), "l.informationRightsManagementSettings");
212
+ },
213
+ enumerable: false,
214
+ configurable: true
215
+ });
216
+ /**
217
+ * Updates this list intance with the supplied properties
218
+ *
219
+ * @param properties A plain object hash of values to update for the list
220
+ * @param eTag Value used in the IF-Match header, by default "*"
221
+ */
222
+ _List.prototype.update = function (properties, eTag) {
223
+ if (eTag === void 0) { eTag = "*"; }
224
+ return __awaiter(this, void 0, void 0, function () {
225
+ var postBody, data, list;
226
+ return __generator(this, function (_a) {
227
+ switch (_a.label) {
228
+ case 0:
229
+ postBody = body(assign(metadata("SP.List"), properties), headers({
230
+ "IF-Match": eTag,
231
+ "X-HTTP-Method": "MERGE",
232
+ }));
233
+ return [4 /*yield*/, spPost(this, postBody)];
234
+ case 1:
235
+ data = _a.sent();
236
+ list = hOP(properties, "Title") ? this.getParent(List, this.parentUrl, "getByTitle('" + properties.Title + "')") : List(this);
237
+ return [2 /*return*/, {
238
+ data: data,
239
+ list: list,
240
+ }];
241
+ }
242
+ });
243
+ });
244
+ };
245
+ /**
246
+ * Returns the collection of changes from the change log that have occurred within the list, based on the specified query.
247
+ * @param query A query that is performed against the change log.
248
+ */
249
+ _List.prototype.getChanges = function (query) {
250
+ return spPost(this.clone(List, "getchanges"), body({ query: assign(metadata("SP.ChangeQuery"), query) }));
251
+ };
252
+ /**
253
+ * Returns the collection of items in the list based on the provided CamlQuery
254
+ * @param query A query that is performed against the list
255
+ * @param expands An expanded array of n items that contains fields to expand in the CamlQuery
256
+ */
257
+ _List.prototype.getItemsByCAMLQuery = function (query) {
258
+ var expands = [];
259
+ for (var _i = 1; _i < arguments.length; _i++) {
260
+ expands[_i - 1] = arguments[_i];
261
+ }
262
+ var q = this.clone(List, "getitems");
263
+ return spPost(q.expand.apply(q, __spreadArray([], __read(expands), false)), body({ query: assign(metadata("SP.CamlQuery"), query) }));
264
+ };
265
+ /**
266
+ * See: https://msdn.microsoft.com/en-us/library/office/dn292554.aspx
267
+ * @param query An object that defines the change log item query
268
+ */
269
+ _List.prototype.getListItemChangesSinceToken = function (query) {
270
+ var o = this.clone(List, "getlistitemchangessincetoken").usingParser({
271
+ parse: function (r) {
272
+ return r.text();
273
+ },
274
+ });
275
+ return spPost(o, body({ "query": assign(metadata("SP.ChangeLogItemQuery"), query) }));
276
+ };
277
+ /**
278
+ * Moves the list to the Recycle Bin and returns the identifier of the new Recycle Bin item.
279
+ */
280
+ _List.prototype.recycle = function () {
281
+ return __awaiter(this, void 0, void 0, function () {
282
+ var data;
283
+ return __generator(this, function (_a) {
284
+ switch (_a.label) {
285
+ case 0: return [4 /*yield*/, spPost(this.clone(List, "recycle"))];
286
+ case 1:
287
+ data = _a.sent();
288
+ return [2 /*return*/, hOP(data, "Recycle") ? data.Recycle : data];
289
+ }
290
+ });
291
+ });
292
+ };
293
+ /**
294
+ * Renders list data based on the view xml provided
295
+ * @param viewXml A string object representing a view xml
296
+ */
297
+ _List.prototype.renderListData = function (viewXml) {
298
+ return __awaiter(this, void 0, void 0, function () {
299
+ var q, data;
300
+ return __generator(this, function (_a) {
301
+ switch (_a.label) {
302
+ case 0:
303
+ q = this.clone(List, "renderlistdata(@viewXml)");
304
+ q.query.set("@viewXml", "'" + viewXml + "'");
305
+ return [4 /*yield*/, spPost(q)];
306
+ case 1:
307
+ data = _a.sent();
308
+ // data will be a string, so we parse it again
309
+ return [2 /*return*/, JSON.parse(hOP(data, "RenderListData") ? data.RenderListData : data)];
310
+ }
311
+ });
312
+ });
313
+ };
314
+ /**
315
+ * Returns the data for the specified query view
316
+ *
317
+ * @param parameters The parameters to be used to render list data as JSON string.
318
+ * @param overrideParams The parameters that are used to override and extend the regular SPRenderListDataParameters.
319
+ * @param query Allows setting of query parameters
320
+ */
321
+ _List.prototype.renderListDataAsStream = function (parameters, overrideParams, query) {
322
+ if (overrideParams === void 0) { overrideParams = null; }
323
+ if (query === void 0) { query = new Map(); }
324
+ if (hOP(parameters, "RenderOptions") && isArray(parameters.RenderOptions)) {
325
+ parameters.RenderOptions = parameters.RenderOptions.reduce(function (v, c) { return v + c; });
326
+ }
327
+ var bodyOptions = { parameters: assign(metadata("SP.RenderListDataParameters"), parameters) };
328
+ if (objectDefinedNotNull(overrideParams)) {
329
+ bodyOptions = assign(bodyOptions, { overrideParameters: assign(metadata("SP.RenderListDataOverrideParameters"), overrideParams) });
330
+ }
331
+ var clone = this.clone(List, "RenderListDataAsStream", true, true);
332
+ if (query && query.size > 0) {
333
+ query.forEach(function (v, k) { return clone.query.set(k, v); });
334
+ }
335
+ return spPost(clone, body(bodyOptions));
336
+ };
337
+ /**
338
+ * Gets the field values and field schema attributes for a list item.
339
+ * @param itemId Item id of the item to render form data for
340
+ * @param formId The id of the form
341
+ * @param mode Enum representing the control mode of the form (Display, Edit, New)
342
+ */
343
+ _List.prototype.renderListFormData = function (itemId, formId, mode) {
344
+ return __awaiter(this, void 0, void 0, function () {
345
+ var data;
346
+ return __generator(this, function (_a) {
347
+ switch (_a.label) {
348
+ case 0: return [4 /*yield*/, spPost(this.clone(List, "renderlistformdata(itemid=" + itemId + ", formid='" + formId + "', mode='" + mode + "')"))];
349
+ case 1:
350
+ data = _a.sent();
351
+ // data will be a string, so we parse it again
352
+ return [2 /*return*/, JSON.parse(hOP(data, "RenderListFormData") ? data.RenderListFormData : data)];
353
+ }
354
+ });
355
+ });
356
+ };
357
+ /**
358
+ * Reserves a list item ID for idempotent list item creation.
359
+ */
360
+ _List.prototype.reserveListItemId = function () {
361
+ return __awaiter(this, void 0, void 0, function () {
362
+ var data;
363
+ return __generator(this, function (_a) {
364
+ switch (_a.label) {
365
+ case 0: return [4 /*yield*/, spPost(this.clone(List, "reservelistitemid"))];
366
+ case 1:
367
+ data = _a.sent();
368
+ return [2 /*return*/, hOP(data, "ReserveListItemId") ? data.ReserveListItemId : data];
369
+ }
370
+ });
371
+ });
372
+ };
373
+ /**
374
+ * Returns the ListItemEntityTypeFullName for this list, used when adding/updating list items. Does not support batching.
375
+ */
376
+ _List.prototype.getListItemEntityTypeFullName = function () {
377
+ // we cache these requests as the entity name doesn't change and we can save traffic
378
+ // this is justified as this method generates our second highest number of monthly executions ahead of item add and update
379
+ return this.clone(List, null, false).select("ListItemEntityTypeFullName").usingCaching({
380
+ expiration: dateAdd(new Date(), "day", 5),
381
+ key: "PnPjs-ListEntityName:" + this.toUrl(),
382
+ storeName: "local",
383
+ })().then(function (o) { return o.ListItemEntityTypeFullName; });
384
+ };
385
+ /**
386
+ * Creates an item using path (in a folder), validates and sets its field values.
387
+ *
388
+ * @param formValues The fields to change and their new values.
389
+ * @param decodedUrl Path decoded url; folder's server relative path.
390
+ * @param bNewDocumentUpdate true if the list item is a document being updated after upload; otherwise false.
391
+ * @param checkInComment Optional check in comment.
392
+ * @param additionalProps Optional set of additional properties LeafName new document file name,
393
+ */
394
+ _List.prototype.addValidateUpdateItemUsingPath = function (formValues, decodedUrl, bNewDocumentUpdate, checkInComment, additionalProps) {
395
+ if (bNewDocumentUpdate === void 0) { bNewDocumentUpdate = false; }
396
+ return __awaiter(this, void 0, void 0, function () {
397
+ var addProps, res;
398
+ return __generator(this, function (_a) {
399
+ switch (_a.label) {
400
+ case 0:
401
+ addProps = {
402
+ FolderPath: toResourcePath(decodedUrl),
403
+ };
404
+ if (objectDefinedNotNull(additionalProps)) {
405
+ if (additionalProps.leafName) {
406
+ addProps.LeafName = toResourcePath(additionalProps.leafName);
407
+ }
408
+ if (additionalProps.objectType) {
409
+ addProps.UnderlyingObjectType = additionalProps.objectType;
410
+ }
411
+ }
412
+ return [4 /*yield*/, spPost(this.clone(List, "AddValidateUpdateItemUsingPath()"), body({
413
+ bNewDocumentUpdate: bNewDocumentUpdate,
414
+ checkInComment: checkInComment,
415
+ formValues: formValues,
416
+ listItemCreateInfo: assign(metadata("SP.ListItemCreationInformationUsingPath"), addProps),
417
+ }))];
418
+ case 1:
419
+ res = _a.sent();
420
+ return [2 /*return*/, hOP(res, "AddValidateUpdateItemUsingPath") ? res.AddValidateUpdateItemUsingPath : res];
421
+ }
422
+ });
423
+ });
424
+ };
425
+ /**
426
+ * Gets the parent information for this item's list and web
427
+ */
428
+ _List.prototype.getParentInfos = function () {
429
+ return __awaiter(this, void 0, void 0, function () {
430
+ var urlInfo;
431
+ return __generator(this, function (_a) {
432
+ switch (_a.label) {
433
+ case 0: return [4 /*yield*/, this.select("Id", "RootFolder/UniqueId", "RootFolder/ServerRelativeUrl", "RootFolder/ServerRelativePath", "ParentWeb/Id", "ParentWeb/Url", "ParentWeb/ServerRelativeUrl", "ParentWeb/ServerRelativePath").expand("RootFolder", "ParentWeb")()];
434
+ case 1:
435
+ urlInfo = _a.sent();
436
+ return [2 /*return*/, {
437
+ List: {
438
+ Id: urlInfo.Id,
439
+ RootFolderServerRelativePath: urlInfo.RootFolder.ServerRelativePath,
440
+ RootFolderServerRelativeUrl: urlInfo.RootFolder.ServerRelativeUrl,
441
+ RootFolderUniqueId: urlInfo.RootFolder.UniqueId,
442
+ },
443
+ ParentWeb: {
444
+ Id: urlInfo.ParentWeb.Id,
445
+ ServerRelativePath: urlInfo.ParentWeb.ServerRelativePath,
446
+ ServerRelativeUrl: urlInfo.ParentWeb.ServerRelativeUrl,
447
+ Url: urlInfo.ParentWeb.Url,
448
+ },
449
+ }];
450
+ }
451
+ });
452
+ });
453
+ };
454
+ __decorate([
455
+ tag("l.update")
456
+ ], _List.prototype, "update", null);
457
+ __decorate([
458
+ tag("l.getChanges")
459
+ ], _List.prototype, "getChanges", null);
460
+ __decorate([
461
+ tag("l.CAMLQuery")
462
+ ], _List.prototype, "getItemsByCAMLQuery", null);
463
+ __decorate([
464
+ tag("l.ChangesSinceToken")
465
+ ], _List.prototype, "getListItemChangesSinceToken", null);
466
+ __decorate([
467
+ tag("l.recycle")
468
+ ], _List.prototype, "recycle", null);
469
+ __decorate([
470
+ tag("l.renderListData")
471
+ ], _List.prototype, "renderListData", null);
472
+ __decorate([
473
+ tag("l.AsStream")
474
+ ], _List.prototype, "renderListDataAsStream", null);
475
+ __decorate([
476
+ tag("l.renderListFormData")
477
+ ], _List.prototype, "renderListFormData", null);
478
+ __decorate([
479
+ tag("l.reserveListItemId")
480
+ ], _List.prototype, "reserveListItemId", null);
481
+ __decorate([
482
+ tag("l.getListItemEntityTypeFullName")
483
+ ], _List.prototype, "getListItemEntityTypeFullName", null);
484
+ __decorate([
485
+ tag("l.addValidateUpdateItemUsingPath")
486
+ ], _List.prototype, "addValidateUpdateItemUsingPath", null);
487
+ return _List;
488
+ }(_SharePointQueryableInstance));
489
+ export { _List };
490
+ export var List = spInvokableFactory(_List);
491
+ /**
492
+ * Enum representing the options of the RenderOptions property on IRenderListDataParameters interface
493
+ */
494
+ export var RenderListDataOptions;
495
+ (function (RenderListDataOptions) {
496
+ RenderListDataOptions[RenderListDataOptions["None"] = 0] = "None";
497
+ RenderListDataOptions[RenderListDataOptions["ContextInfo"] = 1] = "ContextInfo";
498
+ RenderListDataOptions[RenderListDataOptions["ListData"] = 2] = "ListData";
499
+ RenderListDataOptions[RenderListDataOptions["ListSchema"] = 4] = "ListSchema";
500
+ RenderListDataOptions[RenderListDataOptions["MenuView"] = 8] = "MenuView";
501
+ RenderListDataOptions[RenderListDataOptions["ListContentType"] = 16] = "ListContentType";
502
+ RenderListDataOptions[RenderListDataOptions["FileSystemItemId"] = 32] = "FileSystemItemId";
503
+ RenderListDataOptions[RenderListDataOptions["ClientFormSchema"] = 64] = "ClientFormSchema";
504
+ RenderListDataOptions[RenderListDataOptions["QuickLaunch"] = 128] = "QuickLaunch";
505
+ RenderListDataOptions[RenderListDataOptions["Spotlight"] = 256] = "Spotlight";
506
+ RenderListDataOptions[RenderListDataOptions["Visualization"] = 512] = "Visualization";
507
+ RenderListDataOptions[RenderListDataOptions["ViewMetadata"] = 1024] = "ViewMetadata";
508
+ RenderListDataOptions[RenderListDataOptions["DisableAutoHyperlink"] = 2048] = "DisableAutoHyperlink";
509
+ RenderListDataOptions[RenderListDataOptions["EnableMediaTAUrls"] = 4096] = "EnableMediaTAUrls";
510
+ RenderListDataOptions[RenderListDataOptions["ParentInfo"] = 8192] = "ParentInfo";
511
+ RenderListDataOptions[RenderListDataOptions["PageContextInfo"] = 16384] = "PageContextInfo";
512
+ RenderListDataOptions[RenderListDataOptions["ClientSideComponentManifest"] = 32768] = "ClientSideComponentManifest";
513
+ })(RenderListDataOptions || (RenderListDataOptions = {}));
514
+ /**
515
+ * Determines the display mode of the given control or view
516
+ */
517
+ export var ControlMode;
518
+ (function (ControlMode) {
519
+ ControlMode[ControlMode["Display"] = 1] = "Display";
520
+ ControlMode[ControlMode["Edit"] = 2] = "Edit";
521
+ ControlMode[ControlMode["New"] = 3] = "New";
522
+ })(ControlMode || (ControlMode = {}));
523
523
  //# sourceMappingURL=types.js.map