From 79207a5e5906b8d181ae41ec0caca2a3a66171d4 Mon Sep 17 00:00:00 2001 From: namnguyen Date: Thu, 14 Nov 2024 15:20:33 +0700 Subject: [PATCH 1/5] Example for list of value --- .../example_library/example_library.py | 9 +++++ .../front-end/src/ListOfLanguages.tsx | 38 +++++++++++++++++++ .../example_library/front-end/src/index.ts | 3 +- doc/gui/extension/list_of_languages.py | 34 +++++++++++++++++ 4 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 doc/gui/extension/example_library/front-end/src/ListOfLanguages.tsx create mode 100644 doc/gui/extension/list_of_languages.py diff --git a/doc/gui/extension/example_library/example_library.py b/doc/gui/extension/example_library/example_library.py index c66c7f870..1c78b1797 100644 --- a/doc/gui/extension/example_library/example_library.py +++ b/doc/gui/extension/example_library/example_library.py @@ -42,6 +42,15 @@ def __init__(self) -> None: # element, exported as GameTable in front-end/src/index.ts # react_component="GameTable", ), + "list_of_languages": Element( + "lov", + { + "lov": ElementProperty(PropertyType.lov), + }, + # The name of the React component (TodoList) that implements this custom + # element, exported as TodoList in front-end/src/index.ts + # react_component="ListOfLanguages", + ) } # The implementation of the rendering for the "fraction" static element diff --git a/doc/gui/extension/example_library/front-end/src/ListOfLanguages.tsx b/doc/gui/extension/example_library/front-end/src/ListOfLanguages.tsx new file mode 100644 index 000000000..7b4a57b90 --- /dev/null +++ b/doc/gui/extension/example_library/front-end/src/ListOfLanguages.tsx @@ -0,0 +1,38 @@ +import React from "react"; +import { LoV, useLovListMemo } from "taipy-gui"; + +interface ToDoListProps { + lov?: LoV; + defaultLov?: string; +} + +const selectStyle = { + padding: "10px", + fontSize: "16px", + borderRadius: "5px", + border: "1px solid #ccc", +} + +const divStyle = { + margin: "20px", + fontFamily: "Arial, sans-serif", +} + +const ListOfLanguages = (props: ToDoListProps) => { + const { lov, defaultLov = "" } = props; + const lovList = useLovListMemo(lov, defaultLov); + + return ( +
+ +
+ ); +}; + +export default ListOfLanguages; diff --git a/doc/gui/extension/example_library/front-end/src/index.ts b/doc/gui/extension/example_library/front-end/src/index.ts index c7b47323e..ab1f0c492 100644 --- a/doc/gui/extension/example_library/front-end/src/index.ts +++ b/doc/gui/extension/example_library/front-end/src/index.ts @@ -8,5 +8,6 @@ // the name used in the element declaration in the element library. import ColoredLabel from "./ColoredLabel"; import GameTable from "./GameTable"; +import ListOfLanguages from "./ListOfLanguages"; -export { ColoredLabel as ExampleLabel, GameTable }; +export { ColoredLabel as ExampleLabel, GameTable, ListOfLanguages }; diff --git a/doc/gui/extension/list_of_languages.py b/doc/gui/extension/list_of_languages.py new file mode 100644 index 000000000..d8132f21c --- /dev/null +++ b/doc/gui/extension/list_of_languages.py @@ -0,0 +1,34 @@ +# Copyright 2021-2024 Avaiga Private Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on +# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. +from example_library import ExampleLibrary + +from taipy.gui import Gui + +languages = [ + "Python", + "JavaScript", + "TypeScript", + "Java", + "C++", + "Ruby", + "Go", + "Swift", + "Kotlin", + "Rust", +] + +page = """ +Please select the programming languages you are familiar with: +<|{languages}|example.list_of_languages|> +""" + +if __name__ == "__main__": + Gui(page, libraries=[ExampleLibrary()]).run(title="Programming language selection") From 571fdc6aa96d256947c5aa994066e647e5c8ba50 Mon Sep 17 00:00:00 2001 From: namnguyen Date: Mon, 18 Nov 2024 02:32:08 +0700 Subject: [PATCH 2/5] Example for list of value --- doc/gui/extension/cpp.png | Bin 0 -> 18882 bytes .../example_library/example_library.py | 5 +- .../front-end/src/ListItem.tsx | 50 ++++++++++++++++++ .../example_library/front-end/src/index.ts | 4 +- doc/gui/extension/java.png | Bin 0 -> 22556 bytes doc/gui/extension/javascript.png | Bin 0 -> 11139 bytes .../{list_of_languages.py => list_item.py} | 23 ++++---- doc/gui/extension/python.png | Bin 0 -> 37415 bytes doc/gui/extension/typescript.png | Bin 0 -> 10052 bytes 9 files changed, 64 insertions(+), 18 deletions(-) create mode 100644 doc/gui/extension/cpp.png create mode 100644 doc/gui/extension/example_library/front-end/src/ListItem.tsx create mode 100644 doc/gui/extension/java.png create mode 100644 doc/gui/extension/javascript.png rename doc/gui/extension/{list_of_languages.py => list_item.py} (59%) create mode 100644 doc/gui/extension/python.png create mode 100644 doc/gui/extension/typescript.png diff --git a/doc/gui/extension/cpp.png b/doc/gui/extension/cpp.png new file mode 100644 index 0000000000000000000000000000000000000000..a02e2eaa6298e1c76a2c47ed02bcb29201a5b1e3 GIT binary patch literal 18882 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 OhQZU-&t;ucLK6TnsvHjh literal 0 HcmV?d00001 diff --git a/doc/gui/extension/example_library/example_library.py b/doc/gui/extension/example_library/example_library.py index 1c78b1797..cde6b8cb6 100644 --- a/doc/gui/extension/example_library/example_library.py +++ b/doc/gui/extension/example_library/example_library.py @@ -42,14 +42,15 @@ def __init__(self) -> None: # element, exported as GameTable in front-end/src/index.ts # react_component="GameTable", ), - "list_of_languages": Element( + "list_item": Element( "lov", { "lov": ElementProperty(PropertyType.lov), + "sort": ElementProperty(PropertyType.string), }, # The name of the React component (TodoList) that implements this custom # element, exported as TodoList in front-end/src/index.ts - # react_component="ListOfLanguages", + # react_component="ListItem", ) } diff --git a/doc/gui/extension/example_library/front-end/src/ListItem.tsx b/doc/gui/extension/example_library/front-end/src/ListItem.tsx new file mode 100644 index 000000000..f703b2746 --- /dev/null +++ b/doc/gui/extension/example_library/front-end/src/ListItem.tsx @@ -0,0 +1,50 @@ +import React, { useMemo } from "react"; +import { LoV, useLovListMemo } from "taipy-gui"; + +interface ToDoListProps { + lov?: LoV; + defaultLov?: string; + sort?: "asc" | "desc"; +} + +const styles = { + listItem: { + display: "flex", + alignItems: "center", + }, + listItemImage: { + marginRight: "8px", + width: "1em", + height: "1em", + }, +}; + +const ListItem: React.FC = ({ lov, defaultLov = "", sort }) => { + const lovList = useLovListMemo(lov, defaultLov); + + const sortedLovList = useMemo(() => { + if (sort) { + return lovList.slice().sort((a, b) => { + return sort === "asc" ? a.id.localeCompare(b.id) : b.id.localeCompare(a.id); + }); + } + return lovList; + }, [lovList, sort]); + + return ( +
+
    + {sortedLovList.map((todo, index) => ( +
  • + {typeof todo.item === "string" ? null : ( + {todo.item.text} + )} + {todo.id} +
  • + ))} +
+
+ ); +}; + +export default ListItem; diff --git a/doc/gui/extension/example_library/front-end/src/index.ts b/doc/gui/extension/example_library/front-end/src/index.ts index ab1f0c492..afc859f62 100644 --- a/doc/gui/extension/example_library/front-end/src/index.ts +++ b/doc/gui/extension/example_library/front-end/src/index.ts @@ -8,6 +8,6 @@ // the name used in the element declaration in the element library. import ColoredLabel from "./ColoredLabel"; import GameTable from "./GameTable"; -import ListOfLanguages from "./ListOfLanguages"; +import ListItem from "./ListItem"; -export { ColoredLabel as ExampleLabel, GameTable, ListOfLanguages }; +export { ColoredLabel as ExampleLabel, GameTable, ListItem }; diff --git a/doc/gui/extension/java.png b/doc/gui/extension/java.png new file mode 100644 index 0000000000000000000000000000000000000000..78fa9c5d721ff840178a34df4adc882b8c909602 GIT binary patch literal 22556 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 N&5f;$8Vz0J{s+$O*uDS& literal 0 HcmV?d00001 diff --git a/doc/gui/extension/javascript.png b/doc/gui/extension/javascript.png new file mode 100644 index 0000000000000000000000000000000000000000..9f148627c5e3b856258811cef134e546cd77beb0 GIT binary patch literal 11139 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 opR +The list of programming languages is as follows: +<|{languages}|example.list_item|sort=asc|> """ if __name__ == "__main__": - Gui(page, libraries=[ExampleLibrary()]).run(title="Programming language selection") + Gui(page, libraries=[ExampleLibrary()]).run(title="List of item") diff --git a/doc/gui/extension/python.png b/doc/gui/extension/python.png new file mode 100644 index 0000000000000000000000000000000000000000..a29196d44e38cddb250876b124263d4dae31f15e GIT binary patch literal 37415 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
  • +o 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

    pnaj{UQ8;;x4Df5_6Bk5}Z9!WESl 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 Date: Mon, 18 Nov 2024 16:41:41 +0700 Subject: [PATCH 3/5] per Fred --- .../example_library/example_library.py | 8 ++-- .../src/{ListItem.tsx => ItemList.tsx} | 10 ++--- .../front-end/src/ListOfLanguages.tsx | 38 ------------------ .../example_library/front-end/src/index.ts | 4 +- doc/gui/extension/{ => images}/cpp.png | Bin doc/gui/extension/{ => images}/java.png | Bin doc/gui/extension/{ => images}/javascript.png | Bin doc/gui/extension/{ => images}/python.png | Bin doc/gui/extension/{ => images}/typescript.png | Bin .../extension/{list_item.py => item_list.py} | 12 +++--- 10 files changed, 17 insertions(+), 55 deletions(-) rename doc/gui/extension/example_library/front-end/src/{ListItem.tsx => ItemList.tsx} (86%) delete mode 100644 doc/gui/extension/example_library/front-end/src/ListOfLanguages.tsx rename doc/gui/extension/{ => images}/cpp.png (100%) rename doc/gui/extension/{ => images}/java.png (100%) rename doc/gui/extension/{ => images}/javascript.png (100%) rename doc/gui/extension/{ => images}/python.png (100%) rename doc/gui/extension/{ => images}/typescript.png (100%) rename doc/gui/extension/{list_item.py => item_list.py} (71%) diff --git a/doc/gui/extension/example_library/example_library.py b/doc/gui/extension/example_library/example_library.py index cde6b8cb6..d1395a426 100644 --- a/doc/gui/extension/example_library/example_library.py +++ b/doc/gui/extension/example_library/example_library.py @@ -42,15 +42,15 @@ def __init__(self) -> None: # element, exported as GameTable in front-end/src/index.ts # react_component="GameTable", ), - "list_item": Element( + "item_list": Element( "lov", { "lov": ElementProperty(PropertyType.lov), "sort": ElementProperty(PropertyType.string), }, - # The name of the React component (TodoList) that implements this custom - # element, exported as TodoList in front-end/src/index.ts - # react_component="ListItem", + # The name of the React component (ItemList) that implements this custom + # element, exported as ItemList in front-end/src/index.ts + # react_component="ItemList", ) } diff --git a/doc/gui/extension/example_library/front-end/src/ListItem.tsx b/doc/gui/extension/example_library/front-end/src/ItemList.tsx similarity index 86% rename from doc/gui/extension/example_library/front-end/src/ListItem.tsx rename to doc/gui/extension/example_library/front-end/src/ItemList.tsx index f703b2746..ab44ddcd8 100644 --- a/doc/gui/extension/example_library/front-end/src/ListItem.tsx +++ b/doc/gui/extension/example_library/front-end/src/ItemList.tsx @@ -1,7 +1,7 @@ import React, { useMemo } from "react"; import { LoV, useLovListMemo } from "taipy-gui"; -interface ToDoListProps { +interface ItemListProps { lov?: LoV; defaultLov?: string; sort?: "asc" | "desc"; @@ -12,14 +12,14 @@ const styles = { display: "flex", alignItems: "center", }, - listItemImage: { + image: { marginRight: "8px", width: "1em", height: "1em", }, }; -const ListItem: React.FC = ({ lov, defaultLov = "", sort }) => { +const ItemList: React.FC = ({ lov, defaultLov = "", sort }) => { const lovList = useLovListMemo(lov, defaultLov); const sortedLovList = useMemo(() => { @@ -37,7 +37,7 @@ const ListItem: React.FC = ({ lov, defaultLov = "", sort }) => { {sortedLovList.map((todo, index) => (

  • {typeof todo.item === "string" ? null : ( - {todo.item.text} + {todo.item.text} )} {todo.id}
  • @@ -47,4 +47,4 @@ const ListItem: React.FC = ({ lov, defaultLov = "", sort }) => { ); }; -export default ListItem; +export default ItemList; diff --git a/doc/gui/extension/example_library/front-end/src/ListOfLanguages.tsx b/doc/gui/extension/example_library/front-end/src/ListOfLanguages.tsx deleted file mode 100644 index 7b4a57b90..000000000 --- a/doc/gui/extension/example_library/front-end/src/ListOfLanguages.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import React from "react"; -import { LoV, useLovListMemo } from "taipy-gui"; - -interface ToDoListProps { - lov?: LoV; - defaultLov?: string; -} - -const selectStyle = { - padding: "10px", - fontSize: "16px", - borderRadius: "5px", - border: "1px solid #ccc", -} - -const divStyle = { - margin: "20px", - fontFamily: "Arial, sans-serif", -} - -const ListOfLanguages = (props: ToDoListProps) => { - const { lov, defaultLov = "" } = props; - const lovList = useLovListMemo(lov, defaultLov); - - return ( -
    - -
    - ); -}; - -export default ListOfLanguages; diff --git a/doc/gui/extension/example_library/front-end/src/index.ts b/doc/gui/extension/example_library/front-end/src/index.ts index afc859f62..c04f600b1 100644 --- a/doc/gui/extension/example_library/front-end/src/index.ts +++ b/doc/gui/extension/example_library/front-end/src/index.ts @@ -8,6 +8,6 @@ // the name used in the element declaration in the element library. import ColoredLabel from "./ColoredLabel"; import GameTable from "./GameTable"; -import ListItem from "./ListItem"; +import ItemList from "./ItemList"; -export { ColoredLabel as ExampleLabel, GameTable, ListItem }; +export { ColoredLabel as ExampleLabel, GameTable, ItemList }; diff --git a/doc/gui/extension/cpp.png b/doc/gui/extension/images/cpp.png similarity index 100% rename from doc/gui/extension/cpp.png rename to doc/gui/extension/images/cpp.png diff --git a/doc/gui/extension/java.png b/doc/gui/extension/images/java.png similarity index 100% rename from doc/gui/extension/java.png rename to doc/gui/extension/images/java.png diff --git a/doc/gui/extension/javascript.png b/doc/gui/extension/images/javascript.png similarity index 100% rename from doc/gui/extension/javascript.png rename to doc/gui/extension/images/javascript.png diff --git a/doc/gui/extension/python.png b/doc/gui/extension/images/python.png similarity index 100% rename from doc/gui/extension/python.png rename to doc/gui/extension/images/python.png diff --git a/doc/gui/extension/typescript.png b/doc/gui/extension/images/typescript.png similarity index 100% rename from doc/gui/extension/typescript.png rename to doc/gui/extension/images/typescript.png diff --git a/doc/gui/extension/list_item.py b/doc/gui/extension/item_list.py similarity index 71% rename from doc/gui/extension/list_item.py rename to doc/gui/extension/item_list.py index 6fc78246e..894cc6724 100644 --- a/doc/gui/extension/list_item.py +++ b/doc/gui/extension/item_list.py @@ -13,16 +13,16 @@ from taipy.gui import Gui, Icon languages = [ - ["Python", Icon("./python.png", "Python logo")], - ["JavaScript", Icon("./javascript.png", "JavaScript logo")], - ["TypeScript", Icon("./typescript.png", "TypeScript logo")], - ["Java", Icon("./java.png", "Java logo")], - ["C++", Icon("./cpp.png", "C++ logo")], + ["Python", Icon("images/python.png", "Python logo")], + ["JavaScript", Icon("images/javascript.png", "JavaScript logo")], + ["TypeScript", Icon("images/typescript.png", "TypeScript logo")], + ["Java", Icon("images/java.png", "Java logo")], + ["C++", Icon("images/cpp.png", "C++ logo")], ] page = """ The list of programming languages is as follows: -<|{languages}|example.list_item|sort=asc|> +<|{languages}|example.item_list|sort=asc|> """ if __name__ == "__main__": From f6f4a5d37c4f0c2f2ba6f926dcf225a91034095c Mon Sep 17 00:00:00 2001 From: namnguyen Date: Wed, 20 Nov 2024 16:21:09 +0700 Subject: [PATCH 4/5] Change component name --- .../extension/example_library/example_library.py | 8 ++++---- .../src/{ItemList.tsx => LabeledItem.tsx} | 14 +++++++------- .../example_library/front-end/src/index.ts | 4 ++-- .../{item_list.py => labeled_item_list.py} | 3 +-- 4 files changed, 14 insertions(+), 15 deletions(-) rename doc/gui/extension/example_library/front-end/src/{ItemList.tsx => LabeledItem.tsx} (72%) rename doc/gui/extension/{item_list.py => labeled_item_list.py} (92%) diff --git a/doc/gui/extension/example_library/example_library.py b/doc/gui/extension/example_library/example_library.py index d1395a426..cef004fa0 100644 --- a/doc/gui/extension/example_library/example_library.py +++ b/doc/gui/extension/example_library/example_library.py @@ -42,15 +42,15 @@ def __init__(self) -> None: # element, exported as GameTable in front-end/src/index.ts # react_component="GameTable", ), - "item_list": Element( + "labeled_item_list": Element( "lov", { "lov": ElementProperty(PropertyType.lov), "sort": ElementProperty(PropertyType.string), }, - # The name of the React component (ItemList) that implements this custom - # element, exported as ItemList in front-end/src/index.ts - # react_component="ItemList", + # The name of the React component (LabeledItem) that implements this custom + # element, exported as LabeledItemList in front-end/src/index.ts + react_component="LabeledItem", ) } diff --git a/doc/gui/extension/example_library/front-end/src/ItemList.tsx b/doc/gui/extension/example_library/front-end/src/LabeledItem.tsx similarity index 72% rename from doc/gui/extension/example_library/front-end/src/ItemList.tsx rename to doc/gui/extension/example_library/front-end/src/LabeledItem.tsx index ab44ddcd8..1eedd7da4 100644 --- a/doc/gui/extension/example_library/front-end/src/ItemList.tsx +++ b/doc/gui/extension/example_library/front-end/src/LabeledItem.tsx @@ -1,7 +1,7 @@ import React, { useMemo } from "react"; import { LoV, useLovListMemo } from "taipy-gui"; -interface ItemListProps { +interface LabeledItemProps { lov?: LoV; defaultLov?: string; sort?: "asc" | "desc"; @@ -19,7 +19,7 @@ const styles = { }, }; -const ItemList: React.FC = ({ lov, defaultLov = "", sort }) => { +const LabeledItem: React.FC = ({ lov, defaultLov = "", sort }) => { const lovList = useLovListMemo(lov, defaultLov); const sortedLovList = useMemo(() => { @@ -34,12 +34,12 @@ const ItemList: React.FC = ({ lov, defaultLov = "", sort }) => { return (
      - {sortedLovList.map((todo, index) => ( + {sortedLovList.map((item, index) => (
    • - {typeof todo.item === "string" ? null : ( - {todo.item.text} + {typeof item.item === "string" ? null : ( + {item.item.text} )} - {todo.id} + {item.id}
    • ))}
    @@ -47,4 +47,4 @@ const ItemList: React.FC = ({ lov, defaultLov = "", sort }) => { ); }; -export default ItemList; +export default LabeledItem; diff --git a/doc/gui/extension/example_library/front-end/src/index.ts b/doc/gui/extension/example_library/front-end/src/index.ts index c04f600b1..b2e245a27 100644 --- a/doc/gui/extension/example_library/front-end/src/index.ts +++ b/doc/gui/extension/example_library/front-end/src/index.ts @@ -8,6 +8,6 @@ // the name used in the element declaration in the element library. import ColoredLabel from "./ColoredLabel"; import GameTable from "./GameTable"; -import ItemList from "./ItemList"; +import LabeledItem from "./LabeledItem"; -export { ColoredLabel as ExampleLabel, GameTable, ItemList }; +export { ColoredLabel as ExampleLabel, GameTable, LabeledItem }; diff --git a/doc/gui/extension/item_list.py b/doc/gui/extension/labeled_item_list.py similarity index 92% rename from doc/gui/extension/item_list.py rename to doc/gui/extension/labeled_item_list.py index 894cc6724..0a2415664 100644 --- a/doc/gui/extension/item_list.py +++ b/doc/gui/extension/labeled_item_list.py @@ -21,8 +21,7 @@ ] page = """ -The list of programming languages is as follows: -<|{languages}|example.item_list|sort=asc|> +<|{languages}|example.labeled_item_list|sort=asc|> """ if __name__ == "__main__": From 5f507c26f30c064c8302a01f50855a91e3dcca50 Mon Sep 17 00:00:00 2001 From: namnguyen Date: Wed, 20 Nov 2024 21:30:08 +0700 Subject: [PATCH 5/5] updated per Fab --- doc/gui/extension/example_library/example_library.py | 6 +++--- .../front-end/src/{LabeledItem.tsx => VisualLabelList.tsx} | 6 +++--- doc/gui/extension/example_library/front-end/src/index.ts | 4 ++-- .../{labeled_item_list.py => visual_label_list.py} | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) rename doc/gui/extension/example_library/front-end/src/{LabeledItem.tsx => VisualLabelList.tsx} (87%) rename doc/gui/extension/{labeled_item_list.py => visual_label_list.py} (95%) diff --git a/doc/gui/extension/example_library/example_library.py b/doc/gui/extension/example_library/example_library.py index cef004fa0..acba0aeca 100644 --- a/doc/gui/extension/example_library/example_library.py +++ b/doc/gui/extension/example_library/example_library.py @@ -42,15 +42,15 @@ def __init__(self) -> None: # element, exported as GameTable in front-end/src/index.ts # react_component="GameTable", ), - "labeled_item_list": Element( + "visual_label_list": Element( "lov", { "lov": ElementProperty(PropertyType.lov), "sort": ElementProperty(PropertyType.string), }, - # The name of the React component (LabeledItem) that implements this custom + # The name of the React component (VisualLabelList) that implements this custom # element, exported as LabeledItemList in front-end/src/index.ts - react_component="LabeledItem", + react_component="VisualLabelList", ) } diff --git a/doc/gui/extension/example_library/front-end/src/LabeledItem.tsx b/doc/gui/extension/example_library/front-end/src/VisualLabelList.tsx similarity index 87% rename from doc/gui/extension/example_library/front-end/src/LabeledItem.tsx rename to doc/gui/extension/example_library/front-end/src/VisualLabelList.tsx index 1eedd7da4..793a6499a 100644 --- a/doc/gui/extension/example_library/front-end/src/LabeledItem.tsx +++ b/doc/gui/extension/example_library/front-end/src/VisualLabelList.tsx @@ -1,7 +1,7 @@ import React, { useMemo } from "react"; import { LoV, useLovListMemo } from "taipy-gui"; -interface LabeledItemProps { +interface VisualLabelListProps { lov?: LoV; defaultLov?: string; sort?: "asc" | "desc"; @@ -19,7 +19,7 @@ const styles = { }, }; -const LabeledItem: React.FC = ({ lov, defaultLov = "", sort }) => { +const VisualLabelList: React.FC = ({ lov, defaultLov = "", sort }) => { const lovList = useLovListMemo(lov, defaultLov); const sortedLovList = useMemo(() => { @@ -47,4 +47,4 @@ const LabeledItem: React.FC = ({ lov, defaultLov = "", sort }) ); }; -export default LabeledItem; +export default VisualLabelList; diff --git a/doc/gui/extension/example_library/front-end/src/index.ts b/doc/gui/extension/example_library/front-end/src/index.ts index b2e245a27..c2de08c12 100644 --- a/doc/gui/extension/example_library/front-end/src/index.ts +++ b/doc/gui/extension/example_library/front-end/src/index.ts @@ -8,6 +8,6 @@ // the name used in the element declaration in the element library. import ColoredLabel from "./ColoredLabel"; import GameTable from "./GameTable"; -import LabeledItem from "./LabeledItem"; +import VisualLabelList from "./VisualLabelList"; -export { ColoredLabel as ExampleLabel, GameTable, LabeledItem }; +export { ColoredLabel as ExampleLabel, GameTable, VisualLabelList }; diff --git a/doc/gui/extension/labeled_item_list.py b/doc/gui/extension/visual_label_list.py similarity index 95% rename from doc/gui/extension/labeled_item_list.py rename to doc/gui/extension/visual_label_list.py index 0a2415664..73cc5efa5 100644 --- a/doc/gui/extension/labeled_item_list.py +++ b/doc/gui/extension/visual_label_list.py @@ -21,7 +21,7 @@ ] page = """ -<|{languages}|example.labeled_item_list|sort=asc|> +<|{languages}|example.visual_label_list|sort=asc|> """ if __name__ == "__main__":