@sme.up/ketchup 11.0.0-SNAPSHOT-20241118094932 → 11.0.0-SNAPSHOT-20241118132117
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/ketchup.cjs.js +1 -1
- package/dist/cjs/kup-image-list.cjs.entry.js +8 -4
- package/dist/cjs/kup-image-list.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/kup-image-list/kup-image-list-declarations.js +1 -0
- package/dist/collection/components/kup-image-list/kup-image-list-declarations.js.map +1 -1
- package/dist/collection/components/kup-image-list/kup-image-list.css +10 -0
- package/dist/collection/components/kup-image-list/kup-image-list.js +27 -3
- package/dist/collection/components/kup-image-list/kup-image-list.js.map +1 -1
- package/dist/components/kup-image-list.js +9 -4
- package/dist/components/kup-image-list.js.map +1 -1
- package/dist/esm/ketchup.js +1 -1
- package/dist/esm/kup-image-list.entry.js +8 -4
- package/dist/esm/kup-image-list.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/ketchup/ketchup.esm.js +1 -1
- package/dist/ketchup/ketchup.esm.js.map +1 -1
- package/dist/ketchup/p-ef2cde8d.entry.js +2 -0
- package/dist/ketchup/p-ef2cde8d.entry.js.map +1 -0
- package/dist/types/components/kup-image-list/kup-image-list-declarations.d.ts +2 -1
- package/dist/types/components/kup-image-list/kup-image-list.d.ts +5 -0
- package/dist/types/components.d.ts +10 -0
- package/package.json +1 -1
- package/dist/ketchup/p-394e1212.entry.js +0 -2
- package/dist/ketchup/p-394e1212.entry.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["KupImageListProps","KupImageListState","constructor","this","load","toDebugString","kupImageListCss","KupImageListStyle0","KupImageList","state","_KupImageList_clickTimeout","set","_KupImageList_kupManager","kupManagerInstance","_KupImageList_backProps","icon","onClick","currentNode","__classPrivateFieldGet","data","node","getParent","navigationBarToggled","styling","FButtonStyling","FLAT","wrapperClass","_KupImageList_topProps","_KupImageList_el","_KupImageList_hold","_KupImageList_interactableTouch","initWithPersistedState","store","stateId","getState","findByStrTreeNodePath","selectedTreeNodePath","persistState","somethingChanged","cNodeRowId","id","objects","deepEqual","selectNode","newData","length","find","getProps","descriptions","refresh","forceUpdate","setProps","props","componentWillLoad","debug","logLoad","language","register","theme","componentDidLoad","_KupImageList_instances","_KupImageList_didLoadInteractables","call","componentWillRender","logRender","componentDidRender","root","rootElement","shadowRoot","ripple","rippleCells","querySelectorAll","i","MDCRipple","attachTo","render","hasNavigation","gridColumnsStyle","columns","combinedGridStyle","Object","assign","rows","gridRowsStyle","h","Host","key","setKupStyle","componentWrapperId","ref","el","__classPrivateFieldSet","class","FImage","fit","resource","placeholderResource","placeholderIcon","sizeX","sizeY","value","FButton","label","translate","KupLanguageGeneric","BACK","TOP","style","_KupImageList_createList","disconnectedCallback","interact","unregister","title","badgeData","image","hasExternalResource","indexOf","FCell","cell","obj","column","name","component","density","FCellPadding","NONE","row","xmlns","version","viewBox","nodes","items","children","index","classObj","item","onContextMenu","e","preventDefault","_KupImageList_createItem","push","_KupImageList_getEventDetails","path","cellProps","p","tagName","classList","contains","originalEvent","_KupImageList_clickHandler","details","getEventPath","target","_KupImageList_contextMenuHandler","_KupImageList_dblClickHandler","tapCb","button","clone","setTimeout","_a","kupClick","emit","comp","kupContextMenu","doubletapCb","clearTimeout","logMessage","kupDblClick","holdCb","pointerType","on","KupPointerEventTypes","HOLD","TAP","DOUBLETAP"],"sources":["src/components/kup-image-list/kup-image-list-declarations.ts","src/components/kup-image-list/kup-image-list-state.ts","src/components/kup-image-list/kup-image-list.scss?tag=kup-image-list&encapsulation=shadow","src/components/kup-image-list/kup-image-list.tsx"],"sourcesContent":["import {\n KupDataCell,\n KupDataColumn,\n KupDataNode,\n KupDataRow,\n} from '../../managers/kup-data/kup-data-declarations';\nimport { GenericObject, KupEventPayload } from '../../types/GenericTypes';\n\n/**\n * Props of the kup-image-list component.\n * Used to export every prop in an object.\n */\nexport enum KupImageListProps {\n columns = 'Can set a specific number of columns',\n customStyle = 'Custom style of the component.',\n data = 'Actual data of the component',\n ripple = \"When enabled displays Material's ripple effect on clicked items.\",\n rows = 'Cam set a specific number of rows. It overwrite the columns flow into rows flow',\n}\n\nexport interface KupImageListEventPayload extends KupEventPayload {\n details: KupImageListEventHandlerDetails;\n}\n/**\n * Contains all the data of an event.\n */\nexport interface KupImageListEventHandlerDetails {\n cell: KupDataCell;\n column: KupDataColumn;\n originalEvent: PointerEvent;\n row: KupDataRow;\n}\n\nexport interface KupImageListDataNode extends KupDataNode {\n badgeData: GenericObject[];\n children?: KupImageListDataNode[];\n}\n","import { KupState } from '../kup-state/kup-state';\nexport class KupImageListState implements KupState {\n selectedTreeNodePath: string;\n load: boolean = false;\n\n public toDebugString() {\n // TODO\n return 'image-list state';\n }\n}\n","@import 'styles/kup-image-list-main';\n@import 'styles/kup-image-list-classes';\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n forceUpdate,\n h,\n Host,\n Method,\n Prop,\n State,\n VNode,\n Watch,\n} from '@stencil/core';\nimport { MDCRipple } from '@material/ripple';\nimport {\n KupManager,\n kupManagerInstance,\n} from '../../managers/kup-manager/kup-manager';\nimport { GenericObject, KupComponent } from '../../types/GenericTypes';\nimport {\n KupImageListDataNode,\n KupImageListEventHandlerDetails,\n KupImageListEventPayload,\n KupImageListProps,\n} from './kup-image-list-declarations';\nimport { getProps, setProps } from '../../utils/utils';\nimport { componentWrapperId } from '../../variables/GenericVariables';\nimport { FImage } from '../../f-components/f-image/f-image';\nimport { FImageProps } from '../../f-components/f-image/f-image-declarations';\nimport { FButton } from '../../f-components/f-button/f-button';\nimport {\n FButtonProps,\n FButtonStyling,\n} from '../../f-components/f-button/f-button-declarations';\nimport { KupLanguageGeneric } from '../../managers/kup-language/kup-language-declarations';\nimport { FCell } from '../../f-components/f-cell/f-cell';\nimport {\n FCellPadding,\n FCellProps,\n} from '../../f-components/f-cell/f-cell-declarations';\nimport { KupStore } from '../kup-state/kup-store';\nimport { KupImageListState } from './kup-image-list-state';\nimport { TreeNodePath } from '../kup-tree/kup-tree-declarations';\nimport { KupPointerEventTypes } from '../../managers/kup-interact/kup-interact-declarations';\nimport { KupDataNode } from '../../managers/kup-data/kup-data-declarations';\n\n@Component({\n tag: 'kup-image-list',\n styleUrl: 'kup-image-list.scss',\n shadow: true,\n})\nexport class KupImageList {\n /**\n * References the root HTML element of the component (<kup-image-list>).\n */\n @Element() rootElement: HTMLElement;\n\n /*-------------------------------------------------*/\n /* S t a t e s */\n /*-------------------------------------------------*/\n\n state: KupImageListState = new KupImageListState();\n\n @State() currentNode: KupImageListDataNode = null;\n @State() navigationBarToggled: boolean = false;\n\n initWithPersistedState(): void {\n if (this.store && this.stateId) {\n const state = this.store.getState(this.stateId);\n if (state != null) {\n this.currentNode =\n this.#kupManager.data.node.findByStrTreeNodePath(\n this.data,\n state.selectedTreeNodePath\n ) as KupImageListDataNode;\n }\n }\n }\n\n persistState(): void {\n if (this.store && this.stateId) {\n let somethingChanged = false;\n let cNodeRowId = this.currentNode ? this.currentNode.id : '';\n\n if (\n !this.#kupManager.objects.deepEqual(\n this.state.selectedTreeNodePath,\n cNodeRowId\n )\n ) {\n this.state.selectedTreeNodePath = cNodeRowId;\n somethingChanged = true;\n }\n\n if (!this.state.load) {\n this.state.load = true;\n return;\n }\n if (somethingChanged) {\n this.store.persistState(this.stateId, this.state);\n }\n }\n }\n\n /*-------------------------------------------------*/\n /* P r o p s */\n /*-------------------------------------------------*/\n /**\n * Number of columns to display in the grid layout.\n * @default null\n */\n @Prop() columns: number[] = [];\n /**\n * Custom style of the component.\n * @default \"\"\n * @see https://smeup.github.io/ketchup/#/customization\n */\n @Prop() customStyle: string = '';\n /**\n * Actual data of the component.\n * @default []\n */\n @Prop() data: KupImageListDataNode[] = [];\n /**\n * When enabled displays Material's ripple effect on clicked items.\n * @default true\n */\n @Prop() ripple: boolean = false;\n /**\n * Number of rows to display in the grid layout.\n * @default null\n */\n @Prop() rows: number = null;\n\n /**\n * An array of integers containing the path to a selected child.\\\n */\n @Prop() selectedNode: TreeNodePath = [];\n @Prop() stateId: string = '';\n @Prop() store: KupStore;\n /*-------------------------------------------------*/\n /* I n t e r n a l V a r i a b l e s */\n /*-------------------------------------------------*/\n /**\n * Instance of the KupManager class.\n */\n\n #clickTimeout: ReturnType<typeof setTimeout>[] = [];\n #kupManager: KupManager = kupManagerInstance();\n #backProps: FButtonProps = {\n icon: 'arrow_back',\n onClick: () => {\n this.currentNode = this.#kupManager.data.node.getParent(\n this.data,\n this.currentNode\n ) as KupImageListDataNode;\n if (!this.currentNode) {\n this.navigationBarToggled = false;\n }\n },\n styling: FButtonStyling.FLAT,\n wrapperClass: 'navigation-bar__back',\n };\n #topProps: FButtonProps = {\n icon: 'arrow_upward',\n onClick: () => {\n this.currentNode = null;\n this.navigationBarToggled = false;\n },\n styling: FButtonStyling.FLAT,\n wrapperClass: 'navigation-bar__top',\n };\n #el: HTMLElement;\n #hold: boolean = false;\n #interactableTouch: HTMLElement[] = [];\n\n /*-------------------------------------------------*/\n /* E v e n t s */\n /*-------------------------------------------------*/\n\n @Event({\n eventName: 'kup-imagelist-click',\n composed: true,\n cancelable: false,\n bubbles: true,\n })\n kupClick: EventEmitter<KupImageListEventPayload>;\n\n @Event({\n eventName: 'kup-imagelist-contextmenu',\n composed: true,\n cancelable: false,\n bubbles: true,\n })\n kupContextMenu: EventEmitter<KupImageListEventPayload>;\n\n @Event({\n eventName: 'kup-imagelist-dblclick',\n composed: true,\n cancelable: false,\n bubbles: true,\n })\n kupDblClick: EventEmitter<KupImageListEventPayload>;\n\n /*-------------------------------------------------*/\n /* W a t c h e r s */\n /*-------------------------------------------------*/\n\n @Watch('selectedNode')\n selectNode(newData: TreeNodePath) {\n if (!newData || newData.length == 0) {\n return;\n }\n this.currentNode = this.#kupManager.data.node.find(\n this.data,\n newData\n ) as KupImageListDataNode;\n }\n\n /*-------------------------------------------------*/\n /* P u b l i c M e t h o d s */\n /*-------------------------------------------------*/\n\n /**\n * Used to retrieve component's props values.\n * @param {boolean} descriptions - When provided and true, the result will be the list of props with their description.\n * @returns {Promise<GenericObject>} List of props as object, each key will be a prop.\n */\n @Method()\n async getProps(descriptions?: boolean): Promise<GenericObject> {\n return getProps(this, KupImageListProps, descriptions);\n }\n /**\n * This method is used to trigger a new render of the component.\n */\n @Method()\n async refresh(): Promise<void> {\n forceUpdate(this);\n }\n /**\n * Sets the props to the component.\n * @param {GenericObject} props - Object containing props that will be set to the component.\n */\n @Method()\n async setProps(props: GenericObject): Promise<void> {\n setProps(this, KupImageListProps, props);\n }\n\n /*-------------------------------------------------*/\n /* P r i v a t e M e t h o d s */\n /*-------------------------------------------------*/\n\n #createItem(node: KupImageListDataNode): VNode {\n const props: FImageProps = {\n fit: true,\n resource: node.icon,\n placeholderResource: node.placeholderIcon,\n title: node.title,\n wrapperClass: 'image-list__image',\n badgeData: node.badgeData,\n };\n\n const image = <FImage {...props}></FImage>;\n const label = <div class=\"image-list__label\">{node.value}</div>;\n\n const hasExternalResource =\n props.resource.indexOf('.') > -1 ||\n props.resource.indexOf('/') > -1 ||\n props.resource.indexOf('\\\\') > -1;\n\n return (\n <FCell\n cell={{\n value: node.value,\n icon: node.icon,\n placeholderIcon: node.placeholderIcon,\n obj: node.obj,\n }}\n column={{ name: 'IMAGE', title: 'Image' }}\n component={this}\n density={FCellPadding.NONE}\n row={{ ...node }}\n >\n <div\n class={`image-list__wrapper${\n hasExternalResource ? ' images' : ''\n }`}\n >\n {!hasExternalResource && (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n version=\"1.1\"\n viewBox=\"0 0 24 24\"\n ></svg>\n )}\n {image}\n {label}\n </div>\n </FCell>\n );\n }\n\n #createList(): VNode[] {\n const nodes: VNode[] = [];\n const items = this.currentNode ? this.currentNode.children : this.data;\n for (let index = 0; items && index < items.length; index++) {\n const node = items[index];\n const classObj = {\n 'image-list__item': true,\n 'mdc-ripple-surface': this.ripple ? true : false,\n };\n const item: VNode = (\n <div\n onContextMenu={(e) => {\n e.preventDefault();\n }}\n class={classObj}\n >\n {this.#createItem(node)}\n </div>\n );\n nodes.push(item);\n }\n return nodes;\n }\n\n #getEventDetails(\n path: HTMLElement[],\n e?: PointerEvent\n ): KupImageListEventHandlerDetails {\n let cellProps: FCellProps;\n\n if (path) {\n for (let i = path.length - 1; i >= 0; i--) {\n let p = path[i];\n if (!p.tagName) {\n continue;\n }\n if (p.classList.contains('f-cell')) {\n cellProps = p['kup-get-cell-props']();\n }\n }\n }\n\n return {\n cell: cellProps?.cell,\n column: cellProps?.column,\n originalEvent: e,\n row: cellProps?.row,\n };\n }\n\n #clickHandler(e: PointerEvent): KupImageListEventHandlerDetails {\n const details: KupImageListEventHandlerDetails = this.#getEventDetails(\n this.#kupManager.getEventPath(e.target, this.rootElement),\n e\n );\n\n return details;\n }\n\n #contextMenuHandler(e: PointerEvent): KupImageListEventHandlerDetails {\n const details: KupImageListEventHandlerDetails = this.#getEventDetails(\n this.#kupManager.getEventPath(e.target, this.rootElement),\n e\n );\n\n return details;\n }\n\n #dblClickHandler(e: PointerEvent): KupImageListEventHandlerDetails {\n const details: KupImageListEventHandlerDetails = this.#getEventDetails(\n this.#kupManager.getEventPath(e.target, this.rootElement),\n e\n );\n\n return details;\n }\n\n #didLoadInteractables() {\n this.#interactableTouch.push(this.#el);\n const tapCb = (e: PointerEvent) => {\n if (this.#hold) {\n this.#hold = false;\n return;\n }\n switch (e.button) {\n // left click\n case 0:\n // Note: event must be cloned\n // otherwise inside setTimeout will be exiting the Shadow DOM scope(causing loss of information, including target).\n const clone: GenericObject = {};\n for (const key in e) {\n clone[key] = e[key];\n }\n this.#clickTimeout.push(\n setTimeout(() => {\n const details = this.#clickHandler(\n clone as PointerEvent\n );\n const node = details.row as KupImageListDataNode;\n if (node?.children?.length > 0) {\n this.currentNode = node;\n }\n this.kupClick.emit({\n comp: this,\n id: this.rootElement.id,\n details,\n });\n }, 300)\n );\n break;\n // right click\n case 2:\n this.kupContextMenu.emit({\n comp: this,\n id: this.rootElement.id,\n details: this.#contextMenuHandler(e),\n });\n break;\n }\n };\n const doubletapCb = (e: PointerEvent) => {\n switch (e.button) {\n // left click\n case 0:\n for (\n let index = 0;\n index < this.#clickTimeout.length;\n index++\n ) {\n clearTimeout(this.#clickTimeout[index]);\n this.#kupManager.debug.logMessage(\n this,\n 'Cleared clickHandler timeout(' +\n this.#clickTimeout[index] +\n ').'\n );\n }\n this.#clickTimeout = [];\n this.kupDblClick.emit({\n comp: this,\n id: this.rootElement.id,\n details: this.#dblClickHandler(e),\n });\n break;\n }\n };\n const holdCb = (e: PointerEvent) => {\n if (e.pointerType === 'pen' || e.pointerType === 'touch') {\n this.#hold = true;\n this.kupContextMenu.emit({\n comp: this,\n id: this.rootElement.id,\n details: this.#contextMenuHandler(e),\n });\n }\n };\n this.#kupManager.interact.on(\n this.#el,\n KupPointerEventTypes.HOLD,\n holdCb\n );\n this.#kupManager.interact.on(this.#el, KupPointerEventTypes.TAP, tapCb);\n this.#kupManager.interact.on(\n this.#el,\n KupPointerEventTypes.DOUBLETAP,\n doubletapCb\n );\n }\n\n /*-------------------------------------------------*/\n /* L i f e c y c l e H o o k s */\n /*-------------------------------------------------*/\n\n componentWillLoad() {\n this.#kupManager.debug.logLoad(this, false);\n this.#kupManager.language.register(this);\n this.#kupManager.theme.register(this);\n }\n\n componentDidLoad() {\n this.#didLoadInteractables();\n this.#kupManager.debug.logLoad(this, true);\n }\n\n componentWillRender() {\n this.#kupManager.debug.logRender(this, false);\n }\n\n componentDidRender() {\n const root = this.rootElement.shadowRoot;\n if (root && this.ripple) {\n const rippleCells = root.querySelectorAll(\n '.mdc-ripple-surface:not(.mdc-ripple-upgraded)'\n );\n if (rippleCells) {\n for (let i = 0; i < rippleCells.length; i++) {\n MDCRipple.attachTo(rippleCells[i]);\n }\n }\n }\n // *** Store\n this.persistState();\n // ***\n this.#kupManager.debug.logRender(this, true);\n }\n\n render() {\n const hasNavigation = !!this.currentNode;\n let gridColumnsStyle: { [key: string]: string } = {};\n if (this.columns) {\n if (this.columns.length === 1) {\n gridColumnsStyle = {\n '--kup-imagelist-columns-mobile': `${this.columns[0]}`,\n '--kup-imagelist-columns-tablet': `${this.columns[0]}`,\n '--kup-imagelist-columns-desktop': `${this.columns[0]}`,\n };\n } else if (this.columns.length === 2) {\n gridColumnsStyle = {\n '--kup-imagelist-columns-mobile': `${this.columns[0]}`,\n '--kup-imagelist-columns-tablet': `${this.columns[0]}`,\n '--kup-imagelist-columns-desktop': `${this.columns[1]}`,\n };\n } else if (this.columns.length === 3) {\n gridColumnsStyle = {\n '--kup-imagelist-columns-mobile': `${this.columns[0]}`,\n '--kup-imagelist-columns-tablet': `${this.columns[1]}`,\n '--kup-imagelist-columns-desktop': `${this.columns[2]}`,\n };\n }\n }\n let combinedGridStyle: { [key: string]: string } = {\n ...gridColumnsStyle,\n };\n\n if (this.rows != null && this.rows > 0) {\n const gridRowsStyle = {\n 'grid-template-rows': `repeat(${this.rows}, minmax(0px, 1fr))`,\n 'grid-auto-flow': `column`,\n };\n combinedGridStyle = { ...combinedGridStyle, ...gridRowsStyle };\n }\n\n return (\n <Host>\n <style>\n {this.#kupManager.theme.setKupStyle(\n this.rootElement as KupComponent\n )}\n </style>\n <div\n id={componentWrapperId}\n ref={(el) => {\n this.#el = el;\n }}\n >\n <div class=\"navigation-bar\">\n {hasNavigation ? (\n <div\n class={`navigation-bar__wrapper ${\n this.navigationBarToggled\n ? 'navigation-bar__wrapper--active'\n : ''\n }`}\n >\n <div\n class={`navigation-bar__title`}\n onClick={() => {\n this.navigationBarToggled =\n !this.navigationBarToggled;\n }}\n >\n <FImage\n fit={true}\n resource={this.currentNode.icon}\n placeholderResource={\n this.currentNode.placeholderIcon\n }\n sizeX=\"1.25em\"\n sizeY=\"1.25em\"\n wrapperClass=\"navigation-bar__title__image\"\n ></FImage>\n <div class=\"navigation-bar__title__label\">\n {this.currentNode.value}\n </div>\n </div>\n <FButton\n {...this.#backProps}\n label={this.#kupManager.language.translate(\n KupLanguageGeneric.BACK\n )}\n ></FButton>\n <FButton\n {...this.#topProps}\n label={this.#kupManager.language.translate(\n KupLanguageGeneric.TOP\n )}\n ></FButton>\n </div>\n ) : null}\n </div>\n <div class=\"image-list\" style={combinedGridStyle}>\n {...this.#createList()}\n </div>\n </div>\n </Host>\n );\n }\n\n disconnectedCallback() {\n this.#kupManager.interact.unregister(this.#interactableTouch);\n this.#kupManager.language.unregister(this);\n this.#kupManager.theme.unregister(this);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|