-
Notifications
You must be signed in to change notification settings - Fork 7
MARKET-1557 List Component #178
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Changes from 9 commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
71c071e
Add list-component
Fialkaksu d89e697
Add readme
Fialkaksu 4a56f91
Edit readme
Fialkaksu 13cba78
Added styles
Fialkaksu 73c8ed4
Add nested lists
Fialkaksu 217c5f1
fixes by review
Fialkaksu a2946e7
minor edits
Fialkaksu d733da6
code refactoring
Fialkaksu 65cfa59
code edits and modified preview
Fialkaksu 8c664c0
minor edits
Fialkaksu a436837
minor edits and updates
Fialkaksu f82cdde
minor edits
Fialkaksu 7c7e957
added elRef
Fialkaksu bad8f87
updated Props table
Fialkaksu 2ea85f2
code edits, update readme
Fialkaksu File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| # 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. 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). | ||
|
|
||
| <p align="center"> | ||
| <img src="./thumbnail.png" alt="main thumbnail" width="780"/> | ||
| </p> | ||
|
|
||
| ## Properties | ||
|
|
||
| | Property | Type | Default value | Logic | Data Binding | UI Setting | Description | | ||
| |------------|----------------------------|---------------|-----------------|--------------|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| | Type | *Select* <br> [`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: [ <Item> ]. Signature of item: { content: String, children: [ <Item> ] }. | | ||
| | 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` | | ||
|
|
||
| ## Styles | ||
|
|
||
| **Theme** | ||
| ```` | ||
| @bl-customComponent-list-theme: @themePrimary; | ||
| @bl-customComponent-list-themeTextColor: @appTextColor; | ||
| ```` | ||
|
|
||
| **Dimensions** | ||
| ``` | ||
| @bl-customComponent-list-item-fontSize: 1rem; | ||
| ``` | ||
|
|
||
| ## Examples | ||
|
|
||
| Below is a Codeless Example highlighting how to use the List component: | ||
|
|
||
|  | ||
|  | ||
v-excelsior marked this conversation as resolved.
Show resolved
Hide resolved
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,106 @@ | ||
| { | ||
| "id": "c_f95c74e56529269bdafe747715db7bbe", | ||
| "name": "List", | ||
| "description": "The List component allows the user to add a standard list to an application.", | ||
| "showInToolbox": true, | ||
| "faIcon": "list", | ||
| "mainJS": "dist/index.js", | ||
| "type": "custom", | ||
| "category": "Custom Components", | ||
| "properties": [ | ||
| { | ||
| "type": "select", | ||
v-excelsior marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| "name": "type", | ||
| "label": "Type", | ||
| "showInSettings": true, | ||
| "defaultValue": "ul", | ||
| "hasLogicHandler": false, | ||
| "handlerId": "typeLogic", | ||
| "options": [ | ||
| { | ||
| "value": "ul", | ||
| "label": "Unordered" | ||
| }, | ||
| { | ||
| "value": "ol", | ||
| "label": "Ordered" | ||
| } | ||
| ], | ||
| "handlerLabel": "Type Logic", | ||
| "settingTooltip": "Select a list type" | ||
| }, | ||
| { | ||
| "type": "json", | ||
| "name": "listItems", | ||
| "showInSettings": false, | ||
Valodya marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| "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: [ <Item> ]. Signature of item: { content: String, children: [ <Item> ] }." | ||
| }, | ||
| { | ||
| "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" | ||
| } | ||
| ], | ||
| "eventHandlers": [ | ||
| { | ||
| "name": "onClickListItem", | ||
| "label": "On Click List Item Event", | ||
| "contextBlocks": [ | ||
| { | ||
| "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": "<div data-module-type=\"system\" data-module-id=\"paragraph\" data-display data-uid=\"26ee0bea5794136c571887825e151d79\"><ul><li data-display=\"\" style=\"margin-bottom:10px;\">unordered lists ( ul ) - the list items are marked with bullets</li><li data-display=\"\">ordered lists ( ol ) - the list items are marked with numbers or letters</li></ul></div>" | ||
| } | ||
Binary file added
BIN
+8.9 KB
components/bl-list-component/example-images/list-data-example-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| <div data-module-type="system" data-module-id="paragraph" data-display data-uid="26ee0bea5794136c571887825e151d79"><ul><li data-display="" style="margin-bottom:10px;">unordered lists ( ul ) - the list items are marked with bullets</li><li data-display="">ordered lists ( ol ) - the list items are marked with numbers or letters</li></ul></div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| import { List } from "./list"; | ||
|
|
||
| const { cn } = BackendlessUI.CSSUtils; | ||
|
|
||
| export default function ListComponent({ component, eventHandlers }) { | ||
| const { classList, width, backgroundColor, type, listItems, color, fontSize, padding } = component; | ||
v-excelsior marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| const onClickHandler = (e, key) => { | ||
v-excelsior marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| e.stopPropagation(); | ||
v-excelsior marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| eventHandlers.onClickListItem({ item: key }); | ||
| }; | ||
|
|
||
v-excelsior marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| const options = { | ||
| type: type && type === "ol" ? "ol" : "ul", | ||
| style: { | ||
| color: color, | ||
| fontSize: fontSize, | ||
| padding: padding, | ||
| }, | ||
v-excelsior marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| onClickHandler: onClickHandler, | ||
| }; | ||
|
|
||
| return ( | ||
| <div className={cn("bl-customComponent-list", classList)} style={{ width, backgroundColor }}> | ||
| <List options={options} items={listItems} /> | ||
| </div> | ||
| ); | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| export function List({ options, items }) { | ||
| const ComponentType = options.type; | ||
|
|
||
| return ( | ||
| <ComponentType className="list"> | ||
| {items?.map((item, i) => ( | ||
v-excelsior marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| <Item item={item} key={i} options={options} /> | ||
v-excelsior marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| ))} | ||
| </ComponentType> | ||
| ); | ||
| } | ||
|
|
||
| function Item(props) { | ||
| const { options, item, key } = props; | ||
| const { style, onClickHandler } = options; | ||
Valodya marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| return ( | ||
| <li key={key} className="list__item" style={style} onClick={(e) => onClickHandler(e, item)}> | ||
| {item.content} | ||
| {item.children && <List items={item.children} options={options} />} | ||
| </li> | ||
| ); | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| @bl-customComponent-list-theme: @themePrimary; | ||
| @bl-customComponent-list-themeTextColor: @appTextColor; | ||
|
|
||
| @bl-customComponent-list-item-fontSize: 1rem; | ||
|
|
||
| .bl-customComponent-list { | ||
| color: @bl-customComponent-list-themeTextColor; | ||
| user-select: none; | ||
v-excelsior marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| .list { | ||
|
|
||
| &__item { | ||
Valodya marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| font-size: @bl-customComponent-list-item-fontSize; | ||
| padding: @bl-customComponent-list-item-fontSize / 2; | ||
v-excelsior marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| line-height: 1.3; | ||
v-excelsior marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| cursor: pointer; | ||
| } | ||
| } | ||
| } | ||
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.