summaryrefslogtreecommitdiffstats
path: root/README.md
blob: 94cb06f0f0064a23bbbda58520a96de6507489b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
![Bower version](https://badge.fury.io/bo/vaadin-core-elements.svg)
[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/author/vaadin)
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/vaadin/vaadin-core-elements?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)

# Vaadin Core Elements

[Vaadin elements](https://vaadin.com/elements) are an evolving set of open sourced [Polymer](https://www.polymer-project.org/) web components, which seamlessly extend the [Polymer Element Catalog](https://www.webcomponents.org/collection/Polymer/elements) with high-quality user interface components commonly needed in modern mobile and desktop business web applications. The following elements are included:

| Element | Bower Version | Npm version | Build Status | Polymer 2 support |
|---------|---------------|-------------|--------------|-------------------|
| [vaadin-button](https://github.com/vaadin/vaadin-button) | ![Bower version](https://badge.fury.io/bo/vaadin-button.svg) | [![npm version](https://badge.fury.io/js/vaadin-button.svg)](https://www.npmjs.com/package/vaadin-button) | [![Build Status](https://travis-ci.org/vaadin/vaadin-button.svg?branch=master)](https://travis-ci.org/vaadin/vaadin-button) | ![Polymer 2 supported](https://img.shields.io/badge/Polymer2-supported-blue.svg) |
| [vaadin-checkbox](https://github.com/vaadin/vaadin-checkbox) | ![Bower version](https://badge.fury.io/bo/vaadin-checkbox.svg) | [![npm version](https://badge.fury.io/js/vaadin-checkbox.svg)](https://www.npmjs.com/package/vaadin-checkbox) | [![Build Status](https://travis-ci.org/vaadin/vaadin-checkbox.svg?branch=master)](https://travis-ci.org/vaadin/vaadin-checkbox) | ![Polymer 2 supported](https://img.shields.io/badge/Polymer2-supported-blue.svg) |
| [vaadin-combo-box](https://github.com/vaadin/vaadin-combo-box) | ![Bower version](https://badge.fury.io/bo/vaadin-combo-box.svg) | [![npm version](https://badge.fury.io/js/vaadin-combo-box.svg)](https://www.npmjs.com/package/vaadin-combo-box) | [![Build Status](https://travis-ci.org/vaadin/vaadin-combo-box.svg?branch=master)](https://travis-ci.org/vaadin/vaadin-combo-box) | ![Polymer 2 supported](https://img.shields.io/badge/Polymer2-supported-blue.svg) |
| [vaadin-context-menu](https://github.com/vaadin/vaadin-context-menu) | ![Bower version](https://badge.fury.io/bo/vaadin-context-menu.svg) | [![npm version](https://badge.fury.io/js/vaadin-context-menu.svg)](https://www.npmjs.com/package/vaadin-context-menu) | [![Build Status](https://travis-ci.org/vaadin/vaadin-context-menu.svg?branch=master)](https://travis-ci.org/vaadin/vaadin-context-menu) | ![Polymer 2 supported](https://img.shields.io/badge/Polymer2-supported-blue.svg) |
| [vaadin-date-picker](https://github.com/vaadin/vaadin-date-picker) | ![Bower version](https://badge.fury.io/bo/vaadin-date-picker.svg) | [![npm version](https://badge.fury.io/js/vaadin-date-picker.svg)](https://www.npmjs.com/package/vaadin-date-picker) | [![Build Status](https://travis-ci.org/vaadin/vaadin-date-picker.svg?branch=master)](https://travis-ci.org/vaadin/vaadin-date-picker) | ![Polymer 2 supported](https://img.shields.io/badge/Polymer2-supported-blue.svg) |
| [vaadin-form-layout](https://github.com/vaadin/vaadin-form-layout) | ![Bower version](https://badge.fury.io/bo/vaadin-form-layout.svg) | [![npm version](https://badge.fury.io/js/vaadin-form-layout.svg)](https://www.npmjs.com/package/vaadin-form-layout) | [![Build Status](https://travis-ci.org/vaadin/vaadin-form-layout.svg?branch=master)](https://travis-ci.org/vaadin/vaadin-form-layout) | ![Polymer 2 supported](https://img.shields.io/badge/Polymer2-supported-blue.svg) |
| [vaadin-grid](https://github.com/vaadin/vaadin-grid) | ![Bower version](https://badge.fury.io/bo/vaadin-grid.svg) | [![npm version](https://badge.fury.io/js/vaadin-grid.svg)](https://www.npmjs.com/package/vaadin-grid) | [![Build Status](https://travis-ci.org/vaadin/vaadin-grid.svg?branch=master)](https://travis-ci.org/vaadin/vaadin-grid) | ![Polymer 2 supported](https://img.shields.io/badge/Polymer2-supported-blue.svg) |
| [vaadin-icons](https://github.com/vaadin/vaadin-icons) | ![Bower version](https://badge.fury.io/bo/vaadin-icons.svg) | [![npm version](https://badge.fury.io/js/vaadin-icons.svg)](https://www.npmjs.com/package/vaadin-icons) | [![Build status](https://travis-ci.org/vaadin/vaadin-icons.svg?branch=master)](https://travis-ci.org/vaadin/vaadin-icons) | ![Polymer 2 supported](https://img.shields.io/badge/Polymer2-supported-blue.svg) |
| [vaadin-radio-button](https://github.com/vaadin/vaadin-radio-button) | ![Bower version](https://badge.fury.io/bo/vaadin-radio-button.svg) | [![npm version](https://badge.fury.io/js/vaadin-radio-button.svg)](https://www.npmjs.com/package/vaadin-radio-button) | [![Build status](https://travis-ci.org/vaadin/vaadin-radio-button.svg?branch=master)](https://travis-ci.org/vaadin/vaadin-radio-button) | ![Polymer 2 supported](https://img.shields.io/badge/Polymer2-supported-blue.svg) |
| [vaadin-split-layout](https://github.com/vaadin/vaadin-split-layout) | ![Bower version](https://badge.fury.io/bo/vaadin-split-layout.svg) | [![npm version](https://badge.fury.io/js/vaadin-split-layout.svg)](https://www.npmjs.com/package/vaadin-split-layout) | [![Build status](https://travis-ci.org/vaadin/vaadin-split-layout.svg?branch=master)](https://travis-ci.org/vaadin/vaadin-split-layout) | ![Polymer 2 supported](https://img.shields.io/badge/Polymer2-supported-blue.svg) |
| [vaadin-text-field](https://github.com/vaadin/vaadin-text-field) | ![Bower version](https://badge.fury.io/bo/vaadin-text-field.svg) | [![npm version](https://badge.fury.io/js/vaadin-text-field.svg)](https://www.npmjs.com/package/vaadin-text-field) | [![Build Status](https://travis-ci.org/vaadin/vaadin-text-field.svg?branch=master)](https://travis-ci.org/vaadin/vaadin-text-field) | ![Polymer 2 supported](https://img.shields.io/badge/Polymer2-supported-blue.svg) |
| [vaadin-upload](https://github.com/vaadin/vaadin-upload) | ![Bower version](https://badge.fury.io/bo/vaadin-upload.svg) | [![npm version](https://badge.fury.io/js/vaadin-upload.svg)](https://www.npmjs.com/package/vaadin-upload) | [![Build Status](https://travis-ci.org/vaadin/vaadin-upload.svg?branch=master)](https://travis-ci.org/vaadin/vaadin-upload) | ![Polymer 2 supported](https://img.shields.io/badge/Polymer2-supported-blue.svg) |

Vaadin Core Elements is a bundle that contains all the free elements, licensed under the Apache License 2.0. In addition, we have commercially licensed elements, such as [Vaadin Charts](https://github.com/vaadin/vaadin-charts).

## Learn more

See the list of elements, demos and documentation, instructions how to get started, video tutorials, application demos and more by visiting:

### [vaadin.com/elements ›](https://vaadin.com/elements)

---

## Roadmap

See https://vaadin.com/roadmap for a high level roadmap that is updated once a week.

## Contributing

We would absolutely love to get the community involved, and we welcome any form of contributions – comments and questions on different communication channels, issues and pull request in the repositories, and anything that you build and share using our elements.

### Get in touch with the team

The chat and the forum category are dedicated channels for this project, while the Twitter, Facebook and G+ pages are common for all Vaadin related discussion (including the Java framework).

- [Chat](https://gitter.im/vaadin/vaadin-core-elements)
- [Forum](https://vaadin.com/forum/#!/category/9848927)
- [Twitter](https://twitter.com/vaadin)
- [Facebook](https://www.facebook.com/vaadin/)
- [G+](https://plus.google.com/communities/108116678608923665301)

### Some ways to help:

- **Test the elements and provide feedback**: We would love to hear your feedback on anything related to the elements, like features, API and design. The best way to start is by [trying them out](https://vaadin.com/docs/-/part/elements/elements-getting-started.html). And to get a quick response, either drop a question/comment on the chat or open an issue in GitHub.
- **Report bugs**: File issues for the elements in their respective GitHub projects. You can find links to them from https://vaadin.com/elements
- **Send pull requests**: If you want to contribute code, check out the development instructions below.

We encourage you to read the [contribution instructions by GitHub](https://guides.github.com/activities/contributing-to-open-source/#contributing) also.

## Development

If you want to develop the elements yourself see the [development instructions](DEVELOPMENT.md) that apply to all Vaadin elements.

## License

Apache License 2.0
ESTS ON CACHE BOOL "Enable tests") else() set(BACKWARD_TESTS OFF CACHE BOOL "Enable tests") endif() ############################################################################### # CONFIGS ############################################################################### include(FindPackageHandleStandardArgs) if (STACK_WALKING_LIBUNWIND) # libunwind works on the macOS without having to add special include # paths or libraries if (NOT APPLE) find_path(LIBUNWIND_INCLUDE_DIR NAMES "libunwind.h") find_library(LIBUNWIND_LIBRARY unwind) if (LIBUNWIND_LIBRARY) include(CheckSymbolExists) check_symbol_exists(UNW_INIT_SIGNAL_FRAME libunwind.h HAVE_UNW_INIT_SIGNAL_FRAME) if (NOT HAVE_UNW_INIT_SIGNAL_FRAME) message(STATUS "libunwind does not support unwinding from signal handler frames") endif() endif() set(LIBUNWIND_INCLUDE_DIRS ${LIBUNWIND_INCLUDE_DIR}) set(LIBDWARF_LIBRARIES ${LIBUNWIND_LIBRARY}) find_package_handle_standard_args(libunwind DEFAULT_MSG LIBUNWIND_LIBRARY LIBUNWIND_INCLUDE_DIR) mark_as_advanced(LIBUNWIND_INCLUDE_DIR LIBUNWIND_LIBRARY) list(APPEND _BACKWARD_LIBRARIES ${LIBUNWIND_LIBRARY}) endif() # Disable other unwinders if libunwind is found set(STACK_WALKING_UNWIND FALSE) set(STACK_WALKING_BACKTRACE FALSE) endif() if (${STACK_DETAILS_AUTO_DETECT}) if(NOT CMAKE_VERSION VERSION_LESS 3.17) set(_name_mismatched_arg NAME_MISMATCHED) endif() # find libdw find_path(LIBDW_INCLUDE_DIR NAMES "elfutils/libdw.h" "elfutils/libdwfl.h") find_library(LIBDW_LIBRARY dw) set(LIBDW_INCLUDE_DIRS ${LIBDW_INCLUDE_DIR} ) set(LIBDW_LIBRARIES ${LIBDW_LIBRARY} ) find_package_handle_standard_args(libdw ${_name_mismatched_arg} REQUIRED_VARS LIBDW_LIBRARY LIBDW_INCLUDE_DIR) mark_as_advanced(LIBDW_INCLUDE_DIR LIBDW_LIBRARY) # find libbfd find_path(LIBBFD_INCLUDE_DIR NAMES "bfd.h") find_path(LIBDL_INCLUDE_DIR NAMES "dlfcn.h") find_library(LIBBFD_LIBRARY bfd) find_library(LIBDL_LIBRARY dl) set(LIBBFD_INCLUDE_DIRS ${LIBBFD_INCLUDE_DIR} ${LIBDL_INCLUDE_DIR}) set(LIBBFD_LIBRARIES ${LIBBFD_LIBRARY} ${LIBDL_LIBRARY}) find_package_handle_standard_args(libbfd ${_name_mismatched_arg} REQUIRED_VARS LIBBFD_LIBRARY LIBBFD_INCLUDE_DIR LIBDL_LIBRARY LIBDL_INCLUDE_DIR) mark_as_advanced(LIBBFD_INCLUDE_DIR LIBBFD_LIBRARY LIBDL_INCLUDE_DIR LIBDL_LIBRARY) # find libdwarf find_path(LIBDWARF_INCLUDE_DIR NAMES "libdwarf.h" PATH_SUFFIXES libdwarf) find_path(LIBELF_INCLUDE_DIR NAMES "libelf.h") find_path(LIBDL_INCLUDE_DIR NAMES "dlfcn.h") find_library(LIBDWARF_LIBRARY dwarf) find_library(LIBELF_LIBRARY elf) find_library(LIBDL_LIBRARY dl) set(LIBDWARF_INCLUDE_DIRS ${LIBDWARF_INCLUDE_DIR} ${LIBELF_INCLUDE_DIR} ${LIBDL_INCLUDE_DIR}) set(LIBDWARF_LIBRARIES ${LIBDWARF_LIBRARY} ${LIBELF_LIBRARY} ${LIBDL_LIBRARY}) find_package_handle_standard_args(libdwarf ${_name_mismatched_arg} REQUIRED_VARS LIBDWARF_LIBRARY LIBDWARF_INCLUDE_DIR LIBELF_LIBRARY LIBELF_INCLUDE_DIR LIBDL_LIBRARY LIBDL_INCLUDE_DIR) mark_as_advanced(LIBDWARF_INCLUDE_DIR LIBDWARF_LIBRARY LIBELF_INCLUDE_DIR LIBELF_LIBRARY LIBDL_INCLUDE_DIR LIBDL_LIBRARY) if (LIBDW_FOUND) LIST(APPEND _BACKWARD_INCLUDE_DIRS ${LIBDW_INCLUDE_DIRS}) LIST(APPEND _BACKWARD_LIBRARIES ${LIBDW_LIBRARIES}) set(STACK_DETAILS_DW TRUE) set(STACK_DETAILS_BFD FALSE) set(STACK_DETAILS_DWARF FALSE) set(STACK_DETAILS_BACKTRACE_SYMBOL FALSE) elseif(LIBBFD_FOUND) LIST(APPEND _BACKWARD_INCLUDE_DIRS ${LIBBFD_INCLUDE_DIRS}) LIST(APPEND _BACKWARD_LIBRARIES ${LIBBFD_LIBRARIES}) # If we attempt to link against static bfd, make sure to link its dependencies, too get_filename_component(bfd_lib_ext "${LIBBFD_LIBRARY}" EXT) if (bfd_lib_ext STREQUAL "${CMAKE_STATIC_LIBRARY_SUFFIX}") list(APPEND _BACKWARD_LIBRARIES iberty z) endif() set(STACK_DETAILS_DW FALSE) set(STACK_DETAILS_BFD TRUE) set(STACK_DETAILS_DWARF FALSE) set(STACK_DETAILS_BACKTRACE_SYMBOL FALSE) elseif(LIBDWARF_FOUND) LIST(APPEND _BACKWARD_INCLUDE_DIRS ${LIBDWARF_INCLUDE_DIRS}) LIST(APPEND _BACKWARD_LIBRARIES ${LIBDWARF_LIBRARIES}) set(STACK_DETAILS_DW FALSE) set(STACK_DETAILS_BFD FALSE) set(STACK_DETAILS_DWARF TRUE) set(STACK_DETAILS_BACKTRACE_SYMBOL FALSE) else() set(STACK_DETAILS_DW FALSE) set(STACK_DETAILS_BFD FALSE) set(STACK_DETAILS_DWARF FALSE) set(STACK_DETAILS_BACKTRACE_SYMBOL TRUE) endif() else() if (STACK_DETAILS_DW) LIST(APPEND _BACKWARD_LIBRARIES dw) endif() if (STACK_DETAILS_BFD) LIST(APPEND _BACKWARD_LIBRARIES bfd dl) endif() if (STACK_DETAILS_DWARF) LIST(APPEND _BACKWARD_LIBRARIES dwarf elf) endif() endif() macro(map_definitions var_prefix define_prefix) foreach(def ${ARGN}) if (${${var_prefix}${def}}) LIST(APPEND _BACKWARD_DEFINITIONS "${define_prefix}${def}=1") else() LIST(APPEND _BACKWARD_DEFINITIONS "${define_prefix}${def}=0") endif() endforeach() endmacro() if (NOT _BACKWARD_DEFINITIONS) map_definitions("STACK_WALKING_" "BACKWARD_HAS_" UNWIND LIBUNWIND BACKTRACE) map_definitions("STACK_DETAILS_" "BACKWARD_HAS_" BACKTRACE_SYMBOL DW BFD DWARF) endif() if(WIN32) list(APPEND _BACKWARD_LIBRARIES dbghelp psapi) if(MINGW) set(MINGW_MSVCR_LIBRARY "msvcr90$<$<CONFIG:DEBUG>:d>" CACHE STRING "Mingw MSVC runtime import library") list(APPEND _BACKWARD_LIBRARIES ${MINGW_MSVCR_LIBRARY}) endif() endif() set(BACKWARD_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}") set(BACKWARD_HAS_EXTERNAL_LIBRARIES FALSE) set(FIND_PACKAGE_REQUIRED_VARS BACKWARD_INCLUDE_DIR) if(DEFINED _BACKWARD_LIBRARIES) set(BACKWARD_HAS_EXTERNAL_LIBRARIES TRUE) list(APPEND FIND_PACKAGE_REQUIRED_VARS _BACKWARD_LIBRARIES) endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Backward REQUIRED_VARS ${FIND_PACKAGE_REQUIRED_VARS} ) list(APPEND _BACKWARD_INCLUDE_DIRS ${BACKWARD_INCLUDE_DIR}) macro(add_backward target) target_include_directories(${target} PRIVATE ${BACKWARD_INCLUDE_DIRS}) set_property(TARGET ${target} APPEND PROPERTY COMPILE_DEFINITIONS ${BACKWARD_DEFINITIONS}) set_property(TARGET ${target} APPEND PROPERTY LINK_LIBRARIES ${BACKWARD_LIBRARIES}) endmacro() set(BACKWARD_INCLUDE_DIRS ${_BACKWARD_INCLUDE_DIRS} CACHE INTERNAL "_BACKWARD_INCLUDE_DIRS") set(BACKWARD_DEFINITIONS ${_BACKWARD_DEFINITIONS} CACHE INTERNAL "BACKWARD_DEFINITIONS") set(BACKWARD_LIBRARIES ${_BACKWARD_LIBRARIES} CACHE INTERNAL "BACKWARD_LIBRARIES") mark_as_advanced(BACKWARD_INCLUDE_DIRS BACKWARD_DEFINITIONS BACKWARD_LIBRARIES) # Expand each definition in BACKWARD_DEFINITIONS to its own cmake var and export # to outer scope foreach(var ${BACKWARD_DEFINITIONS}) string(REPLACE "=" ";" var_as_list ${var}) list(GET var_as_list 0 var_name) list(GET var_as_list 1 var_value) set(${var_name} ${var_value}) mark_as_advanced(${var_name}) endforeach() if (NOT TARGET Backward::Backward) add_library(Backward::Backward INTERFACE IMPORTED) set_target_properties(Backward::Backward PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${BACKWARD_INCLUDE_DIRS}" INTERFACE_COMPILE_DEFINITIONS "${BACKWARD_DEFINITIONS}" ) if(BACKWARD_HAS_EXTERNAL_LIBRARIES) set_target_properties(Backward::Backward PROPERTIES INTERFACE_LINK_LIBRARIES "${BACKWARD_LIBRARIES}" ) endif() endif()