jitz-sharepoint-utilities 1.11.2 → 2.0.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 (94) hide show
  1. package/@types/allTypes.d.ts +1 -0
  2. package/controls/JitzGrid.tsx +639 -0
  3. package/controls/JitzImage.tsx +38 -0
  4. package/controls/JitzPeoplePicker.tsx +419 -0
  5. package/controls/JitzPersonInfo.tsx +114 -0
  6. package/controls/JitzPersona.tsx +53 -0
  7. package/data/context/CommonRepository.ts +287 -0
  8. package/data/context/JitzContext.ts +33 -0
  9. package/data/context/JitzSPContext.ts +16 -0
  10. package/data/context/JitzSPHttpClient.ts +133 -0
  11. package/data/context/List.ts +415 -0
  12. package/data/context/Repository.ts +395 -0
  13. package/data/interfaces/ICommonRepository.ts +7 -0
  14. package/data/interfaces/IJitzContext.ts +11 -0
  15. package/data/interfaces/IJitzSPContext.ts +7 -0
  16. package/data/interfaces/IJitzSPHttpClient.ts +6 -0
  17. package/data/interfaces/IList.ts +41 -0
  18. package/data/interfaces/IModels.ts +33 -0
  19. package/data/interfaces/IRepository.ts +31 -0
  20. package/lib/common/IModels.d.ts +9 -1
  21. package/lib/common/IObjects.d.ts +72 -0
  22. package/lib/common/IObjects.js +30 -0
  23. package/lib/controls/JitzGrid.d.ts +75 -0
  24. package/lib/controls/JitzGrid.js +606 -0
  25. package/lib/controls/JitzImage.d.ts +14 -0
  26. package/lib/controls/JitzImage.js +37 -0
  27. package/lib/controls/JitzPeoplePicker.d.ts +49 -0
  28. package/lib/controls/JitzPeoplePicker.js +311 -0
  29. package/lib/controls/JitzPersonInfo.d.ts +32 -0
  30. package/lib/controls/JitzPersonInfo.js +98 -0
  31. package/lib/controls/JitzPersona.d.ts +23 -0
  32. package/lib/controls/JitzPersona.js +48 -0
  33. package/lib/data/Activities.d.ts +6 -0
  34. package/lib/data/Activities.js +36 -0
  35. package/lib/data/Attachments.d.ts +6 -0
  36. package/lib/data/Attachments.js +30 -0
  37. package/lib/data/Configurations.d.ts +6 -0
  38. package/lib/data/Configurations.js +30 -0
  39. package/lib/data/CustomStylesheet.d.ts +6 -0
  40. package/lib/data/CustomStylesheet.js +30 -0
  41. package/lib/data/EmailTemplates.d.ts +6 -0
  42. package/lib/data/EmailTemplates.js +31 -0
  43. package/lib/data/FAQs.d.ts +6 -0
  44. package/lib/data/FAQs.js +30 -0
  45. package/lib/data/HomePageTexts.d.ts +6 -0
  46. package/lib/data/HomePageTexts.js +30 -0
  47. package/lib/data/TicketCategories.d.ts +6 -0
  48. package/lib/data/TicketCategories.js +26 -0
  49. package/lib/data/TicketComments.d.ts +6 -0
  50. package/lib/data/TicketComments.js +32 -0
  51. package/lib/data/TicketPriorities.d.ts +6 -0
  52. package/lib/data/TicketPriorities.js +31 -0
  53. package/lib/data/TicketStatuses.d.ts +6 -0
  54. package/lib/data/TicketStatuses.js +31 -0
  55. package/lib/data/TicketSubcategories.d.ts +6 -0
  56. package/lib/data/TicketSubcategories.js +26 -0
  57. package/lib/data/Tickets.d.ts +6 -0
  58. package/lib/data/Tickets.js +45 -0
  59. package/lib/data/context/CommonRepository.d.ts +17 -0
  60. package/lib/data/context/CommonRepository.js +288 -0
  61. package/lib/data/context/JitzContext.d.ts +13 -0
  62. package/lib/data/context/JitzContext.js +80 -0
  63. package/lib/data/context/JitzSPContext.d.ts +8 -0
  64. package/lib/data/context/JitzSPContext.js +58 -0
  65. package/lib/data/context/JitzSPHttpClient.d.ts +14 -0
  66. package/lib/data/context/JitzSPHttpClient.js +173 -0
  67. package/lib/data/context/List.d.ts +35 -0
  68. package/lib/data/context/List.js +442 -0
  69. package/lib/data/context/Repository.d.ts +19 -0
  70. package/lib/data/context/Repository.js +421 -0
  71. package/lib/data/interfaces/ICommonRepository.d.ts +6 -0
  72. package/lib/data/interfaces/ICommonRepository.js +2 -0
  73. package/lib/data/interfaces/IJitzContext.d.ts +10 -0
  74. package/lib/data/interfaces/IJitzContext.js +2 -0
  75. package/lib/data/interfaces/IJitzSPContext.d.ts +6 -0
  76. package/lib/data/interfaces/IJitzSPContext.js +2 -0
  77. package/lib/data/interfaces/IJitzSPHttpClient.d.ts +6 -0
  78. package/lib/data/interfaces/IJitzSPHttpClient.js +2 -0
  79. package/lib/data/interfaces/IList.d.ts +25 -0
  80. package/lib/data/interfaces/IList.js +2 -0
  81. package/lib/data/interfaces/IModels.d.ts +32 -0
  82. package/lib/data/interfaces/IModels.js +2 -0
  83. package/lib/data/interfaces/IRepository.d.ts +14 -0
  84. package/lib/data/interfaces/IRepository.js +2 -0
  85. package/lib/jitzSPHttpClient.js +5 -3
  86. package/lib/repositories/CommonRepository.js +89 -33
  87. package/lib/repositories/Repository.js +22 -21
  88. package/lib/services/GraphService.d.ts +10 -0
  89. package/lib/services/GraphService.js +105 -0
  90. package/lib/services/UserService.d.ts +1 -1
  91. package/lib/services/UserService.js +9 -9
  92. package/lib/services/UtilityService.d.ts +18 -12
  93. package/lib/services/UtilityService.js +157 -58
  94. package/package.json +7 -5
@@ -0,0 +1,35 @@
1
+ import IJitzContext from "../interfaces/IJitzContext";
2
+ import { IList } from "../interfaces/IList";
3
+ import { IModel } from "../interfaces/IModels";
4
+ import { IRepository } from "../interfaces/IRepository";
5
+ export default class List<T extends IModel> implements IList<T> {
6
+ context: IJitzContext;
7
+ listName: string;
8
+ _nextPageLink: string;
9
+ top: number;
10
+ indexLimit: number;
11
+ simpleFields: string[];
12
+ userTypeFields: string[];
13
+ lookUpFields: string[];
14
+ repository: IRepository<T>;
15
+ filters?: string;
16
+ upperId: number;
17
+ lowerId: number;
18
+ orderBy?: string | undefined;
19
+ constructor(jitzContext: IJitzContext, listName: string, simpleFields: string[], userTypeFields: string[], lookUpFields: string[]);
20
+ getItems: (filters?: string, orderby?: string, top?: number, skip?: number) => Promise<T[]>;
21
+ loadMore: () => Promise<T[]>;
22
+ getItemsIndexed: (filterQuery?: string, orderby?: string, top?: number) => Promise<T[]>;
23
+ loadMoreIndexed(): Promise<T[]>;
24
+ getData: (filter: string) => Promise<T[]>;
25
+ private getLowerId;
26
+ getItemById: (id: number) => Promise<T>;
27
+ getItemsRecursive: (filters?: string, orderby?: string, top?: number, maxRecursiveCount?: number) => Promise<T[]>;
28
+ getItemsCount: (filters?: string) => Promise<number>;
29
+ create: (item: T) => Promise<T>;
30
+ update: (item: T) => Promise<T>;
31
+ delete: (id: number) => Promise<boolean>;
32
+ private setPropertiesForSharePointApi;
33
+ private getSelectFieldsForSharePointApi;
34
+ private getSelectFieldsForGraphApi;
35
+ }
@@ -0,0 +1,442 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40
+ if (ar || !(i in from)) {
41
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42
+ ar[i] = from[i];
43
+ }
44
+ }
45
+ return to.concat(ar || Array.prototype.slice.call(from));
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ var Repository_1 = require("./Repository");
49
+ var List = /** @class */ (function () {
50
+ function List(jitzContext, listName, simpleFields, userTypeFields, lookUpFields) {
51
+ var _this = this;
52
+ // items: any[];
53
+ this.top = 100;
54
+ this.indexLimit = 5000;
55
+ this.simpleFields = [];
56
+ this.userTypeFields = [];
57
+ this.lookUpFields = [];
58
+ this.filters = "";
59
+ this.upperId = 0;
60
+ this.lowerId = 0;
61
+ this.getItems = function (filters, orderby, top, skip) { return __awaiter(_this, void 0, void 0, function () {
62
+ var items, expandFields, selectFields, response;
63
+ return __generator(this, function (_a) {
64
+ switch (_a.label) {
65
+ case 0:
66
+ this.top = top || this.top;
67
+ items = [];
68
+ expandFields = (__spreadArray(__spreadArray([], this.lookUpFields, true), this.userTypeFields, true) || []).join(",");
69
+ selectFields = this.getSelectFieldsForSharePointApi();
70
+ this.filters = filters;
71
+ this.orderBy = orderby;
72
+ return [4 /*yield*/, this.repository.getAll(selectFields, expandFields, filters, orderby, top || this.top, skip)];
73
+ case 1:
74
+ response = _a.sent();
75
+ this._nextPageLink = response.__next || "";
76
+ // console.log(items);
77
+ // this.items = items;
78
+ return [2 /*return*/, response.results];
79
+ }
80
+ });
81
+ }); };
82
+ this.loadMore = function () { return __awaiter(_this, void 0, void 0, function () {
83
+ var items, expandFields, selectFields, response, _a;
84
+ return __generator(this, function (_b) {
85
+ switch (_b.label) {
86
+ case 0:
87
+ _b.trys.push([0, 3, , 4]);
88
+ if (!(this._nextPageLink != undefined && this._nextPageLink.length > 0)) return [3 /*break*/, 2];
89
+ items = [];
90
+ expandFields = (__spreadArray(__spreadArray([], this.lookUpFields, true), this.userTypeFields, true) || []).join(",");
91
+ selectFields = this.getSelectFieldsForSharePointApi();
92
+ return [4 /*yield*/, this.repository.getAllFromUrl(this._nextPageLink)];
93
+ case 1:
94
+ response = _b.sent();
95
+ this._nextPageLink = response.__next || "";
96
+ // console.log(items);
97
+ // this.items = items;
98
+ return [2 /*return*/, response.results];
99
+ case 2: return [3 /*break*/, 4];
100
+ case 3:
101
+ _a = _b.sent();
102
+ return [3 /*break*/, 4];
103
+ case 4: return [2 /*return*/, []];
104
+ }
105
+ });
106
+ }); };
107
+ this.getItemsIndexed = function (filterQuery, orderby, top) { return __awaiter(_this, void 0, void 0, function () {
108
+ var filter, results;
109
+ var _this = this;
110
+ return __generator(this, function (_a) {
111
+ switch (_a.label) {
112
+ case 0:
113
+ this.top = top || this.top;
114
+ filter = "(Id ge 1)";
115
+ this.orderBy = orderby;
116
+ this.filters = filterQuery;
117
+ //Find latest Id
118
+ return [4 /*yield*/, this.repository
119
+ .getAll("*", "", "", "Id desc", 1)
120
+ .then(function (datacount) {
121
+ var _a;
122
+ if (((_a = datacount === null || datacount === void 0 ? void 0 : datacount.results) === null || _a === void 0 ? void 0 : _a.length) > 0) {
123
+ _this.upperId = datacount.results[0].Id;
124
+ }
125
+ })];
126
+ case 1:
127
+ //Find latest Id
128
+ _a.sent();
129
+ this.lowerId = this.getLowerId(this.upperId);
130
+ if (this.upperId > 1)
131
+ filter = "(Id gt ".concat(this.lowerId, " and Id le ").concat(this.upperId, ")");
132
+ filterQuery = "".concat(filter, " ").concat(filterQuery != undefined && filterQuery.length > 0
133
+ ? "and ".concat(filterQuery)
134
+ : "");
135
+ return [4 /*yield*/, this.getData(filterQuery)];
136
+ case 2:
137
+ results = _a.sent();
138
+ return [2 /*return*/, results];
139
+ }
140
+ });
141
+ }); };
142
+ this.getData = function (filter) { return __awaiter(_this, void 0, void 0, function () {
143
+ var expandFields, selectFields, response;
144
+ return __generator(this, function (_a) {
145
+ switch (_a.label) {
146
+ case 0:
147
+ expandFields = (__spreadArray(__spreadArray([], this.lookUpFields, true), this.userTypeFields, true) || []).join(",");
148
+ selectFields = this.getSelectFieldsForSharePointApi();
149
+ return [4 /*yield*/, this.repository.getAll(selectFields, expandFields, filter, this.orderBy || "Id desc", this.top)];
150
+ case 1:
151
+ response = _a.sent();
152
+ this._nextPageLink = response.__next || "";
153
+ return [2 /*return*/, response.results];
154
+ }
155
+ });
156
+ }); };
157
+ this.getLowerId = function (upperId) {
158
+ if (upperId > _this.indexLimit)
159
+ return upperId - _this.indexLimit;
160
+ else
161
+ return 0;
162
+ };
163
+ this.getItemById = function (id) { return __awaiter(_this, void 0, void 0, function () {
164
+ var item, expandFields, selectFields;
165
+ return __generator(this, function (_a) {
166
+ switch (_a.label) {
167
+ case 0:
168
+ expandFields = (__spreadArray(__spreadArray([], this.lookUpFields, true), this.userTypeFields, true) || []).join(",");
169
+ selectFields = this.getSelectFieldsForSharePointApi();
170
+ return [4 /*yield*/, this.repository.getItemById(id, selectFields, expandFields)];
171
+ case 1:
172
+ item = _a.sent();
173
+ return [2 /*return*/, item];
174
+ }
175
+ });
176
+ }); };
177
+ this.getItemsRecursive = function (filters_1, orderby_1) {
178
+ var args_1 = [];
179
+ for (var _i = 2; _i < arguments.length; _i++) {
180
+ args_1[_i - 2] = arguments[_i];
181
+ }
182
+ return __awaiter(_this, __spreadArray([filters_1, orderby_1], args_1, true), void 0, function (filters, orderby, top, maxRecursiveCount) {
183
+ var items, expandFields, selectFields;
184
+ if (top === void 0) { top = 5000; }
185
+ if (maxRecursiveCount === void 0) { maxRecursiveCount = 5; }
186
+ return __generator(this, function (_a) {
187
+ switch (_a.label) {
188
+ case 0:
189
+ items = [];
190
+ expandFields = (__spreadArray(__spreadArray([], this.lookUpFields, true), this.userTypeFields, true) || []).join(",");
191
+ selectFields = this.getSelectFieldsForSharePointApi();
192
+ return [4 /*yield*/, this.repository.getAllRecursive(selectFields, expandFields, filters, orderby, top || this.top, maxRecursiveCount)];
193
+ case 1:
194
+ items = _a.sent();
195
+ // console.log(items);
196
+ // this.items = items;
197
+ return [2 /*return*/, items];
198
+ }
199
+ });
200
+ });
201
+ };
202
+ this.getItemsCount = function (filters) { return __awaiter(_this, void 0, void 0, function () {
203
+ var count;
204
+ return __generator(this, function (_a) {
205
+ switch (_a.label) {
206
+ case 0: return [4 /*yield*/, this.repository.itemsCount(filters)];
207
+ case 1:
208
+ count = _a.sent();
209
+ return [2 /*return*/, count];
210
+ }
211
+ });
212
+ }); };
213
+ this.create = function (item) { return __awaiter(_this, void 0, void 0, function () {
214
+ var newItem;
215
+ return __generator(this, function (_a) {
216
+ switch (_a.label) {
217
+ case 0:
218
+ newItem = this.setPropertiesForSharePointApi(item);
219
+ return [4 /*yield*/, this.repository.createItem(newItem)];
220
+ case 1:
221
+ item = _a.sent();
222
+ // await this.context.graphClient
223
+ // .api(`/sites/${this.context.siteId}/lists/${this.listName}/items`)
224
+ // .post({ fields: item })
225
+ // .then((response: any) => {
226
+ // item = response;
227
+ // })
228
+ // .catch((err) => {
229
+ // console.log(err);
230
+ // });
231
+ return [2 /*return*/, item];
232
+ }
233
+ });
234
+ }); };
235
+ this.update = function (item) { return __awaiter(_this, void 0, void 0, function () {
236
+ var newItem;
237
+ return __generator(this, function (_a) {
238
+ switch (_a.label) {
239
+ case 0:
240
+ newItem = this.setPropertiesForSharePointApi(item);
241
+ return [4 /*yield*/, this.repository.updateItem(newItem)];
242
+ case 1:
243
+ item = _a.sent();
244
+ // let newObject: any = {};
245
+ // var itemAsAny = item as any;
246
+ // Object.keys(itemAsAny).forEach((key) => {
247
+ // if ((key || "").toString().toLowerCase() != "id")
248
+ // newObject[key] = itemAsAny[key];
249
+ // });
250
+ // await this.context.graphClient
251
+ // .api(
252
+ // `/sites/${this.context.siteId}/lists/${this.listName}/items/${item.Id}/fields`
253
+ // )
254
+ // .update(newObject)
255
+ // .then((response: any) => {
256
+ // item = response;
257
+ // })
258
+ // .catch((err) => {
259
+ // console.log(err);
260
+ // });
261
+ return [2 /*return*/, item];
262
+ }
263
+ });
264
+ }); };
265
+ this.delete = function (id) { return __awaiter(_this, void 0, void 0, function () {
266
+ var result;
267
+ return __generator(this, function (_a) {
268
+ switch (_a.label) {
269
+ case 0: return [4 /*yield*/, this.repository.deleteItem(id)];
270
+ case 1:
271
+ result = _a.sent();
272
+ // await this.context.graphClient
273
+ // .api(`/sites/${this.context.siteId}/lists/${this.listName}/items/${id}`)
274
+ // .delete()
275
+ // .then((response: any) => {
276
+ // result = true;
277
+ // })
278
+ // .catch((err) => {
279
+ // console.log(err);
280
+ // });
281
+ return [2 /*return*/, result];
282
+ }
283
+ });
284
+ }); };
285
+ // getItems = async (
286
+ // filter?: string[],
287
+ // orderby?: string,
288
+ // top?: number
289
+ // ): Promise<T[]> => {
290
+ // let items: T[] = [];
291
+ // var expandFields = (
292
+ // [...this.lookUpFields, ...this.userTypeFields] || []
293
+ // ).join(",");
294
+ // try {
295
+ // var selectFields = this.getSelectFieldsForGraphApi();
296
+ // await this.context.graphClient
297
+ // .api(
298
+ // `/sites/${this.context.siteId}/lists/${
299
+ // this.listName
300
+ // }/items?expand=fields(select=${selectFields})&top=${top || this.top}`
301
+ // )
302
+ // .get((err, res) => {
303
+ // if (err) {
304
+ // console.log(err);
305
+ // return items;
306
+ // }
307
+ // if (
308
+ // res != undefined &&
309
+ // res["@odata.context"] != undefined &&
310
+ // res.value != undefined &&
311
+ // res.value.length > 0
312
+ // ) {
313
+ // console.log(res.value);
314
+ // for (var i = 0; i < res.value.length; i++) {
315
+ // var item = {
316
+ // Id: res.value[i].id,
317
+ // Title: res.value[i].fields["Title"],
318
+ // };
319
+ // items.push(item as T);
320
+ // }
321
+ // console.log(items);
322
+ // }
323
+ // });
324
+ // } catch {
325
+ // var selectFields = this.getSelectFieldsForSharePointApi();
326
+ // items = await this.repository.getAll(selectFields, expandFields);
327
+ // console.log(items);
328
+ // }
329
+ // this.items = items;
330
+ // return items;
331
+ // };
332
+ // getItemById = async (id: number): Promise<T> => {
333
+ // var item: any;
334
+ // try {
335
+ // await this.context.graphClient
336
+ // .api(`/sites/${this.context.siteId}/lists/${this.listName}/items/${id}`)
337
+ // .get()
338
+ // .then((response: any) => {
339
+ // // console.log(response);
340
+ // item = response.fields;
341
+ // })
342
+ // .catch((err) => {
343
+ // console.log(err);
344
+ // });
345
+ // } catch {
346
+ // item = await this.repository.getItemById(id);
347
+ // }
348
+ // return item;
349
+ // };
350
+ this.setPropertiesForSharePointApi = function (item) {
351
+ var newItem = {};
352
+ Object.keys(item).forEach(function (e) {
353
+ // console.log(`key=${e} value=${item[e]}`);
354
+ var keyText = (e || "").split("Lookup").join("");
355
+ newItem[keyText] = item[e];
356
+ });
357
+ return newItem;
358
+ };
359
+ this.getSelectFieldsForSharePointApi = function () {
360
+ var selectFields = "";
361
+ var userTypeFields = [];
362
+ var lookUpFields = [];
363
+ if (_this.userTypeFields.length > 0) {
364
+ for (var i = 0; i < _this.userTypeFields.length; i++) {
365
+ userTypeFields.push("".concat(_this.userTypeFields[i], "Id"));
366
+ userTypeFields.push("".concat(_this.userTypeFields[i], "/Id"));
367
+ userTypeFields.push("".concat(_this.userTypeFields[i], "/Name"));
368
+ userTypeFields.push("".concat(_this.userTypeFields[i], "/Title"));
369
+ userTypeFields.push("".concat(_this.userTypeFields[i], "/EMail"));
370
+ }
371
+ }
372
+ if (_this.lookUpFields.length > 0) {
373
+ for (var i = 0; i < _this.lookUpFields.length; i++) {
374
+ lookUpFields.push("".concat(_this.lookUpFields[i]));
375
+ lookUpFields.push("".concat(_this.lookUpFields[i], "Id"));
376
+ lookUpFields.push("".concat(_this.lookUpFields[i], "/Id"));
377
+ lookUpFields.push("".concat(_this.lookUpFields[i], "/Title"));
378
+ }
379
+ }
380
+ selectFields = (__spreadArray(__spreadArray(__spreadArray([], _this.simpleFields, true), userTypeFields, true), lookUpFields, true) || []).join(",");
381
+ return selectFields;
382
+ };
383
+ this.getSelectFieldsForGraphApi = function () {
384
+ var selectFields = "";
385
+ var userTypeFields = [];
386
+ var lookUpFields = [];
387
+ if (_this.userTypeFields.length > 0) {
388
+ for (var i = 0; i < _this.userTypeFields.length; i++) {
389
+ userTypeFields.push("".concat(_this.userTypeFields[0], "LookupId"));
390
+ userTypeFields.push("".concat(_this.userTypeFields[0]));
391
+ userTypeFields.push("".concat(_this.userTypeFields[0], "EMail"));
392
+ }
393
+ }
394
+ if (_this.lookUpFields.length > 0) {
395
+ for (var i = 0; i < _this.lookUpFields.length; i++) {
396
+ lookUpFields.push("".concat(_this.lookUpFields[0]));
397
+ lookUpFields.push("".concat(_this.lookUpFields[0], "LookupId"));
398
+ }
399
+ }
400
+ selectFields = (__spreadArray(__spreadArray(__spreadArray([], _this.simpleFields, true), userTypeFields, true), lookUpFields, true) || []).join(",");
401
+ return selectFields;
402
+ };
403
+ this.context = jitzContext;
404
+ this.listName = listName;
405
+ this.simpleFields = simpleFields || [];
406
+ this.userTypeFields = userTypeFields || [];
407
+ this.lookUpFields = lookUpFields || [];
408
+ this.repository = new Repository_1.default(this.context.spContext, listName);
409
+ }
410
+ List.prototype.loadMoreIndexed = function () {
411
+ return __awaiter(this, void 0, void 0, function () {
412
+ var response, filter, results;
413
+ return __generator(this, function (_a) {
414
+ switch (_a.label) {
415
+ case 0:
416
+ if (!(this._nextPageLink != undefined && this._nextPageLink.length > 0)) return [3 /*break*/, 2];
417
+ return [4 /*yield*/, this.repository.getAllFromUrl(this._nextPageLink)];
418
+ case 1:
419
+ response = _a.sent();
420
+ this._nextPageLink = response.__next || "";
421
+ return [2 /*return*/, response.results];
422
+ case 2:
423
+ filter = "";
424
+ this.upperId = this.lowerId;
425
+ this.lowerId = this.getLowerId(this.upperId);
426
+ if (!(this.upperId > 1)) return [3 /*break*/, 4];
427
+ filter = "(Id gt ".concat(this.lowerId, " and Id le ").concat(this.upperId, ")");
428
+ if (this.filters != undefined && this.filters.length > 0)
429
+ filter = "".concat(filter, " and ").concat(this.filters);
430
+ console.log(filter);
431
+ return [4 /*yield*/, this.getData(filter)];
432
+ case 3:
433
+ results = _a.sent();
434
+ return [2 /*return*/, results];
435
+ case 4: return [2 /*return*/, []];
436
+ }
437
+ });
438
+ });
439
+ };
440
+ return List;
441
+ }());
442
+ exports.default = List;
@@ -0,0 +1,19 @@
1
+ import IJitzSPContext from "../interfaces/IJitzSPContext";
2
+ import { IModel } from "../interfaces/IModels";
3
+ import { IRepository } from "../interfaces/IRepository";
4
+ export default class Repository<T extends IModel> implements IRepository<T> {
5
+ private _listEntityType?;
6
+ context: IJitzSPContext;
7
+ listName: string;
8
+ constructor(context: IJitzSPContext, listName: string);
9
+ getAll(selectFields?: string, expand?: string, filters?: string, orderBy?: string, top?: number, skip?: number, skipTokenUniqueField?: string, skipTokenUniqueFieldValue?: string): Promise<T[]>;
10
+ getAllFromUrl(url: string): Promise<T[]>;
11
+ getAllRecursive(selectFields?: string, expand?: string, filters?: string, orderBy?: string, top?: number, maxRecursiveCount?: number): Promise<T[]>;
12
+ private recursiveFetch;
13
+ itemsCount(filters?: string): any;
14
+ getItemById(id: number, selectFields?: string, expand?: string): Promise<T>;
15
+ createItem(item: T): Promise<T>;
16
+ updateItem(item: T): Promise<T>;
17
+ deleteItem(id: number): Promise<boolean>;
18
+ private getEntityType;
19
+ }