TASKS.md

April 15, 2021 ยท View on GitHub

This is just a long list of elements that I eventually hope to add to the suite. It's more for my own use than anything, but it gives you an idea of where I want to get to. There's a lot of dependencies between the different elements and the order doesn't reflect them, so I won't be implementing them in any particular order. The 'complexity rating' is very rough, especially the 'high' complexity elements, which range from normal complex to OMG complex (data table).

Complete elements are marked with an 'X' while those that are in progress are marked with a '-'.

UI ELEMENTS

DoneTestsComplexityNameNotes
XXHobap-stylesIncludes theming, typography and elevation.
XXHobap-selectorUsed by things that require iteme selection - tabs, pages, lists, menus, etc.
XXSobap-selector-containerSynchronizes selection lists, such as tabs to pages.
XXHobap-attached-elementBehaviour that docks an element to another element - uses by badges, tooltips, etc.
XXLobap-pagesManages a list of views with only one being displayed at a time.
XXMobap-iconsManages SVG icon sets and includes all the standard material Design icons.
XXLobap-iconDisplays a single SVG icons from an icon set managed by obap-icons.
XXLobap-materialA Material Design container that looks like a lifted piece of paper.
XXMobap-tabsA Material Design tab set.
XXLobap-badgeA small round indicator that attaches to an element and displays a number or icon.
XXLobap-tooltipA Material Design tooltip that is displayed on mouse hover.
XXMobap-calloutA speech bubble type element that can either behave like a tooltip or be fixed inline.
XXMobap-rippleA Material Design ripple effect that is used to indicate selection (especially by buttons).
XXHobap-buttonA Material Design Button. Supports regular, raised, icon and fab styles, with toggle support.
XXLobap-checkA Material Design checkbox.
XXMobap-radioA Material Design radio button and group.
XXLobap-chipA Material Design chip.
XXMobap-cardA Material Design card.
XXMobap-scroll-containerA container with scroll buttons that allows the content to scroll.
XMobap-spinnerAn element that allows you to select from a list of numbers, strings or custom objects.
XXMobap-switchA Material Design switch element.
XXLobap-top-app-barAn application top toolbar element.
XXMobap-navigation-railA Material Design Navigation Rail element.
XXMobap-collapse-containerA collapsible block of content (horizontal and vertical variants).
XXMobap-expandable-cardA Material Design card that expands to display additional content.
XXMobap-accordionAn expandable card list.
XXLobap-pill-navigatorA navigation element that uses small circles as navigation items (like on a carousel).
XXLobap-ratingA star rating element.
XXHobap-dialogA Material Design dialog that can be modal or non-modal.
XXMobap-linear-progressA linear progress bar element.
XXMobap-circular-progressA circular progress element.
XXMobap-activity-indicatorA circular, linear or typing busy/activity indicator.
XXLobap-bannerA Material Design banner/jumbotron element.
XXHobap-horizontal-stepperA horizontal Material Design Stepper (wizard). Step labels are at the top.
XXMobap-side-stepperA Material Design Stepper (wizard) where the step labels are on the left.
XXMobap-compact-stepperA compact Material Design Stepper (wizard) where the only the active label is displayed.
Hobap-vertical-stepperA vertical Material Design Stepper (wizard). Step labels are inline.
XXHobap-sliderSliders allow users to make selections from a range of values.
XXHobap-treeviewA Material Design heirarchical treeview.
XMobap-splitterA splitter element that resizes its adjacent siblings relative to each other.
XLobap-splitter-containerA horizontal or vertical container with a splitter that allows content areas to be resized.
XXLobap-status-labelA simple status label.
XMobap-snackbarA popup toast notification element.
XMobap-message-dialogA Material Design dialog for displaying simple messages and options.
Mobap-time-pickerA Material Design time picker (not the mobile type).
Hobap-date-pickerA Material Design date picker (not the mobile type).
Hobap-color-pickerA Material Design color picker.
Mobap-date-time-pickerA combined date and time picker (may just add an optional time picker to obap-date-picker).
-Hobap-textfieldA Material Design text field with a floating label.
Hobap-textareaA Material Design text area with a floating label.
Mobap-section-listA scrollable horizontal list of name/value items.
Mobap-navigation-drawerA slide out drawer that can be anchored to the top, bottom or side.
Mobap-listA scrollable list of items that can optionally be selectable.
Mobap-list-itemA Material Design list item.
Lobap-imageAn image wrapper element.
Mobap-carouselA content carousel that supports overlays.
Hobap-drag-drop-listA list that allows items to be reordered and moved between lists.
Mobap-linked-selectorAllows multiple selectors to be linked and share items.
Lobap-skeletonDisplay placeholder for content while the data loads.
XMobap-input-outlineAn outline element to create a notch that is used in outlined textfields and select elements.
-Mobap-toolbarA traditional style toolbar.
Mobap-statusbarA traditional style statusbar.
-Mobap-navigation-barA Material Design navigation bar for view and sub-view based applications.

Count: 44/63

LAYOUT ELEMENTS

These are end-user elements (won't be used by framework elements), possibly for use with a wireframe designer, and wrap simple container elements that use flexbox and grid layout. They'll be grouped under obap-layout. Not sure if a grid layout is required.

DoneTestsComplexityNameNotes
-Lobap-row-layoutA single horizontal row layout (can wrap).
-Lobap-column-layoutA single vertical column layout (can wrap).
-Lobap-position-layoutPositions a single child in a particular position.
Mobap-grid-layoutA grid (multiple column/row) layout.

Count: 0/4

DoneTestsComplexityNameNotes
-Hobap-popup-menuA popup menu item.
-Hobap-menuA top level application menu bar element.
Hobap-overflow-containerA list element that displays overflow elements in a popup overflow menu.
Hobap-radial-menuA circular or speed-dial type menu.

Count: 0/4

Lots of things could be in a dropdown container. Should there just be a generic one or multiple? They're separate from the other UI elements because I'm not too sure about them.

DoneTestsComplexityNameNotes
XXHobap-select-containerA generic popup selection container.
XXMobap-selectA single/multi option dropdown selector.
Lobap-date-select
Lobap-time-select
Lobap-color-select

Count: 2/5

DATA TABLE ELEMENTS

DoneTestsComplexityNameNotes
XXHobap-data-table-layoutA helper container element to simplify creating complex data table elements.
XXMobap-data-pagerA page switcher element for tables with a lot of data (required by obap-data-table). Needs obap-select.
-Hobap-data-tableA complex Material Design data table suitable for large data sets. Needs obap-data-pager.

Count: 2/3

SPARKLINE CHART ELEMENTS

Sparklines are very small charts, drawn without adornments, interactivity or other chart-specific elements.

DoneTestsComplexityNameNotes
XXHobap-bar-sparklineA simple bar chart element.
XXHobap-bullet-sparklineA simple horizontal bullet chart element.
XXHobap-line-sparklineA simple line chart element that supports lines, markers (scatter) and area styles.
XXHobap-pie-sparklineA simple pie or donut chart.
XXHobap-winloss-sparklineA simple win-loss chart.
XXHobap-percentage-sparklineA simple percentage bar chart.

Count: 6/6

CHART ELEMENTS

The obap-xxx-chart elements are the more complex charts.

DoneTestsComplexityNameNotes
Hobap-bar-chartA bar chart element.
Hobap-line-chartA line chart element.
Hobap-area-chartA area chart element.
Hobap-donut-chartA donut chart element.
Hobap-pie-chartA pie chart element.
Hobap-polar-chartA polar chart element.
Hobap-radar-chartA radar chart element.
Hobap-bubble-chartA bubble chart element.
Hobap-stock-chartA stock chart element.
Hobap-scatter-chartA scatter chart element.
Hobap-bullet-chartA bullet chart element.
Hobap-funnel-chartA funnel chart element.

Count: 0/12

PORTALS

This allows DOM content to be projected to different places in a page, while keeping the data context intact.

DoneTestsComplexityNameNotes
Hobap-portalA source and destination element for projecting DOM content.

Based on this article.

Count: 0/1

APPLICATION ELEMENTS

These are high level elements used to construct applications.

DoneTestsComplexityNameNotes
XMobap-routerA simple view router for obap-application.
XMobap-translationsA translation module for obap-application.
XMobap-local-storageA helper library for local storage.
XMobap-fetchA helper library to simplify the fetch API.
-Hobap-applicationA view based desktop application framework.
-Hobap-composite-applicationAn iFrame view based desktop application framework.
Hobap-mobile-applicationA view based mobile application framework.
-Hobap-messagingA messaging system for obap-application views.
Hobap-application-stateA Flux-like state manager.
Hobap-identityHandles a user OpenID Connect account, login, etc.
Hobap-access-policyHandles application feature access for users.

There is no "policy" standard, so obap-access-policy will define a standard based on the OBAP Policy Server. The obap-identity modules will support the OBAP Identity Server (OIDC) and allow providers (obap-identity-provider) to be written for other identity provider types.

obap-application development will be ongoing, with new features being added as requirements are collected and other elements completed.

Count: 4/11

DEMO & DOCUMENTATION ELEMENTS

These are elements to make creating documented demos easily, kind of like the Polymer demo helper elements.

DoneTestsComplexityNameNotes
X-Mobap-markdown-viewerA markdown viewer, based on Marked.
XXMobap-demo-snippetA helper element that displays the source of a code snippet and its rendered demo.
Hobap-property-viewerA helper element that displays a custom elements properties, etc.
Hobap-property-editorA helper element that displays and allowes editing of a custom elements properties, etc.
Hobap-interactive-demo-snippetA helper element that displays the source of a code snippet and its rendered demo, and allows properties to be changed.

Dependencies

Count: 2/5

NICE TO HAVE

These are unlikely to happen any time soon, but would be really nice to have.

DoneTestsComplexityNameNotes
Hobap-schedulerA calender scheduler like the Outlook calendar.
Hobap-task-boardA kanban/trello board and tasks.
Hobap-gantt-chartA gantt chart element.
Hobap-dashboardA drag & drop dashbard control for cards.
Hobap-diagramA diagram editor, like Lucid.
Hobap-workflowA workflow builder.
Hobap-markdown-editorA markdown editor, based on ProseMirror.

Count: 0/7