@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/items/types.js CHANGED
@@ -1,512 +1,550 @@
1
- import { __awaiter, __decorate, __extends, __generator } from "tslib";
2
- import { SharePointQueryable, _SharePointQueryableInstance, _SharePointQueryableCollection, SharePointQueryableInstance, spInvokableFactory, deleteableWithETag, } from "../sharepointqueryable.js";
3
- import { assign, hOP } from "@pnp/common";
4
- import { List } from "../lists/types.js";
5
- import { ODataParser, body, headers } from "@pnp/odata";
6
- import { Logger } from "@pnp/logging";
7
- import { metadata } from "../utils/metadata.js";
8
- import { defaultPath } from "../decorators.js";
9
- import { spPost } from "../operations.js";
10
- import { tag } from "../telemetry.js";
11
- /**
12
- * Describes a collection of Item objects
13
- *
14
- */
15
- var _Items = /** @class */ (function (_super) {
16
- __extends(_Items, _super);
17
- function _Items() {
18
- return _super !== null && _super.apply(this, arguments) || this;
19
- }
20
- /**
21
- * Gets an Item by id
22
- *
23
- * @param id The integer id of the item to retrieve
24
- */
25
- _Items.prototype.getById = function (id) {
26
- return tag.configure(Item(this).concat("(" + id + ")"), "is.getById");
27
- };
28
- /**
29
- * Gets BCS Item by string id
30
- *
31
- * @param stringId The string id of the BCS item to retrieve
32
- */
33
- _Items.prototype.getItemByStringId = function (stringId) {
34
- // creates an item with the parent list path and append out method call
35
- return tag.configure(Item(this.parentUrl, "getItemByStringId('" + stringId + "')"), "is.getItemByStringId");
36
- };
37
- /**
38
- * Skips the specified number of items (https://msdn.microsoft.com/en-us/library/office/fp142385.aspx#sectionSection6)
39
- *
40
- * @param skip The starting id where the page should start, use with top to specify pages
41
- * @param reverse It true the PagedPrev=true parameter is added allowing backwards navigation in the collection
42
- */
43
- _Items.prototype.skip = function (skip, reverse) {
44
- if (reverse === void 0) { reverse = false; }
45
- if (reverse) {
46
- this.query.set("$skiptoken", encodeURIComponent("Paged=TRUE&PagedPrev=TRUE&p_ID=" + skip));
47
- }
48
- else {
49
- this.query.set("$skiptoken", encodeURIComponent("Paged=TRUE&p_ID=" + skip));
50
- }
51
- return this;
52
- };
53
- /**
54
- * Gets a collection designed to aid in paging through data
55
- *
56
- */
57
- _Items.prototype.getPaged = function () {
58
- return this.usingParser(new PagedItemCollectionParser(this))();
59
- };
60
- /**
61
- * Gets all the items in a list, regardless of count. Does not support batching or caching
62
- *
63
- * @param requestSize Number of items to return in each request (Default: 2000)
64
- * @param acceptHeader Allows for setting the value of the Accept header for SP 2013 support
65
- */
66
- _Items.prototype.getAll = function (requestSize, acceptHeader) {
67
- if (requestSize === void 0) { requestSize = 2000; }
68
- if (acceptHeader === void 0) { acceptHeader = "application/json;odata=nometadata"; }
69
- Logger.write("Calling items.getAll should be done sparingly. Ensure this is the correct choice. If you are unsure, it is not.", 2 /* Warning */);
70
- // this will be used for the actual query
71
- // and we set no metadata here to try and reduce traffic
72
- var items = Items(this, "").top(requestSize).configure({
73
- headers: {
74
- "Accept": acceptHeader,
75
- },
76
- });
77
- // let's copy over the odata query params that can be applied
78
- // $top - allow setting the page size this way (override what we did above)
79
- // $select - allow picking the return fields (good behavior)
80
- // $filter - allow setting a filter, though this may fail due for large lists
81
- this.query.forEach(function (v, k) {
82
- if (/^\$select|filter|top|expand$/i.test(k)) {
83
- items.query.set(k, v);
84
- }
85
- });
86
- // give back the promise
87
- return new Promise(function (resolve, reject) {
88
- // this will eventually hold the items we return
89
- var itemsCollector = [];
90
- // action that will gather up our results recursively
91
- var gatherer = function (last) {
92
- // collect that set of results
93
- [].push.apply(itemsCollector, last.results);
94
- // if we have more, repeat - otherwise resolve with the collected items
95
- if (last.hasNext) {
96
- last.getNext().then(gatherer).catch(reject);
97
- }
98
- else {
99
- resolve(itemsCollector);
100
- }
101
- };
102
- // start the cycle
103
- items.getPaged().then(gatherer).catch(reject);
104
- });
105
- };
106
- /**
107
- * Adds a new item to the collection
108
- *
109
- * @param properties The new items's properties
110
- * @param listItemEntityTypeFullName The type name of the list's entities
111
- */
112
- _Items.prototype.add = function (properties, listItemEntityTypeFullName) {
113
- if (properties === void 0) { properties = {}; }
114
- if (listItemEntityTypeFullName === void 0) { listItemEntityTypeFullName = null; }
115
- return __awaiter(this, void 0, void 0, function () {
116
- var removeDependency, listItemEntityType, postBody, promise;
117
- var _this = this;
118
- return __generator(this, function (_a) {
119
- switch (_a.label) {
120
- case 0:
121
- removeDependency = this.addBatchDependency();
122
- return [4 /*yield*/, this.ensureListItemEntityTypeName(listItemEntityTypeFullName)];
123
- case 1:
124
- listItemEntityType = _a.sent();
125
- postBody = body(assign(metadata(listItemEntityType), properties));
126
- promise = spPost(this.clone(Items, ""), postBody).then(function (data) {
127
- return {
128
- data: data,
129
- item: _this.getById(data.Id),
130
- };
131
- });
132
- removeDependency();
133
- return [2 /*return*/, promise];
134
- }
135
- });
136
- });
137
- };
138
- /**
139
- * Ensures we have the proper list item entity type name, either from the value provided or from the list
140
- *
141
- * @param candidatelistItemEntityTypeFullName The potential type name
142
- */
143
- _Items.prototype.ensureListItemEntityTypeName = function (candidatelistItemEntityTypeFullName) {
144
- return __awaiter(this, void 0, void 0, function () {
145
- return __generator(this, function (_a) {
146
- return [2 /*return*/, candidatelistItemEntityTypeFullName ?
147
- candidatelistItemEntityTypeFullName :
148
- this.getParent(List).getListItemEntityTypeFullName()];
149
- });
150
- });
151
- };
152
- __decorate([
153
- tag("is.getPaged")
154
- ], _Items.prototype, "getPaged", null);
155
- __decorate([
156
- tag("is.getAll")
157
- ], _Items.prototype, "getAll", null);
158
- __decorate([
159
- tag("is.add")
160
- ], _Items.prototype, "add", null);
161
- _Items = __decorate([
162
- defaultPath("items")
163
- ], _Items);
164
- return _Items;
165
- }(_SharePointQueryableCollection));
166
- export { _Items };
167
- export var Items = spInvokableFactory(_Items);
168
- /**
169
- * Descrines a single Item instance
170
- *
171
- */
172
- var _Item = /** @class */ (function (_super) {
173
- __extends(_Item, _super);
174
- function _Item() {
175
- var _this = _super !== null && _super.apply(this, arguments) || this;
176
- _this.delete = deleteableWithETag("i");
177
- return _this;
178
- }
179
- Object.defineProperty(_Item.prototype, "effectiveBasePermissions", {
180
- /**
181
- * Gets the effective base permissions for the item
182
- *
183
- */
184
- get: function () {
185
- return tag.configure(SharePointQueryable(this, "EffectiveBasePermissions"), "i.effectiveBasePermissions");
186
- },
187
- enumerable: false,
188
- configurable: true
189
- });
190
- Object.defineProperty(_Item.prototype, "effectiveBasePermissionsForUI", {
191
- /**
192
- * Gets the effective base permissions for the item in a UI context
193
- *
194
- */
195
- get: function () {
196
- return tag.configure(SharePointQueryable(this, "EffectiveBasePermissionsForUI"), "i.effectiveBasePermissionsForUI");
197
- },
198
- enumerable: false,
199
- configurable: true
200
- });
201
- Object.defineProperty(_Item.prototype, "fieldValuesAsHTML", {
202
- /**
203
- * Gets the field values for this list item in their HTML representation
204
- *
205
- */
206
- get: function () {
207
- return tag.configure(SharePointQueryableInstance(this, "FieldValuesAsHTML"), "i.fvHTML");
208
- },
209
- enumerable: false,
210
- configurable: true
211
- });
212
- Object.defineProperty(_Item.prototype, "fieldValuesAsText", {
213
- /**
214
- * Gets the field values for this list item in their text representation
215
- *
216
- */
217
- get: function () {
218
- return tag.configure(SharePointQueryableInstance(this, "FieldValuesAsText"), "i.fvText");
219
- },
220
- enumerable: false,
221
- configurable: true
222
- });
223
- Object.defineProperty(_Item.prototype, "fieldValuesForEdit", {
224
- /**
225
- * Gets the field values for this list item for use in editing controls
226
- *
227
- */
228
- get: function () {
229
- return tag.configure(SharePointQueryableInstance(this, "FieldValuesForEdit"), "i.fvEdit");
230
- },
231
- enumerable: false,
232
- configurable: true
233
- });
234
- Object.defineProperty(_Item.prototype, "versions", {
235
- /**
236
- * Gets the collection of versions associated with this item
237
- */
238
- get: function () {
239
- return tag.configure(ItemVersions(this), "i.versions");
240
- },
241
- enumerable: false,
242
- configurable: true
243
- });
244
- Object.defineProperty(_Item.prototype, "list", {
245
- get: function () {
246
- return this.getParent(List, this.parentUrl.substr(0, this.parentUrl.lastIndexOf("/")));
247
- },
248
- enumerable: false,
249
- configurable: true
250
- });
251
- /**
252
- * Updates this list instance with the supplied properties
253
- *
254
- * @param properties A plain object hash of values to update for the list
255
- * @param eTag Value used in the IF-Match header, by default "*"
256
- * @param listItemEntityTypeFullName The type name of the list's entities
257
- */
258
- _Item.prototype.update = function (properties, eTag, listItemEntityTypeFullName) {
259
- if (eTag === void 0) { eTag = "*"; }
260
- if (listItemEntityTypeFullName === void 0) { listItemEntityTypeFullName = null; }
261
- return __awaiter(this, void 0, void 0, function () {
262
- var removeDependency, listItemEntityType, postBody, poster, data;
263
- return __generator(this, function (_a) {
264
- switch (_a.label) {
265
- case 0:
266
- removeDependency = this.addBatchDependency();
267
- return [4 /*yield*/, this.ensureListItemEntityTypeName(listItemEntityTypeFullName)];
268
- case 1:
269
- listItemEntityType = _a.sent();
270
- postBody = body(assign(metadata(listItemEntityType), properties), headers({
271
- "IF-Match": eTag,
272
- "X-HTTP-Method": "MERGE",
273
- }));
274
- removeDependency();
275
- poster = tag.configure(this.clone(Item).usingParser(new ItemUpdatedParser()), "i.update");
276
- return [4 /*yield*/, spPost(poster, postBody)];
277
- case 2:
278
- data = _a.sent();
279
- return [2 /*return*/, {
280
- data: data,
281
- item: this,
282
- }];
283
- }
284
- });
285
- });
286
- };
287
- /**
288
- * Moves the list item to the Recycle Bin and returns the identifier of the new Recycle Bin item.
289
- */
290
- _Item.prototype.recycle = function () {
291
- return spPost(this.clone(Item, "recycle"));
292
- };
293
- /**
294
- * Deletes the item object with options.
295
- *
296
- * @param parameters Specifies the options to use when deleting a item.
297
- */
298
- _Item.prototype.deleteWithParams = function (parameters) {
299
- return __awaiter(this, void 0, void 0, function () {
300
- return __generator(this, function (_a) {
301
- return [2 /*return*/, spPost(this.clone(Item, "DeleteWithParameters"), body({ parameters: parameters }))];
302
- });
303
- });
304
- };
305
- /**
306
- * Gets a string representation of the full URL to the WOPI frame.
307
- * If there is no associated WOPI application, or no associated action, an empty string is returned.
308
- *
309
- * @param action Display mode: 0: view, 1: edit, 2: mobileView, 3: interactivePreview
310
- */
311
- _Item.prototype.getWopiFrameUrl = function (action) {
312
- if (action === void 0) { action = 0; }
313
- return __awaiter(this, void 0, void 0, function () {
314
- var i, data;
315
- return __generator(this, function (_a) {
316
- switch (_a.label) {
317
- case 0:
318
- i = this.clone(Item, "getWOPIFrameUrl(@action)");
319
- i.query.set("@action", action);
320
- return [4 /*yield*/, spPost(i)];
321
- case 1:
322
- data = _a.sent();
323
- // handle verbose mode
324
- if (hOP(data, "GetWOPIFrameUrl")) {
325
- return [2 /*return*/, data.GetWOPIFrameUrl];
326
- }
327
- return [2 /*return*/, data];
328
- }
329
- });
330
- });
331
- };
332
- /**
333
- * Validates and sets the values of the specified collection of fields for the list item.
334
- *
335
- * @param formValues The fields to change and their new values.
336
- * @param bNewDocumentUpdate true if the list item is a document being updated after upload; otherwise false.
337
- */
338
- _Item.prototype.validateUpdateListItem = function (formValues, bNewDocumentUpdate) {
339
- if (bNewDocumentUpdate === void 0) { bNewDocumentUpdate = false; }
340
- return spPost(this.clone(Item, "validateupdatelistitem"), body({ formValues: formValues, bNewDocumentUpdate: bNewDocumentUpdate }));
341
- };
342
- /**
343
- * Gets the parent information for this item's list and web
344
- */
345
- _Item.prototype.getParentInfos = function () {
346
- return __awaiter(this, void 0, void 0, function () {
347
- var urlInfo;
348
- return __generator(this, function (_a) {
349
- switch (_a.label) {
350
- case 0: return [4 /*yield*/, this.select("Id", "ParentList/Id", "ParentList/RootFolder/UniqueId", "ParentList/RootFolder/ServerRelativeUrl", "ParentList/RootFolder/ServerRelativePath", "ParentList/ParentWeb/Id", "ParentList/ParentWeb/Url", "ParentList/ParentWeb/ServerRelativeUrl", "ParentList/ParentWeb/ServerRelativePath").expand("ParentList", "ParentList/RootFolder", "ParentList/ParentWeb")()];
351
- case 1:
352
- urlInfo = _a.sent();
353
- return [2 /*return*/, {
354
- Item: {
355
- Id: urlInfo.Id,
356
- },
357
- ParentList: {
358
- Id: urlInfo.ParentList.Id,
359
- RootFolderServerRelativePath: urlInfo.ParentList.RootFolder.ServerRelativePath,
360
- RootFolderServerRelativeUrl: urlInfo.ParentList.RootFolder.ServerRelativeUrl,
361
- RootFolderUniqueId: urlInfo.ParentList.RootFolder.UniqueId,
362
- },
363
- ParentWeb: {
364
- Id: urlInfo.ParentList.ParentWeb.Id,
365
- ServerRelativePath: urlInfo.ParentList.ParentWeb.ServerRelativePath,
366
- ServerRelativeUrl: urlInfo.ParentList.ParentWeb.ServerRelativeUrl,
367
- Url: urlInfo.ParentList.ParentWeb.Url,
368
- },
369
- }];
370
- }
371
- });
372
- });
373
- };
374
- /**
375
- * Ensures we have the proper list item entity type name, either from the value provided or from the list
376
- *
377
- * @param candidatelistItemEntityTypeFullName The potential type name
378
- */
379
- _Item.prototype.ensureListItemEntityTypeName = function (candidatelistItemEntityTypeFullName) {
380
- return __awaiter(this, void 0, void 0, function () {
381
- return __generator(this, function (_a) {
382
- return [2 /*return*/, candidatelistItemEntityTypeFullName ?
383
- candidatelistItemEntityTypeFullName :
384
- this.list.getListItemEntityTypeFullName()];
385
- });
386
- });
387
- };
388
- __decorate([
389
- tag("i.recycle")
390
- ], _Item.prototype, "recycle", null);
391
- __decorate([
392
- tag("i.del-params")
393
- ], _Item.prototype, "deleteWithParams", null);
394
- __decorate([
395
- tag("i.getWopiFrameUrl")
396
- ], _Item.prototype, "getWopiFrameUrl", null);
397
- __decorate([
398
- tag("i.validateUpdateListItem")
399
- ], _Item.prototype, "validateUpdateListItem", null);
400
- return _Item;
401
- }(_SharePointQueryableInstance));
402
- export { _Item };
403
- export var Item = spInvokableFactory(_Item);
404
- /**
405
- * Describes a collection of Version objects
406
- *
407
- */
408
- var _ItemVersions = /** @class */ (function (_super) {
409
- __extends(_ItemVersions, _super);
410
- function _ItemVersions() {
411
- return _super !== null && _super.apply(this, arguments) || this;
412
- }
413
- /**
414
- * Gets a version by id
415
- *
416
- * @param versionId The id of the version to retrieve
417
- */
418
- _ItemVersions.prototype.getById = function (versionId) {
419
- return tag.configure(ItemVersion(this).concat("(" + versionId + ")"), "iv.getById");
420
- };
421
- _ItemVersions = __decorate([
422
- defaultPath("versions")
423
- ], _ItemVersions);
424
- return _ItemVersions;
425
- }(_SharePointQueryableCollection));
426
- export { _ItemVersions };
427
- export var ItemVersions = spInvokableFactory(_ItemVersions);
428
- /**
429
- * Describes a single Version instance
430
- *
431
- */
432
- var _ItemVersion = /** @class */ (function (_super) {
433
- __extends(_ItemVersion, _super);
434
- function _ItemVersion() {
435
- var _this = _super !== null && _super.apply(this, arguments) || this;
436
- _this.delete = deleteableWithETag("iv");
437
- return _this;
438
- }
439
- return _ItemVersion;
440
- }(_SharePointQueryableInstance));
441
- export { _ItemVersion };
442
- export var ItemVersion = spInvokableFactory(_ItemVersion);
443
- /**
444
- * Provides paging functionality for list items
445
- */
446
- var PagedItemCollection = /** @class */ (function () {
447
- function PagedItemCollection(parent, nextUrl, results) {
448
- this.parent = parent;
449
- this.nextUrl = nextUrl;
450
- this.results = results;
451
- }
452
- Object.defineProperty(PagedItemCollection.prototype, "hasNext", {
453
- /**
454
- * If true there are more results available in the set, otherwise there are not
455
- */
456
- get: function () {
457
- return typeof this.nextUrl === "string" && this.nextUrl.length > 0;
458
- },
459
- enumerable: false,
460
- configurable: true
461
- });
462
- /**
463
- * Gets the next set of results, or resolves to null if no results are available
464
- */
465
- PagedItemCollection.prototype.getNext = function () {
466
- if (this.hasNext) {
467
- var items = tag.configure(Items(this.nextUrl, null).configureFrom(this.parent), "ip.getNext");
468
- return items.getPaged();
469
- }
470
- return new Promise(function (r) { return r(null); });
471
- };
472
- return PagedItemCollection;
473
- }());
474
- export { PagedItemCollection };
475
- var PagedItemCollectionParser = /** @class */ (function (_super) {
476
- __extends(PagedItemCollectionParser, _super);
477
- function PagedItemCollectionParser(_parent) {
478
- var _this = _super.call(this) || this;
479
- _this._parent = _parent;
480
- return _this;
481
- }
482
- PagedItemCollectionParser.prototype.parse = function (r) {
483
- var _this = this;
484
- return new Promise(function (resolve, reject) {
485
- if (_this.handleError(r, reject)) {
486
- r.json().then(function (json) {
487
- var nextUrl = hOP(json, "d") && hOP(json.d, "__next") ? json.d.__next : json["odata.nextLink"];
488
- resolve(new PagedItemCollection(_this._parent, nextUrl, _this.parseODataJSON(json)));
489
- });
490
- }
491
- });
492
- };
493
- return PagedItemCollectionParser;
494
- }(ODataParser));
495
- var ItemUpdatedParser = /** @class */ (function (_super) {
496
- __extends(ItemUpdatedParser, _super);
497
- function ItemUpdatedParser() {
498
- return _super !== null && _super.apply(this, arguments) || this;
499
- }
500
- ItemUpdatedParser.prototype.parse = function (r) {
501
- var _this = this;
502
- return new Promise(function (resolve, reject) {
503
- if (_this.handleError(r, reject)) {
504
- resolve({
505
- "odata.etag": r.headers.get("etag"),
506
- });
507
- }
508
- });
509
- };
510
- return ItemUpdatedParser;
511
- }(ODataParser));
1
+ import { __awaiter, __decorate, __extends, __generator } from "tslib";
2
+ import { SharePointQueryable, _SharePointQueryableInstance, _SharePointQueryableCollection, SharePointQueryableInstance, spInvokableFactory, deleteableWithETag, } from "../sharepointqueryable.js";
3
+ import { assign, hOP } from "@pnp/common";
4
+ import { List } from "../lists/types.js";
5
+ import { ODataParser, body, headers } from "@pnp/odata";
6
+ import { Logger } from "@pnp/logging";
7
+ import { metadata } from "../utils/metadata.js";
8
+ import { defaultPath } from "../decorators.js";
9
+ import { spPost } from "../operations.js";
10
+ import { tag } from "../telemetry.js";
11
+ import { extractWebUrl } from "../utils/extractweburl.js";
12
+ import { escapeQueryStrValue } from "../utils/escapeQueryStrValue.js";
13
+ /**
14
+ * Describes a collection of Item objects
15
+ *
16
+ */
17
+ var _Items = /** @class */ (function (_super) {
18
+ __extends(_Items, _super);
19
+ function _Items() {
20
+ return _super !== null && _super.apply(this, arguments) || this;
21
+ }
22
+ /**
23
+ * Gets an Item by id
24
+ *
25
+ * @param id The integer id of the item to retrieve
26
+ */
27
+ _Items.prototype.getById = function (id) {
28
+ return tag.configure(Item(this).concat("(" + id + ")"), "is.getById");
29
+ };
30
+ /**
31
+ * Gets BCS Item by string id
32
+ *
33
+ * @param stringId The string id of the BCS item to retrieve
34
+ */
35
+ _Items.prototype.getItemByStringId = function (stringId) {
36
+ // creates an item with the parent list path and append out method call
37
+ return tag.configure(Item(this.parentUrl, "getItemByStringId('" + stringId + "')"), "is.getItemByStringId");
38
+ };
39
+ /**
40
+ * Skips the specified number of items (https://msdn.microsoft.com/en-us/library/office/fp142385.aspx#sectionSection6)
41
+ *
42
+ * @param skip The starting id where the page should start, use with top to specify pages
43
+ * @param reverse It true the PagedPrev=true parameter is added allowing backwards navigation in the collection
44
+ */
45
+ _Items.prototype.skip = function (skip, reverse) {
46
+ if (reverse === void 0) { reverse = false; }
47
+ if (reverse) {
48
+ this.query.set("$skiptoken", encodeURIComponent("Paged=TRUE&PagedPrev=TRUE&p_ID=" + skip));
49
+ }
50
+ else {
51
+ this.query.set("$skiptoken", encodeURIComponent("Paged=TRUE&p_ID=" + skip));
52
+ }
53
+ return this;
54
+ };
55
+ /**
56
+ * Gets a collection designed to aid in paging through data
57
+ *
58
+ */
59
+ _Items.prototype.getPaged = function () {
60
+ return this.usingParser(new PagedItemCollectionParser(this))();
61
+ };
62
+ /**
63
+ * Gets all the items in a list, regardless of count. Does not support batching or caching
64
+ *
65
+ * @param requestSize Number of items to return in each request (Default: 2000)
66
+ * @param acceptHeader Allows for setting the value of the Accept header for SP 2013 support
67
+ */
68
+ _Items.prototype.getAll = function (requestSize, acceptHeader) {
69
+ if (requestSize === void 0) { requestSize = 2000; }
70
+ if (acceptHeader === void 0) { acceptHeader = "application/json;odata=nometadata"; }
71
+ Logger.write("Calling items.getAll should be done sparingly. Ensure this is the correct choice. If you are unsure, it is not.", 2 /* Warning */);
72
+ // this will be used for the actual query
73
+ // and we set no metadata here to try and reduce traffic
74
+ var items = Items(this, "").top(requestSize).configure({
75
+ headers: {
76
+ "Accept": acceptHeader,
77
+ },
78
+ });
79
+ // let's copy over the odata query params that can be applied
80
+ // $top - allow setting the page size this way (override what we did above)
81
+ // $select - allow picking the return fields (good behavior)
82
+ // $filter - allow setting a filter, though this may fail due for large lists
83
+ this.query.forEach(function (v, k) {
84
+ if (/^\$select|filter|top|expand$/i.test(k)) {
85
+ items.query.set(k, v);
86
+ }
87
+ });
88
+ // give back the promise
89
+ return new Promise(function (resolve, reject) {
90
+ // this will eventually hold the items we return
91
+ var itemsCollector = [];
92
+ // action that will gather up our results recursively
93
+ var gatherer = function (last) {
94
+ // collect that set of results
95
+ [].push.apply(itemsCollector, last.results);
96
+ // if we have more, repeat - otherwise resolve with the collected items
97
+ if (last.hasNext) {
98
+ last.getNext().then(gatherer).catch(reject);
99
+ }
100
+ else {
101
+ resolve(itemsCollector);
102
+ }
103
+ };
104
+ // start the cycle
105
+ items.getPaged().then(gatherer).catch(reject);
106
+ });
107
+ };
108
+ /**
109
+ * Adds a new item to the collection
110
+ *
111
+ * @param properties The new items's properties
112
+ * @param listItemEntityTypeFullName The type name of the list's entities
113
+ */
114
+ _Items.prototype.add = function (properties, listItemEntityTypeFullName) {
115
+ if (properties === void 0) { properties = {}; }
116
+ if (listItemEntityTypeFullName === void 0) { listItemEntityTypeFullName = null; }
117
+ return __awaiter(this, void 0, void 0, function () {
118
+ var removeDependency, listItemEntityType, postBody, promise;
119
+ var _this = this;
120
+ return __generator(this, function (_a) {
121
+ switch (_a.label) {
122
+ case 0:
123
+ removeDependency = this.addBatchDependency();
124
+ return [4 /*yield*/, this.ensureListItemEntityTypeName(listItemEntityTypeFullName)];
125
+ case 1:
126
+ listItemEntityType = _a.sent();
127
+ postBody = body(assign(metadata(listItemEntityType), properties));
128
+ promise = spPost(this.clone(Items, ""), postBody).then(function (data) {
129
+ return {
130
+ data: data,
131
+ item: _this.getById(data.Id),
132
+ };
133
+ });
134
+ removeDependency();
135
+ return [2 /*return*/, promise];
136
+ }
137
+ });
138
+ });
139
+ };
140
+ /**
141
+ * Ensures we have the proper list item entity type name, either from the value provided or from the list
142
+ *
143
+ * @param candidatelistItemEntityTypeFullName The potential type name
144
+ */
145
+ _Items.prototype.ensureListItemEntityTypeName = function (candidatelistItemEntityTypeFullName) {
146
+ return __awaiter(this, void 0, void 0, function () {
147
+ return __generator(this, function (_a) {
148
+ return [2 /*return*/, candidatelistItemEntityTypeFullName ?
149
+ candidatelistItemEntityTypeFullName :
150
+ this.getParent(List).getListItemEntityTypeFullName()];
151
+ });
152
+ });
153
+ };
154
+ __decorate([
155
+ tag("is.getPaged")
156
+ ], _Items.prototype, "getPaged", null);
157
+ __decorate([
158
+ tag("is.getAll")
159
+ ], _Items.prototype, "getAll", null);
160
+ __decorate([
161
+ tag("is.add")
162
+ ], _Items.prototype, "add", null);
163
+ _Items = __decorate([
164
+ defaultPath("items")
165
+ ], _Items);
166
+ return _Items;
167
+ }(_SharePointQueryableCollection));
168
+ export { _Items };
169
+ export var Items = spInvokableFactory(_Items);
170
+ /**
171
+ * Descrines a single Item instance
172
+ *
173
+ */
174
+ var _Item = /** @class */ (function (_super) {
175
+ __extends(_Item, _super);
176
+ function _Item() {
177
+ var _this = _super !== null && _super.apply(this, arguments) || this;
178
+ _this.delete = deleteableWithETag("i");
179
+ return _this;
180
+ }
181
+ Object.defineProperty(_Item.prototype, "effectiveBasePermissions", {
182
+ /**
183
+ * Gets the effective base permissions for the item
184
+ *
185
+ */
186
+ get: function () {
187
+ return tag.configure(SharePointQueryable(this, "EffectiveBasePermissions"), "i.effectiveBasePermissions");
188
+ },
189
+ enumerable: false,
190
+ configurable: true
191
+ });
192
+ Object.defineProperty(_Item.prototype, "effectiveBasePermissionsForUI", {
193
+ /**
194
+ * Gets the effective base permissions for the item in a UI context
195
+ *
196
+ */
197
+ get: function () {
198
+ return tag.configure(SharePointQueryable(this, "EffectiveBasePermissionsForUI"), "i.effectiveBasePermissionsForUI");
199
+ },
200
+ enumerable: false,
201
+ configurable: true
202
+ });
203
+ Object.defineProperty(_Item.prototype, "fieldValuesAsHTML", {
204
+ /**
205
+ * Gets the field values for this list item in their HTML representation
206
+ *
207
+ */
208
+ get: function () {
209
+ return tag.configure(SharePointQueryableInstance(this, "FieldValuesAsHTML"), "i.fvHTML");
210
+ },
211
+ enumerable: false,
212
+ configurable: true
213
+ });
214
+ Object.defineProperty(_Item.prototype, "fieldValuesAsText", {
215
+ /**
216
+ * Gets the field values for this list item in their text representation
217
+ *
218
+ */
219
+ get: function () {
220
+ return tag.configure(SharePointQueryableInstance(this, "FieldValuesAsText"), "i.fvText");
221
+ },
222
+ enumerable: false,
223
+ configurable: true
224
+ });
225
+ Object.defineProperty(_Item.prototype, "fieldValuesForEdit", {
226
+ /**
227
+ * Gets the field values for this list item for use in editing controls
228
+ *
229
+ */
230
+ get: function () {
231
+ return tag.configure(SharePointQueryableInstance(this, "FieldValuesForEdit"), "i.fvEdit");
232
+ },
233
+ enumerable: false,
234
+ configurable: true
235
+ });
236
+ Object.defineProperty(_Item.prototype, "versions", {
237
+ /**
238
+ * Gets the collection of versions associated with this item
239
+ */
240
+ get: function () {
241
+ return tag.configure(ItemVersions(this), "i.versions");
242
+ },
243
+ enumerable: false,
244
+ configurable: true
245
+ });
246
+ Object.defineProperty(_Item.prototype, "list", {
247
+ get: function () {
248
+ return this.getParent(List, this.parentUrl.substr(0, this.parentUrl.lastIndexOf("/")));
249
+ },
250
+ enumerable: false,
251
+ configurable: true
252
+ });
253
+ /**
254
+ * Updates this list instance with the supplied properties
255
+ *
256
+ * @param properties A plain object hash of values to update for the list
257
+ * @param eTag Value used in the IF-Match header, by default "*"
258
+ * @param listItemEntityTypeFullName The type name of the list's entities
259
+ */
260
+ _Item.prototype.update = function (properties, eTag, listItemEntityTypeFullName) {
261
+ if (eTag === void 0) { eTag = "*"; }
262
+ if (listItemEntityTypeFullName === void 0) { listItemEntityTypeFullName = null; }
263
+ return __awaiter(this, void 0, void 0, function () {
264
+ var removeDependency, listItemEntityType, postBody, poster, data;
265
+ return __generator(this, function (_a) {
266
+ switch (_a.label) {
267
+ case 0:
268
+ removeDependency = this.addBatchDependency();
269
+ return [4 /*yield*/, this.ensureListItemEntityTypeName(listItemEntityTypeFullName)];
270
+ case 1:
271
+ listItemEntityType = _a.sent();
272
+ postBody = body(assign(metadata(listItemEntityType), properties), headers({
273
+ "IF-Match": eTag,
274
+ "X-HTTP-Method": "MERGE",
275
+ }));
276
+ removeDependency();
277
+ poster = tag.configure(this.clone(Item).usingParser(new ItemUpdatedParser()), "i.update");
278
+ return [4 /*yield*/, spPost(poster, postBody)];
279
+ case 2:
280
+ data = _a.sent();
281
+ return [2 /*return*/, {
282
+ data: data,
283
+ item: this,
284
+ }];
285
+ }
286
+ });
287
+ });
288
+ };
289
+ /**
290
+ * Moves the list item to the Recycle Bin and returns the identifier of the new Recycle Bin item.
291
+ */
292
+ _Item.prototype.recycle = function () {
293
+ return spPost(this.clone(Item, "recycle"));
294
+ };
295
+ /**
296
+ * Deletes the item object with options.
297
+ *
298
+ * @param parameters Specifies the options to use when deleting a item.
299
+ */
300
+ _Item.prototype.deleteWithParams = function (parameters) {
301
+ return __awaiter(this, void 0, void 0, function () {
302
+ return __generator(this, function (_a) {
303
+ return [2 /*return*/, spPost(this.clone(Item, "DeleteWithParameters"), body({ parameters: parameters }))];
304
+ });
305
+ });
306
+ };
307
+ /**
308
+ * Gets a string representation of the full URL to the WOPI frame.
309
+ * If there is no associated WOPI application, or no associated action, an empty string is returned.
310
+ *
311
+ * @param action Display mode: 0: view, 1: edit, 2: mobileView, 3: interactivePreview
312
+ */
313
+ _Item.prototype.getWopiFrameUrl = function (action) {
314
+ if (action === void 0) { action = 0; }
315
+ return __awaiter(this, void 0, void 0, function () {
316
+ var i, data;
317
+ return __generator(this, function (_a) {
318
+ switch (_a.label) {
319
+ case 0:
320
+ i = this.clone(Item, "getWOPIFrameUrl(@action)");
321
+ i.query.set("@action", action);
322
+ return [4 /*yield*/, spPost(i)];
323
+ case 1:
324
+ data = _a.sent();
325
+ // handle verbose mode
326
+ if (hOP(data, "GetWOPIFrameUrl")) {
327
+ return [2 /*return*/, data.GetWOPIFrameUrl];
328
+ }
329
+ return [2 /*return*/, data];
330
+ }
331
+ });
332
+ });
333
+ };
334
+ /**
335
+ * Validates and sets the values of the specified collection of fields for the list item.
336
+ *
337
+ * @param formValues The fields to change and their new values.
338
+ * @param bNewDocumentUpdate true if the list item is a document being updated after upload; otherwise false.
339
+ */
340
+ _Item.prototype.validateUpdateListItem = function (formValues, bNewDocumentUpdate) {
341
+ if (bNewDocumentUpdate === void 0) { bNewDocumentUpdate = false; }
342
+ return spPost(this.clone(Item, "validateupdatelistitem"), body({ formValues: formValues, bNewDocumentUpdate: bNewDocumentUpdate }));
343
+ };
344
+ /**
345
+ * Gets the parent information for this item's list and web
346
+ */
347
+ _Item.prototype.getParentInfos = function () {
348
+ return __awaiter(this, void 0, void 0, function () {
349
+ var urlInfo;
350
+ return __generator(this, function (_a) {
351
+ switch (_a.label) {
352
+ case 0: return [4 /*yield*/, this.select("Id", "ParentList/Id", "ParentList/Title", "ParentList/RootFolder/UniqueId", "ParentList/RootFolder/ServerRelativeUrl", "ParentList/RootFolder/ServerRelativePath", "ParentList/ParentWeb/Id", "ParentList/ParentWeb/Url", "ParentList/ParentWeb/ServerRelativeUrl", "ParentList/ParentWeb/ServerRelativePath").expand("ParentList", "ParentList/RootFolder", "ParentList/ParentWeb")()];
353
+ case 1:
354
+ urlInfo = _a.sent();
355
+ return [2 /*return*/, {
356
+ Item: {
357
+ Id: urlInfo.Id,
358
+ },
359
+ ParentList: {
360
+ Id: urlInfo.ParentList.Id,
361
+ Title: urlInfo.ParentList.Title,
362
+ RootFolderServerRelativePath: urlInfo.ParentList.RootFolder.ServerRelativePath,
363
+ RootFolderServerRelativeUrl: urlInfo.ParentList.RootFolder.ServerRelativeUrl,
364
+ RootFolderUniqueId: urlInfo.ParentList.RootFolder.UniqueId,
365
+ },
366
+ ParentWeb: {
367
+ Id: urlInfo.ParentList.ParentWeb.Id,
368
+ ServerRelativePath: urlInfo.ParentList.ParentWeb.ServerRelativePath,
369
+ ServerRelativeUrl: urlInfo.ParentList.ParentWeb.ServerRelativeUrl,
370
+ Url: urlInfo.ParentList.ParentWeb.Url,
371
+ },
372
+ }];
373
+ }
374
+ });
375
+ });
376
+ };
377
+ _Item.prototype.setImageField = function (fieldName, imageName, imageContent) {
378
+ return __awaiter(this, void 0, void 0, function () {
379
+ var contextInfo, webUrl, q, result, itemInfo;
380
+ return __generator(this, function (_a) {
381
+ switch (_a.label) {
382
+ case 0: return [4 /*yield*/, this.getParentInfos()];
383
+ case 1:
384
+ contextInfo = _a.sent();
385
+ webUrl = extractWebUrl(this.toUrl());
386
+ q = SharePointQueryable(webUrl, "/_api/web/UploadImage");
387
+ q.concat("(listTitle=@a1,imageName=@a2,listId=@a3,itemId=@a4)");
388
+ q.query.set("@a1", "'" + escapeQueryStrValue(contextInfo.ParentList.Title) + "'");
389
+ q.query.set("@a2", "'" + escapeQueryStrValue(imageName) + "'");
390
+ q.query.set("@a3", "'" + escapeQueryStrValue(contextInfo.ParentList.Id) + "'");
391
+ q.query.set("@a4", contextInfo.Item.Id);
392
+ return [4 /*yield*/, spPost(q, { body: imageContent })];
393
+ case 2:
394
+ result = _a.sent();
395
+ itemInfo = {
396
+ "type": "thumbnail",
397
+ "fileName": result.Name,
398
+ "nativeFile": {},
399
+ "fieldName": fieldName,
400
+ "serverUrl": contextInfo.ParentWeb.Url.replace(contextInfo.ParentWeb.ServerRelativeUrl, ""),
401
+ "serverRelativeUrl": result.ServerRelativeUrl,
402
+ "id": result.UniqueId,
403
+ };
404
+ return [2 /*return*/, this.validateUpdateListItem([{
405
+ FieldName: fieldName,
406
+ FieldValue: JSON.stringify(itemInfo),
407
+ }])];
408
+ }
409
+ });
410
+ });
411
+ };
412
+ /**
413
+ * Ensures we have the proper list item entity type name, either from the value provided or from the list
414
+ *
415
+ * @param candidatelistItemEntityTypeFullName The potential type name
416
+ */
417
+ _Item.prototype.ensureListItemEntityTypeName = function (candidatelistItemEntityTypeFullName) {
418
+ return __awaiter(this, void 0, void 0, function () {
419
+ return __generator(this, function (_a) {
420
+ return [2 /*return*/, candidatelistItemEntityTypeFullName ?
421
+ candidatelistItemEntityTypeFullName :
422
+ this.list.getListItemEntityTypeFullName()];
423
+ });
424
+ });
425
+ };
426
+ __decorate([
427
+ tag("i.recycle")
428
+ ], _Item.prototype, "recycle", null);
429
+ __decorate([
430
+ tag("i.del-params")
431
+ ], _Item.prototype, "deleteWithParams", null);
432
+ __decorate([
433
+ tag("i.getWopiFrameUrl")
434
+ ], _Item.prototype, "getWopiFrameUrl", null);
435
+ __decorate([
436
+ tag("i.validateUpdateListItem")
437
+ ], _Item.prototype, "validateUpdateListItem", null);
438
+ return _Item;
439
+ }(_SharePointQueryableInstance));
440
+ export { _Item };
441
+ export var Item = spInvokableFactory(_Item);
442
+ /**
443
+ * Describes a collection of Version objects
444
+ *
445
+ */
446
+ var _ItemVersions = /** @class */ (function (_super) {
447
+ __extends(_ItemVersions, _super);
448
+ function _ItemVersions() {
449
+ return _super !== null && _super.apply(this, arguments) || this;
450
+ }
451
+ /**
452
+ * Gets a version by id
453
+ *
454
+ * @param versionId The id of the version to retrieve
455
+ */
456
+ _ItemVersions.prototype.getById = function (versionId) {
457
+ return tag.configure(ItemVersion(this).concat("(" + versionId + ")"), "iv.getById");
458
+ };
459
+ _ItemVersions = __decorate([
460
+ defaultPath("versions")
461
+ ], _ItemVersions);
462
+ return _ItemVersions;
463
+ }(_SharePointQueryableCollection));
464
+ export { _ItemVersions };
465
+ export var ItemVersions = spInvokableFactory(_ItemVersions);
466
+ /**
467
+ * Describes a single Version instance
468
+ *
469
+ */
470
+ var _ItemVersion = /** @class */ (function (_super) {
471
+ __extends(_ItemVersion, _super);
472
+ function _ItemVersion() {
473
+ var _this = _super !== null && _super.apply(this, arguments) || this;
474
+ _this.delete = deleteableWithETag("iv");
475
+ return _this;
476
+ }
477
+ return _ItemVersion;
478
+ }(_SharePointQueryableInstance));
479
+ export { _ItemVersion };
480
+ export var ItemVersion = spInvokableFactory(_ItemVersion);
481
+ /**
482
+ * Provides paging functionality for list items
483
+ */
484
+ var PagedItemCollection = /** @class */ (function () {
485
+ function PagedItemCollection(parent, nextUrl, results) {
486
+ this.parent = parent;
487
+ this.nextUrl = nextUrl;
488
+ this.results = results;
489
+ }
490
+ Object.defineProperty(PagedItemCollection.prototype, "hasNext", {
491
+ /**
492
+ * If true there are more results available in the set, otherwise there are not
493
+ */
494
+ get: function () {
495
+ return typeof this.nextUrl === "string" && this.nextUrl.length > 0;
496
+ },
497
+ enumerable: false,
498
+ configurable: true
499
+ });
500
+ /**
501
+ * Gets the next set of results, or resolves to null if no results are available
502
+ */
503
+ PagedItemCollection.prototype.getNext = function () {
504
+ if (this.hasNext) {
505
+ var items = tag.configure(Items(this.nextUrl, null).configureFrom(this.parent), "ip.getNext");
506
+ return items.getPaged();
507
+ }
508
+ return new Promise(function (r) { return r(null); });
509
+ };
510
+ return PagedItemCollection;
511
+ }());
512
+ export { PagedItemCollection };
513
+ var PagedItemCollectionParser = /** @class */ (function (_super) {
514
+ __extends(PagedItemCollectionParser, _super);
515
+ function PagedItemCollectionParser(_parent) {
516
+ var _this = _super.call(this) || this;
517
+ _this._parent = _parent;
518
+ return _this;
519
+ }
520
+ PagedItemCollectionParser.prototype.parse = function (r) {
521
+ var _this = this;
522
+ return new Promise(function (resolve, reject) {
523
+ if (_this.handleError(r, reject)) {
524
+ r.json().then(function (json) {
525
+ var nextUrl = hOP(json, "d") && hOP(json.d, "__next") ? json.d.__next : json["odata.nextLink"];
526
+ resolve(new PagedItemCollection(_this._parent, nextUrl, _this.parseODataJSON(json)));
527
+ });
528
+ }
529
+ });
530
+ };
531
+ return PagedItemCollectionParser;
532
+ }(ODataParser));
533
+ var ItemUpdatedParser = /** @class */ (function (_super) {
534
+ __extends(ItemUpdatedParser, _super);
535
+ function ItemUpdatedParser() {
536
+ return _super !== null && _super.apply(this, arguments) || this;
537
+ }
538
+ ItemUpdatedParser.prototype.parse = function (r) {
539
+ var _this = this;
540
+ return new Promise(function (resolve, reject) {
541
+ if (_this.handleError(r, reject)) {
542
+ resolve({
543
+ "odata.etag": r.headers.get("etag"),
544
+ });
545
+ }
546
+ });
547
+ };
548
+ return ItemUpdatedParser;
549
+ }(ODataParser));
512
550
  //# sourceMappingURL=types.js.map