jitz-sharepoint-utilities 1.11.3 → 2.0.1

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 +429 -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 +36 -0
  68. package/lib/data/context/List.js +450 -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 +17 -16
  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,36 @@
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
+ additionalExpandFields: string[];
15
+ repository: IRepository<T>;
16
+ filters?: string;
17
+ upperId: number;
18
+ lowerId: number;
19
+ orderBy?: string | undefined;
20
+ constructor(jitzContext: IJitzContext, listName: string, simpleFields: string[], userTypeFields: string[], lookUpFields: string[], additionalExpandFields: string[]);
21
+ getItems: (filters?: string, orderby?: string, top?: number, skip?: number) => Promise<T[]>;
22
+ loadMore: () => Promise<T[]>;
23
+ getItemsIndexed: (filterQuery?: string, orderby?: string, top?: number) => Promise<T[]>;
24
+ loadMoreIndexed(): Promise<T[]>;
25
+ getData: (filter: string) => Promise<T[]>;
26
+ private getLowerId;
27
+ getItemById: (id: number) => Promise<T>;
28
+ getItemsRecursive: (filters?: string, orderby?: string, top?: number, maxRecursiveCount?: number) => Promise<T[]>;
29
+ getItemsCount: (filters?: string) => Promise<number>;
30
+ create: (item: T) => Promise<T>;
31
+ update: (item: T) => Promise<T>;
32
+ delete: (id: number) => Promise<boolean>;
33
+ private setPropertiesForSharePointApi;
34
+ private getSelectFieldsForSharePointApi;
35
+ private getSelectFieldsForGraphApi;
36
+ }
@@ -0,0 +1,450 @@
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, additionalExpandFields) {
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.additionalExpandFields = [];
59
+ this.filters = "";
60
+ this.upperId = 0;
61
+ this.lowerId = 0;
62
+ this.getItems = function (filters, orderby, top, skip) { return __awaiter(_this, void 0, void 0, function () {
63
+ var items, expandFields, selectFields, response;
64
+ return __generator(this, function (_a) {
65
+ switch (_a.label) {
66
+ case 0:
67
+ this.top = top || this.top;
68
+ items = [];
69
+ expandFields = (__spreadArray(__spreadArray([], this.lookUpFields, true), this.userTypeFields, true) || []).join(",");
70
+ selectFields = this.getSelectFieldsForSharePointApi();
71
+ this.filters = filters;
72
+ this.orderBy = orderby;
73
+ return [4 /*yield*/, this.repository.getAll(selectFields, expandFields, filters, orderby, top || this.top, skip)];
74
+ case 1:
75
+ response = _a.sent();
76
+ this._nextPageLink = response.__next || "";
77
+ // console.log(items);
78
+ // this.items = items;
79
+ return [2 /*return*/, response.results];
80
+ }
81
+ });
82
+ }); };
83
+ this.loadMore = function () { return __awaiter(_this, void 0, void 0, function () {
84
+ var items, expandFields, selectFields, response, _a;
85
+ return __generator(this, function (_b) {
86
+ switch (_b.label) {
87
+ case 0:
88
+ _b.trys.push([0, 3, , 4]);
89
+ if (!(this._nextPageLink != undefined && this._nextPageLink.length > 0)) return [3 /*break*/, 2];
90
+ items = [];
91
+ expandFields = (__spreadArray(__spreadArray([], this.lookUpFields, true), this.userTypeFields, true) || []).join(",");
92
+ selectFields = this.getSelectFieldsForSharePointApi();
93
+ return [4 /*yield*/, this.repository.getAllFromUrl(this._nextPageLink)];
94
+ case 1:
95
+ response = _b.sent();
96
+ this._nextPageLink = response.__next || "";
97
+ // console.log(items);
98
+ // this.items = items;
99
+ return [2 /*return*/, response.results];
100
+ case 2: return [3 /*break*/, 4];
101
+ case 3:
102
+ _a = _b.sent();
103
+ return [3 /*break*/, 4];
104
+ case 4: return [2 /*return*/, []];
105
+ }
106
+ });
107
+ }); };
108
+ this.getItemsIndexed = function (filterQuery, orderby, top) { return __awaiter(_this, void 0, void 0, function () {
109
+ var filter, results;
110
+ var _this = this;
111
+ return __generator(this, function (_a) {
112
+ switch (_a.label) {
113
+ case 0:
114
+ this.top = top || this.top;
115
+ filter = "(Id ge 1)";
116
+ this.orderBy = orderby;
117
+ this.filters = filterQuery;
118
+ //Find latest Id
119
+ return [4 /*yield*/, this.repository
120
+ .getAll("*", "", "", "Id desc", 1)
121
+ .then(function (datacount) {
122
+ var _a;
123
+ if (((_a = datacount === null || datacount === void 0 ? void 0 : datacount.results) === null || _a === void 0 ? void 0 : _a.length) > 0) {
124
+ _this.upperId = datacount.results[0].Id;
125
+ }
126
+ })];
127
+ case 1:
128
+ //Find latest Id
129
+ _a.sent();
130
+ this.lowerId = this.getLowerId(this.upperId);
131
+ if (this.upperId > 1)
132
+ filter = "(Id gt ".concat(this.lowerId, " and Id le ").concat(this.upperId, ")");
133
+ filterQuery = "".concat(filter, " ").concat(filterQuery != undefined && filterQuery.length > 0
134
+ ? "and ".concat(filterQuery)
135
+ : "");
136
+ return [4 /*yield*/, this.getData(filterQuery)];
137
+ case 2:
138
+ results = _a.sent();
139
+ return [2 /*return*/, results];
140
+ }
141
+ });
142
+ }); };
143
+ this.getData = function (filter) { return __awaiter(_this, void 0, void 0, function () {
144
+ var expandFields, selectFields, response;
145
+ return __generator(this, function (_a) {
146
+ switch (_a.label) {
147
+ case 0:
148
+ expandFields = (__spreadArray(__spreadArray([], this.lookUpFields, true), this.userTypeFields, true) || []).join(",");
149
+ selectFields = this.getSelectFieldsForSharePointApi();
150
+ return [4 /*yield*/, this.repository.getAll(selectFields, expandFields, filter, this.orderBy || "Id desc", this.top)];
151
+ case 1:
152
+ response = _a.sent();
153
+ this._nextPageLink = response.__next || "";
154
+ return [2 /*return*/, response.results];
155
+ }
156
+ });
157
+ }); };
158
+ this.getLowerId = function (upperId) {
159
+ if (upperId > _this.indexLimit)
160
+ return upperId - _this.indexLimit;
161
+ else
162
+ return 0;
163
+ };
164
+ this.getItemById = function (id) { return __awaiter(_this, void 0, void 0, function () {
165
+ var item, expandFields, selectFields;
166
+ return __generator(this, function (_a) {
167
+ switch (_a.label) {
168
+ case 0:
169
+ expandFields = (__spreadArray(__spreadArray([], this.lookUpFields, true), this.userTypeFields, true) || []).join(",");
170
+ selectFields = this.getSelectFieldsForSharePointApi();
171
+ return [4 /*yield*/, this.repository.getItemById(id, selectFields, expandFields)];
172
+ case 1:
173
+ item = _a.sent();
174
+ return [2 /*return*/, item];
175
+ }
176
+ });
177
+ }); };
178
+ this.getItemsRecursive = function (filters_1, orderby_1) {
179
+ var args_1 = [];
180
+ for (var _i = 2; _i < arguments.length; _i++) {
181
+ args_1[_i - 2] = arguments[_i];
182
+ }
183
+ return __awaiter(_this, __spreadArray([filters_1, orderby_1], args_1, true), void 0, function (filters, orderby, top, maxRecursiveCount) {
184
+ var items, expandFields, selectFields;
185
+ if (top === void 0) { top = 5000; }
186
+ if (maxRecursiveCount === void 0) { maxRecursiveCount = 5; }
187
+ return __generator(this, function (_a) {
188
+ switch (_a.label) {
189
+ case 0:
190
+ items = [];
191
+ expandFields = (__spreadArray(__spreadArray([], this.lookUpFields, true), this.userTypeFields, true) || []).join(",");
192
+ selectFields = this.getSelectFieldsForSharePointApi();
193
+ return [4 /*yield*/, this.repository.getAllRecursive(selectFields, expandFields, filters, orderby, top || this.top, maxRecursiveCount)];
194
+ case 1:
195
+ items = _a.sent();
196
+ // console.log(items);
197
+ // this.items = items;
198
+ return [2 /*return*/, items];
199
+ }
200
+ });
201
+ });
202
+ };
203
+ this.getItemsCount = function (filters) { return __awaiter(_this, void 0, void 0, function () {
204
+ var count;
205
+ return __generator(this, function (_a) {
206
+ switch (_a.label) {
207
+ case 0: return [4 /*yield*/, this.repository.itemsCount(filters)];
208
+ case 1:
209
+ count = _a.sent();
210
+ return [2 /*return*/, count];
211
+ }
212
+ });
213
+ }); };
214
+ this.create = function (item) { return __awaiter(_this, void 0, void 0, function () {
215
+ var newItem;
216
+ return __generator(this, function (_a) {
217
+ switch (_a.label) {
218
+ case 0:
219
+ newItem = this.setPropertiesForSharePointApi(item);
220
+ return [4 /*yield*/, this.repository.createItem(newItem)];
221
+ case 1:
222
+ item = _a.sent();
223
+ // await this.context.graphClient
224
+ // .api(`/sites/${this.context.siteId}/lists/${this.listName}/items`)
225
+ // .post({ fields: item })
226
+ // .then((response: any) => {
227
+ // item = response;
228
+ // })
229
+ // .catch((err) => {
230
+ // console.log(err);
231
+ // });
232
+ return [2 /*return*/, item];
233
+ }
234
+ });
235
+ }); };
236
+ this.update = function (item) { return __awaiter(_this, void 0, void 0, function () {
237
+ var newItem;
238
+ return __generator(this, function (_a) {
239
+ switch (_a.label) {
240
+ case 0:
241
+ newItem = this.setPropertiesForSharePointApi(item);
242
+ return [4 /*yield*/, this.repository.updateItem(newItem)];
243
+ case 1:
244
+ item = _a.sent();
245
+ // let newObject: any = {};
246
+ // var itemAsAny = item as any;
247
+ // Object.keys(itemAsAny).forEach((key) => {
248
+ // if ((key || "").toString().toLowerCase() != "id")
249
+ // newObject[key] = itemAsAny[key];
250
+ // });
251
+ // await this.context.graphClient
252
+ // .api(
253
+ // `/sites/${this.context.siteId}/lists/${this.listName}/items/${item.Id}/fields`
254
+ // )
255
+ // .update(newObject)
256
+ // .then((response: any) => {
257
+ // item = response;
258
+ // })
259
+ // .catch((err) => {
260
+ // console.log(err);
261
+ // });
262
+ return [2 /*return*/, item];
263
+ }
264
+ });
265
+ }); };
266
+ this.delete = function (id) { return __awaiter(_this, void 0, void 0, function () {
267
+ var result;
268
+ return __generator(this, function (_a) {
269
+ switch (_a.label) {
270
+ case 0: return [4 /*yield*/, this.repository.deleteItem(id)];
271
+ case 1:
272
+ result = _a.sent();
273
+ // await this.context.graphClient
274
+ // .api(`/sites/${this.context.siteId}/lists/${this.listName}/items/${id}`)
275
+ // .delete()
276
+ // .then((response: any) => {
277
+ // result = true;
278
+ // })
279
+ // .catch((err) => {
280
+ // console.log(err);
281
+ // });
282
+ return [2 /*return*/, result];
283
+ }
284
+ });
285
+ }); };
286
+ // getItems = async (
287
+ // filter?: string[],
288
+ // orderby?: string,
289
+ // top?: number
290
+ // ): Promise<T[]> => {
291
+ // let items: T[] = [];
292
+ // var expandFields = (
293
+ // [...this.lookUpFields, ...this.userTypeFields] || []
294
+ // ).join(",");
295
+ // try {
296
+ // var selectFields = this.getSelectFieldsForGraphApi();
297
+ // await this.context.graphClient
298
+ // .api(
299
+ // `/sites/${this.context.siteId}/lists/${
300
+ // this.listName
301
+ // }/items?expand=fields(select=${selectFields})&top=${top || this.top}`
302
+ // )
303
+ // .get((err, res) => {
304
+ // if (err) {
305
+ // console.log(err);
306
+ // return items;
307
+ // }
308
+ // if (
309
+ // res != undefined &&
310
+ // res["@odata.context"] != undefined &&
311
+ // res.value != undefined &&
312
+ // res.value.length > 0
313
+ // ) {
314
+ // console.log(res.value);
315
+ // for (var i = 0; i < res.value.length; i++) {
316
+ // var item = {
317
+ // Id: res.value[i].id,
318
+ // Title: res.value[i].fields["Title"],
319
+ // };
320
+ // items.push(item as T);
321
+ // }
322
+ // console.log(items);
323
+ // }
324
+ // });
325
+ // } catch {
326
+ // var selectFields = this.getSelectFieldsForSharePointApi();
327
+ // items = await this.repository.getAll(selectFields, expandFields);
328
+ // console.log(items);
329
+ // }
330
+ // this.items = items;
331
+ // return items;
332
+ // };
333
+ // getItemById = async (id: number): Promise<T> => {
334
+ // var item: any;
335
+ // try {
336
+ // await this.context.graphClient
337
+ // .api(`/sites/${this.context.siteId}/lists/${this.listName}/items/${id}`)
338
+ // .get()
339
+ // .then((response: any) => {
340
+ // // console.log(response);
341
+ // item = response.fields;
342
+ // })
343
+ // .catch((err) => {
344
+ // console.log(err);
345
+ // });
346
+ // } catch {
347
+ // item = await this.repository.getItemById(id);
348
+ // }
349
+ // return item;
350
+ // };
351
+ this.setPropertiesForSharePointApi = function (item) {
352
+ var newItem = {};
353
+ Object.keys(item).forEach(function (e) {
354
+ // console.log(`key=${e} value=${item[e]}`);
355
+ var keyText = (e || "").split("Lookup").join("");
356
+ newItem[keyText] = item[e];
357
+ });
358
+ return newItem;
359
+ };
360
+ this.getSelectFieldsForSharePointApi = function () {
361
+ var selectFields = "";
362
+ var userTypeFields = [];
363
+ var lookUpFields = [];
364
+ var additionalExpandFields = [];
365
+ if (_this.userTypeFields.length > 0) {
366
+ for (var i = 0; i < _this.userTypeFields.length; i++) {
367
+ userTypeFields.push("".concat(_this.userTypeFields[i], "Id"));
368
+ userTypeFields.push("".concat(_this.userTypeFields[i], "/Id"));
369
+ userTypeFields.push("".concat(_this.userTypeFields[i], "/Name"));
370
+ userTypeFields.push("".concat(_this.userTypeFields[i], "/Title"));
371
+ userTypeFields.push("".concat(_this.userTypeFields[i], "/EMail"));
372
+ }
373
+ }
374
+ if (_this.lookUpFields.length > 0) {
375
+ for (var i = 0; i < _this.lookUpFields.length; i++) {
376
+ lookUpFields.push("".concat(_this.lookUpFields[i]));
377
+ lookUpFields.push("".concat(_this.lookUpFields[i], "Id"));
378
+ lookUpFields.push("".concat(_this.lookUpFields[i], "/Id"));
379
+ lookUpFields.push("".concat(_this.lookUpFields[i], "/Title"));
380
+ }
381
+ }
382
+ if (_this.additionalExpandFields.length > 0) {
383
+ for (var i = 0; i < _this.additionalExpandFields.length; i++) {
384
+ additionalExpandFields.push(_this.additionalExpandFields[i]);
385
+ }
386
+ }
387
+ selectFields = (__spreadArray(__spreadArray(__spreadArray(__spreadArray([], _this.simpleFields, true), userTypeFields, true), lookUpFields, true), additionalExpandFields, true) || []).join(",");
388
+ return selectFields;
389
+ };
390
+ this.getSelectFieldsForGraphApi = function () {
391
+ var selectFields = "";
392
+ var userTypeFields = [];
393
+ var lookUpFields = [];
394
+ if (_this.userTypeFields.length > 0) {
395
+ for (var i = 0; i < _this.userTypeFields.length; i++) {
396
+ userTypeFields.push("".concat(_this.userTypeFields[0], "LookupId"));
397
+ userTypeFields.push("".concat(_this.userTypeFields[0]));
398
+ userTypeFields.push("".concat(_this.userTypeFields[0], "EMail"));
399
+ }
400
+ }
401
+ if (_this.lookUpFields.length > 0) {
402
+ for (var i = 0; i < _this.lookUpFields.length; i++) {
403
+ lookUpFields.push("".concat(_this.lookUpFields[0]));
404
+ lookUpFields.push("".concat(_this.lookUpFields[0], "LookupId"));
405
+ }
406
+ }
407
+ selectFields = (__spreadArray(__spreadArray(__spreadArray([], _this.simpleFields, true), userTypeFields, true), lookUpFields, true) || []).join(",");
408
+ return selectFields;
409
+ };
410
+ this.context = jitzContext;
411
+ this.listName = listName;
412
+ this.simpleFields = simpleFields || [];
413
+ this.userTypeFields = userTypeFields || [];
414
+ this.lookUpFields = lookUpFields || [];
415
+ this.additionalExpandFields = additionalExpandFields || [];
416
+ this.repository = new Repository_1.default(this.context.spContext, listName);
417
+ }
418
+ List.prototype.loadMoreIndexed = function () {
419
+ return __awaiter(this, void 0, void 0, function () {
420
+ var response, filter, results;
421
+ return __generator(this, function (_a) {
422
+ switch (_a.label) {
423
+ case 0:
424
+ if (!(this._nextPageLink != undefined && this._nextPageLink.length > 0)) return [3 /*break*/, 2];
425
+ return [4 /*yield*/, this.repository.getAllFromUrl(this._nextPageLink)];
426
+ case 1:
427
+ response = _a.sent();
428
+ this._nextPageLink = response.__next || "";
429
+ return [2 /*return*/, response.results];
430
+ case 2:
431
+ filter = "";
432
+ this.upperId = this.lowerId;
433
+ this.lowerId = this.getLowerId(this.upperId);
434
+ if (!(this.upperId > 1)) return [3 /*break*/, 4];
435
+ filter = "(Id gt ".concat(this.lowerId, " and Id le ").concat(this.upperId, ")");
436
+ if (this.filters != undefined && this.filters.length > 0)
437
+ filter = "".concat(filter, " and ").concat(this.filters);
438
+ console.log(filter);
439
+ return [4 /*yield*/, this.getData(filter)];
440
+ case 3:
441
+ results = _a.sent();
442
+ return [2 /*return*/, results];
443
+ case 4: return [2 /*return*/, []];
444
+ }
445
+ });
446
+ });
447
+ };
448
+ return List;
449
+ }());
450
+ 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
+ }