@sme.up/ketchup 11.0.0-SNAPSHOT-20241118173527 → 11.0.0-SNAPSHOT-20241119100308
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/cjs/kup-input-panel.cjs.entry.js +5 -3
- package/dist/cjs/kup-input-panel.cjs.entry.js.map +1 -1
- package/dist/collection/components/kup-input-panel/kup-input-panel-utils.js +2 -2
- package/dist/collection/components/kup-input-panel/kup-input-panel-utils.js.map +1 -1
- package/dist/collection/components/kup-input-panel/kup-input-panel.css +0 -1
- package/dist/collection/components/kup-input-panel/kup-input-panel.js +5 -3
- package/dist/collection/components/kup-input-panel/kup-input-panel.js.map +1 -1
- package/dist/components/kup-input-panel.js +5 -3
- package/dist/components/kup-input-panel.js.map +1 -1
- package/dist/esm/kup-input-panel.entry.js +5 -3
- package/dist/esm/kup-input-panel.entry.js.map +1 -1
- package/dist/ketchup/ketchup.esm.js +1 -1
- package/dist/ketchup/p-b20f10c2.entry.js +2 -0
- package/dist/ketchup/p-b20f10c2.entry.js.map +1 -0
- package/dist/types/components/kup-input-panel/kup-input-panel-utils.d.ts +2 -0
- package/package.json +1 -1
- package/dist/ketchup/p-7bb78fa5.entry.js +0 -2
- package/dist/ketchup/p-7bb78fa5.entry.js.map +0 -1
|
@@ -63,7 +63,7 @@ const getAbsoluteLeft = (col) => {
|
|
|
63
63
|
return col * CHAR_WIDTH;
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
const kupInputPanelCss = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:14px;line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:14px;line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}:host{--kup-fcell-width:fit-content;--kup_input_panel_background_color:var(\n --kup-input-panel-background-color,\n var(--kup-layer-0)\n );--kup_input_panel_color:var(\n --kup-input-panel-color,\n var(--kup-text-secondary)\n );--kup_input_panel_font_family:var(\n --kup-input-panel-font-family,\n var(--kup-font-family)\n );--kup_input_panel_font_size:var(\n --kup-input-panel-font-size,\n var(--kup-font-size)\n );--kup_input_panel_label_alignment:var(--kup-input-panel-label-alignment);--kup_input_panel_label_width:var(--kup-input-panel-label-width);--kup_input_panel_padding:var(--kup-input-panel-padding, 1em 0)}:host .input-panel{background:var(--kup_input_panel_background_color);color:var(--kup_input_panel_color);display:flex;flex-grow:1;overflow:auto;padding:var(--kup_input_panel_padding);position:relative;gap:1rem}:host .input-panel__commands{display:flex;gap:2rem}:host .input-panel--column{flex-direction:column}:host .input-panel__section_label_container{display:flex;flex-direction:column;gap:1rem}:host .input-panel__section{display:grid;min-width:0}:host .input-panel__section .f-cell__content>*{width:100%}:host .input-panel__horizontal-section{display:inline-grid}:host .input-panel .f-cell .f-checkbox .checkbox .checkbox__native-control{height:40px;width:40px}:host .input-panel__label_container{display:flex;flex-direction:column;justify-content:center}:host .input-panel__label_container>.f-cell{flex:1}:host .input-panel__tabs_container{display:flex;flex-direction:column;justify-content:center;gap:2rem}:host .input-panel .f-cell.number-cell .f-cell__content{--kup-textfield-font-family:var(--kup_cell_font_family);font-family:var(--kup_cell_font_family)}:host .input-panel .input-panel-label{display:flex;width:100%;height:100%;align-items:center;justify-content:center}:host .input-panel--absolute{
|
|
66
|
+
const kupInputPanelCss = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:14px;line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:14px;line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}:host{--kup-fcell-width:fit-content;--kup_input_panel_background_color:var(\n --kup-input-panel-background-color,\n var(--kup-layer-0)\n );--kup_input_panel_color:var(\n --kup-input-panel-color,\n var(--kup-text-secondary)\n );--kup_input_panel_font_family:var(\n --kup-input-panel-font-family,\n var(--kup-font-family)\n );--kup_input_panel_font_size:var(\n --kup-input-panel-font-size,\n var(--kup-font-size)\n );--kup_input_panel_label_alignment:var(--kup-input-panel-label-alignment);--kup_input_panel_label_width:var(--kup-input-panel-label-width);--kup_input_panel_padding:var(--kup-input-panel-padding, 1em 0)}:host .input-panel{background:var(--kup_input_panel_background_color);color:var(--kup_input_panel_color);display:flex;flex-grow:1;overflow:auto;padding:var(--kup_input_panel_padding);position:relative;gap:1rem}:host .input-panel__commands{display:flex;gap:2rem}:host .input-panel--column{flex-direction:column}:host .input-panel__section_label_container{display:flex;flex-direction:column;gap:1rem}:host .input-panel__section{display:grid;min-width:0}:host .input-panel__section .f-cell__content>*{width:100%}:host .input-panel__horizontal-section{display:inline-grid}:host .input-panel .f-cell .f-checkbox .checkbox .checkbox__native-control{height:40px;width:40px}:host .input-panel__label_container{display:flex;flex-direction:column;justify-content:center}:host .input-panel__label_container>.f-cell{flex:1}:host .input-panel__tabs_container{display:flex;flex-direction:column;justify-content:center;gap:2rem}:host .input-panel .f-cell.number-cell .f-cell__content{--kup-textfield-font-family:var(--kup_cell_font_family);font-family:var(--kup_cell_font_family)}:host .input-panel .input-panel-label{display:flex;width:100%;height:100%;align-items:center;justify-content:center}:host .input-panel--absolute{justify-content:flex-end}:host .input-panel--absolute .input-panel-label{justify-content:start}:host .input-panel--absolute .mdc-text-field{height:unset !important}";
|
|
67
67
|
const KupInputPanelStyle0 = kupInputPanelCss;
|
|
68
68
|
|
|
69
69
|
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
@@ -245,7 +245,7 @@ const KupInputPanel = class {
|
|
|
245
245
|
index.h("p", null, __classPrivateFieldGet(this, _KupInputPanel_kupManager, "f").language.translate(kupManager.KupLanguageGeneric.EMPTY_DATA)),
|
|
246
246
|
]
|
|
247
247
|
: this.inputPanelCells.map((inputPanelCell) => __classPrivateFieldGet(this, _KupInputPanel_instances, "m", _KupInputPanel_renderRow).call(this, inputPanelCell));
|
|
248
|
-
return (index.h(index.Host, { key: '
|
|
248
|
+
return (index.h(index.Host, { key: 'a2121ccd57daa9cc2698d4916a299dbdac73a2de' }, index.h("style", { key: '7a546f233302d2627e2bf262795ae3cd001b755b' }, __classPrivateFieldGet(this, _KupInputPanel_kupManager, "f").theme.setKupStyle(this.rootElement)), index.h("div", { key: '7393a4a20fcf5d11f4c380b127c173006b28a14a', id: GenericVariables.componentWrapperId }, inputPanelContent)));
|
|
249
249
|
}
|
|
250
250
|
disconnectedCallback() {
|
|
251
251
|
__classPrivateFieldGet(this, _KupInputPanel_kupManager, "f").language.unregister(this);
|
|
@@ -275,6 +275,8 @@ _KupInputPanel_kupManager = new WeakMap(), _KupInputPanel_optionsAdapterMap = ne
|
|
|
275
275
|
else {
|
|
276
276
|
if (layout.absolute) {
|
|
277
277
|
rowContent = __classPrivateFieldGet(this, _KupInputPanel_instances, "m", _KupInputPanel_renderAbsoluteLayout).call(this, inputPanelCell, layout);
|
|
278
|
+
const maxAbsoluteRow = Math.max(...layout.sections.flatMap((sec) => sec.content.map((cont) => cont.absoluteRow || 0)));
|
|
279
|
+
styleObj.height = `${maxAbsoluteRow * ROW_HEIGHT}px`;
|
|
278
280
|
}
|
|
279
281
|
else {
|
|
280
282
|
if (!layout.sectionsType) {
|
|
@@ -340,7 +342,7 @@ _KupInputPanel_kupManager = new WeakMap(), _KupInputPanel_optionsAdapterMap = ne
|
|
|
340
342
|
}, _KupInputPanel_renderButton = function _KupInputPanel_renderButton(cell, cellId) {
|
|
341
343
|
return (index.h(fButton.FButton, Object.assign({ icon: cell.icon, id: cellId }, cell.data, { wrapperClass: "form__submit" })));
|
|
342
344
|
}, _KupInputPanel_renderDropDownButton = function _KupInputPanel_renderDropDownButton(cell, data) {
|
|
343
|
-
return (index.h("kup-dropdown-button", Object.assign({}, cell.data, {
|
|
345
|
+
return (index.h("kup-dropdown-button", Object.assign({}, cell.data, { label: cell.value, data: data, "onkup-dropdownbutton-itemclick": (e) => {
|
|
344
346
|
__classPrivateFieldGet(this, _KupInputPanel_instances, "m", _KupInputPanel_getFunctionOnClickBTN).call(this, e.detail.node, e.detail.node.id);
|
|
345
347
|
} })));
|
|
346
348
|
}, _KupInputPanel_renderEditor = function _KupInputPanel_renderEditor(cell, cellId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"kup-input-panel.entry.cjs.js","mappings":"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","names":["kupManagerInstance","FCellTypes","FCellShapes","getProps","forceUpdate","setProps","FTextFieldMDC","h","KupLanguageGeneric","Host","componentWrapperId","FButton","FCell","KupComponentSizing","FTypography","FTypographyType","CHIAdapter","CMBandACPAdapter","CHKAdapter","RADAdapter","SWTAdapter","KupDebugCategory"],"sources":["src/components/kup-input-panel/kup-input-panel-declarations.ts","src/components/kup-input-panel/kup-input-panel-utils.ts","src/components/kup-input-panel/kup-input-panel.scss?tag=kup-input-panel&encapsulation=shadow","src/components/kup-input-panel/kup-input-panel.tsx"],"sourcesContent":["import { GenericObject } from '../../components';\nimport {\n KupDataCell,\n KupDataColumn,\n KupDataCommand,\n} from '../../managers/kup-data/kup-data-declarations';\nimport { KupObj } from '../../managers/kup-objects/kup-objects-declarations';\n\nexport interface KupInputPanelSubmit {\n value: KupInputPanelSubmitValue;\n cell?: string;\n}\nexport interface KupInputPanelSubmitValue {\n after: KupInputPanelData;\n before: KupInputPanelData;\n}\n\nexport interface KupInputPanelData {\n columns?: KupDataColumn[];\n rows?: KupInputPanelRow[];\n actions?: KupInputPanelAction[];\n setup?: {\n commands?: Array<KupDataCommand>;\n };\n}\n\nexport interface KupInputPanelAction {\n type?: string;\n fun?: string;\n}\n\nexport interface KupInputPanelColumn {\n name: string;\n title: string;\n visible?: boolean;\n}\n\nexport interface KupInputPanelRow {\n cells?: KupInputPanelRowCells;\n layout?: KupInputPanelLayout;\n}\n\nexport interface KupInputPanelRowCells {\n [key: string]: KupInputPanelCell;\n}\n\nexport interface KupInputPanelCell extends KupDataCell {\n options?: GenericObject | GenericObject[];\n editable?: boolean;\n mandatory?: boolean;\n inputSettings?: GenericObject;\n fun?: string;\n}\n\nexport interface KupInputPanelCellOptions {\n id: string;\n label: string;\n}\n\nexport interface KupInputPanelLayout {\n horizontal?: boolean;\n absolute?: boolean;\n sections?: KupInputPanelLayoutSection[];\n sectionsType?: KupInputPanelLayoutSectionType;\n}\n\nexport enum KupInputPanelLayoutSectionType {\n TAB = 'tab',\n}\n\nexport interface KupInputPanelLayoutSection {\n id?: string;\n title?: string;\n icon?: string;\n content?: KupInputPanelLayoutField[];\n sections?: KupInputPanelLayoutSection[];\n dim?: string;\n horizontal?: boolean;\n gridCols?: number;\n gridRows?: number;\n // Gap is in rem\n gap?: number;\n sectionsType?: KupInputPanelLayoutSectionType;\n // absolute Attributes\n absoluteColumn?: number;\n absoluteWidth?: number;\n absoluteRow?: number;\n absoluteHeight?: number;\n}\n\nexport interface KupInputPanelLayoutField {\n id: string;\n // Span is referred to start\n colSpan?: number;\n colStart?: number;\n colEnd?: number;\n // Span is referred to start\n rowSpan?: number;\n rowStart?: number;\n rowEnd?: number;\n // absolute Attributes\n absoluteColumn?: number;\n absoluteRow?: number;\n absoluteLength?: number;\n}\n\nexport type DataAdapterFn = (\n options: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell?: KupInputPanelCell,\n id?: string\n) => Object;\n\nexport type InputPanelCells = {\n cells: { cell: KupDataCell; column: KupDataColumn }[];\n row?: KupInputPanelRow;\n};\n\nexport type InputPanelEvent = {\n state: { cell: KupDataCell; column: KupDataColumn }[];\n data: {\n field: string;\n value: number | string | object;\n };\n};\n\nexport type InputPanelOptionsHandler = (\n fun: string,\n inputValue: string,\n currentState: KupInputPanelData,\n cellId: string\n) => Promise<GenericObject>;\n\nexport type InputPanelCheckValidObjCallback = (event: {\n obj: KupObj;\n currentState: KupInputPanelData;\n fun?: string;\n}) => Promise<ValidCheckObjResponse>;\n\nexport interface ValidCheckObjResponse {\n valid: boolean;\n}\n\nexport type InputPanelButtonClickHandler = (event: {\n fun: string;\n cellId: string;\n currentState: KupInputPanelData;\n}) => void;\n\nexport type InputPanelCheckValidValueCallback = (\n currentState: KupInputPanelSubmitValue,\n cellId: string\n) => void;\n\nexport enum KupInputPanelProps {\n customStyle = 'Custom style of the component.',\n data = 'Actual data of the input panel.',\n hiddenSubmitButton = 'Creates a hidden submit button in order to submit the form with enter.',\n submitCb = 'Sets the callback function on submit form',\n optionsHandler = 'Sets the callback function to recieve options',\n}\n","const CHAR_WIDTH = 12;\nconst ROW_HEIGHT = 22;\n\nexport const getAbsoluteWidth = (length: number) => {\n if (length == 0) {\n return CHAR_WIDTH / 2;\n }\n\n if (!length) {\n return null;\n }\n\n if (length === 1) {\n return 1.5 * CHAR_WIDTH;\n }\n\n return length * CHAR_WIDTH;\n};\n\nexport const getAbsoluteHeight = (height: number) => {\n if (!height) {\n return null;\n }\n\n return height * ROW_HEIGHT;\n};\n\nexport const getAbsoluteTop = (row: number) => {\n if (!row) {\n return null;\n }\n\n return (row - 1) * ROW_HEIGHT;\n};\n\nexport const getAbsoluteLeft = (col: number) => {\n if (!col) {\n return null;\n }\n\n return col * CHAR_WIDTH;\n};\n","/**\n* @prop --kup-input-panel-background-color: Sets background of the component.\n* @prop --kup-input-panel-color: Sets text color of the component.\n* @prop --kup-input-panel-font-family: Sets font family of the component.\n* @prop --kup-input-panel-font-size: Sets font size of the component.\n* @prop --kup-input-panel-label-alignment: Sets the text alignment of labels.\n* @prop --kup-input-panel-label-width: Sets the width of labels.\n* @prop --kup-input-panel-padding: Sets the padding of the input panel.\n*/\n\n:host {\n --kup-fcell-width: fit-content;\n --kup_input_panel_background_color: var(\n --kup-input-panel-background-color,\n var(--kup-layer-0)\n );\n --kup_input_panel_color: var(\n --kup-input-panel-color,\n var(--kup-text-secondary)\n );\n --kup_input_panel_font_family: var(\n --kup-input-panel-font-family,\n var(--kup-font-family)\n );\n --kup_input_panel_font_size: var(\n --kup-input-panel-font-size,\n var(--kup-font-size)\n );\n --kup_input_panel_label_alignment: var(--kup-input-panel-label-alignment);\n --kup_input_panel_label_width: var(--kup-input-panel-label-width);\n --kup_input_panel_padding: var(--kup-input-panel-padding, 1em 0);\n\n .input-panel {\n background: var(--kup_input_panel_background_color);\n color: var(--kup_input_panel_color);\n display: flex;\n flex-grow: 1;\n overflow: auto;\n padding: var(--kup_input_panel_padding);\n position: relative;\n gap: 1rem;\n // width: var(--kup-fcell_width);\n\n &__commands {\n display: flex;\n gap: 2rem;\n }\n\n &--column {\n flex-direction: column;\n }\n\n &__section_label_container {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n\n &__section {\n display: grid;\n min-width: 0;\n\n .f-cell__content {\n > * {\n width: 100%;\n }\n }\n }\n\n &__horizontal-section {\n display: inline-grid;\n }\n\n .f-cell .f-checkbox .checkbox .checkbox__native-control {\n height: 40px;\n width: 40px;\n }\n\n &__label_container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n > .f-cell {\n flex: 1;\n }\n }\n\n &__tabs_container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 2rem;\n }\n\n .f-cell.number-cell {\n .f-cell__content {\n --kup-textfield-font-family: var(--kup_cell_font_family);\n\n font-family: var(--kup_cell_font_family);\n }\n }\n\n .input-panel-label {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n }\n\n &--absolute {\n // TODO: calc the height dynamically\n height: 40ch;\n justify-content: flex-end;\n\n .input-panel-label {\n justify-content: start;\n }\n\n .mdc-text-field {\n height: unset !important;\n }\n }\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n VNode,\n Watch,\n forceUpdate,\n h,\n} from '@stencil/core';\nimport {\n KupAutocompleteEventPayload,\n KupComboboxIconClickEventPayload,\n KupDataCell,\n KupDataTableDataset,\n KupDataTableRow,\n KupDropdownButtonEventPayload,\n KupEditorEventPayload,\n KupTabBarEventPayload,\n KupTabBarNode,\n} from '../../components';\nimport { FButton } from '../../f-components/f-button/f-button';\nimport { FCell } from '../../f-components/f-cell/f-cell';\nimport {\n FCellProps,\n FCellShapes,\n FCellTypes,\n} from '../../f-components/f-cell/f-cell-declarations';\nimport { FTextFieldMDC } from '../../f-components/f-text-field/f-text-field-mdc';\nimport { KupDebugCategory } from '../../managers/kup-debug/kup-debug-declarations';\nimport { KupLanguageGeneric } from '../../managers/kup-language/kup-language-declarations';\nimport {\n KupManager,\n kupManagerInstance,\n} from '../../managers/kup-manager/kup-manager';\nimport { KupDom } from '../../managers/kup-manager/kup-manager-declarations';\nimport { FTypographyType } from '../../f-components/f-typography/f-typography-declarations';\nimport {\n GenericObject,\n KupComponent,\n KupComponentSizing,\n KupEventPayload,\n} from '../../types/GenericTypes';\nimport {\n CHIAdapter,\n CHKAdapter,\n CMBandACPAdapter,\n RADAdapter,\n SWTAdapter,\n} from '../../utils/cell-utils';\nimport { getProps, setProps } from '../../utils/utils';\nimport { componentWrapperId } from '../../variables/GenericVariables';\nimport {\n DataAdapterFn,\n InputPanelButtonClickHandler,\n InputPanelCells,\n InputPanelCheckValidObjCallback,\n InputPanelCheckValidValueCallback,\n InputPanelOptionsHandler,\n KupInputPanelCell,\n KupInputPanelColumn,\n KupInputPanelData,\n KupInputPanelLayout,\n KupInputPanelLayoutField,\n KupInputPanelLayoutSection,\n KupInputPanelLayoutSectionType,\n KupInputPanelProps,\n KupInputPanelRow,\n KupInputPanelSubmit,\n} from './kup-input-panel-declarations';\nimport {\n getAbsoluteHeight,\n getAbsoluteLeft,\n getAbsoluteTop,\n getAbsoluteWidth,\n} from './kup-input-panel-utils';\nimport { FTypography } from '../../f-components/f-typography/f-typography';\nimport { KupTypographyList } from '../kup-typography-list/kup-typography-list';\n\nconst dom: KupDom = document.documentElement as KupDom;\n@Component({\n tag: 'kup-input-panel',\n styleUrl: 'kup-input-panel.scss',\n shadow: true,\n})\nexport class KupInputPanel {\n /**\n * References the root HTML element of the component (<kup-form>).\n */\n @Element() rootElement: HTMLElement;\n\n //#region PROPS\n /*-------------------------------------------------*/\n /* P r o p s */\n /*-------------------------------------------------*/\n\n /**\n * Custom style of the component.\n * @default \"\"\n * @see https://smeup.github.io/ketchup/#/customization\n */\n @Prop() customStyle: string = '';\n\n /**\n * Actual data of the form.\n * @default null\n */\n @Prop() data: KupInputPanelData = null;\n\n /**\n * Creates a hidden submit button in order to submit the form with enter.\n * @default false\n */\n @Prop() hiddenSubmitButton: boolean = false;\n\n /**\n * Sets the callback function on submit form\n * @default null\n */\n @Prop() submitCb: (e: KupInputPanelSubmit) => unknown = null;\n\n /**\n * Sets the callback function on loading options via FUN\n * @default null\n */\n @Prop() optionsHandler: InputPanelOptionsHandler = null;\n\n /**\n * Sets the handler to use when click on custom buttons\n * @default null\n */\n @Prop() customButtonClickHandler?: InputPanelButtonClickHandler = null;\n\n /**\n * Sets the callback for valid the object when cell checkObject is true\n * @default null\n */\n @Prop() checkValidObjCallback?: InputPanelCheckValidObjCallback = null;\n\n /**\n * Sets the callback for valid the object when cell checkObject is true\n * @default null\n */\n @Prop() checkValidValueCallback?: InputPanelCheckValidValueCallback = null;\n //#endregion\n\n /**\n * Sets verical layout if dashboardMode is true\n * @default false\n */\n @Prop() dashboardMode: boolean = false;\n //#endregion\n\n //#region STATES\n /*-------------------------------------------------*/\n /* S t a t e s */\n /*-------------------------------------------------*/\n\n /**\n * Values to send as props to FCell\n * @default []\n */\n @State() private inputPanelCells: InputPanelCells[] = [];\n\n /**\n * Values to send as props to FCell\n * @default []\n */\n @State() private inputPanelCommands: VNode[] = [];\n\n /**\n * Id of selected tab if exists\n * @default null\n */\n @State() private tabSelected: string = null;\n //#endregion\n\n //#region VARIABLES\n /*-------------------------------------------------*/\n /* I n t e r n a l V a r i a b l e s */\n /*-------------------------------------------------*/\n\n #kupManager: KupManager = kupManagerInstance();\n\n #optionsAdapterMap = new Map<\n string,\n (options: any, currentValue: string) => GenericObject[]\n >([\n ['SmeupTreeNode', this.#treeOptionsNodeAdapter.bind(this)],\n ['SmeupDataTree', this.#dataTreeOptionsChildrenAdapter.bind(this)],\n ['SmeupTable', this.#tableOptionsAdapter.bind(this)],\n ['SmeupDataTable', this.#tableOptionsAdapter.bind(this)],\n ]);\n\n #originalData: KupInputPanelData = null;\n\n #eventNames = new Map<FCellTypes, string[]>([\n [\n FCellTypes.AUTOCOMPLETE,\n ['kup-autocomplete-input', 'kup-autocomplete-iconclick'],\n ],\n [\n FCellTypes.MULTI_AUTOCOMPLETE,\n ['kup-autocomplete-input', 'kup-autocomplete-iconclick'],\n ],\n [FCellTypes.COMBOBOX, ['kup-combobox-iconclick', 'kup-combobox-blur']],\n [FCellTypes.MULTI_COMBOBOX, ['kup-combobox-iconclick']],\n ]);\n\n #eventBlurNames = new Map<FCellShapes, string>([\n [FCellShapes.AUTOCOMPLETE, 'kup-autocomplete-blur'],\n [FCellShapes.CHIP, 'kup-textfield-blur'],\n [FCellShapes.COMBOBOX, 'kup-combobox-blur'],\n [FCellShapes.DATE, 'kup-datepicker-blur'],\n [FCellShapes.MULTI_AUTOCOMPLETE, 'kup-autocomplete-blur'],\n [FCellShapes.MULTI_COMBOBOX, 'kup-combobox-blur'],\n [FCellShapes.TIME, 'kup-timepicker-blur'],\n ]);\n\n #listeners: { event: string; handler: (e) => void }[] = [];\n #cellTypeComponents: Map<FCellTypes, string> = new Map<FCellTypes, string>([\n [FCellTypes.DATE, 'kup-date-picker'],\n [FCellTypes.TIME, 'kup-time-picker'],\n ]);\n #cellCustomRender: Map<\n FCellShapes,\n (cell: KupDataCell, cellId: string) => any\n > = new Map<FCellShapes, (cell: KupDataCell, cellId: string) => any>([\n [FCellShapes.BUTTON_LIST, this.#renderButton.bind(this)],\n [FCellShapes.EDITOR, this.#renderEditor.bind(this)],\n [FCellShapes.LABEL, this.#renderLabel.bind(this)],\n [FCellShapes.TABLE, this.#renderDataTable.bind(this)],\n ]);\n #sectionRenderMap: Map<\n KupInputPanelLayoutSectionType,\n (cells: InputPanelCells, sections: KupInputPanelLayoutSection[]) => any\n > = new Map<\n KupInputPanelLayoutSectionType,\n (cells: InputPanelCells, sections: KupInputPanelLayoutSection[]) => any\n >([\n [KupInputPanelLayoutSectionType.TAB, this.#renderSectionTab.bind(this)],\n ]);\n #keysShortcut: string[] = [];\n //#endregion\n\n //#region WATCHERS\n /*-------------------------------------------------*/\n /* W a t c h e r s */\n /*-------------------------------------------------*/\n\n @Watch('data')\n onDataChanged() {\n this.#originalData = structuredClone(this.data);\n if (this.#listeners.length) {\n this.#listeners.map(({ event, handler }) => {\n this.rootElement.removeEventListener(event, handler);\n });\n this.#listeners = [];\n }\n\n if (this.#keysShortcut.length) {\n this.#keysShortcut.map((key) => {\n this.#kupManager.keysBinding.unregister(key);\n });\n this.#keysShortcut = [];\n }\n this.#mapCells(this.data);\n }\n //#endregion\n\n //#region PUBLIC METHODS\n /*-------------------------------------------------*/\n /* P u b l i c M e t h o d s */\n /*-------------------------------------------------*/\n\n /**\n * Used to retrieve component's props values.\n * @param {boolean} descriptions - When provided and true, the result will be the list of props with their description.\n * @returns {Promise<GenericObject>} List of props as object, each key will be a prop.\n */\n @Method()\n async getProps(descriptions?: boolean): Promise<GenericObject> {\n return getProps(this, KupInputPanelProps, descriptions);\n }\n /**\n * This method is used to trigger a new render of the component.\n */\n @Method()\n async refresh(): Promise<void> {\n forceUpdate(this);\n }\n /**\n * Sets the props to the component.\n * @param {GenericObject} props - Object containing props that will be set to the component.\n */\n @Method()\n async setProps(props: GenericObject): Promise<void> {\n setProps(this, KupInputPanelProps, props);\n }\n //#endregion\n\n //#region EVENTS\n /*-------------------------------------------------*/\n /* Events */\n /*-------------------------------------------------*/\n\n /**\n * When component load is complete\n */\n @Event({\n eventName: 'kup-input-panel-ready',\n composed: true,\n cancelable: false,\n bubbles: true,\n })\n kupReady: EventEmitter<KupEventPayload>;\n //#endregion\n\n //#region PRIVATE METHODS\n /*-------------------------------------------------*/\n /* P r i v a t e M e t h o d s */\n /*-------------------------------------------------*/\n\n #getCell(id: string) {\n return this.inputPanelCells.reduce<KupDataCell>((cell, { cells }) => {\n if (!cell) {\n return cells.find(({ column }) => column.name === id).cell;\n }\n return cell;\n }, null);\n }\n\n #renderRow(inputPanelCell: InputPanelCells) {\n const layout = inputPanelCell.row.layout;\n\n const horizontal = layout?.horizontal || false;\n const styleObj: GenericObject = {};\n\n let rowContent: VNode[];\n\n if (!layout?.sections?.length) {\n rowContent = inputPanelCell.cells.map((cell) =>\n this.#renderCell(cell.cell, inputPanelCell.row, cell.column)\n );\n } else {\n if (layout.absolute) {\n rowContent = this.#renderAbsoluteLayout(inputPanelCell, layout);\n } else {\n if (!layout.sectionsType) {\n const hasDim = layout.sections.some((sec) => sec.dim);\n styleObj.display = 'grid';\n\n if (layout.horizontal) {\n styleObj.gridTemplateColumns = hasDim\n ? layout.sections\n .map((sec) => sec.dim || 'auto')\n .join(' ')\n : `repeat(${layout.sections.length}, 1fr)`;\n } else {\n if (this.dashboardMode) {\n styleObj.gridTemplateRows = hasDim\n ? layout.sections\n .map((sec) => sec.dim || 'auto')\n .join(' ')\n : `repeat(${layout.sections.length}, 1fr)`;\n }\n }\n }\n\n rowContent = this.#renderGridLayout(inputPanelCell, layout);\n }\n }\n\n const classObj = {\n 'input-panel': true,\n 'input-panel--column': !horizontal,\n 'input-panel--absolute': layout?.absolute,\n };\n\n // We create a form for each row in data\n return (\n <form\n name={this.rootElement.id}\n id={this.rootElement.id}\n class={{ 'input-panel-form': true }}\n onSubmit={(e: SubmitEvent) => {\n e.preventDefault();\n this.submitCb({\n value: {\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n },\n });\n }}\n >\n <div class={classObj} style={styleObj}>\n {rowContent}\n </div>\n <div class=\"input-panel__commands\">\n {!this.hiddenSubmitButton ? (\n <FButton\n buttonType=\"submit\"\n label={this.#kupManager.language.translate(\n KupLanguageGeneric.CONFIRM\n )}\n wrapperClass=\"form__submit\"\n ></FButton>\n ) : null}\n {this.inputPanelCommands}\n </div>\n </form>\n );\n }\n\n #renderCell(\n cell: KupDataCell,\n row: KupInputPanelRow,\n column: KupInputPanelColumn\n ) {\n if (!cell) {\n return;\n }\n\n const customRender = this.#cellCustomRender.get(cell.shape);\n\n if (customRender !== undefined) {\n return customRender(cell, column.name);\n }\n\n const cellProps: FCellProps = {\n cell,\n column,\n row,\n component: this,\n editable: true,\n renderKup: true,\n setSizes: true,\n };\n\n const label = this.#getLabelComponent(cell, column.title);\n\n if (label) {\n return (\n <div class={{ 'input-panel__label_container': true }}>\n {label}\n <FCell {...cellProps} />\n </div>\n );\n }\n\n return <FCell {...cellProps} />;\n }\n\n #renderButton(cell: KupDataCell, cellId: string) {\n return (\n <FButton\n icon={cell.icon}\n id={cellId}\n {...cell.data}\n wrapperClass=\"form__submit\"\n ></FButton>\n );\n }\n\n #renderDropDownButton(cell: KupDataCell, data: GenericObject) {\n return (\n <kup-dropdown-button\n {...cell.data}\n sizing={KupComponentSizing.SMALL}\n label={cell.value}\n data={data}\n onkup-dropdownbutton-itemclick={(\n e: CustomEvent<KupDropdownButtonEventPayload>\n ) => {\n this.#getFunctionOnClickBTN(\n e.detail.node,\n e.detail.node.id\n );\n }}\n ></kup-dropdown-button>\n );\n }\n\n #renderEditor(cell: KupDataCell, cellId: string) {\n const event = 'kup-editor-save';\n const handler = (e: CustomEvent<KupEditorEventPayload>) => {\n const edtCell: KupDataCell =\n this.inputPanelCells.reduce<KupDataCell>((cell, { cells }) => {\n if (!cell) {\n return cells.find(\n ({ column }) => column.name === cellId\n ).cell;\n }\n return cell;\n }, null);\n edtCell.value = e.detail.htmlValue.replace(/\\n/g, '<br>');\n };\n\n this.rootElement.addEventListener(event, handler);\n\n this.#listeners.push({\n event,\n handler,\n });\n\n return (\n <kup-editor\n {...cell.data}\n id={cellId}\n isReadOnly={!cell.isEditable}\n showToolbar={true}\n ></kup-editor>\n );\n }\n\n #renderDataTable(cell: KupDataCell, cellId: string) {\n return (\n <kup-data-table\n id={cellId}\n editableData={true}\n showGroups={true}\n showFilters={true}\n showFooter={true}\n {...cell.data}\n ></kup-data-table>\n );\n }\n\n #renderLabel(cell: KupDataCell, cellId: string) {\n return (\n <span class=\"input-panel-label\" id={cellId}>\n {cell.value}\n </span>\n );\n }\n\n #getLabelComponent(cell: KupDataCell, label: string) {\n if (!label) {\n return null;\n }\n\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n\n if (cellType === FCellTypes.RADIO) {\n return <span>{label}</span>;\n }\n\n return null;\n }\n\n #renderGridLayout(\n inputPanelCell: InputPanelCells,\n layout: KupInputPanelLayout\n ) {\n const sectionRender = this.#sectionRenderMap.get(layout.sectionsType);\n\n return sectionRender\n ? sectionRender(inputPanelCell, layout.sections)\n : layout.sections.map((section) =>\n this.#renderSection(inputPanelCell, section)\n );\n }\n\n #renderAbsoluteLayout(\n inputPanelCell: InputPanelCells,\n layout: KupInputPanelLayout\n ) {\n return layout.sections.map((section) =>\n this.#renderAbsoluteSection(inputPanelCell, section)\n );\n }\n\n #renderSection(\n cells: InputPanelCells,\n section: KupInputPanelLayoutSection,\n customLabelRender: boolean = false,\n styleObj: GenericObject = {}\n ) {\n const classObj = {\n 'input-panel__section': !section.horizontal,\n 'input-panel__horizontal-section': section.horizontal,\n };\n\n styleObj.gap = +section.gap > 0 ? `${section.gap}rem` : '1rem';\n\n let content = [];\n\n if (section.sections?.length) {\n content = section.sections.map((innerSection) =>\n this.#renderSection(cells, innerSection)\n );\n\n const hasDim = section.sections.some((sec) => sec.dim);\n\n if (!section.gridCols && section.horizontal) {\n styleObj.gridTemplateColumns = hasDim\n ? section.sections.map((sec) => sec.dim || 'auto').join(' ')\n : `repeat(${section.sections.length}, 1fr)`;\n }\n\n if (\n !section.gridRows &&\n !section.horizontal &&\n this.dashboardMode\n ) {\n styleObj.gridTemplateRows = hasDim\n ? section.sections.map((sec) => sec.dim || 'auto').join(' ')\n : `repeat(${section.sections.length}, 1fr)`;\n }\n } else if (section.content?.length) {\n content = section.content.map((field) =>\n this.#renderField(cells, field)\n );\n styleObj.gridTemplateColumns =\n +section.gridCols > 0 ? `repeat(${section.gridCols}, 1fr)` : '';\n if (this.dashboardMode) {\n styleObj.gridTemplateRows =\n +section.gridRows > 0\n ? `repeat(${section.gridRows}, 1fr)`\n : '';\n }\n }\n\n const sectionContent = (\n <div class={classObj} style={styleObj}>\n {content}\n </div>\n );\n\n return section.title && !customLabelRender ? (\n <div class={{ 'input-panel__section_label_container': true }}>\n <FTypography\n type={FTypographyType.HEADING1}\n value={section.title}\n ></FTypography>\n {sectionContent}\n </div>\n ) : (\n sectionContent\n );\n }\n\n #renderAbsoluteSection(\n cells: InputPanelCells,\n section: KupInputPanelLayoutSection\n ) {\n let content = [];\n\n if (section.sections?.length) {\n content = section.sections.map((innerSection) =>\n this.#renderAbsoluteSection(cells, innerSection)\n );\n } else if (section.content?.length) {\n content = section.content.map((field) =>\n this.#renderAbsoluteField(cells, field)\n );\n }\n\n //If width is not specified the div in the return at the end can be removed\n if (getAbsoluteWidth(section.absoluteWidth) == null) {\n return content;\n }\n\n const width = `${\n getAbsoluteWidth(section.absoluteWidth) != null\n ? `${getAbsoluteWidth(section.absoluteWidth)}px`\n : '100%'\n }`;\n const height = `${\n getAbsoluteHeight(section.absoluteHeight) != null\n ? `${getAbsoluteHeight(section.absoluteHeight)}px`\n : '100%'\n }`;\n const top = `${getAbsoluteTop(section.absoluteRow)}px`;\n const left = `${getAbsoluteLeft(section.absoluteColumn)}px`;\n\n const sectionStyle = {\n position: 'relative',\n width,\n 'min-width': width,\n 'max-width': width,\n height,\n 'min-height': height,\n 'max-height': height,\n top,\n left,\n overflow: 'auto',\n };\n\n return <div style={sectionStyle}>{content}</div>;\n }\n\n #extractContentIds(node: KupInputPanelLayoutSection) {\n let ids: string[] = [];\n\n if (node.content?.length) {\n node.content.forEach((item) => {\n if (item.id) {\n ids.push(item.id);\n }\n });\n }\n\n if (node.sections?.length) {\n node.sections.forEach((section) => {\n ids = ids.concat(this.#extractContentIds(section));\n });\n }\n\n return ids;\n }\n\n #renderSectionTab(\n cells: InputPanelCells,\n sections: KupInputPanelLayoutSection[]\n ) {\n if (!this.tabSelected) {\n this.tabSelected = sections[0].id || '0';\n }\n\n const tabNodes: KupTabBarNode[] = sections.map((section, i) => {\n const cellIdsInSection = this.#extractContentIds(section);\n\n const hasError = cells.cells.some((cellData) => {\n const cell = cellData.cell;\n const column = cellData.column;\n return (\n cellIdsInSection.includes(column.name) && !!cell.data?.error\n );\n });\n\n return {\n active: (section.id || `${i}`) === this.tabSelected,\n value: section.title,\n icon: hasError ? 'error' : section.icon,\n id: section.id || `${i}`,\n danger: hasError,\n };\n });\n\n const sectionContent = sections.map((section, i) => {\n const sectionId = section.id || `${i}`;\n return this.#renderSection(cells, section, true, {\n display: this.tabSelected !== sectionId ? 'none' : 'grid',\n });\n });\n\n const tabCustomStyle =\n '.tab-bar .tab-scroller .tab .tab__content { justify-content: flex-start; }';\n\n if (!this.#listeners.map((l) => l.event).includes('kup-tabbar-click')) {\n const event = 'kup-tabbar-click';\n const handler = (e: CustomEvent<KupTabBarEventPayload>) => {\n this.tabSelected = e.detail.node.id;\n };\n\n this.rootElement.addEventListener(event, handler);\n this.#listeners.push({\n event,\n handler,\n });\n }\n\n return (\n <div class={{ 'input-panel__tabs_container': true }}>\n <kup-tab-bar\n data={tabNodes}\n customStyle={tabCustomStyle}\n ></kup-tab-bar>\n {sectionContent}\n </div>\n );\n }\n\n #renderField(cells: InputPanelCells, field: KupInputPanelLayoutField) {\n const fieldCell = cells.cells.find(\n (cell) => cell.column.name === field.id\n );\n\n const colSpan =\n +field.colSpan > 0\n ? field.colSpan\n : !(+field.colSpan > 0) && !(+field.colStart > 0)\n ? 1\n : null;\n\n const colStart = colSpan ? `span ${colSpan}` : `${field.colStart}`;\n\n const colEnd = +field.colEnd > 0 ? `${field.colEnd}` : '';\n\n const rowSpan =\n +field.rowSpan > 0\n ? field.rowSpan\n : !(+field.rowSpan > 0) && !(+field.rowStart > 0)\n ? 1\n : null;\n\n const rowStart = rowSpan ? `span ${rowSpan}` : `${field.rowStart}`;\n\n const rowEnd = +field.rowEnd > 0 ? `${field.rowEnd}` : '';\n\n const styleObj = {\n 'min-width': '0',\n 'grid-column-start': colStart,\n 'grid-column-end': colEnd,\n 'grid-row-start': rowStart,\n 'grid-row-end': rowEnd,\n };\n\n if (!fieldCell || !fieldCell.cell) {\n return;\n }\n\n return (\n <div style={styleObj}>\n {this.#renderCell(fieldCell.cell, cells.row, fieldCell.column)}\n </div>\n );\n }\n\n #renderAbsoluteField(\n cells: InputPanelCells,\n field: KupInputPanelLayoutField\n ) {\n const fieldCell = cells.cells.find(\n (cell) => cell.column.name === field.id\n );\n if (!fieldCell || !fieldCell.cell) {\n return;\n }\n\n let length: number;\n if (fieldCell.cell.shape == FCellShapes.DATE) {\n length = field.absoluteLength > 8 ? field.absoluteLength : 8;\n } else {\n length = field.absoluteLength;\n }\n\n const width = `${getAbsoluteWidth(length)}px`;\n const height = `${getAbsoluteHeight(1)}px`;\n const top = `${getAbsoluteTop(field.absoluteRow)}px`;\n const left = `${getAbsoluteLeft(field.absoluteColumn)}px`;\n\n const styleObj = {\n position: 'absolute',\n width,\n 'min-width': width,\n 'max-width': width,\n height,\n 'min-height': height,\n 'max-height': height,\n top,\n left,\n overflow: 'auto',\n };\n\n fieldCell.cell.data = {\n ...fieldCell.cell.data,\n sizing: 'extra-small',\n customStyle:\n (fieldCell.cell.data.customStyle || '') +\n '.mdc-text-field {height: unset !important;}',\n };\n\n return (\n <div style={styleObj}>\n {this.#renderCell(fieldCell.cell, cells.row, fieldCell.column)}\n </div>\n );\n }\n\n #mapCommands() {\n this.inputPanelCommands = this.data.setup.commands\n .map((commandObj) => {\n if (commandObj?.children && commandObj?.children.length > 0) {\n const data = {\n 'kup-list': {\n showIcons: true,\n data: commandObj.children.map((c) =>\n this.#commandAdapter(c)\n ),\n },\n };\n return this.#renderDropDownButton(commandObj, data);\n } else {\n const buttonCell = this.#commandAdapter(commandObj);\n return this.#renderButton(buttonCell, commandObj.value);\n }\n })\n .flat();\n }\n\n #mapCells(data: KupInputPanelData) {\n if (data.setup?.commands?.length) {\n this.#mapCommands();\n }\n\n const layout = data?.rows[0]?.layout;\n const inpuPanelCells = data?.rows?.length\n ? data.rows.reduce((inpuPanelCells, row) => {\n const cells = data.columns\n .filter((column) => column.visible)\n .map((column) => {\n const cell = structuredClone(row.cells[column.name]);\n const mappedCell = cell\n ? {\n ...cell,\n data: this.#setData(cell, column, layout),\n slotData: this.#slotData(cell, column),\n isEditable: true,\n }\n : null;\n return { column, cell: mappedCell };\n });\n return [...inpuPanelCells, { cells, row }];\n }, [])\n : [];\n inpuPanelCells.map(({ cells }: InputPanelCells) =>\n cells.map(({ cell, column }) => {\n const cellType = dom.ketchup.data.cell.getType(\n cell,\n cell.shape\n );\n const componentQuery = this.#cellTypeComponents.get(cellType);\n if (!componentQuery) {\n return;\n }\n\n const el: any = this.rootElement.shadowRoot.querySelector(\n `${componentQuery}[id=${column.name.replace(\n /\\//g,\n '\\\\$1'\n )}]`\n );\n\n el?.setValue(cell.value);\n })\n );\n\n this.inputPanelCells = inpuPanelCells;\n }\n\n #setData(\n cell: KupInputPanelCell,\n column: KupInputPanelColumn,\n layout?: KupInputPanelLayout\n ) {\n const defaultProps = {\n ...this.#mapData(cell, column, layout),\n disabled: !cell.editable,\n id: column.name,\n };\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n const { data, ...noDataProps } = cell.data || {};\n\n return cellType !== FCellTypes.MULTI_AUTOCOMPLETE &&\n cellType !== FCellTypes.MULTI_COMBOBOX\n ? this.#deepObjectsMerge(defaultProps, {\n ...cell.data,\n })\n : // Add and ovverride defaultProps of Chip host component except data\n {\n ...defaultProps,\n ...noDataProps,\n };\n }\n\n #deepObjectsMerge(target: GenericObject, source: GenericObject) {\n for (const key in source) {\n if (\n source[key] instanceof Object &&\n !Array.isArray(source[key]) &&\n key in target\n ) {\n target[key] = this.#deepObjectsMerge(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n }\n return target;\n }\n\n #reverseMapCells(): KupInputPanelData {\n return this.inputPanelCells.reduce(\n (data, curr) => {\n const updatedCells = Object.keys(curr.row.cells).reduce(\n (cells, key) => {\n const cellState = curr.cells.find(\n (c) => c.column.name === key\n )?.cell;\n\n let value: any = cellState?.value;\n\n if (cellState?.shape === FCellShapes.TABLE) {\n value = JSON.stringify(\n this.#getTableUpdatedCell(\n cellState.data.data,\n key\n )\n );\n }\n\n return {\n ...cells,\n [key]: {\n ...curr.row.cells[key],\n value,\n obj: cellState?.obj,\n },\n };\n },\n {}\n );\n\n return {\n columns: [\n ...data.columns,\n ...curr.cells.map((cell) => cell.column),\n ],\n rows: [\n ...data.rows,\n {\n cells: updatedCells,\n layout: curr.row.layout,\n },\n ],\n };\n },\n {\n columns: [],\n rows: [],\n }\n );\n }\n\n #mapData(\n cell: KupInputPanelCell,\n col: KupInputPanelColumn,\n layout?: KupInputPanelLayout\n ) {\n if (!cell) {\n return null;\n }\n\n const options = cell.options;\n let fieldLabel: string;\n if (layout?.absolute) {\n fieldLabel = null;\n } else {\n fieldLabel = col.title;\n }\n const currentValue = cell.value;\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n\n const dataAdapterMap = new Map<FCellTypes, DataAdapterFn>([\n [FCellTypes.AUTOCOMPLETE, this.#CMBandACPAdapter.bind(this)],\n [FCellTypes.BUTTON_LIST, this.#BTNAdapter.bind(this)],\n [FCellTypes.CHART, this.#GRAAdapter.bind(this)],\n [FCellTypes.CHIP, this.#CHIAdapter.bind(this)],\n [FCellTypes.CHECKBOX, this.#CHKAdapter.bind(this)],\n [FCellTypes.COLOR_PICKER, this.#CLPAdapter.bind(this)],\n [FCellTypes.COMBOBOX, this.#CMBandACPAdapter.bind(this)],\n [FCellTypes.EDITOR, this.#EDTAdapter.bind(this)],\n [FCellTypes.MULTI_AUTOCOMPLETE, this.#CHIAdapter.bind(this)],\n [FCellTypes.MULTI_COMBOBOX, this.#CHIAdapter.bind(this)],\n [FCellTypes.NUMBER, this.#NumberAdapter.bind(this)],\n [FCellTypes.DATE, this.#DateAdapter.bind(this)],\n [FCellTypes.OBJECT, this.#ObjectAdapter.bind(this)],\n [FCellTypes.RADIO, this.#RADAdapter.bind(this)],\n [FCellTypes.STRING, this.#ITXAdapter.bind(this)],\n [FCellTypes.SWITCH, this.#SWTAdapter.bind(this)],\n [FCellTypes.TABLE, this.#DataTableAdapter.bind(this)],\n [FCellTypes.TIME, this.#TimeAdapter.bind(this)],\n ]);\n\n const adapter = dataAdapterMap.get(cellType);\n\n return adapter\n ? adapter(options, fieldLabel, currentValue, cell, col.name)\n : null;\n }\n\n #slotData(cell: KupInputPanelCell, col: KupInputPanelColumn) {\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n\n if (!cell.editable) {\n return null;\n }\n\n if (cellType === FCellTypes.CHIP) {\n return {\n trailingIcon: true,\n label: col.title,\n disabled: !cell.editable,\n id: col.name,\n fullWidth: false,\n };\n }\n\n if (\n cellType === FCellTypes.MULTI_AUTOCOMPLETE ||\n cellType === FCellTypes.MULTI_COMBOBOX\n ) {\n return {\n ...this.#CMBandACPAdapter(\n cell.options,\n col.title,\n null,\n cell,\n col.name\n ),\n showDropDownIcon: true,\n class: '',\n style: { width: '100%' },\n disabled: !cell.editable,\n id: col.name,\n sizing: KupComponentSizing.EXTRA_SMALL,\n };\n }\n\n return null;\n }\n\n #CHIAdapter(\n _options: GenericObject,\n _fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n this.#checkOnBlurEvent(cell, id);\n }\n\n return CHIAdapter(currentValue);\n }\n\n #GRAAdapter() {\n //TODO: definire mapping\n return {\n data: {\n sizeX: '50px',\n offlineMode: {\n value: '8;4;5',\n },\n id: 'i1012_GREF_0',\n cellId: 'i1012_GREF_0',\n sizeY: '50px',\n },\n };\n }\n\n #BTNAdapter(\n _options: GenericObject,\n _fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n cell.data = cell.data || {};\n\n cell.data.onClick = () => {\n this.#getFunctionOnClickBTN(cell, id);\n };\n\n if (cell.data?.keyShortcut && !cell.data?.disabled) {\n this.#keysShortcut.push(cell.data?.keyShortcut);\n this.#kupManager.keysBinding.register(\n cell.data?.keyShortcut,\n cell.data.onClick.bind(this)\n );\n }\n\n return {\n label: cell.value,\n fun: cell.fun,\n ...cell.data,\n };\n }\n\n #CMBandACPAdapter(\n rawOptions: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n const configCMandACP = CMBandACPAdapter(currentValue, fieldLabel, []);\n\n if (cell.fun) {\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n\n const evNames = this.#eventNames.get(cellType);\n\n if (!evNames) {\n return;\n }\n\n evNames.map((evName) => {\n const handler = (\n e: CustomEvent<KupAutocompleteEventPayload>\n ) => {\n this.#getAutocompleteEventCallback(\n e.detail,\n cell.fun,\n configCMandACP,\n id,\n currentValue\n );\n };\n this.rootElement.addEventListener(evName, handler);\n this.#listeners.push({\n event: evName,\n handler,\n });\n });\n } else if (rawOptions) {\n configCMandACP.data['kup-list'].data =\n this.#optionsTreeComboAdapter(rawOptions, currentValue);\n }\n\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n this.#checkOnBlurEvent(cell, id);\n }\n\n return configCMandACP;\n }\n\n #CHKAdapter(\n _options: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n let data = CHKAdapter(currentValue, fieldLabel);\n\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n ...data,\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n\n return data;\n }\n\n #CLPAdapter(\n _options: GenericObject,\n fieldLabel: string,\n _currentValue: string\n ) {\n return {\n data: {\n 'kup-text-field': {\n label: fieldLabel,\n },\n },\n };\n }\n\n #EDTAdapter(\n _options: GenericObject,\n _fieldLabel: string,\n currentValue: string\n ) {\n return {\n initialValue: currentValue,\n };\n }\n\n #ITXAdapter(\n _options: GenericObject,\n fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n label: fieldLabel,\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n return { label: fieldLabel };\n }\n\n #RADAdapter(\n options: GenericObject,\n _fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n let data = RADAdapter(currentValue, options);\n\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n ...data,\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n\n return data;\n }\n\n #SWTAdapter(\n _options: GenericObject,\n fieldLabel: string,\n currentValue: string\n ) {\n return SWTAdapter(currentValue, fieldLabel);\n }\n\n #DateAdapter(\n _options: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n this.#checkOnBlurEvent(cell, id);\n }\n\n return {\n data: {\n 'kup-text-field': {\n label: fieldLabel,\n },\n },\n initialValue: currentValue,\n };\n }\n\n #ObjectAdapter(\n _options: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n initialValue: currentValue || '',\n label: fieldLabel || ' ',\n value: currentValue || '',\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n\n return {\n initialValue: currentValue || '',\n label: fieldLabel || ' ',\n value: currentValue || '',\n };\n }\n\n #TimeAdapter(\n _options: GenericObject,\n fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n this.#checkOnBlurEvent(cell, id);\n }\n return {\n data: {\n 'kup-text-field': {\n label: fieldLabel,\n },\n },\n };\n }\n\n #NumberAdapter(\n _options: GenericObject,\n fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n label: fieldLabel,\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n return { label: fieldLabel };\n }\n\n #DataTableAdapter(\n _rawOptions: GenericObject,\n _fieldLabel: string,\n _value: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n try {\n let data = JSON.parse(cell.value);\n\n if (!data) {\n this.#kupManager.debug.logMessage(\n this,\n `Empty value for ${id} cell.`,\n KupDebugCategory.WARNING\n );\n return null;\n }\n\n if ((data as any).type !== 'SmeupDataTable') {\n this.#kupManager.debug.logMessage(\n this,\n `Wrong data table type for ${id} cell. Type \\`SmeupDataTable\\` in value expected`,\n KupDebugCategory.ERROR\n );\n return null;\n }\n\n return {\n data: {\n columns: data.columns.map((col) => ({\n ...col,\n obj: data.rows[0].cells[col.name].obj,\n })),\n rows: data.rows.map((row) => ({\n ...row,\n cells: Object.keys(row.cells).reduce((cell, key) => {\n const column = data.columns.find(\n (col) => col.name === key\n );\n return {\n ...cell,\n [key]: {\n ...row.cells[key],\n data: {\n ...this.#mapData(\n row.cells[key],\n column\n ),\n disabled:\n row.cells[key].editable === false,\n id: column.id,\n },\n },\n };\n }, {}),\n })),\n },\n };\n } catch (e) {\n this.#kupManager.debug.logMessage(\n this,\n `Invalid value for ${id} cell. Type \\`SmeupDataTable\\` expected`,\n KupDebugCategory.ERROR\n );\n return null;\n }\n }\n\n #getTableUpdatedCell(\n tableValue: KupDataTableDataset,\n cellId: string\n ): KupDataTableDataset {\n const updated: KupDataTableDataset = {\n ...tableValue,\n rows: tableValue.rows.map((row) => ({ ...row, cells: {} })),\n };\n\n const editableColsId = tableValue.columns\n .filter((col) => col.isEditable)\n .map((col) => col.name);\n\n if (!editableColsId.length) {\n return updated;\n }\n\n try {\n const beforeTableValue = JSON.parse(\n this.#originalData.rows[0].cells[cellId].value\n );\n\n updated.rows = tableValue.rows.map((row, i) =>\n editableColsId.reduce<KupDataTableRow>(\n (updatedRow, colId) => {\n const changed =\n beforeTableValue.rows[i].cells[colId] &&\n row.cells[colId].value !==\n beforeTableValue.rows[i].cells[colId].value;\n\n if (changed) {\n return {\n ...beforeTableValue.rows[i],\n cells: {\n ...updatedRow.cells,\n [colId]: {\n ...beforeTableValue.rows[i].cells[\n colId\n ],\n value: row.cells[colId].value,\n },\n },\n };\n }\n\n return {\n ...beforeTableValue.rows[i],\n cells: updatedRow.cells,\n };\n },\n { ...beforeTableValue.rows[i], cells: {} }\n )\n );\n\n return updated;\n } catch (e) {\n return updated;\n }\n }\n\n #optionsTreeComboAdapter(options: any, currentValue: string) {\n const adapter = this.#optionsAdapterMap.get(options.type);\n\n if (adapter) {\n return adapter(options, currentValue);\n } else {\n return options.map((option) => ({\n value: option.label,\n id: option.id,\n selected: currentValue === option.id,\n }));\n }\n }\n\n #treeOptionsNodeAdapter(\n options: any,\n currentValue: string\n ): GenericObject[] {\n return options.children.map((child) => ({\n id: child.content.codice,\n value: child.content.testo,\n selected: currentValue === child.content.codice,\n children: child.children?.length\n ? this.#treeOptionsNodeAdapter(child, currentValue)\n : [],\n }));\n }\n\n #dataTreeOptionsChildrenAdapter(\n options: any,\n currentValue: string\n ): GenericObject[] {\n return options.children.map((child) => ({\n id: child.obj.k,\n value: child.value,\n selected: currentValue === child.obj.k,\n children: child.children?.length\n ? this.#dataTreeOptionsChildrenAdapter(child, currentValue)\n : [],\n }));\n }\n\n #tableOptionsAdapter(options: any, currentValue: string): GenericObject[] {\n return options.rows.map((row) => {\n const cells = row.fields || row.cells;\n const [id, value] = Object.keys(cells);\n\n return {\n id: cells[id].value,\n value: cells[value]?.value || cells[id].value,\n selected: currentValue === cells[id].value,\n };\n });\n }\n\n #commandAdapter(cell: KupDataCell): KupDataCell {\n const buttonCell = {\n ...cell,\n data: this.#BTNAdapter(null, null, cell.value, cell, cell.obj.k),\n id: cell.obj.k,\n };\n return buttonCell;\n }\n\n #getAutocompleteEventCallback(\n detail: KupAutocompleteEventPayload | KupComboboxIconClickEventPayload,\n fun: string,\n data: any,\n id: string,\n currentValue: string\n ) {\n if (\n detail.id !== id ||\n (detail as KupComboboxIconClickEventPayload).open === false\n ) {\n return;\n }\n this.optionsHandler(\n fun,\n detail.inputValue,\n this.#reverseMapCells(),\n detail.id\n ).then((options) => {\n data.data['kup-list'].data =\n this.#optionsTreeComboAdapter(options, currentValue) ?? [];\n detail.comp.refresh();\n });\n }\n\n async #checkOnBlurProp(cell: KupInputPanelCell, id: string) {\n const currCell = this.#getCell(id);\n\n // Required cell check\n if (cell.mandatory) {\n this.#setCellError(\n id,\n currCell.value\n ? // If it's not empty remove the error message\n null\n : // else set the error message\n this.#kupManager.language.translate(\n KupLanguageGeneric.REQUIRED_VALUE\n )\n );\n\n if (!currCell.value) {\n return;\n }\n } else {\n this.#setCellError(id, null);\n }\n\n // Valid object check\n if (cell.inputSettings?.checkObject && currCell.value) {\n const { valid } = await this.checkValidObjCallback({\n obj: cell.obj,\n currentState: this.#reverseMapCells(),\n fun: cell.fun,\n });\n if (valid) {\n this.#setCellError(id, null);\n } else {\n this.#setCellError(\n id,\n this.#kupManager.language.translate(\n KupLanguageGeneric.INVALID_VALUE\n )\n );\n return;\n }\n }\n\n if (cell.inputSettings?.checkValueOnExit && this.#areValuesUpdated()) {\n this.checkValidValueCallback(\n {\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n },\n id\n );\n }\n }\n\n #checkOnBlurEvent(cell: KupInputPanelCell, id: string) {\n const evName = this.#eventBlurNames.get(cell.shape);\n if (!evName) {\n return;\n }\n\n const handler = async (e: CustomEvent<KupAutocompleteEventPayload>) => {\n const currCell = this.#getCell(id);\n\n if (e.detail.id !== id) {\n return;\n }\n\n // Required cell check\n if (cell.mandatory) {\n this.#setCellError(\n id,\n currCell.value\n ? // If it's not empty remove the error message\n null\n : // else set the error message\n this.#kupManager.language.translate(\n KupLanguageGeneric.REQUIRED_VALUE\n )\n );\n\n if (!e.detail.value) {\n return;\n }\n } else {\n this.#setCellError(id, null);\n }\n\n // Valid object check\n if (cell.inputSettings?.checkObject && e.detail.value) {\n const { valid } = await this.checkValidObjCallback({\n obj: cell.obj,\n currentState: this.#reverseMapCells(),\n fun: cell.fun,\n });\n\n this.#setCellError(\n id,\n valid\n ? // If it's not empty remove the error message\n null\n : // else set the error message\n this.#kupManager.language.translate(\n KupLanguageGeneric.INVALID_VALUE\n )\n );\n if (!valid) {\n return;\n }\n }\n\n if (\n cell.inputSettings?.checkValueOnExit &&\n this.#areValuesUpdated()\n ) {\n this.checkValidValueCallback(\n {\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n },\n id\n );\n }\n };\n this.rootElement.addEventListener(evName, handler);\n this.#listeners.push({\n event: evName,\n handler,\n });\n }\n\n #setCellError(id: string, error: string) {\n this.inputPanelCells = this.inputPanelCells.map((cell) => ({\n ...cell,\n cells: cell.cells.map(({ cell, column }) => {\n const data =\n column.name === id\n ? {\n ...cell.data,\n error,\n }\n : cell.data;\n return {\n column,\n cell: {\n ...cell,\n data,\n },\n };\n }),\n }));\n }\n\n #areValuesUpdated() {\n return this.inputPanelCells.some(({ cells, row }) =>\n cells.some(\n ({ cell, column: { name } }) =>\n cell.value !== row.cells[name].value\n )\n );\n }\n\n #getFunctionOnClickBTN(cell: KupInputPanelCell, id: string) {\n cell.fun\n ? this.customButtonClickHandler({\n fun: cell.fun,\n cellId: id,\n currentState: this.#reverseMapCells(),\n })\n : this.submitCb({\n value: {\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n },\n cell: id,\n });\n }\n\n //#endregion\n\n //#region LIFECYCLE HOOKS\n /*-------------------------------------------------*/\n /* L i f e c y c l e H o o k s */\n /*-------------------------------------------------*/\n\n componentWillLoad() {\n this.#kupManager.debug.logLoad(this, false);\n this.#kupManager.language.register(this);\n this.#kupManager.theme.register(this);\n this.onDataChanged();\n }\n\n componentDidLoad() {\n this.kupReady.emit({ comp: this, id: this.rootElement.id });\n this.#kupManager.debug.logLoad(this, true);\n }\n\n componentWillRender() {\n this.#kupManager.debug.logRender(this, false);\n }\n\n componentDidRender() {\n const root: ShadowRoot = this.rootElement.shadowRoot;\n if (root) {\n const fs: NodeListOf<HTMLElement> =\n root.querySelectorAll('.f-text-field');\n for (let index = 0; index < fs.length; index++) {\n FTextFieldMDC(fs[index]);\n }\n }\n this.#kupManager.debug.logRender(this, true);\n }\n\n render() {\n const isEmptyData = Boolean(!this.inputPanelCells.length);\n\n const inputPanelContent: VNode[] = isEmptyData\n ? [\n <p>\n {this.#kupManager.language.translate(\n KupLanguageGeneric.EMPTY_DATA\n )}\n </p>,\n ]\n : this.inputPanelCells.map((inputPanelCell) =>\n this.#renderRow(inputPanelCell)\n );\n\n return (\n <Host>\n <style>\n {this.#kupManager.theme.setKupStyle(\n this.rootElement as KupComponent\n )}\n </style>\n <div id={componentWrapperId}>{inputPanelContent}</div>\n </Host>\n );\n }\n\n disconnectedCallback() {\n this.#kupManager.language.unregister(this);\n this.#kupManager.theme.unregister(this);\n }\n //#endregion\n}\n"],"version":3}
|
|
1
|
+
{"file":"kup-input-panel.entry.cjs.js","mappings":"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","names":["kupManagerInstance","FCellTypes","FCellShapes","getProps","forceUpdate","setProps","FTextFieldMDC","h","KupLanguageGeneric","Host","componentWrapperId","FButton","FCell","FTypography","FTypographyType","KupComponentSizing","CHIAdapter","CMBandACPAdapter","CHKAdapter","RADAdapter","SWTAdapter","KupDebugCategory"],"sources":["src/components/kup-input-panel/kup-input-panel-declarations.ts","src/components/kup-input-panel/kup-input-panel-utils.ts","src/components/kup-input-panel/kup-input-panel.scss?tag=kup-input-panel&encapsulation=shadow","src/components/kup-input-panel/kup-input-panel.tsx"],"sourcesContent":["import { GenericObject } from '../../components';\nimport {\n KupDataCell,\n KupDataColumn,\n KupDataCommand,\n} from '../../managers/kup-data/kup-data-declarations';\nimport { KupObj } from '../../managers/kup-objects/kup-objects-declarations';\n\nexport interface KupInputPanelSubmit {\n value: KupInputPanelSubmitValue;\n cell?: string;\n}\nexport interface KupInputPanelSubmitValue {\n after: KupInputPanelData;\n before: KupInputPanelData;\n}\n\nexport interface KupInputPanelData {\n columns?: KupDataColumn[];\n rows?: KupInputPanelRow[];\n actions?: KupInputPanelAction[];\n setup?: {\n commands?: Array<KupDataCommand>;\n };\n}\n\nexport interface KupInputPanelAction {\n type?: string;\n fun?: string;\n}\n\nexport interface KupInputPanelColumn {\n name: string;\n title: string;\n visible?: boolean;\n}\n\nexport interface KupInputPanelRow {\n cells?: KupInputPanelRowCells;\n layout?: KupInputPanelLayout;\n}\n\nexport interface KupInputPanelRowCells {\n [key: string]: KupInputPanelCell;\n}\n\nexport interface KupInputPanelCell extends KupDataCell {\n options?: GenericObject | GenericObject[];\n editable?: boolean;\n mandatory?: boolean;\n inputSettings?: GenericObject;\n fun?: string;\n}\n\nexport interface KupInputPanelCellOptions {\n id: string;\n label: string;\n}\n\nexport interface KupInputPanelLayout {\n horizontal?: boolean;\n absolute?: boolean;\n sections?: KupInputPanelLayoutSection[];\n sectionsType?: KupInputPanelLayoutSectionType;\n}\n\nexport enum KupInputPanelLayoutSectionType {\n TAB = 'tab',\n}\n\nexport interface KupInputPanelLayoutSection {\n id?: string;\n title?: string;\n icon?: string;\n content?: KupInputPanelLayoutField[];\n sections?: KupInputPanelLayoutSection[];\n dim?: string;\n horizontal?: boolean;\n gridCols?: number;\n gridRows?: number;\n // Gap is in rem\n gap?: number;\n sectionsType?: KupInputPanelLayoutSectionType;\n // absolute Attributes\n absoluteColumn?: number;\n absoluteWidth?: number;\n absoluteRow?: number;\n absoluteHeight?: number;\n}\n\nexport interface KupInputPanelLayoutField {\n id: string;\n // Span is referred to start\n colSpan?: number;\n colStart?: number;\n colEnd?: number;\n // Span is referred to start\n rowSpan?: number;\n rowStart?: number;\n rowEnd?: number;\n // absolute Attributes\n absoluteColumn?: number;\n absoluteRow?: number;\n absoluteLength?: number;\n}\n\nexport type DataAdapterFn = (\n options: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell?: KupInputPanelCell,\n id?: string\n) => Object;\n\nexport type InputPanelCells = {\n cells: { cell: KupDataCell; column: KupDataColumn }[];\n row?: KupInputPanelRow;\n};\n\nexport type InputPanelEvent = {\n state: { cell: KupDataCell; column: KupDataColumn }[];\n data: {\n field: string;\n value: number | string | object;\n };\n};\n\nexport type InputPanelOptionsHandler = (\n fun: string,\n inputValue: string,\n currentState: KupInputPanelData,\n cellId: string\n) => Promise<GenericObject>;\n\nexport type InputPanelCheckValidObjCallback = (event: {\n obj: KupObj;\n currentState: KupInputPanelData;\n fun?: string;\n}) => Promise<ValidCheckObjResponse>;\n\nexport interface ValidCheckObjResponse {\n valid: boolean;\n}\n\nexport type InputPanelButtonClickHandler = (event: {\n fun: string;\n cellId: string;\n currentState: KupInputPanelData;\n}) => void;\n\nexport type InputPanelCheckValidValueCallback = (\n currentState: KupInputPanelSubmitValue,\n cellId: string\n) => void;\n\nexport enum KupInputPanelProps {\n customStyle = 'Custom style of the component.',\n data = 'Actual data of the input panel.',\n hiddenSubmitButton = 'Creates a hidden submit button in order to submit the form with enter.',\n submitCb = 'Sets the callback function on submit form',\n optionsHandler = 'Sets the callback function to recieve options',\n}\n","export const CHAR_WIDTH = 12;\nexport const ROW_HEIGHT = 22;\n\nexport const getAbsoluteWidth = (length: number) => {\n if (length == 0) {\n return CHAR_WIDTH / 2;\n }\n\n if (!length) {\n return null;\n }\n\n if (length === 1) {\n return 1.5 * CHAR_WIDTH;\n }\n\n return length * CHAR_WIDTH;\n};\n\nexport const getAbsoluteHeight = (height: number) => {\n if (!height) {\n return null;\n }\n\n return height * ROW_HEIGHT;\n};\n\nexport const getAbsoluteTop = (row: number) => {\n if (!row) {\n return null;\n }\n\n return (row - 1) * ROW_HEIGHT;\n};\n\nexport const getAbsoluteLeft = (col: number) => {\n if (!col) {\n return null;\n }\n\n return col * CHAR_WIDTH;\n};\n","/**\n* @prop --kup-input-panel-background-color: Sets background of the component.\n* @prop --kup-input-panel-color: Sets text color of the component.\n* @prop --kup-input-panel-font-family: Sets font family of the component.\n* @prop --kup-input-panel-font-size: Sets font size of the component.\n* @prop --kup-input-panel-label-alignment: Sets the text alignment of labels.\n* @prop --kup-input-panel-label-width: Sets the width of labels.\n* @prop --kup-input-panel-padding: Sets the padding of the input panel.\n*/\n\n:host {\n --kup-fcell-width: fit-content;\n --kup_input_panel_background_color: var(\n --kup-input-panel-background-color,\n var(--kup-layer-0)\n );\n --kup_input_panel_color: var(\n --kup-input-panel-color,\n var(--kup-text-secondary)\n );\n --kup_input_panel_font_family: var(\n --kup-input-panel-font-family,\n var(--kup-font-family)\n );\n --kup_input_panel_font_size: var(\n --kup-input-panel-font-size,\n var(--kup-font-size)\n );\n --kup_input_panel_label_alignment: var(--kup-input-panel-label-alignment);\n --kup_input_panel_label_width: var(--kup-input-panel-label-width);\n --kup_input_panel_padding: var(--kup-input-panel-padding, 1em 0);\n\n .input-panel {\n background: var(--kup_input_panel_background_color);\n color: var(--kup_input_panel_color);\n display: flex;\n flex-grow: 1;\n overflow: auto;\n padding: var(--kup_input_panel_padding);\n position: relative;\n gap: 1rem;\n // width: var(--kup-fcell_width);\n\n &__commands {\n display: flex;\n gap: 2rem;\n }\n\n &--column {\n flex-direction: column;\n }\n\n &__section_label_container {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n\n &__section {\n display: grid;\n min-width: 0;\n\n .f-cell__content {\n > * {\n width: 100%;\n }\n }\n }\n\n &__horizontal-section {\n display: inline-grid;\n }\n\n .f-cell .f-checkbox .checkbox .checkbox__native-control {\n height: 40px;\n width: 40px;\n }\n\n &__label_container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n > .f-cell {\n flex: 1;\n }\n }\n\n &__tabs_container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 2rem;\n }\n\n .f-cell.number-cell {\n .f-cell__content {\n --kup-textfield-font-family: var(--kup_cell_font_family);\n\n font-family: var(--kup_cell_font_family);\n }\n }\n\n .input-panel-label {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n }\n\n &--absolute {\n justify-content: flex-end;\n\n .input-panel-label {\n justify-content: start;\n }\n\n .mdc-text-field {\n height: unset !important;\n }\n }\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n VNode,\n Watch,\n forceUpdate,\n h,\n} from '@stencil/core';\nimport {\n KupAutocompleteEventPayload,\n KupComboboxIconClickEventPayload,\n KupDataCell,\n KupDataTableDataset,\n KupDataTableRow,\n KupDropdownButtonEventPayload,\n KupEditorEventPayload,\n KupTabBarEventPayload,\n KupTabBarNode,\n} from '../../components';\nimport { FButton } from '../../f-components/f-button/f-button';\nimport { FCell } from '../../f-components/f-cell/f-cell';\nimport {\n FCellProps,\n FCellShapes,\n FCellTypes,\n} from '../../f-components/f-cell/f-cell-declarations';\nimport { FTextFieldMDC } from '../../f-components/f-text-field/f-text-field-mdc';\nimport { KupDebugCategory } from '../../managers/kup-debug/kup-debug-declarations';\nimport { KupLanguageGeneric } from '../../managers/kup-language/kup-language-declarations';\nimport {\n KupManager,\n kupManagerInstance,\n} from '../../managers/kup-manager/kup-manager';\nimport { KupDom } from '../../managers/kup-manager/kup-manager-declarations';\nimport { FTypographyType } from '../../f-components/f-typography/f-typography-declarations';\nimport {\n GenericObject,\n KupComponent,\n KupComponentSizing,\n KupEventPayload,\n} from '../../types/GenericTypes';\nimport {\n CHIAdapter,\n CHKAdapter,\n CMBandACPAdapter,\n RADAdapter,\n SWTAdapter,\n} from '../../utils/cell-utils';\nimport { getProps, setProps } from '../../utils/utils';\nimport { componentWrapperId } from '../../variables/GenericVariables';\nimport {\n DataAdapterFn,\n InputPanelButtonClickHandler,\n InputPanelCells,\n InputPanelCheckValidObjCallback,\n InputPanelCheckValidValueCallback,\n InputPanelOptionsHandler,\n KupInputPanelCell,\n KupInputPanelColumn,\n KupInputPanelData,\n KupInputPanelLayout,\n KupInputPanelLayoutField,\n KupInputPanelLayoutSection,\n KupInputPanelLayoutSectionType,\n KupInputPanelProps,\n KupInputPanelRow,\n KupInputPanelSubmit,\n} from './kup-input-panel-declarations';\nimport {\n getAbsoluteHeight,\n getAbsoluteLeft,\n getAbsoluteTop,\n getAbsoluteWidth,\n ROW_HEIGHT,\n} from './kup-input-panel-utils';\nimport { FTypography } from '../../f-components/f-typography/f-typography';\nimport { KupTypographyList } from '../kup-typography-list/kup-typography-list';\n\nconst dom: KupDom = document.documentElement as KupDom;\n@Component({\n tag: 'kup-input-panel',\n styleUrl: 'kup-input-panel.scss',\n shadow: true,\n})\nexport class KupInputPanel {\n /**\n * References the root HTML element of the component (<kup-form>).\n */\n @Element() rootElement: HTMLElement;\n\n //#region PROPS\n /*-------------------------------------------------*/\n /* P r o p s */\n /*-------------------------------------------------*/\n\n /**\n * Custom style of the component.\n * @default \"\"\n * @see https://smeup.github.io/ketchup/#/customization\n */\n @Prop() customStyle: string = '';\n\n /**\n * Actual data of the form.\n * @default null\n */\n @Prop() data: KupInputPanelData = null;\n\n /**\n * Creates a hidden submit button in order to submit the form with enter.\n * @default false\n */\n @Prop() hiddenSubmitButton: boolean = false;\n\n /**\n * Sets the callback function on submit form\n * @default null\n */\n @Prop() submitCb: (e: KupInputPanelSubmit) => unknown = null;\n\n /**\n * Sets the callback function on loading options via FUN\n * @default null\n */\n @Prop() optionsHandler: InputPanelOptionsHandler = null;\n\n /**\n * Sets the handler to use when click on custom buttons\n * @default null\n */\n @Prop() customButtonClickHandler?: InputPanelButtonClickHandler = null;\n\n /**\n * Sets the callback for valid the object when cell checkObject is true\n * @default null\n */\n @Prop() checkValidObjCallback?: InputPanelCheckValidObjCallback = null;\n\n /**\n * Sets the callback for valid the object when cell checkObject is true\n * @default null\n */\n @Prop() checkValidValueCallback?: InputPanelCheckValidValueCallback = null;\n //#endregion\n\n /**\n * Sets verical layout if dashboardMode is true\n * @default false\n */\n @Prop() dashboardMode: boolean = false;\n //#endregion\n\n //#region STATES\n /*-------------------------------------------------*/\n /* S t a t e s */\n /*-------------------------------------------------*/\n\n /**\n * Values to send as props to FCell\n * @default []\n */\n @State() private inputPanelCells: InputPanelCells[] = [];\n\n /**\n * Values to send as props to FCell\n * @default []\n */\n @State() private inputPanelCommands: VNode[] = [];\n\n /**\n * Id of selected tab if exists\n * @default null\n */\n @State() private tabSelected: string = null;\n //#endregion\n\n //#region VARIABLES\n /*-------------------------------------------------*/\n /* I n t e r n a l V a r i a b l e s */\n /*-------------------------------------------------*/\n\n #kupManager: KupManager = kupManagerInstance();\n\n #optionsAdapterMap = new Map<\n string,\n (options: any, currentValue: string) => GenericObject[]\n >([\n ['SmeupTreeNode', this.#treeOptionsNodeAdapter.bind(this)],\n ['SmeupDataTree', this.#dataTreeOptionsChildrenAdapter.bind(this)],\n ['SmeupTable', this.#tableOptionsAdapter.bind(this)],\n ['SmeupDataTable', this.#tableOptionsAdapter.bind(this)],\n ]);\n\n #originalData: KupInputPanelData = null;\n\n #eventNames = new Map<FCellTypes, string[]>([\n [\n FCellTypes.AUTOCOMPLETE,\n ['kup-autocomplete-input', 'kup-autocomplete-iconclick'],\n ],\n [\n FCellTypes.MULTI_AUTOCOMPLETE,\n ['kup-autocomplete-input', 'kup-autocomplete-iconclick'],\n ],\n [FCellTypes.COMBOBOX, ['kup-combobox-iconclick', 'kup-combobox-blur']],\n [FCellTypes.MULTI_COMBOBOX, ['kup-combobox-iconclick']],\n ]);\n\n #eventBlurNames = new Map<FCellShapes, string>([\n [FCellShapes.AUTOCOMPLETE, 'kup-autocomplete-blur'],\n [FCellShapes.CHIP, 'kup-textfield-blur'],\n [FCellShapes.COMBOBOX, 'kup-combobox-blur'],\n [FCellShapes.DATE, 'kup-datepicker-blur'],\n [FCellShapes.MULTI_AUTOCOMPLETE, 'kup-autocomplete-blur'],\n [FCellShapes.MULTI_COMBOBOX, 'kup-combobox-blur'],\n [FCellShapes.TIME, 'kup-timepicker-blur'],\n ]);\n\n #listeners: { event: string; handler: (e) => void }[] = [];\n #cellTypeComponents: Map<FCellTypes, string> = new Map<FCellTypes, string>([\n [FCellTypes.DATE, 'kup-date-picker'],\n [FCellTypes.TIME, 'kup-time-picker'],\n ]);\n #cellCustomRender: Map<\n FCellShapes,\n (cell: KupDataCell, cellId: string) => any\n > = new Map<FCellShapes, (cell: KupDataCell, cellId: string) => any>([\n [FCellShapes.BUTTON_LIST, this.#renderButton.bind(this)],\n [FCellShapes.EDITOR, this.#renderEditor.bind(this)],\n [FCellShapes.LABEL, this.#renderLabel.bind(this)],\n [FCellShapes.TABLE, this.#renderDataTable.bind(this)],\n ]);\n #sectionRenderMap: Map<\n KupInputPanelLayoutSectionType,\n (cells: InputPanelCells, sections: KupInputPanelLayoutSection[]) => any\n > = new Map<\n KupInputPanelLayoutSectionType,\n (cells: InputPanelCells, sections: KupInputPanelLayoutSection[]) => any\n >([\n [KupInputPanelLayoutSectionType.TAB, this.#renderSectionTab.bind(this)],\n ]);\n #keysShortcut: string[] = [];\n //#endregion\n\n //#region WATCHERS\n /*-------------------------------------------------*/\n /* W a t c h e r s */\n /*-------------------------------------------------*/\n\n @Watch('data')\n onDataChanged() {\n this.#originalData = structuredClone(this.data);\n if (this.#listeners.length) {\n this.#listeners.map(({ event, handler }) => {\n this.rootElement.removeEventListener(event, handler);\n });\n this.#listeners = [];\n }\n\n if (this.#keysShortcut.length) {\n this.#keysShortcut.map((key) => {\n this.#kupManager.keysBinding.unregister(key);\n });\n this.#keysShortcut = [];\n }\n this.#mapCells(this.data);\n }\n //#endregion\n\n //#region PUBLIC METHODS\n /*-------------------------------------------------*/\n /* P u b l i c M e t h o d s */\n /*-------------------------------------------------*/\n\n /**\n * Used to retrieve component's props values.\n * @param {boolean} descriptions - When provided and true, the result will be the list of props with their description.\n * @returns {Promise<GenericObject>} List of props as object, each key will be a prop.\n */\n @Method()\n async getProps(descriptions?: boolean): Promise<GenericObject> {\n return getProps(this, KupInputPanelProps, descriptions);\n }\n /**\n * This method is used to trigger a new render of the component.\n */\n @Method()\n async refresh(): Promise<void> {\n forceUpdate(this);\n }\n /**\n * Sets the props to the component.\n * @param {GenericObject} props - Object containing props that will be set to the component.\n */\n @Method()\n async setProps(props: GenericObject): Promise<void> {\n setProps(this, KupInputPanelProps, props);\n }\n //#endregion\n\n //#region EVENTS\n /*-------------------------------------------------*/\n /* Events */\n /*-------------------------------------------------*/\n\n /**\n * When component load is complete\n */\n @Event({\n eventName: 'kup-input-panel-ready',\n composed: true,\n cancelable: false,\n bubbles: true,\n })\n kupReady: EventEmitter<KupEventPayload>;\n //#endregion\n\n //#region PRIVATE METHODS\n /*-------------------------------------------------*/\n /* P r i v a t e M e t h o d s */\n /*-------------------------------------------------*/\n\n #getCell(id: string) {\n return this.inputPanelCells.reduce<KupDataCell>((cell, { cells }) => {\n if (!cell) {\n return cells.find(({ column }) => column.name === id).cell;\n }\n return cell;\n }, null);\n }\n\n #renderRow(inputPanelCell: InputPanelCells) {\n const layout = inputPanelCell.row.layout;\n\n const horizontal = layout?.horizontal || false;\n const styleObj: GenericObject = {};\n\n let rowContent: VNode[];\n\n if (!layout?.sections?.length) {\n rowContent = inputPanelCell.cells.map((cell) =>\n this.#renderCell(cell.cell, inputPanelCell.row, cell.column)\n );\n } else {\n if (layout.absolute) {\n rowContent = this.#renderAbsoluteLayout(inputPanelCell, layout);\n const maxAbsoluteRow = Math.max(\n ...layout.sections.flatMap((sec) =>\n sec.content.map((cont) => cont.absoluteRow || 0)\n )\n );\n styleObj.height = `${maxAbsoluteRow * ROW_HEIGHT}px`;\n } else {\n if (!layout.sectionsType) {\n const hasDim = layout.sections.some((sec) => sec.dim);\n styleObj.display = 'grid';\n\n if (layout.horizontal) {\n styleObj.gridTemplateColumns = hasDim\n ? layout.sections\n .map((sec) => sec.dim || 'auto')\n .join(' ')\n : `repeat(${layout.sections.length}, 1fr)`;\n } else {\n if (this.dashboardMode) {\n styleObj.gridTemplateRows = hasDim\n ? layout.sections\n .map((sec) => sec.dim || 'auto')\n .join(' ')\n : `repeat(${layout.sections.length}, 1fr)`;\n }\n }\n }\n\n rowContent = this.#renderGridLayout(inputPanelCell, layout);\n }\n }\n\n const classObj = {\n 'input-panel': true,\n 'input-panel--column': !horizontal,\n 'input-panel--absolute': layout?.absolute,\n };\n\n // We create a form for each row in data\n return (\n <form\n name={this.rootElement.id}\n id={this.rootElement.id}\n class={{ 'input-panel-form': true }}\n onSubmit={(e: SubmitEvent) => {\n e.preventDefault();\n this.submitCb({\n value: {\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n },\n });\n }}\n >\n <div class={classObj} style={styleObj}>\n {rowContent}\n </div>\n <div class=\"input-panel__commands\">\n {!this.hiddenSubmitButton ? (\n <FButton\n buttonType=\"submit\"\n label={this.#kupManager.language.translate(\n KupLanguageGeneric.CONFIRM\n )}\n wrapperClass=\"form__submit\"\n ></FButton>\n ) : null}\n {this.inputPanelCommands}\n </div>\n </form>\n );\n }\n\n #renderCell(\n cell: KupDataCell,\n row: KupInputPanelRow,\n column: KupInputPanelColumn\n ) {\n if (!cell) {\n return;\n }\n\n const customRender = this.#cellCustomRender.get(cell.shape);\n\n if (customRender !== undefined) {\n return customRender(cell, column.name);\n }\n\n const cellProps: FCellProps = {\n cell,\n column,\n row,\n component: this,\n editable: true,\n renderKup: true,\n setSizes: true,\n };\n\n const label = this.#getLabelComponent(cell, column.title);\n\n if (label) {\n return (\n <div class={{ 'input-panel__label_container': true }}>\n {label}\n <FCell {...cellProps} />\n </div>\n );\n }\n\n return <FCell {...cellProps} />;\n }\n\n #renderButton(cell: KupDataCell, cellId: string) {\n return (\n <FButton\n icon={cell.icon}\n id={cellId}\n {...cell.data}\n wrapperClass=\"form__submit\"\n ></FButton>\n );\n }\n\n #renderDropDownButton(cell: KupDataCell, data: GenericObject) {\n return (\n <kup-dropdown-button\n {...cell.data}\n label={cell.value}\n data={data}\n onkup-dropdownbutton-itemclick={(\n e: CustomEvent<KupDropdownButtonEventPayload>\n ) => {\n this.#getFunctionOnClickBTN(\n e.detail.node,\n e.detail.node.id\n );\n }}\n ></kup-dropdown-button>\n );\n }\n\n #renderEditor(cell: KupDataCell, cellId: string) {\n const event = 'kup-editor-save';\n const handler = (e: CustomEvent<KupEditorEventPayload>) => {\n const edtCell: KupDataCell =\n this.inputPanelCells.reduce<KupDataCell>((cell, { cells }) => {\n if (!cell) {\n return cells.find(\n ({ column }) => column.name === cellId\n ).cell;\n }\n return cell;\n }, null);\n edtCell.value = e.detail.htmlValue.replace(/\\n/g, '<br>');\n };\n\n this.rootElement.addEventListener(event, handler);\n\n this.#listeners.push({\n event,\n handler,\n });\n\n return (\n <kup-editor\n {...cell.data}\n id={cellId}\n isReadOnly={!cell.isEditable}\n showToolbar={true}\n ></kup-editor>\n );\n }\n\n #renderDataTable(cell: KupDataCell, cellId: string) {\n return (\n <kup-data-table\n id={cellId}\n editableData={true}\n showGroups={true}\n showFilters={true}\n showFooter={true}\n {...cell.data}\n ></kup-data-table>\n );\n }\n\n #renderLabel(cell: KupDataCell, cellId: string) {\n return (\n <span class=\"input-panel-label\" id={cellId}>\n {cell.value}\n </span>\n );\n }\n\n #getLabelComponent(cell: KupDataCell, label: string) {\n if (!label) {\n return null;\n }\n\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n\n if (cellType === FCellTypes.RADIO) {\n return <span>{label}</span>;\n }\n\n return null;\n }\n\n #renderGridLayout(\n inputPanelCell: InputPanelCells,\n layout: KupInputPanelLayout\n ) {\n const sectionRender = this.#sectionRenderMap.get(layout.sectionsType);\n\n return sectionRender\n ? sectionRender(inputPanelCell, layout.sections)\n : layout.sections.map((section) =>\n this.#renderSection(inputPanelCell, section)\n );\n }\n\n #renderAbsoluteLayout(\n inputPanelCell: InputPanelCells,\n layout: KupInputPanelLayout\n ) {\n return layout.sections.map((section) =>\n this.#renderAbsoluteSection(inputPanelCell, section)\n );\n }\n\n #renderSection(\n cells: InputPanelCells,\n section: KupInputPanelLayoutSection,\n customLabelRender: boolean = false,\n styleObj: GenericObject = {}\n ) {\n const classObj = {\n 'input-panel__section': !section.horizontal,\n 'input-panel__horizontal-section': section.horizontal,\n };\n\n styleObj.gap = +section.gap > 0 ? `${section.gap}rem` : '1rem';\n\n let content = [];\n\n if (section.sections?.length) {\n content = section.sections.map((innerSection) =>\n this.#renderSection(cells, innerSection)\n );\n\n const hasDim = section.sections.some((sec) => sec.dim);\n\n if (!section.gridCols && section.horizontal) {\n styleObj.gridTemplateColumns = hasDim\n ? section.sections.map((sec) => sec.dim || 'auto').join(' ')\n : `repeat(${section.sections.length}, 1fr)`;\n }\n\n if (\n !section.gridRows &&\n !section.horizontal &&\n this.dashboardMode\n ) {\n styleObj.gridTemplateRows = hasDim\n ? section.sections.map((sec) => sec.dim || 'auto').join(' ')\n : `repeat(${section.sections.length}, 1fr)`;\n }\n } else if (section.content?.length) {\n content = section.content.map((field) =>\n this.#renderField(cells, field)\n );\n styleObj.gridTemplateColumns =\n +section.gridCols > 0 ? `repeat(${section.gridCols}, 1fr)` : '';\n if (this.dashboardMode) {\n styleObj.gridTemplateRows =\n +section.gridRows > 0\n ? `repeat(${section.gridRows}, 1fr)`\n : '';\n }\n }\n\n const sectionContent = (\n <div class={classObj} style={styleObj}>\n {content}\n </div>\n );\n\n return section.title && !customLabelRender ? (\n <div class={{ 'input-panel__section_label_container': true }}>\n <FTypography\n type={FTypographyType.HEADING1}\n value={section.title}\n ></FTypography>\n {sectionContent}\n </div>\n ) : (\n sectionContent\n );\n }\n\n #renderAbsoluteSection(\n cells: InputPanelCells,\n section: KupInputPanelLayoutSection\n ) {\n let content = [];\n\n if (section.sections?.length) {\n content = section.sections.map((innerSection) =>\n this.#renderAbsoluteSection(cells, innerSection)\n );\n } else if (section.content?.length) {\n content = section.content.map((field) =>\n this.#renderAbsoluteField(cells, field)\n );\n }\n\n //If width is not specified the div in the return at the end can be removed\n if (getAbsoluteWidth(section.absoluteWidth) == null) {\n return content;\n }\n\n const width = `${\n getAbsoluteWidth(section.absoluteWidth) != null\n ? `${getAbsoluteWidth(section.absoluteWidth)}px`\n : '100%'\n }`;\n const height = `${\n getAbsoluteHeight(section.absoluteHeight) != null\n ? `${getAbsoluteHeight(section.absoluteHeight)}px`\n : '100%'\n }`;\n const top = `${getAbsoluteTop(section.absoluteRow)}px`;\n const left = `${getAbsoluteLeft(section.absoluteColumn)}px`;\n\n const sectionStyle = {\n position: 'relative',\n width,\n 'min-width': width,\n 'max-width': width,\n height,\n 'min-height': height,\n 'max-height': height,\n top,\n left,\n overflow: 'auto',\n };\n\n return <div style={sectionStyle}>{content}</div>;\n }\n\n #extractContentIds(node: KupInputPanelLayoutSection) {\n let ids: string[] = [];\n\n if (node.content?.length) {\n node.content.forEach((item) => {\n if (item.id) {\n ids.push(item.id);\n }\n });\n }\n\n if (node.sections?.length) {\n node.sections.forEach((section) => {\n ids = ids.concat(this.#extractContentIds(section));\n });\n }\n\n return ids;\n }\n\n #renderSectionTab(\n cells: InputPanelCells,\n sections: KupInputPanelLayoutSection[]\n ) {\n if (!this.tabSelected) {\n this.tabSelected = sections[0].id || '0';\n }\n\n const tabNodes: KupTabBarNode[] = sections.map((section, i) => {\n const cellIdsInSection = this.#extractContentIds(section);\n\n const hasError = cells.cells.some((cellData) => {\n const cell = cellData.cell;\n const column = cellData.column;\n return (\n cellIdsInSection.includes(column.name) && !!cell.data?.error\n );\n });\n\n return {\n active: (section.id || `${i}`) === this.tabSelected,\n value: section.title,\n icon: hasError ? 'error' : section.icon,\n id: section.id || `${i}`,\n danger: hasError,\n };\n });\n\n const sectionContent = sections.map((section, i) => {\n const sectionId = section.id || `${i}`;\n return this.#renderSection(cells, section, true, {\n display: this.tabSelected !== sectionId ? 'none' : 'grid',\n });\n });\n\n const tabCustomStyle =\n '.tab-bar .tab-scroller .tab .tab__content { justify-content: flex-start; }';\n\n if (!this.#listeners.map((l) => l.event).includes('kup-tabbar-click')) {\n const event = 'kup-tabbar-click';\n const handler = (e: CustomEvent<KupTabBarEventPayload>) => {\n this.tabSelected = e.detail.node.id;\n };\n\n this.rootElement.addEventListener(event, handler);\n this.#listeners.push({\n event,\n handler,\n });\n }\n\n return (\n <div class={{ 'input-panel__tabs_container': true }}>\n <kup-tab-bar\n data={tabNodes}\n customStyle={tabCustomStyle}\n ></kup-tab-bar>\n {sectionContent}\n </div>\n );\n }\n\n #renderField(cells: InputPanelCells, field: KupInputPanelLayoutField) {\n const fieldCell = cells.cells.find(\n (cell) => cell.column.name === field.id\n );\n\n const colSpan =\n +field.colSpan > 0\n ? field.colSpan\n : !(+field.colSpan > 0) && !(+field.colStart > 0)\n ? 1\n : null;\n\n const colStart = colSpan ? `span ${colSpan}` : `${field.colStart}`;\n\n const colEnd = +field.colEnd > 0 ? `${field.colEnd}` : '';\n\n const rowSpan =\n +field.rowSpan > 0\n ? field.rowSpan\n : !(+field.rowSpan > 0) && !(+field.rowStart > 0)\n ? 1\n : null;\n\n const rowStart = rowSpan ? `span ${rowSpan}` : `${field.rowStart}`;\n\n const rowEnd = +field.rowEnd > 0 ? `${field.rowEnd}` : '';\n\n const styleObj = {\n 'min-width': '0',\n 'grid-column-start': colStart,\n 'grid-column-end': colEnd,\n 'grid-row-start': rowStart,\n 'grid-row-end': rowEnd,\n };\n\n if (!fieldCell || !fieldCell.cell) {\n return;\n }\n\n return (\n <div style={styleObj}>\n {this.#renderCell(fieldCell.cell, cells.row, fieldCell.column)}\n </div>\n );\n }\n\n #renderAbsoluteField(\n cells: InputPanelCells,\n field: KupInputPanelLayoutField\n ) {\n const fieldCell = cells.cells.find(\n (cell) => cell.column.name === field.id\n );\n if (!fieldCell || !fieldCell.cell) {\n return;\n }\n\n let length: number;\n if (fieldCell.cell.shape == FCellShapes.DATE) {\n length = field.absoluteLength > 8 ? field.absoluteLength : 8;\n } else {\n length = field.absoluteLength;\n }\n\n const width = `${getAbsoluteWidth(length)}px`;\n const height = `${getAbsoluteHeight(1)}px`;\n const top = `${getAbsoluteTop(field.absoluteRow)}px`;\n const left = `${getAbsoluteLeft(field.absoluteColumn)}px`;\n\n const styleObj = {\n position: 'absolute',\n width,\n 'min-width': width,\n 'max-width': width,\n height,\n 'min-height': height,\n 'max-height': height,\n top,\n left,\n overflow: 'auto',\n };\n\n fieldCell.cell.data = {\n ...fieldCell.cell.data,\n sizing: 'extra-small',\n customStyle:\n (fieldCell.cell.data.customStyle || '') +\n '.mdc-text-field {height: unset !important;}',\n };\n\n return (\n <div style={styleObj}>\n {this.#renderCell(fieldCell.cell, cells.row, fieldCell.column)}\n </div>\n );\n }\n\n #mapCommands() {\n this.inputPanelCommands = this.data.setup.commands\n .map((commandObj) => {\n if (commandObj?.children && commandObj?.children.length > 0) {\n const data = {\n 'kup-list': {\n showIcons: true,\n data: commandObj.children.map((c) =>\n this.#commandAdapter(c)\n ),\n },\n };\n return this.#renderDropDownButton(commandObj, data);\n } else {\n const buttonCell = this.#commandAdapter(commandObj);\n return this.#renderButton(buttonCell, commandObj.value);\n }\n })\n .flat();\n }\n\n #mapCells(data: KupInputPanelData) {\n if (data.setup?.commands?.length) {\n this.#mapCommands();\n }\n\n const layout = data?.rows[0]?.layout;\n const inpuPanelCells = data?.rows?.length\n ? data.rows.reduce((inpuPanelCells, row) => {\n const cells = data.columns\n .filter((column) => column.visible)\n .map((column) => {\n const cell = structuredClone(row.cells[column.name]);\n const mappedCell = cell\n ? {\n ...cell,\n data: this.#setData(cell, column, layout),\n slotData: this.#slotData(cell, column),\n isEditable: true,\n }\n : null;\n return { column, cell: mappedCell };\n });\n return [...inpuPanelCells, { cells, row }];\n }, [])\n : [];\n inpuPanelCells.map(({ cells }: InputPanelCells) =>\n cells.map(({ cell, column }) => {\n const cellType = dom.ketchup.data.cell.getType(\n cell,\n cell.shape\n );\n const componentQuery = this.#cellTypeComponents.get(cellType);\n if (!componentQuery) {\n return;\n }\n\n const el: any = this.rootElement.shadowRoot.querySelector(\n `${componentQuery}[id=${column.name.replace(\n /\\//g,\n '\\\\$1'\n )}]`\n );\n\n el?.setValue(cell.value);\n })\n );\n\n this.inputPanelCells = inpuPanelCells;\n }\n\n #setData(\n cell: KupInputPanelCell,\n column: KupInputPanelColumn,\n layout?: KupInputPanelLayout\n ) {\n const defaultProps = {\n ...this.#mapData(cell, column, layout),\n disabled: !cell.editable,\n id: column.name,\n };\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n const { data, ...noDataProps } = cell.data || {};\n\n return cellType !== FCellTypes.MULTI_AUTOCOMPLETE &&\n cellType !== FCellTypes.MULTI_COMBOBOX\n ? this.#deepObjectsMerge(defaultProps, {\n ...cell.data,\n })\n : // Add and ovverride defaultProps of Chip host component except data\n {\n ...defaultProps,\n ...noDataProps,\n };\n }\n\n #deepObjectsMerge(target: GenericObject, source: GenericObject) {\n for (const key in source) {\n if (\n source[key] instanceof Object &&\n !Array.isArray(source[key]) &&\n key in target\n ) {\n target[key] = this.#deepObjectsMerge(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n }\n return target;\n }\n\n #reverseMapCells(): KupInputPanelData {\n return this.inputPanelCells.reduce(\n (data, curr) => {\n const updatedCells = Object.keys(curr.row.cells).reduce(\n (cells, key) => {\n const cellState = curr.cells.find(\n (c) => c.column.name === key\n )?.cell;\n\n let value: any = cellState?.value;\n\n if (cellState?.shape === FCellShapes.TABLE) {\n value = JSON.stringify(\n this.#getTableUpdatedCell(\n cellState.data.data,\n key\n )\n );\n }\n\n return {\n ...cells,\n [key]: {\n ...curr.row.cells[key],\n value,\n obj: cellState?.obj,\n },\n };\n },\n {}\n );\n\n return {\n columns: [\n ...data.columns,\n ...curr.cells.map((cell) => cell.column),\n ],\n rows: [\n ...data.rows,\n {\n cells: updatedCells,\n layout: curr.row.layout,\n },\n ],\n };\n },\n {\n columns: [],\n rows: [],\n }\n );\n }\n\n #mapData(\n cell: KupInputPanelCell,\n col: KupInputPanelColumn,\n layout?: KupInputPanelLayout\n ) {\n if (!cell) {\n return null;\n }\n\n const options = cell.options;\n let fieldLabel: string;\n if (layout?.absolute) {\n fieldLabel = null;\n } else {\n fieldLabel = col.title;\n }\n const currentValue = cell.value;\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n\n const dataAdapterMap = new Map<FCellTypes, DataAdapterFn>([\n [FCellTypes.AUTOCOMPLETE, this.#CMBandACPAdapter.bind(this)],\n [FCellTypes.BUTTON_LIST, this.#BTNAdapter.bind(this)],\n [FCellTypes.CHART, this.#GRAAdapter.bind(this)],\n [FCellTypes.CHIP, this.#CHIAdapter.bind(this)],\n [FCellTypes.CHECKBOX, this.#CHKAdapter.bind(this)],\n [FCellTypes.COLOR_PICKER, this.#CLPAdapter.bind(this)],\n [FCellTypes.COMBOBOX, this.#CMBandACPAdapter.bind(this)],\n [FCellTypes.EDITOR, this.#EDTAdapter.bind(this)],\n [FCellTypes.MULTI_AUTOCOMPLETE, this.#CHIAdapter.bind(this)],\n [FCellTypes.MULTI_COMBOBOX, this.#CHIAdapter.bind(this)],\n [FCellTypes.NUMBER, this.#NumberAdapter.bind(this)],\n [FCellTypes.DATE, this.#DateAdapter.bind(this)],\n [FCellTypes.OBJECT, this.#ObjectAdapter.bind(this)],\n [FCellTypes.RADIO, this.#RADAdapter.bind(this)],\n [FCellTypes.STRING, this.#ITXAdapter.bind(this)],\n [FCellTypes.SWITCH, this.#SWTAdapter.bind(this)],\n [FCellTypes.TABLE, this.#DataTableAdapter.bind(this)],\n [FCellTypes.TIME, this.#TimeAdapter.bind(this)],\n ]);\n\n const adapter = dataAdapterMap.get(cellType);\n\n return adapter\n ? adapter(options, fieldLabel, currentValue, cell, col.name)\n : null;\n }\n\n #slotData(cell: KupInputPanelCell, col: KupInputPanelColumn) {\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n\n if (!cell.editable) {\n return null;\n }\n\n if (cellType === FCellTypes.CHIP) {\n return {\n trailingIcon: true,\n label: col.title,\n disabled: !cell.editable,\n id: col.name,\n fullWidth: false,\n };\n }\n\n if (\n cellType === FCellTypes.MULTI_AUTOCOMPLETE ||\n cellType === FCellTypes.MULTI_COMBOBOX\n ) {\n return {\n ...this.#CMBandACPAdapter(\n cell.options,\n col.title,\n null,\n cell,\n col.name\n ),\n showDropDownIcon: true,\n class: '',\n style: { width: '100%' },\n disabled: !cell.editable,\n id: col.name,\n sizing: KupComponentSizing.EXTRA_SMALL,\n };\n }\n\n return null;\n }\n\n #CHIAdapter(\n _options: GenericObject,\n _fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n this.#checkOnBlurEvent(cell, id);\n }\n\n return CHIAdapter(currentValue);\n }\n\n #GRAAdapter() {\n //TODO: definire mapping\n return {\n data: {\n sizeX: '50px',\n offlineMode: {\n value: '8;4;5',\n },\n id: 'i1012_GREF_0',\n cellId: 'i1012_GREF_0',\n sizeY: '50px',\n },\n };\n }\n\n #BTNAdapter(\n _options: GenericObject,\n _fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n cell.data = cell.data || {};\n\n cell.data.onClick = () => {\n this.#getFunctionOnClickBTN(cell, id);\n };\n\n if (cell.data?.keyShortcut && !cell.data?.disabled) {\n this.#keysShortcut.push(cell.data?.keyShortcut);\n this.#kupManager.keysBinding.register(\n cell.data?.keyShortcut,\n cell.data.onClick.bind(this)\n );\n }\n\n return {\n label: cell.value,\n fun: cell.fun,\n ...cell.data,\n };\n }\n\n #CMBandACPAdapter(\n rawOptions: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n const configCMandACP = CMBandACPAdapter(currentValue, fieldLabel, []);\n\n if (cell.fun) {\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n\n const evNames = this.#eventNames.get(cellType);\n\n if (!evNames) {\n return;\n }\n\n evNames.map((evName) => {\n const handler = (\n e: CustomEvent<KupAutocompleteEventPayload>\n ) => {\n this.#getAutocompleteEventCallback(\n e.detail,\n cell.fun,\n configCMandACP,\n id,\n currentValue\n );\n };\n this.rootElement.addEventListener(evName, handler);\n this.#listeners.push({\n event: evName,\n handler,\n });\n });\n } else if (rawOptions) {\n configCMandACP.data['kup-list'].data =\n this.#optionsTreeComboAdapter(rawOptions, currentValue);\n }\n\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n this.#checkOnBlurEvent(cell, id);\n }\n\n return configCMandACP;\n }\n\n #CHKAdapter(\n _options: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n let data = CHKAdapter(currentValue, fieldLabel);\n\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n ...data,\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n\n return data;\n }\n\n #CLPAdapter(\n _options: GenericObject,\n fieldLabel: string,\n _currentValue: string\n ) {\n return {\n data: {\n 'kup-text-field': {\n label: fieldLabel,\n },\n },\n };\n }\n\n #EDTAdapter(\n _options: GenericObject,\n _fieldLabel: string,\n currentValue: string\n ) {\n return {\n initialValue: currentValue,\n };\n }\n\n #ITXAdapter(\n _options: GenericObject,\n fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n label: fieldLabel,\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n return { label: fieldLabel };\n }\n\n #RADAdapter(\n options: GenericObject,\n _fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n let data = RADAdapter(currentValue, options);\n\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n ...data,\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n\n return data;\n }\n\n #SWTAdapter(\n _options: GenericObject,\n fieldLabel: string,\n currentValue: string\n ) {\n return SWTAdapter(currentValue, fieldLabel);\n }\n\n #DateAdapter(\n _options: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n this.#checkOnBlurEvent(cell, id);\n }\n\n return {\n data: {\n 'kup-text-field': {\n label: fieldLabel,\n },\n },\n initialValue: currentValue,\n };\n }\n\n #ObjectAdapter(\n _options: GenericObject,\n fieldLabel: string,\n currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n initialValue: currentValue || '',\n label: fieldLabel || ' ',\n value: currentValue || '',\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n\n return {\n initialValue: currentValue || '',\n label: fieldLabel || ' ',\n value: currentValue || '',\n };\n }\n\n #TimeAdapter(\n _options: GenericObject,\n fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n this.#checkOnBlurEvent(cell, id);\n }\n return {\n data: {\n 'kup-text-field': {\n label: fieldLabel,\n },\n },\n };\n }\n\n #NumberAdapter(\n _options: GenericObject,\n fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n if (\n cell.inputSettings?.checkObject ||\n cell.inputSettings?.checkValueOnExit ||\n cell.mandatory\n ) {\n return {\n label: fieldLabel,\n onBlur: () => {\n this.#checkOnBlurProp(cell, id);\n },\n };\n }\n return { label: fieldLabel };\n }\n\n #DataTableAdapter(\n _rawOptions: GenericObject,\n _fieldLabel: string,\n _value: string,\n cell: KupInputPanelCell,\n id: string\n ) {\n try {\n let data = JSON.parse(cell.value);\n\n if (!data) {\n this.#kupManager.debug.logMessage(\n this,\n `Empty value for ${id} cell.`,\n KupDebugCategory.WARNING\n );\n return null;\n }\n\n if ((data as any).type !== 'SmeupDataTable') {\n this.#kupManager.debug.logMessage(\n this,\n `Wrong data table type for ${id} cell. Type \\`SmeupDataTable\\` in value expected`,\n KupDebugCategory.ERROR\n );\n return null;\n }\n\n return {\n data: {\n columns: data.columns.map((col) => ({\n ...col,\n obj: data.rows[0].cells[col.name].obj,\n })),\n rows: data.rows.map((row) => ({\n ...row,\n cells: Object.keys(row.cells).reduce((cell, key) => {\n const column = data.columns.find(\n (col) => col.name === key\n );\n return {\n ...cell,\n [key]: {\n ...row.cells[key],\n data: {\n ...this.#mapData(\n row.cells[key],\n column\n ),\n disabled:\n row.cells[key].editable === false,\n id: column.id,\n },\n },\n };\n }, {}),\n })),\n },\n };\n } catch (e) {\n this.#kupManager.debug.logMessage(\n this,\n `Invalid value for ${id} cell. Type \\`SmeupDataTable\\` expected`,\n KupDebugCategory.ERROR\n );\n return null;\n }\n }\n\n #getTableUpdatedCell(\n tableValue: KupDataTableDataset,\n cellId: string\n ): KupDataTableDataset {\n const updated: KupDataTableDataset = {\n ...tableValue,\n rows: tableValue.rows.map((row) => ({ ...row, cells: {} })),\n };\n\n const editableColsId = tableValue.columns\n .filter((col) => col.isEditable)\n .map((col) => col.name);\n\n if (!editableColsId.length) {\n return updated;\n }\n\n try {\n const beforeTableValue = JSON.parse(\n this.#originalData.rows[0].cells[cellId].value\n );\n\n updated.rows = tableValue.rows.map((row, i) =>\n editableColsId.reduce<KupDataTableRow>(\n (updatedRow, colId) => {\n const changed =\n beforeTableValue.rows[i].cells[colId] &&\n row.cells[colId].value !==\n beforeTableValue.rows[i].cells[colId].value;\n\n if (changed) {\n return {\n ...beforeTableValue.rows[i],\n cells: {\n ...updatedRow.cells,\n [colId]: {\n ...beforeTableValue.rows[i].cells[\n colId\n ],\n value: row.cells[colId].value,\n },\n },\n };\n }\n\n return {\n ...beforeTableValue.rows[i],\n cells: updatedRow.cells,\n };\n },\n { ...beforeTableValue.rows[i], cells: {} }\n )\n );\n\n return updated;\n } catch (e) {\n return updated;\n }\n }\n\n #optionsTreeComboAdapter(options: any, currentValue: string) {\n const adapter = this.#optionsAdapterMap.get(options.type);\n\n if (adapter) {\n return adapter(options, currentValue);\n } else {\n return options.map((option) => ({\n value: option.label,\n id: option.id,\n selected: currentValue === option.id,\n }));\n }\n }\n\n #treeOptionsNodeAdapter(\n options: any,\n currentValue: string\n ): GenericObject[] {\n return options.children.map((child) => ({\n id: child.content.codice,\n value: child.content.testo,\n selected: currentValue === child.content.codice,\n children: child.children?.length\n ? this.#treeOptionsNodeAdapter(child, currentValue)\n : [],\n }));\n }\n\n #dataTreeOptionsChildrenAdapter(\n options: any,\n currentValue: string\n ): GenericObject[] {\n return options.children.map((child) => ({\n id: child.obj.k,\n value: child.value,\n selected: currentValue === child.obj.k,\n children: child.children?.length\n ? this.#dataTreeOptionsChildrenAdapter(child, currentValue)\n : [],\n }));\n }\n\n #tableOptionsAdapter(options: any, currentValue: string): GenericObject[] {\n return options.rows.map((row) => {\n const cells = row.fields || row.cells;\n const [id, value] = Object.keys(cells);\n\n return {\n id: cells[id].value,\n value: cells[value]?.value || cells[id].value,\n selected: currentValue === cells[id].value,\n };\n });\n }\n\n #commandAdapter(cell: KupDataCell): KupDataCell {\n const buttonCell = {\n ...cell,\n data: this.#BTNAdapter(null, null, cell.value, cell, cell.obj.k),\n id: cell.obj.k,\n };\n return buttonCell;\n }\n\n #getAutocompleteEventCallback(\n detail: KupAutocompleteEventPayload | KupComboboxIconClickEventPayload,\n fun: string,\n data: any,\n id: string,\n currentValue: string\n ) {\n if (\n detail.id !== id ||\n (detail as KupComboboxIconClickEventPayload).open === false\n ) {\n return;\n }\n this.optionsHandler(\n fun,\n detail.inputValue,\n this.#reverseMapCells(),\n detail.id\n ).then((options) => {\n data.data['kup-list'].data =\n this.#optionsTreeComboAdapter(options, currentValue) ?? [];\n detail.comp.refresh();\n });\n }\n\n async #checkOnBlurProp(cell: KupInputPanelCell, id: string) {\n const currCell = this.#getCell(id);\n\n // Required cell check\n if (cell.mandatory) {\n this.#setCellError(\n id,\n currCell.value\n ? // If it's not empty remove the error message\n null\n : // else set the error message\n this.#kupManager.language.translate(\n KupLanguageGeneric.REQUIRED_VALUE\n )\n );\n\n if (!currCell.value) {\n return;\n }\n } else {\n this.#setCellError(id, null);\n }\n\n // Valid object check\n if (cell.inputSettings?.checkObject && currCell.value) {\n const { valid } = await this.checkValidObjCallback({\n obj: cell.obj,\n currentState: this.#reverseMapCells(),\n fun: cell.fun,\n });\n if (valid) {\n this.#setCellError(id, null);\n } else {\n this.#setCellError(\n id,\n this.#kupManager.language.translate(\n KupLanguageGeneric.INVALID_VALUE\n )\n );\n return;\n }\n }\n\n if (cell.inputSettings?.checkValueOnExit && this.#areValuesUpdated()) {\n this.checkValidValueCallback(\n {\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n },\n id\n );\n }\n }\n\n #checkOnBlurEvent(cell: KupInputPanelCell, id: string) {\n const evName = this.#eventBlurNames.get(cell.shape);\n if (!evName) {\n return;\n }\n\n const handler = async (e: CustomEvent<KupAutocompleteEventPayload>) => {\n const currCell = this.#getCell(id);\n\n if (e.detail.id !== id) {\n return;\n }\n\n // Required cell check\n if (cell.mandatory) {\n this.#setCellError(\n id,\n currCell.value\n ? // If it's not empty remove the error message\n null\n : // else set the error message\n this.#kupManager.language.translate(\n KupLanguageGeneric.REQUIRED_VALUE\n )\n );\n\n if (!e.detail.value) {\n return;\n }\n } else {\n this.#setCellError(id, null);\n }\n\n // Valid object check\n if (cell.inputSettings?.checkObject && e.detail.value) {\n const { valid } = await this.checkValidObjCallback({\n obj: cell.obj,\n currentState: this.#reverseMapCells(),\n fun: cell.fun,\n });\n\n this.#setCellError(\n id,\n valid\n ? // If it's not empty remove the error message\n null\n : // else set the error message\n this.#kupManager.language.translate(\n KupLanguageGeneric.INVALID_VALUE\n )\n );\n if (!valid) {\n return;\n }\n }\n\n if (\n cell.inputSettings?.checkValueOnExit &&\n this.#areValuesUpdated()\n ) {\n this.checkValidValueCallback(\n {\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n },\n id\n );\n }\n };\n this.rootElement.addEventListener(evName, handler);\n this.#listeners.push({\n event: evName,\n handler,\n });\n }\n\n #setCellError(id: string, error: string) {\n this.inputPanelCells = this.inputPanelCells.map((cell) => ({\n ...cell,\n cells: cell.cells.map(({ cell, column }) => {\n const data =\n column.name === id\n ? {\n ...cell.data,\n error,\n }\n : cell.data;\n return {\n column,\n cell: {\n ...cell,\n data,\n },\n };\n }),\n }));\n }\n\n #areValuesUpdated() {\n return this.inputPanelCells.some(({ cells, row }) =>\n cells.some(\n ({ cell, column: { name } }) =>\n cell.value !== row.cells[name].value\n )\n );\n }\n\n #getFunctionOnClickBTN(cell: KupInputPanelCell, id: string) {\n cell.fun\n ? this.customButtonClickHandler({\n fun: cell.fun,\n cellId: id,\n currentState: this.#reverseMapCells(),\n })\n : this.submitCb({\n value: {\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n },\n cell: id,\n });\n }\n\n //#endregion\n\n //#region LIFECYCLE HOOKS\n /*-------------------------------------------------*/\n /* L i f e c y c l e H o o k s */\n /*-------------------------------------------------*/\n\n componentWillLoad() {\n this.#kupManager.debug.logLoad(this, false);\n this.#kupManager.language.register(this);\n this.#kupManager.theme.register(this);\n this.onDataChanged();\n }\n\n componentDidLoad() {\n this.kupReady.emit({ comp: this, id: this.rootElement.id });\n this.#kupManager.debug.logLoad(this, true);\n }\n\n componentWillRender() {\n this.#kupManager.debug.logRender(this, false);\n }\n\n componentDidRender() {\n const root: ShadowRoot = this.rootElement.shadowRoot;\n if (root) {\n const fs: NodeListOf<HTMLElement> =\n root.querySelectorAll('.f-text-field');\n for (let index = 0; index < fs.length; index++) {\n FTextFieldMDC(fs[index]);\n }\n }\n this.#kupManager.debug.logRender(this, true);\n }\n\n render() {\n const isEmptyData = Boolean(!this.inputPanelCells.length);\n\n const inputPanelContent: VNode[] = isEmptyData\n ? [\n <p>\n {this.#kupManager.language.translate(\n KupLanguageGeneric.EMPTY_DATA\n )}\n </p>,\n ]\n : this.inputPanelCells.map((inputPanelCell) =>\n this.#renderRow(inputPanelCell)\n );\n\n return (\n <Host>\n <style>\n {this.#kupManager.theme.setKupStyle(\n this.rootElement as KupComponent\n )}\n </style>\n <div id={componentWrapperId}>{inputPanelContent}</div>\n </Host>\n );\n }\n\n disconnectedCallback() {\n this.#kupManager.language.unregister(this);\n this.#kupManager.theme.unregister(this);\n }\n //#endregion\n}\n"],"version":3}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kup-input-panel-utils.js","sourceRoot":"","sources":["../../../src/components/kup-input-panel/kup-input-panel-utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"kup-input-panel-utils.js","sourceRoot":"","sources":["../../../src/components/kup-input-panel/kup-input-panel-utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAE7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC/C,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACd,OAAO,UAAU,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACf,OAAO,GAAG,GAAG,UAAU,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,GAAG,UAAU,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,EAAE;IAChD,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,GAAG,UAAU,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,GAAG,GAAG,UAAU,CAAC;AAC5B,CAAC,CAAC","sourcesContent":["export const CHAR_WIDTH = 12;\nexport const ROW_HEIGHT = 22;\n\nexport const getAbsoluteWidth = (length: number) => {\n if (length == 0) {\n return CHAR_WIDTH / 2;\n }\n\n if (!length) {\n return null;\n }\n\n if (length === 1) {\n return 1.5 * CHAR_WIDTH;\n }\n\n return length * CHAR_WIDTH;\n};\n\nexport const getAbsoluteHeight = (height: number) => {\n if (!height) {\n return null;\n }\n\n return height * ROW_HEIGHT;\n};\n\nexport const getAbsoluteTop = (row: number) => {\n if (!row) {\n return null;\n }\n\n return (row - 1) * ROW_HEIGHT;\n};\n\nexport const getAbsoluteLeft = (col: number) => {\n if (!col) {\n return null;\n }\n\n return col * CHAR_WIDTH;\n};\n"]}
|