@pega/react-sdk-components 0.23.17 → 0.23.18

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 (142) hide show
  1. package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.d.ts.map +1 -1
  2. package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.js +20 -3
  3. package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.js.map +1 -1
  4. package/lib/components/designSystemExtension/FieldGroup/FieldGroup.d.ts.map +1 -1
  5. package/lib/components/designSystemExtension/FieldGroup/FieldGroup.js +1 -2
  6. package/lib/components/designSystemExtension/FieldGroup/FieldGroup.js.map +1 -1
  7. package/lib/components/designSystemExtension/FieldValueList/FieldValueList.d.ts.map +1 -1
  8. package/lib/components/designSystemExtension/FieldValueList/FieldValueList.js +23 -40
  9. package/lib/components/designSystemExtension/FieldValueList/FieldValueList.js.map +1 -1
  10. package/lib/components/field/AutoComplete/AutoComplete.d.ts.map +1 -1
  11. package/lib/components/field/AutoComplete/AutoComplete.js +5 -5
  12. package/lib/components/field/AutoComplete/AutoComplete.js.map +1 -1
  13. package/lib/components/field/Checkbox/Checkbox.d.ts.map +1 -1
  14. package/lib/components/field/Checkbox/Checkbox.js +5 -5
  15. package/lib/components/field/Checkbox/Checkbox.js.map +1 -1
  16. package/lib/components/field/Currency/Currency.d.ts.map +1 -1
  17. package/lib/components/field/Currency/Currency.js +21 -6
  18. package/lib/components/field/Currency/Currency.js.map +1 -1
  19. package/lib/components/field/Currency/currency-utils.d.ts +11 -0
  20. package/lib/components/field/Currency/currency-utils.d.ts.map +1 -0
  21. package/lib/components/field/Currency/currency-utils.js +60 -0
  22. package/lib/components/field/Currency/currency-utils.js.map +1 -0
  23. package/lib/components/field/Date/Date.d.ts.map +1 -1
  24. package/lib/components/field/Date/Date.js +17 -6
  25. package/lib/components/field/Date/Date.js.map +1 -1
  26. package/lib/components/field/DateTime/DateTime.d.ts.map +1 -1
  27. package/lib/components/field/DateTime/DateTime.js +16 -7
  28. package/lib/components/field/DateTime/DateTime.js.map +1 -1
  29. package/lib/components/field/Decimal/Decimal.d.ts.map +1 -1
  30. package/lib/components/field/Decimal/Decimal.js +5 -5
  31. package/lib/components/field/Decimal/Decimal.js.map +1 -1
  32. package/lib/components/field/Dropdown/Dropdown.d.ts.map +1 -1
  33. package/lib/components/field/Dropdown/Dropdown.js +5 -5
  34. package/lib/components/field/Dropdown/Dropdown.js.map +1 -1
  35. package/lib/components/field/Email/Email.js +5 -5
  36. package/lib/components/field/Email/Email.js.map +1 -1
  37. package/lib/components/field/Integer/Integer.d.ts.map +1 -1
  38. package/lib/components/field/Integer/Integer.js +5 -5
  39. package/lib/components/field/Integer/Integer.js.map +1 -1
  40. package/lib/components/field/Percentage/Percentage.d.ts.map +1 -1
  41. package/lib/components/field/Percentage/Percentage.js +5 -5
  42. package/lib/components/field/Percentage/Percentage.js.map +1 -1
  43. package/lib/components/field/Phone/Phone.d.ts.map +1 -1
  44. package/lib/components/field/Phone/Phone.js +5 -5
  45. package/lib/components/field/Phone/Phone.js.map +1 -1
  46. package/lib/components/field/RadioButtons/RadioButtons.d.ts.map +1 -1
  47. package/lib/components/field/RadioButtons/RadioButtons.js +5 -5
  48. package/lib/components/field/RadioButtons/RadioButtons.js.map +1 -1
  49. package/lib/components/field/SemanticLink/SemanticLink.d.ts.map +1 -1
  50. package/lib/components/field/SemanticLink/SemanticLink.js +5 -1
  51. package/lib/components/field/SemanticLink/SemanticLink.js.map +1 -1
  52. package/lib/components/field/TextArea/TextArea.d.ts.map +1 -1
  53. package/lib/components/field/TextArea/TextArea.js +5 -5
  54. package/lib/components/field/TextArea/TextArea.js.map +1 -1
  55. package/lib/components/field/TextInput/TextInput.d.ts.map +1 -1
  56. package/lib/components/field/TextInput/TextInput.js +5 -5
  57. package/lib/components/field/TextInput/TextInput.js.map +1 -1
  58. package/lib/components/field/Time/Time.d.ts.map +1 -1
  59. package/lib/components/field/Time/Time.js +5 -5
  60. package/lib/components/field/Time/Time.js.map +1 -1
  61. package/lib/components/field/URL/URL.d.ts.map +1 -1
  62. package/lib/components/field/URL/URL.js +5 -5
  63. package/lib/components/field/URL/URL.js.map +1 -1
  64. package/lib/components/helpers/date-format-utils.d.ts +13 -0
  65. package/lib/components/helpers/date-format-utils.d.ts.map +1 -0
  66. package/lib/components/helpers/date-format-utils.js +59 -0
  67. package/lib/components/helpers/date-format-utils.js.map +1 -0
  68. package/lib/components/helpers/formatters/Currency.js +11 -5
  69. package/lib/components/helpers/formatters/Currency.js.map +1 -1
  70. package/lib/components/helpers/formatters/common.d.ts.map +1 -1
  71. package/lib/components/helpers/formatters/common.js +6 -1
  72. package/lib/components/helpers/formatters/common.js.map +1 -1
  73. package/lib/components/helpers/formatters/index.d.ts.map +1 -1
  74. package/lib/components/helpers/formatters/index.js +4 -0
  75. package/lib/components/helpers/formatters/index.js.map +1 -1
  76. package/lib/components/helpers/template-utils.d.ts +14 -0
  77. package/lib/components/helpers/template-utils.d.ts.map +1 -0
  78. package/lib/components/helpers/template-utils.js +65 -0
  79. package/lib/components/helpers/template-utils.js.map +1 -0
  80. package/lib/components/infra/Containers/FlowContainer/FlowContainer.d.ts.map +1 -1
  81. package/lib/components/infra/Containers/FlowContainer/FlowContainer.js +52 -53
  82. package/lib/components/infra/Containers/FlowContainer/FlowContainer.js.map +1 -1
  83. package/lib/components/infra/MultiStep/MultiStep.css +4 -18
  84. package/lib/components/infra/NavBar/NavBar.d.ts +1 -1
  85. package/lib/components/infra/NavBar/NavBar.d.ts.map +1 -1
  86. package/lib/components/infra/NavBar/NavBar.js +57 -121
  87. package/lib/components/infra/NavBar/NavBar.js.map +1 -1
  88. package/lib/components/infra/View/View.d.ts.map +1 -1
  89. package/lib/components/infra/View/View.js +12 -3
  90. package/lib/components/infra/View/View.js.map +1 -1
  91. package/lib/components/template/CaseView/CaseView.d.ts.map +1 -1
  92. package/lib/components/template/CaseView/CaseView.js +2 -3
  93. package/lib/components/template/CaseView/CaseView.js.map +1 -1
  94. package/lib/components/template/DefaultForm/DefaultForm.d.ts.map +1 -1
  95. package/lib/components/template/DefaultForm/DefaultForm.js +6 -1
  96. package/lib/components/template/DefaultForm/DefaultForm.js.map +1 -1
  97. package/lib/components/template/Details/Details/Details.d.ts +2 -0
  98. package/lib/components/template/Details/Details/Details.d.ts.map +1 -1
  99. package/lib/components/template/Details/Details/Details.js +35 -18
  100. package/lib/components/template/Details/Details/Details.js.map +1 -1
  101. package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.d.ts +12 -1
  102. package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.d.ts.map +1 -1
  103. package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.js +43 -27
  104. package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.js.map +1 -1
  105. package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.d.ts +12 -1
  106. package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.d.ts.map +1 -1
  107. package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.js +43 -25
  108. package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.js.map +1 -1
  109. package/lib/components/template/ListView/DefaultViewMeta.d.ts +91 -0
  110. package/lib/components/template/ListView/DefaultViewMeta.d.ts.map +1 -0
  111. package/lib/components/template/ListView/DefaultViewMeta.js +208 -0
  112. package/lib/components/template/ListView/DefaultViewMeta.js.map +1 -0
  113. package/lib/components/template/ListView/ListView.d.ts.map +1 -1
  114. package/lib/components/template/ListView/ListView.js +143 -45
  115. package/lib/components/template/ListView/ListView.js.map +1 -1
  116. package/lib/components/template/ListView/hooks.d.ts +2 -0
  117. package/lib/components/template/ListView/hooks.d.ts.map +1 -0
  118. package/lib/components/template/ListView/hooks.js +73 -0
  119. package/lib/components/template/ListView/hooks.js.map +1 -0
  120. package/lib/components/template/ListView/utils.d.ts +63 -0
  121. package/lib/components/template/ListView/utils.d.ts.map +1 -0
  122. package/lib/components/template/ListView/utils.js +537 -0
  123. package/lib/components/template/ListView/utils.js.map +1 -0
  124. package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.d.ts +12 -1
  125. package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.d.ts.map +1 -1
  126. package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.js +45 -29
  127. package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.js.map +1 -1
  128. package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.d.ts +12 -1
  129. package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.d.ts.map +1 -1
  130. package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.js +45 -29
  131. package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.js.map +1 -1
  132. package/lib/components/widget/Attachment/Attachment.css +7 -0
  133. package/lib/components/widget/Attachment/Attachment.d.ts.map +1 -1
  134. package/lib/components/widget/Attachment/Attachment.js +25 -2
  135. package/lib/components/widget/Attachment/Attachment.js.map +1 -1
  136. package/lib/components/widget/SummaryItem/SummaryItem.js +1 -1
  137. package/lib/components/widget/SummaryItem/SummaryItem.js.map +1 -1
  138. package/package.json +1 -1
  139. package/lib/components/template/utils.d.ts +0 -3
  140. package/lib/components/template/utils.d.ts.map +0 -1
  141. package/lib/components/template/utils.js +0 -22
  142. package/lib/components/template/utils.js.map +0 -1
@@ -0,0 +1,537 @@
1
+ /* eslint-disable no-undef */
2
+ import getDefaultViewMeta from './DefaultViewMeta';
3
+ const USER_REFERENCE = 'UserReference';
4
+ const PAGE = '!P!';
5
+ const PAGELIST = '!PL!';
6
+ export const formatConstants = {
7
+ WorkStatus: 'WorkStatus',
8
+ Integer: 'Integer',
9
+ WorkLink: 'WorkLink',
10
+ };
11
+ export async function getContext(componentConfig) {
12
+ const { promisesArray = [], // array of promises which can be invoked paralelly,
13
+ } = componentConfig;
14
+ const promisesResponseArray = await Promise.all(promisesArray);
15
+ return {
16
+ promisesResponseArray,
17
+ };
18
+ }
19
+ /**
20
+ * [getFieldNameFromEmbeddedFieldName]
21
+ * Description - converting embeddedField name starting with !P! or !PL! to normal field
22
+ * @ignore
23
+ * @param {string} propertyName EmbeddedField name starting with !P! or !PL!
24
+ * @returns {string} returns converted string without !P! or !PL! and :
25
+ *
26
+ * @example <caption>Example for getFieldNameFromEmbeddedFieldName </caption>
27
+ * getFieldNameFromEmbeddedFieldName('!P!Organisation:Name') return 'Organisation.Name'
28
+ * getFieldNameFromEmbeddedFieldName('!PL!Employees:Name') return 'Employees.Name'
29
+ */
30
+ export function getFieldNameFromEmbeddedFieldName(propertyName) {
31
+ let value = propertyName;
32
+ if (value.startsWith(PAGE) || value.startsWith(PAGELIST)) {
33
+ value = value.substring(value.lastIndexOf('!') + 1);
34
+ value = value.replace(/:/g, '.');
35
+ }
36
+ return value;
37
+ }
38
+ /**
39
+ * [updateMetaEmbeddedFieldID]
40
+ * Description - If the fieldID in meta starts with '!P!' or '!PL!' and contains ':' then replace them with .(dot)
41
+ * @ignore
42
+ * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields.
43
+ */
44
+ export function updateMetaEmbeddedFieldID(metaFields) {
45
+ return metaFields.forEach((metaField) => {
46
+ if (metaField.fieldID?.startsWith(PAGE) || metaField.fieldID?.startsWith(PAGELIST)) {
47
+ metaField.fieldID = getFieldNameFromEmbeddedFieldName(metaField.fieldID);
48
+ }
49
+ });
50
+ }
51
+ export const isEmbeddedField = (field) => {
52
+ if (field?.startsWith('@')) {
53
+ field = field.substring(field.indexOf(' ') + 1);
54
+ if (field[0] === '.')
55
+ field = field.substring(1);
56
+ }
57
+ return field?.indexOf('.') > 0;
58
+ };
59
+ /**
60
+ * [getConfigEmbeddedFieldsMeta]
61
+ * Description - Get the metadata for configured embedded fields
62
+ * @ignore
63
+ * @param {Set} configFields Set of config fields
64
+ * @param {string} classID clasID of datapage
65
+ * @returns {Array} Metadata of configured embedded fields
66
+ */
67
+ export function getConfigEmbeddedFieldsMeta(configFields, classID) {
68
+ const configEmbeddedFieldsMeta = [];
69
+ configFields.forEach((field) => {
70
+ let value = field;
71
+ if (isEmbeddedField(value)) {
72
+ // conversion Page.PageList[].property => Page.PageList.property
73
+ if (value.includes('[')) {
74
+ value = value.substring(0, value.indexOf('[')) + value.substring(value.indexOf(']') + 1);
75
+ }
76
+ const meta = PCore.getMetadataUtils().getEmbeddedPropertyMetadata(value, classID);
77
+ meta.fieldID = field;
78
+ configEmbeddedFieldsMeta.push(meta);
79
+ }
80
+ });
81
+ return configEmbeddedFieldsMeta;
82
+ }
83
+ /**
84
+ * [mergeConfigEmbeddedFieldsMeta]
85
+ * Description - Get the metadata for configured embedded fields
86
+ * @ignore
87
+ * @param {Array} configEmbeddedFieldsMeta config fields metadata.
88
+ * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields
89
+ */
90
+ export function mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields) {
91
+ const mergedMetaFields = [...metaFields];
92
+ configEmbeddedFieldsMeta.forEach((configFieldMeta) => {
93
+ const fieldMeta = metaFields.find((metaField) => metaField.fieldID === configFieldMeta.fieldID);
94
+ if (!fieldMeta)
95
+ mergedMetaFields.push(configFieldMeta);
96
+ });
97
+ return mergedMetaFields;
98
+ }
99
+ const oldToNewFieldTypeMapping = {
100
+ 'Date Time': 'Date & time',
101
+ Date: 'Date only'
102
+ };
103
+ /**
104
+ * [updateFieldType]
105
+ * Description - Updates the field type if its changed in the new implementation. Such mapping is maintained in oldToNewFieldTypeMapping.
106
+ * @ignore
107
+ * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields.
108
+ */
109
+ function updateFieldType(metaFields) {
110
+ metaFields.forEach((metaField) => {
111
+ if (metaField.type)
112
+ metaField.type = oldToNewFieldTypeMapping[metaField.type] || metaField.type;
113
+ });
114
+ }
115
+ function getPresetMetaAttribute(attribute) {
116
+ const { type, config: { label, value } } = attribute;
117
+ return {
118
+ type,
119
+ name: value.startsWith('@') ? value.substring(4) : value,
120
+ label: label.startsWith('@') ? label.substring(3) : label
121
+ };
122
+ }
123
+ /**
124
+ * [generateViewMetaData]
125
+ * Description - Returns a list of metaobjects of the fields provided.
126
+ * @ignore
127
+ * @param {Array} rawFields List of fields to update meta for
128
+ * @param {string} classID Class ID from the response
129
+ * @returns {Array} List of fields with updated meta objects.
130
+ */
131
+ function generateViewMetaData(rawFields, classID, showField) {
132
+ return rawFields.map((item) => getDefaultViewMeta(item, classID, showField));
133
+ }
134
+ /**
135
+ * [getConfigFields]
136
+ * Description - Returns list of config fields with primary fields meta updated.
137
+ * @ignore
138
+ * @param {Array} configFields List of Authored fields
139
+ * @param {Array} primaryFields List of Primary Fields
140
+ * @param {Array} metaFields Metadata of all fields
141
+ * @param {string} classID Class ID from the response
142
+ * @returns {Array} List of all fields with their meta updated.
143
+ */
144
+ function getConfigFields(configFields, primaryFields, metaFields, classID) {
145
+ const presetConfigFields = configFields;
146
+ const primaryFieldsViewIndex = presetConfigFields.findIndex((field) => field.config.value === 'pyPrimaryFields');
147
+ if (!primaryFields || !primaryFields.length) {
148
+ if (primaryFieldsViewIndex < 0)
149
+ return presetConfigFields;
150
+ presetConfigFields.splice(primaryFieldsViewIndex, 1);
151
+ return presetConfigFields;
152
+ }
153
+ if (primaryFieldsViewIndex > -1) {
154
+ // list of uncommon fields - non overlap of primary fields grouped view and independent entity columns of primary type
155
+ const uncommonFieldsList = primaryFields.filter((primaryField) => !presetConfigFields.some((presetConfigField) => presetConfigField.config.value.split('.')[1] === primaryField));
156
+ const uncommonFieldsRawMeta = [];
157
+ uncommonFieldsList.forEach((uncommonField) => {
158
+ const uncommonFieldMeta = metaFields.find((metaField) => metaField.fieldID === uncommonField);
159
+ if (uncommonFieldMeta)
160
+ uncommonFieldsRawMeta.push(uncommonFieldMeta);
161
+ });
162
+ const uncommonFieldsConfigMeta = generateViewMetaData(uncommonFieldsRawMeta, classID, true);
163
+ presetConfigFields.splice(primaryFieldsViewIndex, 1, ...uncommonFieldsConfigMeta);
164
+ }
165
+ return presetConfigFields;
166
+ }
167
+ /**
168
+ * [getTableConfigFromPresetMeta]
169
+ * Description - Get the table config from the presets meta.
170
+ * @ignore
171
+ * @param {object} presetMeta Presets meta
172
+ * @param {boolean} isMetaWithPresets true if meta has presets else false
173
+ * @param {Function} getPConnect Callback to get the PConnect object
174
+ * @param {string} classID Class ID from the response
175
+ * @param {Array} primaryFields List of Primary Fields
176
+ * @param {Array} metaFields List of all metafields
177
+ * @returns {object} Table config object
178
+ */
179
+ export function getTableConfigFromPresetMeta(presetMeta, isMetaWithPresets, getPConnect, classID, primaryFields, metaFields) {
180
+ let presetId;
181
+ let presetName;
182
+ let cardHeader;
183
+ let secondaryText;
184
+ let timelineDate;
185
+ let timelineTitle;
186
+ let timelineStatus;
187
+ let timelineIcon;
188
+ let { filterExpression } = getPConnect().getRawMetadata().config;
189
+ let fieldsMeta;
190
+ let configFields;
191
+ if (isMetaWithPresets) {
192
+ presetId = presetMeta.id;
193
+ presetName = presetMeta.label;
194
+ cardHeader = presetMeta.cardHeader && getPresetMetaAttribute(presetMeta.cardHeader);
195
+ secondaryText = presetMeta.secondaryText && getPresetMetaAttribute(presetMeta.secondaryText);
196
+ timelineDate = presetMeta.timelineDate && getPresetMetaAttribute(presetMeta.timelineDate);
197
+ timelineTitle = presetMeta.timelineTitle && getPresetMetaAttribute(presetMeta.timelineTitle);
198
+ timelineStatus = presetMeta.timelineStatus && getPresetMetaAttribute(presetMeta.timelineStatus);
199
+ timelineIcon = presetMeta.timelineIcon && getPresetMetaAttribute(presetMeta.timelineIcon);
200
+ filterExpression = presetMeta.config.filterExpression;
201
+ [fieldsMeta] = presetMeta.children;
202
+ if (presetMeta.timelineTitle &&
203
+ !fieldsMeta.children.find((fieldMeta) => {
204
+ return fieldMeta?.config?.value === presetMeta.timelineTitle?.config?.value;
205
+ })) {
206
+ const { type, config } = presetMeta.timelineTitle;
207
+ fieldsMeta.children.push({ type, config: { ...config, show: false } });
208
+ }
209
+ if (presetMeta.timelineDate &&
210
+ !fieldsMeta.children.find((fieldMeta) => {
211
+ return fieldMeta?.config?.value === presetMeta.timelineDate?.config?.value;
212
+ })) {
213
+ const { type, config } = presetMeta.timelineDate;
214
+ fieldsMeta.children.push({ type, config: { ...config, show: false } });
215
+ }
216
+ configFields = getConfigFields(fieldsMeta.children, primaryFields, metaFields, classID);
217
+ }
218
+ else {
219
+ fieldsMeta = presetMeta.props;
220
+ configFields = getConfigFields(fieldsMeta
221
+ .getPConnect()
222
+ .getChildren()
223
+ ?.map((child) => {
224
+ return child.getPConnect().getRawMetadata();
225
+ }), primaryFields, metaFields, classID);
226
+ }
227
+ return {
228
+ presetId,
229
+ presetName,
230
+ cardHeader,
231
+ secondaryText,
232
+ timelineDate,
233
+ timelineTitle,
234
+ timelineStatus,
235
+ timelineIcon,
236
+ filterExpression,
237
+ fieldsMeta,
238
+ configFields
239
+ };
240
+ }
241
+ /**
242
+ * [getReportColumns]
243
+ * Description - Returns a set of columns from the report response.
244
+ * @ignore
245
+ * @param {object} response -
246
+ * @returns {Set} Set of columns from the report response
247
+ */
248
+ function getReportColumns(response) {
249
+ const { data: { data: reportColumns } } = response;
250
+ const reportColumnsSet = new Set();
251
+ reportColumns?.forEach((item) => {
252
+ let val = item.pyFieldName;
253
+ // Remove '.' from index 0 only, if '.' is present
254
+ if (val[0] === '.') {
255
+ val = val.substring(1);
256
+ }
257
+ reportColumnsSet.add(val);
258
+ });
259
+ return reportColumnsSet;
260
+ }
261
+ /**
262
+ * [getConfigFieldValue]
263
+ * Descritpion - Returns a valid value for a configuration field. Remove any annotations and also "."
264
+ * @ignore
265
+ * @param {object} config
266
+ * config.value - Raw value
267
+ * @returns {string} value - Value with out any annotations or "."
268
+ */
269
+ function getConfigFieldValue(config) {
270
+ let { value } = config;
271
+ if (value.startsWith('@')) {
272
+ value = value.substring(value.indexOf(' ') + 1);
273
+ if (value[0] === '.')
274
+ value = value.substring(1);
275
+ }
276
+ return value;
277
+ }
278
+ /**
279
+ * [prepareConfigFields]
280
+ * Description - Prepares a set of configuration fields and pushes each config type to a set using the callback parameter.
281
+ * @ignore
282
+ * @param {object} configFields List of Authored fields
283
+ * @param {Function} pushToComponentsList Callback to push the field type to a set.
284
+ * @returns {Set} configFieldSet
285
+ */
286
+ function prepareConfigFields(configFields, pushToComponentsList) {
287
+ const configFieldSet = new Set();
288
+ configFields.forEach((item) => {
289
+ pushToComponentsList(item.type);
290
+ const val = getConfigFieldValue(item.config);
291
+ configFieldSet.add(val);
292
+ });
293
+ return configFieldSet;
294
+ }
295
+ /**
296
+ * [findAuthoredField]
297
+ * Description - Finds an authored field from yhe list of config fields.
298
+ * @ignore
299
+ * @param {Array} configFields List of Authored fields
300
+ * @param {string} fieldID Filter
301
+ * @returns {object} config with its field value equal to fieldID, which means an authored field
302
+ */
303
+ function findAuthoredField(configFields, fieldID) {
304
+ return configFields.find((configField) => {
305
+ const val = getConfigFieldValue(configField.config);
306
+ return val === fieldID;
307
+ });
308
+ }
309
+ /**
310
+ * [findAndUpdateAuthoredFieldConfig]
311
+ * Description - Find the authored field, and update its config.
312
+ * @ignore
313
+ * @param {Array} configFields List of Authored fields
314
+ * @param {object} item Field item to copy displayAs and category information
315
+ * @param {string} classId classID from the response
316
+ */
317
+ function findAndUpdateAuthoredFieldConfig(configFields, item, classId) {
318
+ const authoredField = findAuthoredField(configFields, item.fieldID);
319
+ if (authoredField?.config) {
320
+ if (item.displayAs) {
321
+ authoredField.config.displayAs = item.displayAs;
322
+ }
323
+ authoredField.config.classID = item.classID ?? classId;
324
+ if (authoredField.type === USER_REFERENCE) {
325
+ authoredField.config.associationID = item.associationID || item.fieldID;
326
+ }
327
+ authoredField.config.category = item.category;
328
+ // FieldType identifies whether the field is configured as pickList
329
+ authoredField.config.fieldType = item.fieldType;
330
+ // type defined on the property rule,
331
+ // used for the picklist field to assign the appropriate type
332
+ authoredField.config.propertyType = item.dataType || item.type;
333
+ }
334
+ }
335
+ /**
336
+ * [isAnExtraField]
337
+ * Description - Returns true if the field is an extra field. Extra field is the one which is not authored but part of the report.
338
+ * @ignore
339
+ * @param {Array} configFields List of Authored fields
340
+ * @param {Set} configFieldSet Set if Authored filed values
341
+ * @param {Set} reportColumnsSet Set of columns from the report
342
+ * @param {object} item Config field item
343
+ * @param {string} classId Class ID from the response
344
+ * @param {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime
345
+ * @returns {boolean} true If the field is an extra field else false.
346
+ */
347
+ function isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classId, showDynamicFields) {
348
+ // Is the field already present in authoring metadata?
349
+ // Mutates config fields to copy displayAs and category information
350
+ if (configFieldSet.has(item.fieldID)) {
351
+ findAndUpdateAuthoredFieldConfig(configFields, item, classId);
352
+ return false;
353
+ }
354
+ // If field is not authored and not part of report columns then discard it
355
+ return showDynamicFields || !!reportColumnsSet.has(item.fieldID);
356
+ }
357
+ /**
358
+ * [prepareExtraFields]
359
+ * Description - Returns a list of extra fields with their meta updated.
360
+ * @ignore
361
+ * @param {Array} metaFields List of fields
362
+ * @param {Array} configFields List of Authored fields
363
+ * @param {Set} configFieldSet Set if Authored filed values
364
+ * @param {Set} reportColumnsSet Set of columns from the report
365
+ * @param {string} classID Class ID from the response
366
+ * @param {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime
367
+ * @returns {Array} List of extra fields with their meta updated.
368
+ */
369
+ function prepareExtraFields(metaFields, configFields, configFieldSet, reportColumnsSet, classID, showDynamicFields) {
370
+ // Filter all the extra fields
371
+ const extraFileds = metaFields.filter((item) => {
372
+ return isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classID, showDynamicFields);
373
+ });
374
+ return generateViewMetaData(extraFileds, classID, false);
375
+ // Update the meta object of each of the extra fields.
376
+ }
377
+ const AssignDashObjects = ['Assign-Worklist', 'Assign-WorkBasket'];
378
+ function populateRenderingOptions(name, config, field) {
379
+ const shouldDisplayAsSemanticLink = 'displayAsLink' in field.config && field.config.displayAsLink;
380
+ if (shouldDisplayAsSemanticLink) {
381
+ config.customObject.isAssignmentLink = AssignDashObjects.includes(field.config.classID);
382
+ if (field.config.value.startsWith('@CA')) {
383
+ config.customObject.isAssociation = true;
384
+ }
385
+ config.cellRenderer = formatConstants.WorkLink;
386
+ }
387
+ else if (name === 'pyStatusWork' || name === 'pyAssignmentStatus') {
388
+ config.cellRenderer = formatConstants.WorkStatus;
389
+ }
390
+ else if (name === 'pxUrgencyWork') {
391
+ config.cellRenderer = formatConstants.Integer;
392
+ }
393
+ }
394
+ export function initializeColumns(fields = [], getMappedProperty) {
395
+ return fields.map((field, originalColIndex) => {
396
+ let name = field.config.value;
397
+ if (name.startsWith('@')) {
398
+ name = name.substring(name.indexOf(' ') + 1);
399
+ if (name[0] === '.')
400
+ name = name.substring(1);
401
+ }
402
+ name = getMappedProperty?.(name) ?? name;
403
+ let label = field.config.label || field.config.caption;
404
+ const { show = true, displayAs } = field.config;
405
+ if (label.startsWith('@')) {
406
+ label = label.substring(3);
407
+ }
408
+ const config = {
409
+ name,
410
+ label,
411
+ show,
412
+ classID: field.config.classID,
413
+ id: field.id || name || originalColIndex,
414
+ displayAs,
415
+ associationID: field.config.associationID,
416
+ ...(field.config.classID && { category: field.config.category }),
417
+ customObject: {},
418
+ fieldType: field.config.fieldType,
419
+ meta: {
420
+ ...field
421
+ },
422
+ };
423
+ populateRenderingOptions(name, config, field);
424
+ return config;
425
+ });
426
+ }
427
+ export const getItemKey = (fields) => {
428
+ let itemKey;
429
+ if (fields.findIndex((field) => field.id === 'pyGUID') > -1) {
430
+ itemKey = 'pyGUID';
431
+ }
432
+ else {
433
+ itemKey = 'pzInsKey';
434
+ }
435
+ return itemKey;
436
+ };
437
+ export function preparePatchQueryFields(fields, isDataObject = false, classID = '') {
438
+ const queryFields = [];
439
+ fields.forEach((field) => {
440
+ const patchFields = [];
441
+ if (field.cellRenderer === 'WorkLink') {
442
+ if (field.customObject && field.customObject.isAssignmentLink) {
443
+ const associationName = field.name.includes(':') ? `${field.name.split(':')[0]}:` : '';
444
+ patchFields.push(`${associationName}pzInsKey`);
445
+ patchFields.push(`${associationName}pxRefObjectClass`);
446
+ }
447
+ else if (field.customObject && field.customObject.isAssociation) {
448
+ const associationCategory = field.name.split(':')[0];
449
+ patchFields.push(`${associationCategory}:pyID`);
450
+ patchFields.push(`${associationCategory}:pzInsKey`);
451
+ patchFields.push(`${associationCategory}:pxObjClass`);
452
+ }
453
+ else if (isDataObject) {
454
+ const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);
455
+ const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);
456
+ dataPageKeys?.forEach((item) => item.isAlternateKeyStorage ? patchFields.push(item.linkedField) : patchFields.push(item.keyName));
457
+ }
458
+ else {
459
+ patchFields.push('pyID');
460
+ patchFields.push('pzInsKey');
461
+ patchFields.push('pxObjClass');
462
+ }
463
+ }
464
+ patchFields.forEach((k) => {
465
+ if (!queryFields.find((q) => q === k)) {
466
+ queryFields.push(k);
467
+ }
468
+ });
469
+ });
470
+ return queryFields;
471
+ }
472
+ export const readContextResponse = async (context, params) => {
473
+ const { getPConnect, apiContext, setListContext, children, showDynamicFields, referenceList, isDataObject } = params;
474
+ const { promisesResponseArray, apiContext: otherContext } = context;
475
+ // eslint-disable-next-line sonarjs/no-unused-collection
476
+ const listOfComponents = [];
477
+ const { data: { fields: metaFields, classID, isQueryable } } = promisesResponseArray[0];
478
+ let { data: { primaryFields } } = promisesResponseArray[0];
479
+ // When list is configured with Include all class fields configuration, provide support for Primary fields column
480
+ if (showDynamicFields) {
481
+ const sourceMetadata = PCore.getMetadataUtils().getDataPageMetadata(referenceList);
482
+ if (sourceMetadata?.primaryFields) {
483
+ primaryFields = sourceMetadata.primaryFields;
484
+ }
485
+ // updating metaData fieldID to normal property if it has fieldID starts with !P! or !PL!
486
+ updateMetaEmbeddedFieldID(metaFields);
487
+ }
488
+ updateFieldType(metaFields);
489
+ if (isDataObject) {
490
+ const compositeKeys = [];
491
+ const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);
492
+ const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);
493
+ dataPageKeys?.forEach((item) => item.isAlternateKeyStorage ? compositeKeys.push(item.linkedField) : compositeKeys.push(item.keyName));
494
+ if (compositeKeys.length) {
495
+ otherContext.setCompositeKeys(compositeKeys);
496
+ }
497
+ otherContext.fetchRowActionDetails = null;
498
+ }
499
+ const presetArray = [];
500
+ const rawMetadata = getPConnect().getRawMetadata().config;
501
+ const rawPresets = rawMetadata.presets;
502
+ const isMetaWithPresets = rawPresets && rawPresets.length !== 0;
503
+ const childrenIterator = isMetaWithPresets ? rawPresets : children;
504
+ const resolvedPresets = getPConnect().getConfigProps().presets;
505
+ let fields;
506
+ let tableConfig;
507
+ childrenIterator?.forEach((presetMeta, index) => {
508
+ const { configFields } = getTableConfigFromPresetMeta({ ...presetMeta, label: resolvedPresets[index].label }, isMetaWithPresets, getPConnect, classID, primaryFields, metaFields);
509
+ const pushToComponentsList = (fieldType) => {
510
+ listOfComponents.push(fieldType);
511
+ };
512
+ // read report columns response - in case of nonqueryable ignore the response and rely only on the fields configured at authoing time in presets
513
+ const reportColumnsSet = isQueryable ? getReportColumns(promisesResponseArray[1]) : new Set();
514
+ const configFieldSet = prepareConfigFields(configFields, pushToComponentsList);
515
+ // FIXME #EmbeddedPropertyPatch
516
+ // TODO: Remove this merge logic when the metadata response includes all optimized embedded page and pagelists
517
+ // merging configured embedded properties with metadata so that while preparing extra fields, config fields can get other properties from meta(eg: category, displayAsLink)
518
+ // get configured embedded properties metadata and get new mergedMetaFields
519
+ const configEmbeddedFieldsMeta = getConfigEmbeddedFieldsMeta(configFieldSet, classID);
520
+ const mergedMetaFields = mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields);
521
+ const extraFields = prepareExtraFields(mergedMetaFields, // passing new merged meta fields which has meta of configured embedded fields of current preset
522
+ configFields, configFieldSet, reportColumnsSet, classID, showDynamicFields);
523
+ fields = initializeColumns([...configFields, ...extraFields]);
524
+ const patchQueryFields = preparePatchQueryFields(fields, isDataObject, classID);
525
+ const itemKey = getItemKey(fields);
526
+ tableConfig = { fieldDefs: fields, patchQueryFields, itemKey, isQueryable };
527
+ });
528
+ const meta = tableConfig;
529
+ setListContext({
530
+ meta,
531
+ presets: presetArray,
532
+ apiContext: {
533
+ ...apiContext,
534
+ }
535
+ });
536
+ };
537
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/template/ListView/utils.js"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,kBAAkB,MAAM,mBAAmB,CAAC;AAEnD,MAAM,cAAc,GAAG,eAAe,CAAC;AACvC,MAAM,IAAI,GAAG,KAAK,CAAC;AACnB,MAAM,QAAQ,GAAG,MAAM,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,eAAe;IAC9C,MAAM,EACJ,aAAa,GAAG,EAAE,EAAE,oDAAoD;MACzE,GAAG,eAAe,CAAC;IACpB,MAAM,qBAAqB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/D,OAAO;QACL,qBAAqB;KACtB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACF,MAAM,UAAU,iCAAiC,CAAC,YAAY;IAC7D,IAAI,KAAK,GAAG,YAAY,CAAC;IACzB,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACxD,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAClC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACF,MAAM,UAAU,yBAAyB,CAAC,UAAU;IACnD,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACtC,IAAI,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE;YAClF,SAAS,CAAC,OAAO,GAAG,iCAAiC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SAC1E;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE;IACvC,IAAI,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE;QAC1B,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAClD;IACD,OAAO,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAAC,YAAY,EAAE,OAAO;IAC/D,MAAM,wBAAwB,GAAG,EAAE,CAAC;IACpC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7B,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;YAC1B,gEAAgE;YAChE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACvB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aAC1F;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC,2BAA2B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAClF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,wBAAwB,EAAE,UAAU;IAChF,MAAM,gBAAgB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IACzC,wBAAwB,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;QACnD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,eAAe,CAAC,OAAO,CAAC,CAAC;QAChG,IAAI,CAAC,SAAS;YAAE,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,wBAAwB,GAAG;IAC/B,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,WAAW;CAClB,CAAC;AAEF;;;;;GAKG;AACF,SAAS,eAAe,CAAC,UAAU;IAClC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC/B,IAAI,SAAS,CAAC,IAAI;YAAE,SAAS,CAAC,IAAI,GAAG,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC;IAClG,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAS;IACvC,MAAM,EACJ,IAAI,EACJ,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EACzB,GAAG,SAAS,CAAC;IACd,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;QACxD,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;KAC1D,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACF,SAAS,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS;IAC1D,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;GASG;AACF,SAAS,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO;IACxE,MAAM,kBAAkB,GAAG,YAAY,CAAC;IACxC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,iBAAiB,CAAC,CAAC;IACjH,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;QAC3C,IAAI,sBAAsB,GAAG,CAAC;YAAE,OAAO,kBAAkB,CAAC;QAE1D,kBAAkB,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;QAErD,OAAO,kBAAkB,CAAC;KAC3B;IAED,IAAI,sBAAsB,GAAG,CAAC,CAAC,EAAE;QAC/B,sHAAsH;QACtH,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAC7C,CAAC,YAAY,EAAE,EAAE,CACf,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CACjH,CAAC;QACF,MAAM,qBAAqB,GAAG,EAAE,CAAC;QACjC,kBAAkB,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;YAC3C,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC;YAC9F,IAAI,iBAAiB;gBAAE,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,qBAAqB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAE5F,kBAAkB,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,EAAE,GAAG,wBAAwB,CAAC,CAAC;KACnF;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;GAWG;AACF,MAAM,UAAU,4BAA4B,CAC3C,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,aAAa,EACb,UAAU;IAEV,IAAI,QAAQ,CAAC;IACb,IAAI,UAAU,CAAC;IACf,IAAI,UAAU,CAAC;IACf,IAAI,aAAa,CAAC;IAClB,IAAI,YAAY,CAAC;IACjB,IAAI,aAAa,CAAC;IAClB,IAAI,cAAc,CAAC;IACnB,IAAI,YAAY,CAAC;IACjB,IAAI,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;IACjE,IAAI,UAAU,CAAC;IACf,IAAI,YAAY,CAAC;IACjB,IAAI,iBAAiB,EAAE;QACrB,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC;QACzB,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;QAC9B,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,sBAAsB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACpF,aAAa,GAAG,UAAU,CAAC,aAAa,IAAI,sBAAsB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC7F,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,sBAAsB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1F,aAAa,GAAG,UAAU,CAAC,aAAa,IAAI,sBAAsB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC7F,cAAc,GAAG,UAAU,CAAC,cAAc,IAAI,sBAAsB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAChG,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,sBAAsB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1F,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACtD,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC;QACnC,IACE,UAAU,CAAC,aAAa;YACxB,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBACtC,OAAO,SAAS,EAAE,MAAM,EAAE,KAAK,KAAK,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC;YAC9E,CAAC,CAAC,EACF;YACA,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC;YAClD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;SACxE;QACD,IACE,UAAU,CAAC,YAAY;YACvB,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBACtC,OAAO,SAAS,EAAE,MAAM,EAAE,KAAK,KAAK,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC;YAC7E,CAAC,CAAC,EACF;YACA,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC;YACjD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;SACxE;QACD,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;KACzF;SAAM;QACL,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;QAC9B,YAAY,GAAG,eAAe,CAC5B,UAAU;aACP,WAAW,EAAE;aACb,WAAW,EAAE;YACd,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;QAC9C,CAAC,CAAC,EACJ,aAAa,EACb,UAAU,EACV,OAAO,CACR,CAAC;KACH;IACD,OAAO;QACL,QAAQ;QACR,UAAU;QACV,UAAU;QACV,aAAa;QACb,YAAY;QACZ,aAAa;QACb,cAAc;QACd,YAAY;QACZ,gBAAgB;QAChB,UAAU;QACV,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACF,SAAS,gBAAgB,CAAC,QAAQ;IACjC,MAAM,EACJ,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAC9B,GAAG,QAAQ,CAAC;IACb,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;IACnC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3B,kDAAkD;QAClD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAClB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACxB;QACD,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACF,SAAS,mBAAmB,CAAC,MAAM;IAClC,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACvB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACzB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAClD;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,YAAY,EAAE,oBAAoB;IAC7D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IACjC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;;;GAOG;AACF,SAAS,iBAAiB,CAAC,YAAY,EAAE,OAAO;IAC/C,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO,GAAG,KAAK,OAAO,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACF,SAAS,gCAAgC,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO;IACpE,MAAM,aAAa,GAAG,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,aAAa,EAAE,MAAM,EAAE;QACzB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,aAAa,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SACjD;QACD,aAAa,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC;QAEvD,IAAI,aAAa,CAAC,IAAI,KAAK,cAAc,EAAE;YACzC,aAAa,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC;SACzE;QACD,aAAa,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9C,mEAAmE;QACnE,aAAa,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChD,qCAAqC;QACrC,6DAA6D;QAC7D,aAAa,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC;KAChE;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACF,SAAS,cAAc,CAAC,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB;IACvG,sDAAsD;IACtD,mEAAmE;IACnE,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACpC,gCAAgC,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC;KACd;IAED,0EAA0E;IAC1E,OAAO,iBAAiB,IAAI,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;GAWG;AACF,SAAS,kBAAkB,CAC1B,UAAU,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,iBAAiB;IAEjB,8BAA8B;IAC9B,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7C,OAAO,cAAc,CAAC,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IACH,OAAO,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACzD,sDAAsD;AACxD,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;AAEnE,SAAS,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK;IACnD,MAAM,2BAA2B,GAAG,eAAe,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;IAClG,IAAI,2BAA2B,EAAE;QAC/B,MAAM,CAAC,YAAY,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxF,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YACxC,MAAM,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC;SAC1C;QACD,MAAM,CAAC,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC;KAChD;SAAM,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,oBAAoB,EAAE;QACnE,MAAM,CAAC,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC;KAClD;SAAM,IAAI,IAAI,KAAK,eAAe,EAAE;QACnC,MAAM,CAAC,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC;KAC/C;AACH,CAAC;AACD,MAAM,UAAU,iBAAiB,CAC/B,MAAM,GAAG,EAAE,EACX,iBAAiB;IAEjB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE;QAC5C,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAE9B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACxB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC/C;QACD,IAAI,GAAG,iBAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAEzC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QACvD,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QAChD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACzB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC5B;QAED,MAAM,MAAM,GAAG;YACb,IAAI;YACJ,KAAK;YACL,IAAI;YACJ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;YAC7B,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,IAAI,gBAAgB;YACxC,SAAS;YACT,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;YACzC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChE,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;YACjC,IAAI,EAAE;gBACJ,GAAG,KAAK;aACT;SACF,CAAC;QAEF,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAE9C,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,EAAE;IACnC,IAAI,OAAO,CAAC;IACZ,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;QAC3D,OAAO,GAAG,QAAQ,CAAC;KACpB;SAAM;QACL,OAAO,GAAG,UAAU,CAAC;KACtB;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,MAAM,EAAE,YAAY,GAAG,KAAK,EAAE,OAAO,GAAG,EAAE;IAChF,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,YAAY,KAAK,UAAU,EAAE;YACrC,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE;gBAC7D,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvF,WAAW,CAAC,IAAI,CAAC,GAAG,eAAe,UAAU,CAAC,CAAC;gBAC/C,WAAW,CAAC,IAAI,CAAC,GAAG,eAAe,kBAAkB,CAAC,CAAC;aACxD;iBAAM,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE;gBACjE,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,WAAW,CAAC,IAAI,CAAC,GAAG,mBAAmB,OAAO,CAAC,CAAC;gBAChD,WAAW,CAAC,IAAI,CAAC,GAAG,mBAAmB,WAAW,CAAC,CAAC;gBACpD,WAAW,CAAC,IAAI,CAAC,GAAG,mBAAmB,aAAa,CAAC,CAAC;aACvD;iBAAM,IAAI,YAAY,EAAE;gBACvB,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAC1E,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gBAC5E,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7B,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CACjG,CAAC;aACH;iBAAM;gBACL,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC7B,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAChC;SACF;QACD,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gBACrC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAC3D,MAAM,EACJ,WAAW,EACX,UAAU,EACV,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,YAAY,EACb,GAAG,MAAM,CAAC;IACX,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACpE,wDAAwD;IACxD,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B,MAAM,EACJ,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,EACnD,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,EACF,IAAI,EAAE,EAAE,aAAa,EAAE,EACxB,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC7B,iHAAiH;IACjH,IAAI,iBAAiB,EAAE;QACrB,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACnF,IAAI,cAAc,EAAE,aAAa,EAAE;YACjC,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC;SAC9C;QACD,yFAAyF;QACzF,yBAAyB,CAAC,UAAU,CAAC,CAAC;KACvC;IACD,eAAe,CAAC,UAAU,CAAC,CAAC;IAG5B,IAAI,YAAY,EAAE;QAChB,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC5E,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7B,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CACrG,CAAC;QACF,IAAI,aAAa,CAAC,MAAM,EAAE;YACxB,YAAY,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;SAC9C;QACD,YAAY,CAAC,qBAAqB,GAAG,IAAI,CAAC;KAC3C;IAED,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;IAC1D,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC;IACvC,MAAM,iBAAiB,GAAG,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnE,MAAM,eAAe,GAAG,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC;IAC/D,IAAI,MAAM,CAAC;IACX,IAAI,WAAW,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;QAC9C,MAAM,EACJ,YAAY,EACb,GAAG,4BAA4B,CAC9B,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EACtD,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,aAAa,EACb,UAAU,CACX,CAAC;QACF,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,EAAE;YACzC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,gJAAgJ;QAChJ,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QAE9F,MAAM,cAAc,GAAG,mBAAmB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;QAE/E,+BAA+B;QAC/B,8GAA8G;QAC9G,2KAA2K;QAC3K,2EAA2E;QAC3E,MAAM,wBAAwB,GAAG,2BAA2B,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACtF,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;QAE7F,MAAM,WAAW,GAAG,kBAAkB,CACpC,gBAAgB,EAAE,gGAAgG;QAClH,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,iBAAiB,CAClB,CAAC;QAGF,MAAM,GAAG,iBAAiB,CACxB,CAAC,GAAG,YAAY,EAAE,GAAG,WAAW,CAAC,CAClC,CAAC;QACF,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,WAAW,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAC,CAAA;IAC5E,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,WAAW,CAAC;IACzB,cAAc,CAAC;QACb,IAAI;QACJ,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE;YACV,GAAG,UAAU;SACd;KACF,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["/* eslint-disable no-undef */\nimport getDefaultViewMeta from './DefaultViewMeta';\n\nconst USER_REFERENCE = 'UserReference';\nconst PAGE = '!P!';\nconst PAGELIST = '!PL!';\n\nexport const formatConstants = {\n WorkStatus: 'WorkStatus',\n Integer: 'Integer',\n WorkLink: 'WorkLink',\n};\n\nexport async function getContext(componentConfig) {\n const {\n promisesArray = [], // array of promises which can be invoked paralelly,\n } = componentConfig;\n const promisesResponseArray = await Promise.all(promisesArray);\n return {\n promisesResponseArray,\n };\n}\n\n/**\n * [getFieldNameFromEmbeddedFieldName]\n * Description - converting embeddedField name starting with !P! or !PL! to normal field\n * @ignore\n * @param {string} propertyName EmbeddedField name starting with !P! or !PL!\n * @returns {string} returns converted string without !P! or !PL! and :\n *\n * @example <caption>Example for getFieldNameFromEmbeddedFieldName </caption>\n * getFieldNameFromEmbeddedFieldName('!P!Organisation:Name') return 'Organisation.Name'\n * getFieldNameFromEmbeddedFieldName('!PL!Employees:Name') return 'Employees.Name'\n */\n export function getFieldNameFromEmbeddedFieldName(propertyName) {\n let value = propertyName;\n if (value.startsWith(PAGE) || value.startsWith(PAGELIST)) {\n value = value.substring(value.lastIndexOf('!') + 1);\n value = value.replace(/:/g, '.');\n }\n return value;\n}\n\n/**\n * [updateMetaEmbeddedFieldID]\n * Description - If the fieldID in meta starts with '!P!' or '!PL!' and contains ':' then replace them with .(dot)\n * @ignore\n * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields.\n */\n export function updateMetaEmbeddedFieldID(metaFields) {\n return metaFields.forEach((metaField) => {\n if (metaField.fieldID?.startsWith(PAGE) || metaField.fieldID?.startsWith(PAGELIST)) {\n metaField.fieldID = getFieldNameFromEmbeddedFieldName(metaField.fieldID);\n }\n });\n}\n\nexport const isEmbeddedField = (field) => {\n if (field?.startsWith('@')) {\n field = field.substring(field.indexOf(' ') + 1);\n if (field[0] === '.') field = field.substring(1);\n }\n return field?.indexOf('.') > 0;\n};\n\n/**\n * [getConfigEmbeddedFieldsMeta]\n * Description - Get the metadata for configured embedded fields\n * @ignore\n * @param {Set} configFields Set of config fields\n * @param {string} classID clasID of datapage\n * @returns {Array} Metadata of configured embedded fields\n */\nexport function getConfigEmbeddedFieldsMeta(configFields, classID) {\n const configEmbeddedFieldsMeta = [];\n configFields.forEach((field) => {\n let value = field;\n if (isEmbeddedField(value)) {\n // conversion Page.PageList[].property => Page.PageList.property\n if (value.includes('[')) {\n value = value.substring(0, value.indexOf('[')) + value.substring(value.indexOf(']') + 1);\n }\n const meta = PCore.getMetadataUtils().getEmbeddedPropertyMetadata(value, classID);\n meta.fieldID = field;\n configEmbeddedFieldsMeta.push(meta);\n }\n });\n return configEmbeddedFieldsMeta;\n}\n\n/**\n * [mergeConfigEmbeddedFieldsMeta]\n * Description - Get the metadata for configured embedded fields\n * @ignore\n * @param {Array} configEmbeddedFieldsMeta config fields metadata.\n * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields\n */\nexport function mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields) {\n const mergedMetaFields = [...metaFields];\n configEmbeddedFieldsMeta.forEach((configFieldMeta) => {\n const fieldMeta = metaFields.find((metaField) => metaField.fieldID === configFieldMeta.fieldID);\n if (!fieldMeta) mergedMetaFields.push(configFieldMeta);\n });\n return mergedMetaFields;\n}\n\nconst oldToNewFieldTypeMapping = {\n 'Date Time': 'Date & time',\n Date: 'Date only'\n};\n\n/**\n * [updateFieldType]\n * Description - Updates the field type if its changed in the new implementation. Such mapping is maintained in oldToNewFieldTypeMapping.\n * @ignore\n * @param {Array} metaFields Fields metadata Array. Contains metadata of all the fields.\n */\n function updateFieldType(metaFields) {\n metaFields.forEach((metaField) => {\n if (metaField.type) metaField.type = oldToNewFieldTypeMapping[metaField.type] || metaField.type;\n });\n}\n\nfunction getPresetMetaAttribute(attribute) {\n const {\n type,\n config: { label, value }\n } = attribute;\n return {\n type,\n name: value.startsWith('@') ? value.substring(4) : value,\n label: label.startsWith('@') ? label.substring(3) : label\n };\n}\n\n/**\n * [generateViewMetaData]\n * Description - Returns a list of metaobjects of the fields provided.\n * @ignore\n * @param {Array} rawFields List of fields to update meta for\n * @param {string} classID Class ID from the response\n * @returns {Array} List of fields with updated meta objects.\n */\n function generateViewMetaData(rawFields, classID, showField) {\n return rawFields.map((item) => getDefaultViewMeta(item, classID, showField));\n}\n\n/**\n * [getConfigFields]\n * Description - Returns list of config fields with primary fields meta updated.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {Array} primaryFields List of Primary Fields\n * @param {Array} metaFields Metadata of all fields\n * @param {string} classID Class ID from the response\n * @returns {Array} List of all fields with their meta updated.\n */\n function getConfigFields(configFields, primaryFields, metaFields, classID) {\n const presetConfigFields = configFields;\n const primaryFieldsViewIndex = presetConfigFields.findIndex((field) => field.config.value === 'pyPrimaryFields');\n if (!primaryFields || !primaryFields.length) {\n if (primaryFieldsViewIndex < 0) return presetConfigFields;\n\n presetConfigFields.splice(primaryFieldsViewIndex, 1);\n\n return presetConfigFields;\n }\n\n if (primaryFieldsViewIndex > -1) {\n // list of uncommon fields - non overlap of primary fields grouped view and independent entity columns of primary type\n const uncommonFieldsList = primaryFields.filter(\n (primaryField) =>\n !presetConfigFields.some((presetConfigField) => presetConfigField.config.value.split('.')[1] === primaryField)\n );\n const uncommonFieldsRawMeta = [];\n uncommonFieldsList.forEach((uncommonField) => {\n const uncommonFieldMeta = metaFields.find((metaField) => metaField.fieldID === uncommonField);\n if (uncommonFieldMeta) uncommonFieldsRawMeta.push(uncommonFieldMeta);\n });\n const uncommonFieldsConfigMeta = generateViewMetaData(uncommonFieldsRawMeta, classID, true);\n\n presetConfigFields.splice(primaryFieldsViewIndex, 1, ...uncommonFieldsConfigMeta);\n }\n return presetConfigFields;\n}\n\n/**\n * [getTableConfigFromPresetMeta]\n * Description - Get the table config from the presets meta.\n * @ignore\n * @param {object} presetMeta Presets meta\n * @param {boolean} isMetaWithPresets true if meta has presets else false\n * @param {Function} getPConnect Callback to get the PConnect object\n * @param {string} classID Class ID from the response\n * @param {Array} primaryFields List of Primary Fields\n * @param {Array} metaFields List of all metafields\n * @returns {object} Table config object\n */\n export function getTableConfigFromPresetMeta(\n presetMeta,\n isMetaWithPresets,\n getPConnect,\n classID,\n primaryFields,\n metaFields\n) {\n let presetId;\n let presetName;\n let cardHeader;\n let secondaryText;\n let timelineDate;\n let timelineTitle;\n let timelineStatus;\n let timelineIcon;\n let { filterExpression } = getPConnect().getRawMetadata().config;\n let fieldsMeta;\n let configFields;\n if (isMetaWithPresets) {\n presetId = presetMeta.id;\n presetName = presetMeta.label;\n cardHeader = presetMeta.cardHeader && getPresetMetaAttribute(presetMeta.cardHeader);\n secondaryText = presetMeta.secondaryText && getPresetMetaAttribute(presetMeta.secondaryText);\n timelineDate = presetMeta.timelineDate && getPresetMetaAttribute(presetMeta.timelineDate);\n timelineTitle = presetMeta.timelineTitle && getPresetMetaAttribute(presetMeta.timelineTitle);\n timelineStatus = presetMeta.timelineStatus && getPresetMetaAttribute(presetMeta.timelineStatus);\n timelineIcon = presetMeta.timelineIcon && getPresetMetaAttribute(presetMeta.timelineIcon);\n filterExpression = presetMeta.config.filterExpression;\n [fieldsMeta] = presetMeta.children;\n if (\n presetMeta.timelineTitle &&\n !fieldsMeta.children.find((fieldMeta) => {\n return fieldMeta?.config?.value === presetMeta.timelineTitle?.config?.value;\n })\n ) {\n const { type, config } = presetMeta.timelineTitle;\n fieldsMeta.children.push({ type, config: { ...config, show: false } });\n }\n if (\n presetMeta.timelineDate &&\n !fieldsMeta.children.find((fieldMeta) => {\n return fieldMeta?.config?.value === presetMeta.timelineDate?.config?.value;\n })\n ) {\n const { type, config } = presetMeta.timelineDate;\n fieldsMeta.children.push({ type, config: { ...config, show: false } });\n }\n configFields = getConfigFields(fieldsMeta.children, primaryFields, metaFields, classID);\n } else {\n fieldsMeta = presetMeta.props;\n configFields = getConfigFields(\n fieldsMeta\n .getPConnect()\n .getChildren()\n ?.map((child) => {\n return child.getPConnect().getRawMetadata();\n }),\n primaryFields,\n metaFields,\n classID\n );\n }\n return {\n presetId,\n presetName,\n cardHeader,\n secondaryText,\n timelineDate,\n timelineTitle,\n timelineStatus,\n timelineIcon,\n filterExpression,\n fieldsMeta,\n configFields\n };\n}\n\n/**\n * [getReportColumns]\n * Description - Returns a set of columns from the report response.\n * @ignore\n * @param {object} response -\n * @returns {Set} Set of columns from the report response\n */\n function getReportColumns(response) {\n const {\n data: { data: reportColumns }\n } = response;\n const reportColumnsSet = new Set();\n reportColumns?.forEach((item) => {\n let val = item.pyFieldName;\n // Remove '.' from index 0 only, if '.' is present\n if (val[0] === '.') {\n val = val.substring(1);\n }\n reportColumnsSet.add(val);\n });\n return reportColumnsSet;\n}\n\n/**\n * [getConfigFieldValue]\n * Descritpion - Returns a valid value for a configuration field. Remove any annotations and also \".\"\n * @ignore\n * @param {object} config\n * config.value - Raw value\n * @returns {string} value - Value with out any annotations or \".\"\n */\n function getConfigFieldValue(config) {\n let { value } = config;\n if (value.startsWith('@')) {\n value = value.substring(value.indexOf(' ') + 1);\n if (value[0] === '.') value = value.substring(1);\n }\n return value;\n}\n\n/**\n * [prepareConfigFields]\n * Description - Prepares a set of configuration fields and pushes each config type to a set using the callback parameter.\n * @ignore\n * @param {object} configFields List of Authored fields\n * @param {Function} pushToComponentsList Callback to push the field type to a set.\n * @returns {Set} configFieldSet\n */\nfunction prepareConfigFields(configFields, pushToComponentsList) {\n const configFieldSet = new Set();\n configFields.forEach((item) => {\n pushToComponentsList(item.type);\n const val = getConfigFieldValue(item.config);\n configFieldSet.add(val);\n });\n return configFieldSet;\n}\n\n/**\n * [findAuthoredField]\n * Description - Finds an authored field from yhe list of config fields.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {string} fieldID Filter\n * @returns {object} config with its field value equal to fieldID, which means an authored field\n */\n function findAuthoredField(configFields, fieldID) {\n return configFields.find((configField) => {\n const val = getConfigFieldValue(configField.config);\n return val === fieldID;\n });\n}\n\n/**\n * [findAndUpdateAuthoredFieldConfig]\n * Description - Find the authored field, and update its config.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {object} item Field item to copy displayAs and category information\n * @param {string} classId classID from the response\n */\n function findAndUpdateAuthoredFieldConfig(configFields, item, classId) {\n const authoredField = findAuthoredField(configFields, item.fieldID);\n if (authoredField?.config) {\n if (item.displayAs) {\n authoredField.config.displayAs = item.displayAs;\n }\n authoredField.config.classID = item.classID ?? classId;\n\n if (authoredField.type === USER_REFERENCE) {\n authoredField.config.associationID = item.associationID || item.fieldID;\n }\n authoredField.config.category = item.category;\n // FieldType identifies whether the field is configured as pickList\n authoredField.config.fieldType = item.fieldType;\n // type defined on the property rule,\n // used for the picklist field to assign the appropriate type\n authoredField.config.propertyType = item.dataType || item.type;\n }\n}\n\n/**\n * [isAnExtraField]\n * Description - Returns true if the field is an extra field. Extra field is the one which is not authored but part of the report.\n * @ignore\n * @param {Array} configFields List of Authored fields\n * @param {Set} configFieldSet Set if Authored filed values\n * @param {Set} reportColumnsSet Set of columns from the report\n * @param {object} item Config field item\n * @param {string} classId Class ID from the response\n * @param {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime\n * @returns {boolean} true If the field is an extra field else false.\n */\n function isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classId, showDynamicFields) {\n // Is the field already present in authoring metadata?\n // Mutates config fields to copy displayAs and category information\n if (configFieldSet.has(item.fieldID)) {\n findAndUpdateAuthoredFieldConfig(configFields, item, classId);\n return false;\n }\n\n // If field is not authored and not part of report columns then discard it\n return showDynamicFields || !!reportColumnsSet.has(item.fieldID);\n}\n\n/**\n * [prepareExtraFields]\n * Description - Returns a list of extra fields with their meta updated.\n * @ignore\n * @param {Array} metaFields List of fields\n * @param {Array} configFields List of Authored fields\n * @param {Set} configFieldSet Set if Authored filed values\n * @param {Set} reportColumnsSet Set of columns from the report\n * @param {string} classID Class ID from the response\n * @param {boolean} showDynamicFields Flag indicating whether fields are fetched dynamically at runtime\n * @returns {Array} List of extra fields with their meta updated.\n */\n function prepareExtraFields(\n metaFields,\n configFields,\n configFieldSet,\n reportColumnsSet,\n classID,\n showDynamicFields\n) {\n // Filter all the extra fields\n const extraFileds = metaFields.filter((item) => {\n return isAnExtraField(configFields, configFieldSet, reportColumnsSet, item, classID, showDynamicFields);\n });\n return generateViewMetaData(extraFileds, classID, false);\n // Update the meta object of each of the extra fields.\n}\n\nconst AssignDashObjects = ['Assign-Worklist', 'Assign-WorkBasket'];\n\nfunction populateRenderingOptions(name, config, field) {\n const shouldDisplayAsSemanticLink = 'displayAsLink' in field.config && field.config.displayAsLink;\n if (shouldDisplayAsSemanticLink) {\n config.customObject.isAssignmentLink = AssignDashObjects.includes(field.config.classID);\n if (field.config.value.startsWith('@CA')) {\n config.customObject.isAssociation = true;\n }\n config.cellRenderer = formatConstants.WorkLink;\n } else if (name === 'pyStatusWork' || name === 'pyAssignmentStatus') {\n config.cellRenderer = formatConstants.WorkStatus;\n } else if (name === 'pxUrgencyWork') {\n config.cellRenderer = formatConstants.Integer;\n }\n}\nexport function initializeColumns(\n fields = [],\n getMappedProperty\n) {\n return fields.map((field, originalColIndex) => {\n let name = field.config.value;\n\n if (name.startsWith('@')) {\n name = name.substring(name.indexOf(' ') + 1);\n if (name[0] === '.') name = name.substring(1);\n }\n name = getMappedProperty?.(name) ?? name;\n\n let label = field.config.label || field.config.caption;\n const { show = true, displayAs } = field.config;\n if (label.startsWith('@')) {\n label = label.substring(3);\n }\n\n const config = {\n name,\n label,\n show,\n classID: field.config.classID,\n id: field.id || name || originalColIndex,\n displayAs,\n associationID: field.config.associationID,\n ...(field.config.classID && { category: field.config.category }),\n customObject: {},\n fieldType: field.config.fieldType,\n meta: {\n ...field\n },\n };\n\n populateRenderingOptions(name, config, field);\n\n return config;\n });\n}\n\nexport const getItemKey = (fields) => {\n let itemKey;\n if (fields.findIndex((field) => field.id === 'pyGUID') > -1) {\n itemKey = 'pyGUID';\n } else {\n itemKey = 'pzInsKey';\n }\n return itemKey;\n};\n\nexport function preparePatchQueryFields(fields, isDataObject = false, classID = '') {\n const queryFields = [];\n fields.forEach((field) => {\n const patchFields = [];\n if (field.cellRenderer === 'WorkLink') {\n if (field.customObject && field.customObject.isAssignmentLink) {\n const associationName = field.name.includes(':') ? `${field.name.split(':')[0]}:` : '';\n patchFields.push(`${associationName}pzInsKey`);\n patchFields.push(`${associationName}pxRefObjectClass`);\n } else if (field.customObject && field.customObject.isAssociation) {\n const associationCategory = field.name.split(':')[0];\n patchFields.push(`${associationCategory}:pyID`);\n patchFields.push(`${associationCategory}:pzInsKey`);\n patchFields.push(`${associationCategory}:pxObjClass`);\n } else if (isDataObject) {\n const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);\n const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);\n dataPageKeys?.forEach((item) =>\n item.isAlternateKeyStorage ? patchFields.push(item.linkedField) : patchFields.push(item.keyName)\n );\n } else {\n patchFields.push('pyID');\n patchFields.push('pzInsKey');\n patchFields.push('pxObjClass');\n }\n }\n patchFields.forEach((k) => {\n if (!queryFields.find((q) => q === k)) {\n queryFields.push(k);\n }\n });\n });\n\n return queryFields;\n}\n\nexport const readContextResponse = async (context, params) => {\n const {\n getPConnect,\n apiContext,\n setListContext,\n children,\n showDynamicFields,\n referenceList,\n isDataObject\n } = params;\n const { promisesResponseArray, apiContext: otherContext } = context;\n // eslint-disable-next-line sonarjs/no-unused-collection\n const listOfComponents = [];\n const {\n data: { fields: metaFields, classID, isQueryable }\n } = promisesResponseArray[0];\n let {\n data: { primaryFields }\n } = promisesResponseArray[0];\n // When list is configured with Include all class fields configuration, provide support for Primary fields column\n if (showDynamicFields) {\n const sourceMetadata = PCore.getMetadataUtils().getDataPageMetadata(referenceList);\n if (sourceMetadata?.primaryFields) {\n primaryFields = sourceMetadata.primaryFields;\n }\n // updating metaData fieldID to normal property if it has fieldID starts with !P! or !PL!\n updateMetaEmbeddedFieldID(metaFields);\n }\n updateFieldType(metaFields);\n\n\n if (isDataObject) {\n const compositeKeys = [];\n const dataViewName = PCore.getDataTypeUtils().getSavableDataPage(classID);\n const dataPageKeys = PCore.getDataTypeUtils().getDataPageKeys(dataViewName);\n dataPageKeys?.forEach((item) =>\n item.isAlternateKeyStorage ? compositeKeys.push(item.linkedField) : compositeKeys.push(item.keyName)\n );\n if (compositeKeys.length) {\n otherContext.setCompositeKeys(compositeKeys);\n }\n otherContext.fetchRowActionDetails = null;\n }\n\n const presetArray = [];\n const rawMetadata = getPConnect().getRawMetadata().config;\n const rawPresets = rawMetadata.presets;\n const isMetaWithPresets = rawPresets && rawPresets.length !== 0;\n const childrenIterator = isMetaWithPresets ? rawPresets : children;\n const resolvedPresets = getPConnect().getConfigProps().presets;\n let fields;\n let tableConfig;\n childrenIterator?.forEach((presetMeta, index) => {\n const {\n configFields\n } = getTableConfigFromPresetMeta(\n { ...presetMeta, label: resolvedPresets[index].label },\n isMetaWithPresets,\n getPConnect,\n classID,\n primaryFields,\n metaFields\n );\n const pushToComponentsList = (fieldType) => {\n listOfComponents.push(fieldType);\n };\n // read report columns response - in case of nonqueryable ignore the response and rely only on the fields configured at authoing time in presets\n const reportColumnsSet = isQueryable ? getReportColumns(promisesResponseArray[1]) : new Set();\n\n const configFieldSet = prepareConfigFields(configFields, pushToComponentsList);\n\n // FIXME #EmbeddedPropertyPatch\n // TODO: Remove this merge logic when the metadata response includes all optimized embedded page and pagelists\n // merging configured embedded properties with metadata so that while preparing extra fields, config fields can get other properties from meta(eg: category, displayAsLink)\n // get configured embedded properties metadata and get new mergedMetaFields\n const configEmbeddedFieldsMeta = getConfigEmbeddedFieldsMeta(configFieldSet, classID);\n const mergedMetaFields = mergeConfigEmbeddedFieldsMeta(configEmbeddedFieldsMeta, metaFields);\n\n const extraFields = prepareExtraFields(\n mergedMetaFields, // passing new merged meta fields which has meta of configured embedded fields of current preset\n configFields,\n configFieldSet,\n reportColumnsSet,\n classID,\n showDynamicFields\n );\n\n\n fields = initializeColumns(\n [...configFields, ...extraFields],\n );\n const patchQueryFields = preparePatchQueryFields(fields, isDataObject, classID);\n const itemKey = getItemKey(fields);\n tableConfig = { fieldDefs: fields, patchQueryFields, itemKey, isQueryable}\n });\n const meta = tableConfig;\n setListContext({\n meta,\n presets: presetArray,\n apiContext: {\n ...apiContext,\n }\n });\n};\n"]}
@@ -1,7 +1,18 @@
1
1
  /// <reference types="react" />
2
+ import PropTypes from 'prop-types';
2
3
  declare function NarrowWideDetails(props: any): JSX.Element;
3
4
  declare namespace NarrowWideDetails {
4
- var propTypes: {};
5
+ var defaultProps: {
6
+ label: undefined;
7
+ showLabel: boolean;
8
+ showHighlightedData: boolean;
9
+ };
10
+ var propTypes: {
11
+ showLabel: PropTypes.Requireable<boolean>;
12
+ label: PropTypes.Requireable<string>;
13
+ getPConnect: PropTypes.Validator<(...args: any[]) => any>;
14
+ showHighlightedData: PropTypes.Requireable<boolean>;
15
+ };
5
16
  }
6
17
  export default NarrowWideDetails;
7
18
  //# sourceMappingURL=NarrowWideDetails.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NarrowWideDetails.d.ts","sourceRoot":"","sources":["../../../../../src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx"],"names":[],"mappings":";AAKA,iBAAwB,iBAAiB,CAAC,KAAK,KAAA,eAwC9C;kBAxCuB,iBAAiB;;;eAAjB,iBAAiB"}
1
+ {"version":3,"file":"NarrowWideDetails.d.ts","sourceRoot":"","sources":["../../../../../src/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAQnC,iBAAwB,iBAAiB,CAAC,KAAK,KAAA,eAyD9C;kBAzDuB,iBAAiB;;;;;;;;;;;;;eAAjB,iBAAiB"}