dattatable 2.10.45 → 2.10.47

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 (71) hide show
  1. package/build/common/index.d.ts +1 -0
  2. package/build/common/index.js +1 -0
  3. package/build/common/itemForm.d.ts +2 -1
  4. package/build/common/itemForm.js +24 -10
  5. package/build/common/list-cfg.d.ts +12 -0
  6. package/build/common/list-cfg.js +246 -0
  7. package/build/lib.d.ts +1 -0
  8. package/dist/dattatable.js +13 -2
  9. package/dist/dattatable.min.js +1 -1
  10. package/docs/assets/navigation.js +1 -1
  11. package/docs/assets/search.js +1 -1
  12. package/docs/classes/Accordion.html +2 -2
  13. package/docs/classes/AuditLog.html +2 -2
  14. package/docs/classes/CanvasForm.html +2 -2
  15. package/docs/classes/Comments.html +2 -2
  16. package/docs/classes/Dashboard.html +4 -4
  17. package/docs/classes/DataTable.html +3 -3
  18. package/docs/classes/Documents.html +6 -6
  19. package/docs/classes/FilterSlideout.html +2 -2
  20. package/docs/classes/Footer.html +2 -2
  21. package/docs/classes/Header.html +2 -2
  22. package/docs/classes/InstallationRequired.html +2 -2
  23. package/docs/classes/ItemForm.html +6 -5
  24. package/docs/classes/List.html +4 -4
  25. package/docs/classes/ListConfig.html +5 -0
  26. package/docs/classes/ListSecurity.html +2 -2
  27. package/docs/classes/LoadingDialog.html +2 -2
  28. package/docs/classes/Modal.html +2 -2
  29. package/docs/classes/Navigation.html +3 -3
  30. package/docs/classes/Tiles.html +2 -2
  31. package/docs/classes/Timeout.html +2 -2
  32. package/docs/enums/ActionButtonTypes.html +2 -2
  33. package/docs/functions/formatBytes.html +1 -1
  34. package/docs/functions/formatDateValue.html +1 -1
  35. package/docs/functions/formatTimeValue.html +1 -1
  36. package/docs/functions/getContextInfo.html +1 -1
  37. package/docs/functions/getFileExt.html +1 -1
  38. package/docs/functions/waitForTheme.html +1 -1
  39. package/docs/index.html +1 -1
  40. package/docs/interfaces/IAccordion.html +2 -2
  41. package/docs/interfaces/IAccordionProps.html +2 -2
  42. package/docs/interfaces/IAuditLogItem.html +3 -3
  43. package/docs/interfaces/IAuditLogItemCreation.html +2 -2
  44. package/docs/interfaces/IAuditLogProps.html +2 -2
  45. package/docs/interfaces/IAuditLogViewProps.html +2 -2
  46. package/docs/interfaces/ICommentsItem.html +2 -2
  47. package/docs/interfaces/IDashboardProps.html +2 -2
  48. package/docs/interfaces/IDataTable.html +2 -2
  49. package/docs/interfaces/IDataTableProps.html +2 -2
  50. package/docs/interfaces/IDocumentsProps.html +2 -2
  51. package/docs/interfaces/IFilterItem.html +2 -2
  52. package/docs/interfaces/IFilterProps.html +2 -2
  53. package/docs/interfaces/IFooterProps.html +2 -2
  54. package/docs/interfaces/IHeaderProps.html +2 -2
  55. package/docs/interfaces/IInstallProps.html +2 -2
  56. package/docs/interfaces/IItemFormCreateProps.html +2 -2
  57. package/docs/interfaces/IItemFormEditProps.html +2 -2
  58. package/docs/interfaces/IItemFormTab.html +2 -2
  59. package/docs/interfaces/IItemFormTabInfo.html +2 -2
  60. package/docs/interfaces/IItemFormViewProps.html +2 -2
  61. package/docs/interfaces/IListConfig.html +3 -0
  62. package/docs/interfaces/IListProps.html +2 -2
  63. package/docs/interfaces/IListSecurity.html +2 -2
  64. package/docs/interfaces/IListSecurityItem.html +2 -2
  65. package/docs/interfaces/IShowDialogProps.html +2 -2
  66. package/docs/interfaces/ITiles.html +2 -2
  67. package/docs/interfaces/ITilesProps.html +2 -2
  68. package/docs/modules.html +3 -1
  69. package/docs/variables/DattaTable.html +1 -1
  70. package/docs/variables/ListSecurityDefaultGroups.html +1 -1
  71. package/package.json +1 -1
@@ -5,6 +5,7 @@ export * from "./documents";
5
5
  export * from "./installRequired";
6
6
  export * from "./itemForm";
7
7
  export * from "./list";
8
+ export * from "./list-cfg";
8
9
  export * from "./listSecurity";
9
10
  export * from "./loadingDialog";
10
11
  export * from "./methods";
@@ -21,6 +21,7 @@ __exportStar(require("./documents"), exports);
21
21
  __exportStar(require("./installRequired"), exports);
22
22
  __exportStar(require("./itemForm"), exports);
23
23
  __exportStar(require("./list"), exports);
24
+ __exportStar(require("./list-cfg"), exports);
24
25
  __exportStar(require("./listSecurity"), exports);
25
26
  __exportStar(require("./loadingDialog"), exports);
26
27
  __exportStar(require("./methods"), exports);
@@ -119,12 +119,13 @@ export declare class ItemForm {
119
119
  static create(props?: IItemFormCreateProps): PromiseLike<void>;
120
120
  static edit(props: IItemFormEditProps): PromiseLike<void>;
121
121
  static loadFormInfo(props: Helper.IListFormProps): PromiseLike<void>;
122
+ static renderFooter(elForm: HTMLElement): void;
122
123
  static view(props: IItemFormViewProps): PromiseLike<void>;
123
124
  /** Private Methods */
124
125
  private static load;
125
126
  private static renderDisplayForm;
126
127
  private static renderEditForm;
127
- private static renderFooter;
128
+ private static renderFormFooter;
128
129
  private static renderForm;
129
130
  private static renderTabs;
130
131
  static save(form?: Components.IListFormEdit): void;
@@ -153,6 +153,11 @@ var ItemForm = /** @class */ (function () {
153
153
  });
154
154
  });
155
155
  };
156
+ // Renders the footer for a form
157
+ ItemForm.renderFooter = function (elForm) {
158
+ // Render the form footer
159
+ this.renderFormFooter(elForm);
160
+ };
156
161
  // Views the task
157
162
  ItemForm.view = function (props) {
158
163
  // Set the properties
@@ -296,17 +301,26 @@ var ItemForm = /** @class */ (function () {
296
301
  return el;
297
302
  };
298
303
  // Renders the footer
299
- ItemForm.renderFooter = function () {
304
+ ItemForm.renderFormFooter = function (elFooter) {
300
305
  var _this = this;
301
306
  // Render the form buttons
302
307
  var elButtons = document.createElement("div");
303
- // Add styling if not using a modal
304
- if (!this._useModal) {
305
- elButtons.classList.add("float-end");
306
- elButtons.style.padding = "1rem 0";
308
+ // See if we are rendering to the canvas
309
+ if (elFooter == null && !this._useModal) {
310
+ // Add the classes
311
+ elButtons.classList.add("d-flex");
312
+ elButtons.classList.add("justify-content-end");
313
+ elButtons.classList.add("my-2");
314
+ }
315
+ // See if we are using a custom element
316
+ if (elFooter) {
317
+ // Append the buttons
318
+ elFooter.appendChild(elButtons);
319
+ }
320
+ else {
321
+ // Append the create/update button
322
+ this._useModal ? _1.Modal.setFooter(elButtons) : _1.CanvasForm.BodyElement.appendChild(elButtons);
307
323
  }
308
- // Append the create/update button
309
- this._useModal ? _1.Modal.setFooter(elButtons) : _1.CanvasForm.BodyElement.appendChild(elButtons);
310
324
  // See if we are rendering a display form
311
325
  if (this.IsDisplay) {
312
326
  // Call the item form button rendering event
@@ -333,7 +347,7 @@ var ItemForm = /** @class */ (function () {
333
347
  }) : null;
334
348
  }
335
349
  // Call the footer event
336
- this._onSetFooter ? this._onSetFooter(this._useModal ? _1.Modal.FooterElement : elButtons) : null;
350
+ this._onSetFooter ? this._onSetFooter(elFooter || (this._useModal ? _1.Modal.FooterElement : elButtons)) : null;
337
351
  };
338
352
  // Renders the form
339
353
  ItemForm.renderForm = function () {
@@ -358,8 +372,8 @@ var ItemForm = /** @class */ (function () {
358
372
  // Update the body
359
373
  (this._useModal ? _1.Modal : _1.CanvasForm).setBody(elForm);
360
374
  }
361
- // Render the footer
362
- this.renderFooter();
375
+ // Render the form footer
376
+ this.renderFormFooter();
363
377
  // Call the event
364
378
  this._onShowForm ? this._onShowForm(this._useModal ? _1.Modal : _1.CanvasForm) : null;
365
379
  // Show the form
@@ -0,0 +1,12 @@
1
+ import { Helper, Types } from "gd-sprest-bs";
2
+ export interface IListConfig {
3
+ cfg: Helper.ISPConfigProps;
4
+ lookupFields: Types.SP.FieldLookup[];
5
+ }
6
+ /**
7
+ * List Configuration Generator
8
+ */
9
+ export declare class ListConfig {
10
+ private static InternalFields;
11
+ static generate(srcWebUrl: string, srcList: Types.SP.List, showDialog?: boolean): PromiseLike<IListConfig>;
12
+ }
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListConfig = void 0;
4
+ var gd_sprest_bs_1 = require("gd-sprest-bs");
5
+ var loadingDialog_1 = require("./loadingDialog");
6
+ var list_1 = require("./list");
7
+ /**
8
+ * List Configuration Generator
9
+ */
10
+ var ListConfig = /** @class */ (function () {
11
+ function ListConfig() {
12
+ }
13
+ // Generates the list configuration
14
+ ListConfig.generate = function (srcWebUrl, srcList, showDialog) {
15
+ var _this = this;
16
+ if (showDialog === void 0) { showDialog = true; }
17
+ // See if we are showing a loading dialog
18
+ if (showDialog) {
19
+ // Show a loading dialog
20
+ loadingDialog_1.LoadingDialog.setHeader("Loading List");
21
+ loadingDialog_1.LoadingDialog.setBody("Getting the source list configuration...");
22
+ loadingDialog_1.LoadingDialog.show();
23
+ }
24
+ // Return a promise
25
+ return new Promise(function (resolve, reject) {
26
+ // Get the list information
27
+ var list = new list_1.List({
28
+ listName: srcList.Title,
29
+ webUrl: srcWebUrl,
30
+ itemQuery: { Filter: "Id eq 0" },
31
+ onInitError: function () {
32
+ // Reject the request
33
+ reject("Error loading the list information. Please check your permission to the source list.");
34
+ },
35
+ onInitialized: function () {
36
+ var calcFields = [];
37
+ var fields = {};
38
+ var lookupFields = [];
39
+ // Update the loading dialog
40
+ loadingDialog_1.LoadingDialog.setBody("Analyzing the list information...");
41
+ // Create the configuration
42
+ var cfgProps = {
43
+ ListCfg: [{
44
+ ListInformation: {
45
+ AllowContentTypes: list.ListInfo.AllowContentTypes,
46
+ BaseTemplate: list.ListInfo.BaseTemplate,
47
+ ContentTypesEnabled: list.ListInfo.ContentTypesEnabled,
48
+ Title: srcList.Title,
49
+ Hidden: list.ListInfo.Hidden,
50
+ NoCrawl: list.ListInfo.NoCrawl
51
+ },
52
+ ContentTypes: [],
53
+ CustomFields: [],
54
+ ViewInformation: []
55
+ }]
56
+ };
57
+ // Parse the content types
58
+ for (var i = 0; i < list.ListContentTypes.length; i++) {
59
+ var ct = list.ListContentTypes[i];
60
+ // Skip sealed content types
61
+ if (ct.Sealed) {
62
+ continue;
63
+ }
64
+ // Parse the content type fields
65
+ var fieldRefs = [];
66
+ for (var j = 0; j < ct.FieldLinks.results.length; j++) {
67
+ var fldInfo = list.getField(ct.FieldLinks.results[j].Name);
68
+ // See if this is a lookup field
69
+ if (fldInfo.FieldTypeKind == gd_sprest_bs_1.SPTypes.FieldType.Lookup) {
70
+ // Ensure this isn't an associated lookup field
71
+ if (fldInfo.IsDependentLookup != true) {
72
+ // Append the field ref
73
+ fieldRefs.push(fldInfo.InternalName);
74
+ }
75
+ }
76
+ else {
77
+ // Append the field ref
78
+ fieldRefs.push(fldInfo.InternalName);
79
+ }
80
+ // Skip internal fields
81
+ if (_this.InternalFields.indexOf(fldInfo.InternalName) >= 0) {
82
+ continue;
83
+ }
84
+ // See if this is a calculated field
85
+ if (fldInfo.FieldTypeKind == gd_sprest_bs_1.SPTypes.FieldType.Calculated) {
86
+ // Add the field and continue the loop
87
+ calcFields.push(fldInfo);
88
+ }
89
+ // Else, see if this is a lookup field
90
+ else if (fldInfo.FieldTypeKind == gd_sprest_bs_1.SPTypes.FieldType.Lookup) {
91
+ // Add the field
92
+ lookupFields.push(fldInfo);
93
+ }
94
+ // Else, ensure the field hasn't been added
95
+ else if (fields[fldInfo.InternalName] == null) {
96
+ // Add the field information
97
+ fields[fldInfo.InternalName] = true;
98
+ cfgProps.ListCfg[0].CustomFields.push({
99
+ name: fldInfo.InternalName,
100
+ schemaXml: fldInfo.SchemaXml
101
+ });
102
+ }
103
+ }
104
+ // Add the list content type
105
+ cfgProps.ListCfg[0].ContentTypes.push({
106
+ Name: ct.Name,
107
+ Description: ct.Description,
108
+ ParentName: ct.Name,
109
+ FieldRefs: fieldRefs
110
+ });
111
+ }
112
+ // Parse the views
113
+ for (var i = 0; i < list.ListViews.length; i++) {
114
+ var viewInfo = list.ListViews[i];
115
+ // Skip hidden views
116
+ if (viewInfo.Hidden) {
117
+ continue;
118
+ }
119
+ // Parse the fields
120
+ for (var j = 0; j < viewInfo.ViewFields.Items.results.length; j++) {
121
+ var field = list.getField(viewInfo.ViewFields.Items.results[j]);
122
+ // Ensure the field exists
123
+ if (fields[field.InternalName] == null) {
124
+ // See if this is a calculated field
125
+ if (field.FieldTypeKind == gd_sprest_bs_1.SPTypes.FieldType.Calculated) {
126
+ // Add the field and continue the loop
127
+ calcFields.push(field);
128
+ }
129
+ // Else, see if this is a lookup field
130
+ else if (field.FieldTypeKind == gd_sprest_bs_1.SPTypes.FieldType.Lookup) {
131
+ // Add the field
132
+ lookupFields.push(field);
133
+ }
134
+ else {
135
+ // Append the field
136
+ fields[field.InternalName] = true;
137
+ cfgProps.ListCfg[0].CustomFields.push({
138
+ name: field.InternalName,
139
+ schemaXml: field.SchemaXml
140
+ });
141
+ }
142
+ }
143
+ }
144
+ // Add the view
145
+ cfgProps.ListCfg[0].ViewInformation.push({
146
+ Default: viewInfo.DefaultView,
147
+ Hidden: viewInfo.Hidden,
148
+ JSLink: viewInfo.JSLink,
149
+ MobileDefaultView: viewInfo.MobileDefaultView,
150
+ MobileView: viewInfo.MobileView,
151
+ RowLimit: viewInfo.RowLimit,
152
+ Tabular: viewInfo.TabularView,
153
+ ViewName: viewInfo.Title,
154
+ ViewFields: viewInfo.ViewFields.Items.results,
155
+ ViewQuery: viewInfo.ViewQuery
156
+ });
157
+ }
158
+ // Update the loading dialog
159
+ loadingDialog_1.LoadingDialog.setBody("Analyzing the lookup fields...");
160
+ // Parse the lookup fields
161
+ gd_sprest_bs_1.Helper.Executor(lookupFields, function (lookupField) {
162
+ // Skip the field, if it was already added
163
+ if (fields[lookupField.InternalName]) {
164
+ return;
165
+ }
166
+ // Return a promise
167
+ return new Promise(function (resolve) {
168
+ // Get the lookup list
169
+ (0, gd_sprest_bs_1.Web)(srcWebUrl).Lists().getById(lookupField.LookupList).execute(function (list) {
170
+ // Add the lookup list field
171
+ fields[lookupField.InternalName] = true;
172
+ cfgProps.ListCfg[0].CustomFields.push({
173
+ description: lookupField.Description,
174
+ fieldRef: lookupField.PrimaryFieldId,
175
+ hidden: lookupField.Hidden,
176
+ id: lookupField.Id,
177
+ indexed: lookupField.Indexed,
178
+ listName: list.Title,
179
+ multi: lookupField.AllowMultipleValues,
180
+ name: lookupField.InternalName,
181
+ readOnly: lookupField.ReadOnlyField,
182
+ relationshipBehavior: lookupField.RelationshipDeleteBehavior,
183
+ required: lookupField.Required,
184
+ showField: lookupField.LookupField,
185
+ title: lookupField.Title,
186
+ type: gd_sprest_bs_1.Helper.SPCfgFieldType.Lookup
187
+ });
188
+ // Check the next field
189
+ resolve(null);
190
+ }, function (err) {
191
+ // Broken lookup field, don't add it
192
+ console.log("Error trying to find lookup list for field '" + lookupField.InternalName + "' with id: " + lookupField.LookupList);
193
+ resolve(null);
194
+ });
195
+ });
196
+ }).then(function () {
197
+ // Update the loading dialog
198
+ loadingDialog_1.LoadingDialog.setBody("Analyzing the calculated fields...");
199
+ // Parse the calculated fields
200
+ for (var i = 0; i < calcFields.length; i++) {
201
+ var calcField = calcFields[i];
202
+ if (fields[calcField.InternalName] == null) {
203
+ var parser = new DOMParser();
204
+ var schemaXml = parser.parseFromString(calcField.SchemaXml, "application/xml");
205
+ // Get the formula
206
+ var formula = schemaXml.querySelector("Formula");
207
+ // Parse the field refs
208
+ var fieldRefs = schemaXml.querySelectorAll("FieldRef");
209
+ for (var j = 0; j < fieldRefs.length; j++) {
210
+ var fieldRef = fieldRefs[j].getAttribute("Name");
211
+ // Ensure the field exists
212
+ var field = list.getField(fieldRef);
213
+ if (field) {
214
+ // Calculated formulas are supposed to contain the display name
215
+ // Replace any instance of the internal field w/ the correct format
216
+ var regexp = new RegExp(fieldRef, "g");
217
+ formula.innerHTML = formula.innerHTML.replace(regexp, "[" + field.Title + "]");
218
+ }
219
+ }
220
+ // Append the field
221
+ fields[calcField.InternalName] = true;
222
+ cfgProps.ListCfg[0].CustomFields.push({
223
+ name: calcField.InternalName,
224
+ schemaXml: schemaXml.querySelector("Field").outerHTML
225
+ });
226
+ }
227
+ }
228
+ // Hide the loading dialog
229
+ showDialog ? loadingDialog_1.LoadingDialog.hide() : null;
230
+ // Resolve the request
231
+ resolve({
232
+ cfg: cfgProps,
233
+ lookupFields: lookupFields
234
+ });
235
+ });
236
+ }
237
+ });
238
+ });
239
+ };
240
+ // Internal Fields
241
+ ListConfig.InternalFields = [
242
+ "ContentType", "TaxCatchAll", "TaxCatchAllLabel", "Title"
243
+ ];
244
+ return ListConfig;
245
+ }());
246
+ exports.ListConfig = ListConfig;
package/build/lib.d.ts CHANGED
@@ -21,6 +21,7 @@ export declare const DattaTable: {
21
21
  InstallationRequired: typeof Common.InstallationRequired;
22
22
  ItemForm: typeof Common.ItemForm;
23
23
  List: typeof Common.List;
24
+ ListConfig: typeof Common.ListConfig;
24
25
  ListSecurityDefaultGroups: {
25
26
  Members: string;
26
27
  Owners: string;
@@ -71,7 +71,7 @@ eval("\r\nvar __assign = (this && this.__assign) || function () {\r\n __assig
71
71
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
72
72
 
73
73
  "use strict";
74
- eval("\r\n/** Common Components */\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n__exportStar(__webpack_require__(/*! ./canvas */ \"./build/common/canvas.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./comments */ \"./build/common/comments.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./documents */ \"./build/common/documents.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./installRequired */ \"./build/common/installRequired.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./itemForm */ \"./build/common/itemForm.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./list */ \"./build/common/list.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./listSecurity */ \"./build/common/listSecurity.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./loadingDialog */ \"./build/common/loadingDialog.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./methods */ \"./build/common/methods.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./modal */ \"./build/common/modal.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./timeout */ \"./build/common/timeout.js\"), exports);\r\n\n\n//# sourceURL=webpack://dattatable/./build/common/index.js?");
74
+ eval("\r\n/** Common Components */\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n__exportStar(__webpack_require__(/*! ./canvas */ \"./build/common/canvas.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./comments */ \"./build/common/comments.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./documents */ \"./build/common/documents.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./installRequired */ \"./build/common/installRequired.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./itemForm */ \"./build/common/itemForm.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./list */ \"./build/common/list.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./list-cfg */ \"./build/common/list-cfg.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./listSecurity */ \"./build/common/listSecurity.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./loadingDialog */ \"./build/common/loadingDialog.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./methods */ \"./build/common/methods.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./modal */ \"./build/common/modal.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./timeout */ \"./build/common/timeout.js\"), exports);\r\n\n\n//# sourceURL=webpack://dattatable/./build/common/index.js?");
75
75
 
76
76
  /***/ }),
77
77
 
@@ -93,7 +93,18 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
93
93
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
94
94
 
95
95
  "use strict";
96
- eval("\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ItemForm = void 0;\r\nvar gd_sprest_bs_1 = __webpack_require__(/*! gd-sprest-bs */ \"./node_modules/.pnpm/gd-sprest-bs@10.11.82/node_modules/gd-sprest-bs/build/index.js\");\r\nvar _1 = __webpack_require__(/*! . */ \"./build/common/index.js\");\r\n/**\r\n * Item Form\r\n */\r\nvar ItemForm = /** @class */ (function () {\r\n function ItemForm() {\r\n }\r\n Object.defineProperty(ItemForm, \"AutoClose\", {\r\n // Auto Close Flag\r\n set: function (value) {\r\n // Update the flag\r\n this.UseModal ? _1.Modal.setAutoClose(value) : _1.CanvasForm.setAutoClose(value);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"DisplayForm\", {\r\n get: function () { return this._displayForms[0]; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"DisplayForms\", {\r\n get: function () { return this._displayForms; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"EditForm\", {\r\n get: function () { return this._editForms[0]; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"EditForms\", {\r\n get: function () { return this._editForms; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"FormInfo\", {\r\n get: function () { return this._info; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"IsDisplay\", {\r\n get: function () { return this._controlMode == gd_sprest_bs_1.SPTypes.ControlMode.Display; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"IsEdit\", {\r\n get: function () { return this._controlMode == gd_sprest_bs_1.SPTypes.ControlMode.Edit; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"IsNew\", {\r\n get: function () { return this._controlMode == gd_sprest_bs_1.SPTypes.ControlMode.New; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"ListName\", {\r\n get: function () { return this._listName; },\r\n set: function (value) { this._listName = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"Tabs\", {\r\n get: function () { return this._tabs; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"UseModal\", {\r\n get: function () { return this._useModal; },\r\n set: function (value) { this._useModal = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // Sets the size of the modal or canvas\r\n ItemForm.setSize = function (value) {\r\n // Set the modal type or offcanvas size\r\n this._useModal ? _1.Modal.setType(value) : _1.CanvasForm.setSize(value);\r\n };\r\n /** Public Methods */\r\n // Closes the item form\r\n ItemForm.close = function () {\r\n this._useModal ? _1.Modal.hide() : _1.CanvasForm.hide();\r\n };\r\n // Creates a new task\r\n ItemForm.create = function (props) {\r\n if (props === void 0) { props = {}; }\r\n // Set the properties\r\n this._controlMode = gd_sprest_bs_1.SPTypes.ControlMode.New;\r\n this._elForm = props.elForm;\r\n this._info = props.info;\r\n this._onCreateEditForm = props.onCreateEditForm;\r\n this._onFormButtonsRendering = props.onFormButtonsRendering;\r\n this._onFormRendered = props.onFormRendered;\r\n this._onGetListInfo = props.onGetListInfo;\r\n this._onResetForm = props.onResetForm;\r\n this._onSave = props.onSave;\r\n this._onSetFooter = props.onSetFooter;\r\n this._onSetHeader = props.onSetHeader;\r\n this._onShowForm = props.onShowForm;\r\n this._onValidation = props.onValidation;\r\n this._tabInfo = props.tabInfo;\r\n this._updateEvent = props.onUpdate;\r\n typeof (props.useModal) === \"boolean\" ? this._useModal = props.useModal : false;\r\n // Load the item\r\n return this.load(props.webUrl);\r\n };\r\n // Edits a task\r\n ItemForm.edit = function (props) {\r\n // Set the properties\r\n this._controlMode = gd_sprest_bs_1.SPTypes.ControlMode.Edit;\r\n this._elForm = props.elForm;\r\n this._info = props.info;\r\n this._onCreateEditForm = props.onCreateEditForm;\r\n this._onFormButtonsRendering = props.onFormButtonsRendering;\r\n this._onGetListInfo = props.onGetListInfo;\r\n this._onSave = props.onSave;\r\n this._onSetFooter = props.onSetFooter;\r\n this._onSetHeader = props.onSetHeader;\r\n this._onShowForm = props.onShowForm;\r\n this._onValidation = props.onValidation;\r\n this._tabInfo = props.tabInfo;\r\n this._updateEvent = props.onUpdate;\r\n typeof (props.useModal) === \"boolean\" ? this._useModal = props.useModal : false;\r\n // Load the form\r\n return this.load(props.webUrl, props.itemId);\r\n };\r\n // Loads the form information\r\n ItemForm.loadFormInfo = function (props) {\r\n var _this = this;\r\n // Return a promise\r\n return new Promise(function (resolve) {\r\n // Load the form info\r\n gd_sprest_bs_1.Helper.ListForm.create(props).then(function (info) {\r\n // Save the information\r\n _this._info = info;\r\n // Resolve the request\r\n resolve();\r\n });\r\n });\r\n };\r\n // Views the task\r\n ItemForm.view = function (props) {\r\n // Set the properties\r\n this._controlMode = gd_sprest_bs_1.SPTypes.ControlMode.Display;\r\n this._elForm = props.elForm;\r\n this._info = props.info;\r\n this._onCreateViewForm = props.onCreateViewForm;\r\n this._onFormButtonsRendering = props.onFormButtonsRendering;\r\n this._onGetListInfo = props.onGetListInfo;\r\n this._onSetFooter = props.onSetFooter;\r\n this._onSetHeader = props.onSetHeader;\r\n this._onShowForm = props.onShowForm;\r\n this._tabInfo = props.tabInfo;\r\n typeof (props.useModal) === \"boolean\" ? this._useModal = props.useModal : false;\r\n // Load the form\r\n return this.load(props.webUrl, props.itemId);\r\n };\r\n /** Private Methods */\r\n // Load the form information\r\n ItemForm.load = function (webUrl, itemId) {\r\n var _this = this;\r\n // Clear the forms\r\n this._displayForms = [];\r\n this._editForms = [];\r\n // Show a loading dialog\r\n _1.LoadingDialog.setHeader(\"Loading the Item\");\r\n _1.LoadingDialog.setBody(\"This will close after the form is loaded...\");\r\n _1.LoadingDialog.show();\r\n // Return a promise\r\n return new Promise(function (resolve, reject) {\r\n // Code to run after the data is loaded\r\n var onComplete = function () {\r\n // Render the form\r\n _this.renderForm();\r\n // Resolve the request\r\n resolve(null);\r\n };\r\n // Get the context information\r\n (0, _1.getContextInfo)(webUrl).then(function (requestDigest) {\r\n // Set the request digest\r\n _this._requestDigest = requestDigest;\r\n // See if the info already exists\r\n if (_this._info) {\r\n // Form information is already loaded\r\n onComplete();\r\n }\r\n else {\r\n // Set the list form properties\r\n var listProps = {\r\n listName: _this.ListName,\r\n itemId: itemId,\r\n requestDigest: requestDigest,\r\n webUrl: webUrl\r\n };\r\n // Call the event\r\n listProps = _this._onGetListInfo ? _this._onGetListInfo(listProps) : listProps;\r\n // Load the form info\r\n gd_sprest_bs_1.Helper.ListForm.create(listProps).then(function (info) {\r\n // Save the information\r\n _this._info = info;\r\n // Form information is already loaded\r\n onComplete();\r\n }, reject);\r\n }\r\n });\r\n });\r\n };\r\n // Renders the display form\r\n ItemForm.renderDisplayForm = function (el, tab) {\r\n // Ensure the element exists\r\n el = el || document.createElement(\"div\");\r\n // Set the form properties\r\n var displayAttachments = tab ? tab.fields && tab.fields.indexOf(\"Attachments\") >= 0 : this.FormInfo.attachments != null;\r\n var props = {\r\n el: el,\r\n displayAttachments: displayAttachments,\r\n excludeFields: tab ? tab.excludeFields : null,\r\n includeFields: tab ? tab.fields : null,\r\n info: this._info,\r\n rowClassName: \"mb-3\"\r\n };\r\n // See if we are rendering a tab\r\n if (tab && tab.onCreateForm) {\r\n // Call the event\r\n props = tab.onCreateForm(props);\r\n }\r\n // Call the event if it exists\r\n props = this._onCreateViewForm ? this._onCreateViewForm(props) : props;\r\n // Override the form rendered event\r\n var customEvent = props.onFormRendered;\r\n props.onFormRendered = function (listForm) {\r\n /* Remove the bottom margin from the last row of the form */\r\n listForm.el.lastChild.classList.remove(\"mb-3\");\r\n // Call the event if it exists\r\n tab && tab.onFormRendered ? tab.onFormRendered(form) : null;\r\n // Call the custom event if it exists\r\n customEvent ? customEvent(listForm) : null;\r\n };\r\n // Render the display form\r\n var form = gd_sprest_bs_1.Components.ListForm.renderDisplayForm(props);\r\n this._displayForms.push(form);\r\n // Return the form element\r\n return el;\r\n };\r\n // Renders the edit form\r\n ItemForm.renderEditForm = function (el, tab) {\r\n // Ensure the element exists\r\n el = el || document.createElement(\"div\");\r\n // Set the form properties\r\n var displayAttachments = tab ? tab.fields && tab.fields.indexOf(\"Attachments\") >= 0 : this.FormInfo.attachments != null;\r\n var props = {\r\n el: el,\r\n displayAttachments: displayAttachments,\r\n excludeFields: tab ? tab.excludeFields : null,\r\n includeFields: tab ? tab.fields : null,\r\n info: this._info,\r\n rowClassName: \"mb-3\",\r\n controlMode: this.IsNew ? gd_sprest_bs_1.SPTypes.ControlMode.New : gd_sprest_bs_1.SPTypes.ControlMode.Edit\r\n };\r\n // See if we are rendering a tab\r\n if (tab && tab.onCreateForm) {\r\n // Call the event\r\n props = tab.onCreateForm(props);\r\n }\r\n // Call the event if it exists\r\n props = this._onCreateEditForm ? this._onCreateEditForm(props) : props;\r\n // Override the form rendered event\r\n var customEvent = props.onFormRendered;\r\n props.onFormRendered = function (listForm) {\r\n /* Remove the bottom margin from the last row of the form */\r\n listForm.el.lastChild.classList.remove(\"mb-3\");\r\n // Call the event if it exists\r\n tab && tab.onFormRendered ? tab.onFormRendered(form) : null;\r\n // Call the custom event if it exists\r\n customEvent ? customEvent(listForm) : null;\r\n };\r\n // Render the edit form\r\n var form = gd_sprest_bs_1.Components.ListForm.renderEditForm(props);\r\n this._editForms.push(form);\r\n // Return the form element\r\n return el;\r\n };\r\n // Renders the footer\r\n ItemForm.renderFooter = function () {\r\n var _this = this;\r\n // Render the form buttons\r\n var elButtons = document.createElement(\"div\");\r\n // Add styling if not using a modal\r\n if (!this._useModal) {\r\n elButtons.classList.add(\"float-end\");\r\n elButtons.style.padding = \"1rem 0\";\r\n }\r\n // Append the create/update button\r\n this._useModal ? _1.Modal.setFooter(elButtons) : _1.CanvasForm.BodyElement.appendChild(elButtons);\r\n // See if we are rendering a display form\r\n if (this.IsDisplay) {\r\n // Call the item form button rendering event\r\n var formButtons = [];\r\n formButtons = this._onFormButtonsRendering ? this._onFormButtonsRendering(formButtons) : formButtons;\r\n // Render the form buttons\r\n formButtons && formButtons.length > 0 ? gd_sprest_bs_1.Components.ButtonGroup({\r\n el: elButtons,\r\n buttons: formButtons\r\n }) : null;\r\n }\r\n else {\r\n // Call the item form button rendering event\r\n var formButtons = [{\r\n text: this.IsNew ? \"Create\" : \"Update\",\r\n type: gd_sprest_bs_1.Components.ButtonTypes.OutlinePrimary,\r\n onClick: function () { _this.save(); }\r\n }];\r\n formButtons = this._onFormButtonsRendering ? this._onFormButtonsRendering(formButtons) : formButtons;\r\n // Render the form buttons\r\n formButtons && formButtons.length > 0 ? gd_sprest_bs_1.Components.ButtonGroup({\r\n el: elButtons,\r\n buttons: formButtons\r\n }) : null;\r\n }\r\n // Call the footer event\r\n this._onSetFooter ? this._onSetFooter(this._useModal ? _1.Modal.FooterElement : elButtons) : null;\r\n };\r\n // Renders the form\r\n ItemForm.renderForm = function () {\r\n // See if we are not rendering to a custom element\r\n if (this._elForm == null) {\r\n // Clear the form\r\n (this._useModal ? _1.Modal : _1.CanvasForm).clear();\r\n // Call the event\r\n this._onResetForm ? this._onResetForm() : null;\r\n // Set the header\r\n (this._useModal ? _1.Modal : _1.CanvasForm).setHeader('<h5 class=\"m-0\">' + (this._info.item ? this._info.item.Title : \"Create Item\") + '</h5>');\r\n // Call the header event\r\n this._onSetHeader ? this._onSetHeader(this._useModal ? _1.Modal.HeaderElement : _1.CanvasForm.HeaderElement) : null;\r\n // See if we are rendering tabs\r\n if (this._tabInfo) {\r\n // Render the tabs\r\n this.renderTabs();\r\n }\r\n else {\r\n // Render the form based on the type\r\n var elForm = this.IsDisplay ? this.renderDisplayForm() : this.renderEditForm();\r\n // Update the body\r\n (this._useModal ? _1.Modal : _1.CanvasForm).setBody(elForm);\r\n }\r\n // Render the footer\r\n this.renderFooter();\r\n // Call the event\r\n this._onShowForm ? this._onShowForm(this._useModal ? _1.Modal : _1.CanvasForm) : null;\r\n // Show the form\r\n (this._useModal ? _1.Modal : _1.CanvasForm).show();\r\n }\r\n else {\r\n // See if we are rendering tabs\r\n if (this._tabInfo) {\r\n // Render the tabs\r\n this.renderTabs();\r\n }\r\n else {\r\n // Render the form based on the type\r\n var elForm = this.IsDisplay ? this.renderDisplayForm() : this.renderEditForm();\r\n // Copy the elements\r\n for (var i = 0; i < elForm.children.length; i++) {\r\n // Append the element\r\n this._elForm.appendChild(elForm.children[i]);\r\n }\r\n }\r\n }\r\n // Call the rendered event\r\n this._onFormRendered ? this._onFormRendered(this.IsDisplay ? this.DisplayForm : this.EditForm) : null;\r\n // Close the dialog\r\n _1.LoadingDialog.hide();\r\n };\r\n // Generates a tab\r\n ItemForm.renderTabs = function () {\r\n var _this = this;\r\n var tabs = [];\r\n // Parse the tabs to render\r\n for (var i = 0; i < this._tabInfo.tabs.length; i++) {\r\n var tabInfo = this._tabInfo.tabs[i];\r\n // Generate the tab\r\n var tab = {\r\n data: tabInfo,\r\n isActive: i == 0,\r\n tabName: tabInfo.title,\r\n onClick: this._tabInfo.onClick,\r\n onRender: function (el, item) {\r\n var tab = item.data;\r\n // Render the form\r\n _this.IsDisplay ? _this.renderDisplayForm(el, tab) : _this.renderEditForm(el, tab);\r\n // Call the event\r\n tab.onRendered ? tab.onRendered(el, item) : null;\r\n }\r\n };\r\n // Call the rendering event\r\n tab = tabInfo.onRendering ? tabInfo.onRendering(tab) : tab;\r\n if (tab) {\r\n // Append the tab\r\n tabs.push(tab);\r\n }\r\n }\r\n // Render the tabs\r\n this._tabs = gd_sprest_bs_1.Components.ListGroup({\r\n el: this._elForm || (this.UseModal ? _1.Modal.BodyElement : _1.CanvasForm.BodyElement),\r\n colWidth: this._tabInfo.isVertical ? 4 : 12,\r\n isTabs: true,\r\n isHorizontal: this._tabInfo.isVertical != true,\r\n items: tabs\r\n });\r\n // Return the tabs element\r\n return this._tabs.el;\r\n };\r\n // Saves the edit form\r\n ItemForm.save = function (form) {\r\n var _this = this;\r\n var values = {};\r\n // Default the form\r\n var forms = form ? [form] : this._editForms;\r\n var defaultForm = forms[0];\r\n // Display a loading dialog\r\n _1.LoadingDialog.setHeader(\"Validation\");\r\n _1.LoadingDialog.setBody(\"Validating the form...\");\r\n _1.LoadingDialog.show();\r\n // Validate the forms\r\n var isValid = true;\r\n var counter = 0;\r\n gd_sprest_bs_1.Helper.Executor(forms, function (form) {\r\n // Update the values\r\n values = __assign(__assign({}, values), form.getValues());\r\n // See if this form has attachments\r\n if (form.hasAttachments()) {\r\n // Set the default form\r\n defaultForm = form;\r\n }\r\n // Validate the form\r\n var tabIsValid = form.isValid();\r\n // See if we are using tabs and an event exists\r\n var tabInfo = _this._tabInfo && _this._tabInfo.tabs[counter];\r\n if (tabInfo && tabInfo.onValidation) {\r\n // Call the event\r\n tabIsValid = tabInfo.onValidation(values);\r\n }\r\n // See if the form is not valid\r\n if (!tabIsValid) {\r\n // Set the flag\r\n isValid = false;\r\n }\r\n // See if tabs exist\r\n if (_this.Tabs) {\r\n // Get the tab\r\n var tab = _this.Tabs.el.querySelectorAll(\".list-group-item\")[counter++];\r\n if (tab) {\r\n // Clear the class name\r\n tab.classList.remove(\"is-valid\");\r\n tab.classList.remove(\"is-invalid\");\r\n // Set the class name\r\n tab.classList.add(tabIsValid ? \"is-valid\" : \"is-invalid\");\r\n }\r\n }\r\n // Set the tab class\r\n }).then(\r\n // Success\r\n function () {\r\n // Call the custom validation event\r\n _this.validate(values, isValid).then(\r\n // Valid\r\n function (isValid) {\r\n // See if the form(s) are valid\r\n if (isValid) {\r\n // Update the loading dialog\r\n _1.LoadingDialog.setHeader(\"Saving the Item\");\r\n _1.LoadingDialog.setBody((_this.IsNew ? \"Creating\" : \"Updating\") + \" the Item\");\r\n // Saves the item\r\n var saveItem_1 = function (values) {\r\n // If values is null then do nothing. This would happen when the\r\n // onSave event wants to cancel the save and do something custom\r\n if (values) {\r\n // Save the item\r\n defaultForm.save(values).then(function (item) {\r\n // Call the update event\r\n _this._updateEvent ? _this._updateEvent(item) : null;\r\n // Close the dialogs\r\n (_this._useModal ? _1.Modal : _1.CanvasForm).hide();\r\n _1.LoadingDialog.hide();\r\n });\r\n }\r\n };\r\n // Call the save event and ensure values exist\r\n values = _this._onSave ? _this._onSave(values) : values;\r\n // See if the onSave event returned a promise\r\n if (values && typeof (values[\"then\"]) === \"function\") {\r\n // Wait for the promise to complete\r\n values[\"then\"](function (values) {\r\n // Save the item\r\n saveItem_1(values);\r\n });\r\n }\r\n else {\r\n // Save the item\r\n saveItem_1(values);\r\n }\r\n }\r\n else {\r\n // Close the dialog\r\n _1.LoadingDialog.hide();\r\n }\r\n }, \r\n // Not Valid\r\n function () {\r\n // Close the dialog\r\n _1.LoadingDialog.hide();\r\n });\r\n });\r\n };\r\n // Validates the form\r\n ItemForm.validate = function (values, isValid) {\r\n var _this = this;\r\n // Return a promise\r\n return new Promise(function (resolve, reject) {\r\n // Call the validation event\r\n var returnVal = _this._onValidation ? _this._onValidation(values, isValid) : null;\r\n // See if it's a promise function\r\n if (returnVal && typeof (returnVal.then) === \"function\") {\r\n // Wait for the promise to complete\r\n returnVal.then(function (returnVal) {\r\n // Resolve the request\r\n isValid = typeof (returnVal) === \"boolean\" ? returnVal : isValid;\r\n isValid ? resolve(isValid) : reject();\r\n });\r\n }\r\n else {\r\n // Update the flag\r\n isValid = typeof (returnVal) === \"boolean\" ? returnVal : isValid;\r\n // Resolve the request\r\n isValid ? resolve(isValid) : reject();\r\n }\r\n });\r\n };\r\n ItemForm._elForm = null;\r\n ItemForm._onCreateEditForm = null;\r\n ItemForm._onCreateViewForm = null;\r\n ItemForm._onFormButtonsRendering = null;\r\n ItemForm._onFormRendered = null;\r\n ItemForm._onGetListInfo = null;\r\n ItemForm._onResetForm = null;\r\n ItemForm._onSetFooter = null;\r\n ItemForm._onSetHeader = null;\r\n ItemForm._onShowForm = null;\r\n ItemForm._onSave = null;\r\n ItemForm._onValidation = null;\r\n ItemForm._requestDigest = null;\r\n ItemForm._tabInfo = null;\r\n ItemForm._updateEvent = null;\r\n // Display Form\r\n ItemForm._displayForms = null;\r\n // Edit Form\r\n ItemForm._editForms = null;\r\n // Form Information\r\n ItemForm._info = null;\r\n // Form Modes\r\n ItemForm._controlMode = null;\r\n // List name\r\n ItemForm._listName = null;\r\n // List Form Tabs\r\n ItemForm._tabs = null;\r\n // Flag to use a modal or canvas (default)\r\n ItemForm._useModal = false;\r\n return ItemForm;\r\n}());\r\nexports.ItemForm = ItemForm;\r\n\n\n//# sourceURL=webpack://dattatable/./build/common/itemForm.js?");
96
+ eval("\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ItemForm = void 0;\r\nvar gd_sprest_bs_1 = __webpack_require__(/*! gd-sprest-bs */ \"./node_modules/.pnpm/gd-sprest-bs@10.11.82/node_modules/gd-sprest-bs/build/index.js\");\r\nvar _1 = __webpack_require__(/*! . */ \"./build/common/index.js\");\r\n/**\r\n * Item Form\r\n */\r\nvar ItemForm = /** @class */ (function () {\r\n function ItemForm() {\r\n }\r\n Object.defineProperty(ItemForm, \"AutoClose\", {\r\n // Auto Close Flag\r\n set: function (value) {\r\n // Update the flag\r\n this.UseModal ? _1.Modal.setAutoClose(value) : _1.CanvasForm.setAutoClose(value);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"DisplayForm\", {\r\n get: function () { return this._displayForms[0]; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"DisplayForms\", {\r\n get: function () { return this._displayForms; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"EditForm\", {\r\n get: function () { return this._editForms[0]; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"EditForms\", {\r\n get: function () { return this._editForms; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"FormInfo\", {\r\n get: function () { return this._info; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"IsDisplay\", {\r\n get: function () { return this._controlMode == gd_sprest_bs_1.SPTypes.ControlMode.Display; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"IsEdit\", {\r\n get: function () { return this._controlMode == gd_sprest_bs_1.SPTypes.ControlMode.Edit; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"IsNew\", {\r\n get: function () { return this._controlMode == gd_sprest_bs_1.SPTypes.ControlMode.New; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"ListName\", {\r\n get: function () { return this._listName; },\r\n set: function (value) { this._listName = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"Tabs\", {\r\n get: function () { return this._tabs; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ItemForm, \"UseModal\", {\r\n get: function () { return this._useModal; },\r\n set: function (value) { this._useModal = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // Sets the size of the modal or canvas\r\n ItemForm.setSize = function (value) {\r\n // Set the modal type or offcanvas size\r\n this._useModal ? _1.Modal.setType(value) : _1.CanvasForm.setSize(value);\r\n };\r\n /** Public Methods */\r\n // Closes the item form\r\n ItemForm.close = function () {\r\n this._useModal ? _1.Modal.hide() : _1.CanvasForm.hide();\r\n };\r\n // Creates a new task\r\n ItemForm.create = function (props) {\r\n if (props === void 0) { props = {}; }\r\n // Set the properties\r\n this._controlMode = gd_sprest_bs_1.SPTypes.ControlMode.New;\r\n this._elForm = props.elForm;\r\n this._info = props.info;\r\n this._onCreateEditForm = props.onCreateEditForm;\r\n this._onFormButtonsRendering = props.onFormButtonsRendering;\r\n this._onFormRendered = props.onFormRendered;\r\n this._onGetListInfo = props.onGetListInfo;\r\n this._onResetForm = props.onResetForm;\r\n this._onSave = props.onSave;\r\n this._onSetFooter = props.onSetFooter;\r\n this._onSetHeader = props.onSetHeader;\r\n this._onShowForm = props.onShowForm;\r\n this._onValidation = props.onValidation;\r\n this._tabInfo = props.tabInfo;\r\n this._updateEvent = props.onUpdate;\r\n typeof (props.useModal) === \"boolean\" ? this._useModal = props.useModal : false;\r\n // Load the item\r\n return this.load(props.webUrl);\r\n };\r\n // Edits a task\r\n ItemForm.edit = function (props) {\r\n // Set the properties\r\n this._controlMode = gd_sprest_bs_1.SPTypes.ControlMode.Edit;\r\n this._elForm = props.elForm;\r\n this._info = props.info;\r\n this._onCreateEditForm = props.onCreateEditForm;\r\n this._onFormButtonsRendering = props.onFormButtonsRendering;\r\n this._onGetListInfo = props.onGetListInfo;\r\n this._onSave = props.onSave;\r\n this._onSetFooter = props.onSetFooter;\r\n this._onSetHeader = props.onSetHeader;\r\n this._onShowForm = props.onShowForm;\r\n this._onValidation = props.onValidation;\r\n this._tabInfo = props.tabInfo;\r\n this._updateEvent = props.onUpdate;\r\n typeof (props.useModal) === \"boolean\" ? this._useModal = props.useModal : false;\r\n // Load the form\r\n return this.load(props.webUrl, props.itemId);\r\n };\r\n // Loads the form information\r\n ItemForm.loadFormInfo = function (props) {\r\n var _this = this;\r\n // Return a promise\r\n return new Promise(function (resolve) {\r\n // Load the form info\r\n gd_sprest_bs_1.Helper.ListForm.create(props).then(function (info) {\r\n // Save the information\r\n _this._info = info;\r\n // Resolve the request\r\n resolve();\r\n });\r\n });\r\n };\r\n // Renders the footer for a form\r\n ItemForm.renderFooter = function (elForm) {\r\n // Render the form footer\r\n this.renderFormFooter(elForm);\r\n };\r\n // Views the task\r\n ItemForm.view = function (props) {\r\n // Set the properties\r\n this._controlMode = gd_sprest_bs_1.SPTypes.ControlMode.Display;\r\n this._elForm = props.elForm;\r\n this._info = props.info;\r\n this._onCreateViewForm = props.onCreateViewForm;\r\n this._onFormButtonsRendering = props.onFormButtonsRendering;\r\n this._onGetListInfo = props.onGetListInfo;\r\n this._onSetFooter = props.onSetFooter;\r\n this._onSetHeader = props.onSetHeader;\r\n this._onShowForm = props.onShowForm;\r\n this._tabInfo = props.tabInfo;\r\n typeof (props.useModal) === \"boolean\" ? this._useModal = props.useModal : false;\r\n // Load the form\r\n return this.load(props.webUrl, props.itemId);\r\n };\r\n /** Private Methods */\r\n // Load the form information\r\n ItemForm.load = function (webUrl, itemId) {\r\n var _this = this;\r\n // Clear the forms\r\n this._displayForms = [];\r\n this._editForms = [];\r\n // Show a loading dialog\r\n _1.LoadingDialog.setHeader(\"Loading the Item\");\r\n _1.LoadingDialog.setBody(\"This will close after the form is loaded...\");\r\n _1.LoadingDialog.show();\r\n // Return a promise\r\n return new Promise(function (resolve, reject) {\r\n // Code to run after the data is loaded\r\n var onComplete = function () {\r\n // Render the form\r\n _this.renderForm();\r\n // Resolve the request\r\n resolve(null);\r\n };\r\n // Get the context information\r\n (0, _1.getContextInfo)(webUrl).then(function (requestDigest) {\r\n // Set the request digest\r\n _this._requestDigest = requestDigest;\r\n // See if the info already exists\r\n if (_this._info) {\r\n // Form information is already loaded\r\n onComplete();\r\n }\r\n else {\r\n // Set the list form properties\r\n var listProps = {\r\n listName: _this.ListName,\r\n itemId: itemId,\r\n requestDigest: requestDigest,\r\n webUrl: webUrl\r\n };\r\n // Call the event\r\n listProps = _this._onGetListInfo ? _this._onGetListInfo(listProps) : listProps;\r\n // Load the form info\r\n gd_sprest_bs_1.Helper.ListForm.create(listProps).then(function (info) {\r\n // Save the information\r\n _this._info = info;\r\n // Form information is already loaded\r\n onComplete();\r\n }, reject);\r\n }\r\n });\r\n });\r\n };\r\n // Renders the display form\r\n ItemForm.renderDisplayForm = function (el, tab) {\r\n // Ensure the element exists\r\n el = el || document.createElement(\"div\");\r\n // Set the form properties\r\n var displayAttachments = tab ? tab.fields && tab.fields.indexOf(\"Attachments\") >= 0 : this.FormInfo.attachments != null;\r\n var props = {\r\n el: el,\r\n displayAttachments: displayAttachments,\r\n excludeFields: tab ? tab.excludeFields : null,\r\n includeFields: tab ? tab.fields : null,\r\n info: this._info,\r\n rowClassName: \"mb-3\"\r\n };\r\n // See if we are rendering a tab\r\n if (tab && tab.onCreateForm) {\r\n // Call the event\r\n props = tab.onCreateForm(props);\r\n }\r\n // Call the event if it exists\r\n props = this._onCreateViewForm ? this._onCreateViewForm(props) : props;\r\n // Override the form rendered event\r\n var customEvent = props.onFormRendered;\r\n props.onFormRendered = function (listForm) {\r\n /* Remove the bottom margin from the last row of the form */\r\n listForm.el.lastChild.classList.remove(\"mb-3\");\r\n // Call the event if it exists\r\n tab && tab.onFormRendered ? tab.onFormRendered(form) : null;\r\n // Call the custom event if it exists\r\n customEvent ? customEvent(listForm) : null;\r\n };\r\n // Render the display form\r\n var form = gd_sprest_bs_1.Components.ListForm.renderDisplayForm(props);\r\n this._displayForms.push(form);\r\n // Return the form element\r\n return el;\r\n };\r\n // Renders the edit form\r\n ItemForm.renderEditForm = function (el, tab) {\r\n // Ensure the element exists\r\n el = el || document.createElement(\"div\");\r\n // Set the form properties\r\n var displayAttachments = tab ? tab.fields && tab.fields.indexOf(\"Attachments\") >= 0 : this.FormInfo.attachments != null;\r\n var props = {\r\n el: el,\r\n displayAttachments: displayAttachments,\r\n excludeFields: tab ? tab.excludeFields : null,\r\n includeFields: tab ? tab.fields : null,\r\n info: this._info,\r\n rowClassName: \"mb-3\",\r\n controlMode: this.IsNew ? gd_sprest_bs_1.SPTypes.ControlMode.New : gd_sprest_bs_1.SPTypes.ControlMode.Edit\r\n };\r\n // See if we are rendering a tab\r\n if (tab && tab.onCreateForm) {\r\n // Call the event\r\n props = tab.onCreateForm(props);\r\n }\r\n // Call the event if it exists\r\n props = this._onCreateEditForm ? this._onCreateEditForm(props) : props;\r\n // Override the form rendered event\r\n var customEvent = props.onFormRendered;\r\n props.onFormRendered = function (listForm) {\r\n /* Remove the bottom margin from the last row of the form */\r\n listForm.el.lastChild.classList.remove(\"mb-3\");\r\n // Call the event if it exists\r\n tab && tab.onFormRendered ? tab.onFormRendered(form) : null;\r\n // Call the custom event if it exists\r\n customEvent ? customEvent(listForm) : null;\r\n };\r\n // Render the edit form\r\n var form = gd_sprest_bs_1.Components.ListForm.renderEditForm(props);\r\n this._editForms.push(form);\r\n // Return the form element\r\n return el;\r\n };\r\n // Renders the footer\r\n ItemForm.renderFormFooter = function (elFooter) {\r\n var _this = this;\r\n // Render the form buttons\r\n var elButtons = document.createElement(\"div\");\r\n // See if we are rendering to the canvas\r\n if (elFooter == null && !this._useModal) {\r\n // Add the classes\r\n elButtons.classList.add(\"d-flex\");\r\n elButtons.classList.add(\"justify-content-end\");\r\n elButtons.classList.add(\"my-2\");\r\n }\r\n // See if we are using a custom element\r\n if (elFooter) {\r\n // Append the buttons\r\n elFooter.appendChild(elButtons);\r\n }\r\n else {\r\n // Append the create/update button\r\n this._useModal ? _1.Modal.setFooter(elButtons) : _1.CanvasForm.BodyElement.appendChild(elButtons);\r\n }\r\n // See if we are rendering a display form\r\n if (this.IsDisplay) {\r\n // Call the item form button rendering event\r\n var formButtons = [];\r\n formButtons = this._onFormButtonsRendering ? this._onFormButtonsRendering(formButtons) : formButtons;\r\n // Render the form buttons\r\n formButtons && formButtons.length > 0 ? gd_sprest_bs_1.Components.ButtonGroup({\r\n el: elButtons,\r\n buttons: formButtons\r\n }) : null;\r\n }\r\n else {\r\n // Call the item form button rendering event\r\n var formButtons = [{\r\n text: this.IsNew ? \"Create\" : \"Update\",\r\n type: gd_sprest_bs_1.Components.ButtonTypes.OutlinePrimary,\r\n onClick: function () { _this.save(); }\r\n }];\r\n formButtons = this._onFormButtonsRendering ? this._onFormButtonsRendering(formButtons) : formButtons;\r\n // Render the form buttons\r\n formButtons && formButtons.length > 0 ? gd_sprest_bs_1.Components.ButtonGroup({\r\n el: elButtons,\r\n buttons: formButtons\r\n }) : null;\r\n }\r\n // Call the footer event\r\n this._onSetFooter ? this._onSetFooter(elFooter || (this._useModal ? _1.Modal.FooterElement : elButtons)) : null;\r\n };\r\n // Renders the form\r\n ItemForm.renderForm = function () {\r\n // See if we are not rendering to a custom element\r\n if (this._elForm == null) {\r\n // Clear the form\r\n (this._useModal ? _1.Modal : _1.CanvasForm).clear();\r\n // Call the event\r\n this._onResetForm ? this._onResetForm() : null;\r\n // Set the header\r\n (this._useModal ? _1.Modal : _1.CanvasForm).setHeader('<h5 class=\"m-0\">' + (this._info.item ? this._info.item.Title : \"Create Item\") + '</h5>');\r\n // Call the header event\r\n this._onSetHeader ? this._onSetHeader(this._useModal ? _1.Modal.HeaderElement : _1.CanvasForm.HeaderElement) : null;\r\n // See if we are rendering tabs\r\n if (this._tabInfo) {\r\n // Render the tabs\r\n this.renderTabs();\r\n }\r\n else {\r\n // Render the form based on the type\r\n var elForm = this.IsDisplay ? this.renderDisplayForm() : this.renderEditForm();\r\n // Update the body\r\n (this._useModal ? _1.Modal : _1.CanvasForm).setBody(elForm);\r\n }\r\n // Render the form footer\r\n this.renderFormFooter();\r\n // Call the event\r\n this._onShowForm ? this._onShowForm(this._useModal ? _1.Modal : _1.CanvasForm) : null;\r\n // Show the form\r\n (this._useModal ? _1.Modal : _1.CanvasForm).show();\r\n }\r\n else {\r\n // See if we are rendering tabs\r\n if (this._tabInfo) {\r\n // Render the tabs\r\n this.renderTabs();\r\n }\r\n else {\r\n // Render the form based on the type\r\n var elForm = this.IsDisplay ? this.renderDisplayForm() : this.renderEditForm();\r\n // Copy the elements\r\n for (var i = 0; i < elForm.children.length; i++) {\r\n // Append the element\r\n this._elForm.appendChild(elForm.children[i]);\r\n }\r\n }\r\n }\r\n // Call the rendered event\r\n this._onFormRendered ? this._onFormRendered(this.IsDisplay ? this.DisplayForm : this.EditForm) : null;\r\n // Close the dialog\r\n _1.LoadingDialog.hide();\r\n };\r\n // Generates a tab\r\n ItemForm.renderTabs = function () {\r\n var _this = this;\r\n var tabs = [];\r\n // Parse the tabs to render\r\n for (var i = 0; i < this._tabInfo.tabs.length; i++) {\r\n var tabInfo = this._tabInfo.tabs[i];\r\n // Generate the tab\r\n var tab = {\r\n data: tabInfo,\r\n isActive: i == 0,\r\n tabName: tabInfo.title,\r\n onClick: this._tabInfo.onClick,\r\n onRender: function (el, item) {\r\n var tab = item.data;\r\n // Render the form\r\n _this.IsDisplay ? _this.renderDisplayForm(el, tab) : _this.renderEditForm(el, tab);\r\n // Call the event\r\n tab.onRendered ? tab.onRendered(el, item) : null;\r\n }\r\n };\r\n // Call the rendering event\r\n tab = tabInfo.onRendering ? tabInfo.onRendering(tab) : tab;\r\n if (tab) {\r\n // Append the tab\r\n tabs.push(tab);\r\n }\r\n }\r\n // Render the tabs\r\n this._tabs = gd_sprest_bs_1.Components.ListGroup({\r\n el: this._elForm || (this.UseModal ? _1.Modal.BodyElement : _1.CanvasForm.BodyElement),\r\n colWidth: this._tabInfo.isVertical ? 4 : 12,\r\n isTabs: true,\r\n isHorizontal: this._tabInfo.isVertical != true,\r\n items: tabs\r\n });\r\n // Return the tabs element\r\n return this._tabs.el;\r\n };\r\n // Saves the edit form\r\n ItemForm.save = function (form) {\r\n var _this = this;\r\n var values = {};\r\n // Default the form\r\n var forms = form ? [form] : this._editForms;\r\n var defaultForm = forms[0];\r\n // Display a loading dialog\r\n _1.LoadingDialog.setHeader(\"Validation\");\r\n _1.LoadingDialog.setBody(\"Validating the form...\");\r\n _1.LoadingDialog.show();\r\n // Validate the forms\r\n var isValid = true;\r\n var counter = 0;\r\n gd_sprest_bs_1.Helper.Executor(forms, function (form) {\r\n // Update the values\r\n values = __assign(__assign({}, values), form.getValues());\r\n // See if this form has attachments\r\n if (form.hasAttachments()) {\r\n // Set the default form\r\n defaultForm = form;\r\n }\r\n // Validate the form\r\n var tabIsValid = form.isValid();\r\n // See if we are using tabs and an event exists\r\n var tabInfo = _this._tabInfo && _this._tabInfo.tabs[counter];\r\n if (tabInfo && tabInfo.onValidation) {\r\n // Call the event\r\n tabIsValid = tabInfo.onValidation(values);\r\n }\r\n // See if the form is not valid\r\n if (!tabIsValid) {\r\n // Set the flag\r\n isValid = false;\r\n }\r\n // See if tabs exist\r\n if (_this.Tabs) {\r\n // Get the tab\r\n var tab = _this.Tabs.el.querySelectorAll(\".list-group-item\")[counter++];\r\n if (tab) {\r\n // Clear the class name\r\n tab.classList.remove(\"is-valid\");\r\n tab.classList.remove(\"is-invalid\");\r\n // Set the class name\r\n tab.classList.add(tabIsValid ? \"is-valid\" : \"is-invalid\");\r\n }\r\n }\r\n // Set the tab class\r\n }).then(\r\n // Success\r\n function () {\r\n // Call the custom validation event\r\n _this.validate(values, isValid).then(\r\n // Valid\r\n function (isValid) {\r\n // See if the form(s) are valid\r\n if (isValid) {\r\n // Update the loading dialog\r\n _1.LoadingDialog.setHeader(\"Saving the Item\");\r\n _1.LoadingDialog.setBody((_this.IsNew ? \"Creating\" : \"Updating\") + \" the Item\");\r\n // Saves the item\r\n var saveItem_1 = function (values) {\r\n // If values is null then do nothing. This would happen when the\r\n // onSave event wants to cancel the save and do something custom\r\n if (values) {\r\n // Save the item\r\n defaultForm.save(values).then(function (item) {\r\n // Call the update event\r\n _this._updateEvent ? _this._updateEvent(item) : null;\r\n // Close the dialogs\r\n (_this._useModal ? _1.Modal : _1.CanvasForm).hide();\r\n _1.LoadingDialog.hide();\r\n });\r\n }\r\n };\r\n // Call the save event and ensure values exist\r\n values = _this._onSave ? _this._onSave(values) : values;\r\n // See if the onSave event returned a promise\r\n if (values && typeof (values[\"then\"]) === \"function\") {\r\n // Wait for the promise to complete\r\n values[\"then\"](function (values) {\r\n // Save the item\r\n saveItem_1(values);\r\n });\r\n }\r\n else {\r\n // Save the item\r\n saveItem_1(values);\r\n }\r\n }\r\n else {\r\n // Close the dialog\r\n _1.LoadingDialog.hide();\r\n }\r\n }, \r\n // Not Valid\r\n function () {\r\n // Close the dialog\r\n _1.LoadingDialog.hide();\r\n });\r\n });\r\n };\r\n // Validates the form\r\n ItemForm.validate = function (values, isValid) {\r\n var _this = this;\r\n // Return a promise\r\n return new Promise(function (resolve, reject) {\r\n // Call the validation event\r\n var returnVal = _this._onValidation ? _this._onValidation(values, isValid) : null;\r\n // See if it's a promise function\r\n if (returnVal && typeof (returnVal.then) === \"function\") {\r\n // Wait for the promise to complete\r\n returnVal.then(function (returnVal) {\r\n // Resolve the request\r\n isValid = typeof (returnVal) === \"boolean\" ? returnVal : isValid;\r\n isValid ? resolve(isValid) : reject();\r\n });\r\n }\r\n else {\r\n // Update the flag\r\n isValid = typeof (returnVal) === \"boolean\" ? returnVal : isValid;\r\n // Resolve the request\r\n isValid ? resolve(isValid) : reject();\r\n }\r\n });\r\n };\r\n ItemForm._elForm = null;\r\n ItemForm._onCreateEditForm = null;\r\n ItemForm._onCreateViewForm = null;\r\n ItemForm._onFormButtonsRendering = null;\r\n ItemForm._onFormRendered = null;\r\n ItemForm._onGetListInfo = null;\r\n ItemForm._onResetForm = null;\r\n ItemForm._onSetFooter = null;\r\n ItemForm._onSetHeader = null;\r\n ItemForm._onShowForm = null;\r\n ItemForm._onSave = null;\r\n ItemForm._onValidation = null;\r\n ItemForm._requestDigest = null;\r\n ItemForm._tabInfo = null;\r\n ItemForm._updateEvent = null;\r\n // Display Form\r\n ItemForm._displayForms = null;\r\n // Edit Form\r\n ItemForm._editForms = null;\r\n // Form Information\r\n ItemForm._info = null;\r\n // Form Modes\r\n ItemForm._controlMode = null;\r\n // List name\r\n ItemForm._listName = null;\r\n // List Form Tabs\r\n ItemForm._tabs = null;\r\n // Flag to use a modal or canvas (default)\r\n ItemForm._useModal = false;\r\n return ItemForm;\r\n}());\r\nexports.ItemForm = ItemForm;\r\n\n\n//# sourceURL=webpack://dattatable/./build/common/itemForm.js?");
97
+
98
+ /***/ }),
99
+
100
+ /***/ "./build/common/list-cfg.js":
101
+ /*!**********************************!*\
102
+ !*** ./build/common/list-cfg.js ***!
103
+ \**********************************/
104
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
105
+
106
+ "use strict";
107
+ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ListConfig = void 0;\r\nvar gd_sprest_bs_1 = __webpack_require__(/*! gd-sprest-bs */ \"./node_modules/.pnpm/gd-sprest-bs@10.11.82/node_modules/gd-sprest-bs/build/index.js\");\r\nvar loadingDialog_1 = __webpack_require__(/*! ./loadingDialog */ \"./build/common/loadingDialog.js\");\r\nvar list_1 = __webpack_require__(/*! ./list */ \"./build/common/list.js\");\r\n/**\r\n * List Configuration Generator\r\n */\r\nvar ListConfig = /** @class */ (function () {\r\n function ListConfig() {\r\n }\r\n // Generates the list configuration\r\n ListConfig.generate = function (srcWebUrl, srcList, showDialog) {\r\n var _this = this;\r\n if (showDialog === void 0) { showDialog = true; }\r\n // See if we are showing a loading dialog\r\n if (showDialog) {\r\n // Show a loading dialog\r\n loadingDialog_1.LoadingDialog.setHeader(\"Loading List\");\r\n loadingDialog_1.LoadingDialog.setBody(\"Getting the source list configuration...\");\r\n loadingDialog_1.LoadingDialog.show();\r\n }\r\n // Return a promise\r\n return new Promise(function (resolve, reject) {\r\n // Get the list information\r\n var list = new list_1.List({\r\n listName: srcList.Title,\r\n webUrl: srcWebUrl,\r\n itemQuery: { Filter: \"Id eq 0\" },\r\n onInitError: function () {\r\n // Reject the request\r\n reject(\"Error loading the list information. Please check your permission to the source list.\");\r\n },\r\n onInitialized: function () {\r\n var calcFields = [];\r\n var fields = {};\r\n var lookupFields = [];\r\n // Update the loading dialog\r\n loadingDialog_1.LoadingDialog.setBody(\"Analyzing the list information...\");\r\n // Create the configuration\r\n var cfgProps = {\r\n ListCfg: [{\r\n ListInformation: {\r\n AllowContentTypes: list.ListInfo.AllowContentTypes,\r\n BaseTemplate: list.ListInfo.BaseTemplate,\r\n ContentTypesEnabled: list.ListInfo.ContentTypesEnabled,\r\n Title: srcList.Title,\r\n Hidden: list.ListInfo.Hidden,\r\n NoCrawl: list.ListInfo.NoCrawl\r\n },\r\n ContentTypes: [],\r\n CustomFields: [],\r\n ViewInformation: []\r\n }]\r\n };\r\n // Parse the content types\r\n for (var i = 0; i < list.ListContentTypes.length; i++) {\r\n var ct = list.ListContentTypes[i];\r\n // Skip sealed content types\r\n if (ct.Sealed) {\r\n continue;\r\n }\r\n // Parse the content type fields\r\n var fieldRefs = [];\r\n for (var j = 0; j < ct.FieldLinks.results.length; j++) {\r\n var fldInfo = list.getField(ct.FieldLinks.results[j].Name);\r\n // See if this is a lookup field\r\n if (fldInfo.FieldTypeKind == gd_sprest_bs_1.SPTypes.FieldType.Lookup) {\r\n // Ensure this isn't an associated lookup field\r\n if (fldInfo.IsDependentLookup != true) {\r\n // Append the field ref\r\n fieldRefs.push(fldInfo.InternalName);\r\n }\r\n }\r\n else {\r\n // Append the field ref\r\n fieldRefs.push(fldInfo.InternalName);\r\n }\r\n // Skip internal fields\r\n if (_this.InternalFields.indexOf(fldInfo.InternalName) >= 0) {\r\n continue;\r\n }\r\n // See if this is a calculated field\r\n if (fldInfo.FieldTypeKind == gd_sprest_bs_1.SPTypes.FieldType.Calculated) {\r\n // Add the field and continue the loop\r\n calcFields.push(fldInfo);\r\n }\r\n // Else, see if this is a lookup field\r\n else if (fldInfo.FieldTypeKind == gd_sprest_bs_1.SPTypes.FieldType.Lookup) {\r\n // Add the field\r\n lookupFields.push(fldInfo);\r\n }\r\n // Else, ensure the field hasn't been added\r\n else if (fields[fldInfo.InternalName] == null) {\r\n // Add the field information\r\n fields[fldInfo.InternalName] = true;\r\n cfgProps.ListCfg[0].CustomFields.push({\r\n name: fldInfo.InternalName,\r\n schemaXml: fldInfo.SchemaXml\r\n });\r\n }\r\n }\r\n // Add the list content type\r\n cfgProps.ListCfg[0].ContentTypes.push({\r\n Name: ct.Name,\r\n Description: ct.Description,\r\n ParentName: ct.Name,\r\n FieldRefs: fieldRefs\r\n });\r\n }\r\n // Parse the views\r\n for (var i = 0; i < list.ListViews.length; i++) {\r\n var viewInfo = list.ListViews[i];\r\n // Skip hidden views\r\n if (viewInfo.Hidden) {\r\n continue;\r\n }\r\n // Parse the fields\r\n for (var j = 0; j < viewInfo.ViewFields.Items.results.length; j++) {\r\n var field = list.getField(viewInfo.ViewFields.Items.results[j]);\r\n // Ensure the field exists\r\n if (fields[field.InternalName] == null) {\r\n // See if this is a calculated field\r\n if (field.FieldTypeKind == gd_sprest_bs_1.SPTypes.FieldType.Calculated) {\r\n // Add the field and continue the loop\r\n calcFields.push(field);\r\n }\r\n // Else, see if this is a lookup field\r\n else if (field.FieldTypeKind == gd_sprest_bs_1.SPTypes.FieldType.Lookup) {\r\n // Add the field\r\n lookupFields.push(field);\r\n }\r\n else {\r\n // Append the field\r\n fields[field.InternalName] = true;\r\n cfgProps.ListCfg[0].CustomFields.push({\r\n name: field.InternalName,\r\n schemaXml: field.SchemaXml\r\n });\r\n }\r\n }\r\n }\r\n // Add the view\r\n cfgProps.ListCfg[0].ViewInformation.push({\r\n Default: viewInfo.DefaultView,\r\n Hidden: viewInfo.Hidden,\r\n JSLink: viewInfo.JSLink,\r\n MobileDefaultView: viewInfo.MobileDefaultView,\r\n MobileView: viewInfo.MobileView,\r\n RowLimit: viewInfo.RowLimit,\r\n Tabular: viewInfo.TabularView,\r\n ViewName: viewInfo.Title,\r\n ViewFields: viewInfo.ViewFields.Items.results,\r\n ViewQuery: viewInfo.ViewQuery\r\n });\r\n }\r\n // Update the loading dialog\r\n loadingDialog_1.LoadingDialog.setBody(\"Analyzing the lookup fields...\");\r\n // Parse the lookup fields\r\n gd_sprest_bs_1.Helper.Executor(lookupFields, function (lookupField) {\r\n // Skip the field, if it was already added\r\n if (fields[lookupField.InternalName]) {\r\n return;\r\n }\r\n // Return a promise\r\n return new Promise(function (resolve) {\r\n // Get the lookup list\r\n (0, gd_sprest_bs_1.Web)(srcWebUrl).Lists().getById(lookupField.LookupList).execute(function (list) {\r\n // Add the lookup list field\r\n fields[lookupField.InternalName] = true;\r\n cfgProps.ListCfg[0].CustomFields.push({\r\n description: lookupField.Description,\r\n fieldRef: lookupField.PrimaryFieldId,\r\n hidden: lookupField.Hidden,\r\n id: lookupField.Id,\r\n indexed: lookupField.Indexed,\r\n listName: list.Title,\r\n multi: lookupField.AllowMultipleValues,\r\n name: lookupField.InternalName,\r\n readOnly: lookupField.ReadOnlyField,\r\n relationshipBehavior: lookupField.RelationshipDeleteBehavior,\r\n required: lookupField.Required,\r\n showField: lookupField.LookupField,\r\n title: lookupField.Title,\r\n type: gd_sprest_bs_1.Helper.SPCfgFieldType.Lookup\r\n });\r\n // Check the next field\r\n resolve(null);\r\n }, function (err) {\r\n // Broken lookup field, don't add it\r\n console.log(\"Error trying to find lookup list for field '\" + lookupField.InternalName + \"' with id: \" + lookupField.LookupList);\r\n resolve(null);\r\n });\r\n });\r\n }).then(function () {\r\n // Update the loading dialog\r\n loadingDialog_1.LoadingDialog.setBody(\"Analyzing the calculated fields...\");\r\n // Parse the calculated fields\r\n for (var i = 0; i < calcFields.length; i++) {\r\n var calcField = calcFields[i];\r\n if (fields[calcField.InternalName] == null) {\r\n var parser = new DOMParser();\r\n var schemaXml = parser.parseFromString(calcField.SchemaXml, \"application/xml\");\r\n // Get the formula\r\n var formula = schemaXml.querySelector(\"Formula\");\r\n // Parse the field refs\r\n var fieldRefs = schemaXml.querySelectorAll(\"FieldRef\");\r\n for (var j = 0; j < fieldRefs.length; j++) {\r\n var fieldRef = fieldRefs[j].getAttribute(\"Name\");\r\n // Ensure the field exists\r\n var field = list.getField(fieldRef);\r\n if (field) {\r\n // Calculated formulas are supposed to contain the display name\r\n // Replace any instance of the internal field w/ the correct format\r\n var regexp = new RegExp(fieldRef, \"g\");\r\n formula.innerHTML = formula.innerHTML.replace(regexp, \"[\" + field.Title + \"]\");\r\n }\r\n }\r\n // Append the field\r\n fields[calcField.InternalName] = true;\r\n cfgProps.ListCfg[0].CustomFields.push({\r\n name: calcField.InternalName,\r\n schemaXml: schemaXml.querySelector(\"Field\").outerHTML\r\n });\r\n }\r\n }\r\n // Hide the loading dialog\r\n showDialog ? loadingDialog_1.LoadingDialog.hide() : null;\r\n // Resolve the request\r\n resolve({\r\n cfg: cfgProps,\r\n lookupFields: lookupFields\r\n });\r\n });\r\n }\r\n });\r\n });\r\n };\r\n // Internal Fields\r\n ListConfig.InternalFields = [\r\n \"ContentType\", \"TaxCatchAll\", \"TaxCatchAllLabel\", \"Title\"\r\n ];\r\n return ListConfig;\r\n}());\r\nexports.ListConfig = ListConfig;\r\n\n\n//# sourceURL=webpack://dattatable/./build/common/list-cfg.js?");
97
108
 
98
109
  /***/ }),
99
110