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