@slickgrid-universal/row-detail-plugin 0.0.0 → 11.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,25 @@
1
+ Copyright (c) 2020-present, Ghislain B.
2
+ https://github.com/ghiscoding/slickgrid-universal
3
+
4
+ and the original author of SlickGrid
5
+ Michael Leibman, michael{dot}leibman{at}gmail{dot}com
6
+ http://github.com/mleibman/slickgrid
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining
9
+ a copy of this software and associated documentation files (the
10
+ "Software"), to deal in the Software without restriction, including
11
+ without limitation the rights to use, copy, modify, merge, publish,
12
+ distribute, sublicense, and/or sell copies of the Software, and to
13
+ permit persons to whom the Software is furnished to do so, subject to
14
+ the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be
17
+ included in all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
23
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
24
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
25
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -1,45 +1,32 @@
1
- # @slickgrid-universal/row-detail-plugin
1
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
2
+ [![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-%230074c1.svg)](http://www.typescriptlang.org/)
3
+ [![lerna--lite](https://img.shields.io/badge/maintained%20with-lerna--lite-e137ff)](https://github.com/ghiscoding/lerna-lite)
4
+ [![npm](https://img.shields.io/npm/v/@slickgrid-universal/row-detail-plugin.svg)](https://www.npmjs.com/package/@slickgrid-universal/row-detail-plugin)
5
+ [![npm](https://img.shields.io/npm/dy/@slickgrid-universal/row-detail-plugin)](https://www.npmjs.com/package/@slickgrid-universal/row-detail-plugin)
2
6
 
3
- ## ⚠️ IMPORTANT NOTICE ⚠️
7
+ ## Slick Row Detail View (plugin)
8
+ #### @slickgrid-universal/row-detail-plugin
4
9
 
5
- **This package is created solely for the purpose of setting up OIDC (OpenID Connect) trusted publishing with npm.**
10
+ A plugin to add Row Detail View Panel that can be expanded/collapsed, the plugin was created from a proof of concept that came out from this StackOverflow question & article which has full details on it was made possible (thanks to @violet313 for making it happen).
11
+ * [Can SlickGrid's row height be dynamically altered? - on Stack Overflow](https://stackoverflow.com/questions/10535164/can-slickgrids-row-height-be-dynamically-altered#29399927)
12
+ * [a responsive slickgrid with dynamic row-heights by violet313](https://violet313.github.io)
6
13
 
7
- This is **NOT** a functional package and contains **NO** code or functionality beyond the OIDC setup configuration.
14
+ ### Rendering (v11+)
8
15
 
9
- ## Purpose
16
+ Row Detail panels always render in an overlay layer above the grid rows. The `rowTopOffsetRenderType` grid option and the Row Detail `renderMode` option have been removed. See the [Row Detail guide](../../docs/grid-functionalities/row-detail.md#overlay-rendering) for configuration and the [v11 migration guide](../../docs/migrations/migration-to-11.x.md#row-positioning-rowtopoffsetrendertype) for upgrade instructions.
10
17
 
11
- This package exists to:
12
- 1. Configure OIDC trusted publishing for the package name `@slickgrid-universal/row-detail-plugin`
13
- 2. Enable secure, token-less publishing from CI/CD workflows
14
- 3. Establish provenance for packages published under this name
18
+ ### Installation
19
+ Follow the instruction provided in the main [README](https://github.com/ghiscoding/slickgrid-universal#installation)
15
20
 
16
- ## What is OIDC Trusted Publishing?
17
21
 
18
- OIDC trusted publishing allows package maintainers to publish packages directly from their CI/CD workflows without needing to manage npm access tokens. Instead, it uses OpenID Connect to establish trust between the CI/CD provider (like GitHub Actions) and npm.
22
+ ### Styling (v11+)
23
+ Import the Row Detail stylesheet after your SlickGrid theme in your application's global SCSS entry file:
19
24
 
20
- ## Setup Instructions
25
+ ```scss
26
+ @use '@slickgrid-universal/common/dist/styles/sass/slickgrid-theme-bootstrap.scss';
27
+ @use '@slickgrid-universal/row-detail-plugin/dist/styles/sass/slick-row-detail.scss';
28
+ ```
21
29
 
22
- To properly configure OIDC trusted publishing for this package:
30
+ For plain CSS, import `@slickgrid-universal/common/dist/styles/css/slickgrid-theme-bootstrap.css` first, followed by `@slickgrid-universal/row-detail-plugin/dist/styles/css/slick-row-detail-bootstrap.css`. Replace `bootstrap` with your theme name (`default`, `fluent`, `material`, or `salesforce`); lite themes use the same package stylesheet.
23
31
 
24
- 1. Go to [npmjs.com](https://www.npmjs.com/) and navigate to your package settings
25
- 2. Configure the trusted publisher (e.g., GitHub Actions)
26
- 3. Specify the repository and workflow that should be allowed to publish
27
- 4. Use the configured workflow to publish your actual package
28
-
29
- ## DO NOT USE THIS PACKAGE
30
-
31
- This package is a placeholder for OIDC configuration only. It:
32
- - Contains no executable code
33
- - Provides no functionality
34
- - Should not be installed as a dependency
35
- - Exists only for administrative purposes
36
-
37
- ## More Information
38
-
39
- For more details about npm's trusted publishing feature, see:
40
- - [npm Trusted Publishing Documentation](https://docs.npmjs.com/generating-provenance-statements)
41
- - [GitHub Actions OIDC Documentation](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)
42
-
43
- ---
44
-
45
- **Maintained for OIDC setup purposes only**
32
+ These styles also support the Angular, Aurelia, React, and Vue Row Detail plugins. Add this base package as a direct dependency when importing its styles.
@@ -0,0 +1,2 @@
1
+ export * from './slickRowDetailView.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './slickRowDetailView.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,189 @@
1
+ import { SlickEvent, SlickEventHandler } from '@slickgrid-universal/common';
2
+ import type { Column, ExternalResource, FormatterResultWithHtml, GridOption, OnAfterRowDetailToggleArgs, OnBeforeRowDetailToggleArgs, OnRowBackOrOutOfViewportRangeArgs, OnRowDetailAsyncEndUpdateArgs, OnRowDetailAsyncResponseArgs, PubSubService, RowDetailView, RowDetailViewOption, SlickDataView, SlickEventData, SlickGrid, SlickRowDetailView as UniversalRowDetailView, UsabilityOverrideFn } from '@slickgrid-universal/common';
3
+ /**
4
+ * A plugin to add Row Detail Panel View (for example providing order detail info when clicking on the order row in the grid)
5
+ * Original StackOverflow question & article making this possible (thanks to violet313)
6
+ * https://stackoverflow.com/questions/10535164/can-slickgrids-row-height-be-dynamically-altered#29399927
7
+ * http://violet313.org/slickgrids/#intro
8
+ */
9
+ export declare class SlickRowDetailView implements ExternalResource, UniversalRowDetailView {
10
+ protected readonly pubSubService: PubSubService;
11
+ pluginName: string;
12
+ /** Fired when the async response finished */
13
+ onAsyncEndUpdate: SlickEvent<OnRowDetailAsyncEndUpdateArgs>;
14
+ /** This event must be used with the "notify" by the end user once the Asynchronous Server call returns the item detail */
15
+ onAsyncResponse: SlickEvent<OnRowDetailAsyncResponseArgs>;
16
+ /** Fired after the row detail gets toggled */
17
+ onAfterRowDetailToggle: SlickEvent<OnAfterRowDetailToggleArgs>;
18
+ /** Fired before the row detail gets toggled */
19
+ onBeforeRowDetailToggle: SlickEvent<OnBeforeRowDetailToggleArgs>;
20
+ /** Fired just before a row becomes out of viewport range (you can use this event to save inner Grid State before it gets destroyed) */
21
+ onBeforeRowOutOfViewportRange: SlickEvent<OnRowBackOrOutOfViewportRangeArgs>;
22
+ /** Fired after the row detail gets toggled */
23
+ onRowBackToViewportRange: SlickEvent<OnRowBackOrOutOfViewportRangeArgs>;
24
+ /** Fired after a row becomes out of viewport range (when user can't see the row anymore) */
25
+ onRowOutOfViewportRange: SlickEvent<OnRowBackOrOutOfViewportRangeArgs>;
26
+ protected _addonOptions: RowDetailView;
27
+ protected _dataViewIdProperty: string;
28
+ protected _eventHandler: SlickEventHandler;
29
+ protected _expandableOverride: UsabilityOverrideFn | null;
30
+ protected _expandedRowIds: Set<number | string>;
31
+ protected _grid: SlickGrid;
32
+ protected _gridRowBuffer: number;
33
+ protected _gridUid: string;
34
+ protected _keyPrefix: string;
35
+ protected _disposedRows: Set<number>;
36
+ protected _rowIdsOutOfViewport: Set<number | string>;
37
+ protected _renderedViewportRowIds: Set<number | string>;
38
+ protected _pendingBackToViewportRows: Map<number | string, any>;
39
+ protected _renderedCollapsedGroupIds: Set<number | string>;
40
+ protected _renderedIds: Set<number | string>;
41
+ protected _overlayPanels: Map<number | string, HTMLDivElement>;
42
+ protected _pendingAsyncEndUpdates: Map<number | string, {
43
+ eventData: SlickEventData;
44
+ item: any;
45
+ isDataViewUpdated: boolean;
46
+ }>;
47
+ protected _isUpdatingAsyncResponse: boolean;
48
+ protected _visibleRenderedCell?: {
49
+ startRow: number;
50
+ endRow: number;
51
+ };
52
+ protected _backViewportTimer: any;
53
+ protected _lastScrollLeft: number;
54
+ protected _defaults: RowDetailView;
55
+ /** Constructor of the SlickGrid 3rd party plugin, it can optionally receive options */
56
+ constructor(pubSubService: PubSubService);
57
+ get addonOptions(): RowDetailView;
58
+ /** Getter of SlickGrid DataView object */
59
+ get dataView(): SlickDataView;
60
+ get dataViewIdProperty(): string;
61
+ get eventHandler(): SlickEventHandler;
62
+ /** Getter for the Grid Options pulled through the Grid Object */
63
+ get gridOptions(): GridOption;
64
+ get gridUid(): string;
65
+ set rowIdsOutOfViewport(rowIds: Array<string | number>);
66
+ /**
67
+ * Initialize the Export Service
68
+ * @param _grid
69
+ */
70
+ init(grid: SlickGrid): void;
71
+ /** Dispose of the Slick Row Detail View */
72
+ dispose(): void;
73
+ create(columns: Column[], gridOptions: GridOption): UniversalRowDetailView | null;
74
+ /** Get current plugin options */
75
+ getOptions(): RowDetailViewOption;
76
+ /** set or change some of the plugin options */
77
+ setOptions(options: Partial<RowDetailViewOption>): void;
78
+ /** Collapse all of the open items */
79
+ collapseAll(): void;
80
+ /** Collapse an Item so it is not longer seen */
81
+ collapseDetailView(itemId: number | string, isMultipleCollapsing?: boolean): void;
82
+ /** Expand a row given the dataview item that is to be expanded */
83
+ expandDetailView(itemId: number | string): void;
84
+ /** Reset disposed rows while preserving mounted overlays and their viewport state. */
85
+ resetRenderedRows(): void;
86
+ /** Saves the current state of the detail view */
87
+ saveDetailView(item: any): void;
88
+ /**
89
+ * subscribe to the onAsyncResponse so that the plugin knows when the user server side calls finished
90
+ * the response has to be as "args.item" with it's data back
91
+ */
92
+ handleOnAsyncResponse(e: SlickEventData, args: {
93
+ item: any;
94
+ detailView?: any;
95
+ }): void;
96
+ /**
97
+ * Override the logic for showing (or not) the expand icon (use case example: only every 2nd row is expandable)
98
+ * Method that user can pass to override the default behavior or making every row an expandable row.
99
+ * In order word, user can choose which rows to be an available row detail (or not) by providing his own logic.
100
+ * @param overrideFn: override function callback
101
+ */
102
+ expandableOverride(overrideFn: UsabilityOverrideFn): void;
103
+ getExpandableOverride(): UsabilityOverrideFn | null;
104
+ /** Get the Column Definition of the first column dedicated to toggling the Row Detail View */
105
+ getColumnDefinition(): Column;
106
+ /** return the currently expanded rows */
107
+ getExpandedRowIds(): Array<number | string>;
108
+ /** return the rows that are out of the viewport */
109
+ getOutOfViewportRows(): Array<number | string>;
110
+ /** Takes in the item we are filtering and if it is an expanded row returns it's parents row to filter on */
111
+ getFilterItem(item: any): any;
112
+ /** Resize the Row Detail View */
113
+ resizeDetailView(item: any): void;
114
+ /**
115
+ * Hide any expanded Row Detail whose parent row is no longer part of the (filtered) DataView, without collapsing it,
116
+ * so that it reopens automatically once the parent row is back in the filtered/sorted dataset.
117
+ * Runs synchronously off DataView events, ahead of any framework-specific "onFilterChanged" redraw, to avoid removing
118
+ * a Row Detail container while a framework adapter is in the middle of (re)rendering into it.
119
+ */
120
+ protected hideRowDetailsForFilteredOutParents(): void;
121
+ /**
122
+ * (re)calculate/sync row detail views that are out of range of the viewport and trigger events (when enabled)
123
+ * @param {Boolean} [triggerEvent] - should trigger notify event which will re-render the detail view
124
+ * @param {Number} [delay] - optional delay to execute the calculation of out of range views
125
+ * @param {Boolean} [renderPanels] - skip the extra positioning pass when scrolling relies on the grid render
126
+ */
127
+ recalculateOutOfRangeViews(triggerEvent?: boolean, delay?: number, renderPanels?: boolean): void;
128
+ /** Framework adapters can synchronously dispose their preload/current view before SlickGrid replaces its template. */
129
+ protected beforeDetailViewRender(_item: any): void;
130
+ /** Framework adapters can mount their view after SlickGrid rendered. */
131
+ protected renderDetailView(_item: any): void | Promise<void>;
132
+ /** Complete pending async responses only after SlickGrid has finished its actual render cycle. */
133
+ protected flushPendingAsyncEndUpdates(): void;
134
+ /** Render all expanded panels in sibling overlay layers of their grid canvases. */
135
+ protected renderOverlayPanels(): void;
136
+ /** Remove all mounted and detached detail panels. */
137
+ protected disposeOverlayPanels(): void;
138
+ /** Remove one panel without disturbing other expanded Row Details. */
139
+ protected removeOverlayPanel(itemId: number | string): void;
140
+ /** Replace a framework-owned overlay panel after its preload component is unmounted. */
141
+ protected refreshOverlayPanel(item: any): void;
142
+ /** Keep an existing overlay aligned after row heights or data-view positions change. */
143
+ protected updateOverlayPanelPosition(panel: HTMLDivElement, item: any, row: number): void;
144
+ /** Follow the reserved padding rows even when the parent is docked elsewhere. */
145
+ protected getDetailPanelTopOffset(row: number): number;
146
+ /** Render or replace the detail content inside a panel container. */
147
+ protected renderDetailContent(container: HTMLElement, item: any): void;
148
+ /** Create the Row Detail panel DOM without deciding where it is mounted. */
149
+ protected createDetailViewElement(dataContext: any, _row: number): HTMLDivElement;
150
+ /**
151
+ * create the row detail ctr node. this belongs to the dev & can be custom-styled as per
152
+ * @param {Object} item
153
+ */
154
+ protected applyTemplateNewLineHeight(item: any): void;
155
+ protected notifyViewportChange(item: any, action: 'add' | 'remove', triggerEvent?: boolean): void;
156
+ protected checkExpandableOverride(row: number, dataContext: any, grid: SlickGrid): boolean;
157
+ /** Get the Row Detail padding (which are the rows dedicated to the detail panel) */
158
+ protected getPaddingItem(parent: any, offset: any): any;
159
+ /** The Formatter of the toggling icon of the Row Detail */
160
+ protected detailSelectionFormatter(row: number, _cell: number, _val: any, _colDef: Column, dataContext: any, grid: SlickGrid): FormatterResultWithHtml | HTMLElement | '';
161
+ /** When row is getting toggled, we will handle the action of collapsing/expanding */
162
+ protected handleAccordionShowHide(item: any): void;
163
+ /** Handle keyboard a11y for row detail toggle: Space, ArrowRight (expand), ArrowLeft (collapse). */
164
+ protected handleKeyDown(e: SlickEventData): void;
165
+ /** Handle mouse click event */
166
+ protected handleClick(e: SlickEventData, args: {
167
+ row: number;
168
+ cell: number;
169
+ }): void;
170
+ /** Triggered when a one or all data Groups are collapsed */
171
+ protected handleGroupCollapsed(groupingKey: number | string | null): void;
172
+ /** Triggered when a one or all data Groups are expanded */
173
+ protected handleGroupExpanded(groupingKey: number | string | null): void;
174
+ protected handleRemoveRow(rowIndex: number): void;
175
+ /** Let framework adapters release views before a detail row leaves the rendered range. */
176
+ protected notifyBeforeOutOfViewport(item: any, rowIndex?: number): void;
177
+ /** Get the item IDs of the Row Details that are expanded and under a specific Group */
178
+ protected getGroupItemIds(groupingKey: string | number): Array<number | string>;
179
+ protected notifyOutOfViewport(item: any): void;
180
+ protected notifyBackToViewportWhenDomExist(item: any): void;
181
+ /**
182
+ * keep any row detail that are shown on top of the row that we're opening
183
+ * but invalidate any rows that are after the row that we're opening
184
+ */
185
+ protected reevaluateRenderedRowIds(item: any): void;
186
+ protected syncOutOfViewportArray(rowId: number | string, isAdding: boolean): Set<string | number>;
187
+ protected toggleRowSelection(rowNumber: number, dataContext: any): void;
188
+ }
189
+ //# sourceMappingURL=slickRowDetailView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slickRowDetailView.d.ts","sourceRoot":"","sources":["../src/slickRowDetailView.ts"],"names":[],"mappings":"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"}