Code Monkey home page Code Monkey logo

lightning-data-grid's Issues

Config option for Tree

Right now even if a grid has no hierarchy, the grid will run its algos to determine the children structure. Should provide a config to avoid that and have a perf improvement when using the grid for non-tree situations.

Persisting Edits

I suppose this is a flavor of an Enhancement Request, but I'm curious if you had thoughts around how a "Save" button would work here. My first thought is to loop through the rowDatas and look for dirty, but the way it's stored key'd by columnName, it seems like a lot of effort to loop through every column name on every row to check for a dirty flag. I haven't done any performance tests with that yet, so it's entirely possible that it's not a factor; even at large data volumes, but my instinct is that it would be slow.

I'm going to try a few things along that route, but I thought I'd float this for discussion.

Another thought involves using some sort of dataProviderComponent that is wired into each cell (row maybe?), and has direct access to shared dataStore (via the window? --- similar to your redux store component setup). I suppose it would also be possible to leave the store at the table level and communicate changes by events, but my experience in the framework gives me a bad feeling about that. (Speed wise, and falling into the nightmare of keeping attributes/data in sync between multiple components.)

Search

A configurable global search in the toolbar.

AuraDoc

Make an auradoc, and get some examples running to use with the new Component Reference Suite.

Failures

Deployment Started
Status: Queued
Status: InProgress
Status: Completed
Deployment Complete
Failures:
package.xml(jasmineReporter):An object 'jasmineReporter' of type StaticResource was named in package.xml, but was not found in zipped directory
package.xml(jasmine):An object 'jasmine' of type StaticResource was named in package.xml, but was not found in zipped directory
package.xml(exampleData2):An object 'exampleData2' of type StaticResource was named in package.xml, but was not found in zipped directory
package.xml(Tests):An object 'Tests' of type AuraDefinitionBundle was named in package.xml, but was not found in zipped directory
package.xml(testutil):An object 'testutil' of type StaticResource was named in package.xml, but was not found in zipped directory
package.xml(lodash):An object 'lodash' of type StaticResource was named in package.xml, but was not found in zipped directory
package.xml(lightningDataGridTests):An object 'lightningDataGridTests' of type StaticResource was named in package.xml, but was not found in zipped directory
package.xml(jasmineboot):An object 'jasmineboot' of type StaticResource was named in package.xml, but was not found in zipped directory
package.xml(BaseTestRunnerCmp):An object 'BaseTestRunnerCmp' of type AuraDefinitionBundle was named in package.xml, but was not found in zipped directory

Draggable Columns

A configuration option should enable users to drag and resort columns.

Child Row Templates

Currently, child rows render with the same columns as the rest of the grid, which works great for homogeneous hierarchies (ex. Parent Account and Children Accounts).

Need the ability to render a different set of columns for children rows so heterogeneous hierarchies can be represented (ex. Account and Contact).

Row Selection

As a user I want to select a row (or multiple rows), and then hit a button and have some sort of action performed on the row selected.

This should be controlled as a config value on the grid that determines whether the grid is single row selectable, multi-row selectable, or not selectable at all.

Firefox support

Degraded functionality in Firefox:

  1. Virtual scrolling doesn't work.
  2. When attempting to mouse scroll, the hover events are still being disabled, so this results in all clickable elements on the grid being disabled.

Eliminate Aura:If in Cell

Eliminate the aura:if used in the cell component. Over a large set of data this will have a big performance impact.

Scrolling Improvements

Problems with the current infinite scrolling implementation:

  1. Performance is okay, but not great. I want it to be great. Taking notes from React-Virtualized, as that has nice set of optimizations that should theoretically carry over.

  2. Using mousewheel event works nice on desktop, but is obviously right out on mobile/Salesforce1. Could bind on mousetouch as well, but is exhibits real stutter without doing some improvements. Right now I am using the Load More button, but that is broken with the latest changes.

Chevron reverts to unexpanded when scrolling

I caught this is in sanity testing after the re-work for sfdx. We are keeping track of the state of the hierarchy in the hierarchy attribute now so that child rows get proper virtualization. The expanded state of the child row is properly being kept track of when a row instantiates, but the chevron isn't respecting this.

Weird lightning:buttonIcon issue

New issue that has cropped up:

If you toggle a child row, then scroll down and scroll back up, the grid is maintaining the state of the hierarchy as expected. However, the lightning:buttonIcon for chevron right and chevron down get rendered rotated 90 degrees.

This is just cropping up in Winter '18.

Pagination

As a implementer of this grid, I would like to decide whether I have virtual scrolling or pagination. There are use cases where pagination is a better UX.

We already have rowsDisplayed and the dataset, so should be relatively easy to extrapolate the number of pages and set up pagination.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.