All Projects → sharma-subendra-kr → LimberGridView

sharma-subendra-kr / LimberGridView

Licence: other
LimberGridView, a powerful JavaScript Library using Computational Geometry to render movable, dynamically resizable, and auto-arranging grids. Written in vanilla JavaScript, it can be plugged into most frameworks, plus it has a plugin for React applications. It gives users the most optimal arrangements using its highly efficient and fine-tuned a…

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects
shell
77523 projects
SCSS
7915 projects

Projects that are alternatives of or similar to LimberGridView

react-native-gridview
A React Native component that renders a grid of items. It uses ListView under the hood.
Stars: ✭ 16 (-68.63%)
Mutual labels:  grid, gridview
Flexible Grid
Flexible grid layouts to get you familiar with building within the flexible grid system.(HTML, CSS, SASS, SCSS)
Stars: ✭ 154 (+201.96%)
Mutual labels:  grid, flexible
React Native Super Grid
Responsive Grid View for React Native
Stars: ✭ 971 (+1803.92%)
Mutual labels:  grid, gridview
flutter examples
Random flutter examples
Stars: ✭ 18 (-64.71%)
Mutual labels:  grid, gridview
cgridlistctrlex
MFC Grid control using a custom draw CListCtrl with subitem editing and formatting
Stars: ✭ 80 (+56.86%)
Mutual labels:  grid
vue-gridmultiselect
Simple multi-select component with items displayed in a table like UI
Stars: ✭ 41 (-19.61%)
Mutual labels:  grid
react-keyview
React components to display the list, table, and grid, without scrolling, use the keyboard keys to navigate through the data
Stars: ✭ 16 (-68.63%)
Mutual labels:  grid
baseline
New method for creating leading on the web
Stars: ✭ 31 (-39.22%)
Mutual labels:  grid
BlazorGrid
A simple, light weight data grid component for Blazor, focused on displaying remote data. Supports sorting and row highlighting, dynamic column changes and custom cell markup.
Stars: ✭ 61 (+19.61%)
Mutual labels:  grid
atomic-bulldog-grid
🏢 CSS (SCSS) Grid based on CSS grid layout with @supports fallback to flexbox
Stars: ✭ 94 (+84.31%)
Mutual labels:  grid
orthogons
Experimenting with special ratios to guide grids for composition
Stars: ✭ 16 (-68.63%)
Mutual labels:  grid
dynamic-table
Dynamic Table jQuery Plug-in - A table that can be sorted, filtered and edited, similar to common spreadsheet application.
Stars: ✭ 26 (-49.02%)
Mutual labels:  grid
grid-layout
grid-layout is a layout engine which implements grid, can use in canvas/node-canvas
Stars: ✭ 43 (-15.69%)
Mutual labels:  grid
MSG-Book
📖 现代统计图形(已由人民邮电出版社出版) Modern Statistical Graphics
Stars: ✭ 95 (+86.27%)
Mutual labels:  grid
gproshan
geometry processing and shape analysis framework
Stars: ✭ 48 (-5.88%)
Mutual labels:  computational-geometry
polytope
Geometric operations on polytopes of any dimension
Stars: ✭ 51 (+0%)
Mutual labels:  computational-geometry
visual-portfolio
Portfolio layouts visual editor with Gutenberg support
Stars: ✭ 31 (-39.22%)
Mutual labels:  grid
ameshref
Efficient Matlab Implementation of Adaptive Mesh Refinement in 2D
Stars: ✭ 28 (-45.1%)
Mutual labels:  grid
VueFlex
A flexbox grid system.
Stars: ✭ 13 (-74.51%)
Mutual labels:  grid
polyclip
R package polyclip: a port of the Clipper library for polygon geometry
Stars: ✭ 18 (-64.71%)
Mutual labels:  computational-geometry

LimberGridView

Try it out!

View this example code plugged in using React

For API reference and documentation, please refer to this page.

Installation

npm install @sharma-subendra-kr/limber-grid-view

Instantiate

// Import CSS as per your directory structure
import "../node_modules/@sharma-subendra-kr/limber-grid-view/dist/index.css";

import LimberGridView from "@sharma-subendra-kr/limber-grid-view";

/*
	el is an element with fixed height and width where LimberGridView is rendered
	
	positionData is an array with position data in format 
	[{x1: number, x2: number, y1: number, y2: number}, ....]
	OR
	[{x: number, y: number, width: number, height: number}, ....]
	OR
	[{}, {}, {}, ....] // here squares are rendered
	
	Please read the wiki for details about all the callbacks
*/
const limberGridView = new LimberGridView({
	el: el.current,
	itemMouseDownMoveCheck: itemMouseDownMoveCheck,
	callbacks: {
		renderContent: renderContent,
		renderComplete: renderComplete,
		resizeComplete: resizeComplete,
		moveComplete: moveComplete,
		addComplete: addComplete,
		removeComplete: removeComplete,
		cutSpaceComplete: cutSpaceComplete,
		renderPlugin: renderPlugin,
		removePlugin: removePlugin,
		getArrangeTime: getArrangeTime,
		getLogMessage: getLogMessage,
	},
	publicConstants: {
		showBottomLeftResizeGuide: true,
		autoScrollForMouse: true,
		deskInteractionMode: deskInteractionMode,
		latchMovedItem: latch,
	},
	positionData: positionData,
});

Current version LimberGridView 1.0.0-beta.11.

LimberGridView, a powerful JavaScript Library using Computational Geometry to render movable, dynamically resizable, and auto-arranging grids. Written in vanilla JavaScript, it can be plugged into most frameworks, plus it has a plugin for React applications. It gives users the most optimal arrangements using its highly efficient and fine-tuned algorithm.

This is a beta release. This version might be unstable.

Although many issues were identified and resolved in this current release, you might sometimes encounter unusual behavior. Some of them are:

  • Item disappearing when right-clicked: This is a known issue, which happens very rarely. I am working on recreating it and fixing it.
  • Item overlapping: It has been worked on and fixed. I am further trying to recreate some instances, but so far, I haven't been successful, which is a positive sign.
  • Items not affected by a move or resize getting rearranged: Most instances were identified and resolved. Because of how the entire thing works, we can still find some instances where items that are not affected are getting rearranged. It will be constantly worked on and improved.
  • Scrolling: There is a bug that breaks the scrolling behavior in ios devices while in mobile view. The fix is planned for the upcoming release.
  • Scrolling: While on interactive view. If there are large, completely unused spaces in-between items, then the scroll freezes.

Due to substantial changes to the way LimberGridView works in version 1.0.0-beta.3, all previous versions are abandoned, removed from tags, their dependencies made private so that no one can use them.

Improvements in the arrange algorithm are made in patches. I try to make sure it doesn't affect any APIs.

Features:

  • Built-in Intersection Observed
  • Built-in Resize Observer
  • Undo-Redo
  • Touch support for tablets
  • Mobile view
  • Plugins for React. LimberGridView has "renderPlugin" and "removePlugin", these are callbacks, that pass the element which is the item itself. ReactDOM.render and ReactDOM.unmountComponentAtNode should be called in "renderPlugin" and "removePlugin" respectively.

LimberGridView is free software (Free as in freedom, not the price). If you like to use this library on non-free software, you can get a proprietary license. To get a proprietary license, pre-order now.

To get tips on how to use LimberGridView, head over to this link.

To see how LimberGridView works, head over to this link.

Contact

If you encounter any problems, you can contact me by emailing me to the email address mentioned on any file on the license header.

Contributing

Due to problems that may arise while licensing the commercial license, contributions are not welcome.

License

Copyright © 2018-2021, Subendra Kumar Sharma. All rights reserved.

This file is part of LimberGridView.

LimberGridView is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

LimberGridView is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LimberGridView. If not, see https://www.gnu.org/licenses/.

Written by Subendra Kumar Sharma.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].