@sme.up/ketchup 11.0.0-SNAPSHOT-20241031153324 → 11.0.0-SNAPSHOT-20241104154346

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.
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KupInputPanelLayoutSectionType","KupInputPanelProps","CHAR_WIDTH","ROW_HEIGHT","getAbsoluteWidth","length","getAbsoluteHeight","height","getAbsoluteTop","row","getAbsoluteLeft","col","kupInputPanelCss","KupInputPanelStyle0","dom","document","documentElement","KupInputPanel","_KupInputPanel_kupManager","set","this","kupManagerInstance","_KupInputPanel_optionsAdapterMap","Map","__classPrivateFieldGet","_KupInputPanel_instances","_KupInputPanel_treeOptionsNodeAdapter","bind","_KupInputPanel_dataTreeOptionsChildrenAdapter","_KupInputPanel_tableOptionsAdapter","_KupInputPanel_originalData","_KupInputPanel_eventNames","FCellTypes","AUTOCOMPLETE","MULTI_AUTOCOMPLETE","COMBOBOX","MULTI_COMBOBOX","_KupInputPanel_eventBlurNames","FCellShapes","CHIP","DATE","TIME","_KupInputPanel_listeners","_KupInputPanel_cellTypeComponents","_KupInputPanel_cellCustomRender","BUTTON_LIST","_KupInputPanel_renderButton","EDITOR","_KupInputPanel_renderEditor","LABEL","_KupInputPanel_renderLabel","TABLE","_KupInputPanel_renderDataTable","_KupInputPanel_sectionRenderMap","TAB","_KupInputPanel_renderSectionTab","_KupInputPanel_keysShortcut","onDataChanged","__classPrivateFieldSet","structuredClone","data","map","event","handler","rootElement","removeEventListener","key","keysBinding","unregister","_KupInputPanel_mapCells","call","getProps","descriptions","refresh","forceUpdate","setProps","props","componentWillLoad","debug","logLoad","language","register","theme","componentDidLoad","kupReady","emit","comp","id","componentWillRender","logRender","componentDidRender","root","shadowRoot","fs","querySelectorAll","index","FTextFieldMDC","render","isEmptyData","Boolean","inputPanelCells","inputPanelContent","h","translate","KupLanguageGeneric","EMPTY_DATA","inputPanelCell","_KupInputPanel_renderRow","Host","setKupStyle","componentWrapperId","disconnectedCallback","reduce","cell","cells","find","column","name","layout","horizontal","styleObj","rowContent","_a","sections","_KupInputPanel_renderCell","absolute","_KupInputPanel_renderAbsoluteLayout","sectionsType","hasDim","some","sec","dim","display","gridTemplateColumns","join","gridTemplateRows","_KupInputPanel_renderGridLayout","classObj","onSubmit","e","preventDefault","submitCb","value","before","Object","assign","after","_KupInputPanel_reverseMapCells","class","style","hiddenSubmitButton","FButton","buttonType","label","CONFIRM","wrapperClass","customRender","get","shape","undefined","cellProps","component","editable","renderKup","setSizes","_KupInputPanel_getLabelComponent","title","FCell","cellId","icon","edtCell","detail","htmlValue","replace","addEventListener","push","isReadOnly","isEditable","showToolbar","editableData","showGroups","showFilters","showFooter","cellType","ketchup","getType","RADIO","sectionRender","section","_KupInputPanel_renderSection","_KupInputPanel_renderAbsoluteSection","customLabelRender","gap","content","innerSection","gridCols","gridRows","_b","field","_KupInputPanel_renderField","sectionContent","_KupInputPanel_renderAbsoluteField","width","absoluteWidth","absoluteHeight","top","absoluteRow","left","absoluteColumn","sectionStyle","position","overflow","tabSelected","tabNodes","i","cellIdsInSection","contentItem","hasError","cellData","includes","error","active","danger","sectionId","tabCustomStyle","l","node","customStyle","fieldCell","colSpan","colStart","colEnd","rowSpan","rowStart","rowEnd","absoluteLength","inpuPanelCells","rows","columns","filter","visible","mappedCell","_KupInputPanel_setData","slotData","_KupInputPanel_slotData","componentQuery","el","querySelector","setValue","defaultProps","_KupInputPanel_mapData","disabled","noDataProps","__rest","_KupInputPanel_deepObjectsMerge","target","source","Array","isArray","curr","updatedCells","keys","cellState","c","JSON","stringify","_KupInputPanel_getTableUpdatedCell","obj","options","fieldLabel","currentValue","dataAdapterMap","_KupInputPanel_CMBandACPAdapter","_KupInputPanel_BTNAdapter","CHART","_KupInputPanel_GRAAdapter","_KupInputPanel_CHIAdapter","CHECKBOX","_KupInputPanel_CHKAdapter","COLOR_PICKER","_KupInputPanel_CLPAdapter","_KupInputPanel_EDTAdapter","NUMBER","_KupInputPanel_NumberAdapter","_KupInputPanel_DateAdapter","OBJECT","_KupInputPanel_ObjectAdapter","_KupInputPanel_RADAdapter","STRING","_KupInputPanel_ITXAdapter","SWITCH","_KupInputPanel_SWTAdapter","_KupInputPanel_DataTableAdapter","_KupInputPanel_TimeAdapter","adapter","trailingIcon","fullWidth","showDropDownIcon","_options","_fieldLabel","inputSettings","checkObject","checkValueOnExit","mandatory","_KupInputPanel_checkOnBlurEvent","CHIAdapter","sizeX","offlineMode","sizeY","_currentValue","onClick","fun","customButtonClickHandler","currentState","keyShortcut","_c","_d","rawOptions","configCMandACP","CMBandACPAdapter","evNames","evName","_KupInputPanel_getAutocompleteEventCallback","_KupInputPanel_optionsTreeComboAdapter","CHKAdapter","onBlur","_KupInputPanel_checkOnBlurProp","initialValue","RADAdapter","SWTAdapter","_rawOptions","_value","parse","logMessage","KupDebugCategory","WARNING","type","ERROR","tableValue","updated","editableColsId","beforeTableValue","updatedRow","colId","changed","option","selected","children","child","codice","testo","k","fields","open","optionsHandler","inputValue","then","async","currCell","_KupInputPanel_getCell","_KupInputPanel_setCellError","REQUIRED_VALUE","valid","checkValidObjCallback","INVALID_VALUE","_KupInputPanel_areValuesUpdated","checkValidValueCallback"],"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} 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}\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) => 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_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: 2rem;\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\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 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 { 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 {\n GenericObject,\n KupComponent,\n KupEventPayload,\n} from '../../types/GenericTypes';\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 { KupDebugCategory } from '../../managers/kup-debug/kup-debug-declarations';\nimport {\n getAbsoluteHeight,\n getAbsoluteLeft,\n getAbsoluteTop,\n getAbsoluteWidth,\n} from './kup-input-panel-utils';\nimport {\n CHIAdapter,\n CHKAdapter,\n CMBandACPAdapter,\n RADAdapter,\n SWTAdapter,\n} from '../../utils/cell-utils';\nimport { KupObj } from '../../managers/kup-objects/kup-objects-declarations';\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 //#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 * 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 styleObj.gridTemplateRows = hasDim\n ? layout.sections\n .map((sec) => sec.dim || 'auto')\n .join(' ')\n : `repeat(${layout.sections.length}, 1fr)`;\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 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 {!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 </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 #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 (!section.gridRows && !section.horizontal) {\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\n styleObj.gridTemplateRows =\n +section.gridRows > 0 ? `repeat(${section.gridRows}, 1fr)` : '';\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 <h3>{section.title}</h3>\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 const width = `${getAbsoluteWidth(section.absoluteWidth)}px`;\n const height = `${getAbsoluteHeight(section.absoluteHeight)}px`;\n const top = `${getAbsoluteTop(section.absoluteRow)}px`;\n const left = `${getAbsoluteLeft(section.absoluteColumn)}px`;\n\n const sectionStyle = {\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 return <div style={sectionStyle}>{content}</div>;\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 = section.content.map(\n (contentItem) => contentItem.id\n );\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 '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 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 #mapCells(data: KupInputPanelData) {\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),\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(cell: KupInputPanelCell, column: KupInputPanelColumn) {\n const defaultProps = {\n ...this.#mapData(cell, column),\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(cell: KupInputPanelCell, col: KupInputPanelColumn) {\n if (!cell) {\n return null;\n }\n\n const options = cell.options;\n const fieldLabel = col.title;\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 };\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 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 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 #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 }\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 before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n });\n }\n }\n\n #checkOnBlurEvent(cell: KupInputPanelCell, id: string) {\n const evName = this.#eventBlurNames.get(cell.shape);\n\n if (!evName) {\n return;\n }\n\n const handler = async (e: CustomEvent<KupAutocompleteEventPayload>) => {\n if (e.detail.id !== id) {\n return;\n }\n\n // Required cell check\n if (cell.mandatory) {\n e.detail.comp.error = e.detail.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 e.detail.comp.refresh();\n\n if (!e.detail.value) {\n return;\n }\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 e.detail.comp.error = valid\n ? null\n : this.#kupManager.language.translate(\n KupLanguageGeneric.INVALID_VALUE\n );\n e.detail.comp.refresh();\n if (!valid) {\n return;\n }\n }\n\n if (\n cell.inputSettings?.checkValueOnExit &&\n this.#areValuesUpdated()\n ) {\n this.checkValidValueCallback({\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\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 //#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"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sme.up/ketchup",
3
- "version": "11.0.0-SNAPSHOT-20241031153324",
3
+ "version": "11.0.0-SNAPSHOT-20241104154346",
4
4
  "keywords": [
5
5
  "smeup",
6
6
  "KetchUP",
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,f as e,h as n,H as s,d as o}from"./p-d7c15b0e.js";import{F as l}from"./p-cc32b7a2.js";import{F as r}from"./p-7d7b8718.js";import{k as a,a5 as u,F as c,g as h,s as f,h as p,al as d,ab as m,aa as b,am as v,e as k,ak as g}from"./p-86b6489e.js";import{F as y}from"./p-c4054aba.js";import{c as _}from"./p-635bb4b3.js";import"./p-e3062c19.js";import"./p-2b519589.js";import"./p-5d03c077.js";import"./p-fe31a004.js";import"./p-a16707d1.js";import"./p-029c7cbe.js";import"./p-d4a879fc.js";var j;(function(t){t["TAB"]="tab"})(j||(j={}));var x;(function(t){t["customStyle"]="Custom style of the component.";t["data"]="Actual data of the input panel.";t["hiddenSubmitButton"]="Creates a hidden submit button in order to submit the form with enter.";t["submitCb"]="Sets the callback function on submit form";t["optionsHandler"]="Sets the callback function to recieve options"})(x||(x={}));const w=12;const O=22;const $=t=>{if(t==0){return w/2}if(!t){return null}if(t===1){return 1.5*w}return t*w};const z=t=>{if(!t){return null}return t*O};const S=t=>{if(!t){return null}return(t-1)*O};const M=t=>{if(!t){return null}return t*w};const T=".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_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: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}: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{height:40ch;justify-content:flex-end}:host .input-panel--absolute .input-panel-label{justify-content:start}:host .input-panel--absolute .mdc-text-field{height:unset !important}";const W=T;var D=undefined&&undefined.__classPrivateFieldGet||function(t,i,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof i==="function"?t!==i||!n:!i.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(t):n?n.value:i.get(t)};var C=undefined&&undefined.__classPrivateFieldSet||function(t,i,e,n,s){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof i==="function"?t!==i||!s:!i.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(t,e):s?s.value=e:i.set(t,e),e};var E=undefined&&undefined.__rest||function(t,i){var e={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&i.indexOf(n)<0)e[n]=t[n];if(t!=null&&typeof Object.getOwnPropertySymbols==="function")for(var s=0,n=Object.getOwnPropertySymbols(t);s<n.length;s++){if(i.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(t,n[s]))e[n[s]]=t[n[s]]}return e};var F,B,I,P,R,N,V,G,J,A,L,H,K,X,Y,q,Q,U,Z,tt,it,et,nt,st,ot,lt,rt,at,ut,ct,ht,ft,pt,dt,mt,bt,vt,kt,gt,yt,_t,jt,xt,wt,Ot,$t,zt,St,Mt,Tt,Wt,Dt,Ct,Et,Ft,Bt;const It=document.documentElement;const Pt=class{constructor(e){t(this,e);this.kupReady=i(this,"kup-input-panel-ready",6);F.add(this);B.set(this,a());I.set(this,new Map([["SmeupTreeNode",D(this,F,"m",Tt).bind(this)],["SmeupDataTree",D(this,F,"m",Wt).bind(this)],["SmeupTable",D(this,F,"m",Dt).bind(this)],["SmeupDataTable",D(this,F,"m",Dt).bind(this)]]));P.set(this,null);R.set(this,new Map([[u.AUTOCOMPLETE,["kup-autocomplete-input","kup-autocomplete-iconclick"]],[u.MULTI_AUTOCOMPLETE,["kup-autocomplete-input","kup-autocomplete-iconclick"]],[u.COMBOBOX,["kup-combobox-iconclick","kup-combobox-blur"]],[u.MULTI_COMBOBOX,["kup-combobox-iconclick"]]]));N.set(this,new Map([[c.AUTOCOMPLETE,"kup-autocomplete-blur"],[c.CHIP,"kup-textfield-blur"],[c.COMBOBOX,"kup-combobox-blur"],[c.DATE,"kup-datepicker-blur"],[c.MULTI_AUTOCOMPLETE,"kup-autocomplete-blur"],[c.MULTI_COMBOBOX,"kup-combobox-blur"],[c.TIME,"kup-timepicker-blur"]]));V.set(this,[]);G.set(this,new Map([[u.DATE,"kup-date-picker"],[u.TIME,"kup-time-picker"]]));J.set(this,new Map([[c.BUTTON_LIST,D(this,F,"m",Y).bind(this)],[c.EDITOR,D(this,F,"m",q).bind(this)],[c.LABEL,D(this,F,"m",U).bind(this)],[c.TABLE,D(this,F,"m",Q).bind(this)]]));A.set(this,new Map([[j.TAB,D(this,F,"m",st).bind(this)]]));L.set(this,[]);this.customStyle="";this.data=null;this.hiddenSubmitButton=false;this.submitCb=null;this.optionsHandler=null;this.customButtonClickHandler=null;this.checkValidObjCallback=null;this.checkValidValueCallback=null;this.inputPanelCells=[];this.tabSelected=null}onDataChanged(){C(this,P,structuredClone(this.data),"f");if(D(this,V,"f").length){D(this,V,"f").map((({event:t,handler:i})=>{this.rootElement.removeEventListener(t,i)}));C(this,V,[],"f")}if(D(this,L,"f").length){D(this,L,"f").map((t=>{D(this,B,"f").keysBinding.unregister(t)}));C(this,L,[],"f")}D(this,F,"m",rt).call(this,this.data)}async getProps(t){return h(this,x,t)}async refresh(){e(this)}async setProps(t){f(this,x,t)}componentWillLoad(){D(this,B,"f").debug.logLoad(this,false);D(this,B,"f").language.register(this);D(this,B,"f").theme.register(this);this.onDataChanged()}componentDidLoad(){this.kupReady.emit({comp:this,id:this.rootElement.id});D(this,B,"f").debug.logLoad(this,true)}componentWillRender(){D(this,B,"f").debug.logRender(this,false)}componentDidRender(){const t=this.rootElement.shadowRoot;if(t){const i=t.querySelectorAll(".f-text-field");for(let t=0;t<i.length;t++){y(i[t])}}D(this,B,"f").debug.logRender(this,true)}render(){const t=Boolean(!this.inputPanelCells.length);const i=t?[n("p",null,D(this,B,"f").language.translate(p.EMPTY_DATA))]:this.inputPanelCells.map((t=>D(this,F,"m",K).call(this,t)));return n(s,{key:"7ae77114173bbc2a7a10678bf383195f3d4ca673"},n("style",{key:"3a4c24a21da022013bf843c526caeb068439ecbe"},D(this,B,"f").theme.setKupStyle(this.rootElement)),n("div",{key:"10d9e5f5035ccd27484c879231bd25a4e44e360d",id:_},i))}disconnectedCallback(){D(this,B,"f").language.unregister(this);D(this,B,"f").theme.unregister(this)}get rootElement(){return o(this)}static get watchers(){return{data:["onDataChanged"]}}};B=new WeakMap,I=new WeakMap,P=new WeakMap,R=new WeakMap,N=new WeakMap,V=new WeakMap,G=new WeakMap,J=new WeakMap,A=new WeakMap,L=new WeakMap,F=new WeakSet,H=function t(i){return this.inputPanelCells.reduce(((t,{cells:e})=>{if(!t){return e.find((({column:t})=>t.name===i)).cell}return t}),null)},K=function t(i){var e;const s=i.row.layout;const o=(s===null||s===void 0?void 0:s.horizontal)||false;const r={};let a;if(!((e=s===null||s===void 0?void 0:s.sections)===null||e===void 0?void 0:e.length)){a=i.cells.map((t=>D(this,F,"m",X).call(this,t.cell,i.row,t.column)))}else{if(s.absolute){a=D(this,F,"m",it).call(this,i,s)}else{const t=s.sections.some((t=>t.dim));if(s.horizontal){r.display="grid";r.gridTemplateColumns=t?s.sections.map((t=>t.dim||"auto")).join(" "):`repeat(${s.sections.length}, 1fr)`}else{r.display="grid";r.gridTemplateRows=t?s.sections.map((t=>t.dim||"auto")).join(" "):`repeat(${s.sections.length}, 1fr)`}a=D(this,F,"m",tt).call(this,i,s)}}const u={"input-panel":true,"input-panel--column":!o,"input-panel--absolute":s===null||s===void 0?void 0:s.absolute};return n("form",{name:this.rootElement.id,onSubmit:t=>{t.preventDefault();this.submitCb({value:{before:Object.assign({},D(this,P,"f")),after:D(this,F,"m",ct).call(this)}})}},n("div",{class:u,style:r},a),!this.hiddenSubmitButton?n(l,{buttonType:"submit",label:D(this,B,"f").language.translate(p.CONFIRM),wrapperClass:"form__submit"}):null)},X=function t(i,e,s){if(!i){return}const o=D(this,J,"f").get(i.shape);if(o!==undefined){return o(i,s.name)}const l={cell:i,column:s,row:e,component:this,editable:true,renderKup:true,setSizes:true};const a=D(this,F,"m",Z).call(this,i,s.title);if(a){return n("div",{class:{"input-panel__label_container":true}},a,n(r,Object.assign({},l)))}return n(r,Object.assign({},l))},Y=function t(i,e){return n(l,Object.assign({icon:i.icon,id:e},i.data,{wrapperClass:"form__submit"}))},q=function t(i,e){const s="kup-editor-save";const o=t=>{const i=this.inputPanelCells.reduce(((t,{cells:i})=>{if(!t){return i.find((({column:t})=>t.name===e)).cell}return t}),null);i.value=t.detail.htmlValue.replace(/\n/g,"<br>")};this.rootElement.addEventListener(s,o);D(this,V,"f").push({event:s,handler:o});return n("kup-editor",Object.assign({},i.data,{id:e,isReadOnly:!i.isEditable,showToolbar:true}))},Q=function t(i,e){return n("kup-data-table",Object.assign({id:e,editableData:true,showGroups:true,showFilters:true,showFooter:true},i.data))},U=function t(i,e){return n("span",{class:"input-panel-label",id:e},i.value)},Z=function t(i,e){if(!e){return null}const s=It.ketchup.data.cell.getType(i,i.shape);if(s===u.RADIO){return n("span",null,e)}return null},tt=function t(i,e){const n=D(this,A,"f").get(e.sectionsType);return n?n(i,e.sections):e.sections.map((t=>D(this,F,"m",et).call(this,i,t)))},it=function t(i,e){return e.sections.map((t=>D(this,F,"m",nt).call(this,i,t)))},et=function t(i,e,s=false,o={}){var l,r;const a={"input-panel__section":!e.horizontal,"input-panel__horizontal-section":e.horizontal};o.gap=+e.gap>0?`${e.gap}rem`:"1rem";let u=[];if((l=e.sections)===null||l===void 0?void 0:l.length){u=e.sections.map((e=>D(this,F,"m",t).call(this,i,e)));const n=e.sections.some((t=>t.dim));if(!e.gridCols&&e.horizontal){o.gridTemplateColumns=n?e.sections.map((t=>t.dim||"auto")).join(" "):`repeat(${e.sections.length}, 1fr)`}if(!e.gridRows&&!e.horizontal){o.gridTemplateRows=n?e.sections.map((t=>t.dim||"auto")).join(" "):`repeat(${e.sections.length}, 1fr)`}}else if((r=e.content)===null||r===void 0?void 0:r.length){u=e.content.map((t=>D(this,F,"m",ot).call(this,i,t)));o.gridTemplateColumns=+e.gridCols>0?`repeat(${e.gridCols}, 1fr)`:"";o.gridTemplateRows=+e.gridRows>0?`repeat(${e.gridRows}, 1fr)`:""}const c=n("div",{class:a,style:o},u);return e.title&&!s?n("div",{class:{"input-panel__section_label_container":true}},n("h3",null,e.title),c):c},nt=function t(i,e){var s,o;let l=[];if((s=e.sections)===null||s===void 0?void 0:s.length){l=e.sections.map((e=>D(this,F,"m",t).call(this,i,e)))}else if((o=e.content)===null||o===void 0?void 0:o.length){l=e.content.map((t=>D(this,F,"m",lt).call(this,i,t)))}const r=`${$(e.absoluteWidth)}px`;const a=`${z(e.absoluteHeight)}px`;const u=`${S(e.absoluteRow)}px`;const c=`${M(e.absoluteColumn)}px`;const h={position:"absolute",width:r,"min-width":r,"max-width":r,height:a,"min-height":a,"max-height":a,top:u,left:c,overflow:"auto"};return n("div",{style:h},l)},st=function t(i,e){if(!this.tabSelected){this.tabSelected=e[0].id||"0"}const s=e.map(((t,e)=>{const n=t.content.map((t=>t.id));const s=i.cells.some((t=>{var i;const e=t.cell;const s=t.column;return n.includes(s.name)&&!!((i=e.data)===null||i===void 0?void 0:i.error)}));return{active:(t.id||`${e}`)===this.tabSelected,value:t.title,icon:s?"error":t.icon,id:t.id||`${e}`,danger:s}}));const o=e.map(((t,e)=>{const n=t.id||`${e}`;return D(this,F,"m",et).call(this,i,t,true,{display:this.tabSelected!==n?"none":"grid"})}));const l=".tab-bar .tab-scroller .tab .tab__content { justify-content: flex-start; }";if(!D(this,V,"f").map((t=>t.event)).includes("kup-tabbar-click")){const t="kup-tabbar-click";const i=t=>{this.tabSelected=t.detail.node.id};this.rootElement.addEventListener(t,i);D(this,V,"f").push({event:t,handler:i})}return n("div",{class:{"input-panel__tabs_container":true}},n("kup-tab-bar",{data:s,customStyle:l}),o)},ot=function t(i,e){const s=i.cells.find((t=>t.column.name===e.id));const o=+e.colSpan>0?e.colSpan:!(+e.colSpan>0)&&!(+e.colStart>0)?1:null;const l=o?`span ${o}`:`${e.colStart}`;const r=+e.colEnd>0?`${e.colEnd}`:"";const a=+e.rowSpan>0?e.rowSpan:!(+e.rowSpan>0)&&!(+e.rowStart>0)?1:null;const u=a?`span ${a}`:`${e.rowStart}`;const c=+e.rowEnd>0?`${e.rowEnd}`:"";const h={"grid-column-start":l,"grid-column-end":r,"grid-row-start":u,"grid-row-end":c};if(!s||!s.cell){return}return n("div",{style:h},D(this,F,"m",X).call(this,s.cell,i.row,s.column))},lt=function t(i,e){const s=i.cells.find((t=>t.column.name===e.id));if(!s||!s.cell){return}let o;if(s.cell.shape==c.DATE){o=e.absoluteLength>8?e.absoluteLength:8}else{o=e.absoluteLength}const l=`${$(o)}px`;const r=`${z(1)}px`;const a=`${S(e.absoluteRow)}px`;const u=`${M(e.absoluteColumn)}px`;const h={position:"absolute",width:l,"min-width":l,"max-width":l,height:r,"min-height":r,"max-height":r,top:a,left:u,overflow:"auto"};s.cell.data=Object.assign(Object.assign({},s.cell.data),{customStyle:(s.cell.data.customStyle||"")+".mdc-text-field {height: unset !important;}"});return n("div",{style:h},D(this,F,"m",X).call(this,s.cell,i.row,s.column))},rt=function t(i){var e;const n=((e=i===null||i===void 0?void 0:i.rows)===null||e===void 0?void 0:e.length)?i.rows.reduce(((t,e)=>{const n=i.columns.filter((t=>t.visible)).map((t=>{const i=structuredClone(e.cells[t.name]);const n=i?Object.assign(Object.assign({},i),{data:D(this,F,"m",at).call(this,i,t),slotData:D(this,F,"m",ft).call(this,i,t),isEditable:true}):null;return{column:t,cell:n}}));return[...t,{cells:n,row:e}]}),[]):[];n.map((({cells:t})=>t.map((({cell:t,column:i})=>{const e=It.ketchup.data.cell.getType(t,t.shape);const n=D(this,G,"f").get(e);if(!n){return}const s=this.rootElement.shadowRoot.querySelector(`${n}[id=${i.name.replace(/\//g,"\\$1")}]`);s===null||s===void 0?void 0:s.setValue(t.value)}))));this.inputPanelCells=n},at=function t(i,e){const n=Object.assign(Object.assign({},D(this,F,"m",ht).call(this,i,e)),{disabled:!i.editable,id:e.name});const s=It.ketchup.data.cell.getType(i,i.shape);const o=i.data||{},l=E(o,["data"]);return s!==u.MULTI_AUTOCOMPLETE&&s!==u.MULTI_COMBOBOX?D(this,F,"m",ut).call(this,n,Object.assign({},i.data)):Object.assign(Object.assign({},n),l)},ut=function t(i,e){for(const n in e){if(e[n]instanceof Object&&!Array.isArray(e[n])&&n in i){i[n]=D(this,F,"m",t).call(this,i[n],e[n])}else{i[n]=e[n]}}return i},ct=function t(){return this.inputPanelCells.reduce(((t,i)=>{const e=Object.keys(i.row.cells).reduce(((t,e)=>{var n;const s=(n=i.cells.find((t=>t.column.name===e)))===null||n===void 0?void 0:n.cell;let o=s===null||s===void 0?void 0:s.value;if((s===null||s===void 0?void 0:s.shape)===c.TABLE){o=JSON.stringify(D(this,F,"m",St).call(this,s.data.data,e))}return Object.assign(Object.assign({},t),{[e]:Object.assign(Object.assign({},i.row.cells[e]),{value:o,obj:s===null||s===void 0?void 0:s.obj})})}),{});return{columns:[...t.columns,...i.cells.map((t=>t.column))],rows:[...t.rows,{cells:e,layout:i.row.layout}]}}),{columns:[],rows:[]})},ht=function t(i,e){if(!i){return null}const n=i.options;const s=e.title;const o=i.value;const l=It.ketchup.data.cell.getType(i,i.shape);const r=new Map([[u.AUTOCOMPLETE,D(this,F,"m",bt).bind(this)],[u.BUTTON_LIST,D(this,F,"m",mt).bind(this)],[u.CHART,D(this,F,"m",dt).bind(this)],[u.CHIP,D(this,F,"m",pt).bind(this)],[u.CHECKBOX,D(this,F,"m",vt).bind(this)],[u.COLOR_PICKER,D(this,F,"m",kt).bind(this)],[u.COMBOBOX,D(this,F,"m",bt).bind(this)],[u.EDITOR,D(this,F,"m",gt).bind(this)],[u.MULTI_AUTOCOMPLETE,D(this,F,"m",pt).bind(this)],[u.MULTI_COMBOBOX,D(this,F,"m",pt).bind(this)],[u.NUMBER,D(this,F,"m",$t).bind(this)],[u.DATE,D(this,F,"m",xt).bind(this)],[u.OBJECT,D(this,F,"m",wt).bind(this)],[u.RADIO,D(this,F,"m",_t).bind(this)],[u.STRING,D(this,F,"m",yt).bind(this)],[u.SWITCH,D(this,F,"m",jt).bind(this)],[u.TABLE,D(this,F,"m",zt).bind(this)],[u.TIME,D(this,F,"m",Ot).bind(this)]]);const a=r.get(l);return a?a(n,s,o,i,e.name):null},ft=function t(i,e){const n=It.ketchup.data.cell.getType(i,i.shape);if(!i.editable){return null}if(n===u.CHIP){return{trailingIcon:true,label:e.title,disabled:!i.editable,id:e.name,fullWidth:false}}if(n===u.MULTI_AUTOCOMPLETE||n===u.MULTI_COMBOBOX){return Object.assign(Object.assign({},D(this,F,"m",bt).call(this,i.options,e.title,null,i,e.name)),{showDropDownIcon:true,class:"",style:{width:"100%"},disabled:!i.editable,id:e.name})}return null},pt=function t(i,e,n,s,o){var l,r;if(((l=s.inputSettings)===null||l===void 0?void 0:l.checkObject)||((r=s.inputSettings)===null||r===void 0?void 0:r.checkValueOnExit)||s.mandatory){D(this,F,"m",Ft).call(this,s,o)}return d(n)},dt=function t(){return{data:{sizeX:"50px",offlineMode:{value:"8;4;5"},id:"i1012_GREF_0",cellId:"i1012_GREF_0",sizeY:"50px"}}},mt=function t(i,e,n,s,o){var l,r,a,u;s.data=s.data||{};s.data.onClick=()=>{s.fun?this.customButtonClickHandler({fun:s.fun,cellId:o,currentState:D(this,F,"m",ct).call(this)}):this.submitCb({value:{before:Object.assign({},D(this,P,"f")),after:D(this,F,"m",ct).call(this)},cell:o})};if(((l=s.data)===null||l===void 0?void 0:l.keyShortcut)&&!((r=s.data)===null||r===void 0?void 0:r.disabled)){D(this,L,"f").push((a=s.data)===null||a===void 0?void 0:a.keyShortcut);D(this,B,"f").keysBinding.register((u=s.data)===null||u===void 0?void 0:u.keyShortcut,s.data.onClick.bind(this))}return Object.assign({label:s.value,fun:s.fun},s.data)},bt=function t(i,e,n,s,o){var l,r;const a=m(n,e,[]);if(s.fun){const t=It.ketchup.data.cell.getType(s,s.shape);const i=D(this,R,"f").get(t);if(!i){return}i.map((t=>{const i=t=>{D(this,F,"m",Ct).call(this,t.detail,s.fun,a,o,n)};this.rootElement.addEventListener(t,i);D(this,V,"f").push({event:t,handler:i})}))}else if(i){a.data["kup-list"].data=D(this,F,"m",Mt).call(this,i,n)}if(((l=s.inputSettings)===null||l===void 0?void 0:l.checkObject)||((r=s.inputSettings)===null||r===void 0?void 0:r.checkValueOnExit)||s.mandatory){D(this,F,"m",Ft).call(this,s,o)}return a},vt=function t(i,e,n,s,o){var l,r;let a=g(n,e);if(((l=s.inputSettings)===null||l===void 0?void 0:l.checkObject)||((r=s.inputSettings)===null||r===void 0?void 0:r.checkValueOnExit)||s.mandatory){return Object.assign(Object.assign({},a),{onBlur:()=>{D(this,F,"m",Et).call(this,s,o)}})}return a},kt=function t(i,e,n){return{data:{"kup-text-field":{label:e}}}},gt=function t(i,e,n){return{initialValue:n}},yt=function t(i,e,n,s,o){var l,r;if(((l=s.inputSettings)===null||l===void 0?void 0:l.checkObject)||((r=s.inputSettings)===null||r===void 0?void 0:r.checkValueOnExit)||s.mandatory){return{label:e,onBlur:()=>{D(this,F,"m",Et).call(this,s,o)}}}return{label:e}},_t=function t(i,e,n,s,o){var l,r;let a=b(n,i);if(((l=s.inputSettings)===null||l===void 0?void 0:l.checkObject)||((r=s.inputSettings)===null||r===void 0?void 0:r.checkValueOnExit)||s.mandatory){return Object.assign(Object.assign({},a),{onBlur:()=>{D(this,F,"m",Et).call(this,s,o)}})}return a},jt=function t(i,e,n){return v(n,e)},xt=function t(i,e,n,s,o){var l,r;if(((l=s.inputSettings)===null||l===void 0?void 0:l.checkObject)||((r=s.inputSettings)===null||r===void 0?void 0:r.checkValueOnExit)||s.mandatory){D(this,F,"m",Ft).call(this,s,o)}return{data:{"kup-text-field":{label:e}},initialValue:n}},wt=function t(i,e,n,s,o){var l,r;if(((l=s.inputSettings)===null||l===void 0?void 0:l.checkObject)||((r=s.inputSettings)===null||r===void 0?void 0:r.checkValueOnExit)||s.mandatory){return{initialValue:n||"",label:e||" ",value:n||"",onBlur:()=>{D(this,F,"m",Et).call(this,s,o)}}}return{initialValue:n||"",label:e||" ",value:n||""}},Ot=function t(i,e,n,s,o){var l,r;if(((l=s.inputSettings)===null||l===void 0?void 0:l.checkObject)||((r=s.inputSettings)===null||r===void 0?void 0:r.checkValueOnExit)||s.mandatory){D(this,F,"m",Ft).call(this,s,o)}return{data:{"kup-text-field":{label:e}}}},$t=function t(i,e,n,s,o){var l,r;if(((l=s.inputSettings)===null||l===void 0?void 0:l.checkObject)||((r=s.inputSettings)===null||r===void 0?void 0:r.checkValueOnExit)||s.mandatory){return{label:e,onBlur:()=>{D(this,F,"m",Et).call(this,s,o)}}}return{label:e}},zt=function t(i,e,n,s,o){try{let t=JSON.parse(s.value);if(!t){D(this,B,"f").debug.logMessage(this,`Empty value for ${o} cell.`,k.WARNING);return null}if(t.type!=="SmeupDataTable"){D(this,B,"f").debug.logMessage(this,`Wrong data table type for ${o} cell. Type \`SmeupDataTable\` in value expected`,k.ERROR);return null}return{data:{columns:t.columns.map((i=>Object.assign(Object.assign({},i),{obj:t.rows[0].cells[i.name].obj}))),rows:t.rows.map((i=>Object.assign(Object.assign({},i),{cells:Object.keys(i.cells).reduce(((e,n)=>{const s=t.columns.find((t=>t.name===n));return Object.assign(Object.assign({},e),{[n]:Object.assign(Object.assign({},i.cells[n]),{data:Object.assign(Object.assign({},D(this,F,"m",ht).call(this,i.cells[n],s)),{disabled:i.cells[n].editable===false,id:s.id})})})}),{})})))}}}catch(t){D(this,B,"f").debug.logMessage(this,`Invalid value for ${o} cell. Type \`SmeupDataTable\` expected`,k.ERROR);return null}},St=function t(i,e){const n=Object.assign(Object.assign({},i),{rows:i.rows.map((t=>Object.assign(Object.assign({},t),{cells:{}})))});const s=i.columns.filter((t=>t.isEditable)).map((t=>t.name));if(!s.length){return n}try{const t=JSON.parse(D(this,P,"f").rows[0].cells[e].value);n.rows=i.rows.map(((i,e)=>s.reduce(((n,s)=>{const o=t.rows[e].cells[s]&&i.cells[s].value!==t.rows[e].cells[s].value;if(o){return Object.assign(Object.assign({},t.rows[e]),{cells:Object.assign(Object.assign({},n.cells),{[s]:Object.assign(Object.assign({},t.rows[e].cells[s]),{value:i.cells[s].value})})})}return Object.assign(Object.assign({},t.rows[e]),{cells:n.cells})}),Object.assign(Object.assign({},t.rows[e]),{cells:{}}))));return n}catch(t){return n}},Mt=function t(i,e){const n=D(this,I,"f").get(i.type);if(n){return n(i,e)}else{return i.map((t=>({value:t.label,id:t.id,selected:e===t.id})))}},Tt=function t(i,e){return i.children.map((i=>{var n;return{id:i.content.codice,value:i.content.testo,selected:e===i.content.codice,children:((n=i.children)===null||n===void 0?void 0:n.length)?D(this,F,"m",t).call(this,i,e):[]}}))},Wt=function t(i,e){return i.children.map((i=>{var n;return{id:i.obj.k,value:i.value,selected:e===i.obj.k,children:((n=i.children)===null||n===void 0?void 0:n.length)?D(this,F,"m",t).call(this,i,e):[]}}))},Dt=function t(i,e){return i.rows.map((t=>{var i;const n=t.fields||t.cells;const[s,o]=Object.keys(n);return{id:n[s].value,value:((i=n[o])===null||i===void 0?void 0:i.value)||n[s].value,selected:e===n[s].value}}))},Ct=function t(i,e,n,s,o){if(i.id!==s||i.open===false){return}this.optionsHandler(e,i.inputValue,D(this,F,"m",ct).call(this),i.id).then((t=>{var e;n.data["kup-list"].data=(e=D(this,F,"m",Mt).call(this,t,o))!==null&&e!==void 0?e:[];i.comp.refresh()}))},Et=async function t(i,e){var n,s;const o=D(this,F,"m",H).call(this,e);if(i.mandatory){D(this,F,"m",Bt).call(this,e,o.value?null:D(this,B,"f").language.translate(p.REQUIRED_VALUE));if(!o.value){return}}if(((n=i.inputSettings)===null||n===void 0?void 0:n.checkObject)&&o.value){const{valid:t}=await this.checkValidObjCallback({obj:i.obj,currentState:D(this,F,"m",ct).call(this),fun:i.fun});if(t){D(this,F,"m",Bt).call(this,e,null)}else{D(this,F,"m",Bt).call(this,e,D(this,B,"f").language.translate(p.INVALID_VALUE));return}}if((s=i.inputSettings)===null||s===void 0?void 0:s.checkValueOnExit){this.checkValidValueCallback({before:Object.assign({},D(this,P,"f")),after:D(this,F,"m",ct).call(this)})}},Ft=function t(i,e){const n=D(this,N,"f").get(i.shape);if(!n){return}const s=async t=>{var n,s;if(t.detail.id!==e){return}if(i.mandatory){t.detail.comp.error=t.detail.value?null:D(this,B,"f").language.translate(p.REQUIRED_VALUE);t.detail.comp.refresh();if(!t.detail.value){return}}if(((n=i.inputSettings)===null||n===void 0?void 0:n.checkObject)&&t.detail.value){const{valid:e}=await this.checkValidObjCallback({obj:i.obj,currentState:D(this,F,"m",ct).call(this),fun:i.fun});t.detail.comp.error=e?null:D(this,B,"f").language.translate(p.INVALID_VALUE);t.detail.comp.refresh();if(!e){return}}if((s=i.inputSettings)===null||s===void 0?void 0:s.checkValueOnExit){this.checkValidValueCallback({before:Object.assign({},D(this,P,"f")),after:D(this,F,"m",ct).call(this)})}};this.rootElement.addEventListener(n,s);D(this,V,"f").push({event:n,handler:s})},Bt=function t(i,e){this.inputPanelCells=this.inputPanelCells.map((t=>Object.assign(Object.assign({},t),{cells:t.cells.map((({cell:t,column:n})=>{const s=n.name===i?Object.assign(Object.assign({},t.data),{error:e}):t.data;return{column:n,cell:Object.assign(Object.assign({},t),{data:s})}}))})))};Pt.style=W;export{Pt as kup_input_panel};
2
- //# sourceMappingURL=p-119b3dc2.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["KupInputPanelLayoutSectionType","KupInputPanelProps","CHAR_WIDTH","ROW_HEIGHT","getAbsoluteWidth","length","getAbsoluteHeight","height","getAbsoluteTop","row","getAbsoluteLeft","col","kupInputPanelCss","KupInputPanelStyle0","dom","document","documentElement","KupInputPanel","_KupInputPanel_kupManager","set","this","kupManagerInstance","_KupInputPanel_optionsAdapterMap","Map","__classPrivateFieldGet","_KupInputPanel_instances","_KupInputPanel_treeOptionsNodeAdapter","bind","_KupInputPanel_dataTreeOptionsChildrenAdapter","_KupInputPanel_tableOptionsAdapter","_KupInputPanel_originalData","_KupInputPanel_eventNames","FCellTypes","AUTOCOMPLETE","MULTI_AUTOCOMPLETE","COMBOBOX","MULTI_COMBOBOX","_KupInputPanel_eventBlurNames","FCellShapes","CHIP","DATE","TIME","_KupInputPanel_listeners","_KupInputPanel_cellTypeComponents","_KupInputPanel_cellCustomRender","BUTTON_LIST","_KupInputPanel_renderButton","EDITOR","_KupInputPanel_renderEditor","LABEL","_KupInputPanel_renderLabel","TABLE","_KupInputPanel_renderDataTable","_KupInputPanel_sectionRenderMap","TAB","_KupInputPanel_renderSectionTab","_KupInputPanel_keysShortcut","onDataChanged","__classPrivateFieldSet","structuredClone","data","map","event","handler","rootElement","removeEventListener","key","keysBinding","unregister","_KupInputPanel_mapCells","call","getProps","descriptions","refresh","forceUpdate","setProps","props","componentWillLoad","debug","logLoad","language","register","theme","componentDidLoad","kupReady","emit","comp","id","componentWillRender","logRender","componentDidRender","root","shadowRoot","fs","querySelectorAll","index","FTextFieldMDC","render","isEmptyData","Boolean","inputPanelCells","inputPanelContent","h","translate","KupLanguageGeneric","EMPTY_DATA","inputPanelCell","_KupInputPanel_renderRow","Host","setKupStyle","componentWrapperId","disconnectedCallback","reduce","cell","cells","find","column","name","layout","horizontal","styleObj","rowContent","_a","sections","_KupInputPanel_renderCell","absolute","_KupInputPanel_renderAbsoluteLayout","hasDim","some","sec","dim","display","gridTemplateColumns","join","gridTemplateRows","_KupInputPanel_renderGridLayout","classObj","onSubmit","e","preventDefault","submitCb","value","before","Object","assign","after","_KupInputPanel_reverseMapCells","class","style","hiddenSubmitButton","FButton","buttonType","label","CONFIRM","wrapperClass","customRender","get","shape","undefined","cellProps","component","editable","renderKup","setSizes","_KupInputPanel_getLabelComponent","title","FCell","cellId","icon","edtCell","detail","htmlValue","replace","addEventListener","push","isReadOnly","isEditable","showToolbar","editableData","showGroups","showFilters","showFooter","cellType","ketchup","getType","RADIO","sectionRender","sectionsType","section","_KupInputPanel_renderSection","_KupInputPanel_renderAbsoluteSection","customLabelRender","gap","content","innerSection","gridCols","gridRows","_b","field","_KupInputPanel_renderField","sectionContent","_KupInputPanel_renderAbsoluteField","width","absoluteWidth","absoluteHeight","top","absoluteRow","left","absoluteColumn","sectionStyle","position","overflow","tabSelected","tabNodes","i","cellIdsInSection","contentItem","hasError","cellData","includes","error","active","danger","sectionId","tabCustomStyle","l","node","customStyle","fieldCell","colSpan","colStart","colEnd","rowSpan","rowStart","rowEnd","absoluteLength","inpuPanelCells","rows","columns","filter","visible","mappedCell","_KupInputPanel_setData","slotData","_KupInputPanel_slotData","componentQuery","el","querySelector","setValue","defaultProps","_KupInputPanel_mapData","disabled","noDataProps","__rest","_KupInputPanel_deepObjectsMerge","target","source","Array","isArray","curr","updatedCells","keys","cellState","c","JSON","stringify","_KupInputPanel_getTableUpdatedCell","obj","options","fieldLabel","currentValue","dataAdapterMap","_KupInputPanel_CMBandACPAdapter","_KupInputPanel_BTNAdapter","CHART","_KupInputPanel_GRAAdapter","_KupInputPanel_CHIAdapter","CHECKBOX","_KupInputPanel_CHKAdapter","COLOR_PICKER","_KupInputPanel_CLPAdapter","_KupInputPanel_EDTAdapter","NUMBER","_KupInputPanel_NumberAdapter","_KupInputPanel_DateAdapter","OBJECT","_KupInputPanel_ObjectAdapter","_KupInputPanel_RADAdapter","STRING","_KupInputPanel_ITXAdapter","SWITCH","_KupInputPanel_SWTAdapter","_KupInputPanel_DataTableAdapter","_KupInputPanel_TimeAdapter","adapter","trailingIcon","fullWidth","showDropDownIcon","_options","_fieldLabel","inputSettings","checkObject","checkValueOnExit","mandatory","_KupInputPanel_checkOnBlurEvent","CHIAdapter","sizeX","offlineMode","sizeY","_currentValue","onClick","fun","customButtonClickHandler","currentState","keyShortcut","_c","_d","rawOptions","configCMandACP","CMBandACPAdapter","evNames","evName","_KupInputPanel_getAutocompleteEventCallback","_KupInputPanel_optionsTreeComboAdapter","CHKAdapter","onBlur","_KupInputPanel_checkOnBlurProp","initialValue","RADAdapter","SWTAdapter","_rawOptions","_value","parse","logMessage","KupDebugCategory","WARNING","type","ERROR","tableValue","updated","editableColsId","beforeTableValue","updatedRow","colId","changed","option","selected","children","child","codice","testo","k","fields","open","optionsHandler","inputValue","then","async","currCell","_KupInputPanel_getCell","_KupInputPanel_setCellError","REQUIRED_VALUE","valid","checkValidObjCallback","INVALID_VALUE","checkValidValueCallback"],"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} 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}\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) => 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_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: 2rem;\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\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 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 { 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 {\n GenericObject,\n KupComponent,\n KupEventPayload,\n} from '../../types/GenericTypes';\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 { KupDebugCategory } from '../../managers/kup-debug/kup-debug-declarations';\nimport {\n getAbsoluteHeight,\n getAbsoluteLeft,\n getAbsoluteTop,\n getAbsoluteWidth,\n} from './kup-input-panel-utils';\nimport {\n CHIAdapter,\n CHKAdapter,\n CMBandACPAdapter,\n RADAdapter,\n SWTAdapter,\n} from '../../utils/cell-utils';\nimport { KupObj } from '../../managers/kup-objects/kup-objects-declarations';\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 //#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 * 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 const hasDim = layout.sections.some((sec) => sec.dim);\n\n if (layout.horizontal) {\n styleObj.display = 'grid';\n styleObj.gridTemplateColumns = hasDim\n ? layout.sections\n .map((sec) => sec.dim || 'auto')\n .join(' ')\n : `repeat(${layout.sections.length}, 1fr)`;\n } else {\n styleObj.display = 'grid';\n styleObj.gridTemplateRows = hasDim\n ? layout.sections\n .map((sec) => sec.dim || 'auto')\n .join(' ')\n : `repeat(${layout.sections.length}, 1fr)`;\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 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 {!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 </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 #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 (!section.gridRows && !section.horizontal) {\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\n styleObj.gridTemplateRows =\n +section.gridRows > 0 ? `repeat(${section.gridRows}, 1fr)` : '';\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 <h3>{section.title}</h3>\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 const width = `${getAbsoluteWidth(section.absoluteWidth)}px`;\n const height = `${getAbsoluteHeight(section.absoluteHeight)}px`;\n const top = `${getAbsoluteTop(section.absoluteRow)}px`;\n const left = `${getAbsoluteLeft(section.absoluteColumn)}px`;\n\n const sectionStyle = {\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 return <div style={sectionStyle}>{content}</div>;\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 = section.content.map(\n (contentItem) => contentItem.id\n );\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 '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 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 #mapCells(data: KupInputPanelData) {\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),\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(cell: KupInputPanelCell, column: KupInputPanelColumn) {\n const defaultProps = {\n ...this.#mapData(cell, column),\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(cell: KupInputPanelCell, col: KupInputPanelColumn) {\n if (!cell) {\n return null;\n }\n\n const options = cell.options;\n const fieldLabel = col.title;\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 };\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 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 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 #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 }\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) {\n this.checkValidValueCallback({\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\n });\n }\n }\n\n #checkOnBlurEvent(cell: KupInputPanelCell, id: string) {\n const evName = this.#eventBlurNames.get(cell.shape);\n\n if (!evName) {\n return;\n }\n\n const handler = async (e: CustomEvent<KupAutocompleteEventPayload>) => {\n if (e.detail.id !== id) {\n return;\n }\n\n // Required cell check\n if (cell.mandatory) {\n e.detail.comp.error = e.detail.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 e.detail.comp.refresh();\n\n if (!e.detail.value) {\n return;\n }\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 e.detail.comp.error = valid\n ? null\n : this.#kupManager.language.translate(\n KupLanguageGeneric.INVALID_VALUE\n );\n e.detail.comp.refresh();\n if (!valid) {\n return;\n }\n }\n\n if (cell.inputSettings?.checkValueOnExit) {\n this.checkValidValueCallback({\n before: { ...this.#originalData },\n after: this.#reverseMapCells(),\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 //#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"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["KupHTMProps","kupHtmCss","KupHtmStyle0","KupHTM","_KupHTM_kupManager","set","this","kupManagerInstance","getProps","descriptions","refresh","forceUpdate","setProps","props","componentWillLoad","__classPrivateFieldGet","debug","logLoad","theme","register","language","componentDidLoad","kupReady","emit","comp","id","rootElement","componentWillRender","logRender","componentDidRender","render","isLink","objects","data","obj","h","Host","key","setKupStyle","componentWrapperId","class","Fragment","href","value","target","rel","translate","KupLanguageGeneric","OPEN_IN_NEW_TAB","src","frameBorder","innerHTML","disconnectedCallback","unregister"],"sources":["src/components/kup-htm/kup-htm-declarations.ts","src/components/kup-htm/kup-htm.scss?tag=kup-htm&encapsulation=shadow","src/components/kup-htm/kup-htm.tsx"],"sourcesContent":["/**\n * Props of the kup-htm component.\n * Used to export every prop in an object.\n */\nexport enum KupHTMProps {\n data = 'Data of the component containing url or html',\n}\n",":host {\n height: 100%;\n width: 100%;\n display: block;\n}\n\n#kup-component {\n height: 100%;\n .kup-htm.is-link {\n height: 100%;\n a {\n float: left;\n }\n iframe {\n height: 100%;\n width: 100%;\n }\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n forceUpdate,\n h,\n Host,\n Method,\n Prop,\n Fragment,\n} from '@stencil/core';\nimport {\n KupManager,\n kupManagerInstance,\n} from '../../managers/kup-manager/kup-manager';\nimport { KupDataCell } from '../../managers/kup-data/kup-data-declarations';\nimport { componentWrapperId } from '../../variables/GenericVariables';\nimport {\n GenericObject,\n KupComponent,\n KupEventPayload,\n} from '../../types/GenericTypes';\nimport { getProps, setProps } from '../../utils/utils';\nimport { KupHTMProps } from './kup-htm-declarations';\nimport { KupLanguageGeneric } from '../../managers/kup-language/kup-language-declarations';\n\n@Component({\n tag: 'kup-htm',\n styleUrl: 'kup-htm.scss',\n shadow: true,\n})\nexport class KupHTM {\n /**\n * References the root HTML element of the component (<kup-htm>).\n */\n @Element() rootElement: HTMLElement;\n\n /*-------------------------------------------------*/\n /* P r o p s */\n /*-------------------------------------------------*/\n\n /**\n * Data containing the url or html.\n * @default null\n */\n @Prop() data: KupDataCell;\n\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 /*-------------------------------------------------*/\n /* E v e n t s */\n /*-------------------------------------------------*/\n\n /**\n * Triggered when the component is ready.\n */\n @Event({\n eventName: 'kup-htm-ready',\n composed: true,\n cancelable: false,\n bubbles: true,\n })\n kupReady: EventEmitter<KupEventPayload>;\n\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, KupHTMProps, 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, KupHTMProps, props);\n }\n\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.theme.register(this);\n this.#kupManager.language.register(this);\n }\n\n componentDidLoad() {\n this.kupReady.emit({\n comp: this,\n id: this.rootElement.id,\n });\n this.#kupManager.debug.logLoad(this, true);\n }\n\n componentWillRender() {\n this.#kupManager.debug.logRender(this, false);\n }\n\n componentDidRender() {\n this.#kupManager.debug.logRender(this, true);\n }\n\n render() {\n const isLink = this.#kupManager.objects.isLink(this.data.obj);\n\n return (\n <Host>\n <style>\n {this.#kupManager.theme.setKupStyle(\n this.rootElement as KupComponent\n )}\n </style>\n <div id={componentWrapperId}>\n <div class={`kup-htm ${isLink ? 'is-link' : ''}`}>\n {isLink ? (\n <Fragment>\n <a\n href={this.data.value}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {this.#kupManager.language.translate(\n KupLanguageGeneric.OPEN_IN_NEW_TAB\n )}\n </a>\n <iframe\n src={this.data.value}\n frameBorder=\"0\"\n ></iframe>\n </Fragment>\n ) : (\n <div innerHTML={this.data.value} />\n )}\n </div>\n </div>\n </Host>\n );\n }\n\n disconnectedCallback() {\n this.#kupManager.theme.unregister(this);\n this.#kupManager.language.unregister(this);\n }\n}\n"],"mappings":"mMAIA,IAAYA,GAAZ,SAAYA,GACRA,EAAA,sDACH,EAFD,CAAYA,MAAW,KCJvB,MAAMC,EAAY,ypEAClB,MAAAC,EAAeD,E,yWC+BFE,EAAM,M,iEAoBfC,EAAAC,IAAAC,KAA0BC,K,oBA2B1B,cAAMC,CAASC,GACX,OAAOD,EAASF,KAAMN,EAAaS,E,CAMvC,aAAMC,GACFC,EAAYL,K,CAOhB,cAAMM,CAASC,GACXD,EAASN,KAAMN,EAAaa,E,CAOhC,iBAAAC,GACIC,EAAAT,KAAIF,EAAA,KAAaY,MAAMC,QAAQX,KAAM,OACrCS,EAAAT,KAAIF,EAAA,KAAac,MAAMC,SAASb,MAChCS,EAAAT,KAAIF,EAAA,KAAagB,SAASD,SAASb,K,CAGvC,gBAAAe,GACIf,KAAKgB,SAASC,KAAK,CACfC,KAAMlB,KACNmB,GAAInB,KAAKoB,YAAYD,KAEzBV,EAAAT,KAAIF,EAAA,KAAaY,MAAMC,QAAQX,KAAM,K,CAGzC,mBAAAqB,GACIZ,EAAAT,KAAIF,EAAA,KAAaY,MAAMY,UAAUtB,KAAM,M,CAG3C,kBAAAuB,GACId,EAAAT,KAAIF,EAAA,KAAaY,MAAMY,UAAUtB,KAAM,K,CAG3C,MAAAwB,GACI,MAAMC,EAAShB,EAAAT,KAAIF,EAAA,KAAa4B,QAAQD,OAAOzB,KAAK2B,KAAKC,KAEzD,OACIC,EAACC,EAAI,CAAAC,IAAA,4CACDF,EAAA,SAAAE,IAAA,4CACKtB,EAAAT,KAAIF,EAAA,KAAac,MAAMoB,YACpBhC,KAAKoB,cAGbS,EAAA,OAAAE,IAAA,2CAAKZ,GAAIc,GACLJ,EAAA,OAAAE,IAAA,2CAAKG,MAAO,WAAWT,EAAS,UAAY,MACvCA,EACGI,EAACM,EAAQ,KACLN,EAAA,KACIO,KAAMpC,KAAK2B,KAAKU,MAChBC,OAAO,SACPC,IAAI,uBAEH9B,EAAAT,KAAIF,EAAA,KAAagB,SAAS0B,UACvBC,EAAmBC,kBAG3Bb,EAAA,UACIc,IAAK3C,KAAK2B,KAAKU,MACfO,YAAY,OAIpBf,EAAA,OAAKgB,UAAW7C,KAAK2B,KAAKU,U,CAQlD,oBAAAS,GACIrC,EAAAT,KAAIF,EAAA,KAAac,MAAMmC,WAAW/C,MAClCS,EAAAT,KAAIF,EAAA,KAAagB,SAASiC,WAAW/C,K","ignoreList":[]}