diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index a7063434f..d1332c7d1 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -39,10 +39,10 @@ jobs: run: | grunt webpack - tsc --stripInternal + tsc --project tsconfig.docs.json --stripInternal - name: Generate all documentation - run: yarn doc:all + run: yarn doc - name: Prepare deployment structure run: | diff --git a/.github/workflows/sync-docs.yml b/.github/workflows/sync-docs.yml index 31fe83318..99bef399c 100644 --- a/.github/workflows/sync-docs.yml +++ b/.github/workflows/sync-docs.yml @@ -12,7 +12,7 @@ on: jobs: sync-docs: runs-on: ubuntu-latest - if: github.repository == 'gridstack/gridstack.js' + if: github.repository == 'adumesny/gridstack.js' steps: - name: Checkout master branch @@ -53,19 +53,17 @@ jobs: run: | echo "Syncing main library documentation..." - # Remove existing docs directory if it exists - if [ -d "docs/html" ]; then - rm -rf docs/html + # Remove existing doc/html directory if it exists + if [ -d "doc/html" ]; then + rm -rf doc/html fi # Extract docs from master branch using git archive - mkdir -p docs + mkdir -p doc git archive master doc/html | tar -xf - - mv doc/html docs/html - rm -rf doc # Add changes - git add docs/html + git add doc/html - name: Sync Angular documentation if: steps.check-docs.outputs.angular_docs == 'true' diff --git a/angular/doc/api/base-widget.md b/angular/doc/api/base-widget.md index 8a81d03a5..e71850e59 100644 --- a/angular/doc/api/base-widget.md +++ b/angular/doc/api/base-widget.md @@ -80,8 +80,8 @@ The default implementation automatically assigns input data to component propert ```typescript deserialize(w: NgGridStackWidget) { - super.deserialize(w); // Call parent for basic setup - + super.deserialize(w); // Call parent for basic setup + // Custom initialization logic if (w.input?.complexData) { this.processComplexData(w.input.complexData); diff --git a/angular/doc/api/gridstack.component.md b/angular/doc/api/gridstack.component.md index c642e0257..28263105b 100644 --- a/angular/doc/api/gridstack.component.md +++ b/angular/doc/api/gridstack.component.md @@ -127,7 +127,7 @@ this.gridComponent.grid.addWidget({x: 0, y: 0, w: 2, h: 1}); new GridstackComponent(elementRef): GridstackComponent; ``` -Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:252](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L252) +Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:253](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L253) ###### Parameters @@ -155,7 +155,7 @@ Register a list of Angular components for dynamic creation. | Parameter | Type | Description | | ------ | ------ | ------ | -| `typeList` | `Type`\<`Object`\>[] | Array of component types to register | +| `typeList` | `Type`\<`object`\>[] | Array of component types to register | ###### Returns @@ -184,7 +184,7 @@ Extract the selector string from an Angular component type. | Parameter | Type | Description | | ------ | ------ | ------ | -| `type` | `Type`\<`Object`\> | The component type to get selector from | +| `type` | `Type`\<`object`\> | The component type to get selector from | ###### Returns @@ -198,7 +198,7 @@ The component's selector string ngOnInit(): void; ``` -Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:266](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L266) +Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:267](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L267) A callback method that is invoked immediately after the default change detector has checked the directive's @@ -222,7 +222,7 @@ OnInit.ngOnInit ngAfterContentInit(): void; ``` -Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:276](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L276) +Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:277](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L277) wait until after all DOM is ready to init gridstack children (after angular ngFor and sub-components run first) @@ -242,7 +242,7 @@ AfterContentInit.ngAfterContentInit ngOnDestroy(): void; ``` -Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:284](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L284) +Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:285](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L285) A callback method that performs custom clean-up, invoked immediately before a directive, pipe, or service instance is destroyed. @@ -263,7 +263,7 @@ OnDestroy.ngOnDestroy updateAll(): void; ``` -Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:298](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L298) +Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:299](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L299) called when the TEMPLATE (not recommended) list of items changes - get a list of nodes and update the layout accordingly (which will take care of adding/removing items changed by Angular) @@ -278,7 +278,7 @@ update the layout accordingly (which will take care of adding/removing items cha checkEmpty(): void; ``` -Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:309](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L309) +Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:310](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L310) check if the grid is empty, if so show alternative content @@ -292,7 +292,7 @@ check if the grid is empty, if so show alternative content protected hookEvents(grid?): void; ``` -Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:315](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L315) +Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:316](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L316) get all known events as easy to use Outputs for convenience @@ -312,7 +312,7 @@ get all known events as easy to use Outputs for convenience protected unhookEvents(grid?): void; ``` -Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:342](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L342) +Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:343](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L343) ###### Parameters @@ -345,11 +345,11 @@ Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:342](https://gi | `resizeStopCB` | `public` | `EventEmitter`\<[`elementCB`](#elementcb)\> | `undefined` | Emitted when widget resize stops | [angular/projects/lib/src/lib/gridstack.component.ts:184](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L184) | | `ref` | `public` | \| `undefined` \| `ComponentRef`\<[`GridstackComponent`](#gridstackcomponent)\> | `undefined` | Component reference for dynamic component removal. Used internally when this component is created dynamically. | [angular/projects/lib/src/lib/gridstack.component.ts:207](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L207) | | `selectorToType` | `static` | [`SelectorToType`](#selectortotype) | `{}` | Mapping of component selectors to their types for dynamic creation. This enables dynamic component instantiation from string selectors. Angular doesn't provide public access to this mapping, so we maintain our own. **Example** `GridstackComponent.addComponentToSelectorType([MyWidgetComponent]);` | [angular/projects/lib/src/lib/gridstack.component.ts:220](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L220) | -| `_options?` | `protected` | `GridStackOptions` | `undefined` | - | [angular/projects/lib/src/lib/gridstack.component.ts:247](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L247) | -| `_grid?` | `protected` | `GridStack` | `undefined` | - | [angular/projects/lib/src/lib/gridstack.component.ts:248](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L248) | -| `_sub` | `protected` | `undefined` \| `Subscription` | `undefined` | - | [angular/projects/lib/src/lib/gridstack.component.ts:249](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L249) | -| `loaded?` | `protected` | `boolean` | `undefined` | - | [angular/projects/lib/src/lib/gridstack.component.ts:250](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L250) | -| `elementRef` | `readonly` | `ElementRef`\<[`GridCompHTMLElement`](#gridcomphtmlelement)\> | `undefined` | - | [angular/projects/lib/src/lib/gridstack.component.ts:252](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L252) | +| `_options?` | `protected` | `GridStackOptions` | `undefined` | - | [angular/projects/lib/src/lib/gridstack.component.ts:248](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L248) | +| `_grid?` | `protected` | `GridStack` | `undefined` | - | [angular/projects/lib/src/lib/gridstack.component.ts:249](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L249) | +| `_sub` | `protected` | `undefined` \| `Subscription` | `undefined` | - | [angular/projects/lib/src/lib/gridstack.component.ts:250](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L250) | +| `loaded?` | `protected` | `boolean` | `undefined` | - | [angular/projects/lib/src/lib/gridstack.component.ts:251](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L251) | +| `elementRef` | `readonly` | `ElementRef`\<[`GridCompHTMLElement`](#gridcomphtmlelement)\> | `undefined` | - | [angular/projects/lib/src/lib/gridstack.component.ts:253](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L253) | ## Interfaces @@ -3095,7 +3095,7 @@ function gsCreateNgComponents( isGrid): undefined | HTMLElement; ``` -Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:353](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L353) +Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:354](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L354) can be used when a new item needs to be created, which we do as a Angular component, or deleted (skip) @@ -3120,7 +3120,7 @@ can be used when a new item needs to be created, which we do as a Angular compon function gsSaveAdditionalNgInfo(n, w): void; ``` -Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:437](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L437) +Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:439](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L439) called for each item in the grid - check if additional information needs to be saved. Note: since this is options minus gridstack protected members using Utils.removeInternalForSave(), @@ -3146,7 +3146,7 @@ using BaseWidget.serialize() function gsUpdateNgComponents(n): void; ``` -Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:456](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L456) +Defined in: [angular/projects/lib/src/lib/gridstack.component.ts:458](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/gridstack.component.ts#L458) track when widgeta re updated (rather than created) to make sure we de-serialize them as well @@ -3296,5 +3296,5 @@ Used for dynamic component creation based on widget selectors. #### Index Signature ```ts -[key: string]: Type +[key: string]: Type ``` diff --git a/angular/doc/api/types.md b/angular/doc/api/types.md index 0615a08dd..65322fde1 100644 --- a/angular/doc/api/types.md +++ b/angular/doc/api/types.md @@ -68,7 +68,7 @@ Supports Angular-specific widget definitions and nested grids. type NgCompInputs = object; ``` -Defined in: [angular/projects/lib/src/lib/types.ts:54](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/types.ts#L54) +Defined in: [angular/projects/lib/src/lib/types.ts:55](https://github.com/adumesny/gridstack.js/blob/master/angular/projects/lib/src/lib/types.ts#L55) Type for component input data serialization. Maps @Input() property names to their values for widget persistence. diff --git a/angular/projects/lib/src/lib/base-widget.ts b/angular/projects/lib/src/lib/base-widget.ts index f903ef373..78f3cb736 100644 --- a/angular/projects/lib/src/lib/base-widget.ts +++ b/angular/projects/lib/src/lib/base-widget.ts @@ -5,14 +5,14 @@ /** * Abstract base class that all custom widgets should extend. - * + * * This class provides the interface needed for GridstackItemComponent to: * - Serialize/deserialize widget data * - Save/restore widget state * - Integrate with Angular lifecycle - * + * * Extend this class when creating custom widgets for dynamic grids. - * + * * @example * ```typescript * @Component({ @@ -21,7 +21,7 @@ * }) * export class MyCustomWidget extends BaseWidget { * @Input() data: string = ''; - * + * * serialize() { * return { data: this.data }; * } @@ -46,12 +46,12 @@ export abstract class BaseWidget { /** * Override this method to return serializable data for this widget. - * + * * Return an object with properties that map to your component's @Input() fields. * The selector is handled automatically, so only include component-specific data. - * + * * @returns Object containing serializable component data - * + * * @example * ```typescript * serialize() { @@ -67,17 +67,17 @@ export abstract class BaseWidget { /** * Override this method to handle widget restoration from saved data. - * + * * Use this for complex initialization that goes beyond simple @Input() mapping. * The default implementation automatically assigns input data to component properties. - * + * * @param w The saved widget data including input properties - * + * * @example * ```typescript * deserialize(w: NgGridStackWidget) { * super.deserialize(w); // Call parent for basic setup - * + * * // Custom initialization logic * if (w.input?.complexData) { * this.processComplexData(w.input.complexData); @@ -92,4 +92,4 @@ export abstract class BaseWidget { if (w.input) Object.assign(this, w.input); } - } +} diff --git a/angular/projects/lib/src/lib/gridstack-item.component.ts b/angular/projects/lib/src/lib/gridstack-item.component.ts index 18653a917..1d2675565 100644 --- a/angular/projects/lib/src/lib/gridstack-item.component.ts +++ b/angular/projects/lib/src/lib/gridstack-item.component.ts @@ -18,15 +18,15 @@ export interface GridItemCompHTMLElement extends GridItemHTMLElement { /** * Angular component wrapper for individual GridStack items. - * + * * This component represents a single grid item and handles: * - Dynamic content creation and management * - Integration with parent GridStack component * - Component lifecycle and cleanup * - Widget options and configuration - * + * * Use in combination with GridstackComponent for the parent grid. - * + * * @example * ```html * @@ -76,7 +76,7 @@ export class GridstackItemComponent implements OnDestroy { /** * Grid item configuration options. * Defines position, size, and behavior of this grid item. - * + * * @example * ```typescript * itemOptions: GridStackNode = { diff --git a/angular/projects/lib/src/lib/gridstack.component.ts b/angular/projects/lib/src/lib/gridstack.component.ts index f129aab40..dd0eb90b5 100644 --- a/angular/projects/lib/src/lib/gridstack.component.ts +++ b/angular/projects/lib/src/lib/gridstack.component.ts @@ -4,8 +4,8 @@ */ import { - AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, Input, - OnDestroy, OnInit, Output, QueryList, Type, ViewChild, ViewContainerRef, reflectComponentType, ComponentRef + AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, Input, + OnDestroy, OnInit, Output, QueryList, Type, ViewChild, ViewContainerRef, reflectComponentType, ComponentRef } from '@angular/core'; import { NgIf } from '@angular/common'; import { Subscription } from 'rxjs'; @@ -45,19 +45,19 @@ export interface GridCompHTMLElement extends GridHTMLElement { * Mapping of selector strings to Angular component types. * Used for dynamic component creation based on widget selectors. */ -export type SelectorToType = {[key: string]: Type}; +export type SelectorToType = {[key: string]: Type}; /** * Angular component wrapper for GridStack. - * + * * This component provides Angular integration for GridStack grids, handling: * - Grid initialization and lifecycle * - Dynamic component creation and management * - Event binding and emission * - Integration with Angular change detection - * + * * Use in combination with GridstackItemComponent for individual grid items. - * + * * @example * ```html * @@ -99,7 +99,7 @@ export class GridstackComponent implements OnInit, AfterContentInit, OnDestroy { /** * Grid configuration options. * Can be set before grid initialization or updated after grid is created. - * + * * @example * ```typescript * gridOptions: GridStackOptions = { @@ -122,7 +122,7 @@ export class GridstackComponent implements OnInit, AfterContentInit, OnDestroy { /** * Controls whether empty content should be displayed. * Set to true to show ng-content with 'empty-content' selector when grid has no items. - * + * * @example * ```html * @@ -134,52 +134,52 @@ export class GridstackComponent implements OnInit, AfterContentInit, OnDestroy { /** * GridStack event emitters for Angular integration. - * + * * These provide Angular-style event handling for GridStack events. * Alternatively, use `this.grid.on('event1 event2', callback)` for multiple events. - * + * * Note: 'CB' suffix prevents conflicts with native DOM events. - * + * * @example * ```html * * * ``` */ - + /** Emitted when widgets are added to the grid */ @Output() public addedCB = new EventEmitter(); - + /** Emitted when grid layout changes */ @Output() public changeCB = new EventEmitter(); - + /** Emitted when grid is disabled */ @Output() public disableCB = new EventEmitter(); - + /** Emitted during widget drag operations */ @Output() public dragCB = new EventEmitter(); - + /** Emitted when widget drag starts */ @Output() public dragStartCB = new EventEmitter(); - + /** Emitted when widget drag stops */ @Output() public dragStopCB = new EventEmitter(); - + /** Emitted when widget is dropped */ @Output() public droppedCB = new EventEmitter(); - + /** Emitted when grid is enabled */ @Output() public enableCB = new EventEmitter(); - + /** Emitted when widgets are removed from the grid */ @Output() public removedCB = new EventEmitter(); - + /** Emitted during widget resize operations */ @Output() public resizeCB = new EventEmitter(); - + /** Emitted when widget resize starts */ @Output() public resizeStartCB = new EventEmitter(); - + /** Emitted when widget resize stops */ @Output() public resizeStopCB = new EventEmitter(); @@ -192,7 +192,7 @@ export class GridstackComponent implements OnInit, AfterContentInit, OnDestroy { /** * Get the underlying GridStack instance. * Use this to access GridStack API methods directly. - * + * * @example * ```typescript * this.gridComponent.grid.addWidget({x: 0, y: 0, w: 2, h: 1}); @@ -208,10 +208,10 @@ export class GridstackComponent implements OnInit, AfterContentInit, OnDestroy { /** * Mapping of component selectors to their types for dynamic creation. - * + * * This enables dynamic component instantiation from string selectors. * Angular doesn't provide public access to this mapping, so we maintain our own. - * + * * @example * ```typescript * GridstackComponent.addComponentToSelectorType([MyWidgetComponent]); @@ -220,9 +220,9 @@ export class GridstackComponent implements OnInit, AfterContentInit, OnDestroy { public static selectorToType: SelectorToType = {}; /** * Register a list of Angular components for dynamic creation. - * + * * @param typeList Array of component types to register - * + * * @example * ```typescript * GridstackComponent.addComponentToSelectorType([ @@ -231,16 +231,17 @@ export class GridstackComponent implements OnInit, AfterContentInit, OnDestroy { * ]); * ``` */ - public static addComponentToSelectorType(typeList: Array>) { + public static addComponentToSelectorType(typeList: Array>) { typeList.forEach(type => GridstackComponent.selectorToType[ GridstackComponent.getSelector(type) ] = type); } /** * Extract the selector string from an Angular component type. - * + * * @param type The component type to get selector from * @returns The component's selector string */ - public static getSelector(type: Type): string { + public static getSelector(type: Type): string { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion return reflectComponentType(type)!.selector; } @@ -367,6 +368,7 @@ export function gsCreateNgComponents(host: GridCompHTMLElement | HTMLElement, n: const gridItemComp = (host.parentElement as GridItemCompHTMLElement)?._gridItemComp; if (!gridItemComp) return; // check if gridItem has a child component with 'container' exposed to create under.. + // eslint-disable-next-line @typescript-eslint/no-explicit-any const container = (gridItemComp.childWidget as any)?.container || gridItemComp.container; const gridRef = container?.createComponent(GridstackComponent); const grid = gridRef?.instance; diff --git a/angular/projects/lib/src/lib/gridstack.module.ts b/angular/projects/lib/src/lib/gridstack.module.ts index 1add6e9f2..77171043c 100644 --- a/angular/projects/lib/src/lib/gridstack.module.ts +++ b/angular/projects/lib/src/lib/gridstack.module.ts @@ -10,10 +10,10 @@ import { GridstackComponent } from "./gridstack.component"; /** * @deprecated Use GridstackComponent and GridstackItemComponent as standalone components instead. - * + * * This NgModule is provided for backward compatibility but is no longer the recommended approach. * Import components directly in your standalone components or use the new Angular module structure. - * + * * @example * ```typescript * // Preferred approach - standalone components @@ -23,7 +23,7 @@ import { GridstackComponent } from "./gridstack.component"; * template: '' * }) * export class AppComponent {} - * + * * // Legacy approach (deprecated) * @NgModule({ * imports: [GridstackModule] diff --git a/angular/projects/lib/src/lib/types.ts b/angular/projects/lib/src/lib/types.ts index a02d6b08c..cdbd8b7d8 100644 --- a/angular/projects/lib/src/lib/types.ts +++ b/angular/projects/lib/src/lib/types.ts @@ -41,7 +41,7 @@ export interface NgGridStackOptions extends GridStackOptions { /** * Type for component input data serialization. * Maps @Input() property names to their values for widget persistence. - * + * * @example * ```typescript * const inputs: NgCompInputs = { @@ -51,4 +51,5 @@ export interface NgGridStackOptions extends GridStackOptions { * }; * ``` */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type NgCompInputs = {[key: string]: any}; diff --git a/doc/API.md b/doc/API.md index 737b25749..ef21ce9c2 100644 --- a/doc/API.md +++ b/doc/API.md @@ -113,7 +113,7 @@ Construct a grid item from the given element and options protected _updateResizeEvent(forceRemove): GridStack; ``` -Defined in: [gridstack.ts:2091](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2091) +Defined in: [gridstack.ts:2083](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2083) add or remove the grid element size event handler @@ -133,7 +133,7 @@ add or remove the grid element size event handler protected _widthOrContainer(forBreakpoint): number; ``` -Defined in: [gridstack.ts:954](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L954) +Defined in: [gridstack.ts:955](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L955) return our expected width (or parent) , and optionally of window for dynamic column check @@ -286,7 +286,7 @@ const widgetWidth = width * 3; // For a 3-column wide widget protected checkDynamicColumn(): boolean; ``` -Defined in: [gridstack.ts:960](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L960) +Defined in: [gridstack.ts:962](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L962) checks for dynamic column count for our current size, returning true if changed @@ -300,7 +300,7 @@ checks for dynamic column count for our current size, returning true if changed column(column, layout): GridStack; ``` -Defined in: [gridstack.ts:1039](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1039) +Defined in: [gridstack.ts:1041](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1041) Set the number of columns in the grid. Will update existing widgets to conform to new number of columns, as well as cache the original layout so you can revert back to previous positions without loss. @@ -335,25 +335,13 @@ grid.column(4, 'move'); grid.column(1); ``` -##### commit() - -```ts -commit(): GridStack; -``` - -Defined in: [gridstack.ts:3020](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L3020) - -###### Returns - -[`GridStack`](#gridstack-1) - ##### compact() ```ts compact(layout, doSort): GridStack; ``` -Defined in: [gridstack.ts:1005](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1005) +Defined in: [gridstack.ts:1007](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1007) Re-layout grid items to reclaim any empty space. This is useful after removing widgets or when you want to optimize the layout. @@ -419,7 +407,7 @@ const element = grid.createWidgetDivs({ w: 2, h: 1, content: 'Hello World' }); destroy(removeDOM): GridStack; ``` -Defined in: [gridstack.ts:1113](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1113) +Defined in: [gridstack.ts:1115](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1115) Destroys a grid instance. DO NOT CALL any methods or access any vars after this as it will free up members. @@ -439,7 +427,7 @@ Destroys a grid instance. DO NOT CALL any methods or access any vars after this disable(recurse): GridStack; ``` -Defined in: [gridstack.ts:2292](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2292) +Defined in: [gridstack.ts:2284](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2284) Temporarily disables widgets moving/resizing. If you want a more permanent way (which freezes up resources) use `setStatic(true)` instead. @@ -480,7 +468,7 @@ grid.disable(false); enable(recurse): GridStack; ``` -Defined in: [gridstack.ts:2319](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2319) +Defined in: [gridstack.ts:2311](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2311) Re-enables widgets moving/resizing - see disable(). Note: This is a no-op for static grids. @@ -519,7 +507,7 @@ grid.enable(false); enableMove(doEnable, recurse): GridStack; ``` -Defined in: [gridstack.ts:2345](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2345) +Defined in: [gridstack.ts:2337](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2337) Enables/disables widget moving for all widgets. No-op for static grids. Note: locally defined items (with noMove property) still override this setting. @@ -556,7 +544,7 @@ grid.enableMove(true, false); enableResize(doEnable, recurse): GridStack; ``` -Defined in: [gridstack.ts:2373](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2373) +Defined in: [gridstack.ts:2365](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2365) Enables/disables widget resizing for all widgets. No-op for static grids. Note: locally defined items (with noResize property) still override this setting. @@ -593,7 +581,7 @@ grid.enableResize(true, false); float(val): GridStack; ``` -Defined in: [gridstack.ts:1147](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1147) +Defined in: [gridstack.ts:1149](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1149) Enable/disable floating widgets (default: `false`). When enabled, widgets can float up to fill empty spaces. See [example](http://gridstackjs.com/demo/float.html) @@ -623,7 +611,7 @@ grid.float(false); // Disable floating (default) getCellFromPixel(position, useDocRelative): CellPosition; ``` -Defined in: [gridstack.ts:1177](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1177) +Defined in: [gridstack.ts:1179](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1179) Get the position of the cell under a pixel on screen. @@ -676,7 +664,7 @@ const pixelHeight = grid.getCellHeight(true); getColumn(): number; ``` -Defined in: [gridstack.ts:1076](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1076) +Defined in: [gridstack.ts:1078](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1078) Get the number of columns in the grid (default 12). @@ -698,7 +686,7 @@ const columnCount = grid.getColumn(); // returns 12 by default static getDD(): DDGridStack; ``` -Defined in: [gridstack.ts:2189](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2189) +Defined in: [gridstack.ts:2181](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2181) Get the global drag & drop implementation instance. This provides access to the underlying drag & drop functionality. @@ -722,7 +710,7 @@ const dd = GridStack.getDD(); getFloat(): boolean; ``` -Defined in: [gridstack.ts:1164](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1164) +Defined in: [gridstack.ts:1166](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1166) Get the current float mode setting. @@ -745,7 +733,7 @@ console.log('Floating enabled:', isFloating); getGridItems(): GridItemHTMLElement[]; ``` -Defined in: [gridstack.ts:1090](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1090) +Defined in: [gridstack.ts:1092](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1092) Returns an array of grid HTML elements (no placeholder) - used to iterate through our children in DOM order. This method excludes placeholder elements and returns only actual grid items. @@ -771,7 +759,7 @@ items.forEach(item => { getMargin(): number; ``` -Defined in: [gridstack.ts:1788](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1788) +Defined in: [gridstack.ts:1790](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1790) Returns the current margin value as a number (undefined if the 4 sides don't match). This only returns a number if all sides have the same margin value. @@ -799,7 +787,7 @@ if (margin !== undefined) { getRow(): number; ``` -Defined in: [gridstack.ts:1207](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1207) +Defined in: [gridstack.ts:1209](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1209) Returns the current number of rows, which will be at least `minRow` if set. The row count is based on the highest positioned widget in the grid. @@ -887,7 +875,7 @@ isAreaEmpty( h): boolean; ``` -Defined in: [gridstack.ts:1226](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1226) +Defined in: [gridstack.ts:1228](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1228) Checks if the specified rectangular area is empty (no widgets occupy any part of it). @@ -921,7 +909,7 @@ if (grid.isAreaEmpty(1, 1, 2, 2)) { isIgnoreChangeCB(): boolean; ``` -Defined in: [gridstack.ts:1107](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1107) +Defined in: [gridstack.ts:1109](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1109) Returns true if change callbacks should be ignored due to column change, sizeToContent, loading, etc. This is useful for callers who want to implement dirty flag functionality. @@ -1032,7 +1020,7 @@ newly created grid makeWidget(els, options?): GridItemHTMLElement; ``` -Defined in: [gridstack.ts:1254](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1254) +Defined in: [gridstack.ts:1256](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1256) If you add elements to your grid by hand (or have some framework creating DOM), you have to tell gridstack afterwards to make them widgets. If you want gridstack to add the elements for you, use `addWidget()` instead. @@ -1075,7 +1063,7 @@ grid.makeWidget(element, {x: 0, y: 1, w: 4, h: 2}); margin(value): GridStack; ``` -Defined in: [gridstack.ts:1759](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1759) +Defined in: [gridstack.ts:1761](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1761) Updates the margins which will set all 4 sides at once - see `GridStackOptions.margin` for format options. Supports CSS string format of 1, 2, or 4 values or a single number. @@ -1106,7 +1094,7 @@ grid.margin('5px 10px 15px 20px'); // Different for each side movable(els, val): GridStack; ``` -Defined in: [gridstack.ts:2233](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2233) +Defined in: [gridstack.ts:2225](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2225) Enables/Disables dragging by the user for specific grid elements. For all items and future items, use enableMove() instead. No-op for static grids. @@ -1143,7 +1131,7 @@ grid.movable('#fixed-widget', false); off(name): GridStack; ``` -Defined in: [gridstack.ts:1350](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1350) +Defined in: [gridstack.ts:1352](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1352) unsubscribe from the 'on' event GridStackEvent @@ -1163,7 +1151,7 @@ unsubscribe from the 'on' event GridStackEvent offAll(): GridStack; ``` -Defined in: [gridstack.ts:1377](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1377) +Defined in: [gridstack.ts:1379](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1379) Remove all event handlers from the grid. This is useful for cleanup when destroying a grid. @@ -1187,7 +1175,7 @@ grid.offAll(); // Remove all event listeners on(name, callback): GridStack; ``` -Defined in: [gridstack.ts:1313](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1313) +Defined in: [gridstack.ts:1315](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1315) Register event handler for grid events. You can call this on a single event name, or space separated list. @@ -1238,7 +1226,7 @@ grid.on('added', (event, items) => { on(name, callback): GridStack; ``` -Defined in: [gridstack.ts:1314](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1314) +Defined in: [gridstack.ts:1316](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1316) Register event handler for grid events. You can call this on a single event name, or space separated list. @@ -1289,7 +1277,7 @@ grid.on('added', (event, items) => { on(name, callback): GridStack; ``` -Defined in: [gridstack.ts:1315](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1315) +Defined in: [gridstack.ts:1317](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1317) Register event handler for grid events. You can call this on a single event name, or space separated list. @@ -1340,7 +1328,7 @@ grid.on('added', (event, items) => { on(name, callback): GridStack; ``` -Defined in: [gridstack.ts:1316](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1316) +Defined in: [gridstack.ts:1318](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1318) Register event handler for grid events. You can call this on a single event name, or space separated list. @@ -1391,7 +1379,7 @@ grid.on('added', (event, items) => { on(name, callback): GridStack; ``` -Defined in: [gridstack.ts:1317](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1317) +Defined in: [gridstack.ts:1319](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1319) Register event handler for grid events. You can call this on a single event name, or space separated list. @@ -1442,7 +1430,7 @@ grid.on('added', (event, items) => { onResize(clientWidth): GridStack; ``` -Defined in: [gridstack.ts:2030](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2030) +Defined in: [gridstack.ts:2022](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2022) called when we are being resized - check if the one Column Mode needs to be turned on/off and remember the prev columns we used, or get our count from parent, as well as check for cellHeight==='auto' (square) @@ -1464,7 +1452,7 @@ or `sizeToContent` gridItem options. prepareDragDrop(el, force?): GridStack; ``` -Defined in: [gridstack.ts:2716](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2716) +Defined in: [gridstack.ts:2708](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2708) prepares the element for drag&drop - this is normally called by makeWidget() unless are are delay loading @@ -1507,7 +1495,7 @@ replace just one instance. removeAll(removeDOM, triggerEvent): GridStack; ``` -Defined in: [gridstack.ts:1426](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1426) +Defined in: [gridstack.ts:1428](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1428) Removes all widgets from the grid. @@ -1552,7 +1540,7 @@ removeWidget( triggerEvent): GridStack; ``` -Defined in: [gridstack.ts:1388](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1388) +Defined in: [gridstack.ts:1390](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1390) Removes widget from the grid. @@ -1574,7 +1562,7 @@ Removes widget from the grid. resizable(els, val): GridStack; ``` -Defined in: [gridstack.ts:2259](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2259) +Defined in: [gridstack.ts:2251](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2251) Enables/Disables user resizing for specific grid elements. For all items and future items, use enableResize() instead. No-op for static grids. @@ -1608,7 +1596,7 @@ grid.resizable('#fixed-size-widget', false); resizeToContent(el): void; ``` -Defined in: [gridstack.ts:1649](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1649) +Defined in: [gridstack.ts:1651](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1651) Updates widget height to match the content height to avoid vertical scrollbars or dead space. This automatically adjusts the widget height based on its content size. @@ -1644,7 +1632,7 @@ grid.resizeToContent(widget); rotate(els, relative?): GridStack; ``` -Defined in: [gridstack.ts:1724](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1724) +Defined in: [gridstack.ts:1726](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1726) Rotate widgets by swapping their width and height. This is typically called when the user presses 'r' during dragging. The rotation swaps the w/h dimensions and adjusts min/max constraints accordingly. @@ -1710,7 +1698,7 @@ list of widgets or full grid option, including .children list of widgets setAnimation(doAnimate, delay?): GridStack; ``` -Defined in: [gridstack.ts:1445](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1445) +Defined in: [gridstack.ts:1447](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1447) Toggle the grid animation state. Toggles the `grid-stack-animate` class. @@ -1734,7 +1722,7 @@ setStatic( recurse): GridStack; ``` -Defined in: [gridstack.ts:1468](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1468) +Defined in: [gridstack.ts:1470](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1470) Toggle the grid static state, which permanently removes/add Drag&Drop support, unlike disable()/enable() that just turns it off/on. Also toggle the grid-stack-static class. @@ -1761,7 +1749,7 @@ static setupDragIn( root?): void; ``` -Defined in: [gridstack.ts:2202](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2202) +Defined in: [gridstack.ts:2194](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2194) call to setup dragging in from the outside (say toolbar), by specifying the class selection and options. Called during GridStack.init() as options, but can also be called directly (last param are used) in case the toolbar @@ -1786,7 +1774,7 @@ is dynamically create and needs to be set later. protected triggerEvent(event, target): void; ``` -Defined in: [gridstack.ts:2970](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2970) +Defined in: [gridstack.ts:2962](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L2962) call given event callback on our main top-most grid (if we're nested) @@ -1807,7 +1795,7 @@ call given event callback on our main top-most grid (if we're nested) update(els, opt): GridStack; ``` -Defined in: [gridstack.ts:1545](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1545) +Defined in: [gridstack.ts:1547](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1547) Updates widget position/size and other info. This is used to change widget properties after creation. Can update position, size, content, and other widget properties. @@ -1852,7 +1840,7 @@ grid.update('#my-widget', { updateOptions(o): GridStack; ``` -Defined in: [gridstack.ts:1486](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1486) +Defined in: [gridstack.ts:1488](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1488) Updates the passed in options on the grid (similar to update(widget) for for the grid options). @@ -1872,7 +1860,7 @@ Updates the passed in options on the grid (similar to update(widget) for for the willItFit(node): boolean; ``` -Defined in: [gridstack.ts:1802](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1802) +Defined in: [gridstack.ts:1804](https://github.com/adumesny/gridstack.js/blob/master/src/gridstack.ts#L1804) Returns true if the height of the grid will be less than the vertical constraint. Always returns true if grid doesn't have height constraint. @@ -3772,7 +3760,7 @@ Defines the options for a Grid | `placeholderText?` | `string` | placeholder default content (default?: '') | [types.ts:338](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L338) | | `removable?` | `string` \| `boolean` | if true widgets could be removed by dragging outside of the grid. It could also be a selector string (ex: ".trash"), in this case widgets will be removed by dropping them there (default?: false) See example (http://gridstack.github.io/gridstack.js/demo/two.html) | [types.ts:348](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L348) | | `removableOptions?` | [`DDRemoveOpt`](#ddremoveopt) | allows to override UI removable options. (default?: { accept: '.grid-stack-item' }) | [types.ts:351](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L351) | -| `resizable?` | [`DDResizeOpt`](#ddresizeopt) | allows to override UI resizable options. (default?: { handles: 'se' }) | [types.ts:341](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L341) | +| `resizable?` | [`DDResizeOpt`](#ddresizeopt) | allows to override UI resizable options. default is { handles: 'se', autoHide: true on desktop, false on mobile } | [types.ts:341](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L341) | | `row?` | `number` | fix grid number of rows. This is a shortcut of writing `minRow:N, maxRow:N`. (default `0` no constrain) | [types.ts:354](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L354) | | `rtl?` | `boolean` \| `"auto"` | if true turns grid to RTL. Possible values are true, false, 'auto' (default?: 'auto') See [example](http://gridstack.github.io/gridstack.js/demo/right-to-left(rtl).html) | [types.ts:360](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L360) | | `sizeToContent?` | `boolean` | set to true if all grid items (by default, but item can also override) height should be based on content size instead of WidgetItem.h to avoid v-scrollbars. Note: this is still row based, not pixels, so it will use ceil(getBoundingClientRect().height / getCellHeight()) | [types.ts:365](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L365) | @@ -4906,7 +4894,7 @@ new DDManager(): DDManager; ### DDResizable -Defined in: [dd-resizable.ts:34](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L34) +Defined in: [dd-resizable.ts:32](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L32) Interface for HTML elements extended with drag & drop options. Used to associate DD configuration with DOM elements. @@ -4950,7 +4938,7 @@ Note: Use enable()/disable() methods to change state as other operations need to new DDResizable(el, option): DDResizable; ``` -Defined in: [dd-resizable.ts:61](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L61) +Defined in: [dd-resizable.ts:59](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L59) ###### Parameters @@ -4975,7 +4963,7 @@ Defined in: [dd-resizable.ts:61](https://github.com/adumesny/gridstack.js/blob/m destroy(): void; ``` -Defined in: [dd-resizable.ts:91](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L91) +Defined in: [dd-resizable.ts:89](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L89) Destroy this drag & drop implementation and clean up resources. Removes all event handlers and clears internal state. @@ -4994,7 +4982,7 @@ Removes all event handlers and clears internal state. disable(): void; ``` -Defined in: [dd-resizable.ts:85](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L85) +Defined in: [dd-resizable.ts:83](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L83) Disable this drag & drop implementation. Subclasses should override to perform additional cleanup. @@ -5013,7 +5001,7 @@ Subclasses should override to perform additional cleanup. enable(): void; ``` -Defined in: [dd-resizable.ts:79](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L79) +Defined in: [dd-resizable.ts:77](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L77) Enable this drag & drop implementation. Subclasses should override to perform additional setup. @@ -5032,7 +5020,7 @@ Subclasses should override to perform additional setup. off(event): void; ``` -Defined in: [dd-resizable.ts:75](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L75) +Defined in: [dd-resizable.ts:73](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L73) Unregister an event callback for the specified event. @@ -5056,7 +5044,7 @@ Unregister an event callback for the specified event. on(event, callback): void; ``` -Defined in: [dd-resizable.ts:71](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L71) +Defined in: [dd-resizable.ts:69](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L69) Register an event callback for the specified event. @@ -5108,7 +5096,7 @@ Result from the callback function, if any updateOption(opts): DDResizable; ``` -Defined in: [dd-resizable.ts:98](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L98) +Defined in: [dd-resizable.ts:96](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L96) Method to update the options and return the DD implementation @@ -5130,15 +5118,15 @@ Method to update the options and return the DD implementation | Property | Modifier | Type | Default value | Description | Defined in | | ------ | ------ | ------ | ------ | ------ | ------ | -| `el` | `public` | [`GridItemHTMLElement`](#griditemhtmlelement) | `undefined` | The HTML element being extended | [dd-resizable.ts:61](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L61) | -| `option` | `public` | [`DDResizableOpt`](#ddresizableopt) | `{}` | The drag & drop options/configuration | [dd-resizable.ts:61](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L61) | +| `el` | `public` | [`GridItemHTMLElement`](#griditemhtmlelement) | `undefined` | The HTML element being extended | [dd-resizable.ts:59](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L59) | +| `option` | `public` | [`DDResizableOpt`](#ddresizableopt) | `{}` | The drag & drop options/configuration | [dd-resizable.ts:59](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L59) | *** ### DDResizableHandle -Defined in: [dd-resizable-handle.ts:15](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L15) +Defined in: [dd-resizable-handle.ts:16](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L16) #### Constructors @@ -5151,7 +5139,7 @@ new DDResizableHandle( option): DDResizableHandle; ``` -Defined in: [dd-resizable-handle.ts:25](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L25) +Defined in: [dd-resizable-handle.ts:26](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L26) ###### Parameters @@ -5173,7 +5161,7 @@ Defined in: [dd-resizable-handle.ts:25](https://github.com/adumesny/gridstack.js destroy(): DDResizableHandle; ``` -Defined in: [dd-resizable-handle.ts:53](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L53) +Defined in: [dd-resizable-handle.ts:70](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L70) call this when resize handle needs to be removed and cleaned up @@ -5185,9 +5173,9 @@ call this when resize handle needs to be removed and cleaned up | Property | Modifier | Type | Defined in | | ------ | ------ | ------ | ------ | -| `dir` | `protected` | `string` | [dd-resizable-handle.ts:25](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L25) | -| `host` | `protected` | [`GridItemHTMLElement`](#griditemhtmlelement) | [dd-resizable-handle.ts:25](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L25) | -| `option` | `protected` | [`DDResizableHandleOpt`](#ddresizablehandleopt) | [dd-resizable-handle.ts:25](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L25) | +| `dir` | `protected` | `string` | [dd-resizable-handle.ts:26](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L26) | +| `host` | `protected` | [`GridItemHTMLElement`](#griditemhtmlelement) | [dd-resizable-handle.ts:26](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L26) | +| `option` | `protected` | [`DDResizableHandleOpt`](#ddresizablehandleopt) | [dd-resizable-handle.ts:26](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L26) | *** @@ -5228,7 +5216,7 @@ Defines the position of a cell inside the grid ### DDDragOpt -Defined in: [types.ts:478](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L478) +Defined in: [types.ts:483](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L483) Drag&Drop dragging options @@ -5236,15 +5224,15 @@ Drag&Drop dragging options | Property | Type | Description | Defined in | | ------ | ------ | ------ | ------ | -| `appendTo?` | `string` | default to 'body' | [types.ts:482](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L482) | -| `cancel?` | `string` | prevents dragging from starting on specified elements, listed as comma separated selectors (eg: '.no-drag'). default built in is 'input,textarea,button,select,option' | [types.ts:488](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L488) | -| `drag?` | (`event`, `ui`) => `void` | - | [types.ts:494](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L494) | -| `handle?` | `string` | class selector of items that can be dragged. default to '.grid-stack-item-content' | [types.ts:480](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L480) | -| `helper?` | `"clone"` \| (`el`) => `HTMLElement` | helper function when dropping: 'clone' or your own method | [types.ts:490](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L490) | -| `pause?` | `number` \| `boolean` | if set (true | msec), dragging placement (collision) will only happen after a pause by the user. Note: this is Global | [types.ts:484](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L484) | -| `scroll?` | `boolean` | default to `true` | [types.ts:486](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L486) | -| `start?` | (`event`, `ui`) => `void` | callbacks | [types.ts:492](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L492) | -| `stop?` | (`event`) => `void` | - | [types.ts:493](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L493) | +| `appendTo?` | `string` | default to 'body' | [types.ts:487](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L487) | +| `cancel?` | `string` | prevents dragging from starting on specified elements, listed as comma separated selectors (eg: '.no-drag'). default built in is 'input,textarea,button,select,option' | [types.ts:493](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L493) | +| `drag?` | (`event`, `ui`) => `void` | - | [types.ts:499](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L499) | +| `handle?` | `string` | class selector of items that can be dragged. default to '.grid-stack-item-content' | [types.ts:485](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L485) | +| `helper?` | `"clone"` \| (`el`) => `HTMLElement` | helper function when dropping: 'clone' or your own method | [types.ts:495](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L495) | +| `pause?` | `number` \| `boolean` | if set (true | msec), dragging placement (collision) will only happen after a pause by the user. Note: this is Global | [types.ts:489](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L489) | +| `scroll?` | `boolean` | default to `true` | [types.ts:491](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L491) | +| `start?` | (`event`, `ui`) => `void` | callbacks | [types.ts:497](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L497) | +| `stop?` | (`event`) => `void` | - | [types.ts:498](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L498) | *** @@ -5288,7 +5276,7 @@ All grid item DOM elements implement this interface to provide access to their g ### DDRemoveOpt -Defined in: [types.ts:470](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L470) +Defined in: [types.ts:475](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L475) Drag&Drop remove options @@ -5296,8 +5284,8 @@ Drag&Drop remove options | Property | Type | Description | Defined in | | ------ | ------ | ------ | ------ | -| `accept?` | `string` | class that can be removed (default?: opts.itemClass) | [types.ts:472](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L472) | -| `decline?` | `string` | class that cannot be removed (default: 'grid-stack-non-removable') | [types.ts:474](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L474) | +| `accept?` | `string` | class that can be removed (default?: opts.itemClass) | [types.ts:477](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L477) | +| `decline?` | `string` | class that cannot be removed (default: 'grid-stack-non-removable') | [types.ts:479](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L479) | *** @@ -5310,9 +5298,10 @@ Defined in: [dd-resizable-handle.ts:9](https://github.com/adumesny/gridstack.js/ | Property | Type | Defined in | | ------ | ------ | ------ | -| `move?` | (`event`) => `void` | [dd-resizable-handle.ts:11](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L11) | -| `start?` | (`event`) => `void` | [dd-resizable-handle.ts:10](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L10) | -| `stop?` | (`event`) => `void` | [dd-resizable-handle.ts:12](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L12) | +| `element?` | `string` \| `HTMLElement` | [dd-resizable-handle.ts:10](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L10) | +| `move?` | (`event`) => `void` | [dd-resizable-handle.ts:12](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L12) | +| `start?` | (`event`) => `void` | [dd-resizable-handle.ts:11](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L11) | +| `stop?` | (`event`) => `void` | [dd-resizable-handle.ts:13](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable-handle.ts#L13) | *** @@ -5321,21 +5310,28 @@ Defined in: [dd-resizable-handle.ts:9](https://github.com/adumesny/gridstack.js/ Defined in: [dd-resizable.ts:15](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L15) +Drag&Drop resize options + +#### Extends + +- [`DDResizeOpt`](#ddresizeopt) + #### Properties -| Property | Type | Defined in | -| ------ | ------ | ------ | -| `autoHide?` | `boolean` | [dd-resizable.ts:16](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L16) | -| `handles?` | `string` | [dd-resizable.ts:17](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L17) | -| `maxHeight?` | `number` | [dd-resizable.ts:18](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L18) | -| `maxHeightMoveUp?` | `number` | [dd-resizable.ts:19](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L19) | -| `maxWidth?` | `number` | [dd-resizable.ts:20](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L20) | -| `maxWidthMoveLeft?` | `number` | [dd-resizable.ts:21](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L21) | -| `minHeight?` | `number` | [dd-resizable.ts:22](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L22) | -| `minWidth?` | `number` | [dd-resizable.ts:23](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L23) | -| `resize?` | (`event`, `ui`) => `void` | [dd-resizable.ts:26](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L26) | -| `start?` | (`event`, `ui`) => `void` | [dd-resizable.ts:24](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L24) | -| `stop?` | (`event`) => `void` | [dd-resizable.ts:25](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L25) | +| Property | Type | Description | Inherited from | Defined in | +| ------ | ------ | ------ | ------ | ------ | +| `autoHide?` | `boolean` | do resize handle hide by default until mouse over. default: true on desktop, false on mobile | [`DDResizeOpt`](#ddresizeopt).[`autoHide`](#autohide-1) | [types.ts:461](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L461) | +| `element?` | `string` \| `HTMLElement` | Custom element or query inside the widget node that is used instead of the generated resize handle. | [`DDResizeOpt`](#ddresizeopt).[`element`](#element-2) | [types.ts:471](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L471) | +| `handles?` | `string` | sides where you can resize from (ex: 'e, se, s, sw, w') - default 'se' (south-east) Note: it is not recommended to resize from the top sides as weird side effect may occur. | [`DDResizeOpt`](#ddresizeopt).[`handles`](#handles-1) | [types.ts:466](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L466) | +| `maxHeight?` | `number` | - | - | [dd-resizable.ts:16](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L16) | +| `maxHeightMoveUp?` | `number` | - | - | [dd-resizable.ts:17](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L17) | +| `maxWidth?` | `number` | - | - | [dd-resizable.ts:18](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L18) | +| `maxWidthMoveLeft?` | `number` | - | - | [dd-resizable.ts:19](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L19) | +| `minHeight?` | `number` | - | - | [dd-resizable.ts:20](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L20) | +| `minWidth?` | `number` | - | - | [dd-resizable.ts:21](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L21) | +| `resize?` | (`event`, `ui`) => `void` | - | - | [dd-resizable.ts:24](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L24) | +| `start?` | (`event`, `ui`) => `void` | - | - | [dd-resizable.ts:22](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L22) | +| `stop?` | (`event`) => `void` | - | - | [dd-resizable.ts:23](https://github.com/adumesny/gridstack.js/blob/master/src/dd-resizable.ts#L23) | *** @@ -5346,11 +5342,16 @@ Defined in: [types.ts:459](https://github.com/adumesny/gridstack.js/blob/master/ Drag&Drop resize options +#### Extended by + +- [`DDResizableOpt`](#ddresizableopt) + #### Properties | Property | Type | Description | Defined in | | ------ | ------ | ------ | ------ | -| `autoHide?` | `boolean` | do resize handle hide by default until mouse over ? - default: true on desktop, false on mobile | [types.ts:461](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L461) | +| `autoHide?` | `boolean` | do resize handle hide by default until mouse over. default: true on desktop, false on mobile | [types.ts:461](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L461) | +| `element?` | `string` \| `HTMLElement` | Custom element or query inside the widget node that is used instead of the generated resize handle. | [types.ts:471](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L471) | | `handles?` | `string` | sides where you can resize from (ex: 'e, se, s, sw, w') - default 'se' (south-east) Note: it is not recommended to resize from the top sides as weird side effect may occur. | [types.ts:466](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L466) | *** @@ -5358,7 +5359,7 @@ Drag&Drop resize options ### DDUIData -Defined in: [types.ts:507](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L507) +Defined in: [types.ts:512](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L512) data that is passed during drag and resizing callbacks @@ -5366,9 +5367,9 @@ data that is passed during drag and resizing callbacks | Property | Type | Defined in | | ------ | ------ | ------ | -| `draggable?` | `HTMLElement` | [types.ts:510](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L510) | -| `position?` | [`Position`](#position-1) | [types.ts:508](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L508) | -| `size?` | [`Size`](#size-1) | [types.ts:509](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L509) | +| `draggable?` | `HTMLElement` | [types.ts:515](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L515) | +| `position?` | [`Position`](#position-1) | [types.ts:513](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L513) | +| `size?` | [`Size`](#size-1) | [types.ts:514](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L514) | *** @@ -5486,7 +5487,7 @@ options used during GridStackEngine.moveNode() ### GridStackNode -Defined in: [types.ts:524](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L524) +Defined in: [types.ts:529](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L529) internal runtime descriptions describing the widgets in the grid @@ -5500,8 +5501,8 @@ internal runtime descriptions describing the widgets in the grid | ------ | ------ | ------ | ------ | ------ | | `autoPosition?` | `boolean` | if true then x, y parameters will be ignored and widget will be places on the first available position (default?: false) | [`GridStackWidget`](#gridstackwidget).[`autoPosition`](#autoposition-1) | [types.ts:428](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L428) | | `content?` | `string` | html to append inside as content | [`GridStackWidget`](#gridstackwidget).[`content`](#content-1) | [types.ts:446](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L446) | -| `el?` | [`GridItemHTMLElement`](#griditemhtmlelement) | pointer back to HTML element | - | [types.ts:526](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L526) | -| `grid?` | [`GridStack`](#gridstack-1) | pointer back to parent Grid instance | - | [types.ts:528](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L528) | +| `el?` | [`GridItemHTMLElement`](#griditemhtmlelement) | pointer back to HTML element | - | [types.ts:531](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L531) | +| `grid?` | [`GridStack`](#gridstack-1) | pointer back to parent Grid instance | - | [types.ts:533](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L533) | | `h?` | `number` | widget dimension height (default?: 1) | [`GridStackWidget`](#gridstackwidget).[`h`](#h-3) | [types.ts:420](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L420) | | `id?` | `string` | value for `gs-id` stored on the widget (default?: undefined) | [`GridStackWidget`](#gridstackwidget).[`id`](#id-1) | [types.ts:444](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L444) | | `lazyLoad?` | `boolean` | true when widgets are only created when they scroll into view (visible) | [`GridStackWidget`](#gridstackwidget).[`lazyLoad`](#lazyload-2) | [types.ts:448](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L448) | @@ -5514,9 +5515,9 @@ internal runtime descriptions describing the widgets in the grid | `noResize?` | `boolean` | prevent direct resizing by the user (default?: undefined = un-constrained) | [`GridStackWidget`](#gridstackwidget).[`noResize`](#noresize-1) | [types.ts:438](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L438) | | `resizeToContentParent?` | `string` | local override of GridStack.resizeToContentParent that specify the class to use for the parent (actual) vs child (wanted) height | [`GridStackWidget`](#gridstackwidget).[`resizeToContentParent`](#resizetocontentparent-2) | [types.ts:453](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L453) | | `sizeToContent?` | `number` \| `boolean` | local (vs grid) override - see GridStackOptions. Note: This also allow you to set a maximum h value (but user changeable during normal resizing) to prevent unlimited content from taking too much space (get scrollbar) | [`GridStackWidget`](#gridstackwidget).[`sizeToContent`](#sizetocontent-2) | [types.ts:451](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L451) | -| `subGrid?` | [`GridStack`](#gridstack-1) | actual sub-grid instance | - | [types.ts:530](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L530) | +| `subGrid?` | [`GridStack`](#gridstack-1) | actual sub-grid instance | - | [types.ts:535](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L535) | | `subGridOpts?` | [`GridStackOptions`](#gridstackoptions) | optional nested grid options and list of children, which then turns into actual instance at runtime to get options from | [`GridStackWidget`](#gridstackwidget).[`subGridOpts`](#subgridopts-2) | [types.ts:455](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L455) | -| `visibleObservable?` | `IntersectionObserver` | allow delay creation when visible | - | [types.ts:532](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L532) | +| `visibleObservable?` | `IntersectionObserver` | allow delay creation when visible | - | [types.ts:537](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L537) | | `w?` | `number` | widget dimension width (default?: 1) | [`GridStackWidget`](#gridstackwidget).[`w`](#w-4) | [types.ts:418](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L418) | | `x?` | `number` | widget position x (default?: 0) | [`GridStackWidget`](#gridstackwidget).[`x`](#x-4) | [types.ts:414](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L414) | | `y?` | `number` | widget position y (default?: 0) | [`GridStackWidget`](#gridstackwidget).[`y`](#y-4) | [types.ts:416](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L416) | @@ -5662,7 +5663,7 @@ Defines the coordinates of an object ### Position -Defined in: [types.ts:500](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L500) +Defined in: [types.ts:505](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L505) #### Extended by @@ -5672,15 +5673,15 @@ Defined in: [types.ts:500](https://github.com/adumesny/gridstack.js/blob/master/ | Property | Type | Defined in | | ------ | ------ | ------ | -| `left` | `number` | [types.ts:502](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L502) | -| `top` | `number` | [types.ts:501](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L501) | +| `left` | `number` | [types.ts:507](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L507) | +| `top` | `number` | [types.ts:506](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L506) | *** ### Rect -Defined in: [types.ts:504](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L504) +Defined in: [types.ts:509](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L509) #### Extends @@ -5690,10 +5691,10 @@ Defined in: [types.ts:504](https://github.com/adumesny/gridstack.js/blob/master/ | Property | Type | Inherited from | Defined in | | ------ | ------ | ------ | ------ | -| `height` | `number` | [`Size`](#size-1).[`height`](#height-1) | [types.ts:498](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L498) | -| `left` | `number` | [`Position`](#position-1).[`left`](#left-1) | [types.ts:502](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L502) | -| `top` | `number` | [`Position`](#position-1).[`top`](#top-1) | [types.ts:501](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L501) | -| `width` | `number` | [`Size`](#size-1).[`width`](#width-1) | [types.ts:497](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L497) | +| `height` | `number` | [`Size`](#size-1).[`height`](#height-1) | [types.ts:503](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L503) | +| `left` | `number` | [`Position`](#position-1).[`left`](#left-1) | [types.ts:507](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L507) | +| `top` | `number` | [`Position`](#position-1).[`top`](#top-1) | [types.ts:506](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L506) | +| `width` | `number` | [`Size`](#size-1).[`width`](#width-1) | [types.ts:502](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L502) | *** @@ -5722,7 +5723,7 @@ NOTE: Make sure to include the appropriate CSS (gridstack-extra.css) to support ### Size -Defined in: [types.ts:496](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L496) +Defined in: [types.ts:501](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L501) #### Extended by @@ -5732,8 +5733,8 @@ Defined in: [types.ts:496](https://github.com/adumesny/gridstack.js/blob/master/ | Property | Type | Defined in | | ------ | ------ | ------ | -| `height` | `number` | [types.ts:498](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L498) | -| `width` | `number` | [types.ts:497](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L497) | +| `height` | `number` | [types.ts:503](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L503) | +| `width` | `number` | [types.ts:502](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L502) | ## Variables @@ -5987,7 +5988,7 @@ Drop event handler that receives previous and new node states ### GridStackElement ```ts -type GridStackElement = string | HTMLElement | GridItemHTMLElement; +type GridStackElement = string | GridItemHTMLElement; ``` Defined in: [types.ts:87](https://github.com/adumesny/gridstack.js/blob/master/src/types.ts#L87) diff --git a/doc/CHANGES.md b/doc/CHANGES.md index e40bc1f0e..40d66a52a 100644 --- a/doc/CHANGES.md +++ b/doc/CHANGES.md @@ -5,6 +5,7 @@ Change log **Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)* +- [12.3.3-dev (TBD)](#1233-dev-tbd) - [12.3.3 (2025-08-13)](#1233-2025-08-13) - [12.3.2 (2025-08-12)](#1232-2025-08-12) - [12.3.1 (2025-08-11)](#1231-2025-08-11) @@ -134,6 +135,9 @@ Change log +## 12.3.3-dev (TBD) +* feat: [#3104](https://github.com/gridstack/gridstack.js/issues/3104) Custom resize div element target - thank you [Marvin Heilemann](https://github.com/muuvmuuv) + ## 12.3.3 (2025-08-13) * fix: [#3139](https://github.com/gridstack/gridstack.js/pull/3139) `Utils:removeInternalForSave()` to skip arrays diff --git a/package.json b/package.json index 37cffb954..8fa4a64a4 100644 --- a/package.json +++ b/package.json @@ -25,10 +25,10 @@ } ], "scripts": { - "build": "yarn --no-progress && yarn build:ng && grunt && webpack && tsc --stripInternal && yarn doc", + "build": "yarn --no-progress && yarn build:ng && grunt && webpack && tsc --project tsconfig.build.json --stripInternal && yarn doc", "build:ng": "cd angular && yarn --no-progress && yarn build lib", "w": "webpack", - "t": "rm -rf dist/* && grunt && tsc --stripInternal", + "t": "rm -rf dist/* && grunt && tsc --project tsconfig.build.json --stripInternal", "doc": "doctoc ./README.md && doctoc ./doc/CHANGES.md && node scripts/generate-docs.js", "doc:main": "node scripts/generate-docs.js --main-only", "doc:angular": "node scripts/generate-docs.js --angular-only", @@ -44,7 +44,7 @@ "test:e2e": "playwright test", "test:e2e:ui": "playwright test --ui", "test:e2e:headed": "playwright test --headed", - "lint": "tsc --noEmit && eslint src/*.ts", + "lint": "tsc --project tsconfig.build.json --noEmit && eslint src/*.ts angular/projects/lib/src/**/*.ts", "reset": "rm -rf dist node_modules", "prepublishOnly": "yarn build" }, diff --git a/react/lib/grid-stack-context.ts b/react/lib/grid-stack-context.ts index 51e950700..d2c313a1a 100644 --- a/react/lib/grid-stack-context.ts +++ b/react/lib/grid-stack-context.ts @@ -4,15 +4,18 @@ import { createContext, useContext } from "react"; export const GridStackContext = createContext<{ initialOptions: GridStackOptions; gridStack: GridStack | null; - addWidget: (fn: (id: string) => Omit) => void; + addWidget: (widget: GridStackWidget & { id: Required["id"] }) => void; removeWidget: (id: string) => void; addSubGrid: ( - fn: ( - id: string, - withWidget: (w: Omit) => GridStackWidget - ) => Omit + subGrid: GridStackWidget & { + id: Required["id"]; + subGridOpts: Required["subGridOpts"] & { + children: Array["id"] }> + } + } ) => void; saveOptions: () => GridStackOptions | GridStackWidget[] | undefined; + removeAll: () => void; _gridStack: { value: GridStack | null; diff --git a/react/lib/grid-stack-provider.tsx b/react/lib/grid-stack-provider.tsx index 1afe4348c..ff262b555 100644 --- a/react/lib/grid-stack-provider.tsx +++ b/react/lib/grid-stack-provider.tsx @@ -1,4 +1,4 @@ -import type { GridStack, GridStackOptions, GridStackWidget } from "gridstack"; +import type { GridItemHTMLElement, GridStack, GridStackOptions, GridStackWidget } from "gridstack"; import { type PropsWithChildren, useCallback, useState } from "react"; import { GridStackContext } from "./grid-stack-context"; @@ -26,13 +26,11 @@ export function GridStackProvider({ }); const addWidget = useCallback( - (fn: (id: string) => Omit) => { - const newId = `widget-${Math.random().toString(36).substring(2, 15)}`; - const widget = fn(newId); - gridStack?.addWidget({ ...widget, id: newId }); + (widget: GridStackWidget & { id: Required["id"] }) => { + gridStack?.addWidget(widget); setRawWidgetMetaMap((prev) => { const newMap = new Map(prev); - newMap.set(newId, widget); + newMap.set(widget.id, widget); return newMap; }); }, @@ -40,29 +38,18 @@ export function GridStackProvider({ ); const addSubGrid = useCallback( - ( - fn: ( - id: string, - withWidget: (w: Omit) => GridStackWidget - ) => Omit - ) => { - const newId = `sub-grid-${Math.random().toString(36).substring(2, 15)}`; - const subWidgetIdMap = new Map(); - - const widget = fn(newId, (w) => { - const subWidgetId = `widget-${Math.random() - .toString(36) - .substring(2, 15)}`; - subWidgetIdMap.set(subWidgetId, w); - return { ...w, id: subWidgetId }; - }); - - gridStack?.addWidget({ ...widget, id: newId }); + (subGrid: GridStackWidget & { + id: Required["id"]; + subGridOpts: Required["subGridOpts"] & { + children: Array["id"] }> + } + }) => { + gridStack?.addWidget(subGrid); setRawWidgetMetaMap((prev) => { const newMap = new Map(prev); - subWidgetIdMap.forEach((meta, id) => { - newMap.set(id, meta); + subGrid.subGridOpts?.children?.forEach((meta: GridStackWidget & { id: Required["id"] }) => { + newMap.set(meta.id, meta); }); return newMap; }); @@ -72,7 +59,9 @@ export function GridStackProvider({ const removeWidget = useCallback( (id: string) => { - gridStack?.removeWidget(id); + const element = document.body.querySelector(`[gs-id="${id}"]`); + if (element) gridStack?.removeWidget(element); + setRawWidgetMetaMap((prev) => { const newMap = new Map(prev); newMap.delete(id); @@ -86,6 +75,11 @@ export function GridStackProvider({ return gridStack?.save(true, true, (_, widget) => widget); }, [gridStack]); + const removeAll = useCallback(() => { + gridStack?.removeAll(); + setRawWidgetMetaMap(new Map()); + }, [gridStack]); + return ( - + @@ -149,7 +149,7 @@ export function GridStackDemo() { - + @@ -175,7 +175,10 @@ function Toolbar() { >