From 71c071ec7bdd45c7f578b335ac3054746882103e Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Fri, 9 Dec 2022 14:54:15 +0200 Subject: [PATCH 01/15] Add list-component --- components/bl-list-component/component.json | 54 +++++++++++++++++++ components/bl-list-component/src/index.js | 13 +++++ .../bl-list-component/src/list-content.js | 18 +++++++ components/bl-list-component/src/list.js | 28 ++++++++++ .../bl-list-component/styles/index.less | 1 + 5 files changed, 114 insertions(+) create mode 100644 components/bl-list-component/component.json create mode 100644 components/bl-list-component/src/index.js create mode 100644 components/bl-list-component/src/list-content.js create mode 100644 components/bl-list-component/src/list.js create mode 100644 components/bl-list-component/styles/index.less diff --git a/components/bl-list-component/component.json b/components/bl-list-component/component.json new file mode 100644 index 000000000..4b2f255fd --- /dev/null +++ b/components/bl-list-component/component.json @@ -0,0 +1,54 @@ +{ + "id": "c_15da71753b4ad7ccfe9d02f3f93406d5", + "name": "List", + "description": "", + "showInToolbox": true, + "faIcon": "pencil-ruler", + "mainJS": "dist/index.js", + "type": "custom", + "category": "Custom Components", + "properties": [ + { + "type": "select", + "name": "type", + "label": "Type", + "showInSettings": true, + "defaultValue": "ul", + "hasLogicHandler": false, + "handlerId": "typeLogic", + "options": [ + { + "value": "ul", + "label": "Unordered" + }, + { + "value": "ol", + "label": "Ordered" + } + ], + "handlerLabel": "Type Logic" + }, + { + "type": "json", + "name": "listItems", + "showInSettings": false, + "hasLogicHandler": true, + "handlerId": "listItemsLogic", + "handlerLabel": "ListItems Logic", + "dataBinding": true + } + ], + "eventHandlers": [ + { + "name": "onClickListItem", + "label": "onClick ListItem", + "contextBlocks": [ + { + "id": "item", + "label": "List Item" + } + ] + } + ], + "actions": [] +} \ No newline at end of file diff --git a/components/bl-list-component/src/index.js b/components/bl-list-component/src/index.js new file mode 100644 index 000000000..7aadca054 --- /dev/null +++ b/components/bl-list-component/src/index.js @@ -0,0 +1,13 @@ +import { List } from './list'; + +export default function ListBlockComponent ({ + component, eventHandlers, appData, pageData, parentDataModel, pods, settings, definition, instanceId +}) { + + return ( +
+ +
+ ) +} \ No newline at end of file diff --git a/components/bl-list-component/src/list-content.js b/components/bl-list-component/src/list-content.js new file mode 100644 index 000000000..0980e9813 --- /dev/null +++ b/components/bl-list-component/src/list-content.js @@ -0,0 +1,18 @@ +export function ListContent({ + component, eventHandlers, appData, pageData, parentDataModel, pods, settings, definition, instanceId +}) { + + const onClickItemHandler = (key) => { + eventHandlers.onClickListItem({item: key}) + } + + const listItems = (component.listItems || []).map((item, i) => +
  • onClickItemHandler(item)} + > + {item} +
  • + ); + + return (listItems) +} \ No newline at end of file diff --git a/components/bl-list-component/src/list.js b/components/bl-list-component/src/list.js new file mode 100644 index 000000000..63977963f --- /dev/null +++ b/components/bl-list-component/src/list.js @@ -0,0 +1,28 @@ +import { ListContent } from './list-content'; + +export function List ({ + component, eventHandlers, appData, pageData, parentDataModel, pods, settings, definition, instanceId +}) { + + const listType = (type) => { + if(type && type === 'ol') { + return ( +
      + +
    + ) + } else { + return ( + + ) + } + }; + + return (listType(component.type)) +} \ No newline at end of file diff --git a/components/bl-list-component/styles/index.less b/components/bl-list-component/styles/index.less new file mode 100644 index 000000000..e27b03902 --- /dev/null +++ b/components/bl-list-component/styles/index.less @@ -0,0 +1 @@ +// you can use LESS variables from the current Theme and app extensions of the UI-Container \ No newline at end of file From d89e697df16722ed2d628682c1ccd3d3723f2094 Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Fri, 9 Dec 2022 17:14:31 +0200 Subject: [PATCH 02/15] Add readme --- components/bl-list-component/README.md | 18 ++++++++++++++++++ components/bl-list-component/thumbnail.png | Bin 0 -> 10516 bytes 2 files changed, 18 insertions(+) create mode 100644 components/bl-list-component/README.md create mode 100644 components/bl-list-component/thumbnail.png diff --git a/components/bl-list-component/README.md b/components/bl-list-component/README.md new file mode 100644 index 000000000..b6aa6e00a --- /dev/null +++ b/components/bl-list-component/README.md @@ -0,0 +1,18 @@ +# List + +List is the component that can be used in Backendless [UI-Builder](https://backendless.com/developers/#ui-builder). It allows you to add a standard list to your application. + +

    + main thumbnail +

    + +Additional properties allow customizing the font size, background color, text color, padding and behavior of the component. Refer to the Properties section below. + +## Configuration + +The configuration can be done in the UI Builder or using the Codeless Logic. You need to select the type of list (ordered/unordered) and specify the data that will be displayed inside the list. + +## Properties + +| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | +|--------------------------|------------|------------------------------------------------------------------------------------------------------------------|----------------------|--------------|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/components/bl-list-component/thumbnail.png b/components/bl-list-component/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..f9b889242589678dfd5558d822732f55e4145cc7 GIT binary patch literal 10516 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 literal 0 HcmV?d00001 From 4a56f912dc1e8e7628ec185ed620fae103c087a2 Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Mon, 12 Dec 2022 10:25:59 +0200 Subject: [PATCH 03/15] Edit readme --- components/bl-list-component/README.md | 18 ++++++++++++++++-- .../example-images/list-data-example.png | Bin 0 -> 17367 bytes 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 components/bl-list-component/example-images/list-data-example.png diff --git a/components/bl-list-component/README.md b/components/bl-list-component/README.md index b6aa6e00a..421f72736 100644 --- a/components/bl-list-component/README.md +++ b/components/bl-list-component/README.md @@ -14,5 +14,19 @@ The configuration can be done in the UI Builder or using the Codeless Logic. You ## Properties -| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | -|--------------------------|------------|------------------------------------------------------------------------------------------------------------------|----------------------|--------------|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------| +| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | +|--------------------------|------------|---------------|--------------------|--------------|------------|-------------------------------------------------------------------| +| Type | *Select* | `"Unordered"` | Type Logic | NO | YES | Controls the type of list(ul/ol). | +| List Items | JSON* | | ListItems Logic | YES | NO | Specifies a JSON array containing data for the list items. Watch [Codeless Examples] #codeless-examples). | + +## Events + +| Name | Triggers | Context Blocks | +|---------------------------|--------------------------------------------------------|----------------| +| On Click List Item | when the user click any item of the list | `List Item` | + +## Codeless Examples + +Below is a Codeless Example highlighting how to use the List component: + +![list data example](example-images/list-data-example.png) diff --git a/components/bl-list-component/example-images/list-data-example.png b/components/bl-list-component/example-images/list-data-example.png new file mode 100644 index 0000000000000000000000000000000000000000..9ead0de473b2a9b9f8fdb020465a3917647fc98d GIT binary patch literal 17367 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 Date: Mon, 12 Dec 2022 17:40:34 +0200 Subject: [PATCH 04/15] Added styles --- components/bl-list-component/README.md | 24 +++++++++- components/bl-list-component/component.json | 44 ++++++++++++++++--- components/bl-list-component/preview.html | 1 + components/bl-list-component/src/index.js | 18 +++++--- .../bl-list-component/src/list-content.js | 19 +++++--- components/bl-list-component/src/list.js | 14 +++--- .../bl-list-component/styles/index.less | 26 ++++++++++- 7 files changed, 120 insertions(+), 26 deletions(-) create mode 100644 components/bl-list-component/preview.html diff --git a/components/bl-list-component/README.md b/components/bl-list-component/README.md index 421f72736..15f5ca036 100644 --- a/components/bl-list-component/README.md +++ b/components/bl-list-component/README.md @@ -17,7 +17,11 @@ The configuration can be done in the UI Builder or using the Codeless Logic. You | Property | Type | Default value | Logic | Data Binding | UI Setting | Description | |--------------------------|------------|---------------|--------------------|--------------|------------|-------------------------------------------------------------------| | Type | *Select* | `"Unordered"` | Type Logic | NO | YES | Controls the type of list(ul/ol). | -| List Items | JSON* | | ListItems Logic | YES | NO | Specifies a JSON array containing data for the list items. Watch [Codeless Examples] #codeless-examples). | +| List Items | *JSON* | | ListItems Logic | YES | NO | Specifies a JSON array containing data for the list items. Watch [Codeless Examples] #codeless-examples). | +| Background | *Color* | | | NO | YES | Controls the background color of the main block. | +| Width | *Text* | | | NO | YES | Controls the width of the main block. | +| Color | *Color* | | | NO | YES | Controls the color of the list items. | +| Font Size | *Text* | | | NO | YES | Controls the font size of the list items. | ## Events @@ -25,6 +29,24 @@ The configuration can be done in the UI Builder or using the Codeless Logic. You |---------------------------|--------------------------------------------------------|----------------| | On Click List Item | when the user click any item of the list | `List Item` | +## Styles + +**Theme** +```` +@bl-customComponent-list-theme: @themePrimary; +@bl-customComponent-list-themeTextColor: @appTextColor; +```` + +**Dimensions** +``` +@bl-customComponent-list-item-size: 20px; +``` + +**Colors** +```` +@bl-customComponent-list-item-hover-background-color: if(@isLightTheme, rgba(0, 0, 0, 0.04), rgba(255, 255, 255, 0.04)); +```` + ## Codeless Examples Below is a Codeless Example highlighting how to use the List component: diff --git a/components/bl-list-component/component.json b/components/bl-list-component/component.json index 4b2f255fd..a7312b49b 100644 --- a/components/bl-list-component/component.json +++ b/components/bl-list-component/component.json @@ -1,7 +1,7 @@ { "id": "c_15da71753b4ad7ccfe9d02f3f93406d5", "name": "List", - "description": "", + "description": "The List component allows the user to add a standard list to an application.", "showInToolbox": true, "faIcon": "pencil-ruler", "mainJS": "dist/index.js", @@ -34,14 +34,46 @@ "showInSettings": false, "hasLogicHandler": true, "handlerId": "listItemsLogic", - "handlerLabel": "ListItems Logic", + "handlerLabel": "List Items Logic", "dataBinding": true + }, + { + "type": "color", + "name": "backgroundColor", + "label": "Background", + "showInSettings": true, + "hasLogicHandler": false, + "handlerId": "backgroundColorLogic" + }, + { + "type": "text", + "name": "width", + "label": "Width", + "showInSettings": true, + "hasLogicHandler": false, + "handlerId": "widthLogic" + }, + { + "type": "color", + "name": "color", + "label": "Color", + "showInSettings": true, + "hasLogicHandler": false, + "handlerId": "colorLogic" + }, + { + "type": "text", + "name": "fontSize", + "label": "Font Size", + "showInSettings": true, + "hasLogicHandler": false, + "handlerId": "fontSizeLogic" } ], "eventHandlers": [ { "name": "onClickListItem", - "label": "onClick ListItem", + "label": "On Click List Item Event", "contextBlocks": [ { "id": "item", @@ -50,5 +82,7 @@ ] } ], - "actions": [] -} \ No newline at end of file + "actions": [], + "settings": [], + "pods": {} +} diff --git a/components/bl-list-component/preview.html b/components/bl-list-component/preview.html new file mode 100644 index 000000000..e335a7a3e --- /dev/null +++ b/components/bl-list-component/preview.html @@ -0,0 +1 @@ +

    diff --git a/components/bl-list-component/src/index.js b/components/bl-list-component/src/index.js index 7aadca054..aaa5ae699 100644 --- a/components/bl-list-component/src/index.js +++ b/components/bl-list-component/src/index.js @@ -1,13 +1,19 @@ import { List } from './list'; -export default function ListBlockComponent ({ - component, eventHandlers, appData, pageData, parentDataModel, pods, settings, definition, instanceId +export default function ListComponent ({ + component, eventHandlers }) { - return ( -
    + const { cn } = BackendlessUI.CSSUtils; + const { style, classList, width, backgroundColor } = component; + + style.width = width; + style.backgroundColor = backgroundColor; + + return ( +
    + eventHandlers={eventHandlers}/>
    ) -} \ No newline at end of file +} diff --git a/components/bl-list-component/src/list-content.js b/components/bl-list-component/src/list-content.js index 0980e9813..0506a7242 100644 --- a/components/bl-list-component/src/list-content.js +++ b/components/bl-list-component/src/list-content.js @@ -1,18 +1,25 @@ export function ListContent({ - component, eventHandlers, appData, pageData, parentDataModel, pods, settings, definition, instanceId + component, eventHandlers }) { - - const onClickItemHandler = (key) => { + + const itemStyles = { + color : component.color, + fontSize: component.fontSize + }; + + const onItemClick = (key) => { eventHandlers.onClickListItem({item: key}) } - + const listItems = (component.listItems || []).map((item, i) =>
  • onClickItemHandler(item)} + className="list__item" + style = {itemStyles} + onClick={() => onItemClick(item)} > {item}
  • ); return (listItems) -} \ No newline at end of file +} diff --git a/components/bl-list-component/src/list.js b/components/bl-list-component/src/list.js index 63977963f..3eb7125c1 100644 --- a/components/bl-list-component/src/list.js +++ b/components/bl-list-component/src/list.js @@ -1,22 +1,22 @@ import { ListContent } from './list-content'; export function List ({ - component, eventHandlers, appData, pageData, parentDataModel, pods, settings, definition, instanceId + component, eventHandlers }) { - + const listType = (type) => { if(type && type === 'ol') { return ( -
      - +
    ) } else { return ( -
      - +
    @@ -25,4 +25,4 @@ export function List ({ }; return (listType(component.type)) -} \ No newline at end of file +} diff --git a/components/bl-list-component/styles/index.less b/components/bl-list-component/styles/index.less index e27b03902..158cf41b4 100644 --- a/components/bl-list-component/styles/index.less +++ b/components/bl-list-component/styles/index.less @@ -1 +1,25 @@ -// you can use LESS variables from the current Theme and app extensions of the UI-Container \ No newline at end of file +@bl-customComponent-list-theme: @themePrimary; +@bl-customComponent-list-themeTextColor: @appTextColor; + +@bl-customComponent-list-item-hover-background-color: if(@isLightTheme, rgba(0, 0, 0, 0.04), rgba(255, 255, 255, 0.04)); + +@bl-customComponent-list-item-size: 20px; + +.bl-customComponent-list { + color: @bl-customComponent-list-themeTextColor; + user-select: none; + + .list { + margin: @bl-customComponent-list-item-size; + } + + .list__item { + padding: @bl-customComponent-list-item-size / 2; + line-height: 1.3; + cursor: pointer; + + &:hover { + background-color: @bl-customComponent-list-item-hover-background-color; + } + } +} From 73c8ed49baa5d824988933f8b59ce0ec317da8ff Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Tue, 13 Dec 2022 15:56:35 +0200 Subject: [PATCH 05/15] Add nested lists --- components/bl-list-component/README.md | 1 + components/bl-list-component/component.json | 2 +- .../example-images/list-data-example-view.png | Bin 0 -> 9454 bytes .../example-images/list-data-example.png | Bin 17367 -> 22024 bytes .../bl-list-component/src/list-content.js | 58 +++++++++++++----- components/bl-list-component/src/list.js | 4 +- 6 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 components/bl-list-component/example-images/list-data-example-view.png diff --git a/components/bl-list-component/README.md b/components/bl-list-component/README.md index 15f5ca036..eaa5a4430 100644 --- a/components/bl-list-component/README.md +++ b/components/bl-list-component/README.md @@ -52,3 +52,4 @@ The configuration can be done in the UI Builder or using the Codeless Logic. You Below is a Codeless Example highlighting how to use the List component: ![list data example](example-images/list-data-example.png) +![list data example view](example-images/list-data-example-view.png) diff --git a/components/bl-list-component/component.json b/components/bl-list-component/component.json index a7312b49b..e04f0433f 100644 --- a/components/bl-list-component/component.json +++ b/components/bl-list-component/component.json @@ -1,5 +1,5 @@ { - "id": "c_15da71753b4ad7ccfe9d02f3f93406d5", + "id": "c_f95c74e56529269bdafe747715db7bbe", "name": "List", "description": "The List component allows the user to add a standard list to an application.", "showInToolbox": true, diff --git a/components/bl-list-component/example-images/list-data-example-view.png b/components/bl-list-component/example-images/list-data-example-view.png new file mode 100644 index 0000000000000000000000000000000000000000..74d096e67e20dfb0cdf486c1efc72853dbd58c2e GIT binary patch literal 9454 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 M8U~Nb)WD(t2WC81LI3~& literal 0 HcmV?d00001 diff --git a/components/bl-list-component/example-images/list-data-example.png b/components/bl-list-component/example-images/list-data-example.png index 9ead0de473b2a9b9f8fdb020465a3917647fc98d..ae7e2a7b9952733832ec7d28cc7dcc4757e9aea0 100644 GIT binary patch literal 22024 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 { - eventHandlers.onClickListItem({item: key}) + eventHandlers.onClickListItem({item: key}); } - const listItems = (component.listItems || []).map((item, i) => -
  • onItemClick(item)} - > - {item} -
  • - ); + const getItems = (items) => { + return (items || []).map((item, i) => { + if (item.child && item.child.length !== 0) { + return ( +
  • { + e.stopPropagation(); + onItemClick(item.item); + }} + > + {item.item} + +
  • + ) + } else { + return ( +
  • { + e.stopPropagation(); + onItemClick(item.item); + }} + > + {item.item} +
  • + ) + } + }); + } - return (listItems) + return (getItems(child || listItems)) } diff --git a/components/bl-list-component/src/list.js b/components/bl-list-component/src/list.js index 3eb7125c1..0f1152efc 100644 --- a/components/bl-list-component/src/list.js +++ b/components/bl-list-component/src/list.js @@ -1,7 +1,7 @@ import { ListContent } from './list-content'; export function List ({ - component, eventHandlers + component, eventHandlers, child }) { const listType = (type) => { @@ -10,6 +10,7 @@ export function List ({
    ) @@ -18,6 +19,7 @@ export function List ({
    ) From 217c5f11a7fca0b0029f1204c2aa1ac988885eed Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Tue, 20 Dec 2022 16:11:30 +0200 Subject: [PATCH 06/15] fixes by review --- components/bl-list-component/README.md | 29 ++++---- components/bl-list-component/component.json | 23 +++--- .../example-images/list-data-example-view.png | Bin 9454 -> 9118 bytes .../example-images/list-data-example.png | Bin 22024 -> 22469 bytes components/bl-list-component/src/index.js | 17 +++-- .../bl-list-component/src/list-content.js | 68 ++++++------------ components/bl-list-component/src/list.js | 35 +++------ 7 files changed, 67 insertions(+), 105 deletions(-) diff --git a/components/bl-list-component/README.md b/components/bl-list-component/README.md index eaa5a4430..33f279bb7 100644 --- a/components/bl-list-component/README.md +++ b/components/bl-list-component/README.md @@ -1,27 +1,22 @@ # List -List is the component that can be used in Backendless [UI-Builder](https://backendless.com/developers/#ui-builder). It allows you to add a standard list to your application. +List is the component that can be used in Backendless [UI-Builder](https://backendless.com/developers/#ui-builder). It allows you to add a standard list to your application. Select the type of list (ordered/unordered) and specify the data that will be displayed inside the list. +More information about list you can find [here](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li).

    - main thumbnail + main thumbnail

    -Additional properties allow customizing the font size, background color, text color, padding and behavior of the component. Refer to the Properties section below. - -## Configuration - -The configuration can be done in the UI Builder or using the Codeless Logic. You need to select the type of list (ordered/unordered) and specify the data that will be displayed inside the list. - ## Properties -| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | -|--------------------------|------------|---------------|--------------------|--------------|------------|-------------------------------------------------------------------| -| Type | *Select* | `"Unordered"` | Type Logic | NO | YES | Controls the type of list(ul/ol). | -| List Items | *JSON* | | ListItems Logic | YES | NO | Specifies a JSON array containing data for the list items. Watch [Codeless Examples] #codeless-examples). | -| Background | *Color* | | | NO | YES | Controls the background color of the main block. | -| Width | *Text* | | | NO | YES | Controls the width of the main block. | -| Color | *Color* | | | NO | YES | Controls the color of the list items. | -| Font Size | *Text* | | | NO | YES | Controls the font size of the list items. | +| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | +|------------|-----------------------------------------------|---------------|-----------------|--------------|------------|--------------------------------------------------------------------------------------------------| +| Type | *Select*
    `'Unordered'`
    `'Ordered'` | `Unordered` | Type Logic | NO | YES | Controls the type of list(ul/ol). | +| List Items | *JSON*
    `[...{content:'', ?children:[]}]` | `[]` | ListItems Logic | YES | NO | Specifies a JSON array containing data of the list items. Watch [Codeless Examples] (#Examples). | +| Background | *Color* | | | NO | YES | Controls the background color of the main block. | +| Width | *Text* | | | NO | YES | Controls the width of the main block. | +| Color | *Color* | | | NO | YES | Controls the color of the list items. | +| Font Size | *Text* | | | NO | YES | Controls the font size of the list items. | ## Events @@ -47,7 +42,7 @@ The configuration can be done in the UI Builder or using the Codeless Logic. You @bl-customComponent-list-item-hover-background-color: if(@isLightTheme, rgba(0, 0, 0, 0.04), rgba(255, 255, 255, 0.04)); ```` -## Codeless Examples +## Examples Below is a Codeless Example highlighting how to use the List component: diff --git a/components/bl-list-component/component.json b/components/bl-list-component/component.json index e04f0433f..001903283 100644 --- a/components/bl-list-component/component.json +++ b/components/bl-list-component/component.json @@ -3,7 +3,7 @@ "name": "List", "description": "The List component allows the user to add a standard list to an application.", "showInToolbox": true, - "faIcon": "pencil-ruler", + "faIcon": "list", "mainJS": "dist/index.js", "type": "custom", "category": "Custom Components", @@ -26,7 +26,8 @@ "label": "Ordered" } ], - "handlerLabel": "Type Logic" + "handlerLabel": "Type Logic", + "settingTooltip": "Select a list type" }, { "type": "json", @@ -35,7 +36,8 @@ "hasLogicHandler": true, "handlerId": "listItemsLogic", "handlerLabel": "List Items Logic", - "dataBinding": true + "dataBinding": true, + "defaultValue": "[]" }, { "type": "color", @@ -43,7 +45,8 @@ "label": "Background", "showInSettings": true, "hasLogicHandler": false, - "handlerId": "backgroundColorLogic" + "handlerId": "backgroundColorLogic", + "settingTooltip": "Choose a background for the list." }, { "type": "text", @@ -51,7 +54,8 @@ "label": "Width", "showInSettings": true, "hasLogicHandler": false, - "handlerId": "widthLogic" + "handlerId": "widthLogic", + "settingTooltip": "Choose the width of the list." }, { "type": "color", @@ -59,7 +63,8 @@ "label": "Color", "showInSettings": true, "hasLogicHandler": false, - "handlerId": "colorLogic" + "handlerId": "colorLogic", + "settingTooltip": "Select the text color of the list items." }, { "type": "text", @@ -67,7 +72,8 @@ "label": "Font Size", "showInSettings": true, "hasLogicHandler": false, - "handlerId": "fontSizeLogic" + "handlerId": "fontSizeLogic", + "settingTooltip": "Select the font size of the list items." } ], "eventHandlers": [ @@ -84,5 +90,6 @@ ], "actions": [], "settings": [], - "pods": {} + "pods": {}, + "blockUI": "
    " } diff --git a/components/bl-list-component/example-images/list-data-example-view.png b/components/bl-list-component/example-images/list-data-example-view.png index 74d096e67e20dfb0cdf486c1efc72853dbd58c2e..57ca854aa5da77528ab201b592c65e387a03c36a 100644 GIT binary patch literal 9118 zcmch7cTiJb+iesC6af_*9Yu+#^d?b zKL7v#gv_sBwFUt8tZ|Ry0({&nZ*jq=xgUFitj(?fs=rAtaZh+XjV+A`)ebbRKavC{Fm({J@_MFQ7(xnGV7TGhS1SbQt> z%C!T>6si~Rt9uqljOL|hhCpJBRAf_3)jd6mw+D4RJ@Q2Xfa!yA5&%HbAtC^9>B%%7 zpyL#;HUJ=e3cUva6~GDs9-9b2007A=P#(bap?~LJ*Y=rGC#_@dr*+=73e-^#C)6|0 zN)(J~=<^ztWsBKb*@y!FZ|NJ`x90jUPlD)f1i`HAm|>JC58yI%NcHu%p#)idnLEYN zxYV_4cDkOLI_TMLV;EGccGS7&>wwFm&FemI6>0_Ov>mYdCWwweu>;sCkMs<<>%lnq zXvuJpe})A!y_Dw|uyXrQb5s8cpRdbum}S*YQkKp&fgF{XN==H~5?&PmxO$i<)}5`1 zSJk8xcp8Y#s7Lvko9CfrG~}=?&k|APFE@I!qS%6mJ_L}4e)0&5 z@T#xal0>l9ue4Cckqol1E6o{HaB>+ozu#h}_V|jZ3?g$N9ImW(lrcJ6w1?w`qdc<> z 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 M8U~Nb)WD(t2WC81LI3~& diff --git a/components/bl-list-component/example-images/list-data-example.png b/components/bl-list-component/example-images/list-data-example.png index ae7e2a7b9952733832ec7d28cc7dcc4757e9aea0..41987e4181d3eae717239786b410ed8dbf179cfb 100644 GIT binary patch literal 22469 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%0D9sY1YL3VU#rMT6p@#64DB#d*tJ{K05 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 literal 22024 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 ({ ...style, width, backgroundColor }), [style, width, backgroundColor]); return ( -
    - +
    +
    ) } diff --git a/components/bl-list-component/src/list-content.js b/components/bl-list-component/src/list-content.js index e3453403d..52c137563 100644 --- a/components/bl-list-component/src/list-content.js +++ b/components/bl-list-component/src/list-content.js @@ -1,53 +1,29 @@ import { List } from './list'; -export function ListContent({ - component, eventHandlers, child}) { +export function ListContent({ component, eventHandlers, children }) { - const { color, fontSize, listItems, type} = component; + const { color, fontSize, listItems } = component; - const itemStyles = { - color : color, - fontSize: fontSize - }; - - const onItemClick = (key) => { - eventHandlers.onClickListItem({item: key}); - } - - const getItems = (items) => { - return (items || []).map((item, i) => { - if (item.child && item.child.length !== 0) { - return ( -
  • { - e.stopPropagation(); - onItemClick(item.item); - }} - > - {item.item} - -
  • - ) - } else { - return ( -
  • { - e.stopPropagation(); - onItemClick(item.item); - }} - > - {item.item} -
  • - ) - } - }); + const onItemClick = (e, key) => { + e.stopPropagation(); + eventHandlers.onClickListItem({ item: key }); } - return (getItems(child || listItems)) + return (children || listItems || []).map((item, i) => ( +
  • onItemClick(e, item) } + > + { item.content } + { item.children && ( + + ) } +
  • + )); } diff --git a/components/bl-list-component/src/list.js b/components/bl-list-component/src/list.js index 0f1152efc..6dbb84696 100644 --- a/components/bl-list-component/src/list.js +++ b/components/bl-list-component/src/list.js @@ -1,30 +1,15 @@ import { ListContent } from './list-content'; -export function List ({ - component, eventHandlers, child -}) { +export function List ({ component, eventHandlers, children, as=component.type }) { - const listType = (type) => { - if(type && type === 'ol') { - return ( -
      - -
    - ) - } else { - return ( -
      - -
    - ) - } - }; + const Component = as; - return (listType(component.type)) + return ( + + + + ); } From a2946e78ac5f622c5822d0608f546969f3868b87 Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Mon, 9 Jan 2023 15:58:04 +0200 Subject: [PATCH 07/15] minor edits --- components/bl-list-component/src/index.js | 10 +++++----- components/bl-list-component/src/list-content.js | 12 ++++++------ components/bl-list-component/src/list.js | 9 +++++---- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/components/bl-list-component/src/index.js b/components/bl-list-component/src/index.js index 5bc6e5f1d..16a628c29 100644 --- a/components/bl-list-component/src/index.js +++ b/components/bl-list-component/src/index.js @@ -1,14 +1,14 @@ -import { useMemo } from 'react'; +import { useMemo } from 'react' -import { List } from './list'; +import { List } from './list' -const { cn } = BackendlessUI.CSSUtils; +const { cn } = BackendlessUI.CSSUtils export default function ListComponent ({ component, eventHandlers }) { - const { style, classList, width, backgroundColor } = component; + const { style, classList, width, backgroundColor } = component - const styles = useMemo(() => ({ ...style, width, backgroundColor }), [style, width, backgroundColor]); + const styles = useMemo(() => ({ style, width, backgroundColor }), [style, width, backgroundColor]) return (
    diff --git a/components/bl-list-component/src/list-content.js b/components/bl-list-component/src/list-content.js index 52c137563..2a2d59d95 100644 --- a/components/bl-list-component/src/list-content.js +++ b/components/bl-list-component/src/list-content.js @@ -1,12 +1,12 @@ -import { List } from './list'; +import { List } from './list' export function ListContent({ component, eventHandlers, children }) { - const { color, fontSize, listItems } = component; + const { color, fontSize, listItems } = component const onItemClick = (e, key) => { - e.stopPropagation(); - eventHandlers.onClickListItem({ item: key }); + e.stopPropagation() + eventHandlers.onClickListItem({ item: key }) } return (children || listItems || []).map((item, i) => ( @@ -14,7 +14,7 @@ export function ListContent({ component, eventHandlers, children }) { key={ i } className="list__item" style={{ color: color, fontSize: fontSize }} - onClick={ (e) => onItemClick(e, item) } + onClick={ e => onItemClick(e, item) } > { item.content } { item.children && ( @@ -25,5 +25,5 @@ export function ListContent({ component, eventHandlers, children }) { /> ) } - )); + )) } diff --git a/components/bl-list-component/src/list.js b/components/bl-list-component/src/list.js index 6dbb84696..a1f71c269 100644 --- a/components/bl-list-component/src/list.js +++ b/components/bl-list-component/src/list.js @@ -1,15 +1,16 @@ -import { ListContent } from './list-content'; +import { ListContent } from './list-content' export function List ({ component, eventHandlers, children, as=component.type }) { - const Component = as; + const Component = as return ( + eventHandlers={ eventHandlers } + /> - ); + ) } From d733da6f2870155ddd75f61a3199cb33670fc2ed Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Thu, 12 Jan 2023 15:19:03 +0200 Subject: [PATCH 08/15] code refactoring --- components/bl-list-component/src/index.js | 30 +++++++++++------ .../bl-list-component/src/list-content.js | 32 ++++++------------- components/bl-list-component/src/list.js | 19 ++++------- 3 files changed, 36 insertions(+), 45 deletions(-) diff --git a/components/bl-list-component/src/index.js b/components/bl-list-component/src/index.js index 16a628c29..4cad307b2 100644 --- a/components/bl-list-component/src/index.js +++ b/components/bl-list-component/src/index.js @@ -1,18 +1,28 @@ -import { useMemo } from 'react' +import { List } from "./list"; -import { List } from './list' +const { cn } = BackendlessUI.CSSUtils; -const { cn } = BackendlessUI.CSSUtils +export default function ListComponent({ component, eventHandlers }) { + const { classList, width, backgroundColor, type, listItems, color, fontSize } = component; -export default function ListComponent ({ component, eventHandlers }) { + const onClickHandler = (e, key) => { + e.stopPropagation(); + eventHandlers.onClickListItem({ item: key }); + }; - const { style, classList, width, backgroundColor } = component - - const styles = useMemo(() => ({ style, width, backgroundColor }), [style, width, backgroundColor]) + const props = { + type: type && type === "ol" ? "ol" : "ul", + color: color, + fontSize: fontSize, + onClickHandler: onClickHandler, + }; return ( -
    - +
    +
    - ) + ); } diff --git a/components/bl-list-component/src/list-content.js b/components/bl-list-component/src/list-content.js index 2a2d59d95..24b27d9ee 100644 --- a/components/bl-list-component/src/list-content.js +++ b/components/bl-list-component/src/list-content.js @@ -1,29 +1,15 @@ -import { List } from './list' +import { List } from "./list"; -export function ListContent({ component, eventHandlers, children }) { - - const { color, fontSize, listItems } = component - - const onItemClick = (e, key) => { - e.stopPropagation() - eventHandlers.onClickListItem({ item: key }) - } - - return (children || listItems || []).map((item, i) => ( +export function ListContent({ props, items }) { + return (items || []).map((item, i) => (
  • onItemClick(e, item) } + style={{ color: props.color, fontSize: props.fontSize }} + onClick={(e) => props.onClickHandler(e, item)} > - { item.content } - { item.children && ( - - ) } + {item.content} + {item.children && }
  • - )) + )); } diff --git a/components/bl-list-component/src/list.js b/components/bl-list-component/src/list.js index a1f71c269..55fb54bde 100644 --- a/components/bl-list-component/src/list.js +++ b/components/bl-list-component/src/list.js @@ -1,16 +1,11 @@ -import { ListContent } from './list-content' +import { ListContent } from "./list-content"; -export function List ({ component, eventHandlers, children, as=component.type }) { - - const Component = as +export function List({ props, items }) { + const ComponentType = props.type; return ( - - - - ) + + + + ); } From 65cfa59f78fcc5fbdab7adcadd1cdd393594ca6d Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Wed, 18 Jan 2023 14:35:06 +0200 Subject: [PATCH 09/15] code edits and modified preview --- components/bl-list-component/README.md | 24 ++++++++---------- components/bl-list-component/component.json | 25 +++++++++++++------ components/bl-list-component/preview.html | 2 +- components/bl-list-component/src/index.js | 18 ++++++------- .../bl-list-component/src/list-content.js | 15 ----------- components/bl-list-component/src/list.js | 22 ++++++++++++---- .../bl-list-component/styles/index.less | 18 +++++-------- 7 files changed, 61 insertions(+), 63 deletions(-) delete mode 100644 components/bl-list-component/src/list-content.js diff --git a/components/bl-list-component/README.md b/components/bl-list-component/README.md index 33f279bb7..96eaa4f5b 100644 --- a/components/bl-list-component/README.md +++ b/components/bl-list-component/README.md @@ -9,14 +9,15 @@ More information about list you can find [here](https://developer.mozilla.org/en ## Properties -| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | -|------------|-----------------------------------------------|---------------|-----------------|--------------|------------|--------------------------------------------------------------------------------------------------| -| Type | *Select*
    `'Unordered'`
    `'Ordered'` | `Unordered` | Type Logic | NO | YES | Controls the type of list(ul/ol). | -| List Items | *JSON*
    `[...{content:'', ?children:[]}]` | `[]` | ListItems Logic | YES | NO | Specifies a JSON array containing data of the list items. Watch [Codeless Examples] (#Examples). | -| Background | *Color* | | | NO | YES | Controls the background color of the main block. | -| Width | *Text* | | | NO | YES | Controls the width of the main block. | -| Color | *Color* | | | NO | YES | Controls the color of the list items. | -| Font Size | *Text* | | | NO | YES | Controls the font size of the list items. | +| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | +|------------|----------------------------|---------------|-----------------|--------------|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Type | *Select*
    [`ul`, `ol`] | `ul` | Type Logic | NO | YES | Controls the type of list(ul/ol). | +| Items List | *JSON* | `[]` | ListItems Logic | YES | NO | Specifies a JSON array containing data of the list items. Watch [Codeless Examples] (#Examples). Signature of items list: [ ]. Signature of item: { content: String, children: [ ] }. | +| Background | *Color* | | | NO | YES | Controls the background color of the main block. | +| Width | *Text* | | | NO | YES | Controls the width of the main block. | +| Color | *Color* | | | NO | YES | Controls the color of the list items. | +| Font Size | *Text* | | | NO | YES | Controls the font size of the list items. | +| Padding | *Text* | | | NO | YES | Controls the padding of the list items. | ## Events @@ -34,14 +35,9 @@ More information about list you can find [here](https://developer.mozilla.org/en **Dimensions** ``` -@bl-customComponent-list-item-size: 20px; +@bl-customComponent-list-item-fontSize: 1rem; ``` -**Colors** -```` -@bl-customComponent-list-item-hover-background-color: if(@isLightTheme, rgba(0, 0, 0, 0.04), rgba(255, 255, 255, 0.04)); -```` - ## Examples Below is a Codeless Example highlighting how to use the List component: diff --git a/components/bl-list-component/component.json b/components/bl-list-component/component.json index 001903283..bacae322f 100644 --- a/components/bl-list-component/component.json +++ b/components/bl-list-component/component.json @@ -37,7 +37,8 @@ "handlerId": "listItemsLogic", "handlerLabel": "List Items Logic", "dataBinding": true, - "defaultValue": "[]" + "defaultValue": "[]", + "handlerDescription": "Specifies a JSON array containing data of the list items. Signature of items list: [ ]. Signature of item: { content: String, children: [ ] }." }, { "type": "color", @@ -46,7 +47,7 @@ "showInSettings": true, "hasLogicHandler": false, "handlerId": "backgroundColorLogic", - "settingTooltip": "Choose a background for the list." + "settingTooltip": "Choose a background for the list" }, { "type": "text", @@ -55,7 +56,7 @@ "showInSettings": true, "hasLogicHandler": false, "handlerId": "widthLogic", - "settingTooltip": "Choose the width of the list." + "settingTooltip": "Choose the width of the list" }, { "type": "color", @@ -64,7 +65,7 @@ "showInSettings": true, "hasLogicHandler": false, "handlerId": "colorLogic", - "settingTooltip": "Select the text color of the list items." + "settingTooltip": "Select the text color of the list items" }, { "type": "text", @@ -73,7 +74,16 @@ "showInSettings": true, "hasLogicHandler": false, "handlerId": "fontSizeLogic", - "settingTooltip": "Select the font size of the list items." + "settingTooltip": "Select the font size of the list items" + }, + { + "type": "text", + "name": "padding", + "label": "Padding", + "settingTooltip": "Select the padding for list items", + "showInSettings": true, + "hasLogicHandler": false, + "handlerId": "paddingLogic" } ], "eventHandlers": [ @@ -85,11 +95,12 @@ "id": "item", "label": "List Item" } - ] + ], + "handlerDescription": "This event is fired when the user clicks the mouse or taps the item of the list." } ], "actions": [], "settings": [], "pods": {}, - "blockUI": "
    " + "blockUI": "
    • unordered lists ( ul ) - the list items are marked with bullets
    • ordered lists ( ol ) - the list items are marked with numbers or letters
    " } diff --git a/components/bl-list-component/preview.html b/components/bl-list-component/preview.html index e335a7a3e..4109f52e9 100644 --- a/components/bl-list-component/preview.html +++ b/components/bl-list-component/preview.html @@ -1 +1 @@ -
    +
    • unordered lists ( ul ) - the list items are marked with bullets
    • ordered lists ( ol ) - the list items are marked with numbers or letters
    diff --git a/components/bl-list-component/src/index.js b/components/bl-list-component/src/index.js index 4cad307b2..8dca00097 100644 --- a/components/bl-list-component/src/index.js +++ b/components/bl-list-component/src/index.js @@ -3,26 +3,26 @@ import { List } from "./list"; const { cn } = BackendlessUI.CSSUtils; export default function ListComponent({ component, eventHandlers }) { - const { classList, width, backgroundColor, type, listItems, color, fontSize } = component; + const { classList, width, backgroundColor, type, listItems, color, fontSize, padding } = component; const onClickHandler = (e, key) => { e.stopPropagation(); eventHandlers.onClickListItem({ item: key }); }; - const props = { + const options = { type: type && type === "ol" ? "ol" : "ul", - color: color, - fontSize: fontSize, + style: { + color: color, + fontSize: fontSize, + padding: padding, + }, onClickHandler: onClickHandler, }; return ( -
    - +
    +
    ); } diff --git a/components/bl-list-component/src/list-content.js b/components/bl-list-component/src/list-content.js deleted file mode 100644 index 24b27d9ee..000000000 --- a/components/bl-list-component/src/list-content.js +++ /dev/null @@ -1,15 +0,0 @@ -import { List } from "./list"; - -export function ListContent({ props, items }) { - return (items || []).map((item, i) => ( -
  • props.onClickHandler(e, item)} - > - {item.content} - {item.children && } -
  • - )); -} diff --git a/components/bl-list-component/src/list.js b/components/bl-list-component/src/list.js index 55fb54bde..0da52030d 100644 --- a/components/bl-list-component/src/list.js +++ b/components/bl-list-component/src/list.js @@ -1,11 +1,23 @@ -import { ListContent } from "./list-content"; - -export function List({ props, items }) { - const ComponentType = props.type; +export function List({ options, items }) { + const ComponentType = options.type; return ( - + {items?.map((item, i) => ( + + ))} ); } + +function Item(props) { + const { options, item, key } = props; + const { style, onClickHandler } = options; + + return ( +
  • onClickHandler(e, item)}> + {item.content} + {item.children && } +
  • + ); +} diff --git a/components/bl-list-component/styles/index.less b/components/bl-list-component/styles/index.less index 158cf41b4..8c65c5f4c 100644 --- a/components/bl-list-component/styles/index.less +++ b/components/bl-list-component/styles/index.less @@ -1,25 +1,19 @@ @bl-customComponent-list-theme: @themePrimary; @bl-customComponent-list-themeTextColor: @appTextColor; -@bl-customComponent-list-item-hover-background-color: if(@isLightTheme, rgba(0, 0, 0, 0.04), rgba(255, 255, 255, 0.04)); - -@bl-customComponent-list-item-size: 20px; +@bl-customComponent-list-item-fontSize: 1rem; .bl-customComponent-list { color: @bl-customComponent-list-themeTextColor; user-select: none; .list { - margin: @bl-customComponent-list-item-size; - } - - .list__item { - padding: @bl-customComponent-list-item-size / 2; - line-height: 1.3; - cursor: pointer; - &:hover { - background-color: @bl-customComponent-list-item-hover-background-color; + &__item { + font-size: @bl-customComponent-list-item-fontSize; + padding: @bl-customComponent-list-item-fontSize / 2; + line-height: 1.3; + cursor: pointer; } } } From 8c664c0109e72edfc304640800c6b0bbb1d4ab15 Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Fri, 20 Jan 2023 19:40:28 +0200 Subject: [PATCH 10/15] minor edits --- components/bl-list-component/README.md | 26 ++++++++++++------ .../example-images/list-data-example-view.png | Bin 9118 -> 15638 bytes .../example-images/list-data-example.png | Bin 22469 -> 36146 bytes components/bl-list-component/src/index.js | 14 +++++++--- components/bl-list-component/src/list.js | 14 +++++----- 5 files changed, 34 insertions(+), 20 deletions(-) diff --git a/components/bl-list-component/README.md b/components/bl-list-component/README.md index 96eaa4f5b..38e46ab05 100644 --- a/components/bl-list-component/README.md +++ b/components/bl-list-component/README.md @@ -9,15 +9,15 @@ More information about list you can find [here](https://developer.mozilla.org/en ## Properties -| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | -|------------|----------------------------|---------------|-----------------|--------------|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Type | *Select*
    [`ul`, `ol`] | `ul` | Type Logic | NO | YES | Controls the type of list(ul/ol). | -| Items List | *JSON* | `[]` | ListItems Logic | YES | NO | Specifies a JSON array containing data of the list items. Watch [Codeless Examples] (#Examples). Signature of items list: [ ]. Signature of item: { content: String, children: [ ] }. | -| Background | *Color* | | | NO | YES | Controls the background color of the main block. | -| Width | *Text* | | | NO | YES | Controls the width of the main block. | -| Color | *Color* | | | NO | YES | Controls the color of the list items. | -| Font Size | *Text* | | | NO | YES | Controls the font size of the list items. | -| Padding | *Text* | | | NO | YES | Controls the padding of the list items. | +| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | +|------------|----------------------------|---------------|-----------------|--------------|------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Type | *Select*
    [`ul`, `ol`] | `ul` | Type Logic | NO | YES | Controls the type of list(ul/ol). | +| Items List | *JSON* | `[]` | ListItems Logic | YES | NO | Specifies a JSON array containing data of the list items. Watch [Codeless Examples] (#Examples). Signature of items list: [ ]. Signature of item: { content: String, children: [ ], typeOfList: String }. | +| Background | *Color* | | | NO | YES | Controls the background color of the main block. | +| Width | *Text* | | | NO | YES | Controls the width of the main block. | +| Color | *Color* | | | NO | YES | Controls the color of the list items. | +| Font Size | *Text* | | | NO | YES | Controls the font size of the list items. | +| Padding | *Text* | | | NO | YES | Controls the padding of the list items. | ## Events @@ -44,3 +44,11 @@ Below is a Codeless Example highlighting how to use the List component: ![list data example](example-images/list-data-example.png) ![list data example view](example-images/list-data-example-view.png) + +
    +Try yourself + +``` +CoffeeTeagreenwhite with flowers and citrus fruitsblack "Earl Grey"olWatercarbonatednon-carbonated +``` +
    diff --git a/components/bl-list-component/example-images/list-data-example-view.png b/components/bl-list-component/example-images/list-data-example-view.png index 57ca854aa5da77528ab201b592c65e387a03c36a..e4e22d1c62885e5bd1494da473ac66ae71de43c2 100644 GIT binary patch literal 15638 zcmdUWXH-+`+HF9J1O*F4K}2j|Xu_r_2pA9$*gzxl{3&UtA2qg{Q}p>qca3E4!>cDt~EUhH6SqgL^)kyz}LCH-b{yuH7)y z7*<+M6eamYU|KR{Ti(oH7{AxcSniwgUhA7*rc8L3HY2Y=ATftySs{?e=Ow_V#DCD{ z>xB;wI9L6nY3b=V!m7Nd8*7UT3IdJ_D+OykI&!ZGy%wUezpho~8s;}uKbvQiv6QCZ z`D0Ygf96JO?{i`0#*meXy)X=I8#P*HZ!p6Gxw#@H@%sBrbHwU%<(Yt^LJ9#HDyYC` zg0dk^AuEBT(Q-6~O5VWkPBjG41LvwJeQ&N0meYDte_MSf+p_+_xgQVrnvoMbUd?cg_H{vudyGH+5~aIRcGd z9C+(m7L=~+zb)q4m#Nly1_D{)fM?wnH+mCLYEv6{K_?+V*?;EuUlx>=I$|S^LC$Z< zZVi~#l&=e|^CyN}(0viC7O@>{S!SpAOQkNH;w8$ry*i!V!vewkfm5joUNm*IE?(5Y z5f2zUe&65USGPJxOE8xl1b*Oc?%VmC>=`JxBA9Z~vyb?@;z zULrOrBZa7g{do;(U0;TcG}lVMIkZN`*_5|wbp}~=V#R>YCQ+r z!S#cs+MYqSEj>kiE`d~f4qmQ9kt{@o6pUR?DCEs<&ULTmB&u&>>o}zS#;ZPKHao?m z2EOaCvk9Nfa-(F9Iz~^IYmo+26fHDMkApLWIGH~}kw*4n@T0YMR*wRk^dXSG7Izhi zfS)1W=;=iSY2S^KSDU+LQ)Ww@Vv{(0?QcKHzR*&7S<*Z~TDXQBDG zyFCT+p{A3Fo!evddsMRLXr)VsZlfVtz1eZj>^ckNcEsHWv9Mni4Gv}v&RHsO=h?Qn zGS9)h)h~Zs=zJ5eU|jBbESFE1FPKseb#S@dCc~4ndR*Fn`eJx%o9W0YPRR$27Lb1( zrTywfkAZiA3#shQ5j!&1C9G1ksWKccEVpKFie-)Aow}_B;~Fot>7m^fyoMw!_l$As z)A1~&;?2tuYt8dE1fNA)<@&i3ke50LiP&j^)zYartIz&jN1@v-WX4-@b~ao05z?%y z8w7Ih)~MDW!PqhsUn9wxw!KnjS?<6X=d2yh4j_$4D@X1IC_BA}py^bUhOEvspU{!< zEG^E1^~(^5{s*V_^B6j1w53pk7{sS=^WOgMM%lfe?W^zaABxIsmsr@*is#uQYR$bc zK?vS≷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
    hZUJ3+1Z4=`p?@cHG8cZIJen;;QCs zxU*i#NT#txVQUg9jz(xj38vQ+5U*X&6;} z{oldU!F*%mUy#s&<9snTF$bLg+0 z)5@L$7nxHBa{^Kh_F2TH4ca>3u@3gGc*@`4F5 zdZx@?we=licnu_4^^&EQLDbA|xHGW@MCz zF%{dO`z`=6qEeZU1ThC5a1MI`f7FV?Y?->Oclo=`r?mBtywjjhPXX3FFS*48e9VCN zgf5a`g9e6PF}RF(ce()L*nu$# zV{LvJYuI5-lVb|)EeTzPD31tc#zr<>bAVg+-FFZ>2Bb9eJWx&p`U^}hC`avwYAgcO zOM$T<)r%GYy-MjpF`rgxkw;#-u(L+o;je)y+GoWFYfmv@_iSxR@Muqujc ze5^(v{Dbo6w!Z0#?gdo&jLRQH6n5l{{geXNbxWErTsrrsV(7ZlC@7h!sJkd$kMs!w zi~*i90QtMcYhDqH^xLw<^1Xk`eN0KkLvE-6e0l>@V?Wg7#YZm*n;7$i9jVvS6P!kF4H^wVVdp3JT8 zxDFZbgJ2)?jpA(Hk1uj}egceTT)Vpx-&G_pXsZNC6oqGHnswhV;~P{cpR!;_vKFnk zt&3T(6cVZ62DJ1!SPm_A4Hx*^Vas98m0h9CF>nXrlkRCT%WrE^Xlh>n_k#^)&F!oO zjv5%GkDJ-ah%d347FR1{T;^mbp?nc*LWV!=u13|!(eIr)fOL5kld}GVmP`q-)71DZ>Iovn?|lYnK*sjc?jI(! zb9?mXM%7(Ld)x4i9+$NJUo=3j!+LJSNxRun`h4To`*sDZ(`}S7+DH0iwR>W8w1u~k zkTmptbsQc-48%L(E!aSEb!vp|3W3$^oXKFA#mO)WTx5y7fbU?eruzRgFHkuAo0?7* z=t|4?Mq;#&l85T!)_J%qH`r&xm+7;NarKUNi6g>FJw%-%U+b4$6Nz^o2*rql=`YiU zmybsQJNe4#Y3Y0OJ$|7%(HU(7NUvkxtcHJ?$eWI<0P2F>=WEVw4`FD&f+-Lt$l&OK}+K`yLW?Kg`ujFMe!yKLGn|{;ehA+p(tipJW;pu*7a()T9>^ z2fzNM$j^5RTTNZ@O)r8B8lN(6Sbh?3llOl;jw1GMt`b}V^1Q~uxaClh1V})h#$-E# z5_|o#q&Q5?08T4J6|vT#icVOjnr{d{PeE`$Og@Se%$lR9H*44#kDR=$=s!|o&Diy% pPwW6Vr2(ljCjUQuBEPnCFftk3C;bR@8xRb zKL7v#gv_sBwFUt8tZ|Ry0({&nZ*jq=xgUFitj(?fs=rAtaZh+XjV+A`)ebbRKavC{Fm({J@_MFQ7(xnGV7TGhS1SbQt> z%C!T>6si~Rt9uqljOL|hhCpJBRAf_3)jd6mw+D4RJ@Q2Xfa!yA5&%HbAtC^9>B%%7 zpyL#;HUJ=e3cUva6~GDs9-9b2007A=P#(bap?~LJ*Y=rGC#_@dr*+=73e-^#C)6|0 zN)(J~=<^ztWsBKb*@y!FZ|NJ`x90jUPlD)f1i`HAm|>JC58yI%NcHu%p#)idnLEYN zxYV_4cDkOLI_TMLV;EGccGS7&>wwFm&FemI6>0_Ov>mYdCWwweu>;sCkMs<<>%lnq zXvuJpe})A!y_Dw|uyXrQb5s8cpRdbum}S*YQkKp&fgF{XN==H~5?&PmxO$i<)}5`1 zSJk8xcp8Y#s7Lvko9CfrG~}=?&k|APFE@I!qS%6mJ_L}4e)0&5 z@T#xal0>l9ue4Cckqol1E6o{HaB>+ozu#h}_V|jZ3?g$N9ImW(lrcJ6w1?w`qdc<> z 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ˁADLp6#rG#X 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%0D9sY1YL3VU#rMT6p@#64DB#d*tJ{K05 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 diff --git a/components/bl-list-component/src/index.js b/components/bl-list-component/src/index.js index 8dca00097..0586750d2 100644 --- a/components/bl-list-component/src/index.js +++ b/components/bl-list-component/src/index.js @@ -1,3 +1,5 @@ +import { useRef } from "react"; + import { List } from "./list"; const { cn } = BackendlessUI.CSSUtils; @@ -13,15 +15,19 @@ export default function ListComponent({ component, eventHandlers }) { const options = { type: type && type === "ol" ? "ol" : "ul", style: { - color: color, - fontSize: fontSize, - padding: padding, + color, + fontSize, + padding, }, onClickHandler: onClickHandler, }; + const listRef = useRef(); + + component.el = listRef.current; + return ( -
    +
    ); diff --git a/components/bl-list-component/src/list.js b/components/bl-list-component/src/list.js index 0da52030d..acdd63ad9 100644 --- a/components/bl-list-component/src/list.js +++ b/components/bl-list-component/src/list.js @@ -1,23 +1,23 @@ -export function List({ options, items }) { - const ComponentType = options.type; +export function List({ options, items, type }) { + const ComponentType = type || options.type; return ( {items?.map((item, i) => ( - + ))} ); } function Item(props) { - const { options, item, key } = props; + const { options, listItem, key } = props; const { style, onClickHandler } = options; return ( -
  • onClickHandler(e, item)}> - {item.content} - {item.children && } +
  • onClickHandler(e, listItem)}> + {listItem.content} +
  • ); } From a4368377884a2677fc1c2e67f4cc806e8649256a Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Mon, 30 Jan 2023 17:23:02 +0200 Subject: [PATCH 11/15] minor edits and updates --- components/bl-list-component/README.md | 34 ++++++++++++------- components/bl-list-component/component.json | 12 ++++--- components/bl-list-component/src/index.js | 28 ++++++++------- components/bl-list-component/src/list.js | 22 ++++++------ .../bl-list-component/styles/index.less | 13 ++++--- 5 files changed, 66 insertions(+), 43 deletions(-) diff --git a/components/bl-list-component/README.md b/components/bl-list-component/README.md index 38e46ab05..b6cbd92fb 100644 --- a/components/bl-list-component/README.md +++ b/components/bl-list-component/README.md @@ -9,21 +9,21 @@ More information about list you can find [here](https://developer.mozilla.org/en ## Properties -| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | -|------------|----------------------------|---------------|-----------------|--------------|------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Type | *Select*
    [`ul`, `ol`] | `ul` | Type Logic | NO | YES | Controls the type of list(ul/ol). | -| Items List | *JSON* | `[]` | ListItems Logic | YES | NO | Specifies a JSON array containing data of the list items. Watch [Codeless Examples] (#Examples). Signature of items list: [ ]. Signature of item: { content: String, children: [ ], typeOfList: String }. | -| Background | *Color* | | | NO | YES | Controls the background color of the main block. | -| Width | *Text* | | | NO | YES | Controls the width of the main block. | -| Color | *Color* | | | NO | YES | Controls the color of the list items. | -| Font Size | *Text* | | | NO | YES | Controls the font size of the list items. | -| Padding | *Text* | | | NO | YES | Controls the padding of the list items. | +| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | +|------------|----------------------------|---------------|------------------|--------------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Type | *Select*
    [`ul`, `ol`] | `ul` | Type Logic | NO | YES | Controls the type of list(ul/ol). | +| Items List | *JSON* | | List Items Logic | YES | NO | Specifies a JSON array containing data of the list items. Watch [Codeless Examples](#Examples). Signature of items list: [ ]. Signature of item: { content: String, children: [ ], type: String }. | +| Background | *Color* | | | NO | YES | Controls the background color of the main block. | +| Width | *Text* | | | NO | YES | Controls the width of the main block. | +| Color | *Color* | | | NO | YES | Controls the color of the list items. | +| Font Size | *Text* | | | NO | YES | Controls the font size of the list items. | +| Padding | *Text* | | | NO | YES | Controls the padding of the list items. | ## Events -| Name | Triggers | Context Blocks | -|---------------------------|--------------------------------------------------------|----------------| -| On Click List Item | when the user click any item of the list | `List Item` | +| Name | Triggers | Context Blocks | +|--------------------|------------------------------------------|----------------------------------------------| +| On Click List Item | when the user click any item of the list | `{itemContent: String, itemChildren: Array}` | ## Styles @@ -35,7 +35,15 @@ More information about list you can find [here](https://developer.mozilla.org/en **Dimensions** ``` +@bl-customComponent-list-margin: 5px; @bl-customComponent-list-item-fontSize: 1rem; +@bl-customComponent-list-item-line-height: 1.3; +@bl-customComponent-list-item-padding: 3px; +``` + +**Other** +``` +@bl-customComponent-list-item-cursor: pointer; ``` ## Examples @@ -49,6 +57,6 @@ Below is a Codeless Example highlighting how to use the List component: Try yourself ``` -CoffeeTeagreenwhite with flowers and citrus fruitsblack "Earl Grey"olWatercarbonatednon-carbonated +CoffeeTeagreenwhite with flowers and citrus fruitsblack "Earl Grey"olWatercarbonatednon-carbonated ``` diff --git a/components/bl-list-component/component.json b/components/bl-list-component/component.json index bacae322f..e79a01bd7 100644 --- a/components/bl-list-component/component.json +++ b/components/bl-list-component/component.json @@ -37,8 +37,8 @@ "handlerId": "listItemsLogic", "handlerLabel": "List Items Logic", "dataBinding": true, - "defaultValue": "[]", - "handlerDescription": "Specifies a JSON array containing data of the list items. Signature of items list: [ ]. Signature of item: { content: String, children: [ ] }." + "defaultValue": "", + "handlerDescription": "Specifies a JSON array containing data of the list items. Signature of items list: [ ]. Signature of item: { content: String, children: [ ], type: String }." }, { "type": "color", @@ -92,8 +92,12 @@ "label": "On Click List Item Event", "contextBlocks": [ { - "id": "item", - "label": "List Item" + "id": "itemContent", + "label": "List Item Content" + }, + { + "id": "itemChildren", + "label": "List Item Children" } ], "handlerDescription": "This event is fired when the user clicks the mouse or taps the item of the list." diff --git a/components/bl-list-component/src/index.js b/components/bl-list-component/src/index.js index 0586750d2..8b5fc77cf 100644 --- a/components/bl-list-component/src/index.js +++ b/components/bl-list-component/src/index.js @@ -1,34 +1,38 @@ -import { useRef } from "react"; +import { useEffect, useRef } from "react"; import { List } from "./list"; const { cn } = BackendlessUI.CSSUtils; export default function ListComponent({ component, eventHandlers }) { - const { classList, width, backgroundColor, type, listItems, color, fontSize, padding } = component; + const { classList, display, width, backgroundColor, type, listItems, color, fontSize, padding } = component; - const onClickHandler = (e, key) => { + const items = listItems || []; + + const onClickHandler = (e, itemContent, itemChildren) => { e.stopPropagation(); - eventHandlers.onClickListItem({ item: key }); + eventHandlers.onClickListItem({ itemContent, itemChildren }); }; const options = { type: type && type === "ol" ? "ol" : "ul", - style: { - color, - fontSize, - padding, - }, + style: { color, fontSize, padding }, onClickHandler: onClickHandler, }; const listRef = useRef(); - component.el = listRef.current; + useEffect(() => { + component.el = listRef.current; + }, []); + + if (!display) { + return null; + } return ( -
    - +
    +
    ); } diff --git a/components/bl-list-component/src/list.js b/components/bl-list-component/src/list.js index acdd63ad9..2a1230289 100644 --- a/components/bl-list-component/src/list.js +++ b/components/bl-list-component/src/list.js @@ -1,23 +1,25 @@ export function List({ options, items, type }) { - const ComponentType = type || options.type; + const ListElement = type || options.type; return ( - - {items?.map((item, i) => ( - - ))} - + + { items.map((item, i) => { + const { content, children, type } = item; + + return ; + }) } + ); } function Item(props) { - const { options, listItem, key } = props; + const { options, key, content, children, type } = props; const { style, onClickHandler } = options; return ( -
  • onClickHandler(e, listItem)}> - {listItem.content} - +
  • onClickHandler(e, content, children) }> + { content } + { children && }
  • ); } diff --git a/components/bl-list-component/styles/index.less b/components/bl-list-component/styles/index.less index 8c65c5f4c..fd3e75f39 100644 --- a/components/bl-list-component/styles/index.less +++ b/components/bl-list-component/styles/index.less @@ -1,19 +1,24 @@ @bl-customComponent-list-theme: @themePrimary; @bl-customComponent-list-themeTextColor: @appTextColor; +@bl-customComponent-list-margin: 5px; @bl-customComponent-list-item-fontSize: 1rem; +@bl-customComponent-list-item-line-height: 1.3; +@bl-customComponent-list-item-padding: 3px; + +@bl-customComponent-list-item-cursor: pointer; .bl-customComponent-list { color: @bl-customComponent-list-themeTextColor; - user-select: none; .list { + margin: @bl-customComponent-list-margin; &__item { font-size: @bl-customComponent-list-item-fontSize; - padding: @bl-customComponent-list-item-fontSize / 2; - line-height: 1.3; - cursor: pointer; + padding: @bl-customComponent-list-item-padding; + line-height: @bl-customComponent-list-item-line-height; + cursor: @bl-customComponent-list-item-cursor; } } } From f82cddea30a187f14d174fdaf5cb258f38b8cf28 Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Wed, 1 Feb 2023 18:14:23 +0200 Subject: [PATCH 12/15] minor edits --- components/bl-list-component/README.md | 2 +- components/bl-list-component/component.json | 4 ++-- components/bl-list-component/src/index.js | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/components/bl-list-component/README.md b/components/bl-list-component/README.md index b6cbd92fb..9b6715855 100644 --- a/components/bl-list-component/README.md +++ b/components/bl-list-component/README.md @@ -12,7 +12,7 @@ More information about list you can find [here](https://developer.mozilla.org/en | Property | Type | Default value | Logic | Data Binding | UI Setting | Description | |------------|----------------------------|---------------|------------------|--------------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Type | *Select*
    [`ul`, `ol`] | `ul` | Type Logic | NO | YES | Controls the type of list(ul/ol). | -| Items List | *JSON* | | List Items Logic | YES | NO | Specifies a JSON array containing data of the list items. Watch [Codeless Examples](#Examples). Signature of items list: [ ]. Signature of item: { content: String, children: [ ], type: String }. | +| Items List | *JSON* | `[]` | List Items Logic | YES | NO | Specifies a JSON array containing data of the list items. Watch [Codeless Examples](#Examples). Signature of items list: [ ]. Signature of item: { content: String, children: [ ], type: String }. | | Background | *Color* | | | NO | YES | Controls the background color of the main block. | | Width | *Text* | | | NO | YES | Controls the width of the main block. | | Color | *Color* | | | NO | YES | Controls the color of the list items. | diff --git a/components/bl-list-component/component.json b/components/bl-list-component/component.json index e79a01bd7..78f2b4397 100644 --- a/components/bl-list-component/component.json +++ b/components/bl-list-component/component.json @@ -37,7 +37,7 @@ "handlerId": "listItemsLogic", "handlerLabel": "List Items Logic", "dataBinding": true, - "defaultValue": "", + "defaultValue": "[]", "handlerDescription": "Specifies a JSON array containing data of the list items. Signature of items list: [ ]. Signature of item: { content: String, children: [ ], type: String }." }, { @@ -88,7 +88,7 @@ ], "eventHandlers": [ { - "name": "onClickListItem", + "name": "onItemClick", "label": "On Click List Item Event", "contextBlocks": [ { diff --git a/components/bl-list-component/src/index.js b/components/bl-list-component/src/index.js index 8b5fc77cf..071dd3eea 100644 --- a/components/bl-list-component/src/index.js +++ b/components/bl-list-component/src/index.js @@ -11,20 +11,20 @@ export default function ListComponent({ component, eventHandlers }) { const onClickHandler = (e, itemContent, itemChildren) => { e.stopPropagation(); - eventHandlers.onClickListItem({ itemContent, itemChildren }); + eventHandlers.onItemClick({ itemContent, itemChildren }); }; const options = { - type: type && type === "ol" ? "ol" : "ul", + type: type === "ol" ? "ol" : "ul", style: { color, fontSize, padding }, - onClickHandler: onClickHandler, + onClickHandler, }; const listRef = useRef(); useEffect(() => { component.el = listRef.current; - }, []); + }, [listRef]); if (!display) { return null; From 7c7e95708cccd04723fadf8f81d989e7c4587ee8 Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Thu, 2 Feb 2023 12:03:18 +0200 Subject: [PATCH 13/15] added elRef --- components/bl-list-component/src/index.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/components/bl-list-component/src/index.js b/components/bl-list-component/src/index.js index 071dd3eea..9aee96be6 100644 --- a/components/bl-list-component/src/index.js +++ b/components/bl-list-component/src/index.js @@ -1,10 +1,8 @@ -import { useEffect, useRef } from "react"; - import { List } from "./list"; const { cn } = BackendlessUI.CSSUtils; -export default function ListComponent({ component, eventHandlers }) { +export default function ListComponent({ component, elRef, eventHandlers }) { const { classList, display, width, backgroundColor, type, listItems, color, fontSize, padding } = component; const items = listItems || []; @@ -20,18 +18,12 @@ export default function ListComponent({ component, eventHandlers }) { onClickHandler, }; - const listRef = useRef(); - - useEffect(() => { - component.el = listRef.current; - }, [listRef]); - if (!display) { return null; } return ( -
    +
    ); From bad8f87fa1b1907bb6c7f40c84629a563ba7aadc Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Thu, 9 Feb 2023 12:28:54 +0200 Subject: [PATCH 14/15] updated Props table --- components/bl-list-component/README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/components/bl-list-component/README.md b/components/bl-list-component/README.md index 9b6715855..c840313c4 100644 --- a/components/bl-list-component/README.md +++ b/components/bl-list-component/README.md @@ -9,15 +9,15 @@ More information about list you can find [here](https://developer.mozilla.org/en ## Properties -| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | -|------------|----------------------------|---------------|------------------|--------------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Type | *Select*
    [`ul`, `ol`] | `ul` | Type Logic | NO | YES | Controls the type of list(ul/ol). | -| Items List | *JSON* | `[]` | List Items Logic | YES | NO | Specifies a JSON array containing data of the list items. Watch [Codeless Examples](#Examples). Signature of items list: [ ]. Signature of item: { content: String, children: [ ], type: String }. | -| Background | *Color* | | | NO | YES | Controls the background color of the main block. | -| Width | *Text* | | | NO | YES | Controls the width of the main block. | -| Color | *Color* | | | NO | YES | Controls the color of the list items. | -| Font Size | *Text* | | | NO | YES | Controls the font size of the list items. | -| Padding | *Text* | | | NO | YES | Controls the padding of the list items. | +| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | +|-----------------------------------|----------------------------------------------|----------------|-----------------|--------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Type
    `type` | *Select*
    [Unordered:`ul`, Ordered:`ol`] | Unordered:`ul` | Type Logic | NO | YES | Controls the type of list(ul/ol). | +| Items List
    `listItems` | *JSON* | `[]` | ListItems Logic | YES | NO | Specifies a JSON array containing data of the list items. Watch [Codeless Examples](#Examples). Signature of items list: `[ ]`. Signature of item: `{ content: String, children: [ ], type: String }`. | +| Background
    `backgroundColor` | *Color* | | | NO | YES | Controls the background color of the main block. | +| Width
    `width` | *Text* | | | NO | YES | Controls the width of the main block. | +| Color
    `color` | *Color* | | | NO | YES | Controls the color of the list items. | +| Font Size
    `fontSize` | *Text* | | | NO | YES | Controls the font size of the list items. | +| Padding
    `padding` | *Text* | | | NO | YES | Controls the padding of the list items. | ## Events From 2ea85f2689850c974500d18a950856f87fcc4daf Mon Sep 17 00:00:00 2001 From: Fialkaksu Date: Wed, 15 Feb 2023 17:56:52 +0200 Subject: [PATCH 15/15] code edits, update readme --- components/bl-list-component/README.md | 19 ++---- components/bl-list-component/component.json | 64 +++---------------- components/bl-list-component/src/index.js | 20 ++---- components/bl-list-component/src/list.js | 26 ++++---- .../bl-list-component/styles/index.less | 12 ++-- 5 files changed, 42 insertions(+), 99 deletions(-) diff --git a/components/bl-list-component/README.md b/components/bl-list-component/README.md index c840313c4..d7a22c2ac 100644 --- a/components/bl-list-component/README.md +++ b/components/bl-list-component/README.md @@ -9,21 +9,16 @@ More information about list you can find [here](https://developer.mozilla.org/en ## Properties -| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | -|-----------------------------------|----------------------------------------------|----------------|-----------------|--------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Type
    `type` | *Select*
    [Unordered:`ul`, Ordered:`ol`] | Unordered:`ul` | Type Logic | NO | YES | Controls the type of list(ul/ol). | -| Items List
    `listItems` | *JSON* | `[]` | ListItems Logic | YES | NO | Specifies a JSON array containing data of the list items. Watch [Codeless Examples](#Examples). Signature of items list: `[ ]`. Signature of item: `{ content: String, children: [ ], type: String }`. | -| Background
    `backgroundColor` | *Color* | | | NO | YES | Controls the background color of the main block. | -| Width
    `width` | *Text* | | | NO | YES | Controls the width of the main block. | -| Color
    `color` | *Color* | | | NO | YES | Controls the color of the list items. | -| Font Size
    `fontSize` | *Text* | | | NO | YES | Controls the font size of the list items. | -| Padding
    `padding` | *Text* | | | NO | YES | Controls the padding of the list items. | +| Property | Type | Default value | Logic | Data Binding | UI Setting | Description | +|-----------------------------|----------------------------------------------|----------------|-----------------|--------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Type
    `type` | *Select*
    [Unordered:`ul`, Ordered:`ol`] | Unordered:`ul` | Type Logic | NO | YES | Controls the type of list(ul/ol). | +| List Items
    `listItems` | *JSON* | | ListItems Logic | YES | YES | Specifies a JSON array containing data of the list items. Watch [Codeless Examples](#Examples). Signature of items list: `[ ]`. Signature of item: `{ content: String, children: [ ], type: String }`. | ## Events -| Name | Triggers | Context Blocks | -|--------------------|------------------------------------------|----------------------------------------------| -| On Click List Item | when the user click any item of the list | `{itemContent: String, itemChildren: Array}` | +| Name | Triggers | Context Blocks | +|--------------------------|----------------------------------------------------|---------------------------------| +| On Click List Item Event | Triggered when the user click any item of the list | `{event: Object, item: Object}` | ## Styles diff --git a/components/bl-list-component/component.json b/components/bl-list-component/component.json index 78f2b4397..7add222a0 100644 --- a/components/bl-list-component/component.json +++ b/components/bl-list-component/component.json @@ -32,58 +32,15 @@ { "type": "json", "name": "listItems", - "showInSettings": false, + "showInSettings": true, "hasLogicHandler": true, "handlerId": "listItemsLogic", "handlerLabel": "List Items Logic", "dataBinding": true, - "defaultValue": "[]", - "handlerDescription": "Specifies a JSON array containing data of the list items. Signature of items list: [ ]. Signature of item: { content: String, children: [ ], type: String }." - }, - { - "type": "color", - "name": "backgroundColor", - "label": "Background", - "showInSettings": true, - "hasLogicHandler": false, - "handlerId": "backgroundColorLogic", - "settingTooltip": "Choose a background for the list" - }, - { - "type": "text", - "name": "width", - "label": "Width", - "showInSettings": true, - "hasLogicHandler": false, - "handlerId": "widthLogic", - "settingTooltip": "Choose the width of the list" - }, - { - "type": "color", - "name": "color", - "label": "Color", - "showInSettings": true, - "hasLogicHandler": false, - "handlerId": "colorLogic", - "settingTooltip": "Select the text color of the list items" - }, - { - "type": "text", - "name": "fontSize", - "label": "Font Size", - "showInSettings": true, - "hasLogicHandler": false, - "handlerId": "fontSizeLogic", - "settingTooltip": "Select the font size of the list items" - }, - { - "type": "text", - "name": "padding", - "label": "Padding", - "settingTooltip": "Select the padding for list items", - "showInSettings": true, - "hasLogicHandler": false, - "handlerId": "paddingLogic" + "defaultValue": "[{\n \"content\": \"first item\"\n},\n {\n \"content\": \"second item\",\n \"children\": [{\n \"content\": \"second item first subitem\"\n },\n {\n \"content\": \"second item second subitem\"\n },\n {\n \"content\": \"second item third subitem\"\n }],\n \"type\": \"ol\"\n },\n {\n \"content\": \"third item\",\n \"children\": [{\n \"content\": \"third item first subitem\"\n },\n {\n \"content\": \"third item second subitem\"\n }]\n }]", + "handlerDescription": "Specifies a JSON array containing data of the list items. Signature of items list: [ ]. Signature of item: { content: String, children: [ ], type: String }.", + "label": "List Items", + "settingTooltip": "List Items Data" } ], "eventHandlers": [ @@ -92,12 +49,12 @@ "label": "On Click List Item Event", "contextBlocks": [ { - "id": "itemContent", - "label": "List Item Content" + "id": "event", + "label": "Click Event" }, { - "id": "itemChildren", - "label": "List Item Children" + "id": "item", + "label": "List Item" } ], "handlerDescription": "This event is fired when the user clicks the mouse or taps the item of the list." @@ -105,6 +62,5 @@ ], "actions": [], "settings": [], - "pods": {}, - "blockUI": "
    • unordered lists ( ul ) - the list items are marked with bullets
    • ordered lists ( ol ) - the list items are marked with numbers or letters
    " + "pods": {} } diff --git a/components/bl-list-component/src/index.js b/components/bl-list-component/src/index.js index 9aee96be6..3ce7b6d1e 100644 --- a/components/bl-list-component/src/index.js +++ b/components/bl-list-component/src/index.js @@ -1,21 +1,15 @@ -import { List } from "./list"; +import { List } from './list'; const { cn } = BackendlessUI.CSSUtils; export default function ListComponent({ component, elRef, eventHandlers }) { - const { classList, display, width, backgroundColor, type, listItems, color, fontSize, padding } = component; + const { classList, style, display, type, listItems } = component; const items = listItems || []; - const onClickHandler = (e, itemContent, itemChildren) => { - e.stopPropagation(); - eventHandlers.onItemClick({ itemContent, itemChildren }); - }; - - const options = { - type: type === "ol" ? "ol" : "ul", - style: { color, fontSize, padding }, - onClickHandler, + const onItemClick = (event, item) => { + event.stopPropagation(); + eventHandlers.onItemClick({ event, item }); }; if (!display) { @@ -23,8 +17,8 @@ export default function ListComponent({ component, elRef, eventHandlers }) { } return ( -
    - +
    +
    ); } diff --git a/components/bl-list-component/src/list.js b/components/bl-list-component/src/list.js index 2a1230289..64b333941 100644 --- a/components/bl-list-component/src/list.js +++ b/components/bl-list-component/src/list.js @@ -1,25 +1,23 @@ -export function List({ options, items, type }) { - const ListElement = type || options.type; +export function List({ type, items, onItemClick }) { + const ListElement = type === 'ol' ? 'ol' : 'ul'; return ( - { items.map((item, i) => { - const { content, children, type } = item; - - return ; - }) } + { items.map((item, i) => ( + + )) } ); } -function Item(props) { - const { options, key, content, children, type } = props; - const { style, onClickHandler } = options; - +function Item({ key, item, listType, onClick }) { return ( -
  • onClickHandler(e, content, children) }> - { content } - { children && } +
  • onClick(e, item) }> + { item.content } + + { item.children && ( + + )}
  • ); } diff --git a/components/bl-list-component/styles/index.less b/components/bl-list-component/styles/index.less index fd3e75f39..5621a87bf 100644 --- a/components/bl-list-component/styles/index.less +++ b/components/bl-list-component/styles/index.less @@ -13,12 +13,12 @@ .list { margin: @bl-customComponent-list-margin; + } - &__item { - font-size: @bl-customComponent-list-item-fontSize; - padding: @bl-customComponent-list-item-padding; - line-height: @bl-customComponent-list-item-line-height; - cursor: @bl-customComponent-list-item-cursor; - } + .list__item { + font-size: @bl-customComponent-list-item-fontSize; + padding: @bl-customComponent-list-item-padding; + line-height: @bl-customComponent-list-item-line-height; + cursor: @bl-customComponent-list-item-cursor; } }