@sme.up/ketchup 11.0.0-SNAPSHOT-20241204091728 → 11.0.0-SNAPSHOT-20241204093112
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{f-cell-99beffaa.js → f-cell-dbd52f82.js} +5 -1
- package/dist/cjs/f-cell-dbd52f82.js.map +1 -0
- package/dist/cjs/kup-autocomplete_28.cjs.entry.js +1 -1
- package/dist/cjs/kup-box.cjs.entry.js +1 -1
- package/dist/cjs/kup-cell.cjs.entry.js +1 -1
- package/dist/cjs/kup-image-list.cjs.entry.js +1 -1
- package/dist/cjs/kup-input-panel.cjs.entry.js +6 -4
- package/dist/cjs/kup-input-panel.cjs.entry.js.map +1 -1
- package/dist/collection/components/kup-input-panel/kup-input-panel.js +5 -3
- package/dist/collection/components/kup-input-panel/kup-input-panel.js.map +1 -1
- package/dist/collection/f-components/f-cell/f-cell.js +4 -0
- package/dist/collection/f-components/f-cell/f-cell.js.map +1 -1
- package/dist/components/kup-accordion.js +1 -1
- package/dist/components/kup-activity-timeline.js +1 -1
- package/dist/components/kup-autocomplete.js +1 -1
- package/dist/components/kup-badge.js +1 -1
- package/dist/components/kup-box.js +1 -1
- package/dist/components/kup-button-list.js +1 -1
- package/dist/components/kup-button.js +1 -1
- package/dist/components/kup-calendar.js +1 -1
- package/dist/components/kup-card-list.js +2 -2
- package/dist/components/kup-card.js +1 -1
- package/dist/components/kup-cell.js +1 -1
- package/dist/components/kup-chart.js +1 -1
- package/dist/components/kup-checkbox.js +1 -1
- package/dist/components/kup-chip.js +1 -1
- package/dist/components/kup-color-picker.js +1 -1
- package/dist/components/kup-combobox.js +1 -1
- package/dist/components/kup-dashboard.js +1 -1
- package/dist/components/kup-data-table.js +1 -1
- package/dist/components/kup-date-picker.js +1 -1
- package/dist/components/kup-dialog.js +1 -1
- package/dist/components/kup-drawer.js +1 -1
- package/dist/components/kup-dropdown-button.js +1 -1
- package/dist/components/kup-echart.js +1 -1
- package/dist/components/kup-editor.js +1 -1
- package/dist/components/kup-family-tree.js +2 -2
- package/dist/components/kup-form.js +1 -1
- package/dist/components/kup-gauge.js +1 -1
- package/dist/components/kup-grid.js +1 -1
- package/dist/components/kup-htm.js +1 -1
- package/dist/components/kup-iframe.js +1 -1
- package/dist/components/kup-image-list.js +1 -1
- package/dist/components/kup-image.js +1 -1
- package/dist/components/kup-input-panel.js +7 -5
- package/dist/components/kup-input-panel.js.map +1 -1
- package/dist/components/kup-lazy.js +1 -1
- package/dist/components/kup-list.js +1 -1
- package/dist/components/kup-magic-box.js +3 -3
- package/dist/components/kup-nav-bar.js +1 -1
- package/dist/components/kup-numeric-picker.js +1 -1
- package/dist/components/kup-pdf.js +1 -1
- package/dist/components/kup-photo-frame.js +1 -1
- package/dist/components/kup-planner.js +1 -1
- package/dist/components/kup-probe.js +1 -1
- package/dist/components/kup-progress-bar.js +1 -1
- package/dist/components/kup-qlik.js +1 -1
- package/dist/components/kup-radio.js +1 -1
- package/dist/components/kup-rating.js +1 -1
- package/dist/components/kup-snackbar.js +1 -1
- package/dist/components/kup-spinner.js +1 -1
- package/dist/components/kup-switch.js +1 -1
- package/dist/components/kup-tab-bar.js +1 -1
- package/dist/components/kup-text-field.js +1 -1
- package/dist/components/kup-time-picker.js +1 -1
- package/dist/components/kup-toolbar.js +1 -1
- package/dist/components/kup-tree.js +1 -1
- package/dist/components/kup-txt.js +1 -1
- package/dist/components/kup-typography-list.js +1 -1
- package/dist/components/kup-typography.js +1 -1
- package/dist/components/{p-305c601e.js → p-0707faea.js} +5 -1
- package/dist/components/p-0707faea.js.map +1 -0
- package/dist/components/{p-041b4e77.js → p-38548546.js} +2 -2
- package/dist/components/{p-041b4e77.js.map → p-38548546.js.map} +1 -1
- package/dist/components/{p-ca75f1f1.js → p-8d00db3c.js} +2 -2
- package/dist/components/{p-ca75f1f1.js.map → p-8d00db3c.js.map} +1 -1
- package/dist/components/{p-bec9b052.js → p-b3c9cd25.js} +2 -2
- package/dist/components/{p-bec9b052.js.map → p-b3c9cd25.js.map} +1 -1
- package/dist/components/{p-2f338b48.js → p-c85d72a8.js} +2 -2
- package/dist/components/{p-2f338b48.js.map → p-c85d72a8.js.map} +1 -1
- package/dist/esm/{f-cell-722848d6.js → f-cell-3992d1cd.js} +5 -1
- package/dist/esm/f-cell-3992d1cd.js.map +1 -0
- package/dist/esm/kup-autocomplete_28.entry.js +1 -1
- package/dist/esm/kup-box.entry.js +1 -1
- package/dist/esm/kup-cell.entry.js +1 -1
- package/dist/esm/kup-image-list.entry.js +1 -1
- package/dist/esm/kup-input-panel.entry.js +6 -4
- package/dist/esm/kup-input-panel.entry.js.map +1 -1
- package/dist/ketchup/ketchup.esm.js +1 -1
- package/dist/ketchup/{p-992ae993.entry.js → p-08a9e442.entry.js} +2 -2
- package/dist/ketchup/{p-b13bbd08.entry.js → p-0b87c294.entry.js} +2 -2
- package/dist/ketchup/{p-1b4b1e95.js → p-2b5455ee.js} +2 -2
- package/dist/ketchup/{p-1b4b1e95.js.map → p-2b5455ee.js.map} +1 -1
- package/dist/ketchup/{p-9c210f92.entry.js → p-780f18f5.entry.js} +2 -2
- package/dist/ketchup/{p-c88ab499.entry.js → p-98518099.entry.js} +2 -2
- package/dist/ketchup/p-98518099.entry.js.map +1 -0
- package/dist/ketchup/{p-3500f91c.entry.js → p-d50d7049.entry.js} +2 -2
- package/package.json +1 -1
- package/dist/cjs/f-cell-99beffaa.js.map +0 -1
- package/dist/components/p-305c601e.js.map +0 -1
- package/dist/esm/f-cell-722848d6.js.map +0 -1
- package/dist/ketchup/p-c88ab499.entry.js.map +0 -1
- /package/dist/ketchup/{p-992ae993.entry.js.map → p-08a9e442.entry.js.map} +0 -0
- /package/dist/ketchup/{p-b13bbd08.entry.js.map → p-0b87c294.entry.js.map} +0 -0
- /package/dist/ketchup/{p-9c210f92.entry.js.map → p-780f18f5.entry.js.map} +0 -0
- /package/dist/ketchup/{p-3500f91c.entry.js.map → p-d50d7049.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["KupListProps","KupListRole","ItemsDisplayMode","FSwitchSizing","FSwitch","props","sizing","MEDIUM","toLowerCase","SMALL","classObj","switch","checked","disabled","h","Object","assign","class","danger","info","secondary","success","warning","wrapperClass","dataSet","id","title","leadingLabel","type","role","value","onBlur","onChange","onFocus","onClick","label","FProgressBar","centeredLabel","componentClass","animated","padded","slim","striped","pieClass","radialStyle","undefined","isRadial","labelStyle","valueStyle","width","icon","createIconElement","hideLabel","style","indexOf","src","svg","getAssetPath","iconStyle","mask","webkitMask","FRadioType","FRadio","hasColumns","columns","radioList","radioType","RADIO","i","_a","data","length","radio","push","name","bind","Fragment","FImage","resource","sizeX","sizeY","htmlFor","styleObj","horizontal","FRating","maxValue","buildStars","stars","dom","document","documentElement","FCell","children","cell","column","row","shape","hasObj","ketchup","objects","isEmptyKupObj","obj","isEditable","hasOwnProperty","editable","options","mapData","valueToDisplay","previousValue","cellType","getType","subcomponentProps","cssClasses","cssClass","component","legacyLook","FCellClasses","OBJ","density","FCellTypes","BAR","isForceUppercase","isForceLowercase","content","setDefaults","editableTypes","includes","setEditableCell","kupTypes","setSizes","setCellSizeKup","renderKup","lazyClass","setKupCell","setCellSize","setCell","fProps","color","KupThemeColorValues","TEXT","placeholderResource","placeholderIcon","cellTitle","debug","isDebug","t","p","k","trim","infoEl","INFO","message","onKeyUp","e","cellEvent","FCellEvents","KEYUP","ref","el","element","styleContent","cellActionIcon","NUMBER","tabIndex","indents","fieldLabel","currentValue","dataAdapterMap","Map","BUTTON_LIST","MainBTNAdapter","this","STRING","MainITXAdapter","MainRADAdapter","AUTOCOMPLETE","MainCMBandACPAdapter","COMBOBOX","CHECKBOX","MainCHKAdapter","OBJECT","MainObjectAdapter","CHIP","MainCHIAdapter","adapter","get","_fieldLabel","_currentValue","newData","map","option","_options","_cell","_id","initialValue","RADAdapter","configCMandACP","CMBandACPAdapter","optionsTreeComboAdapter","optionsAdapterMap","selected","treeOptionsNodeAdapter","child","codice","testo","dataTreeOptionsChildrenAdapter","tableOptionsAdapter","rows","cells","fields","keys","ICON","height","minHeight","IMAGE","cellValue","hasExternalResource","rootElement","tagName","KupTagNames","DATA_TABLE","BOX","fit","BUTTON","CHART","key","isFullWidth","UPDATE","INPUT","ICON_CLICK","isAutoCentered","C_CENTERED","FCellShapes","INPUT_CHECKBOX","FCheckbox","FChipType","enableInput","fullWidth","slot","slotData","error","COLOR_PICKER","DATE","MULTI_AUTOCOMPLETE","displayId","displayMode","DESCRIPTION_AND_CODE","selectMode","showDropDownIcon","MULTI_COMBOBOX","radioData","index","radioEl","RATING","SWITCH","TIME","FTextField","onIconClick","FButton","SECONDARY_ICON_CLICK","styling","FButtonStyling","FLAT","C_RIGHT_ALIGNED","LINK","MEMO","onInput","math","numberifySafe","toString","INPUT_FIELD","maxLength","_b","cellData","textArea","inputType","decimals","integers","DATETIME","getCellValueForDisplay","EDITOR","innerHTML","badgeData","C_PADDED","href","target","cellValueNumber","TEXT_DANGER","barStyle","CLICK","FChip","GAUGE","KNOB","PROGRESS_BAR","customStyle","readOnly","isShapeBarMarker","toUpperCase","startsWith","isShapeMarker","isBgColorMarker","isHeightMarker","isDecoratorMarker","getData","graphicElementDefinitionArr","split","graphicElem","elementData","getElementData","commonsData","markersArray","shapesArray","vString","attr","replace","isNaN","parseFloat","substring","getShapeData","shapeData","pattern","match","exec","r","g","b","parseInt","createDataset","parts","pop","part","isCanvas","offlineMode","cellEventName","comp","getValueFromEventTarget","checkedItem","find","item","detail","stringifiedValues","displayedValue","CustomEvent","bubbles","cancelable","composed","event","inputValue","querySelector","dispatchEvent","refresh","logMessage","KupDebugCategory","ERROR","isInputEvent","formattedStringToNumberString","autoCenterComps","fullWidthFieldsComps"],"sources":["src/components/kup-list/kup-list-declarations.ts","src/f-components/f-switch/f-switch-declarations.ts","src/f-components/f-switch/f-switch.tsx","src/f-components/f-progress-bar/f-progress-bar.tsx","src/f-components/f-radio/f-radio-declarations.ts","src/f-components/f-radio/f-radio.tsx","src/f-components/f-rating/f-rating.tsx","src/f-components/f-cell/f-cell.tsx"],"sourcesContent":["import { KupEventPayload } from '../../types/GenericTypes';\nimport { ValueDisplayedValue as vdv } from '../../utils/filters/filters-declarations';\nimport { KupDataNode } from '../../managers/kup-data/kup-data-declarations';\n\n/**\n * Props of the kup-list component.\n * Used to export every prop in an object.\n */\nexport enum KupListProps {\n customStyle = 'Custom style of the component.',\n data = 'The data of the list.',\n displayMode = 'Selects how the items must display their label and how they can be filtered for.',\n filter = 'Keeps string for filtering elements when filter mode is active',\n hideText = \"Hides rows' text, ideally to display a list of icons only.\",\n isMenu = 'Defines whether the list is a menu or not.',\n keyboardNavigation = \"When true, enables items' navigation through arrow keys.\",\n menuVisible = \"Sets the status of the menu, when false it's hidden otherwise it's visible.\",\n roleType = 'Defines the type of selection. Values accepted: listbox, radiogroup or group.',\n selectable = 'Defines whether items are selectable or not.',\n showIcons = 'Displays the icons associated to each row when set to true.',\n twoLine = 'The list elements descriptions will be arranged in two lines.',\n}\n/**\n * Data structure of a single list item.\n */\nexport interface KupListNode extends KupDataNode {\n secondaryText?: string;\n selected?: boolean;\n separator?: boolean;\n}\n/**\n * Available types of selection.\n */\nexport enum KupListRole {\n LISTBOX = 'listbox',\n RADIOGROUP = 'radiogroup',\n GROUP = 'group',\n}\n\nexport interface ValueDisplayedValue extends vdv {\n exists: boolean;\n}\n\nexport enum ItemsDisplayMode {\n CODE = 'code',\n DESCRIPTION = 'description',\n DESCRIPTION_AND_CODE = 'both',\n}\nexport interface KupListEventPayload extends KupEventPayload {\n selected: KupListNode;\n index?: number;\n}\n","import type { FComponent } from '../../types/GenericTypes';\n/**\n * Props of the f-switch component.\n */\nexport interface FSwitchProps extends FComponent {\n checked?: boolean;\n disabled?: boolean;\n label?: string;\n leadingLabel?: boolean;\n onBlur?: (event: FocusEvent) => void;\n onClick?: (event: MouseEvent) => void;\n onChange?: (event: Event) => void;\n onFocus?: (event: FocusEvent) => void;\n sizing?: FSwitchSizing;\n}\n\n/**\n * Types of the f-chip component.\n * @enum {string}\n * @property {string} SMALL - Small size: height = 24px\n * @property {string} MEDIUM - Medium size: height = 32px (default)\n */\n\nexport enum FSwitchSizing { // GenericTypes to be studied because small chips goes with small button/textfield but has different sizes\n SMALL = 'small',\n MEDIUM = 'medium',\n}\n","import { FSwitchSizing, type FSwitchProps } from './f-switch-declarations';\nimport { FunctionalComponent, h } from '@stencil/core';\n\n/*-------------------------------------------------*/\n/* C o m p o n e n t */\n/*-------------------------------------------------*/\n\nexport const FSwitch: FunctionalComponent<FSwitchProps> = (\n props: FSwitchProps\n) => {\n if (!props.sizing) {\n props.sizing = FSwitchSizing.MEDIUM;\n }\n const isSmall: boolean = props.sizing.toLowerCase() === FSwitchSizing.SMALL;\n const classObj: Record<string, boolean> = {\n switch: true,\n 'switch--checked': props.checked,\n 'switch--disabled': props.disabled,\n [`switch--${props.sizing}`]: props.sizing ? true : false,\n };\n\n return (\n <div\n class={`f-switch ${props.danger ? 'kup-danger' : ''} ${\n props.info ? 'kup-info' : ''\n } ${props.secondary ? 'kup-secondary' : ''} ${\n props.success ? 'kup-success' : ''\n } ${props.warning ? 'kup-warning' : ''} ${\n props.wrapperClass ? props.wrapperClass : ''\n }`}\n {...props.dataSet}\n id={props.id}\n title={props.title}\n >\n <div\n class={`form-field ${\n props.leadingLabel ? 'form-field--align-end' : ''\n }`}\n >\n <div class={classObj}>\n <div class=\"switch__track\"></div>\n <div class=\"switch__thumb-underlay\">\n <div class=\"switch__thumb\">\n <input\n type=\"checkbox\"\n class=\"switch__native-control\"\n role=\"switch\"\n checked={props.checked}\n disabled={props.disabled}\n value={props.checked ? 'on' : 'off'}\n onBlur={props.onBlur}\n onChange={props.onChange}\n onFocus={props.onFocus}\n ></input>\n </div>\n </div>\n </div>\n <label onClick={props.onChange}>{props.label}</label>\n </div>\n </div>\n );\n};\n","import type { FProgressBarProps } from './f-progress-bar-declarations';\nimport { FunctionalComponent, getAssetPath, h } from '@stencil/core';\n\n/*-------------------------------------------------*/\n/* C o m p o n e n t */\n/*-------------------------------------------------*/\n\nexport const FProgressBar: FunctionalComponent<FProgressBarProps> = (\n props: FProgressBarProps\n) => {\n if (!props.centeredLabel && !props.centeredLabel !== false) {\n props.centeredLabel = true;\n }\n\n let componentClass = `f-progress-bar ${props.danger ? 'kup-danger' : ''} ${\n props.animated ? 'kup-animated' : ''\n } ${props.padded ? 'kup-padded' : ''} ${props.info ? 'kup-info' : ''} ${\n props.slim ? 'kup-slim' : ''\n } ${props.striped ? 'kup-striped' : ''} ${\n props.secondary ? 'kup-secondary' : ''\n } ${props.slim ? 'kup-slim' : ''} ${props.success ? 'kup-success' : ''} ${\n props.warning ? 'kup-warning' : ''\n } ${props.wrapperClass ? props.wrapperClass : ''}`;\n let pieClass: string = 'pie';\n let radialStyle = undefined;\n if (props.isRadial) {\n componentClass += ' pie-wrapper is-radial';\n } else {\n componentClass += ' progress-bar';\n }\n\n let labelStyle = undefined;\n\n const valueStyle = {\n width: `${props.value}%`,\n };\n\n if (!props.centeredLabel) {\n labelStyle = valueStyle;\n if (props.value > 2) {\n componentClass += ' text-color-on-primary';\n }\n } else if (props.value > 49) {\n componentClass += ' text-color-on-primary';\n }\n\n let label = null;\n if (props.icon) {\n label = createIconElement(props);\n } else {\n if (!props.hideLabel) {\n if (props.isRadial) {\n if (props.label) {\n label = <span class=\"label\">{props.label}</span>;\n } else {\n label = (\n <span class=\"label\">\n {props.value}\n <span class=\"smaller\">%</span>\n </span>\n );\n }\n } else {\n if (props.label) {\n label = props.label;\n } else {\n label = props.value + '%';\n }\n }\n }\n }\n\n if (props.value > 0) {\n pieClass += ' has-value';\n if (props.value > 50) {\n pieClass += ' is-more-than-half';\n } else {\n pieClass += ' is-less-than-half';\n }\n }\n\n if (props.isRadial) {\n return (\n <div class={componentClass}>\n {label}\n <div class={pieClass}>\n <div\n style={radialStyle}\n class=\"left-side half-circle\"\n ></div>\n <div class=\"right-side half-circle\"></div>\n </div>\n <div class=\"shadow\"></div>\n </div>\n );\n } else {\n return (\n <div class={componentClass}>\n <div class=\"progress-bar-percentage\" style={valueStyle}>\n <span style={labelStyle}>{label}</span>\n </div>\n </div>\n );\n }\n};\n\nfunction createIconElement(props: FProgressBarProps) {\n if (!props.icon) {\n return undefined;\n }\n\n if (\n props.icon.indexOf('.') > -1 ||\n props.icon.indexOf('/') > -1 ||\n props.icon.indexOf('\\\\') > -1\n ) {\n return (\n <span class=\"label kup-icon is-image\">\n <img src={props.icon}></img>\n </span>\n );\n } else {\n let svg: string = `url('${getAssetPath(\n `./assets/svg/${props.icon}.svg`\n )}') no-repeat center`;\n let iconStyle = {\n mask: svg,\n webkitMask: svg,\n };\n return <span style={iconStyle} class=\"label kup-icon\"></span>;\n }\n}\n","import type { FComponent } from '../../types/GenericTypes';\n/**\n * Props of the f-radio component.\n */\nexport interface FRadioProps extends FComponent {\n columns?: number;\n data?: FRadioData[];\n disabled?: boolean;\n label?: string;\n leadingLabel?: boolean;\n onBlur?: (event: FocusEvent) => void;\n onChange?: (i: number, event: Event) => void;\n onFocus?: (event: FocusEvent) => void;\n horizontal?: boolean;\n type?: FRadioType;\n}\n/**\n * The object of a single radio.\n */\nexport interface FRadioData {\n checked: boolean;\n label: string;\n value: string;\n}\n\nexport enum FRadioType {\n RADIO = 'radio',\n CHEVRON = 'chevron',\n}\n","import { FunctionalComponent, VNode, h, Fragment } from '@stencil/core';\nimport { GenericObject } from '../../components';\nimport {\n FRadioType,\n type FRadioData,\n type FRadioProps,\n} from './f-radio-declarations';\nimport { FImage } from '../f-image/f-image';\n\n/*-------------------------------------------------*/\n/* C o m p o n e n t */\n/*-------------------------------------------------*/\n\nexport const FRadio: FunctionalComponent<FRadioProps> = (\n props: FRadioProps\n) => {\n const hasColumns: boolean = !!props.columns;\n const radioList: Array<VNode> = [];\n\n // Default to 'radio' if props.type is not specified\n const radioType = props.type || FRadioType.RADIO;\n for (let i = 0; i < props.data?.length; i++) {\n const data: FRadioData = props.data[i];\n const classObj: GenericObject = {\n radio: true,\n 'radio--checked': data.checked ? true : false,\n 'radio--disabled': props.disabled ? true : false,\n [`radio--${props.type}`]: props.type ? true : false,\n };\n\n radioList.push(\n <div\n class={`form-field \n ${props.leadingLabel ? ' form-field--align-end' : ''} ${\n props.disabled ? 'radio--disabled' : ''\n }`}\n >\n <div class={classObj}>\n {radioType === FRadioType.RADIO ? (\n <input\n class=\"radio__native-control\"\n type=\"radio\"\n name=\"radio-element\"\n value={data.value}\n checked={data.checked}\n disabled={props.disabled}\n onBlur={props.onBlur}\n onChange={\n props.onChange\n ? props.onChange.bind(props.onChange, i)\n : null\n }\n onFocus={props.onFocus}\n ></input>\n ) : (\n <Fragment>\n {data.checked ? (\n <FImage\n resource=\"check\"\n sizeX=\"14px\"\n sizeY=\"14px\"\n ></FImage>\n ) : (\n <FImage\n sizeX=\"14px\"\n sizeY=\"14px\"\n onClick={\n props.onChange\n ? props.onChange.bind(\n props.onChange,\n i\n )\n : null\n }\n ></FImage>\n )}\n </Fragment>\n )}\n {radioType === FRadioType.RADIO && (\n <div class=\"radio__background\">\n <div class=\"radio__outer-circle\"></div>\n <div class=\"radio__inner-circle\"></div>\n </div>\n )}\n </div>\n <label\n htmlFor={'radio-element'}\n onClick={\n props.onChange\n ? props.onChange.bind(props.onChange, i)\n : null\n }\n >\n {data.label ? data.label : ''}\n </label>\n </div>\n );\n }\n\n const styleObj: GenericObject = {\n '--kup_radio_columns': hasColumns\n ? `repeat(${props.columns}, 1fr)`\n : '',\n };\n\n return (\n <div\n class={`f-radio radio-wrapper\n ${hasColumns ? 'radio-wrapper-grid' : ''} ${\n props.danger ? 'kup-danger' : ''\n } ${props.info ? 'kup-info' : ''} ${\n props.secondary ? 'kup-secondary' : ''\n } ${props.success ? 'kup-success' : ''} ${\n props.warning ? 'kup-warning' : ''\n } ${props.wrapperClass ? props.wrapperClass : ''} ${\n props.horizontal ? 'kup-horizontal' : ''\n }`}\n style={styleObj}\n >\n {radioList}\n </div>\n );\n};\n","import { FunctionalComponent, VNode, h } from '@stencil/core';\nimport type { FRatingProps } from './f-rating-declarations';\n\n/*-------------------------------------------------*/\n/* C o m p o n e n t */\n/*-------------------------------------------------*/\n\nexport const FRating: FunctionalComponent<FRatingProps> = (\n props: FRatingProps\n) => {\n if (!props.maxValue) {\n props.maxValue = 5;\n }\n return (\n <div\n class={`f-rating ${props.disabled ? 'disabled' : ''} ${\n props.danger ? 'kup-danger' : ''\n } ${props.info ? 'kup-info' : ''} ${\n props.secondary ? 'kup-secondary' : ''\n } ${props.success ? 'kup-success' : ''} ${\n props.warning ? 'kup-warning' : ''\n } ${props.wrapperClass ? props.wrapperClass : ''}`}\n >\n {buildStars(props)}\n </div>\n );\n};\n\nfunction buildStars(props: FRatingProps) {\n const stars: VNode[] = [];\n\n for (let i = 1; i <= props.maxValue; i++) {\n if (i <= props.value) {\n stars.push(\n <span\n class=\"rating\"\n onClick={\n props.onClick\n ? props.onClick.bind(props.onClick, i)\n : null\n }\n >\n ★\n </span>\n );\n } else {\n stars.push(\n <span\n class=\"rating\"\n onClick={\n props.onClick\n ? props.onClick.bind(props.onClick, i)\n : null\n }\n >\n ☆\n </span>\n );\n }\n }\n\n return stars;\n}\n","import type { FCheckboxProps } from '../f-checkbox/f-checkbox-declarations';\nimport type { FImageData, FImageProps } from '../f-image/f-image-declarations';\nimport {\n FButtonStyling,\n type FButtonProps,\n} from '../f-button/f-button-declarations';\nimport type { KupChart } from '../../components/kup-chart/kup-chart';\nimport type { KupDom } from '../../managers/kup-manager/kup-manager-declarations';\nimport type { KupAutocompleteEventPayload } from '../../components/kup-autocomplete/kup-autocomplete-declarations';\nimport type { KupComboboxEventPayload } from '../../components/kup-combobox/kup-combobox-declarations';\nimport type { KupDatePickerEventPayload } from '../../components/kup-date-picker/kup-date-picker-declarations';\nimport type { KupTimePickerEventPayload } from '../../components/kup-time-picker/kup-time-picker-declarations';\nimport type { KupRatingClickEventPayload } from '../../components/kup-rating/kup-rating-declarations';\nimport type { KupColorPickerEventPayload } from '../../components/kup-color-picker/kup-color-picker-declarations';\nimport {\n GenericObject,\n KupComponent,\n KupTagNames,\n} from '../../types/GenericTypes';\nimport {\n autoCenterComps,\n editableTypes,\n FCellClasses,\n FCellEventPayload,\n FCellEvents,\n FCellInfo,\n FCellProps,\n FCellShapes,\n FCellTypes,\n fullWidthFieldsComps,\n kupTypes,\n} from './f-cell-declarations';\nimport { Fragment, FunctionalComponent, h, VNode } from '@stencil/core';\nimport {\n CHIAdapter,\n CMBandACPAdapter,\n getCellValueForDisplay,\n isForceLowercase,\n isForceUppercase,\n RADAdapter,\n} from '../../utils/cell-utils';\nimport { FCheckbox } from '../f-checkbox/f-checkbox';\nimport { FTextField } from '../f-text-field/f-text-field';\nimport { FImage } from '../f-image/f-image';\nimport { FChip } from '../f-chip/f-chip';\nimport { KupThemeColorValues } from '../../managers/kup-theme/kup-theme-declarations';\nimport {\n CellOptions,\n KupDataCell,\n KupDataCellOptions,\n KupDataColumn,\n KupDataNode,\n KupDataRow,\n} from '../../managers/kup-data/kup-data-declarations';\nimport { FSwitch } from '../f-switch/f-switch';\nimport { KupChipChangeEventPayload } from '../../components/kup-chip/kup-chip-declarations';\nimport { FChipsProps, FChipType } from '../f-chip/f-chip-declarations';\nimport { ItemsDisplayMode } from '../../components/kup-list/kup-list-declarations';\nimport { FButton } from '../f-button/f-button';\nimport { FProgressBar } from '../f-progress-bar/f-progress-bar';\nimport { FRadio } from '../f-radio/f-radio';\nimport { FRating } from '../f-rating/f-rating';\nimport type { KupDataTable } from '../../components/kup-data-table/kup-data-table';\nimport { FRadioData, FRadioProps } from '../f-radio/f-radio-declarations';\nimport { KupDebugCategory } from '../../managers/kup-debug/kup-debug-declarations';\nimport {\n DataAdapterFn,\n KupInputPanelCell,\n} from '../../components/kup-input-panel/kup-input-panel-declarations';\n\nconst dom: KupDom = document.documentElement as KupDom;\n\n/*-------------------------------------------------*/\n/* C o m p o n e n t */\n/*-------------------------------------------------*/\n\nexport const FCell: FunctionalComponent<FCellProps> = (\n props: FCellProps,\n children?: VNode[]\n) => {\n const cell = props.cell;\n const column = props.column;\n const row = props.row;\n const shape = props.shape\n ? props.shape\n : cell.shape\n ? cell.shape\n : column.shape\n ? column.shape\n : null;\n const hasObj = !dom.ketchup.objects.isEmptyKupObj(cell.obj);\n let isEditable = false;\n if (cell.hasOwnProperty('isEditable')) {\n isEditable = cell.isEditable;\n } else if (column.hasOwnProperty('isEditable')) {\n isEditable = column.isEditable;\n }\n isEditable = isEditable && props.editable;\n\n if (cell.options) {\n cell.data = mapData(cell, column) ?? cell.data;\n }\n\n const valueToDisplay = props.previousValue !== cell.value ? cell.value : '';\n const cellType = dom.ketchup.data.cell.getType(cell, shape);\n const subcomponentProps: unknown = { ...cell.data };\n let cssClasses = cell.cssClass\n ? cell.cssClass\n : column?.cssClass\n ? column?.cssClass\n : '';\n\n if ((props.component as KupDataTable).legacyLook) {\n cssClasses += ' monospace c-pre';\n }\n const classObj: Record<string, boolean> = {\n 'f-cell': true,\n [FCellClasses.OBJ]: hasObj ? true : false,\n [cellType + '-cell']: true,\n [props.wrapperClass]: props.wrapperClass ? true : false,\n [props.density]:\n props.density && cellType !== FCellTypes.BAR ? true : false,\n [cssClasses]: cssClasses ? true : false,\n 'c-input-uppercase': isForceUppercase(cell),\n 'c-input-lowercase': isForceLowercase(cell),\n };\n let content: unknown = valueToDisplay;\n if (!cell.data) {\n setDefaults(cellType, cell);\n }\n if (isEditable && editableTypes.includes(cellType)) {\n content = setEditableCell(cellType, classObj, cell, column, props);\n } else if (cell.data && kupTypes.includes(cellType)) {\n if (props.setSizes) {\n setCellSizeKup(cellType, subcomponentProps, cell);\n }\n if (!props.renderKup) {\n const lazyClass = 'cell-' + cellType + ' placeholder';\n content = <span class={lazyClass}></span>;\n } else {\n content = setKupCell(\n cellType,\n classObj,\n subcomponentProps,\n cell,\n row,\n column,\n props\n );\n }\n } else {\n if (props.setSizes) {\n setCellSize(cellType, subcomponentProps, cell, props);\n }\n content = setCell(\n cellType,\n subcomponentProps,\n content,\n classObj,\n cell,\n column,\n props\n );\n }\n\n let icon: VNode = null;\n if (!isEditable && (column.icon || cell.icon) && content) {\n const fProps: FImageProps = {\n color: `rgba(var(${KupThemeColorValues.TEXT}-rgb), 0.375)`,\n resource: cell.icon ? cell.icon : column.icon,\n placeholderResource: cell.placeholderIcon\n ? cell.placeholderIcon\n : column.placeholderIcon,\n sizeX: '1.25em',\n sizeY: '1.25em',\n wrapperClass: 'obj-icon',\n };\n icon = <FImage {...fProps} />;\n }\n\n let cellTitle: string = null;\n if (dom.ketchup.debug.isDebug() && hasObj) {\n cellTitle = cell.obj.t + '; ' + cell.obj.p + '; ' + cell.obj.k + ';';\n } else if (cell.title != null && cell.title.trim() != '') {\n cellTitle = cell.title;\n }\n\n let infoEl: HTMLElement = null;\n if (cell.info) {\n const info: FCellInfo = { ...cell.info };\n if (!info.color) {\n info.color = `var(${KupThemeColorValues.INFO})`;\n }\n if (!info.icon) {\n info.icon = 'info';\n }\n const fProps: FImageProps = {\n color: info.color,\n resource: info.icon,\n placeholderResource: info.placeholderIcon,\n sizeX: '1.25em',\n sizeY: '1.25em',\n title: info.message ? info.message : '',\n wrapperClass: 'cell-info',\n };\n infoEl = <FImage {...fProps} />;\n }\n\n return (\n <div\n onKeyUp={(e) => cellEvent(e, props, cellType, FCellEvents.KEYUP)}\n class={classObj}\n kup-get-cell-props={() => {\n return props;\n }}\n ref={(el) => (cell.element = el)}\n style={cell.style}\n >\n <div\n class=\"f-cell__content\"\n style={cell.styleContent}\n title={cellTitle}\n >\n {props.cellActionIcon && (\n <FImage\n resource=\"more_vert\"\n sizeX=\"16px\"\n sizeY=\"16px\"\n wrapperClass={`f-cell__iconfunction ${\n cellType === FCellTypes.NUMBER ? 'left' : 'right'\n }`}\n onClick={props.cellActionIcon.onClick}\n tabIndex={0}\n />\n )}\n {children && children.length > 0\n ? children\n : [props.indents, infoEl, icon, content]}\n </div>\n </div>\n );\n};\n\nconst mapData = (cell: KupDataCellOptions, column: KupDataColumn) => {\n if (!cell) {\n return null;\n }\n const options = cell.options;\n const fieldLabel = column.title;\n const currentValue = cell.value;\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n const dataAdapterMap = new Map<FCellTypes, DataAdapterFn>([\n [FCellTypes.BUTTON_LIST, MainBTNAdapter.bind(this)],\n [FCellTypes.STRING, MainITXAdapter.bind(this)],\n [FCellTypes.RADIO, MainRADAdapter.bind(this)],\n [FCellTypes.AUTOCOMPLETE, MainCMBandACPAdapter.bind(this)],\n [FCellTypes.COMBOBOX, MainCMBandACPAdapter.bind(this)],\n [FCellTypes.CHECKBOX, MainCHKAdapter.bind(this)],\n [FCellTypes.OBJECT, MainObjectAdapter.bind(this)],\n [FCellTypes.CHIP, MainCHIAdapter.bind(this)],\n ]);\n\n const adapter = dataAdapterMap.get(cellType);\n return adapter ? adapter(options, fieldLabel, currentValue, cell) : null;\n};\n\nconst MainCHIAdapter = (\n options: CellOptions[],\n _fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell\n) => {\n const newData = {\n data: options?.length\n ? options?.map((option) => ({\n id: option.id,\n value: option.id,\n }))\n : [],\n };\n cell.data = { ...cell.data, ...newData };\n};\n\nconst MainObjectAdapter = (\n _options: CellOptions[],\n fieldLabel: string,\n currentValue: string,\n _cell: KupInputPanelCell,\n _id: string\n) => ({\n data: {\n initialValue: currentValue || '',\n label: fieldLabel || '',\n value: currentValue || '',\n },\n});\n\nconst MainCHKAdapter = (\n _options: CellOptions[],\n fieldLabel: string,\n currentValue: string,\n cell: KupDataCellOptions\n) => ({\n ...cell.data,\n checked: currentValue === 'on' || currentValue === '1',\n label: fieldLabel,\n});\n\nconst MainBTNAdapter = (\n _options: CellOptions[],\n _fieldLabel: string,\n currentValue: string,\n cell: KupDataCellOptions\n) => ({\n data: [\n {\n ...cell.data,\n icon: cell.icon,\n value: currentValue,\n },\n ],\n});\n\nconst MainITXAdapter = (\n _options: CellOptions[],\n fieldLabel: string,\n _currentValue: string,\n cell: KupDataCellOptions\n) => ({\n ...cell.data,\n label: fieldLabel,\n});\n\nconst MainRADAdapter = (\n options: CellOptions[],\n _fieldLabel: string,\n currentValue: string,\n cell?: KupDataCellOptions\n) => {\n const newData = RADAdapter(currentValue, options);\n cell.data = { ...cell.data, ...newData };\n};\n\nconst MainCMBandACPAdapter = (\n options: CellOptions[],\n fieldLabel: string,\n currentValue: string,\n cell: KupDataCellOptions,\n _id: string\n) => {\n if (!cell.data?.data && options) {\n const configCMandACP = CMBandACPAdapter(currentValue, fieldLabel, []);\n configCMandACP.data['kup-list'].data = optionsTreeComboAdapter(\n options,\n currentValue\n );\n return configCMandACP;\n }\n};\n\nconst optionsTreeComboAdapter = (options: any, currentValue: string) => {\n const adapter = 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\nconst 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 ? treeOptionsNodeAdapter(child, currentValue)\n : [],\n }));\n};\n\nconst 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 ? dataTreeOptionsChildrenAdapter(child, currentValue)\n : [],\n }));\n};\n\nconst tableOptionsAdapter = (\n options: any,\n currentValue: string\n): 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\nconst optionsAdapterMap = new Map<\n string,\n (options: any, currentValue: string) => GenericObject[]\n>([\n ['SmeupTreeNode', treeOptionsNodeAdapter.bind(this)],\n ['SmeupDataTree', dataTreeOptionsChildrenAdapter.bind(this)],\n ['SmeupTable', tableOptionsAdapter.bind(this)],\n ['SmeupDataTable', tableOptionsAdapter.bind(this)],\n]);\n\nfunction setCellSize(\n cellType: string,\n subcomponentProps: unknown,\n cell: KupDataCell,\n props: FCellProps\n) {\n switch (cellType) {\n case FCellTypes.CHECKBOX:\n case FCellTypes.ICON:\n if (!(subcomponentProps as FImageProps).sizeX) {\n (subcomponentProps as FImageProps).sizeX = '18px';\n }\n if (!(subcomponentProps as FImageProps).sizeY) {\n (subcomponentProps as FImageProps).sizeY = '18px';\n }\n if (cell.style) {\n if (!cell.style.height) {\n cell.style['minHeight'] = (\n subcomponentProps as FImageProps\n ).sizeY;\n }\n } else {\n cell.style = {\n minHeight: (subcomponentProps as FImageProps).sizeY,\n };\n }\n break;\n case FCellTypes.IMAGE:\n const cellValue = props.cell?.value || '';\n const hasExternalResource =\n cellValue.indexOf('.') > -1 ||\n cellValue.indexOf('/') > -1 ||\n cellValue.indexOf('\\\\') > -1;\n if (\n (props.component as KupComponent).rootElement.tagName ===\n KupTagNames.DATA_TABLE &&\n !hasExternalResource\n ) {\n if (\n !(subcomponentProps as FImageProps).sizeX &&\n !(subcomponentProps as FImageProps).sizeY\n ) {\n (subcomponentProps as FImageProps).sizeX = '100%';\n (subcomponentProps as FImageProps).sizeY = '64px';\n (subcomponentProps as FImageProps).wrapperClass = 'noWidth';\n } else {\n if (!(subcomponentProps as FImageProps).sizeX) {\n (subcomponentProps as FImageProps).sizeX = '100%';\n (subcomponentProps as FImageProps).wrapperClass =\n 'noWidth';\n }\n if (!(subcomponentProps as FImageProps).sizeY) {\n (subcomponentProps as FImageProps).sizeY = 'auto';\n }\n }\n }\n if (\n (props.component as KupComponent).rootElement.tagName ===\n KupTagNames.BOX\n ) {\n if (!(subcomponentProps as FImageProps).sizeY) {\n (subcomponentProps as FImageProps).sizeY = 'auto';\n }\n if ((subcomponentProps as FImageProps).fit === undefined) {\n (subcomponentProps as FImageProps).fit = true;\n }\n } else if (!(subcomponentProps as FImageProps).sizeX) {\n (subcomponentProps as FImageProps).sizeX = 'auto';\n }\n if (!(subcomponentProps as FImageProps).sizeY) {\n (subcomponentProps as FImageProps).sizeY = '64px';\n }\n\n break;\n }\n}\n\nfunction setCellSizeKup(\n cellType: string,\n subcomponentProps: unknown,\n cell: KupDataCell\n) {\n switch (cellType) {\n case FCellTypes.BAR:\n if (!(subcomponentProps as FImageProps).sizeY) {\n (subcomponentProps as FImageProps).sizeY = '26px';\n }\n break;\n case FCellTypes.BUTTON:\n let height: string = '';\n if ((subcomponentProps as FButtonProps).label) {\n height = '36px';\n }\n if (cell.style) {\n if (!cell.style.height) {\n cell.style['minHeight'] = height;\n }\n } else {\n cell.style = { minHeight: height };\n }\n break;\n case FCellTypes.CHART:\n if (!(subcomponentProps as KupChart).sizeX) {\n (subcomponentProps as KupChart).sizeX = '100%';\n }\n if (!(subcomponentProps as KupChart).sizeY) {\n (subcomponentProps as KupChart).sizeY = '100%';\n }\n break;\n case FCellTypes.CHIP:\n if (cell.style) {\n if (!cell.style.height) {\n cell.style['minHeight'] = '40px';\n }\n } else {\n cell.style = { minHeight: '40px' };\n }\n break;\n case FCellTypes.RADIO:\n if (cell.style) {\n if (!cell.style.height) {\n cell.style['minHeight'] = '40px';\n }\n } else {\n cell.style = { minHeight: '40px' };\n }\n break;\n }\n}\n\nfunction setEditableCell(\n cellType: string,\n classObj: Record<string, boolean>,\n cell: KupDataCell,\n column: KupDataColumn,\n props: FCellProps\n): unknown {\n switch (cellType) {\n case FCellTypes.AUTOCOMPLETE:\n return (\n <kup-autocomplete\n key={column.name + props.row.id}\n initialValue={cell.value}\n {...cell.data}\n class={isFullWidth(props) ? 'kup-full-width' : ''}\n onkup-autocomplete-change={(\n e: CustomEvent<KupAutocompleteEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n onkup-autocomplete-input={(\n e: CustomEvent<KupAutocompleteEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.INPUT)}\n onkup-autocomplete-iconclick={(\n e: CustomEvent<KupAutocompleteEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.ICON_CLICK)}\n />\n );\n case FCellTypes.CHECKBOX:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n\n if (cell.shape === FCellShapes.INPUT_CHECKBOX) {\n return (\n <input\n checked={\n cell.value === 'on' || cell.value === '1'\n ? true\n : false\n }\n class=\"input-checkbox\"\n onChange={(e: InputEvent) =>\n cellEvent(e, props, cellType, FCellEvents.UPDATE)\n }\n type=\"checkbox\"\n ></input>\n );\n } else {\n return (\n <FCheckbox\n {...cell.data}\n onChange={(e: InputEvent) =>\n cellEvent(e, props, cellType, FCellEvents.UPDATE)\n }\n />\n );\n }\n case FCellTypes.CHIP:\n return (\n <kup-chip\n {...cell.data}\n type={FChipType.INPUT}\n enableInput={true}\n onKup-chip-change={(\n e: CustomEvent<KupChipChangeEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n >\n <kup-text-field\n fullWidth={true}\n slot=\"field\"\n {...cell.slotData}\n error={cell.data.error}\n ></kup-text-field>\n </kup-chip>\n );\n case FCellTypes.COLOR_PICKER:\n return (\n <kup-color-picker\n key={column.name + props.row.id}\n initialValue={cell.value}\n {...cell.data}\n class={isFullWidth(props) ? 'kup-full-width' : ''}\n disabled={false}\n onkup-colorpicker-change={(\n e: CustomEvent<KupColorPickerEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n ></kup-color-picker>\n );\n case FCellTypes.COMBOBOX:\n return (\n <kup-combobox\n key={column.name + props.row.id}\n initialValue={cell.value}\n {...cell.data}\n class={isFullWidth(props) ? 'kup-full-width' : ''}\n onkup-combobox-change={(\n e: CustomEvent<KupComboboxEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n onkup-combobox-input={(\n e: CustomEvent<KupComboboxEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.INPUT)}\n onkup-combobox-iconclick={(\n e: CustomEvent<KupComboboxEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.ICON_CLICK)}\n />\n );\n case FCellTypes.DATE:\n return (\n <kup-date-picker\n key={column.name + props.row.id}\n initialValue={cell.value}\n {...cell.data}\n class={isFullWidth(props) ? 'kup-full-width' : ''}\n onkup-datepicker-change={(\n e: CustomEvent<KupDatePickerEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n onkup-datepicker-input={(\n e: CustomEvent<KupDatePickerEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.INPUT)}\n />\n );\n case FCellTypes.MULTI_AUTOCOMPLETE:\n return (\n <kup-chip\n displayId={true}\n {...cell.data}\n type={FChipType.INPUT}\n enableInput={true}\n onKup-chip-change={(\n e: CustomEvent<KupChipChangeEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n >\n <kup-autocomplete\n class=\"kup-full-width\"\n slot=\"field\"\n displayMode={ItemsDisplayMode.DESCRIPTION_AND_CODE}\n selectMode={ItemsDisplayMode.DESCRIPTION_AND_CODE}\n onkup-autocomplete-input={(\n e: CustomEvent<KupAutocompleteEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.INPUT)}\n onkup-autocomplete-iconclick={(\n e: CustomEvent<KupComboboxEventPayload>\n ) =>\n cellEvent(\n e,\n props,\n cellType,\n FCellEvents.ICON_CLICK\n )\n }\n showDropDownIcon={false}\n {...cell.slotData}\n error={cell.data.error}\n ></kup-autocomplete>\n </kup-chip>\n );\n case FCellTypes.MULTI_COMBOBOX:\n return (\n <kup-chip\n displayId={true}\n {...cell.data}\n type={FChipType.INPUT}\n enableInput={true}\n onKup-chip-change={(\n e: CustomEvent<KupChipChangeEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n >\n <kup-combobox\n class=\"kup-full-width\"\n slot=\"field\"\n displayMode={ItemsDisplayMode.DESCRIPTION_AND_CODE}\n selectMode={ItemsDisplayMode.DESCRIPTION_AND_CODE}\n onkup-combobox-input={(\n e: CustomEvent<KupComboboxEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.INPUT)}\n onkup-combobox-iconclick={(\n e: CustomEvent<KupComboboxEventPayload>\n ) =>\n cellEvent(\n e,\n props,\n cellType,\n FCellEvents.ICON_CLICK\n )\n }\n {...cell.slotData}\n error={cell.data.error}\n ></kup-combobox>\n </kup-chip>\n );\n case FCellTypes.RADIO:\n return (\n <FRadio\n {...cell.data}\n disabled={false}\n onChange={(i: number, e: InputEvent) => {\n const radioData = (cell.data as FRadioProps).data;\n for (let index = 0; index < radioData.length; index++) {\n const radioEl = radioData[index];\n if (index === i) {\n radioEl.checked = true;\n } else {\n radioEl.checked = false;\n }\n }\n cellEvent(e, props, cellType, FCellEvents.UPDATE);\n }}\n ></FRadio>\n );\n case FCellTypes.RATING:\n return (\n <kup-rating\n key={column.name + props.row.id}\n {...cell.data}\n disabled={false}\n onkup-rating-click={(\n e: CustomEvent<KupRatingClickEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n ></kup-rating>\n );\n case FCellTypes.SWITCH:\n return (\n <FSwitch\n {...cell.data}\n disabled={false}\n onChange={(e: InputEvent) =>\n cellEvent(e, props, cellType, FCellEvents.UPDATE)\n }\n ></FSwitch>\n );\n case FCellTypes.TIME:\n return (\n <kup-time-picker\n key={column.name + props.row.id}\n initialValue={cell.value}\n {...cell.data}\n class={isFullWidth(props) ? 'kup-full-width' : ''}\n onkup-timepicker-change={(\n e: CustomEvent<KupTimePickerEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n onkup-timepicker-input={(\n e: CustomEvent<KupTimePickerEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.INPUT)}\n />\n );\n case FCellTypes.OBJECT:\n return (\n <Fragment>\n <FTextField\n icon={'table'}\n {...cell.data}\n disabled={false}\n onIconClick={(e) =>\n cellEvent(\n e,\n props,\n cellType,\n FCellEvents.ICON_CLICK\n )\n }\n ></FTextField>\n <FButton\n icon=\"menu\"\n onClick={(e) =>\n cellEvent(\n e,\n props,\n cellType,\n FCellEvents.SECONDARY_ICON_CLICK\n )\n }\n styling={FButtonStyling.FLAT}\n wrapperClass=\"obj-field-extra-btn\"\n ></FButton>\n </Fragment>\n );\n case FCellTypes.NUMBER:\n classObj[FCellClasses.C_RIGHT_ALIGNED] = true;\n case FCellTypes.LINK:\n case FCellTypes.MEMO:\n case FCellTypes.STRING:\n const onChange = (e: InputEvent) =>\n cellEvent(e, props, cellType, FCellEvents.UPDATE);\n const onInput = (e: InputEvent) => {\n cellEvent(e, props, cellType, FCellEvents.INPUT);\n cellEvent(e, props, cellType, FCellEvents.UPDATE);\n };\n const type = cellType === FCellTypes.NUMBER ? 'number' : null;\n const value =\n cellType === FCellTypes.NUMBER && cell.value\n ? dom.ketchup.math.numberifySafe(cell.value).toString()\n : cell.value;\n if (cell.shape === FCellShapes.INPUT_FIELD) {\n return (\n <input\n class={'input-field'}\n onChange={onChange}\n onInput={onInput}\n type={type}\n value={value}\n maxLength={column.cellData?.maxLength ?? -1}\n ></input>\n );\n } else {\n return (\n <FTextField\n textArea={\n (cell.shape\n ? cell.shape === FCellShapes.MEMO\n : false) ||\n (cellType ? cellType === FCellTypes.MEMO : false)\n }\n inputType={type}\n fullWidth={isFullWidth(props) ? true : false}\n {...cell.data}\n icon={\n cell.data && cell.data.icon\n ? cell.data.icon\n : cell.icon\n ? cell.icon\n : column.icon\n ? column.icon\n : null\n }\n decimals={props.column.decimals}\n integers={props.column.integers}\n value={value}\n onChange={onChange}\n onInput={onInput}\n onIconClick={(e: MouseEvent) =>\n cellEvent(\n e,\n props,\n cellType,\n FCellEvents.ICON_CLICK\n )\n }\n />\n );\n }\n }\n}\n\nfunction setCell(\n cellType: string,\n subcomponentProps: GenericObject,\n content: unknown,\n classObj: Record<string, boolean>,\n cell: KupDataCell,\n column: KupDataColumn,\n props: FCellProps\n): unknown {\n switch (cellType) {\n case FCellTypes.AUTOCOMPLETE:\n case FCellTypes.COMBOBOX:\n case FCellTypes.DATE:\n case FCellTypes.DATETIME:\n case FCellTypes.TIME:\n if (content && content != '') {\n const cellValue = getCellValueForDisplay(column, cell);\n return <div class=\"f-cell__text\">{cellValue}</div>;\n }\n return content;\n case FCellTypes.CHECKBOX:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n return (\n <FImage\n resource={\n (subcomponentProps as FCheckboxProps).checked\n ? 'check_box'\n : 'check_box_outline_blank'\n }\n sizeX=\"18px\"\n sizeY=\"18px\"\n />\n );\n case FCellTypes.EDITOR:\n return <div innerHTML={cell.value}></div>;\n case FCellTypes.ICON:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n if ((subcomponentProps as FImageProps).badgeData) {\n classObj[FCellClasses.C_PADDED] = true;\n }\n return <FImage {...subcomponentProps} />;\n case FCellTypes.IMAGE:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n if ((subcomponentProps as FImageProps).badgeData) {\n classObj[FCellClasses.C_PADDED] = true;\n }\n\n return <FImage {...subcomponentProps} />;\n\n case FCellTypes.LINK:\n return (\n <a href={content as string} target=\"_blank\">\n {cell.value}\n </a>\n );\n case FCellTypes.NUMBER:\n if (content && content != '') {\n const cellValueNumber = dom.ketchup.math.numberifySafe(\n cell.value\n );\n const cellValue = getCellValueForDisplay(column, cell);\n if (cellValueNumber < 0) {\n classObj[FCellClasses.TEXT_DANGER] = true;\n }\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_RIGHT_ALIGNED] = true;\n }\n return <div class=\"f-cell__text\">{cellValue}</div>;\n }\n return <div class=\"f-cell__text\">{content}</div>;\n case FCellTypes.SWITCH:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n subcomponentProps['disabled'] = true;\n return <FSwitch {...subcomponentProps}></FSwitch>;\n default:\n return <div class=\"f-cell__text\">{content}</div>;\n }\n}\n\nfunction setKupCell(\n cellType: string,\n classObj: Record<string, boolean>,\n subcomponentProps: GenericObject,\n cell: KupDataCell,\n row: KupDataRow,\n column: KupDataColumn,\n props: FCellProps\n): unknown {\n switch (cellType) {\n case FCellTypes.BAR:\n if (!(subcomponentProps as FImageProps).data) {\n return (\n <kup-image\n key={column.name + props.row.id}\n sizeX=\"250px\"\n {...subcomponentProps}\n />\n );\n } else {\n const barStyle = {\n height: (subcomponentProps as FImageProps).sizeY,\n width: '100%',\n };\n return (\n <div style={barStyle}>\n <FImage {...subcomponentProps} />\n </div>\n );\n }\n case FCellTypes.BUTTON:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n return (\n <FButton\n {...subcomponentProps}\n onClick={(e) =>\n cellEvent(e, props, cellType, FCellEvents.CLICK)\n }\n ></FButton>\n );\n case FCellTypes.BUTTON_LIST:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n subcomponentProps['data-storage'] = {\n cell: cell,\n row: row,\n column: column,\n };\n return (\n <kup-button-list\n key={column.name + props.row.id}\n {...subcomponentProps}\n ></kup-button-list>\n );\n case FCellTypes.CHART:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n return (\n <kup-chart\n key={column.name + props.row.id}\n {...subcomponentProps}\n />\n );\n case FCellTypes.MULTI_AUTOCOMPLETE:\n case FCellTypes.MULTI_COMBOBOX:\n case FCellTypes.CHIP:\n return <FChip {...subcomponentProps} />;\n case FCellTypes.COLOR_PICKER:\n return (\n <kup-color-picker\n key={column.name + props.row.id}\n {...subcomponentProps}\n class={isFullWidth(props) ? 'kup-full-width' : ''}\n disabled\n ></kup-color-picker>\n );\n case FCellTypes.GAUGE:\n return (\n <kup-gauge\n key={column.name + props.row.id}\n value={dom.ketchup.math.numberifySafe(cell.value)}\n width-component=\"280px\"\n {...subcomponentProps}\n ></kup-gauge>\n );\n case FCellTypes.KNOB:\n case FCellTypes.PROGRESS_BAR:\n return subcomponentProps.customStyle ? (\n <kup-progress-bar\n key={column.name + props.row.id}\n {...subcomponentProps}\n ></kup-progress-bar>\n ) : (\n <FProgressBar {...subcomponentProps}></FProgressBar>\n );\n case FCellTypes.RADIO:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n subcomponentProps['disabled'] = row.readOnly;\n return <FRadio {...subcomponentProps}></FRadio>;\n case FCellTypes.RATING:\n return <FRating {...subcomponentProps} disabled={true}></FRating>;\n case FCellTypes.OBJECT:\n return (\n <FTextField\n icon={'table'}\n {...subcomponentProps}\n disabled={true}\n ></FTextField>\n );\n }\n}\n\nfunction setDefaults(cellType: string, cell: KupDataCell): void {\n function isShapeBarMarker(value: string): boolean {\n return value.toUpperCase().startsWith('SHAPE;BAR');\n }\n\n function isShapeMarker(value: string): boolean {\n return value.toUpperCase().startsWith('SHAPE;');\n }\n\n function isBgColorMarker(value: string): boolean {\n return value.toUpperCase().startsWith('BCOLOR;');\n }\n\n function isHeightMarker(value: string): boolean {\n return value.toUpperCase().startsWith('HEIGHT;');\n }\n\n function isDecoratorMarker(value: string): boolean {\n return (\n value.toUpperCase().startsWith('SEP;') ||\n value.toUpperCase().startsWith('DIV;') ||\n value.toUpperCase().startsWith('ARW;') ||\n value.toUpperCase().startsWith('GRID;')\n );\n }\n function getData(value: string): FImageData[] | null {\n if (!value) {\n return null;\n }\n const graphicElementDefinitionArr = value.split('\\\\\\\\AND\\\\');\n const data: FImageData[] = [];\n for (const graphicElem of graphicElementDefinitionArr) {\n const elementData = getElementData(graphicElem);\n if (elementData) {\n data.push(...elementData);\n } else {\n return null;\n }\n }\n return data;\n }\n\n function getElementData(value: string): FImageData[] | null {\n const commonsData: FImageData = {};\n\n const markersArray = value.split('\\\\\\\\');\n const shapesArray: FImageData[] = [];\n\n for (const vString of markersArray) {\n if (vString) {\n if (isDecoratorMarker(vString)) {\n return null;\n }\n\n if (isShapeMarker(vString)) {\n if (!isShapeBarMarker(vString)) {\n return null;\n } else {\n const attr = vString.split(';');\n if (attr.length === 3) {\n const width = attr[2].replace(',', '.');\n if (!isNaN(parseFloat(width))) {\n commonsData.width = `${width}%`;\n }\n }\n }\n } else if (isBgColorMarker(vString)) {\n // Background color handling can be added here if needed\n } else if (isHeightMarker(vString)) {\n const height = vString\n .substring('HEIGHT;'.length)\n .replace(',', '.');\n if (!isNaN(parseFloat(height))) {\n commonsData.height = `${height}%`;\n }\n } else {\n shapesArray.push(getShapeData(vString, commonsData));\n }\n }\n return shapesArray.length ? shapesArray : null;\n }\n\n function getShapeData(\n value: string,\n commonsData: FImageData\n ): FImageData {\n const shapeData: FImageData = { ...commonsData };\n const attr = value.split(';');\n if (attr.length >= 1) {\n const pattern = /R(\\d+)G(\\d+)B(\\d+)/;\n const match = pattern.exec(attr[0]);\n if (match) {\n const [, r, g, b] = match;\n if (\n !isNaN(parseInt(r, 10)) &&\n !isNaN(parseInt(g, 10)) &&\n !isNaN(parseInt(b, 10))\n ) {\n shapeData.color = `rgb(${parseInt(r)},${parseInt(\n g\n )},${parseInt(b)})`;\n }\n }\n if (attr.length >= 2) {\n const width = attr[1].replace(',', '.');\n if (!isNaN(parseFloat(width))) {\n shapeData.width = `${width}%`;\n }\n }\n }\n return shapeData;\n }\n }\n\n cell.data = {};\n\n const createDataset = () => {\n const parts = cell.value?.split(';');\n if (parts?.[parts.length - 1].trim() === '') {\n parts.pop();\n }\n if (parts && parts.length) {\n cell.data.data = [];\n for (let part of parts) {\n (cell.data.data as KupDataNode[]).push({\n id: part,\n value: part,\n });\n }\n }\n };\n\n switch (cellType) {\n case FCellTypes.CHECKBOX:\n case FCellTypes.SWITCH:\n cell.data.checked = cell.value === '1' ? true : false;\n break;\n\n case FCellTypes.BAR:\n if (isShapeMarker(cell.value)) {\n cell.data.isCanvas = true;\n cell.data.resource = cell.value;\n } else {\n cell.data.data = getData(cell.value);\n }\n break;\n\n case FCellTypes.BUTTON:\n cell.data.label = cell.value;\n break;\n\n case FCellTypes.CHART:\n Object.assign(cell.data, {\n sizeX: '100px',\n sizeY: '100px',\n offlineMode: {\n value: cell.value,\n shape: 'pie',\n },\n });\n break;\n\n case FCellTypes.BUTTON_LIST:\n case FCellTypes.CHIP:\n case FCellTypes.MULTI_AUTOCOMPLETE:\n case FCellTypes.MULTI_COMBOBOX:\n case FCellTypes.RADIO:\n createDataset();\n break;\n\n case FCellTypes.COLOR_PICKER:\n cell.data.initialValue = cell.value;\n break;\n\n case FCellTypes.GAUGE:\n case FCellTypes.KNOB:\n case FCellTypes.PROGRESS_BAR:\n case FCellTypes.RATING:\n cell.data.value = parseInt(cell.value);\n break;\n\n case FCellTypes.ICON:\n case FCellTypes.IMAGE:\n cell.data.resource = cell.value;\n break;\n }\n}\n\nfunction cellEvent(\n e: InputEvent | CustomEvent | MouseEvent | KeyboardEvent,\n props: FCellProps,\n cellType: FCellTypes,\n cellEventName: FCellEvents\n): void {\n const cell = props.cell;\n const column = props.column;\n const comp = props.component;\n const row = props.row;\n if (cellEventName === FCellEvents.UPDATE) {\n let value = getValueFromEventTarget(e, cellType);\n if (isForceUppercase(cell)) {\n value = value?.toUpperCase();\n } else if (isForceLowercase(cell)) {\n value = value?.toLowerCase();\n }\n switch (cellType) {\n case FCellTypes.AUTOCOMPLETE:\n case FCellTypes.COMBOBOX:\n case FCellTypes.DATE:\n case FCellTypes.TIME:\n if (cell.data) {\n cell.data['initialValue'] = value;\n }\n break;\n case FCellTypes.CHECKBOX:\n case FCellTypes.SWITCH:\n value = value === 'on' ? '0' : '1';\n if (cell.data) {\n (cell.data as FCheckboxProps).checked =\n value === '0' ? false : true;\n }\n break;\n case FCellTypes.RADIO:\n if (cell.data.data) {\n const radioData = cell.data.data as FRadioData[];\n const checkedItem = radioData.find((item) => item.checked);\n if (checkedItem) {\n value = checkedItem.value;\n }\n }\n break;\n case FCellTypes.CHIP:\n case FCellTypes.MULTI_AUTOCOMPLETE:\n case FCellTypes.MULTI_COMBOBOX:\n value = (e as CustomEvent<KupChipChangeEventPayload>).detail\n .stringifiedValues;\n if (cell.data) {\n (cell.data as FChipsProps).data = (\n e as CustomEvent<KupChipChangeEventPayload>\n ).detail.comp.data;\n }\n break;\n }\n if (cell.obj) {\n cell.obj.k = value?.toString();\n }\n cell.value = value?.toString();\n cell.displayedValue = null;\n cell.displayedValue = getCellValueForDisplay(column, cell);\n }\n if (comp && (comp as KupComponent).rootElement) {\n const cellEvent = new CustomEvent<FCellEventPayload>(cellEventName, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n comp: comp,\n id: (comp as KupComponent).rootElement.id,\n cell: cell,\n column: column,\n event: e,\n row: row,\n type: cellType,\n inputValue: cell.element?.querySelector('input')?.value || null,\n },\n });\n (comp as KupComponent).rootElement.dispatchEvent(cellEvent);\n if (cellEventName === FCellEvents.UPDATE) {\n try {\n (comp as KupComponent).refresh();\n } catch (error) {\n dom.ketchup.debug.logMessage(\n comp,\n error,\n KupDebugCategory.ERROR\n );\n }\n }\n }\n}\n\nfunction getValueFromEventTarget(\n e: InputEvent | CustomEvent | MouseEvent | KeyboardEvent,\n cellType: FCellTypes\n): string {\n const isInputEvent = !!(\n (e.target as HTMLElement).tagName === 'INPUT' || 'TEXTAREA'\n );\n let value = isInputEvent\n ? (e.target as HTMLInputElement).value\n : e.detail.value;\n\n if (cellType === FCellTypes.CHECKBOX && isInputEvent) {\n value = (e.target as HTMLInputElement).checked ? 'off' : 'on';\n }\n\n if (cellType === FCellTypes.NUMBER && isInputEvent) {\n value = dom.ketchup.math.formattedStringToNumberString(value, '');\n }\n\n return value;\n}\n\nfunction isAutoCentered(props: FCellProps) {\n return autoCenterComps.includes(\n (props.component as KupComponent)?.rootElement.tagName as KupTagNames\n );\n}\n\nfunction isFullWidth(props: FCellProps) {\n return fullWidthFieldsComps.includes(\n (props.component as KupComponent)?.rootElement.tagName as KupTagNames\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["KupListProps","KupListRole","ItemsDisplayMode","FSwitchSizing","FSwitch","props","sizing","MEDIUM","toLowerCase","SMALL","classObj","switch","checked","disabled","h","Object","assign","class","danger","info","secondary","success","warning","wrapperClass","dataSet","id","title","leadingLabel","type","role","value","onBlur","onChange","onFocus","onClick","label","FProgressBar","centeredLabel","componentClass","animated","padded","slim","striped","pieClass","radialStyle","undefined","isRadial","labelStyle","valueStyle","width","icon","createIconElement","hideLabel","style","indexOf","src","svg","getAssetPath","iconStyle","mask","webkitMask","FRadioType","FRadio","hasColumns","columns","radioList","radioType","RADIO","i","_a","data","length","radio","push","name","bind","Fragment","FImage","resource","sizeX","sizeY","htmlFor","styleObj","horizontal","FRating","maxValue","buildStars","stars","dom","document","documentElement","FCell","children","cell","column","row","shape","hasObj","ketchup","objects","isEmptyKupObj","obj","isEditable","hasOwnProperty","editable","options","mapData","valueToDisplay","previousValue","cellType","getType","subcomponentProps","cssClasses","cssClass","component","legacyLook","FCellClasses","OBJ","density","FCellTypes","BAR","isForceUppercase","isForceLowercase","content","setDefaults","editableTypes","includes","setEditableCell","kupTypes","setSizes","setCellSizeKup","renderKup","lazyClass","setKupCell","setCellSize","setCell","fProps","color","KupThemeColorValues","TEXT","placeholderResource","placeholderIcon","cellTitle","debug","isDebug","t","p","k","trim","infoEl","INFO","message","onKeyUp","e","cellEvent","FCellEvents","KEYUP","ref","el","element","styleContent","cellActionIcon","NUMBER","tabIndex","indents","fieldLabel","currentValue","dataAdapterMap","Map","BUTTON_LIST","MainBTNAdapter","this","STRING","MainITXAdapter","MainRADAdapter","AUTOCOMPLETE","MainCMBandACPAdapter","COMBOBOX","CHECKBOX","MainCHKAdapter","OBJECT","MainObjectAdapter","CHIP","MainCHIAdapter","adapter","get","_fieldLabel","_currentValue","newData","map","option","_options","_cell","_id","initialValue","RADAdapter","configCMandACP","CMBandACPAdapter","optionsTreeComboAdapter","optionsAdapterMap","selected","treeOptionsNodeAdapter","child","codice","testo","dataTreeOptionsChildrenAdapter","tableOptionsAdapter","rows","cells","fields","keys","ICON","height","minHeight","IMAGE","cellValue","hasExternalResource","rootElement","tagName","KupTagNames","DATA_TABLE","BOX","fit","BUTTON","CHART","key","isFullWidth","UPDATE","INPUT","ICON_CLICK","isAutoCentered","C_CENTERED","FCellShapes","INPUT_CHECKBOX","FCheckbox","FChipType","enableInput","fullWidth","slot","slotData","error","COLOR_PICKER","DATE","MULTI_AUTOCOMPLETE","displayId","displayMode","DESCRIPTION_AND_CODE","selectMode","showDropDownIcon","MULTI_COMBOBOX","radioData","index","radioEl","RATING","SWITCH","TIME","FTextField","onIconClick","FButton","SECONDARY_ICON_CLICK","styling","FButtonStyling","FLAT","C_RIGHT_ALIGNED","LINK","MEMO","onInput","math","numberifySafe","toString","INPUT_FIELD","maxLength","_b","cellData","textArea","inputType","decimals","integers","DATETIME","getCellValueForDisplay","EDITOR","innerHTML","badgeData","C_PADDED","href","target","cellValueNumber","TEXT_DANGER","barStyle","CLICK","FChip","GAUGE","KNOB","PROGRESS_BAR","customStyle","readOnly","isShapeBarMarker","toUpperCase","startsWith","isShapeMarker","isBgColorMarker","isHeightMarker","isDecoratorMarker","getData","graphicElementDefinitionArr","split","graphicElem","elementData","getElementData","commonsData","markersArray","shapesArray","vString","attr","replace","isNaN","parseFloat","substring","getShapeData","shapeData","pattern","match","exec","r","g","b","parseInt","createDataset","parts","pop","part","isCanvas","offlineMode","cellEventName","comp","getValueFromEventTarget","checkedItem","find","item","detail","stringifiedValues","displayedValue","CustomEvent","bubbles","cancelable","composed","event","inputValue","querySelector","dispatchEvent","refresh","logMessage","KupDebugCategory","ERROR","isInputEvent","formattedStringToNumberString","autoCenterComps","fullWidthFieldsComps"],"sources":["src/components/kup-list/kup-list-declarations.ts","src/f-components/f-switch/f-switch-declarations.ts","src/f-components/f-switch/f-switch.tsx","src/f-components/f-progress-bar/f-progress-bar.tsx","src/f-components/f-radio/f-radio-declarations.ts","src/f-components/f-radio/f-radio.tsx","src/f-components/f-rating/f-rating.tsx","src/f-components/f-cell/f-cell.tsx"],"sourcesContent":["import { KupEventPayload } from '../../types/GenericTypes';\nimport { ValueDisplayedValue as vdv } from '../../utils/filters/filters-declarations';\nimport { KupDataNode } from '../../managers/kup-data/kup-data-declarations';\n\n/**\n * Props of the kup-list component.\n * Used to export every prop in an object.\n */\nexport enum KupListProps {\n customStyle = 'Custom style of the component.',\n data = 'The data of the list.',\n displayMode = 'Selects how the items must display their label and how they can be filtered for.',\n filter = 'Keeps string for filtering elements when filter mode is active',\n hideText = \"Hides rows' text, ideally to display a list of icons only.\",\n isMenu = 'Defines whether the list is a menu or not.',\n keyboardNavigation = \"When true, enables items' navigation through arrow keys.\",\n menuVisible = \"Sets the status of the menu, when false it's hidden otherwise it's visible.\",\n roleType = 'Defines the type of selection. Values accepted: listbox, radiogroup or group.',\n selectable = 'Defines whether items are selectable or not.',\n showIcons = 'Displays the icons associated to each row when set to true.',\n twoLine = 'The list elements descriptions will be arranged in two lines.',\n}\n/**\n * Data structure of a single list item.\n */\nexport interface KupListNode extends KupDataNode {\n secondaryText?: string;\n selected?: boolean;\n separator?: boolean;\n}\n/**\n * Available types of selection.\n */\nexport enum KupListRole {\n LISTBOX = 'listbox',\n RADIOGROUP = 'radiogroup',\n GROUP = 'group',\n}\n\nexport interface ValueDisplayedValue extends vdv {\n exists: boolean;\n}\n\nexport enum ItemsDisplayMode {\n CODE = 'code',\n DESCRIPTION = 'description',\n DESCRIPTION_AND_CODE = 'both',\n}\nexport interface KupListEventPayload extends KupEventPayload {\n selected: KupListNode;\n index?: number;\n}\n","import type { FComponent } from '../../types/GenericTypes';\n/**\n * Props of the f-switch component.\n */\nexport interface FSwitchProps extends FComponent {\n checked?: boolean;\n disabled?: boolean;\n label?: string;\n leadingLabel?: boolean;\n onBlur?: (event: FocusEvent) => void;\n onClick?: (event: MouseEvent) => void;\n onChange?: (event: Event) => void;\n onFocus?: (event: FocusEvent) => void;\n sizing?: FSwitchSizing;\n}\n\n/**\n * Types of the f-chip component.\n * @enum {string}\n * @property {string} SMALL - Small size: height = 24px\n * @property {string} MEDIUM - Medium size: height = 32px (default)\n */\n\nexport enum FSwitchSizing { // GenericTypes to be studied because small chips goes with small button/textfield but has different sizes\n SMALL = 'small',\n MEDIUM = 'medium',\n}\n","import { FSwitchSizing, type FSwitchProps } from './f-switch-declarations';\nimport { FunctionalComponent, h } from '@stencil/core';\n\n/*-------------------------------------------------*/\n/* C o m p o n e n t */\n/*-------------------------------------------------*/\n\nexport const FSwitch: FunctionalComponent<FSwitchProps> = (\n props: FSwitchProps\n) => {\n if (!props.sizing) {\n props.sizing = FSwitchSizing.MEDIUM;\n }\n const isSmall: boolean = props.sizing.toLowerCase() === FSwitchSizing.SMALL;\n const classObj: Record<string, boolean> = {\n switch: true,\n 'switch--checked': props.checked,\n 'switch--disabled': props.disabled,\n [`switch--${props.sizing}`]: props.sizing ? true : false,\n };\n\n return (\n <div\n class={`f-switch ${props.danger ? 'kup-danger' : ''} ${\n props.info ? 'kup-info' : ''\n } ${props.secondary ? 'kup-secondary' : ''} ${\n props.success ? 'kup-success' : ''\n } ${props.warning ? 'kup-warning' : ''} ${\n props.wrapperClass ? props.wrapperClass : ''\n }`}\n {...props.dataSet}\n id={props.id}\n title={props.title}\n >\n <div\n class={`form-field ${\n props.leadingLabel ? 'form-field--align-end' : ''\n }`}\n >\n <div class={classObj}>\n <div class=\"switch__track\"></div>\n <div class=\"switch__thumb-underlay\">\n <div class=\"switch__thumb\">\n <input\n type=\"checkbox\"\n class=\"switch__native-control\"\n role=\"switch\"\n checked={props.checked}\n disabled={props.disabled}\n value={props.checked ? 'on' : 'off'}\n onBlur={props.onBlur}\n onChange={props.onChange}\n onFocus={props.onFocus}\n ></input>\n </div>\n </div>\n </div>\n <label onClick={props.onChange}>{props.label}</label>\n </div>\n </div>\n );\n};\n","import type { FProgressBarProps } from './f-progress-bar-declarations';\nimport { FunctionalComponent, getAssetPath, h } from '@stencil/core';\n\n/*-------------------------------------------------*/\n/* C o m p o n e n t */\n/*-------------------------------------------------*/\n\nexport const FProgressBar: FunctionalComponent<FProgressBarProps> = (\n props: FProgressBarProps\n) => {\n if (!props.centeredLabel && !props.centeredLabel !== false) {\n props.centeredLabel = true;\n }\n\n let componentClass = `f-progress-bar ${props.danger ? 'kup-danger' : ''} ${\n props.animated ? 'kup-animated' : ''\n } ${props.padded ? 'kup-padded' : ''} ${props.info ? 'kup-info' : ''} ${\n props.slim ? 'kup-slim' : ''\n } ${props.striped ? 'kup-striped' : ''} ${\n props.secondary ? 'kup-secondary' : ''\n } ${props.slim ? 'kup-slim' : ''} ${props.success ? 'kup-success' : ''} ${\n props.warning ? 'kup-warning' : ''\n } ${props.wrapperClass ? props.wrapperClass : ''}`;\n let pieClass: string = 'pie';\n let radialStyle = undefined;\n if (props.isRadial) {\n componentClass += ' pie-wrapper is-radial';\n } else {\n componentClass += ' progress-bar';\n }\n\n let labelStyle = undefined;\n\n const valueStyle = {\n width: `${props.value}%`,\n };\n\n if (!props.centeredLabel) {\n labelStyle = valueStyle;\n if (props.value > 2) {\n componentClass += ' text-color-on-primary';\n }\n } else if (props.value > 49) {\n componentClass += ' text-color-on-primary';\n }\n\n let label = null;\n if (props.icon) {\n label = createIconElement(props);\n } else {\n if (!props.hideLabel) {\n if (props.isRadial) {\n if (props.label) {\n label = <span class=\"label\">{props.label}</span>;\n } else {\n label = (\n <span class=\"label\">\n {props.value}\n <span class=\"smaller\">%</span>\n </span>\n );\n }\n } else {\n if (props.label) {\n label = props.label;\n } else {\n label = props.value + '%';\n }\n }\n }\n }\n\n if (props.value > 0) {\n pieClass += ' has-value';\n if (props.value > 50) {\n pieClass += ' is-more-than-half';\n } else {\n pieClass += ' is-less-than-half';\n }\n }\n\n if (props.isRadial) {\n return (\n <div class={componentClass}>\n {label}\n <div class={pieClass}>\n <div\n style={radialStyle}\n class=\"left-side half-circle\"\n ></div>\n <div class=\"right-side half-circle\"></div>\n </div>\n <div class=\"shadow\"></div>\n </div>\n );\n } else {\n return (\n <div class={componentClass}>\n <div class=\"progress-bar-percentage\" style={valueStyle}>\n <span style={labelStyle}>{label}</span>\n </div>\n </div>\n );\n }\n};\n\nfunction createIconElement(props: FProgressBarProps) {\n if (!props.icon) {\n return undefined;\n }\n\n if (\n props.icon.indexOf('.') > -1 ||\n props.icon.indexOf('/') > -1 ||\n props.icon.indexOf('\\\\') > -1\n ) {\n return (\n <span class=\"label kup-icon is-image\">\n <img src={props.icon}></img>\n </span>\n );\n } else {\n let svg: string = `url('${getAssetPath(\n `./assets/svg/${props.icon}.svg`\n )}') no-repeat center`;\n let iconStyle = {\n mask: svg,\n webkitMask: svg,\n };\n return <span style={iconStyle} class=\"label kup-icon\"></span>;\n }\n}\n","import type { FComponent } from '../../types/GenericTypes';\n/**\n * Props of the f-radio component.\n */\nexport interface FRadioProps extends FComponent {\n columns?: number;\n data?: FRadioData[];\n disabled?: boolean;\n label?: string;\n leadingLabel?: boolean;\n onBlur?: (event: FocusEvent) => void;\n onChange?: (i: number, event: Event) => void;\n onFocus?: (event: FocusEvent) => void;\n horizontal?: boolean;\n type?: FRadioType;\n}\n/**\n * The object of a single radio.\n */\nexport interface FRadioData {\n checked: boolean;\n label: string;\n value: string;\n}\n\nexport enum FRadioType {\n RADIO = 'radio',\n CHEVRON = 'chevron',\n}\n","import { FunctionalComponent, VNode, h, Fragment } from '@stencil/core';\nimport { GenericObject } from '../../components';\nimport {\n FRadioType,\n type FRadioData,\n type FRadioProps,\n} from './f-radio-declarations';\nimport { FImage } from '../f-image/f-image';\n\n/*-------------------------------------------------*/\n/* C o m p o n e n t */\n/*-------------------------------------------------*/\n\nexport const FRadio: FunctionalComponent<FRadioProps> = (\n props: FRadioProps\n) => {\n const hasColumns: boolean = !!props.columns;\n const radioList: Array<VNode> = [];\n\n // Default to 'radio' if props.type is not specified\n const radioType = props.type || FRadioType.RADIO;\n for (let i = 0; i < props.data?.length; i++) {\n const data: FRadioData = props.data[i];\n const classObj: GenericObject = {\n radio: true,\n 'radio--checked': data.checked ? true : false,\n 'radio--disabled': props.disabled ? true : false,\n [`radio--${props.type}`]: props.type ? true : false,\n };\n\n radioList.push(\n <div\n class={`form-field \n ${props.leadingLabel ? ' form-field--align-end' : ''} ${\n props.disabled ? 'radio--disabled' : ''\n }`}\n >\n <div class={classObj}>\n {radioType === FRadioType.RADIO ? (\n <input\n class=\"radio__native-control\"\n type=\"radio\"\n name=\"radio-element\"\n value={data.value}\n checked={data.checked}\n disabled={props.disabled}\n onBlur={props.onBlur}\n onChange={\n props.onChange\n ? props.onChange.bind(props.onChange, i)\n : null\n }\n onFocus={props.onFocus}\n ></input>\n ) : (\n <Fragment>\n {data.checked ? (\n <FImage\n resource=\"check\"\n sizeX=\"14px\"\n sizeY=\"14px\"\n ></FImage>\n ) : (\n <FImage\n sizeX=\"14px\"\n sizeY=\"14px\"\n onClick={\n props.onChange\n ? props.onChange.bind(\n props.onChange,\n i\n )\n : null\n }\n ></FImage>\n )}\n </Fragment>\n )}\n {radioType === FRadioType.RADIO && (\n <div class=\"radio__background\">\n <div class=\"radio__outer-circle\"></div>\n <div class=\"radio__inner-circle\"></div>\n </div>\n )}\n </div>\n <label\n htmlFor={'radio-element'}\n onClick={\n props.onChange\n ? props.onChange.bind(props.onChange, i)\n : null\n }\n >\n {data.label ? data.label : ''}\n </label>\n </div>\n );\n }\n\n const styleObj: GenericObject = {\n '--kup_radio_columns': hasColumns\n ? `repeat(${props.columns}, 1fr)`\n : '',\n };\n\n return (\n <div\n class={`f-radio radio-wrapper\n ${hasColumns ? 'radio-wrapper-grid' : ''} ${\n props.danger ? 'kup-danger' : ''\n } ${props.info ? 'kup-info' : ''} ${\n props.secondary ? 'kup-secondary' : ''\n } ${props.success ? 'kup-success' : ''} ${\n props.warning ? 'kup-warning' : ''\n } ${props.wrapperClass ? props.wrapperClass : ''} ${\n props.horizontal ? 'kup-horizontal' : ''\n }`}\n style={styleObj}\n >\n {radioList}\n </div>\n );\n};\n","import { FunctionalComponent, VNode, h } from '@stencil/core';\nimport type { FRatingProps } from './f-rating-declarations';\n\n/*-------------------------------------------------*/\n/* C o m p o n e n t */\n/*-------------------------------------------------*/\n\nexport const FRating: FunctionalComponent<FRatingProps> = (\n props: FRatingProps\n) => {\n if (!props.maxValue) {\n props.maxValue = 5;\n }\n return (\n <div\n class={`f-rating ${props.disabled ? 'disabled' : ''} ${\n props.danger ? 'kup-danger' : ''\n } ${props.info ? 'kup-info' : ''} ${\n props.secondary ? 'kup-secondary' : ''\n } ${props.success ? 'kup-success' : ''} ${\n props.warning ? 'kup-warning' : ''\n } ${props.wrapperClass ? props.wrapperClass : ''}`}\n >\n {buildStars(props)}\n </div>\n );\n};\n\nfunction buildStars(props: FRatingProps) {\n const stars: VNode[] = [];\n\n for (let i = 1; i <= props.maxValue; i++) {\n if (i <= props.value) {\n stars.push(\n <span\n class=\"rating\"\n onClick={\n props.onClick\n ? props.onClick.bind(props.onClick, i)\n : null\n }\n >\n ★\n </span>\n );\n } else {\n stars.push(\n <span\n class=\"rating\"\n onClick={\n props.onClick\n ? props.onClick.bind(props.onClick, i)\n : null\n }\n >\n ☆\n </span>\n );\n }\n }\n\n return stars;\n}\n","import type { FCheckboxProps } from '../f-checkbox/f-checkbox-declarations';\nimport type { FImageData, FImageProps } from '../f-image/f-image-declarations';\nimport {\n FButtonStyling,\n type FButtonProps,\n} from '../f-button/f-button-declarations';\nimport type { KupChart } from '../../components/kup-chart/kup-chart';\nimport type { KupDom } from '../../managers/kup-manager/kup-manager-declarations';\nimport type { KupAutocompleteEventPayload } from '../../components/kup-autocomplete/kup-autocomplete-declarations';\nimport type { KupComboboxEventPayload } from '../../components/kup-combobox/kup-combobox-declarations';\nimport type { KupDatePickerEventPayload } from '../../components/kup-date-picker/kup-date-picker-declarations';\nimport type { KupTimePickerEventPayload } from '../../components/kup-time-picker/kup-time-picker-declarations';\nimport type { KupRatingClickEventPayload } from '../../components/kup-rating/kup-rating-declarations';\nimport type { KupColorPickerEventPayload } from '../../components/kup-color-picker/kup-color-picker-declarations';\nimport {\n GenericObject,\n KupComponent,\n KupTagNames,\n} from '../../types/GenericTypes';\nimport {\n autoCenterComps,\n editableTypes,\n FCellClasses,\n FCellEventPayload,\n FCellEvents,\n FCellInfo,\n FCellProps,\n FCellShapes,\n FCellTypes,\n fullWidthFieldsComps,\n kupTypes,\n} from './f-cell-declarations';\nimport { Fragment, FunctionalComponent, h, VNode } from '@stencil/core';\nimport {\n CHIAdapter,\n CMBandACPAdapter,\n getCellValueForDisplay,\n isForceLowercase,\n isForceUppercase,\n RADAdapter,\n} from '../../utils/cell-utils';\nimport { FCheckbox } from '../f-checkbox/f-checkbox';\nimport { FTextField } from '../f-text-field/f-text-field';\nimport { FImage } from '../f-image/f-image';\nimport { FChip } from '../f-chip/f-chip';\nimport { KupThemeColorValues } from '../../managers/kup-theme/kup-theme-declarations';\nimport {\n CellOptions,\n KupDataCell,\n KupDataCellOptions,\n KupDataColumn,\n KupDataNode,\n KupDataRow,\n} from '../../managers/kup-data/kup-data-declarations';\nimport { FSwitch } from '../f-switch/f-switch';\nimport { KupChipChangeEventPayload } from '../../components/kup-chip/kup-chip-declarations';\nimport { FChipsProps, FChipType } from '../f-chip/f-chip-declarations';\nimport { ItemsDisplayMode } from '../../components/kup-list/kup-list-declarations';\nimport { FButton } from '../f-button/f-button';\nimport { FProgressBar } from '../f-progress-bar/f-progress-bar';\nimport { FRadio } from '../f-radio/f-radio';\nimport { FRating } from '../f-rating/f-rating';\nimport type { KupDataTable } from '../../components/kup-data-table/kup-data-table';\nimport { FRadioData, FRadioProps } from '../f-radio/f-radio-declarations';\nimport { KupDebugCategory } from '../../managers/kup-debug/kup-debug-declarations';\nimport {\n DataAdapterFn,\n KupInputPanelCell,\n} from '../../components/kup-input-panel/kup-input-panel-declarations';\n\nconst dom: KupDom = document.documentElement as KupDom;\n\n/*-------------------------------------------------*/\n/* C o m p o n e n t */\n/*-------------------------------------------------*/\n\nexport const FCell: FunctionalComponent<FCellProps> = (\n props: FCellProps,\n children?: VNode[]\n) => {\n const cell = props.cell;\n const column = props.column;\n const row = props.row;\n const shape = props.shape\n ? props.shape\n : cell.shape\n ? cell.shape\n : column.shape\n ? column.shape\n : null;\n const hasObj = !dom.ketchup.objects.isEmptyKupObj(cell.obj);\n let isEditable = false;\n if (cell.hasOwnProperty('isEditable')) {\n isEditable = cell.isEditable;\n } else if (column.hasOwnProperty('isEditable')) {\n isEditable = column.isEditable;\n }\n isEditable = isEditable && props.editable;\n\n if (cell.options) {\n cell.data = mapData(cell, column) ?? cell.data;\n }\n\n const valueToDisplay = props.previousValue !== cell.value ? cell.value : '';\n const cellType = dom.ketchup.data.cell.getType(cell, shape);\n const subcomponentProps: unknown = { ...cell.data };\n let cssClasses = cell.cssClass\n ? cell.cssClass\n : column?.cssClass\n ? column?.cssClass\n : '';\n\n if ((props.component as KupDataTable).legacyLook) {\n cssClasses += ' monospace c-pre';\n }\n const classObj: Record<string, boolean> = {\n 'f-cell': true,\n [FCellClasses.OBJ]: hasObj ? true : false,\n [cellType + '-cell']: true,\n [props.wrapperClass]: props.wrapperClass ? true : false,\n [props.density]:\n props.density && cellType !== FCellTypes.BAR ? true : false,\n [cssClasses]: cssClasses ? true : false,\n 'c-input-uppercase': isForceUppercase(cell),\n 'c-input-lowercase': isForceLowercase(cell),\n };\n let content: unknown = valueToDisplay;\n if (!cell.data) {\n setDefaults(cellType, cell);\n }\n if (isEditable && editableTypes.includes(cellType)) {\n content = setEditableCell(cellType, classObj, cell, column, props);\n } else if (cell.data && kupTypes.includes(cellType)) {\n if (props.setSizes) {\n setCellSizeKup(cellType, subcomponentProps, cell);\n }\n if (!props.renderKup) {\n const lazyClass = 'cell-' + cellType + ' placeholder';\n content = <span class={lazyClass}></span>;\n } else {\n content = setKupCell(\n cellType,\n classObj,\n subcomponentProps,\n cell,\n row,\n column,\n props\n );\n }\n } else {\n if (props.setSizes) {\n setCellSize(cellType, subcomponentProps, cell, props);\n }\n content = setCell(\n cellType,\n subcomponentProps,\n content,\n classObj,\n cell,\n column,\n props\n );\n }\n\n let icon: VNode = null;\n if (!isEditable && (column.icon || cell.icon) && content) {\n const fProps: FImageProps = {\n color: `rgba(var(${KupThemeColorValues.TEXT}-rgb), 0.375)`,\n resource: cell.icon ? cell.icon : column.icon,\n placeholderResource: cell.placeholderIcon\n ? cell.placeholderIcon\n : column.placeholderIcon,\n sizeX: '1.25em',\n sizeY: '1.25em',\n wrapperClass: 'obj-icon',\n };\n icon = <FImage {...fProps} />;\n }\n\n let cellTitle: string = null;\n if (dom.ketchup.debug.isDebug() && hasObj) {\n cellTitle = cell.obj.t + '; ' + cell.obj.p + '; ' + cell.obj.k + ';';\n } else if (cell.title != null && cell.title.trim() != '') {\n cellTitle = cell.title;\n }\n\n let infoEl: HTMLElement = null;\n if (cell.info) {\n const info: FCellInfo = { ...cell.info };\n if (!info.color) {\n info.color = `var(${KupThemeColorValues.INFO})`;\n }\n if (!info.icon) {\n info.icon = 'info';\n }\n const fProps: FImageProps = {\n color: info.color,\n resource: info.icon,\n placeholderResource: info.placeholderIcon,\n sizeX: '1.25em',\n sizeY: '1.25em',\n title: info.message ? info.message : '',\n wrapperClass: 'cell-info',\n };\n infoEl = <FImage {...fProps} />;\n }\n\n return (\n <div\n onKeyUp={(e) => cellEvent(e, props, cellType, FCellEvents.KEYUP)}\n class={classObj}\n kup-get-cell-props={() => {\n return props;\n }}\n ref={(el) => (cell.element = el)}\n style={cell.style}\n >\n <div\n class=\"f-cell__content\"\n style={cell.styleContent}\n title={cellTitle}\n >\n {props.cellActionIcon && (\n <FImage\n resource=\"more_vert\"\n sizeX=\"16px\"\n sizeY=\"16px\"\n wrapperClass={`f-cell__iconfunction ${\n cellType === FCellTypes.NUMBER ? 'left' : 'right'\n }`}\n onClick={props.cellActionIcon.onClick}\n tabIndex={0}\n />\n )}\n {children && children.length > 0\n ? children\n : [props.indents, infoEl, icon, content]}\n </div>\n </div>\n );\n};\n\nconst mapData = (cell: KupDataCellOptions, column: KupDataColumn) => {\n if (!cell) {\n return null;\n }\n const options = cell.options;\n const fieldLabel = column.title;\n const currentValue = cell.value;\n const cellType = dom.ketchup.data.cell.getType(cell, cell.shape);\n const dataAdapterMap = new Map<FCellTypes, DataAdapterFn>([\n [FCellTypes.BUTTON_LIST, MainBTNAdapter.bind(this)],\n [FCellTypes.STRING, MainITXAdapter.bind(this)],\n [FCellTypes.RADIO, MainRADAdapter.bind(this)],\n [FCellTypes.AUTOCOMPLETE, MainCMBandACPAdapter.bind(this)],\n [FCellTypes.COMBOBOX, MainCMBandACPAdapter.bind(this)],\n [FCellTypes.CHECKBOX, MainCHKAdapter.bind(this)],\n [FCellTypes.OBJECT, MainObjectAdapter.bind(this)],\n [FCellTypes.CHIP, MainCHIAdapter.bind(this)],\n ]);\n\n const adapter = dataAdapterMap.get(cellType);\n return adapter ? adapter(options, fieldLabel, currentValue, cell) : null;\n};\n\nconst MainCHIAdapter = (\n options: CellOptions[],\n _fieldLabel: string,\n _currentValue: string,\n cell: KupInputPanelCell\n) => {\n const newData = {\n data: options?.length\n ? options?.map((option) => ({\n id: option.id,\n value: option.id,\n }))\n : [],\n };\n cell.data = { ...cell.data, ...newData };\n};\n\nconst MainObjectAdapter = (\n _options: CellOptions[],\n fieldLabel: string,\n currentValue: string,\n _cell: KupInputPanelCell,\n _id: string\n) => ({\n data: {\n initialValue: currentValue || '',\n label: fieldLabel || '',\n value: currentValue || '',\n },\n});\n\nconst MainCHKAdapter = (\n _options: CellOptions[],\n fieldLabel: string,\n currentValue: string,\n cell: KupDataCellOptions\n) => ({\n ...cell.data,\n checked: currentValue === 'on' || currentValue === '1',\n label: fieldLabel,\n});\n\nconst MainBTNAdapter = (\n _options: CellOptions[],\n _fieldLabel: string,\n currentValue: string,\n cell: KupDataCellOptions\n) => ({\n data: [\n {\n ...cell.data,\n icon: cell.icon,\n value: currentValue,\n },\n ],\n});\n\nconst MainITXAdapter = (\n _options: CellOptions[],\n fieldLabel: string,\n _currentValue: string,\n cell: KupDataCellOptions\n) => ({\n ...cell.data,\n label: fieldLabel,\n});\n\nconst MainRADAdapter = (\n options: CellOptions[],\n _fieldLabel: string,\n currentValue: string,\n cell?: KupDataCellOptions\n) => {\n const newData = RADAdapter(currentValue, options);\n cell.data = { ...cell.data, ...newData };\n};\n\nconst MainCMBandACPAdapter = (\n options: CellOptions[],\n fieldLabel: string,\n currentValue: string,\n cell: KupDataCellOptions,\n _id: string\n) => {\n if (!cell.data?.data && options) {\n const configCMandACP = CMBandACPAdapter(currentValue, fieldLabel, []);\n configCMandACP.data['kup-list'].data = optionsTreeComboAdapter(\n options,\n currentValue\n );\n return configCMandACP;\n }\n};\n\nconst optionsTreeComboAdapter = (options: any, currentValue: string) => {\n const adapter = 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\nconst 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 ? treeOptionsNodeAdapter(child, currentValue)\n : [],\n }));\n};\n\nconst 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 ? dataTreeOptionsChildrenAdapter(child, currentValue)\n : [],\n }));\n};\n\nconst tableOptionsAdapter = (\n options: any,\n currentValue: string\n): 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\nconst optionsAdapterMap = new Map<\n string,\n (options: any, currentValue: string) => GenericObject[]\n>([\n ['SmeupTreeNode', treeOptionsNodeAdapter.bind(this)],\n ['SmeupDataTree', dataTreeOptionsChildrenAdapter.bind(this)],\n ['SmeupTable', tableOptionsAdapter.bind(this)],\n ['SmeupDataTable', tableOptionsAdapter.bind(this)],\n]);\n\nfunction setCellSize(\n cellType: string,\n subcomponentProps: unknown,\n cell: KupDataCell,\n props: FCellProps\n) {\n switch (cellType) {\n case FCellTypes.CHECKBOX:\n case FCellTypes.ICON:\n if (!(subcomponentProps as FImageProps).sizeX) {\n (subcomponentProps as FImageProps).sizeX = '18px';\n }\n if (!(subcomponentProps as FImageProps).sizeY) {\n (subcomponentProps as FImageProps).sizeY = '18px';\n }\n if (cell.style) {\n if (!cell.style.height) {\n cell.style['minHeight'] = (\n subcomponentProps as FImageProps\n ).sizeY;\n }\n } else {\n cell.style = {\n minHeight: (subcomponentProps as FImageProps).sizeY,\n };\n }\n break;\n case FCellTypes.IMAGE:\n const cellValue = props.cell?.value || '';\n const hasExternalResource =\n cellValue.indexOf('.') > -1 ||\n cellValue.indexOf('/') > -1 ||\n cellValue.indexOf('\\\\') > -1;\n if (\n (props.component as KupComponent).rootElement.tagName ===\n KupTagNames.DATA_TABLE &&\n !hasExternalResource\n ) {\n if (\n !(subcomponentProps as FImageProps).sizeX &&\n !(subcomponentProps as FImageProps).sizeY\n ) {\n (subcomponentProps as FImageProps).sizeX = '100%';\n (subcomponentProps as FImageProps).sizeY = '64px';\n (subcomponentProps as FImageProps).wrapperClass = 'noWidth';\n } else {\n if (!(subcomponentProps as FImageProps).sizeX) {\n (subcomponentProps as FImageProps).sizeX = '100%';\n (subcomponentProps as FImageProps).wrapperClass =\n 'noWidth';\n }\n if (!(subcomponentProps as FImageProps).sizeY) {\n (subcomponentProps as FImageProps).sizeY = 'auto';\n }\n }\n }\n if (\n (props.component as KupComponent).rootElement.tagName ===\n KupTagNames.BOX\n ) {\n if (!(subcomponentProps as FImageProps).sizeY) {\n (subcomponentProps as FImageProps).sizeY = 'auto';\n }\n if ((subcomponentProps as FImageProps).fit === undefined) {\n (subcomponentProps as FImageProps).fit = true;\n }\n } else if (!(subcomponentProps as FImageProps).sizeX) {\n (subcomponentProps as FImageProps).sizeX = 'auto';\n }\n if (!(subcomponentProps as FImageProps).sizeY) {\n (subcomponentProps as FImageProps).sizeY = '64px';\n }\n\n break;\n }\n}\n\nfunction setCellSizeKup(\n cellType: string,\n subcomponentProps: unknown,\n cell: KupDataCell\n) {\n switch (cellType) {\n case FCellTypes.BAR:\n if (!(subcomponentProps as FImageProps).sizeY) {\n (subcomponentProps as FImageProps).sizeY = '26px';\n }\n break;\n case FCellTypes.BUTTON:\n let height: string = '';\n if ((subcomponentProps as FButtonProps).label) {\n height = '36px';\n }\n if (cell.style) {\n if (!cell.style.height) {\n cell.style['minHeight'] = height;\n }\n } else {\n cell.style = { minHeight: height };\n }\n break;\n case FCellTypes.CHART:\n if (!(subcomponentProps as KupChart).sizeX) {\n (subcomponentProps as KupChart).sizeX = '100%';\n }\n if (!(subcomponentProps as KupChart).sizeY) {\n (subcomponentProps as KupChart).sizeY = '100%';\n }\n break;\n case FCellTypes.CHIP:\n if (cell.style) {\n if (!cell.style.height) {\n cell.style['minHeight'] = '40px';\n }\n } else {\n cell.style = { minHeight: '40px' };\n }\n break;\n case FCellTypes.RADIO:\n if (cell.style) {\n if (!cell.style.height) {\n cell.style['minHeight'] = '40px';\n }\n } else {\n cell.style = { minHeight: '40px' };\n }\n break;\n }\n}\n\nfunction setEditableCell(\n cellType: string,\n classObj: Record<string, boolean>,\n cell: KupDataCell,\n column: KupDataColumn,\n props: FCellProps\n): unknown {\n switch (cellType) {\n case FCellTypes.AUTOCOMPLETE:\n return (\n <kup-autocomplete\n key={column.name + props.row.id}\n initialValue={cell.value}\n {...cell.data}\n class={isFullWidth(props) ? 'kup-full-width' : ''}\n onkup-autocomplete-change={(\n e: CustomEvent<KupAutocompleteEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n onkup-autocomplete-input={(\n e: CustomEvent<KupAutocompleteEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.INPUT)}\n onkup-autocomplete-iconclick={(\n e: CustomEvent<KupAutocompleteEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.ICON_CLICK)}\n />\n );\n case FCellTypes.CHECKBOX:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n\n if (cell.shape === FCellShapes.INPUT_CHECKBOX) {\n return (\n <input\n checked={\n cell.value === 'on' || cell.value === '1'\n ? true\n : false\n }\n class=\"input-checkbox\"\n onChange={(e: InputEvent) =>\n cellEvent(e, props, cellType, FCellEvents.UPDATE)\n }\n type=\"checkbox\"\n ></input>\n );\n } else {\n return (\n <FCheckbox\n {...cell.data}\n onChange={(e: InputEvent) =>\n cellEvent(e, props, cellType, FCellEvents.UPDATE)\n }\n />\n );\n }\n case FCellTypes.CHIP:\n return (\n <kup-chip\n {...cell.data}\n type={FChipType.INPUT}\n enableInput={true}\n onKup-chip-change={(\n e: CustomEvent<KupChipChangeEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n >\n <kup-text-field\n fullWidth={true}\n slot=\"field\"\n {...cell.slotData}\n error={cell.data.error}\n ></kup-text-field>\n </kup-chip>\n );\n case FCellTypes.COLOR_PICKER:\n return (\n <kup-color-picker\n key={column.name + props.row.id}\n initialValue={cell.value}\n {...cell.data}\n class={isFullWidth(props) ? 'kup-full-width' : ''}\n disabled={false}\n onkup-colorpicker-change={(\n e: CustomEvent<KupColorPickerEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n ></kup-color-picker>\n );\n case FCellTypes.COMBOBOX:\n return (\n <kup-combobox\n key={column.name + props.row.id}\n initialValue={cell.value}\n {...cell.data}\n class={isFullWidth(props) ? 'kup-full-width' : ''}\n onkup-combobox-change={(\n e: CustomEvent<KupComboboxEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n onkup-combobox-input={(\n e: CustomEvent<KupComboboxEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.INPUT)}\n onkup-combobox-iconclick={(\n e: CustomEvent<KupComboboxEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.ICON_CLICK)}\n />\n );\n case FCellTypes.DATE:\n return (\n <kup-date-picker\n key={column.name + props.row.id}\n initialValue={cell.value}\n {...cell.data}\n class={isFullWidth(props) ? 'kup-full-width' : ''}\n onkup-datepicker-change={(\n e: CustomEvent<KupDatePickerEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n onkup-datepicker-input={(\n e: CustomEvent<KupDatePickerEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.INPUT)}\n />\n );\n case FCellTypes.MULTI_AUTOCOMPLETE:\n return (\n <kup-chip\n displayId={true}\n {...cell.data}\n type={FChipType.INPUT}\n enableInput={true}\n onKup-chip-change={(\n e: CustomEvent<KupChipChangeEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n >\n <kup-autocomplete\n class=\"kup-full-width\"\n slot=\"field\"\n displayMode={ItemsDisplayMode.DESCRIPTION_AND_CODE}\n selectMode={ItemsDisplayMode.DESCRIPTION_AND_CODE}\n onkup-autocomplete-input={(\n e: CustomEvent<KupAutocompleteEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.INPUT)}\n onkup-autocomplete-iconclick={(\n e: CustomEvent<KupComboboxEventPayload>\n ) =>\n cellEvent(\n e,\n props,\n cellType,\n FCellEvents.ICON_CLICK\n )\n }\n showDropDownIcon={false}\n {...cell.slotData}\n error={cell.data.error}\n ></kup-autocomplete>\n </kup-chip>\n );\n case FCellTypes.MULTI_COMBOBOX:\n return (\n <kup-chip\n displayId={true}\n {...cell.data}\n type={FChipType.INPUT}\n enableInput={true}\n onKup-chip-change={(\n e: CustomEvent<KupChipChangeEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n >\n <kup-combobox\n class=\"kup-full-width\"\n slot=\"field\"\n displayMode={ItemsDisplayMode.DESCRIPTION_AND_CODE}\n selectMode={ItemsDisplayMode.DESCRIPTION_AND_CODE}\n onkup-combobox-input={(\n e: CustomEvent<KupComboboxEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.INPUT)}\n onkup-combobox-iconclick={(\n e: CustomEvent<KupComboboxEventPayload>\n ) =>\n cellEvent(\n e,\n props,\n cellType,\n FCellEvents.ICON_CLICK\n )\n }\n {...cell.slotData}\n error={cell.data.error}\n ></kup-combobox>\n </kup-chip>\n );\n case FCellTypes.RADIO:\n return (\n <FRadio\n {...cell.data}\n disabled={false}\n onChange={(i: number, e: InputEvent) => {\n const radioData = (cell.data as FRadioProps).data;\n for (let index = 0; index < radioData.length; index++) {\n const radioEl = radioData[index];\n if (index === i) {\n radioEl.checked = true;\n } else {\n radioEl.checked = false;\n }\n }\n cellEvent(e, props, cellType, FCellEvents.UPDATE);\n }}\n ></FRadio>\n );\n case FCellTypes.RATING:\n return (\n <kup-rating\n key={column.name + props.row.id}\n {...cell.data}\n disabled={false}\n onkup-rating-click={(\n e: CustomEvent<KupRatingClickEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n ></kup-rating>\n );\n case FCellTypes.SWITCH:\n return (\n <FSwitch\n {...cell.data}\n disabled={false}\n onChange={(e: InputEvent) =>\n cellEvent(e, props, cellType, FCellEvents.UPDATE)\n }\n ></FSwitch>\n );\n case FCellTypes.TIME:\n return (\n <kup-time-picker\n key={column.name + props.row.id}\n initialValue={cell.value}\n {...cell.data}\n class={isFullWidth(props) ? 'kup-full-width' : ''}\n onkup-timepicker-change={(\n e: CustomEvent<KupTimePickerEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.UPDATE)}\n onkup-timepicker-input={(\n e: CustomEvent<KupTimePickerEventPayload>\n ) => cellEvent(e, props, cellType, FCellEvents.INPUT)}\n />\n );\n case FCellTypes.OBJECT:\n return (\n <Fragment>\n <FTextField\n icon={'table'}\n {...cell.data}\n disabled={false}\n onIconClick={(e) =>\n cellEvent(\n e,\n props,\n cellType,\n FCellEvents.ICON_CLICK\n )\n }\n ></FTextField>\n <FButton\n icon=\"menu\"\n onClick={(e) =>\n cellEvent(\n e,\n props,\n cellType,\n FCellEvents.SECONDARY_ICON_CLICK\n )\n }\n styling={FButtonStyling.FLAT}\n wrapperClass=\"obj-field-extra-btn\"\n ></FButton>\n </Fragment>\n );\n case FCellTypes.NUMBER:\n classObj[FCellClasses.C_RIGHT_ALIGNED] = true;\n case FCellTypes.LINK:\n case FCellTypes.MEMO:\n case FCellTypes.STRING:\n const onChange = (e: InputEvent) =>\n cellEvent(e, props, cellType, FCellEvents.UPDATE);\n const onInput = (e: InputEvent) => {\n cellEvent(e, props, cellType, FCellEvents.INPUT);\n cellEvent(e, props, cellType, FCellEvents.UPDATE);\n };\n const type = cellType === FCellTypes.NUMBER ? 'number' : null;\n const value =\n cellType === FCellTypes.NUMBER && cell.value\n ? dom.ketchup.math.numberifySafe(cell.value).toString()\n : cell.value;\n if (cell.shape === FCellShapes.INPUT_FIELD) {\n return (\n <input\n class={'input-field'}\n onChange={onChange}\n onInput={onInput}\n type={type}\n value={value}\n maxLength={column.cellData?.maxLength ?? -1}\n ></input>\n );\n } else {\n return (\n <FTextField\n textArea={\n (cell.shape\n ? cell.shape === FCellShapes.MEMO\n : false) ||\n (cellType ? cellType === FCellTypes.MEMO : false)\n }\n inputType={type}\n fullWidth={isFullWidth(props) ? true : false}\n {...cell.data}\n icon={\n cell.data && cell.data.icon\n ? cell.data.icon\n : cell.icon\n ? cell.icon\n : column.icon\n ? column.icon\n : null\n }\n decimals={props.column.decimals}\n integers={props.column.integers}\n value={value}\n onChange={onChange}\n onInput={onInput}\n onIconClick={(e: MouseEvent) =>\n cellEvent(\n e,\n props,\n cellType,\n FCellEvents.ICON_CLICK\n )\n }\n />\n );\n }\n }\n}\n\nfunction setCell(\n cellType: string,\n subcomponentProps: GenericObject,\n content: unknown,\n classObj: Record<string, boolean>,\n cell: KupDataCell,\n column: KupDataColumn,\n props: FCellProps\n): unknown {\n switch (cellType) {\n case FCellTypes.AUTOCOMPLETE:\n case FCellTypes.COMBOBOX:\n case FCellTypes.DATE:\n case FCellTypes.DATETIME:\n case FCellTypes.TIME:\n if (content && content != '') {\n const cellValue = getCellValueForDisplay(column, cell);\n return <div class=\"f-cell__text\">{cellValue}</div>;\n }\n return content;\n case FCellTypes.CHECKBOX:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n return (\n <FImage\n resource={\n (subcomponentProps as FCheckboxProps).checked\n ? 'check_box'\n : 'check_box_outline_blank'\n }\n sizeX=\"18px\"\n sizeY=\"18px\"\n />\n );\n case FCellTypes.EDITOR:\n return <div innerHTML={cell.value}></div>;\n case FCellTypes.ICON:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n if ((subcomponentProps as FImageProps).badgeData) {\n classObj[FCellClasses.C_PADDED] = true;\n }\n return <FImage {...subcomponentProps} />;\n case FCellTypes.IMAGE:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n if ((subcomponentProps as FImageProps).badgeData) {\n classObj[FCellClasses.C_PADDED] = true;\n }\n\n return <FImage {...subcomponentProps} />;\n\n case FCellTypes.LINK:\n return (\n <a href={content as string} target=\"_blank\">\n {cell.value}\n </a>\n );\n case FCellTypes.NUMBER:\n if (content && content != '') {\n const cellValueNumber = dom.ketchup.math.numberifySafe(\n cell.value\n );\n const cellValue = getCellValueForDisplay(column, cell);\n if (cellValueNumber < 0) {\n classObj[FCellClasses.TEXT_DANGER] = true;\n }\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_RIGHT_ALIGNED] = true;\n }\n return <div class=\"f-cell__text\">{cellValue}</div>;\n }\n return <div class=\"f-cell__text\">{content}</div>;\n case FCellTypes.SWITCH:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n subcomponentProps['disabled'] = true;\n return <FSwitch {...subcomponentProps}></FSwitch>;\n default:\n return <div class=\"f-cell__text\">{content}</div>;\n }\n}\n\nfunction setKupCell(\n cellType: string,\n classObj: Record<string, boolean>,\n subcomponentProps: GenericObject,\n cell: KupDataCell,\n row: KupDataRow,\n column: KupDataColumn,\n props: FCellProps\n): unknown {\n switch (cellType) {\n case FCellTypes.BAR:\n if (!(subcomponentProps as FImageProps).data) {\n return (\n <kup-image\n key={column.name + props.row.id}\n sizeX=\"250px\"\n {...subcomponentProps}\n />\n );\n } else {\n const barStyle = {\n height: (subcomponentProps as FImageProps).sizeY,\n width: '100%',\n };\n return (\n <div style={barStyle}>\n <FImage {...subcomponentProps} />\n </div>\n );\n }\n case FCellTypes.BUTTON:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n return (\n <FButton\n {...subcomponentProps}\n onClick={(e) =>\n cellEvent(e, props, cellType, FCellEvents.CLICK)\n }\n ></FButton>\n );\n case FCellTypes.BUTTON_LIST:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n subcomponentProps['data-storage'] = {\n cell: cell,\n row: row,\n column: column,\n };\n return (\n <kup-button-list\n key={column.name + props.row.id}\n {...subcomponentProps}\n ></kup-button-list>\n );\n case FCellTypes.CHART:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n return (\n <kup-chart\n key={column.name + props.row.id}\n {...subcomponentProps}\n />\n );\n case FCellTypes.MULTI_AUTOCOMPLETE:\n case FCellTypes.MULTI_COMBOBOX:\n case FCellTypes.CHIP:\n return <FChip {...subcomponentProps} />;\n case FCellTypes.COLOR_PICKER:\n return (\n <kup-color-picker\n key={column.name + props.row.id}\n {...subcomponentProps}\n class={isFullWidth(props) ? 'kup-full-width' : ''}\n disabled\n ></kup-color-picker>\n );\n case FCellTypes.GAUGE:\n return (\n <kup-gauge\n key={column.name + props.row.id}\n value={dom.ketchup.math.numberifySafe(cell.value)}\n width-component=\"280px\"\n {...subcomponentProps}\n ></kup-gauge>\n );\n case FCellTypes.KNOB:\n case FCellTypes.PROGRESS_BAR:\n return subcomponentProps.customStyle ? (\n <kup-progress-bar\n key={column.name + props.row.id}\n {...subcomponentProps}\n ></kup-progress-bar>\n ) : (\n <FProgressBar {...subcomponentProps}></FProgressBar>\n );\n case FCellTypes.RADIO:\n if (isAutoCentered(props)) {\n classObj[FCellClasses.C_CENTERED] = true;\n }\n subcomponentProps['disabled'] = row.readOnly;\n return <FRadio {...subcomponentProps}></FRadio>;\n case FCellTypes.RATING:\n return <FRating {...subcomponentProps} disabled={true}></FRating>;\n case FCellTypes.OBJECT:\n return (\n <FTextField\n icon={'table'}\n {...subcomponentProps}\n disabled={true}\n ></FTextField>\n );\n }\n}\n\nfunction setDefaults(cellType: string, cell: KupDataCell): void {\n function isShapeBarMarker(value: string): boolean {\n return value.toUpperCase().startsWith('SHAPE;BAR');\n }\n\n function isShapeMarker(value: string): boolean {\n return value.toUpperCase().startsWith('SHAPE;');\n }\n\n function isBgColorMarker(value: string): boolean {\n return value.toUpperCase().startsWith('BCOLOR;');\n }\n\n function isHeightMarker(value: string): boolean {\n return value.toUpperCase().startsWith('HEIGHT;');\n }\n\n function isDecoratorMarker(value: string): boolean {\n return (\n value.toUpperCase().startsWith('SEP;') ||\n value.toUpperCase().startsWith('DIV;') ||\n value.toUpperCase().startsWith('ARW;') ||\n value.toUpperCase().startsWith('GRID;')\n );\n }\n function getData(value: string): FImageData[] | null {\n if (!value) {\n return null;\n }\n const graphicElementDefinitionArr = value.split('\\\\\\\\AND\\\\');\n const data: FImageData[] = [];\n for (const graphicElem of graphicElementDefinitionArr) {\n const elementData = getElementData(graphicElem);\n if (elementData) {\n data.push(...elementData);\n } else {\n return null;\n }\n }\n return data;\n }\n\n function getElementData(value: string): FImageData[] | null {\n const commonsData: FImageData = {};\n\n const markersArray = value.split('\\\\\\\\');\n const shapesArray: FImageData[] = [];\n\n for (const vString of markersArray) {\n if (vString) {\n if (isDecoratorMarker(vString)) {\n return null;\n }\n\n if (isShapeMarker(vString)) {\n if (!isShapeBarMarker(vString)) {\n return null;\n } else {\n const attr = vString.split(';');\n if (attr.length === 3) {\n const width = attr[2].replace(',', '.');\n if (!isNaN(parseFloat(width))) {\n commonsData.width = `${width}%`;\n }\n }\n }\n } else if (isBgColorMarker(vString)) {\n // Background color handling can be added here if needed\n } else if (isHeightMarker(vString)) {\n const height = vString\n .substring('HEIGHT;'.length)\n .replace(',', '.');\n if (!isNaN(parseFloat(height))) {\n commonsData.height = `${height}%`;\n }\n } else {\n shapesArray.push(getShapeData(vString, commonsData));\n }\n }\n return shapesArray.length ? shapesArray : null;\n }\n\n function getShapeData(\n value: string,\n commonsData: FImageData\n ): FImageData {\n const shapeData: FImageData = { ...commonsData };\n const attr = value.split(';');\n if (attr.length >= 1) {\n const pattern = /R(\\d+)G(\\d+)B(\\d+)/;\n const match = pattern.exec(attr[0]);\n if (match) {\n const [, r, g, b] = match;\n if (\n !isNaN(parseInt(r, 10)) &&\n !isNaN(parseInt(g, 10)) &&\n !isNaN(parseInt(b, 10))\n ) {\n shapeData.color = `rgb(${parseInt(r)},${parseInt(\n g\n )},${parseInt(b)})`;\n }\n }\n if (attr.length >= 2) {\n const width = attr[1].replace(',', '.');\n if (!isNaN(parseFloat(width))) {\n shapeData.width = `${width}%`;\n }\n }\n }\n return shapeData;\n }\n }\n\n cell.data = {};\n\n const createDataset = () => {\n const parts = cell.value?.split(';');\n if (parts?.[parts.length - 1].trim() === '') {\n parts.pop();\n }\n if (parts && parts.length) {\n cell.data.data = [];\n for (let part of parts) {\n (cell.data.data as KupDataNode[]).push({\n id: part,\n value: part,\n });\n }\n }\n };\n\n switch (cellType) {\n case FCellTypes.CHECKBOX:\n case FCellTypes.SWITCH:\n cell.data.checked = cell.value === '1' ? true : false;\n break;\n\n case FCellTypes.BAR:\n if (isShapeMarker(cell.value)) {\n cell.data.isCanvas = true;\n cell.data.resource = cell.value;\n } else {\n cell.data.data = getData(cell.value);\n }\n break;\n\n case FCellTypes.BUTTON:\n cell.data.label = cell.value;\n break;\n\n case FCellTypes.CHART:\n Object.assign(cell.data, {\n sizeX: '100px',\n sizeY: '100px',\n offlineMode: {\n value: cell.value,\n shape: 'pie',\n },\n });\n break;\n\n case FCellTypes.BUTTON_LIST:\n case FCellTypes.CHIP:\n case FCellTypes.MULTI_AUTOCOMPLETE:\n case FCellTypes.MULTI_COMBOBOX:\n case FCellTypes.RADIO:\n createDataset();\n break;\n\n case FCellTypes.COLOR_PICKER:\n cell.data.initialValue = cell.value;\n break;\n\n case FCellTypes.GAUGE:\n case FCellTypes.KNOB:\n case FCellTypes.PROGRESS_BAR:\n case FCellTypes.RATING:\n cell.data.value = parseInt(cell.value);\n break;\n\n case FCellTypes.ICON:\n case FCellTypes.IMAGE:\n cell.data.resource = cell.value;\n break;\n }\n}\n\nfunction cellEvent(\n e: InputEvent | CustomEvent | MouseEvent | KeyboardEvent,\n props: FCellProps,\n cellType: FCellTypes,\n cellEventName: FCellEvents\n): void {\n const cell = props.cell;\n const column = props.column;\n const comp = props.component;\n const row = props.row;\n if (cellEventName === FCellEvents.UPDATE) {\n let value = getValueFromEventTarget(e, cellType);\n if (isForceUppercase(cell)) {\n value = value?.toUpperCase();\n } else if (isForceLowercase(cell)) {\n value = value?.toLowerCase();\n }\n switch (cellType) {\n case FCellTypes.AUTOCOMPLETE:\n case FCellTypes.COMBOBOX:\n case FCellTypes.DATE:\n case FCellTypes.TIME:\n if (cell.data) {\n cell.data['initialValue'] = value;\n }\n break;\n case FCellTypes.CHECKBOX:\n case FCellTypes.SWITCH:\n value = value === 'on' ? '0' : '1';\n if (cell.data) {\n (cell.data as FCheckboxProps).checked =\n value === '0' ? false : true;\n }\n break;\n case FCellTypes.RADIO:\n if (cell.data.data) {\n const radioData = cell.data.data as FRadioData[];\n const checkedItem = radioData.find((item) => item.checked);\n if (checkedItem) {\n value = checkedItem.value;\n }\n }\n break;\n case FCellTypes.CHIP:\n case FCellTypes.MULTI_AUTOCOMPLETE:\n case FCellTypes.MULTI_COMBOBOX:\n value = (e as CustomEvent<KupChipChangeEventPayload>).detail\n .stringifiedValues;\n if (cell.data) {\n (cell.data as FChipsProps).data = (\n e as CustomEvent<KupChipChangeEventPayload>\n ).detail.comp.data;\n }\n break;\n }\n if (cell.obj) {\n cell.obj.k = value?.toString();\n }\n cell.value = value?.toString();\n cell.displayedValue = null;\n cell.displayedValue = getCellValueForDisplay(column, cell);\n }\n if (comp && (comp as KupComponent).rootElement) {\n const cellEvent = new CustomEvent<FCellEventPayload>(cellEventName, {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n comp: comp,\n id: (comp as KupComponent).rootElement.id,\n cell: cell,\n column: column,\n event: e,\n row: row,\n type: cellType,\n inputValue: cell.element?.querySelector('input')?.value || null,\n },\n });\n (comp as KupComponent).rootElement.dispatchEvent(cellEvent);\n if (cellEventName === FCellEvents.UPDATE) {\n try {\n (comp as KupComponent).refresh();\n } catch (error) {\n dom.ketchup.debug.logMessage(\n comp,\n error,\n KupDebugCategory.ERROR\n );\n }\n }\n }\n}\n\nfunction getValueFromEventTarget(\n e: InputEvent | CustomEvent | MouseEvent | KeyboardEvent,\n cellType: FCellTypes\n): string {\n const isInputEvent = !!(\n (e.target as HTMLElement).tagName === 'INPUT' || 'TEXTAREA'\n );\n let value = isInputEvent\n ? (e.target as HTMLInputElement).value\n : e.detail.value;\n\n if (cellType === FCellTypes.CHECKBOX && isInputEvent) {\n value = (e.target as HTMLInputElement).checked ? 'off' : 'on';\n }\n\n if (cellType === FCellTypes.DATE && isInputEvent) {\n value = e.detail?.value;\n }\n\n if (cellType === FCellTypes.NUMBER && isInputEvent) {\n value = dom.ketchup.math.formattedStringToNumberString(value, '');\n }\n\n return value;\n}\n\nfunction isAutoCentered(props: FCellProps) {\n return autoCenterComps.includes(\n (props.component as KupComponent)?.rootElement.tagName as KupTagNames\n );\n}\n\nfunction isFullWidth(props: FCellProps) {\n return fullWidthFieldsComps.includes(\n (props.component as KupComponent)?.rootElement.tagName as KupTagNames\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as i,f as e,h as s,H as n,d as a}from"./p-b32ed503.js";import{k as f,f as o,aq as p,g as h,s as l,R as r,ar as c,h as m,as as g}from"./p-0bd76333.js";import{c as u}from"./p-635bb4b3.js";import{F as d}from"./p-9e3b99ff.js";import{F as y}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as i,f as e,h as s,H as n,d as a}from"./p-b32ed503.js";import{k as f,f as o,aq as p,g as h,s as l,R as r,ar as c,h as m,as as g}from"./p-0bd76333.js";import{c as u}from"./p-635bb4b3.js";import{F as d}from"./p-9e3b99ff.js";import{F as y}from"./p-2b5455ee.js";import"./p-5ba08261.js";import"./p-e3062c19.js";import"./p-74da6bf3.js";import"./p-88c3ed8e.js";import"./p-cc382864.js";import"./p-9137a2b2.js";const k=".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{display:block;height:fit-content;width:100%}#kup-component{height:fit-content;width:100%}";const x=k;var b=undefined&&undefined.__classPrivateFieldGet||function(t,i,e,s){if(e==="a"&&!s)throw new TypeError("Private accessor was defined without a getter");if(typeof i==="function"?t!==i||!s:!i.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?s:e==="a"?s.call(t):s?s.value:i.get(t)};var w;const v=class{constructor(e){t(this,e);this.kupCellSubmitClick=i(this,"kup-cell-submit-click",6);w.set(this,f());this.customStyle="";this.data=null;this.density=o.NONE;this.dragEnabled=false;this.showSubmit=false;this.submitPosition=p.right}async addCssClasses(t){if(!this.data.cssClass){this.data.cssClass=""}if(t){for(let i=0;i<t.length;i++){const e=t[i];if(this.data.cssClass.indexOf(e)<0){this.data.cssClass+=` ${e}`}}}this.refresh()}async getProps(t){return h(this,g,t)}async refresh(){e(this)}async removeCssClasses(t){if(!this.data.cssClass){return}if(t){for(let i=0;i<t.length;i++){const e=t[i];if(this.data.cssClass.indexOf(e)>0){this.data.cssClass=this.data.cssClass.replace(new RegExp(e,"g"),"")}}}this.refresh()}async setProps(t){l(this,g,t)}didRenderInteractables(){if(this.dragEnabled){const t=()=>({cell:this.data,column:this.generateColumn(),id:this.rootElement.id,multiple:false,row:this.generateRow()});b(this,w,"f").interact.draggable(this.rootElement.shadowRoot.querySelector("#"+u),{cursorChecker(){return null}},{callback:t},r.BADGE)}}generateColumn(){const t="KUPCELL";const i=undefined;return{name:t,title:i}}generateRow(){const t=this.generateColumn();const i={cells:{}};i.cells[t.name]=this.data;return i}submitClick(t){t.stopPropagation();this.kupCellSubmitClick.emit({comp:this,id:this.rootElement.id,cell:this.data})}componentWillLoad(){b(this,w,"f").dates.register(this);b(this,w,"f").debug.logLoad(this,false);b(this,w,"f").language.register(this);b(this,w,"f").theme.register(this)}componentDidLoad(){b(this,w,"f").debug.logLoad(this,true)}componentWillRender(){b(this,w,"f").debug.logRender(this,false)}componentDidRender(){this.didRenderInteractables();b(this,w,"f").debug.logRender(this,true)}render(){const t={cell:this.data,column:this.generateColumn(),component:this,density:this.density,editable:this.data.isEditable,renderKup:true,row:this.generateRow()};return s(n,{key:"25a6e5dffce5a657780a1c880ae62d6749a00bb7"},s("style",{key:"1ca17513f7015ef5449aeb422aed2548324c7c59"},b(this,w,"f").theme.setKupStyle(this.rootElement)),s("div",{key:"af2ee5a39743aafdf2c793341e4a4d8839c2ed16",id:u,style:this.showSubmit?{display:"flex","flex-direction":c(this.submitPosition),"align-items":"center",gap:"0.5rem"}:{}},s(y,Object.assign({key:"5315cc9821f5464dcc68f2eb4940e4305caf136d"},t)),this.showSubmit?s(d,{buttonType:"submit",label:b(this,w,"f").language.translate(m.CONFIRM),wrapperClass:"form__submit",onClick:t=>{this.submitClick(t)}}):null))}disconnectedCallback(){b(this,w,"f").dates.unregister(this);b(this,w,"f").language.unregister(this);b(this,w,"f").theme.unregister(this)}get rootElement(){return a(this)}};w=new WeakMap;v.style=x;export{v as kup_cell};
|
|
2
|
+
//# sourceMappingURL=p-780f18f5.entry.js.map
|