@pnp/sp 2.10.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 (294) 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/clientside-pages/funcs.d.ts +22 -22
  17. package/clientside-pages/funcs.js +25 -25
  18. package/clientside-pages/index.d.ts +2 -2
  19. package/clientside-pages/index.js +2 -2
  20. package/clientside-pages/types.d.ts +496 -496
  21. package/clientside-pages/types.js +1496 -1496
  22. package/clientside-pages/web.d.ts +41 -41
  23. package/clientside-pages/web.js +57 -57
  24. package/column-defaults/folder.d.ts +27 -27
  25. package/column-defaults/folder.js +82 -82
  26. package/column-defaults/index.d.ts +3 -3
  27. package/column-defaults/index.js +2 -2
  28. package/column-defaults/list.d.ts +19 -19
  29. package/column-defaults/list.js +198 -198
  30. package/column-defaults/types.d.ts +21 -21
  31. package/column-defaults/types.js +1 -1
  32. package/comments/clientside-page.d.ts +57 -57
  33. package/comments/clientside-page.d.ts.map +1 -1
  34. package/comments/clientside-page.js +136 -136
  35. package/comments/index.d.ts +2 -2
  36. package/comments/index.js +2 -2
  37. package/comments/item.d.ts +29 -29
  38. package/comments/item.js +47 -47
  39. package/comments/types.d.ts +107 -107
  40. package/comments/types.d.ts.map +1 -1
  41. package/comments/types.js +145 -145
  42. package/comments/types.js.map +1 -1
  43. package/content-types/index.d.ts +4 -4
  44. package/content-types/index.js +4 -4
  45. package/content-types/item.d.ts +12 -12
  46. package/content-types/item.js +4 -4
  47. package/content-types/list.d.ts +12 -12
  48. package/content-types/list.js +4 -4
  49. package/content-types/types.d.ts +107 -107
  50. package/content-types/types.js +166 -166
  51. package/content-types/web.d.ts +12 -12
  52. package/content-types/web.js +4 -4
  53. package/decorators.d.ts +11 -11
  54. package/decorators.js +28 -28
  55. package/features/index.d.ts +3 -3
  56. package/features/index.js +3 -3
  57. package/features/site.d.ts +12 -12
  58. package/features/site.js +4 -4
  59. package/features/types.d.ts +47 -47
  60. package/features/types.js +109 -109
  61. package/features/web.d.ts +12 -12
  62. package/features/web.js +4 -4
  63. package/fields/index.d.ts +4 -4
  64. package/fields/index.js +4 -4
  65. package/fields/list.d.ts +12 -12
  66. package/fields/list.js +4 -4
  67. package/fields/types.d.ts +368 -368
  68. package/fields/types.js +624 -624
  69. package/fields/web.d.ts +17 -17
  70. package/fields/web.js +5 -5
  71. package/files/folder.d.ts +12 -12
  72. package/files/folder.js +4 -4
  73. package/files/index.d.ts +4 -4
  74. package/files/index.js +4 -4
  75. package/files/item.d.ts +12 -12
  76. package/files/item.js +4 -4
  77. package/files/types.d.ts +421 -421
  78. package/files/types.js +853 -853
  79. package/files/web.d.ts +35 -35
  80. package/files/web.js +15 -15
  81. package/folders/index.d.ts +4 -4
  82. package/folders/index.js +4 -4
  83. package/folders/item.d.ts +9 -9
  84. package/folders/item.js +4 -4
  85. package/folders/list.d.ts +12 -12
  86. package/folders/list.js +4 -4
  87. package/folders/types.d.ts +207 -207
  88. package/folders/types.js +433 -433
  89. package/folders/web.d.ts +39 -39
  90. package/folders/web.js +15 -15
  91. package/forms/index.d.ts +2 -2
  92. package/forms/index.js +2 -2
  93. package/forms/list.d.ts +9 -9
  94. package/forms/list.js +4 -4
  95. package/forms/types.d.ts +35 -35
  96. package/forms/types.js +41 -41
  97. package/hubsites/index.d.ts +12 -12
  98. package/hubsites/index.js +15 -15
  99. package/hubsites/site.d.ts +26 -26
  100. package/hubsites/site.js +39 -39
  101. package/hubsites/types.d.ts +55 -55
  102. package/hubsites/types.js +53 -53
  103. package/hubsites/web.d.ts +21 -21
  104. package/hubsites/web.js +23 -23
  105. package/index.d.ts +14 -14
  106. package/index.js +13 -13
  107. package/items/index.d.ts +2 -2
  108. package/items/index.js +2 -2
  109. package/items/list.d.ts +9 -9
  110. package/items/list.js +4 -4
  111. package/items/types.d.ts +226 -226
  112. package/items/types.js +549 -549
  113. package/lists/index.d.ts +2 -2
  114. package/lists/index.js +2 -2
  115. package/lists/types.d.ts +495 -495
  116. package/lists/types.js +522 -522
  117. package/lists/web.d.ts +43 -43
  118. package/lists/web.js +27 -27
  119. package/navigation/index.d.ts +8 -8
  120. package/navigation/index.js +14 -14
  121. package/navigation/types.d.ts +154 -154
  122. package/navigation/types.js +219 -219
  123. package/navigation/web.d.ts +13 -13
  124. package/navigation/web.js +4 -4
  125. package/odata.d.ts +5 -5
  126. package/odata.js +90 -90
  127. package/operations.d.ts +9 -9
  128. package/operations.js +63 -63
  129. package/package.json +4 -4
  130. package/presets/all.d.ts +72 -72
  131. package/presets/all.js +72 -72
  132. package/presets/core.d.ts +11 -11
  133. package/presets/core.js +11 -11
  134. package/profiles/index.d.ts +7 -7
  135. package/profiles/index.js +13 -13
  136. package/profiles/types.d.ts +357 -357
  137. package/profiles/types.js +454 -454
  138. package/readme.md +21 -21
  139. package/regional-settings/content-type.d.ts +7 -7
  140. package/regional-settings/content-type.js +4 -4
  141. package/regional-settings/field.d.ts +7 -7
  142. package/regional-settings/field.js +4 -4
  143. package/regional-settings/funcs.d.ts +2 -2
  144. package/regional-settings/funcs.js +8 -8
  145. package/regional-settings/index.d.ts +6 -6
  146. package/regional-settings/index.js +6 -6
  147. package/regional-settings/list.d.ts +7 -7
  148. package/regional-settings/list.js +4 -4
  149. package/regional-settings/types.d.ts +111 -111
  150. package/regional-settings/types.js +159 -159
  151. package/regional-settings/user-custom-actions.d.ts +7 -7
  152. package/regional-settings/user-custom-actions.js +4 -4
  153. package/regional-settings/web.d.ts +12 -12
  154. package/regional-settings/web.js +7 -7
  155. package/related-items/index.d.ts +1 -1
  156. package/related-items/index.js +1 -1
  157. package/related-items/types.d.ts +76 -76
  158. package/related-items/types.js +103 -103
  159. package/related-items/web.d.ts +12 -12
  160. package/related-items/web.js +9 -9
  161. package/rest.d.ts +44 -44
  162. package/rest.js +72 -72
  163. package/search/index.d.ts +30 -30
  164. package/search/index.js +25 -25
  165. package/search/query.d.ts +62 -62
  166. package/search/query.js +302 -302
  167. package/search/suggest.d.ts +76 -76
  168. package/search/suggest.js +66 -66
  169. package/search/types.d.ts +426 -426
  170. package/search/types.js +57 -57
  171. package/security/funcs.d.ts +43 -43
  172. package/security/funcs.js +142 -142
  173. package/security/index.d.ts +4 -4
  174. package/security/index.js +4 -4
  175. package/security/item.d.ts +7 -7
  176. package/security/item.js +14 -14
  177. package/security/list.d.ts +7 -7
  178. package/security/list.js +14 -14
  179. package/security/types.d.ts +318 -318
  180. package/security/types.js +399 -399
  181. package/security/web.d.ts +9 -9
  182. package/security/web.js +15 -15
  183. package/sharepointqueryable.d.ts +135 -135
  184. package/sharepointqueryable.js +265 -265
  185. package/sharing/file.d.ts +18 -18
  186. package/sharing/file.js +116 -116
  187. package/sharing/folder.d.ts +9 -9
  188. package/sharing/folder.js +136 -136
  189. package/sharing/funcs.d.ts +62 -62
  190. package/sharing/funcs.js +239 -239
  191. package/sharing/index.d.ts +5 -5
  192. package/sharing/index.js +5 -5
  193. package/sharing/item.d.ts +16 -16
  194. package/sharing/item.js +15 -15
  195. package/sharing/types.d.ts +583 -583
  196. package/sharing/types.js +113 -113
  197. package/sharing/web.d.ts +19 -19
  198. package/sharing/web.js +76 -76
  199. package/site-designs/index.d.ts +8 -8
  200. package/site-designs/index.js +14 -14
  201. package/site-designs/types.d.ts +319 -319
  202. package/site-designs/types.js +203 -203
  203. package/site-designs/web.d.ts +25 -25
  204. package/site-designs/web.js +11 -11
  205. package/site-groups/index.d.ts +2 -2
  206. package/site-groups/index.js +2 -2
  207. package/site-groups/types.d.ts +89 -89
  208. package/site-groups/types.js +125 -125
  209. package/site-groups/web.d.ts +40 -40
  210. package/site-groups/web.js +30 -30
  211. package/site-scripts/index.d.ts +9 -9
  212. package/site-scripts/index.js +15 -15
  213. package/site-scripts/list.d.ts +12 -12
  214. package/site-scripts/list.js +24 -24
  215. package/site-scripts/types.d.ts +183 -183
  216. package/site-scripts/types.js +141 -141
  217. package/site-scripts/web.d.ts +13 -13
  218. package/site-scripts/web.js +5 -5
  219. package/site-users/index.d.ts +2 -2
  220. package/site-users/index.js +2 -2
  221. package/site-users/types.d.ts +138 -138
  222. package/site-users/types.js +122 -122
  223. package/site-users/web.d.ts +31 -31
  224. package/site-users/web.js +27 -27
  225. package/sites/index.d.ts +7 -7
  226. package/sites/index.js +13 -13
  227. package/sites/types.d.ts +147 -147
  228. package/sites/types.js +321 -321
  229. package/social/index.d.ts +10 -10
  230. package/social/index.js +13 -13
  231. package/social/types.d.ts +309 -309
  232. package/social/types.js +322 -322
  233. package/sphttpclient.d.ts +18 -18
  234. package/sphttpclient.js +189 -189
  235. package/splibconfig.d.ts +22 -22
  236. package/splibconfig.js +13 -13
  237. package/sputilities/index.d.ts +7 -7
  238. package/sputilities/index.js +13 -13
  239. package/sputilities/types.d.ts +130 -130
  240. package/sputilities/types.js +118 -118
  241. package/subscriptions/index.d.ts +2 -2
  242. package/subscriptions/index.js +2 -2
  243. package/subscriptions/list.d.ts +13 -13
  244. package/subscriptions/list.js +4 -4
  245. package/subscriptions/types.d.ts +54 -54
  246. package/subscriptions/types.js +111 -111
  247. package/taxonomy/index.d.ts +7 -7
  248. package/taxonomy/index.js +13 -13
  249. package/taxonomy/types.d.ts +200 -200
  250. package/taxonomy/types.js +347 -347
  251. package/telemetry.d.ts +12 -12
  252. package/telemetry.js +48 -48
  253. package/types.d.ts +218 -218
  254. package/types.js +79 -79
  255. package/user-custom-actions/index.d.ts +4 -4
  256. package/user-custom-actions/index.js +4 -4
  257. package/user-custom-actions/list.d.ts +12 -12
  258. package/user-custom-actions/list.js +4 -4
  259. package/user-custom-actions/site.d.ts +12 -12
  260. package/user-custom-actions/site.js +4 -4
  261. package/user-custom-actions/types.d.ts +82 -82
  262. package/user-custom-actions/types.js +93 -93
  263. package/user-custom-actions/web.d.ts +15 -15
  264. package/user-custom-actions/web.js +4 -4
  265. package/utils/escapeQueryStrValue.d.ts +1 -1
  266. package/utils/escapeQueryStrValue.js +19 -19
  267. package/utils/extractweburl.d.ts +1 -1
  268. package/utils/extractweburl.js +15 -15
  269. package/utils/file-names.d.ts +17 -17
  270. package/utils/file-names.js +38 -38
  271. package/utils/metadata.d.ts +5 -5
  272. package/utils/metadata.js +5 -5
  273. package/utils/objectToSPKeyValueCollection.d.ts +20 -20
  274. package/utils/objectToSPKeyValueCollection.js +16 -16
  275. package/utils/toResourcePath.d.ts +7 -7
  276. package/utils/toResourcePath.js +6 -6
  277. package/utils/toabsoluteurl.d.ts +7 -7
  278. package/utils/toabsoluteurl.js +61 -61
  279. package/views/index.d.ts +2 -2
  280. package/views/index.js +2 -2
  281. package/views/list.d.ts +23 -23
  282. package/views/list.js +8 -8
  283. package/views/types.d.ts +140 -140
  284. package/views/types.js +184 -184
  285. package/webparts/file.d.ts +15 -15
  286. package/webparts/file.js +6 -6
  287. package/webparts/index.d.ts +2 -2
  288. package/webparts/index.js +2 -2
  289. package/webparts/types.d.ts +83 -83
  290. package/webparts/types.js +117 -117
  291. package/webs/index.d.ts +16 -16
  292. package/webs/index.js +16 -16
  293. package/webs/types.d.ts +210 -210
  294. 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), 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 = {}));
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