udp-react-enterprise-component-library 26.3.0 → 26.4.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/UI/fluent-web-components/UdpEmptyState.d.ts +8 -0
- package/dist/UI/fluent-web-components/UdpEmptyState.d.ts.map +1 -0
- package/dist/UI/fluent-web-components/UdpEmptyState.js +4 -0
- package/dist/UI/fluent-web-components/UdpEmptyState.js.map +1 -0
- package/dist/UI/fluent-web-components/UdpEmptyState.mjs +18 -0
- package/dist/UI/fluent-web-components/UdpEmptyState.mjs.map +1 -0
- package/dist/UI/fluent-web-components/index.d.ts +1 -0
- package/dist/UI/fluent-web-components/index.d.ts.map +1 -1
- package/dist/UI/fluent-web-components/index.js +1 -0
- package/dist/UI/fluent-web-components/index.js.map +1 -1
- package/dist/dataBrowser/DataBrowserColumnDefs.d.ts.map +1 -1
- package/dist/dataBrowser/DataBrowserColumnDefs.js +5 -4
- package/dist/dataBrowser/DataBrowserColumnDefs.js.map +1 -1
- package/dist/dataBrowser/DataBrowserColumnDefs.mjs +1 -0
- package/dist/dataBrowser/DataBrowserColumnDefs.mjs.map +1 -1
- package/dist/hooks/useQueryExecutors.d.ts +8 -0
- package/dist/hooks/useQueryExecutors.d.ts.map +1 -1
- package/dist/hooks/useQueryExecutors.js +30 -33
- package/dist/hooks/useQueryExecutors.js.map +1 -1
- package/dist/hooks/useQueryExecutors.mjs +23 -15
- package/dist/hooks/useQueryExecutors.mjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -2
- package/dist/models/Lookup.d.ts +3 -0
- package/dist/models/Lookup.d.ts.map +1 -1
- package/dist/models/Lookup.js +3 -0
- package/dist/models/Lookup.js.map +1 -1
- package/dist/models/index.d.ts +0 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +0 -1
- package/dist/models/index.js.map +1 -1
- package/dist/udp/lookups/LookupCreationSheet.d.ts +2 -1
- package/dist/udp/lookups/LookupCreationSheet.d.ts.map +1 -1
- package/dist/udp/lookups/LookupCreationSheet.js +38 -36
- package/dist/udp/lookups/LookupCreationSheet.js.map +1 -1
- package/dist/udp/lookups/LookupCreationSheet.mjs +39 -14
- package/dist/udp/lookups/LookupCreationSheet.mjs.map +1 -1
- package/dist/udp/lookups/useLookups.d.ts +7 -2
- package/dist/udp/lookups/useLookups.d.ts.map +1 -1
- package/dist/udp/lookups/useLookups.js +34 -2
- package/dist/udp/lookups/useLookups.js.map +1 -1
- package/dist/udp/lookups/useLookups.mjs +31 -5
- package/dist/udp/lookups/useLookups.mjs.map +1 -1
- package/dist/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.d.ts.map +1 -1
- package/dist/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.js +4 -3
- package/dist/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.js.map +1 -1
- package/dist/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.mjs +2 -1
- package/dist/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.mjs.map +1 -1
- package/dist/udp/pages/UdpLookupManagementPage/UdpLookupManagementPage.d.ts.map +1 -1
- package/dist/udp/pages/UdpLookupManagementPage/UdpLookupManagementPage.js +17 -4
- package/dist/udp/pages/UdpLookupManagementPage/UdpLookupManagementPage.js.map +1 -1
- package/dist/udp/pages/UdpLookupManagementPage/UdpLookupManagementPage.mjs +12 -6
- package/dist/udp/pages/UdpLookupManagementPage/UdpLookupManagementPage.mjs.map +1 -1
- package/package.json +7 -3
|
@@ -57,7 +57,7 @@ const getSimpleName = (name) => {
|
|
|
57
57
|
*
|
|
58
58
|
* Pass `lookup` to enter edit mode. When omitted, the sheet is in create mode.
|
|
59
59
|
*/
|
|
60
|
-
const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onCreateLookupColumn, onCreateLookupValue, onUpdateLookup, onUpdateLookupColumn, onDeleteLookupValue, onLookupCreated, fetchColumns, fetchValues, catalogObjectList = [], lookupMethodStatus = {} }) => {
|
|
60
|
+
const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onCreateLookupColumn, onCreateLookupValue, onUpdateLookup, onUpdateLookupColumn, onDeleteLookupValue, onLookupCreated, fetchColumns, fetchValues, catalogObjectList = [], lookupMethodStatus = {}, isLegacyLookups }) => {
|
|
61
61
|
const isEditMode = !!lookup;
|
|
62
62
|
const [name, setName] = useState("");
|
|
63
63
|
const [description, setDescription] = useState("");
|
|
@@ -92,7 +92,11 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
92
92
|
setName(lookup.name ?? "");
|
|
93
93
|
setDescription(lookup.description ?? "");
|
|
94
94
|
setTypeOption(LOOKUP_TYPE_OPTIONS.find((o_0) => o_0.value === lookup.typeId) ?? LOOKUP_TYPE_OPTIONS[0]);
|
|
95
|
-
setKeyName(lookup.keyName ?? "");
|
|
95
|
+
if (isLegacyLookups) setKeyName(lookup.keyName ?? "");
|
|
96
|
+
else setKeyNameOption(lookup.udpLookupUdpLookupKey?.map((k) => ({
|
|
97
|
+
label: k.name,
|
|
98
|
+
value: k.name
|
|
99
|
+
})) ?? []);
|
|
96
100
|
setValueName(lookup.valueName ?? "");
|
|
97
101
|
if (lookup.typeId === LookupTypeId.Lookup && fetchColumns && fetchValues) loadVirtualData(lookup.id);
|
|
98
102
|
}, [
|
|
@@ -278,11 +282,12 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
278
282
|
setSaving(true);
|
|
279
283
|
try {
|
|
280
284
|
if (isDomain) {
|
|
285
|
+
const domainKeyPayload = isLegacyLookups ? { keyName: keyNameOption?.value ?? "" } : { udpLookupUdpLookupKey: (keyNameOption ?? []).map((o) => ({ name: o.value })) };
|
|
281
286
|
const created = await onCreateLookup({
|
|
282
287
|
name: name.trim(),
|
|
283
288
|
description: description.trim() || void 0,
|
|
284
289
|
typeId: LookupTypeId.Domain,
|
|
285
|
-
|
|
290
|
+
...domainKeyPayload,
|
|
286
291
|
valueName: valueNameOption?.value ?? "",
|
|
287
292
|
domainName: selectedEntity?.value ?? "",
|
|
288
293
|
isProductLookup: false
|
|
@@ -292,11 +297,12 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
292
297
|
handleClose();
|
|
293
298
|
}
|
|
294
299
|
} else {
|
|
300
|
+
const virtualKeyPayload = isLegacyLookups ? { keyName: virtualColumns[0]?.name || "key" } : { udpLookupUdpLookupKey: [{ name: virtualColumns[0]?.name || "key" }] };
|
|
295
301
|
const created = await onCreateLookup({
|
|
296
302
|
name: name.trim(),
|
|
297
303
|
description: description.trim() || void 0,
|
|
298
304
|
typeId: LookupTypeId.Lookup,
|
|
299
|
-
|
|
305
|
+
...virtualKeyPayload,
|
|
300
306
|
valueName: virtualColumns[1]?.name || "value",
|
|
301
307
|
isProductLookup: false
|
|
302
308
|
});
|
|
@@ -335,11 +341,12 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
335
341
|
if (!name.trim()) return;
|
|
336
342
|
setSaving(true);
|
|
337
343
|
try {
|
|
344
|
+
const keyPayload = isLegacyLookups ? { keyName: isVirtual ? editColumns[0]?.name || keyName : keyName } : { udpLookupUdpLookupKey: isVirtual ? [{ name: editColumns[0]?.name || "key" }] : (keyNameOption ?? []).map((o) => ({ name: o.value })) };
|
|
338
345
|
await onUpdateLookup({
|
|
339
346
|
...lookup,
|
|
340
347
|
name: name.trim(),
|
|
341
348
|
description: description.trim() || null,
|
|
342
|
-
|
|
349
|
+
...keyPayload,
|
|
343
350
|
valueName: isVirtual ? editColumns[1]?.name || valueName : valueName
|
|
344
351
|
});
|
|
345
352
|
if (isVirtual) {
|
|
@@ -438,7 +445,7 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
438
445
|
optionLabel: "label",
|
|
439
446
|
optionValue: "value",
|
|
440
447
|
onChange: handleEntityChange
|
|
441
|
-
}), fieldOptions.length > 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(UdpDropdown, {
|
|
448
|
+
}), fieldOptions.length > 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, isLegacyLookups ? /* @__PURE__ */ React.createElement(UdpDropdown, {
|
|
442
449
|
label: "Key Name",
|
|
443
450
|
hint: "The field used to match values (e.g. the ID field)",
|
|
444
451
|
options: fieldOptions,
|
|
@@ -446,6 +453,15 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
446
453
|
optionLabel: "label",
|
|
447
454
|
optionValue: "value",
|
|
448
455
|
onChange: (e_3) => setKeyNameOption(e_3.target.value)
|
|
456
|
+
}) : /* @__PURE__ */ React.createElement(UdpDropdown, {
|
|
457
|
+
label: "Key Name(s)",
|
|
458
|
+
hint: "The fields used to match values (e.g. the ID field)",
|
|
459
|
+
multiple: true,
|
|
460
|
+
options: fieldOptions,
|
|
461
|
+
value: keyNameOption,
|
|
462
|
+
optionLabel: "label",
|
|
463
|
+
optionValue: "value",
|
|
464
|
+
onChange: (e_4) => setKeyNameOption(e_4.target.value)
|
|
449
465
|
}), /* @__PURE__ */ React.createElement(UdpDropdown, {
|
|
450
466
|
label: "Value Name",
|
|
451
467
|
hint: "The field displayed to the user (e.g. name)",
|
|
@@ -453,7 +469,7 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
453
469
|
value: valueNameOption,
|
|
454
470
|
optionLabel: "label",
|
|
455
471
|
optionValue: "value",
|
|
456
|
-
onChange: (
|
|
472
|
+
onChange: (e_5) => setValueNameOption(e_5.target.value)
|
|
457
473
|
})))), isDomain && isEditMode && /* @__PURE__ */ React.createElement(UdpCard, { label: "Field Mapping" }, /* @__PURE__ */ React.createElement(UdpFlexbox, {
|
|
458
474
|
direction: "column",
|
|
459
475
|
gap: "sm"
|
|
@@ -461,14 +477,23 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
461
477
|
label: "Domain Name",
|
|
462
478
|
value: getSimpleName(lookup?.domainName) ?? "",
|
|
463
479
|
disabled: true
|
|
464
|
-
}), /* @__PURE__ */ React.createElement(UdpDropdown, {
|
|
480
|
+
}), isLegacyLookups ? /* @__PURE__ */ React.createElement(UdpDropdown, {
|
|
465
481
|
label: "Key Name",
|
|
466
482
|
hint: "The field used to match values (e.g. the ID field)",
|
|
467
483
|
options: editDomainFieldOptions,
|
|
468
484
|
value: editDomainFieldOptions.find((o_2) => o_2.value === keyName) ?? null,
|
|
469
485
|
optionLabel: "label",
|
|
470
486
|
optionValue: "value",
|
|
471
|
-
onChange: (
|
|
487
|
+
onChange: (e_6) => setKeyName(e_6.target.value?.value ?? "")
|
|
488
|
+
}) : /* @__PURE__ */ React.createElement(UdpDropdown, {
|
|
489
|
+
label: "Key Name(s)",
|
|
490
|
+
hint: "The fields used to match values (e.g. the ID field)",
|
|
491
|
+
multiple: true,
|
|
492
|
+
options: editDomainFieldOptions,
|
|
493
|
+
value: keyNameOption,
|
|
494
|
+
optionLabel: "label",
|
|
495
|
+
optionValue: "value",
|
|
496
|
+
onChange: (e_7) => setKeyNameOption(e_7.target.value)
|
|
472
497
|
}), /* @__PURE__ */ React.createElement(UdpDropdown, {
|
|
473
498
|
label: "Value Name",
|
|
474
499
|
hint: "The field displayed to the user (e.g. name)",
|
|
@@ -476,7 +501,7 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
476
501
|
value: editDomainFieldOptions.find((o_3) => o_3.value === valueName) ?? null,
|
|
477
502
|
optionLabel: "label",
|
|
478
503
|
optionValue: "value",
|
|
479
|
-
onChange: (
|
|
504
|
+
onChange: (e_8) => setValueName(e_8.target.value?.value ?? "")
|
|
480
505
|
}))), isVirtual && !(isEditMode && loadingData) && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(UdpCard, {
|
|
481
506
|
label: "Columns",
|
|
482
507
|
subtitle: "The first two columns are used as the key and display value."
|
|
@@ -491,7 +516,7 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
491
516
|
}, /* @__PURE__ */ React.createElement(UdpTextInput, {
|
|
492
517
|
label: i_5 === 0 ? "Column 1 (Key)" : i_5 === 1 ? "Column 2 (Value)" : `Column ${i_5 + 1}`,
|
|
493
518
|
value: col.name,
|
|
494
|
-
onChange: (
|
|
519
|
+
onChange: (e_9) => isEditMode ? updateEditColumnField(i_5, "name", e_9.target.value) : updateColumn(i_5, "name", e_9.target.value),
|
|
495
520
|
style: { flex: 1 },
|
|
496
521
|
includeErrorPadding: false
|
|
497
522
|
}), /* @__PURE__ */ React.createElement(UdpDropdown, {
|
|
@@ -501,7 +526,7 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
501
526
|
value: col.typeOption,
|
|
502
527
|
optionLabel: "label",
|
|
503
528
|
optionValue: "value",
|
|
504
|
-
onChange: (
|
|
529
|
+
onChange: (e_10) => isEditMode ? updateEditColumnField(i_5, "typeOption", e_10.target.value) : updateColumn(i_5, "typeOption", e_10.target.value),
|
|
505
530
|
style: { width: "120px" }
|
|
506
531
|
}), activeCols.length > 2 && /* @__PURE__ */ React.createElement(UdpIconButton, {
|
|
507
532
|
iconName: "delete",
|
|
@@ -536,7 +561,7 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
536
561
|
value: BOOLEAN_OPTIONS.find((o_4) => o_4.value === cellValue) ?? null,
|
|
537
562
|
optionLabel: "label",
|
|
538
563
|
optionValue: "value",
|
|
539
|
-
onChange: (
|
|
564
|
+
onChange: (e_11) => onCellChange(e_11.target.value?.value ?? ""),
|
|
540
565
|
style: { flex: 1 },
|
|
541
566
|
includeErrorPadding: false
|
|
542
567
|
});
|
|
@@ -544,7 +569,7 @@ const LookupCreationSheet = ({ open, onClose, lookup = null, onCreateLookup, onC
|
|
|
544
569
|
key: colIdx_0,
|
|
545
570
|
label: colLabel,
|
|
546
571
|
value: cellValue,
|
|
547
|
-
onChange: (
|
|
572
|
+
onChange: (e_12) => onCellChange(e_12.target.value),
|
|
548
573
|
style: { flex: 1 },
|
|
549
574
|
includeErrorPadding: false,
|
|
550
575
|
autocomplete: "off",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LookupCreationSheet.mjs","names":["React","useState","useEffect","useMemo","useCallback","UdpDrawer","UdpCard","UdpFlexbox","UdpTextInput","UdpDropdown","UdpButton","UdpIconButton","UdpText","UdpBadge","UdpMessageBar","isCatalogModelObject","LookupTypeId","LookupColumnTypeId","LOOKUP_TYPE_OPTIONS","label","value","Domain","Lookup","COLUMN_TYPE_OPTIONS","String","Long","Boolean","DateTime","Double","BOOLEAN_OPTIONS","getSimpleName","name","parts","split","length","LookupCreationSheet","open","onClose","lookup","onCreateLookup","onCreateLookupColumn","onCreateLookupValue","onUpdateLookup","onUpdateLookupColumn","onDeleteLookupValue","onLookupCreated","fetchColumns","fetchValues","catalogObjectList","lookupMethodStatus","isEditMode","setName","description","setDescription","typeOption","setTypeOption","saving","setSaving","selectedEntity","setSelectedEntity","keyNameOption","setKeyNameOption","valueNameOption","setValueNameOption","keyName","setKeyName","valueName","setValueName","virtualColumns","setVirtualColumns","virtualRows","setVirtualRows","editColumns","setEditColumns","editRows","setEditRows","loadingData","setLoadingData","lookupCreateAvailable","lookupUpdateAvailable","columnCreateAvailable","valueCreateAvailable","virtualAvailable","typeOptions","map","o","disabled","isDomain","typeId","isVirtual","find","loadVirtualData","id","lookupId","allColumns","allValues","Promise","all","lookupColumns","filter","c","sort","a","b","order","lookupValues","v","some","lookupColumnId","colState","lookupColumnTypeId","maxRow","reduce","max","Math","rowNumber","rowState","r","row","col","val","push","entityOptions","obj","catalogObjectName","properties","fieldOptions","p","editDomainFieldOptions","domainName","entity","updateColumn","index","field","prev","updated","addColumn","removeColumn","_","i","updateRowValue","rowIndex","colIndex","addRow","removeRow","updateEditColumnField","addEditColumn","_new","removeEditColumn","updateEditRowValue","rowIdx","colIdx","addEditRow","removeEditRow","resetForm","handleClose","handleEntityChange","e","selected","target","handleCreate","trim","created","undefined","isProductLookup","columnIds","colResult","columnId","handleUpdate","createValueFn","cell","handleSave","canSave","every","saveDisabled","activeCols","activeRows","alignItems","flex","width","colLabel","cellValue","onCellChange","colTypeId"],"sources":["../../../src/udp/lookups/LookupCreationSheet.jsx"],"sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from 'react';\nimport { UdpDrawer } from '../../UI/fluent-web-components/UdpDrawer';\nimport { UdpCard } from '../../UI/fluent-web-components/UdpCard';\nimport { UdpFlexbox } from '../../UI/fluent-web-components/UdpFlexbox';\nimport { UdpTextInput } from '../../UI/fluent-web-components/UdpTextInput';\nimport { UdpDropdown } from '../../UI/fluent-web-components/UdpDropdown';\nimport { UdpButton } from '../../UI/fluent-web-components/UdpButton';\nimport { UdpIconButton } from '../../UI/fluent-web-components/UdpIconButton';\nimport { UdpText } from '../../UI/fluent-web-components/UdpText';\nimport { UdpBadge } from '../../UI/fluent-web-components/UdpBadge';\nimport { UdpMessageBar } from '../../UI/fluent-web-components/UdpMessageBar';\nimport { isCatalogModelObject, LookupTypeId, LookupColumnTypeId } from '@univerus/udp-stencil-component-library';\n\nconst LOOKUP_TYPE_OPTIONS = [\n { label: 'Domain', value: LookupTypeId.Domain },\n { label: 'Virtual', value: LookupTypeId.Lookup }\n];\n\nexport const COLUMN_TYPE_OPTIONS = [\n { label: 'String', value: LookupColumnTypeId.String },\n { label: 'Long', value: LookupColumnTypeId.Long },\n { label: 'Boolean', value: LookupColumnTypeId.Boolean },\n { label: 'DateTime', value: LookupColumnTypeId.DateTime },\n { label: 'Double', value: LookupColumnTypeId.Double }\n];\n\nconst BOOLEAN_OPTIONS = [\n { label: 'true', value: 'true' },\n { label: 'false', value: 'false' }\n];\n\nconst getSimpleName = (name) => {\n if (!name) return '';\n const parts = name.split('.');\n return parts[parts.length - 1];\n};\n\n/**\n * LookupCreationSheet — create or edit a lookup.\n *\n * Pass `lookup` to enter edit mode. When omitted, the sheet is in create mode.\n */\nexport const LookupCreationSheet = ({\n open,\n onClose,\n // Optional: when provided the sheet is in edit mode\n lookup = null,\n // CRUD callbacks\n onCreateLookup,\n onCreateLookupColumn,\n onCreateLookupValue,\n onUpdateLookup,\n onUpdateLookupColumn,\n onDeleteLookupValue,\n onLookupCreated,\n // Shared\n fetchColumns,\n fetchValues,\n catalogObjectList = [],\n lookupMethodStatus = {}\n}) => {\n const isEditMode = !!lookup;\n\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [typeOption, setTypeOption] = useState(LOOKUP_TYPE_OPTIONS[0]);\n const [saving, setSaving] = useState(false);\n\n // ── Domain lookup state ────────────────────────────────────\n const [selectedEntity, setSelectedEntity] = useState(null);\n const [keyNameOption, setKeyNameOption] = useState(null);\n const [valueNameOption, setValueNameOption] = useState(null);\n // Edit-mode domain text fields (entity is read-only in edit)\n const [keyName, setKeyName] = useState('');\n const [valueName, setValueName] = useState('');\n\n // ── Virtual lookup state ───────────────────────────────────\n const [virtualColumns, setVirtualColumns] = useState([\n { name: 'Key', typeOption: COLUMN_TYPE_OPTIONS[0] },\n { name: 'Value', typeOption: COLUMN_TYPE_OPTIONS[0] }\n ]);\n const [virtualRows, setVirtualRows] = useState([['', '']]);\n // Edit-mode virtual state (rows track existing IDs)\n const [editColumns, setEditColumns] = useState([]);\n const [editRows, setEditRows] = useState([]);\n const [loadingData, setLoadingData] = useState(false);\n\n const {\n lookupCreateAvailable,\n lookupUpdateAvailable,\n columnCreateAvailable,\n valueCreateAvailable\n } = lookupMethodStatus;\n const virtualAvailable = columnCreateAvailable && valueCreateAvailable;\n\n const typeOptions = useMemo(\n () =>\n LOOKUP_TYPE_OPTIONS.map((o) => ({\n ...o,\n disabled: o.value === 4 && !virtualAvailable\n })),\n [virtualAvailable]\n );\n\n const isDomain = isEditMode ? lookup?.typeId === LookupTypeId.Domain : typeOption?.value === LookupTypeId.Domain;\n const isVirtual = isEditMode ? lookup?.typeId === LookupTypeId.Lookup : typeOption?.value === LookupTypeId.Lookup;\n\n // ── Load data when editing ─────────────────────────────────\n useEffect(() => {\n if (!open || !isEditMode) return;\n setName(lookup.name ?? '');\n setDescription(lookup.description ?? '');\n setTypeOption(\n LOOKUP_TYPE_OPTIONS.find((o) => o.value === lookup.typeId) ??\n LOOKUP_TYPE_OPTIONS[0]\n );\n setKeyName(lookup.keyName ?? '');\n setValueName(lookup.valueName ?? '');\n\n if (lookup.typeId === LookupTypeId.Lookup && fetchColumns && fetchValues) {\n loadVirtualData(lookup.id);\n }\n }, [open, lookup?.id, lookup?.typeId]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const loadVirtualData = async (lookupId) => {\n setLoadingData(true);\n try {\n const [allColumns, allValues] = await Promise.all([\n fetchColumns(),\n fetchValues()\n ]);\n const lookupColumns = allColumns\n .filter((c) => c.lookupId === lookupId)\n .sort((a, b) => a.order - b.order);\n const lookupValues = allValues.filter((v) =>\n lookupColumns.some((c) => c.id === v.lookupColumnId)\n );\n\n const colState = lookupColumns.map((c) => ({\n ...c,\n typeOption:\n COLUMN_TYPE_OPTIONS.find((o) => o.value === c.lookupColumnTypeId) ??\n COLUMN_TYPE_OPTIONS[0]\n }));\n setEditColumns(colState);\n\n const maxRow = lookupValues.reduce(\n (max, v) => Math.max(max, v.rowNumber),\n 0\n );\n const rowState = [];\n for (let r = 1; r <= maxRow; r++) {\n const row = colState.map((col) => {\n const val = lookupValues.find(\n (v) => v.lookupColumnId === col.id && v.rowNumber === r\n );\n return { value: val?.value ?? '', id: val?.id ?? null };\n });\n rowState.push(row);\n }\n if (rowState.length === 0) {\n rowState.push(colState.map(() => ({ value: '', id: null })));\n }\n setEditRows(rowState);\n } finally {\n setLoadingData(false);\n }\n };\n\n // ── Domain helpers ─────────────────────────────────────────\n const entityOptions = useMemo(\n () =>\n catalogObjectList\n .filter((obj) => isCatalogModelObject(obj))\n .map((obj) => ({\n label: getSimpleName(obj.catalogObjectName),\n value: obj.catalogObjectName,\n properties: obj.properties ?? []\n })),\n [catalogObjectList]\n );\n\n const fieldOptions = useMemo(() => {\n if (!selectedEntity?.properties) return [];\n return selectedEntity.properties.map((p) => ({\n label: p.name,\n value: p.name\n }));\n }, [selectedEntity]);\n\n // Edit-mode: derive field options from the lookup's domainName\n const editDomainFieldOptions = useMemo(() => {\n if (!isEditMode || !isDomain || !lookup?.domainName) return [];\n const entity = catalogObjectList.find(\n (obj) => obj.catalogObjectName === lookup.domainName\n );\n if (!entity?.properties) return [];\n return entity.properties.map((p) => ({\n label: p.name,\n value: p.name\n }));\n }, [isEditMode, isDomain, lookup?.domainName, catalogObjectList]);\n\n // ── Create-mode virtual column/row helpers ─────────────────\n const updateColumn = useCallback((index, field, value) => {\n setVirtualColumns((prev) => {\n const updated = [...prev];\n updated[index] = { ...updated[index], [field]: value };\n return updated;\n });\n }, []);\n\n const addColumn = useCallback(() => {\n setVirtualColumns((prev) => [\n ...prev,\n { name: '', typeOption: COLUMN_TYPE_OPTIONS[0] }\n ]);\n setVirtualRows((prev) => prev.map((row) => [...row, '']));\n }, []);\n\n const removeColumn = useCallback(\n (index) => {\n if (virtualColumns.length <= 2) return;\n setVirtualColumns((prev) => prev.filter((_, i) => i !== index));\n setVirtualRows((prev) =>\n prev.map((row) => row.filter((_, i) => i !== index))\n );\n },\n [virtualColumns.length]\n );\n\n const updateRowValue = useCallback((rowIndex, colIndex, value) => {\n setVirtualRows((prev) => {\n const updated = [...prev];\n updated[rowIndex] = [...updated[rowIndex]];\n updated[rowIndex][colIndex] = value;\n return updated;\n });\n }, []);\n\n const addRow = useCallback(() => {\n setVirtualRows((prev) => [...prev, virtualColumns.map(() => '')]);\n }, [virtualColumns]);\n\n const removeRow = useCallback(\n (index) => {\n if (virtualRows.length <= 1) return;\n setVirtualRows((prev) => prev.filter((_, i) => i !== index));\n },\n [virtualRows.length]\n );\n\n // ── Edit-mode virtual column/row helpers ───────────────────\n const updateEditColumnField = (index, field, value) => {\n setEditColumns((prev) => {\n const updated = [...prev];\n updated[index] = { ...updated[index], [field]: value };\n return updated;\n });\n };\n\n const addEditColumn = () => {\n setEditColumns((prev) => [\n ...prev,\n { name: '', typeOption: COLUMN_TYPE_OPTIONS[0], id: null, _new: true }\n ]);\n setEditRows((prev) => prev.map((row) => [...row, { value: '', id: null }]));\n };\n\n const removeEditColumn = (index) => {\n if (editColumns.length <= 2) return;\n setEditColumns((prev) => prev.filter((_, i) => i !== index));\n setEditRows((prev) => prev.map((row) => row.filter((_, i) => i !== index)));\n };\n\n const updateEditRowValue = (rowIdx, colIdx, value) => {\n setEditRows((prev) => {\n const updated = [...prev];\n updated[rowIdx] = [...updated[rowIdx]];\n updated[rowIdx][colIdx] = { ...updated[rowIdx][colIdx], value };\n return updated;\n });\n };\n\n const addEditRow = () => {\n setEditRows((prev) => [\n ...prev,\n editColumns.map(() => ({ value: '', id: null }))\n ]);\n };\n\n const removeEditRow = (index) => {\n if (editRows.length <= 1) return;\n setEditRows((prev) => prev.filter((_, i) => i !== index));\n };\n\n // ── Reset / Close ──────────────────────────────────────────\n const resetForm = () => {\n setName('');\n setDescription('');\n setTypeOption(LOOKUP_TYPE_OPTIONS[0]);\n setSelectedEntity(null);\n setKeyNameOption(null);\n setValueNameOption(null);\n setKeyName('');\n setValueName('');\n setVirtualColumns([\n { name: 'Key', typeOption: COLUMN_TYPE_OPTIONS[0] },\n { name: 'Value', typeOption: COLUMN_TYPE_OPTIONS[0] }\n ]);\n setVirtualRows([['', '']]);\n setEditColumns([]);\n setEditRows([]);\n };\n\n const handleClose = () => {\n resetForm();\n onClose();\n };\n\n const handleEntityChange = (e) => {\n const selected = e.target.value;\n const entity = selected\n ? entityOptions.find((o) => o.value === selected.value)\n : null;\n setSelectedEntity(entity);\n setKeyNameOption(null);\n setValueNameOption(null);\n };\n\n // ── Save (create) ─────────────────────────────────────────\n const handleCreate = async () => {\n if (!name.trim()) return;\n setSaving(true);\n try {\n if (isDomain) {\n const created = await onCreateLookup({\n name: name.trim(),\n description: description.trim() || undefined,\n typeId: LookupTypeId.Domain,\n keyName: keyNameOption?.value ?? '',\n valueName: valueNameOption?.value ?? '',\n domainName: selectedEntity?.value ?? '',\n isProductLookup: false\n });\n if (created) {\n onLookupCreated?.(created);\n handleClose();\n }\n } else {\n const created = await onCreateLookup({\n name: name.trim(),\n description: description.trim() || undefined,\n typeId: LookupTypeId.Lookup,\n keyName: virtualColumns[0]?.name || 'key',\n valueName: virtualColumns[1]?.name || 'value',\n isProductLookup: false\n });\n if (!created?.id) return;\n\n const columnIds = [];\n for (let i = 0; i < virtualColumns.length; i++) {\n const col = virtualColumns[i];\n const colResult = await onCreateLookupColumn({\n lookupId: created.id,\n name: col.name || `Column ${i + 1}`,\n order: i + 1,\n lookupColumnTypeId: col.typeOption?.value ?? 1\n });\n columnIds.push(colResult?.id ?? null);\n }\n\n for (let rowIdx = 0; rowIdx < virtualRows.length; rowIdx++) {\n const row = virtualRows[rowIdx];\n for (let colIdx = 0; colIdx < row.length; colIdx++) {\n const columnId = columnIds[colIdx];\n if (!columnId || !row[colIdx]) continue;\n await onCreateLookupValue({\n lookupColumnId: columnId,\n value: row[colIdx],\n rowNumber: rowIdx + 1\n });\n }\n }\n\n onLookupCreated?.(created);\n handleClose();\n }\n } finally {\n setSaving(false);\n }\n };\n\n // ── Save (edit) ────────────────────────────────────────────\n const handleUpdate = async () => {\n if (!name.trim()) return;\n setSaving(true);\n try {\n await onUpdateLookup({\n ...lookup,\n name: name.trim(),\n description: description.trim() || null,\n keyName: isVirtual ? editColumns[0]?.name || keyName : keyName,\n valueName: isVirtual ? editColumns[1]?.name || valueName : valueName\n });\n\n if (isVirtual) {\n for (let i = 0; i < editColumns.length; i++) {\n const col = editColumns[i];\n if (col._new || !col.id) {\n const created = await onCreateLookupColumn({\n lookupId: lookup.id,\n name: col.name || `Column ${i + 1}`,\n order: i + 1,\n lookupColumnTypeId: col.typeOption?.value ?? 1\n });\n if (created?.id) {\n editColumns[i] = { ...col, id: created.id, _new: false };\n }\n } else {\n await onUpdateLookupColumn({\n ...col,\n name: col.name || `Column ${i + 1}`,\n order: i + 1,\n lookupColumnTypeId: col.typeOption?.value ?? 1\n });\n }\n }\n\n const createValueFn = onCreateLookupValue;\n for (let rowIdx = 0; rowIdx < editRows.length; rowIdx++) {\n const row = editRows[rowIdx];\n for (let colIdx = 0; colIdx < row.length; colIdx++) {\n const cell = row[colIdx];\n const columnId = editColumns[colIdx]?.id;\n if (!columnId) continue;\n\n if (cell.id && !cell.value.trim()) {\n await onDeleteLookupValue?.({ id: cell.id });\n } else if (cell.id) {\n // update existing value — reuse the create fn pattern isn't right,\n // but we don't have an updateValue prop. For now, skip unchanged.\n // The caller can pass onUpdateLookupValue if needed.\n } else if (cell.value.trim()) {\n await createValueFn?.({\n lookupColumnId: columnId,\n value: cell.value,\n rowNumber: rowIdx + 1\n });\n }\n }\n }\n }\n\n onLookupCreated?.(lookup);\n handleClose();\n } finally {\n setSaving(false);\n }\n };\n\n const handleSave = isEditMode ? handleUpdate : handleCreate;\n\n // ── Validation ─────────────────────────────────────────────\n const canSave =\n name.trim().length > 0 &&\n (isEditMode\n ? true\n : isDomain\n ? !!selectedEntity\n : virtualColumns.every((c) => c.name.trim()) &&\n virtualRows.some((r) => r.some((v) => v.trim())));\n\n const saveDisabled = isEditMode\n ? !canSave || !lookupUpdateAvailable\n : !canSave || !lookupCreateAvailable;\n\n // ── Active column/row state (create vs edit) ───────────────\n const activeCols = isEditMode ? editColumns : virtualColumns;\n const activeRows = isEditMode ? editRows : virtualRows;\n\n return (\n <UdpDrawer\n open={open}\n drawerTitle={\n isEditMode ? `Edit Lookup: ${lookup?.name}` : 'Create Lookup'\n }\n size='medium'\n onDrawerClose={handleClose}\n excludeVerticalPadding\n >\n <UdpFlexbox gap='md'>\n {!isEditMode && !lookupCreateAvailable && (\n <UdpMessageBar intent='warning'>\n UdpLookup create method is not promoted. Lookup creation is\n disabled.\n </UdpMessageBar>\n )}\n {!isEditMode && lookupCreateAvailable && !virtualAvailable && (\n <UdpMessageBar intent='warning'>\n {!columnCreateAvailable && !valueCreateAvailable\n ? 'UdpLookupColumn and UdpLookupValue create methods are not promoted.'\n : !columnCreateAvailable\n ? 'UdpLookupColumn create method is not promoted.'\n : 'UdpLookupValue create method is not promoted.'}{' '}\n Virtual lookup creation is disabled.\n </UdpMessageBar>\n )}\n <UdpCard label='Lookup Details'>\n <UdpFlexbox direction='column' gap='sm'>\n <UdpTextInput\n label='Display Name'\n value={name}\n onChange={(e) => setName(e.target.value)}\n required\n disabled={\n isEditMode ? !lookupUpdateAvailable : !lookupCreateAvailable\n }\n />\n <UdpTextInput\n label='Description'\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n disabled={\n isEditMode ? !lookupUpdateAvailable : !lookupCreateAvailable\n }\n />\n {isEditMode ? (\n <UdpFlexbox\n direction='row'\n gap='sm'\n style={{ alignItems: 'center' }}\n >\n <UdpText variant='caption1'>Type:</UdpText>\n <UdpBadge\n appearance='tint'\n color={lookup?.typeId === LookupTypeId.Domain ? 'warning' : 'informative'}\n >\n {lookup?.typeId === LookupTypeId.Domain ? 'Domain' : 'Virtual'}\n </UdpBadge>\n </UdpFlexbox>\n ) : (\n <UdpDropdown\n label='Type'\n hint='Domain: backed by an entity table. Virtual: custom key/value pairs'\n options={typeOptions}\n value={typeOption}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => setTypeOption(e.target.value)}\n disabled={!lookupCreateAvailable}\n />\n )}\n </UdpFlexbox>\n </UdpCard>\n\n {/* Domain: create mode — entity/field selection */}\n {isDomain && !isEditMode && (\n <UdpCard label='Field Mapping'>\n <UdpFlexbox direction='column' gap='md'>\n <UdpDropdown\n label='Domain Entity'\n hint='The entity table this lookup resolves against'\n options={entityOptions}\n value={selectedEntity}\n optionLabel='label'\n optionValue='value'\n onChange={handleEntityChange}\n />\n {fieldOptions.length > 0 && (\n <>\n <UdpDropdown\n label='Key Name'\n hint='The field used to match values (e.g. the ID field)'\n options={fieldOptions}\n value={keyNameOption}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => setKeyNameOption(e.target.value)}\n />\n <UdpDropdown\n label='Value Name'\n hint='The field displayed to the user (e.g. name)'\n options={fieldOptions}\n value={valueNameOption}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => setValueNameOption(e.target.value)}\n />\n </>\n )}\n </UdpFlexbox>\n </UdpCard>\n )}\n\n {/* Domain: edit mode */}\n {isDomain && isEditMode && (\n <UdpCard label='Field Mapping'>\n <UdpFlexbox direction='column' gap='sm'>\n <UdpTextInput\n label='Domain Name'\n value={getSimpleName(lookup?.domainName) ?? ''}\n disabled\n />\n <UdpDropdown\n label='Key Name'\n hint='The field used to match values (e.g. the ID field)'\n options={editDomainFieldOptions}\n value={editDomainFieldOptions.find((o) => o.value === keyName) ?? null}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => setKeyName(e.target.value?.value ?? '')}\n />\n <UdpDropdown\n label='Value Name'\n hint='The field displayed to the user (e.g. name)'\n options={editDomainFieldOptions}\n value={editDomainFieldOptions.find((o) => o.value === valueName) ?? null}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => setValueName(e.target.value?.value ?? '')}\n />\n </UdpFlexbox>\n </UdpCard>\n )}\n\n {/* Virtual: columns */}\n {isVirtual && !(isEditMode && loadingData) && (\n <>\n <UdpCard\n label='Columns'\n subtitle='The first two columns are used as the key and display value.'\n >\n <UdpFlexbox direction='column' gap='md'>\n {activeCols.map((col, i) => (\n <UdpFlexbox\n key={isEditMode ? col.id ?? `new-${i}` : i}\n direction='row'\n gap='sm'\n style={{ alignItems: 'flex-end' }}\n >\n <UdpTextInput\n label={\n i === 0\n ? 'Column 1 (Key)'\n : i === 1\n ? 'Column 2 (Value)'\n : `Column ${i + 1}`\n }\n value={col.name}\n onChange={(e) =>\n isEditMode\n ? updateEditColumnField(i, 'name', e.target.value)\n : updateColumn(i, 'name', e.target.value)\n }\n style={{ flex: 1 }}\n includeErrorPadding={false}\n />\n <UdpDropdown\n label='Type'\n includeErrorPadding={false}\n options={COLUMN_TYPE_OPTIONS}\n value={col.typeOption}\n optionLabel='label'\n optionValue='value'\n onChange={(e) =>\n isEditMode\n ? updateEditColumnField(\n i,\n 'typeOption',\n e.target.value\n )\n : updateColumn(i, 'typeOption', e.target.value)\n }\n style={{ width: '120px' }}\n />\n {activeCols.length > 2 && (\n <UdpIconButton\n iconName='delete'\n appearance='transparent'\n size='small'\n onClick={() =>\n isEditMode ? removeEditColumn(i) : removeColumn(i)\n }\n ariaLabel='Remove column'\n />\n )}\n </UdpFlexbox>\n ))}\n {(isEditMode ? columnCreateAvailable : true) && (\n <UdpButton\n startIconName='add'\n appearance='subtle'\n size='small'\n onClick={isEditMode ? addEditColumn : addColumn}\n ariaLabel='Add column'\n >\n Add Additional Column\n </UdpButton>\n )}\n </UdpFlexbox>\n </UdpCard>\n\n <UdpCard label='Values'>\n <UdpFlexbox direction='column' gap='md'>\n {activeRows.map((row, rowIdx) => (\n <UdpFlexbox\n key={rowIdx}\n direction='row'\n gap='sm'\n style={{ alignItems: 'flex-end' }}\n >\n {row.map((cell, colIdx) => {\n const col = activeCols[colIdx];\n const colLabel = col?.name || `Column ${colIdx + 1}`;\n const cellValue = isEditMode ? cell.value : cell;\n const onCellChange = (val) =>\n isEditMode\n ? updateEditRowValue(rowIdx, colIdx, val)\n : updateRowValue(rowIdx, colIdx, val);\n const colTypeId = col?.typeOption?.value;\n\n if (colTypeId === LookupColumnTypeId.Boolean) {\n return (\n <UdpDropdown\n key={colIdx}\n label={colLabel}\n options={BOOLEAN_OPTIONS}\n value={BOOLEAN_OPTIONS.find((o) => o.value === cellValue) ?? null}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => onCellChange(e.target.value?.value ?? '')}\n style={{ flex: 1 }}\n includeErrorPadding={false}\n />\n );\n }\n\n return (\n <UdpTextInput\n key={colIdx}\n label={colLabel}\n value={cellValue}\n onChange={(e) => onCellChange(e.target.value)}\n style={{ flex: 1 }}\n includeErrorPadding={false}\n autocomplete='off'\n type={colTypeId === LookupColumnTypeId.Long || colTypeId === LookupColumnTypeId.Double ? 'number' : 'text'}\n />\n );\n })}\n {activeRows.length > 1 && (\n <UdpIconButton\n iconName='delete'\n appearance='transparent'\n size='small'\n onClick={() =>\n isEditMode ? removeEditRow(rowIdx) : removeRow(rowIdx)\n }\n ariaLabel='Remove row'\n />\n )}\n </UdpFlexbox>\n ))}\n {(isEditMode ? valueCreateAvailable : true) && (\n <UdpButton\n startIconName='add'\n appearance='subtle'\n size='small'\n onClick={isEditMode ? addEditRow : addRow}\n ariaLabel='Add value mapping'\n >\n Add Value Mapping\n </UdpButton>\n )}\n </UdpFlexbox>\n </UdpCard>\n </>\n )}\n\n {isVirtual && isEditMode && loadingData && (\n <UdpText variant='caption1'>Loading columns and values...</UdpText>\n )}\n </UdpFlexbox>\n <div slot='footer'>\n <UdpButton\n appearance='primary'\n onClick={handleSave}\n disabled={saveDisabled}\n loading={saving}\n >\n {isEditMode ? 'Save' : 'Create Lookup'}\n </UdpButton>\n </div>\n </UdpDrawer>\n );\n};\n\nexport default LookupCreationSheet;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LookupCreationSheet.mjs","names":["React","useState","useEffect","useMemo","useCallback","UdpDrawer","UdpCard","UdpFlexbox","UdpTextInput","UdpDropdown","UdpButton","UdpIconButton","UdpText","UdpBadge","UdpMessageBar","isCatalogModelObject","LookupTypeId","LookupColumnTypeId","LOOKUP_TYPE_OPTIONS","label","value","Domain","Lookup","COLUMN_TYPE_OPTIONS","String","Long","Boolean","DateTime","Double","BOOLEAN_OPTIONS","getSimpleName","name","parts","split","length","LookupCreationSheet","open","onClose","lookup","onCreateLookup","onCreateLookupColumn","onCreateLookupValue","onUpdateLookup","onUpdateLookupColumn","onDeleteLookupValue","onLookupCreated","fetchColumns","fetchValues","catalogObjectList","lookupMethodStatus","isLegacyLookups","isEditMode","setName","description","setDescription","typeOption","setTypeOption","saving","setSaving","selectedEntity","setSelectedEntity","keyNameOption","setKeyNameOption","valueNameOption","setValueNameOption","keyName","setKeyName","valueName","setValueName","virtualColumns","setVirtualColumns","virtualRows","setVirtualRows","editColumns","setEditColumns","editRows","setEditRows","loadingData","setLoadingData","lookupCreateAvailable","lookupUpdateAvailable","columnCreateAvailable","valueCreateAvailable","virtualAvailable","typeOptions","map","o","disabled","isDomain","typeId","isVirtual","find","udpLookupUdpLookupKey","k","loadVirtualData","id","lookupId","allColumns","allValues","Promise","all","lookupColumns","filter","c","sort","a","b","order","lookupValues","v","some","lookupColumnId","colState","lookupColumnTypeId","maxRow","reduce","max","Math","rowNumber","rowState","r","row","col","val","push","entityOptions","obj","catalogObjectName","properties","fieldOptions","p","editDomainFieldOptions","domainName","entity","updateColumn","index","field","prev","updated","addColumn","removeColumn","_","i","updateRowValue","rowIndex","colIndex","addRow","removeRow","updateEditColumnField","addEditColumn","_new","removeEditColumn","updateEditRowValue","rowIdx","colIdx","addEditRow","removeEditRow","resetForm","handleClose","handleEntityChange","e","selected","target","handleCreate","trim","domainKeyPayload","created","undefined","isProductLookup","virtualKeyPayload","columnIds","colResult","columnId","handleUpdate","keyPayload","createValueFn","cell","handleSave","canSave","every","saveDisabled","activeCols","activeRows","alignItems","flex","width","colLabel","cellValue","onCellChange","colTypeId"],"sources":["../../../src/udp/lookups/LookupCreationSheet.jsx"],"sourcesContent":["import React, { useState, useEffect, useMemo, useCallback } from 'react';\nimport { UdpDrawer } from '../../UI/fluent-web-components/UdpDrawer';\nimport { UdpCard } from '../../UI/fluent-web-components/UdpCard';\nimport { UdpFlexbox } from '../../UI/fluent-web-components/UdpFlexbox';\nimport { UdpTextInput } from '../../UI/fluent-web-components/UdpTextInput';\nimport { UdpDropdown } from '../../UI/fluent-web-components/UdpDropdown';\nimport { UdpButton } from '../../UI/fluent-web-components/UdpButton';\nimport { UdpIconButton } from '../../UI/fluent-web-components/UdpIconButton';\nimport { UdpText } from '../../UI/fluent-web-components/UdpText';\nimport { UdpBadge } from '../../UI/fluent-web-components/UdpBadge';\nimport { UdpMessageBar } from '../../UI/fluent-web-components/UdpMessageBar';\nimport { isCatalogModelObject, LookupTypeId, LookupColumnTypeId } from '@univerus/udp-stencil-component-library';\n\nconst LOOKUP_TYPE_OPTIONS = [\n { label: 'Domain', value: LookupTypeId.Domain },\n { label: 'Virtual', value: LookupTypeId.Lookup }\n];\n\nexport const COLUMN_TYPE_OPTIONS = [\n { label: 'String', value: LookupColumnTypeId.String },\n { label: 'Long', value: LookupColumnTypeId.Long },\n { label: 'Boolean', value: LookupColumnTypeId.Boolean },\n { label: 'DateTime', value: LookupColumnTypeId.DateTime },\n { label: 'Double', value: LookupColumnTypeId.Double }\n];\n\nconst BOOLEAN_OPTIONS = [\n { label: 'true', value: 'true' },\n { label: 'false', value: 'false' }\n];\n\nconst getSimpleName = (name) => {\n if (!name) return '';\n const parts = name.split('.');\n return parts[parts.length - 1];\n};\n\n/**\n * LookupCreationSheet — create or edit a lookup.\n *\n * Pass `lookup` to enter edit mode. When omitted, the sheet is in create mode.\n */\nexport const LookupCreationSheet = ({\n open,\n onClose,\n // Optional: when provided the sheet is in edit mode\n lookup = null,\n // CRUD callbacks\n onCreateLookup,\n onCreateLookupColumn,\n onCreateLookupValue,\n onUpdateLookup,\n onUpdateLookupColumn,\n onDeleteLookupValue,\n onLookupCreated,\n // Shared\n fetchColumns,\n fetchValues,\n catalogObjectList = [],\n lookupMethodStatus = {},\n // Legacy Lookup flag\n isLegacyLookups\n}) => {\n const isEditMode = !!lookup;\n\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [typeOption, setTypeOption] = useState(LOOKUP_TYPE_OPTIONS[0]);\n const [saving, setSaving] = useState(false);\n\n // ── Domain lookup state ────────────────────────────────────\n const [selectedEntity, setSelectedEntity] = useState(null);\n const [keyNameOption, setKeyNameOption] = useState(null);\n const [valueNameOption, setValueNameOption] = useState(null);\n // Edit-mode domain text fields (entity is read-only in edit)\n const [keyName, setKeyName] = useState('');\n const [valueName, setValueName] = useState('');\n\n // ── Virtual lookup state ───────────────────────────────────\n const [virtualColumns, setVirtualColumns] = useState([\n { name: 'Key', typeOption: COLUMN_TYPE_OPTIONS[0] },\n { name: 'Value', typeOption: COLUMN_TYPE_OPTIONS[0] }\n ]);\n const [virtualRows, setVirtualRows] = useState([['', '']]);\n // Edit-mode virtual state (rows track existing IDs)\n const [editColumns, setEditColumns] = useState([]);\n const [editRows, setEditRows] = useState([]);\n const [loadingData, setLoadingData] = useState(false);\n\n const {\n lookupCreateAvailable,\n lookupUpdateAvailable,\n columnCreateAvailable,\n valueCreateAvailable\n } = lookupMethodStatus;\n const virtualAvailable = columnCreateAvailable && valueCreateAvailable;\n\n const typeOptions = useMemo(\n () =>\n LOOKUP_TYPE_OPTIONS.map((o) => ({\n ...o,\n disabled: o.value === 4 && !virtualAvailable\n })),\n [virtualAvailable]\n );\n\n const isDomain = isEditMode ? lookup?.typeId === LookupTypeId.Domain : typeOption?.value === LookupTypeId.Domain;\n const isVirtual = isEditMode ? lookup?.typeId === LookupTypeId.Lookup : typeOption?.value === LookupTypeId.Lookup;\n\n // ── Load data when editing ─────────────────────────────────\n useEffect(() => {\n if (!open || !isEditMode) return;\n setName(lookup.name ?? '');\n setDescription(lookup.description ?? '');\n setTypeOption(\n LOOKUP_TYPE_OPTIONS.find((o) => o.value === lookup.typeId) ??\n LOOKUP_TYPE_OPTIONS[0]\n );\n if (isLegacyLookups) {\n setKeyName(lookup.keyName ?? '');\n } else {\n setKeyNameOption(\n lookup.udpLookupUdpLookupKey?.map((k) => ({ label: k.name, value: k.name })) ?? []\n );\n }\n setValueName(lookup.valueName ?? '');\n\n if (lookup.typeId === LookupTypeId.Lookup && fetchColumns && fetchValues) {\n loadVirtualData(lookup.id);\n }\n }, [open, lookup?.id, lookup?.typeId]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const loadVirtualData = async (lookupId) => {\n setLoadingData(true);\n try {\n const [allColumns, allValues] = await Promise.all([\n fetchColumns(),\n fetchValues()\n ]);\n const lookupColumns = allColumns\n .filter((c) => c.lookupId === lookupId)\n .sort((a, b) => a.order - b.order);\n const lookupValues = allValues.filter((v) =>\n lookupColumns.some((c) => c.id === v.lookupColumnId)\n );\n\n const colState = lookupColumns.map((c) => ({\n ...c,\n typeOption:\n COLUMN_TYPE_OPTIONS.find((o) => o.value === c.lookupColumnTypeId) ??\n COLUMN_TYPE_OPTIONS[0]\n }));\n setEditColumns(colState);\n\n const maxRow = lookupValues.reduce(\n (max, v) => Math.max(max, v.rowNumber),\n 0\n );\n const rowState = [];\n for (let r = 1; r <= maxRow; r++) {\n const row = colState.map((col) => {\n const val = lookupValues.find(\n (v) => v.lookupColumnId === col.id && v.rowNumber === r\n );\n return { value: val?.value ?? '', id: val?.id ?? null };\n });\n rowState.push(row);\n }\n if (rowState.length === 0) {\n rowState.push(colState.map(() => ({ value: '', id: null })));\n }\n setEditRows(rowState);\n } finally {\n setLoadingData(false);\n }\n };\n\n // ── Domain helpers ─────────────────────────────────────────\n const entityOptions = useMemo(\n () =>\n catalogObjectList\n .filter((obj) => isCatalogModelObject(obj))\n .map((obj) => ({\n label: getSimpleName(obj.catalogObjectName),\n value: obj.catalogObjectName,\n properties: obj.properties ?? []\n })),\n [catalogObjectList]\n );\n\n const fieldOptions = useMemo(() => {\n if (!selectedEntity?.properties) return [];\n return selectedEntity.properties.map((p) => ({\n label: p.name,\n value: p.name\n }));\n }, [selectedEntity]);\n\n // Edit-mode: derive field options from the lookup's domainName\n const editDomainFieldOptions = useMemo(() => {\n if (!isEditMode || !isDomain || !lookup?.domainName) return [];\n const entity = catalogObjectList.find(\n (obj) => obj.catalogObjectName === lookup.domainName\n );\n if (!entity?.properties) return [];\n return entity.properties.map((p) => ({\n label: p.name,\n value: p.name\n }));\n }, [isEditMode, isDomain, lookup?.domainName, catalogObjectList]);\n\n // ── Create-mode virtual column/row helpers ─────────────────\n const updateColumn = useCallback((index, field, value) => {\n setVirtualColumns((prev) => {\n const updated = [...prev];\n updated[index] = { ...updated[index], [field]: value };\n return updated;\n });\n }, []);\n\n const addColumn = useCallback(() => {\n setVirtualColumns((prev) => [\n ...prev,\n { name: '', typeOption: COLUMN_TYPE_OPTIONS[0] }\n ]);\n setVirtualRows((prev) => prev.map((row) => [...row, '']));\n }, []);\n\n const removeColumn = useCallback(\n (index) => {\n if (virtualColumns.length <= 2) return;\n setVirtualColumns((prev) => prev.filter((_, i) => i !== index));\n setVirtualRows((prev) =>\n prev.map((row) => row.filter((_, i) => i !== index))\n );\n },\n [virtualColumns.length]\n );\n\n const updateRowValue = useCallback((rowIndex, colIndex, value) => {\n setVirtualRows((prev) => {\n const updated = [...prev];\n updated[rowIndex] = [...updated[rowIndex]];\n updated[rowIndex][colIndex] = value;\n return updated;\n });\n }, []);\n\n const addRow = useCallback(() => {\n setVirtualRows((prev) => [...prev, virtualColumns.map(() => '')]);\n }, [virtualColumns]);\n\n const removeRow = useCallback(\n (index) => {\n if (virtualRows.length <= 1) return;\n setVirtualRows((prev) => prev.filter((_, i) => i !== index));\n },\n [virtualRows.length]\n );\n\n // ── Edit-mode virtual column/row helpers ───────────────────\n const updateEditColumnField = (index, field, value) => {\n setEditColumns((prev) => {\n const updated = [...prev];\n updated[index] = { ...updated[index], [field]: value };\n return updated;\n });\n };\n\n const addEditColumn = () => {\n setEditColumns((prev) => [\n ...prev,\n { name: '', typeOption: COLUMN_TYPE_OPTIONS[0], id: null, _new: true }\n ]);\n setEditRows((prev) => prev.map((row) => [...row, { value: '', id: null }]));\n };\n\n const removeEditColumn = (index) => {\n if (editColumns.length <= 2) return;\n setEditColumns((prev) => prev.filter((_, i) => i !== index));\n setEditRows((prev) => prev.map((row) => row.filter((_, i) => i !== index)));\n };\n\n const updateEditRowValue = (rowIdx, colIdx, value) => {\n setEditRows((prev) => {\n const updated = [...prev];\n updated[rowIdx] = [...updated[rowIdx]];\n updated[rowIdx][colIdx] = { ...updated[rowIdx][colIdx], value };\n return updated;\n });\n };\n\n const addEditRow = () => {\n setEditRows((prev) => [\n ...prev,\n editColumns.map(() => ({ value: '', id: null }))\n ]);\n };\n\n const removeEditRow = (index) => {\n if (editRows.length <= 1) return;\n setEditRows((prev) => prev.filter((_, i) => i !== index));\n };\n\n // ── Reset / Close ──────────────────────────────────────────\n const resetForm = () => {\n setName('');\n setDescription('');\n setTypeOption(LOOKUP_TYPE_OPTIONS[0]);\n setSelectedEntity(null);\n setKeyNameOption(null);\n setValueNameOption(null);\n setKeyName('');\n setValueName('');\n setVirtualColumns([\n { name: 'Key', typeOption: COLUMN_TYPE_OPTIONS[0] },\n { name: 'Value', typeOption: COLUMN_TYPE_OPTIONS[0] }\n ]);\n setVirtualRows([['', '']]);\n setEditColumns([]);\n setEditRows([]);\n };\n\n const handleClose = () => {\n resetForm();\n onClose();\n };\n\n const handleEntityChange = (e) => {\n const selected = e.target.value;\n const entity = selected\n ? entityOptions.find((o) => o.value === selected.value)\n : null;\n setSelectedEntity(entity);\n setKeyNameOption(null);\n setValueNameOption(null);\n };\n\n // ── Save (create) ─────────────────────────────────────────\n const handleCreate = async () => {\n if (!name.trim()) return;\n setSaving(true);\n try {\n if (isDomain) {\n const domainKeyPayload = isLegacyLookups\n ? { keyName: keyNameOption?.value ?? '' }\n : { udpLookupUdpLookupKey: (keyNameOption ?? []).map((o) => ({ name: o.value })) };\n\n const created = await onCreateLookup({\n name: name.trim(),\n description: description.trim() || undefined,\n typeId: LookupTypeId.Domain,\n ...domainKeyPayload,\n valueName: valueNameOption?.value ?? '',\n domainName: selectedEntity?.value ?? '',\n isProductLookup: false\n });\n if (created) {\n onLookupCreated?.(created);\n handleClose();\n }\n } else {\n const virtualKeyPayload = isLegacyLookups\n ? { keyName: virtualColumns[0]?.name || 'key' }\n : { udpLookupUdpLookupKey: [{ name: virtualColumns[0]?.name || 'key' }] };\n\n const created = await onCreateLookup({\n name: name.trim(),\n description: description.trim() || undefined,\n typeId: LookupTypeId.Lookup,\n ...virtualKeyPayload,\n valueName: virtualColumns[1]?.name || 'value',\n isProductLookup: false\n });\n if (!created?.id) return;\n\n const columnIds = [];\n for (let i = 0; i < virtualColumns.length; i++) {\n const col = virtualColumns[i];\n const colResult = await onCreateLookupColumn({\n lookupId: created.id,\n name: col.name || `Column ${i + 1}`,\n order: i + 1,\n lookupColumnTypeId: col.typeOption?.value ?? 1\n });\n columnIds.push(colResult?.id ?? null);\n }\n\n for (let rowIdx = 0; rowIdx < virtualRows.length; rowIdx++) {\n const row = virtualRows[rowIdx];\n for (let colIdx = 0; colIdx < row.length; colIdx++) {\n const columnId = columnIds[colIdx];\n if (!columnId || !row[colIdx]) continue;\n await onCreateLookupValue({\n lookupColumnId: columnId,\n value: row[colIdx],\n rowNumber: rowIdx + 1\n });\n }\n }\n\n onLookupCreated?.(created);\n handleClose();\n }\n } finally {\n setSaving(false);\n }\n };\n\n // ── Save (edit) ────────────────────────────────────────────\n const handleUpdate = async () => {\n if (!name.trim()) return;\n setSaving(true);\n try {\n const keyPayload = isLegacyLookups\n ? { keyName: isVirtual ? editColumns[0]?.name || keyName : keyName }\n : { udpLookupUdpLookupKey: isVirtual ? [{ name: editColumns[0]?.name || 'key' }] : (keyNameOption ?? []).map((o) => ({ name: o.value })) };\n\n await onUpdateLookup({\n ...lookup,\n name: name.trim(),\n description: description.trim() || null,\n ...keyPayload,\n valueName: isVirtual ? editColumns[1]?.name || valueName : valueName\n });\n\n if (isVirtual) {\n for (let i = 0; i < editColumns.length; i++) {\n const col = editColumns[i];\n if (col._new || !col.id) {\n const created = await onCreateLookupColumn({\n lookupId: lookup.id,\n name: col.name || `Column ${i + 1}`,\n order: i + 1,\n lookupColumnTypeId: col.typeOption?.value ?? 1\n });\n if (created?.id) {\n editColumns[i] = { ...col, id: created.id, _new: false };\n }\n } else {\n await onUpdateLookupColumn({\n ...col,\n name: col.name || `Column ${i + 1}`,\n order: i + 1,\n lookupColumnTypeId: col.typeOption?.value ?? 1\n });\n }\n }\n\n const createValueFn = onCreateLookupValue;\n for (let rowIdx = 0; rowIdx < editRows.length; rowIdx++) {\n const row = editRows[rowIdx];\n for (let colIdx = 0; colIdx < row.length; colIdx++) {\n const cell = row[colIdx];\n const columnId = editColumns[colIdx]?.id;\n if (!columnId) continue;\n\n if (cell.id && !cell.value.trim()) {\n await onDeleteLookupValue?.({ id: cell.id });\n } else if (cell.id) {\n // update existing value — reuse the create fn pattern isn't right,\n // but we don't have an updateValue prop. For now, skip unchanged.\n // The caller can pass onUpdateLookupValue if needed.\n } else if (cell.value.trim()) {\n await createValueFn?.({\n lookupColumnId: columnId,\n value: cell.value,\n rowNumber: rowIdx + 1\n });\n }\n }\n }\n }\n\n onLookupCreated?.(lookup);\n handleClose();\n } finally {\n setSaving(false);\n }\n };\n\n const handleSave = isEditMode ? handleUpdate : handleCreate;\n\n // ── Validation ─────────────────────────────────────────────\n const canSave =\n name.trim().length > 0 &&\n (isEditMode\n ? true\n : isDomain\n ? !!selectedEntity\n : virtualColumns.every((c) => c.name.trim()) &&\n virtualRows.some((r) => r.some((v) => v.trim())));\n\n const saveDisabled = isEditMode\n ? !canSave || !lookupUpdateAvailable\n : !canSave || !lookupCreateAvailable;\n\n // ── Active column/row state (create vs edit) ───────────────\n const activeCols = isEditMode ? editColumns : virtualColumns;\n const activeRows = isEditMode ? editRows : virtualRows;\n\n return (\n <UdpDrawer\n open={open}\n drawerTitle={\n isEditMode ? `Edit Lookup: ${lookup?.name}` : 'Create Lookup'\n }\n size='medium'\n onDrawerClose={handleClose}\n excludeVerticalPadding\n >\n <UdpFlexbox gap='md'>\n {!isEditMode && !lookupCreateAvailable && (\n <UdpMessageBar intent='warning'>\n UdpLookup create method is not promoted. Lookup creation is\n disabled.\n </UdpMessageBar>\n )}\n {!isEditMode && lookupCreateAvailable && !virtualAvailable && (\n <UdpMessageBar intent='warning'>\n {!columnCreateAvailable && !valueCreateAvailable\n ? 'UdpLookupColumn and UdpLookupValue create methods are not promoted.'\n : !columnCreateAvailable\n ? 'UdpLookupColumn create method is not promoted.'\n : 'UdpLookupValue create method is not promoted.'}{' '}\n Virtual lookup creation is disabled.\n </UdpMessageBar>\n )}\n <UdpCard label='Lookup Details'>\n <UdpFlexbox direction='column' gap='sm'>\n <UdpTextInput\n label='Display Name'\n value={name}\n onChange={(e) => setName(e.target.value)}\n required\n disabled={\n isEditMode ? !lookupUpdateAvailable : !lookupCreateAvailable\n }\n />\n <UdpTextInput\n label='Description'\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n disabled={\n isEditMode ? !lookupUpdateAvailable : !lookupCreateAvailable\n }\n />\n {isEditMode ? (\n <UdpFlexbox\n direction='row'\n gap='sm'\n style={{ alignItems: 'center' }}\n >\n <UdpText variant='caption1'>Type:</UdpText>\n <UdpBadge\n appearance='tint'\n color={lookup?.typeId === LookupTypeId.Domain ? 'warning' : 'informative'}\n >\n {lookup?.typeId === LookupTypeId.Domain ? 'Domain' : 'Virtual'}\n </UdpBadge>\n </UdpFlexbox>\n ) : (\n <UdpDropdown\n label='Type'\n hint='Domain: backed by an entity table. Virtual: custom key/value pairs'\n options={typeOptions}\n value={typeOption}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => setTypeOption(e.target.value)}\n disabled={!lookupCreateAvailable}\n />\n )}\n </UdpFlexbox>\n </UdpCard>\n\n {/* Domain: create mode — entity/field selection */}\n {isDomain && !isEditMode && (\n <UdpCard label='Field Mapping'>\n <UdpFlexbox direction='column' gap='md'>\n <UdpDropdown\n label='Domain Entity'\n hint='The entity table this lookup resolves against'\n options={entityOptions}\n value={selectedEntity}\n optionLabel='label'\n optionValue='value'\n onChange={handleEntityChange}\n />\n {fieldOptions.length > 0 && (\n <>\n {isLegacyLookups ? (\n <UdpDropdown\n label='Key Name'\n hint='The field used to match values (e.g. the ID field)'\n options={fieldOptions}\n value={keyNameOption}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => setKeyNameOption(e.target.value)}\n />\n ) : (\n <UdpDropdown\n label='Key Name(s)'\n hint='The fields used to match values (e.g. the ID field)'\n multiple\n options={fieldOptions}\n value={keyNameOption}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => setKeyNameOption(e.target.value)}\n />\n )}\n\n <UdpDropdown\n label='Value Name'\n hint='The field displayed to the user (e.g. name)'\n options={fieldOptions}\n value={valueNameOption}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => setValueNameOption(e.target.value)}\n />\n </>\n )}\n </UdpFlexbox>\n </UdpCard>\n )}\n\n {/* Domain: edit mode */}\n {isDomain && isEditMode && (\n <UdpCard label='Field Mapping'>\n <UdpFlexbox direction='column' gap='sm'>\n <UdpTextInput\n label='Domain Name'\n value={getSimpleName(lookup?.domainName) ?? ''}\n disabled\n />\n {isLegacyLookups ? (\n <UdpDropdown\n label='Key Name'\n hint='The field used to match values (e.g. the ID field)'\n options={editDomainFieldOptions}\n value={editDomainFieldOptions.find((o) => o.value === keyName) ?? null}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => setKeyName(e.target.value?.value ?? '')}\n />\n ) : (\n <UdpDropdown\n label='Key Name(s)'\n hint='The fields used to match values (e.g. the ID field)'\n multiple\n options={editDomainFieldOptions}\n value={keyNameOption}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => setKeyNameOption(e.target.value)}\n />\n )}\n <UdpDropdown\n label='Value Name'\n hint='The field displayed to the user (e.g. name)'\n options={editDomainFieldOptions}\n value={editDomainFieldOptions.find((o) => o.value === valueName) ?? null}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => setValueName(e.target.value?.value ?? '')}\n />\n </UdpFlexbox>\n </UdpCard>\n )}\n\n {/* Virtual: columns */}\n {isVirtual && !(isEditMode && loadingData) && (\n <>\n <UdpCard\n label='Columns'\n subtitle='The first two columns are used as the key and display value.'\n >\n <UdpFlexbox direction='column' gap='md'>\n {activeCols.map((col, i) => (\n <UdpFlexbox\n key={isEditMode ? col.id ?? `new-${i}` : i}\n direction='row'\n gap='sm'\n style={{ alignItems: 'flex-end' }}\n >\n <UdpTextInput\n label={\n i === 0\n ? 'Column 1 (Key)'\n : i === 1\n ? 'Column 2 (Value)'\n : `Column ${i + 1}`\n }\n value={col.name}\n onChange={(e) =>\n isEditMode\n ? updateEditColumnField(i, 'name', e.target.value)\n : updateColumn(i, 'name', e.target.value)\n }\n style={{ flex: 1 }}\n includeErrorPadding={false}\n />\n <UdpDropdown\n label='Type'\n includeErrorPadding={false}\n options={COLUMN_TYPE_OPTIONS}\n value={col.typeOption}\n optionLabel='label'\n optionValue='value'\n onChange={(e) =>\n isEditMode\n ? updateEditColumnField(\n i,\n 'typeOption',\n e.target.value\n )\n : updateColumn(i, 'typeOption', e.target.value)\n }\n style={{ width: '120px' }}\n />\n {activeCols.length > 2 && (\n <UdpIconButton\n iconName='delete'\n appearance='transparent'\n size='small'\n onClick={() =>\n isEditMode ? removeEditColumn(i) : removeColumn(i)\n }\n ariaLabel='Remove column'\n />\n )}\n </UdpFlexbox>\n ))}\n {(isEditMode ? columnCreateAvailable : true) && (\n <UdpButton\n startIconName='add'\n appearance='subtle'\n size='small'\n onClick={isEditMode ? addEditColumn : addColumn}\n ariaLabel='Add column'\n >\n Add Additional Column\n </UdpButton>\n )}\n </UdpFlexbox>\n </UdpCard>\n\n <UdpCard label='Values'>\n <UdpFlexbox direction='column' gap='md'>\n {activeRows.map((row, rowIdx) => (\n <UdpFlexbox\n key={rowIdx}\n direction='row'\n gap='sm'\n style={{ alignItems: 'flex-end' }}\n >\n {row.map((cell, colIdx) => {\n const col = activeCols[colIdx];\n const colLabel = col?.name || `Column ${colIdx + 1}`;\n const cellValue = isEditMode ? cell.value : cell;\n const onCellChange = (val) =>\n isEditMode\n ? updateEditRowValue(rowIdx, colIdx, val)\n : updateRowValue(rowIdx, colIdx, val);\n const colTypeId = col?.typeOption?.value;\n\n if (colTypeId === LookupColumnTypeId.Boolean) {\n return (\n <UdpDropdown\n key={colIdx}\n label={colLabel}\n options={BOOLEAN_OPTIONS}\n value={BOOLEAN_OPTIONS.find((o) => o.value === cellValue) ?? null}\n optionLabel='label'\n optionValue='value'\n onChange={(e) => onCellChange(e.target.value?.value ?? '')}\n style={{ flex: 1 }}\n includeErrorPadding={false}\n />\n );\n }\n\n return (\n <UdpTextInput\n key={colIdx}\n label={colLabel}\n value={cellValue}\n onChange={(e) => onCellChange(e.target.value)}\n style={{ flex: 1 }}\n includeErrorPadding={false}\n autocomplete='off'\n type={colTypeId === LookupColumnTypeId.Long || colTypeId === LookupColumnTypeId.Double ? 'number' : 'text'}\n />\n );\n })}\n {activeRows.length > 1 && (\n <UdpIconButton\n iconName='delete'\n appearance='transparent'\n size='small'\n onClick={() =>\n isEditMode ? removeEditRow(rowIdx) : removeRow(rowIdx)\n }\n ariaLabel='Remove row'\n />\n )}\n </UdpFlexbox>\n ))}\n {(isEditMode ? valueCreateAvailable : true) && (\n <UdpButton\n startIconName='add'\n appearance='subtle'\n size='small'\n onClick={isEditMode ? addEditRow : addRow}\n ariaLabel='Add value mapping'\n >\n Add Value Mapping\n </UdpButton>\n )}\n </UdpFlexbox>\n </UdpCard>\n </>\n )}\n\n {isVirtual && isEditMode && loadingData && (\n <UdpText variant='caption1'>Loading columns and values...</UdpText>\n )}\n </UdpFlexbox>\n <div slot='footer'>\n <UdpButton\n appearance='primary'\n onClick={handleSave}\n disabled={saveDisabled}\n loading={saving}\n >\n {isEditMode ? 'Save' : 'Create Lookup'}\n </UdpButton>\n </div>\n </UdpDrawer>\n );\n};\n\nexport default LookupCreationSheet;\n"],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import type { Lookup, LookupColumn, LookupValue } from 'udp-stencil-component-library';
|
|
1
|
+
import type { Lookup, LookupColumn, LookupValue, LookupWithData } from 'udp-stencil-component-library';
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use {@link LookupWithData} from `udp-stencil-component-library` instead.
|
|
4
|
+
*/
|
|
2
5
|
export interface LookupData {
|
|
3
6
|
data: Record<string, string | number>[];
|
|
4
7
|
keyName: string;
|
|
@@ -43,7 +46,9 @@ export declare const useLookups: (apiCatalogId: string, productId: string | numb
|
|
|
43
46
|
}) => Promise<LookupValue>;
|
|
44
47
|
deleteLookupValue: (valueData: Pick<LookupValue, "id">) => Promise<LookupValue>;
|
|
45
48
|
// Lookup resolution
|
|
46
|
-
fetchLookupData: (lookupId: string) => Promise<
|
|
49
|
+
fetchLookupData: (lookupId: string) => Promise<LookupWithData>;
|
|
47
50
|
resolveLookupValue: (lookupId: string, rawValue: string | number, overrideKeyName?: string, overrideValueName?: string) => Promise<string | number>;
|
|
51
|
+
// Legacy flag
|
|
52
|
+
isLegacyLookups: boolean;
|
|
48
53
|
};
|
|
49
54
|
//# sourceMappingURL=useLookups.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLookups.d.ts","sourceRoot":"","sources":["../../../src/udp/lookups/useLookups.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"useLookups.d.ts","sourceRoot":"","sources":["../../../src/udp/lookups/useLookups.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AA2BjH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;IA4SnB,cAAc;;;;;;;IAId,cAAc;;;;;;;;IAKd,aAAa;;;;;;;;IAKb,oBAAoB;;;IAGpB,cAAc;;CAGjB,CAAC"}
|
|
@@ -15,6 +15,7 @@ import { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';
|
|
|
15
15
|
import { apiMutate } from '../../utilities/useAxiosMutate';
|
|
16
16
|
import { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';
|
|
17
17
|
import { ConfigService } from '../../configService';
|
|
18
|
+
import { SearchBuilder } from 'udp-stencil-component-library';
|
|
18
19
|
const resolveMethodId = (methods, key) => {
|
|
19
20
|
var _a;
|
|
20
21
|
return (_a = methods === null || methods === void 0 ? void 0 : methods[key]) === null || _a === void 0 ? void 0 : _a.apiMethodId;
|
|
@@ -23,6 +24,7 @@ const showError = (handleErrorSnackbar, message) => handleErrorSnackbar(null, me
|
|
|
23
24
|
export const useLookups = (apiCatalogId, productId) => {
|
|
24
25
|
var _a;
|
|
25
26
|
const [lookups, setLookups] = useState([]);
|
|
27
|
+
const [isLegacyLookups, setIsLegacyLookups] = useState(false);
|
|
26
28
|
const [loading, setLoading] = useState(false);
|
|
27
29
|
const { handleErrorSnackbar } = useHandleAxiosSnackbar();
|
|
28
30
|
const productIdArg = productId != null ? String(productId) : undefined;
|
|
@@ -46,6 +48,23 @@ export const useLookups = (apiCatalogId, productId) => {
|
|
|
46
48
|
const getAllValuesMethodId = resolveMethodId(valueMethods, 'unityBaseGetAllMethod');
|
|
47
49
|
const updateValueMethodId = resolveMethodId(valueMethods, 'unityBaseUpdateMethod');
|
|
48
50
|
const deleteValueMethodId = resolveMethodId(valueMethods, 'unityBaseDeleteMethod');
|
|
51
|
+
// ── Check ObjectInfo table for LookupKey so know if they are using legacy lookups ────────────────────────────────
|
|
52
|
+
const searchForLookupKeyTable = useCallback(async () => {
|
|
53
|
+
var _a;
|
|
54
|
+
const search = new SearchBuilder().addFilter("Name", "LookupKey").build();
|
|
55
|
+
const response = await apiMutate(ConfigService.integrationV2ApiUrl, `udpObjectInfo/search`, { method: 'post' }, { data: search });
|
|
56
|
+
return (response === null || response === void 0 ? void 0 : response.status) === 200 || (response === null || response === void 0 ? void 0 : response.status) === 201 ? (_a = response.data) !== null && _a !== void 0 ? _a : null : null;
|
|
57
|
+
}, []);
|
|
58
|
+
const checkLegacyLookups = useCallback(async () => {
|
|
59
|
+
const lookupKeyPage = await searchForLookupKeyTable();
|
|
60
|
+
// If the lookup key table doesn't exist, then we know it's legacy
|
|
61
|
+
if (!lookupKeyPage || lookupKeyPage.pageList.length === 0) {
|
|
62
|
+
setIsLegacyLookups(true);
|
|
63
|
+
}
|
|
64
|
+
}, [searchForLookupKeyTable]);
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
void checkLegacyLookups();
|
|
67
|
+
}, [checkLegacyLookups]);
|
|
49
68
|
// ── Helper: execute a method ─────────────────────────────────
|
|
50
69
|
const execute = useCallback(async (methodId, data = {}) => {
|
|
51
70
|
var _a;
|
|
@@ -69,7 +88,15 @@ export const useLookups = (apiCatalogId, productId) => {
|
|
|
69
88
|
setLoading(true);
|
|
70
89
|
try {
|
|
71
90
|
const data = await execute(getAllMethodId);
|
|
72
|
-
|
|
91
|
+
const transformedLookups = data === null || data === void 0 ? void 0 : data.map((lookup) => {
|
|
92
|
+
// If the keyName has a value, we assume this is a legacy lookup and transform it to the new format on the fly.
|
|
93
|
+
if (!!lookup.keyName) {
|
|
94
|
+
setIsLegacyLookups(true);
|
|
95
|
+
return Object.assign(Object.assign({}, lookup), { udpLookupUdpLookupKey: [{ name: lookup.keyName }] });
|
|
96
|
+
}
|
|
97
|
+
return lookup;
|
|
98
|
+
});
|
|
99
|
+
setLookups(transformedLookups !== null && transformedLookups !== void 0 ? transformedLookups : []);
|
|
73
100
|
}
|
|
74
101
|
catch (_a) {
|
|
75
102
|
showError(handleErrorSnackbar, 'Failed to fetch lookups');
|
|
@@ -166,12 +193,15 @@ export const useLookups = (apiCatalogId, productId) => {
|
|
|
166
193
|
* @param overrideValueName - Optional override for which field to return
|
|
167
194
|
*/
|
|
168
195
|
const resolveLookupValue = useCallback(async (lookupId, rawValue, overrideKeyName, overrideValueName) => {
|
|
196
|
+
var _a;
|
|
197
|
+
var _b, _c;
|
|
169
198
|
if (rawValue == null)
|
|
170
199
|
return rawValue;
|
|
171
200
|
const lookupData = await fetchLookupData(lookupId);
|
|
172
201
|
if (!(lookupData === null || lookupData === void 0 ? void 0 : lookupData.data))
|
|
173
202
|
return rawValue;
|
|
174
|
-
const
|
|
203
|
+
const keys = (_b = lookupData.udpLookupUdpLookupKey) !== null && _b !== void 0 ? _b : (lookupData.keyName ? [{ name: lookupData.keyName }] : []);
|
|
204
|
+
const key = (_c = overrideKeyName !== null && overrideKeyName !== void 0 ? overrideKeyName : (_a = keys[0]) === null || _a === void 0 ? void 0 : _a.name) !== null && _c !== void 0 ? _c : '';
|
|
175
205
|
const val = overrideValueName !== null && overrideValueName !== void 0 ? overrideValueName : lookupData.valueName;
|
|
176
206
|
if (!key || !val)
|
|
177
207
|
return rawValue;
|
|
@@ -212,6 +242,8 @@ export const useLookups = (apiCatalogId, productId) => {
|
|
|
212
242
|
// Lookup resolution
|
|
213
243
|
fetchLookupData,
|
|
214
244
|
resolveLookupValue,
|
|
245
|
+
// Legacy flag
|
|
246
|
+
isLegacyLookups,
|
|
215
247
|
};
|
|
216
248
|
};
|
|
217
249
|
//# sourceMappingURL=useLookups.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLookups.js","sourceRoot":"","sources":["../../../src/udp/lookups/useLookups.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useLookups.js","sourceRoot":"","sources":["../../../src/udp/lookups/useLookups.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAqBxE,MAAM,eAAe,GAAG,CACtB,OAAsC,EACtC,GAAW,EACS,EAAE;;WAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,GAAG,CAAC,0CAAE,WAAW;CAAA,CAAC;AAWrD,MAAM,SAAS,GAAG,CAAC,mBAAkC,EAAE,OAAe,EAAE,EAAE,CACxE,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,YAAgC,EAChC,SAAsC,EACtC,EAAE,CAAC;;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,EAAE,mBAAmB,EAAE,GAAG,sBAAsB,EAErD,CAAC;IAEF,MAAM,YAAY,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,eAAe,GAAG,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,CAAsB,CAAC;IAEjE,4IAAgE;IAChE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,GACpD,wBAAwB,CAAC,YAAY,EAAE,YAAY,CAGlD,CAAC;IAEJ,MAAM,cAAc,GAAG,eAAe,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IAC/E,MAAM,eAAe,SACnB,eAAe,CAAC,aAAa,EAAE,wBAAwB,CAAC,mCACxD,eAAe,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,eAAe,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IAC/E,MAAM,cAAc,GAAG,eAAe,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IAC/E,MAAM,cAAc,GAAG,eAAe,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IAE/E,gIAAgE;IAChE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,uBAAuB,CACrD,iBAAiB,EACjB,IAAI,EACJ,YAAY,EACZ,eAAe,CAC2B,CAAC;IAE7C,MAAM,oBAAoB,GAAG,eAAe,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IACrF,MAAM,qBAAqB,GAAG,eAAe,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IACtF,MAAM,oBAAoB,GAAG,eAAe,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IACrF,MAAM,oBAAoB,GAAG,eAAe,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IAErF,kIAAgE;IAChE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,uBAAuB,CACpD,gBAAgB,EAChB,IAAI,EACJ,YAAY,EACZ,eAAe,CAC2B,CAAC;IAE7C,MAAM,mBAAmB,GAAG,eAAe,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;IACnF,MAAM,oBAAoB,GAAG,eAAe,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;IACpF,MAAM,mBAAmB,GAAG,eAAe,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;IACnF,MAAM,mBAAmB,GAAG,eAAe,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAEnF,wLAAoH;IACpH,MAAM,uBAAuB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;;QACtD,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;QAE1E,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC9B,aAAa,CAAC,mBAAmB,EACjC,sBAAsB,EACtB,EAAE,MAAM,EAAE,MAAM,EAAE,EAClB,EAAE,IAAI,EAAE,MAAM,EAAE,CAC+C,CAAC;QAElE,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,CAAC,CAAC,OAAC,QAAQ,CAAC,IAAI,mCAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAAA,CAC5F,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,MAAM,uBAAuB,EAAE,CAAC;QACtD,kEAAkE;QAClE,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1D,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IAAA,CACF,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE,CAAC;QACd,KAAK,kBAAkB,EAAE,CAAC;IAAA,CAC3B,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,sIAAgE;IAChE,MAAM,OAAO,GAAG,WAAW,CACzB,KAAK,EACH,QAA4B,EAC5B,IAAI,GAA4B,EAAE,EACf,EAAE,CAAC;;QACtB,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,SAAS,CAC/B,aAAa,CAAC,mBAAmB,EACjC,wCAAwC,QAAQ,EAAE,EAClD,EAAE,MAAM,EAAE,MAAM,EAAE,EAClB,EAAE,IAAI,EAAE,CACT,CAA8C,CAAC;YAChD,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,GAAG,EAAE,CAAC;gBACzD,aAAO,QAAQ,CAAC,IAAI,mCAAI,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;mBAAO,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IAAA,CACb,EACD,EAAE,CACH,CAAC;IAEF,oJAAgE;IAChE,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,cAAc;YAAE,OAAO;QAC5B,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAW,cAAc,CAAC,CAAC;YACrD,MAAM,kBAAkB,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC/C,+GAA+G;gBAC/G,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACrB,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBACzB,uCACK,MAAM,KACT,qBAAqB,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,IACjD;gBACJ,CAAC;gBACD,OAAO,MAAM,CAAC;YAAA,CACf,CAAC,CAAC;YACH,UAAU,CAAC,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,EAAE,CAAC,CAAC;QACvC,CAAC;mBAAO,CAAC;YACP,SAAS,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;QAC5D,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IAAA,CACF,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEnD,SAAS,CAAC,GAAG,EAAE,CAAC;QACd,KAAK,YAAY,EAAE,CAAC;IAAA,CACrB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,8JAAgE;IAChE,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EAAE,UAA2B,EAAE,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAS,cAAc,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM;YAAE,SAAS,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC;IAAA,CACf,EACD,CAAC,cAAc,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAC/C,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EAAE,UAAiD,EAAE,EAAE,CAAC;QAC3D,MAAM,EAAE,EAAE,KAAc,UAAU,EAAnB,IAAI,UAAK,UAAU,EAA5B,MAAe,CAAa,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAS,cAAc,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM;YAAE,SAAS,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC;IAAA,CACf,EACD,CAAC,cAAc,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAC/C,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EAAE,UAA8B,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAS,cAAc,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM;YAAE,SAAS,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC;IAAA,CACf,EACD,CAAC,cAAc,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAC/C,CAAC;IAEF,+IAA+D;IAC/D,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,IAA6B,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAiB,qBAAqB,CAAC,CAAC;QACpE,OAAO,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IAAA,CACrB,EACD,CAAC,qBAAqB,EAAE,OAAO,CAAC,CACjC,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,KAAK,EAAE,UAAiC,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAe,oBAAoB,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9F,IAAI,CAAC,MAAM;YAAE,SAAS,CAAC,mBAAmB,EAAE,gCAAgC,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC;IAAA,CACf,EACD,CAAC,oBAAoB,EAAE,OAAO,EAAE,mBAAmB,CAAC,CACrD,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,KAAK,EAAE,UAAiD,EAAE,EAAE,CAAC;QAC3D,MAAM,EAAE,EAAE,KAAc,UAAU,EAAnB,IAAI,UAAK,UAAU,EAA5B,MAAe,CAAa,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAe,oBAAoB,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,MAAM;YAAE,SAAS,CAAC,mBAAmB,EAAE,gCAAgC,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC;IAAA,CACf,EACD,CAAC,oBAAoB,EAAE,OAAO,EAAE,mBAAmB,CAAC,CACrD,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,KAAK,EAAE,UAAoC,EAAE,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAe,oBAAoB,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC,MAAM;YAAE,SAAS,CAAC,mBAAmB,EAAE,gCAAgC,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC;IAAA,CACf,EACD,CAAC,oBAAoB,EAAE,OAAO,EAAE,mBAAmB,CAAC,CACrD,CAAC;IAEF,iJAA+D;IAC/D,MAAM,WAAW,GAAG,WAAW,CAC7B,KAAK,IAA4B,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAgB,oBAAoB,CAAC,CAAC;QAClE,OAAO,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IAAA,CACrB,EACD,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAChC,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CACnC,KAAK,EAAE,SAA+B,EAAE,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAc,mBAAmB,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,MAAM;YAAE,SAAS,CAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC;IAAA,CACf,EACD,CAAC,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,CAAC,CACpD,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CACnC,KAAK,EAAE,SAAgD,EAAE,EAAE,CAAC;QAC1D,MAAM,EAAE,EAAE,KAAc,SAAS,EAAlB,IAAI,UAAK,SAAS,EAA3B,MAAe,CAAY,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAc,mBAAmB,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM;YAAE,SAAS,CAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC;IAAA,CACf,EACD,CAAC,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,CAAC,CACpD,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CACnC,KAAK,EAAE,SAAkC,EAAE,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAc,mBAAmB,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM;YAAE,SAAS,CAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC;IAAA,CACf,EACD,CAAC,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,CAAC,CACpD,CAAC;IAEF,uJAAiE;IACjE;;OAEG;IACH,MAAM,eAAe,GAAG,WAAW,CACjC,KAAK,EAAE,QAAgB,EAAkC,EAAE,CAAC;QAC1D,OAAO,OAAO,CAAiB,eAAe,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAAA,CACnE,EACD,CAAC,eAAe,EAAE,OAAO,CAAC,CAC3B,CAAC;IAEF;;;;;;;;OAQG;IACH,MAAM,kBAAkB,GAAG,WAAW,CACpC,KAAK,EACH,QAAgB,EAChB,QAAyB,EACzB,eAAwB,EACxB,iBAA0B,EACA,EAAE,CAAC;;;QAC7B,IAAI,QAAQ,IAAI,IAAI;YAAE,OAAO,QAAQ,CAAC;QACtC,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,EAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAA;YAAE,OAAO,QAAQ,CAAC;QAEvC,MAAM,IAAI,SAAG,UAAU,CAAC,qBAAqB,mCAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5G,MAAM,GAAG,SAAW,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,IAAI,mCAAI,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAW,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,UAAU,CAAC,SAAS,CAAC;QAC9D,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;YAAE,OAAO,QAAQ,CAAC;QAElC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAChC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAC/C,CAAC;QACF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAAA,CACtC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,gJAAgE;IAChE,MAAM,YAAY,GAAG;QACnB,qBAAqB,EAAE,CAAC,CAAC,cAAc;QACvC,qBAAqB,EAAE,CAAC,CAAC,cAAc;QACvC,qBAAqB,EAAE,CAAC,CAAC,cAAc;QACvC,qBAAqB,EAAE,CAAC,CAAC,oBAAoB;QAC7C,qBAAqB,EAAE,CAAC,CAAC,oBAAoB;QAC7C,qBAAqB,EAAE,CAAC,CAAC,oBAAoB;QAC7C,oBAAoB,EAAE,CAAC,CAAC,mBAAmB;QAC3C,oBAAoB,EAAE,CAAC,CAAC,mBAAmB;QAC3C,oBAAoB,EAAE,CAAC,CAAC,mBAAmB;KAC5C,CAAC;IAEF,OAAO;QACL,OAAO;QACP,OAAO,EAAE,OAAO,IAAI,cAAc;QAClC,OAAO,EAAE,YAAY;QACrB,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,aAAa;QACb,WAAW;QACX,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,oBAAoB;QACpB,eAAe;QACf,kBAAkB;QAClB,cAAc;QACd,eAAe;KAChB,CAAC;AAAA,CACH,CAAC"}
|