@slickgrid-universal/vanilla-bundle 0.19.1 → 1.2.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.
Files changed (36) hide show
  1. package/CHANGELOG.md +69 -3
  2. package/README.md +30 -30
  3. package/dist/commonjs/components/slick-vanilla-grid-bundle.d.ts +150 -43
  4. package/dist/commonjs/components/slick-vanilla-grid-bundle.js +17 -62
  5. package/dist/commonjs/components/slick-vanilla-grid-bundle.js.map +1 -1
  6. package/dist/commonjs/index.d.ts +16 -26
  7. package/dist/commonjs/index.js +1 -3
  8. package/dist/commonjs/index.js.map +1 -1
  9. package/dist/esm/components/slick-vanilla-grid-bundle.d.ts +150 -44
  10. package/dist/esm/components/slick-vanilla-grid-bundle.js +19 -66
  11. package/dist/esm/components/slick-vanilla-grid-bundle.js.map +1 -1
  12. package/dist/esm/index.d.ts +16 -27
  13. package/dist/esm/index.js +1 -2
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/interfaces/index.d.ts +0 -1
  16. package/dist/esm/interfaces/slickerGridInstance.interface.d.ts +0 -1
  17. package/dist/esm/services/index.d.ts +0 -1
  18. package/dist/esm/services/universalContainer.service.d.ts +0 -1
  19. package/package.json +10 -25
  20. package/dist/bundle/index.d.ts +0 -451
  21. package/dist/bundle/slickgrid-vanilla-bundle.js +0 -3
  22. package/dist/bundle/slickgrid-vanilla-bundle.js.LICENSE.txt +0 -189
  23. package/dist/bundle/slickgrid-vanilla-bundle.js.map +0 -1
  24. package/dist/commonjs/salesforce-global-grid-options.d.ts +0 -3
  25. package/dist/commonjs/salesforce-global-grid-options.js +0 -82
  26. package/dist/commonjs/salesforce-global-grid-options.js.map +0 -1
  27. package/dist/esm/components/slick-vanilla-grid-bundle.d.ts.map +0 -1
  28. package/dist/esm/index.d.ts.map +0 -1
  29. package/dist/esm/interfaces/index.d.ts.map +0 -1
  30. package/dist/esm/interfaces/slickerGridInstance.interface.d.ts.map +0 -1
  31. package/dist/esm/salesforce-global-grid-options.d.ts +0 -4
  32. package/dist/esm/salesforce-global-grid-options.d.ts.map +0 -1
  33. package/dist/esm/salesforce-global-grid-options.js +0 -79
  34. package/dist/esm/salesforce-global-grid-options.js.map +0 -1
  35. package/dist/esm/services/index.d.ts.map +0 -1
  36. package/dist/esm/services/universalContainer.service.d.ts.map +0 -1
@@ -8,34 +8,32 @@ import 'slickgrid/lib/jquery.mousewheel';
8
8
  import 'slickgrid/slick.core';
9
9
  import 'slickgrid/slick.grid';
10
10
  import 'slickgrid/slick.dataview';
11
- import 'slickgrid/slick.groupitemmetadataprovider';
12
- import { BackendServiceApi, Column, ExtensionList, GridOption, Metrics, Pagination, ServicePagination, SlickDataView, SlickEventHandler, SlickGrid, SlickGroupItemMetadataProvider, Subscription, ExtensionUtility, BackendUtilityService, CollectionService, ExtensionService, FilterFactory, FilterService, GridEventService, GridService, GridStateService, GroupingAndColspanService, PaginationService, ResizerService, RxJsFacade, SharedService, SortService, TranslaterService, TreeDataService } from '@slickgrid-universal/common';
11
+ import { BackendServiceApi, Column, ExtensionList, ExternalResource, GridOption, Metrics, Pagination, ServicePagination, SlickDataView, SlickEventHandler, SlickGrid, SlickGroupItemMetadataProvider, Subscription, BackendUtilityService, CollectionService, ExtensionService, ExtensionUtility, FilterFactory, FilterService, GridEventService, GridService, GridStateService, GroupingAndColspanService, Observable, PaginationService, ResizerService, RxJsFacade, SharedService, SortService, TranslaterService, TreeDataService } from '@slickgrid-universal/common';
13
12
  import { EventPubSubService } from '@slickgrid-universal/event-pub-sub';
14
- import { SlickCompositeEditorComponent } from '@slickgrid-universal/composite-editor-component';
15
13
  import { SlickEmptyWarningComponent } from '@slickgrid-universal/empty-warning-component';
16
14
  import { SlickFooterComponent } from '@slickgrid-universal/custom-footer-component';
17
15
  import { SlickPaginationComponent } from '@slickgrid-universal/pagination-component';
18
16
  import { SlickerGridInstance } from '../interfaces/slickerGridInstance.interface';
19
17
  import { UniversalContainerService } from '../services/universalContainer.service';
20
18
  export declare class SlickVanillaGridBundle {
21
- private _currentDatasetLength;
22
- private _eventPubSubService;
23
- private _columnDefinitions?;
24
- private _gridOptions?;
25
- private _gridContainerElm;
26
- private _gridParentContainerElm;
27
- private _hideHeaderRowAfterPageLoad;
28
- private _isDatasetInitialized;
29
- private _isDatasetHierarchicalInitialized;
30
- private _isGridInitialized;
31
- private _isLocalGrid;
32
- private _isPaginationInitialized;
33
- private _eventHandler;
34
- private _extensions;
35
- private _paginationOptions;
36
- private _registeredResources;
37
- private _slickgridInitialized;
38
- private _slickerGridInstances;
19
+ protected _currentDatasetLength: number;
20
+ protected _eventPubSubService: EventPubSubService;
21
+ protected _columnDefinitions?: Column[];
22
+ protected _gridOptions?: GridOption;
23
+ protected _gridContainerElm: HTMLElement;
24
+ protected _gridParentContainerElm: HTMLElement;
25
+ protected _hideHeaderRowAfterPageLoad: boolean;
26
+ protected _isDatasetInitialized: boolean;
27
+ protected _isDatasetHierarchicalInitialized: boolean;
28
+ protected _isGridInitialized: boolean;
29
+ protected _isLocalGrid: boolean;
30
+ protected _isPaginationInitialized: boolean;
31
+ protected _eventHandler: SlickEventHandler;
32
+ protected _extensions: ExtensionList<any> | undefined;
33
+ protected _paginationOptions: Pagination | undefined;
34
+ protected _registeredResources: ExternalResource[];
35
+ protected _slickgridInitialized: boolean;
36
+ protected _slickerGridInstances: SlickerGridInstance | undefined;
39
37
  backendServiceApi: BackendServiceApi | undefined;
40
38
  dataView?: SlickDataView;
41
39
  slickGrid?: SlickGrid;
@@ -56,6 +54,8 @@ export declare class SlickVanillaGridBundle {
56
54
  extensionService: ExtensionService;
57
55
  filterFactory: FilterFactory;
58
56
  filterService: FilterService;
57
+ gridClass: string;
58
+ gridClassName: string;
59
59
  gridEventService: GridEventService;
60
60
  gridService: GridService;
61
61
  gridStateService: GridStateService;
@@ -67,12 +67,9 @@ export declare class SlickVanillaGridBundle {
67
67
  translaterService: TranslaterService | undefined;
68
68
  treeDataService: TreeDataService;
69
69
  universalContainerService: UniversalContainerService;
70
- slickCompositeEditor: SlickCompositeEditorComponent | undefined;
71
70
  slickEmptyWarning: SlickEmptyWarningComponent | undefined;
72
71
  slickFooter: SlickFooterComponent | undefined;
73
72
  slickPagination: SlickPaginationComponent | undefined;
74
- gridClass: string;
75
- gridClassName: string;
76
73
  get eventHandler(): SlickEventHandler;
77
74
  get columnDefinitions(): Column[];
78
75
  set columnDefinitions(columnDefinitions: Column[]);
@@ -88,7 +85,7 @@ export declare class SlickVanillaGridBundle {
88
85
  set isDatasetInitialized(isInitialized: boolean);
89
86
  get isGridInitialized(): boolean;
90
87
  get instances(): SlickerGridInstance | undefined;
91
- get extensions(): ExtensionList<any, any> | undefined;
88
+ get extensions(): ExtensionList<any> | undefined;
92
89
  get registeredResources(): any[];
93
90
  /**
94
91
  * Slicker Grid Bundle constructor
@@ -164,59 +161,168 @@ export declare class SlickVanillaGridBundle {
164
161
  * Loop through all column definitions and copy the original optional `width` properties optionally provided by the user.
165
162
  * We will use this when doing a resize by cell content, if user provided a `width` it won't override it.
166
163
  */
167
- private copyColumnWidthsReference;
168
- private displayEmptyDataWarning;
164
+ protected copyColumnWidthsReference(columnDefinitions: Column[]): void;
165
+ protected displayEmptyDataWarning(showWarning?: boolean): void;
169
166
  /** When data changes in the DataView, we'll refresh the metrics and/or display a warning if the dataset is empty */
170
- private handleOnItemCountChanged;
167
+ protected handleOnItemCountChanged(currentPageRowItemCount: number, totalItemCount: number): void;
171
168
  /** Initialize the Pagination Service once */
172
- private initializePaginationService;
169
+ protected initializePaginationService(paginationOptions: Pagination): void;
173
170
  /**
174
171
  * Render (or dispose) the Pagination Component, user can optionally provide False (to not show it) which will in term dispose of the Pagination,
175
172
  * also while disposing we can choose to omit the disposable of the Pagination Service (if we are simply toggling the Pagination, we want to keep the Service alive)
176
173
  * @param {Boolean} showPagination - show (new render) or not (dispose) the Pagination
177
174
  * @param {Boolean} shouldDisposePaginationService - when disposing the Pagination, do we also want to dispose of the Pagination Service? (defaults to True)
178
175
  */
179
- private renderPagination;
176
+ protected renderPagination(showPagination?: boolean): void;
180
177
  /** Load the Editor Collection asynchronously and replace the "collection" property when Promise resolves */
181
- private loadEditorCollectionAsync;
178
+ protected loadEditorCollectionAsync(column: Column): void;
182
179
  /** Load any possible Columns Grid Presets */
183
- private loadColumnPresetsWhenDatasetInitialized;
180
+ protected loadColumnPresetsWhenDatasetInitialized(): void;
184
181
  /** Load any possible Filters Grid Presets */
185
- private loadFilterPresetsWhenDatasetInitialized;
182
+ protected loadFilterPresetsWhenDatasetInitialized(): void;
186
183
  /**
187
184
  * local grid, check if we need to show the Pagination
188
185
  * if so then also check if there's any presets and finally initialize the PaginationService
189
186
  * a local grid with Pagination presets will potentially have a different total of items, we'll need to get it from the DataView and update our total
190
187
  */
191
- private loadLocalGridPagination;
188
+ protected loadLocalGridPagination(dataset?: any[]): void;
192
189
  /** Load any Row Selections into the DataView that were presets by the user */
193
- private loadRowSelectionPresetWhenExists;
190
+ protected loadRowSelectionPresetWhenExists(): void;
194
191
  /** Pre-Register any Resource that don't require SlickGrid to be instantiated (for example RxJS Resource) */
195
- private preRegisterResources;
196
- private registerResources;
192
+ protected preRegisterResources(): void;
193
+ protected registerResources(): void;
197
194
  /** Register the RxJS Resource in all necessary services which uses */
198
- private registerRxJsResource;
195
+ protected registerRxJsResource(resource: RxJsFacade): void;
199
196
  /**
200
197
  * Takes a flat dataset with parent/child relationship, sort it (via its tree structure) and return the sorted flat array
201
198
  * @returns {Array<Object>} sort flat parent/child dataset
202
199
  */
203
- private sortTreeDataset;
200
+ protected sortTreeDataset<T>(flatDatasetInput: T[], forceGridRefresh?: boolean): T[];
204
201
  /**
205
202
  * For convenience to the user, we provide the property "editor" as an Slickgrid-Universal editor complex object
206
203
  * however "editor" is used internally by SlickGrid for it's own Editor Factory
207
204
  * so in our lib we will swap "editor" and copy it into a new property called "internalColumnEditor"
208
205
  * then take back "editor.model" and make it the new "editor" so that SlickGrid Editor Factory still works
209
206
  */
210
- private swapInternalEditorToSlickGridFactoryEditor;
207
+ protected swapInternalEditorToSlickGridFactoryEditor(columnDefinitions: Column[]): {
208
+ editor: any;
209
+ internalColumnEditor: {
210
+ alwaysSaveOnEnterKey?: boolean | undefined;
211
+ ariaLabel?: string | undefined;
212
+ callbacks?: any;
213
+ collectionAsync?: Promise<any> | Observable<any> | undefined;
214
+ collection?: any[] | undefined;
215
+ collectionFilterBy?: import("@slickgrid-universal/common").CollectionFilterBy | import("@slickgrid-universal/common").CollectionFilterBy[] | undefined;
216
+ collectionOptions?: import("@slickgrid-universal/common").CollectionOption | undefined;
217
+ collectionOverride?: ((collectionInput: any[], args: import("@slickgrid-universal/common").CollectionOverrideArgs) => any[]) | undefined;
218
+ collectionSortBy?: import("@slickgrid-universal/common").CollectionSortBy | import("@slickgrid-universal/common").CollectionSortBy[] | undefined;
219
+ complexObjectPath?: string | undefined;
220
+ compositeEditorFormOrder?: number | undefined;
221
+ customStructure?: import("@slickgrid-universal/common").CollectionCustomStructure | undefined;
222
+ decimal?: number | undefined;
223
+ disabled?: boolean | undefined;
224
+ editorOptions?: any;
225
+ enableRenderHtml?: boolean | undefined;
226
+ enableTranslateLabel?: boolean | undefined;
227
+ errorMessage?: string | undefined;
228
+ massUpdate?: boolean | undefined;
229
+ maxLength?: number | undefined;
230
+ maxValue?: string | number | undefined;
231
+ minLength?: number | undefined;
232
+ minValue?: string | number | undefined;
233
+ model?: any;
234
+ placeholder?: string | undefined;
235
+ operatorConditionalType?: "inclusive" | "exclusive" | undefined;
236
+ queryField?: string | undefined;
237
+ required?: boolean | undefined;
238
+ serializeComplexValueFormat?: "object" | "flat" | undefined;
239
+ title?: string | undefined;
240
+ type?: "string" | "number" | "boolean" | "object" | "text" | "unknown" | "integer" | "float" | "date" | "dateIso" | "dateUtc" | "dateTime" | "dateTimeIso" | "dateTimeIsoAmPm" | "dateTimeIsoAM_PM" | "dateTimeShortIso" | "dateEuro" | "dateEuroShort" | "dateTimeShortEuro" | "dateTimeEuro" | "dateTimeEuroAmPm" | "dateTimeEuroAM_PM" | "dateTimeEuroShort" | "dateTimeEuroShortAmPm" | "dateTimeEuroShortAM_PM" | "dateUs" | "dateUsShort" | "dateTimeShortUs" | "dateTimeUs" | "dateTimeUsAmPm" | "dateTimeUsAM_PM" | "dateTimeUsShort" | "dateTimeUsShortAmPm" | "dateTimeUsShortAM_PM" | "password" | "readonly" | undefined;
241
+ validator?: import("@slickgrid-universal/common").EditorValidator | undefined;
242
+ valueStep?: string | number | undefined;
243
+ params?: any;
244
+ };
245
+ alwaysRenderColumn?: boolean | undefined;
246
+ asyncPostRender?: ((domCellNode: any, row: number, dataContext: any, columnDef: Column<any>) => void) | undefined;
247
+ behavior?: string | undefined;
248
+ cannotTriggerInsert?: boolean | undefined;
249
+ cellMenu?: import("@slickgrid-universal/common").CellMenu | undefined;
250
+ columnGroup?: string | undefined;
251
+ columnGroupKey?: string | undefined;
252
+ colspan?: number | "*" | undefined;
253
+ cssClass?: string | undefined;
254
+ customTooltip?: import("@slickgrid-universal/common").CustomTooltipOption<any> | undefined;
255
+ dataKey?: string | undefined;
256
+ defaultSortAsc?: boolean | undefined;
257
+ denyPaste?: boolean | undefined;
258
+ disableTooltip?: boolean | undefined;
259
+ excludeFromColumnPicker?: boolean | undefined;
260
+ excludeFromExport?: boolean | undefined;
261
+ excludeFromGridMenu?: boolean | undefined;
262
+ excludeFromQuery?: boolean | undefined;
263
+ excludeFromHeaderMenu?: boolean | undefined;
264
+ exportColumnWidth?: number | undefined;
265
+ exportCustomFormatter?: import("@slickgrid-universal/common").Formatter<any> | undefined;
266
+ exportCustomGroupTotalsFormatter?: import("@slickgrid-universal/common").GroupTotalsFormatter | undefined;
267
+ exportWithFormatter?: boolean | undefined;
268
+ exportCsvForceToKeepAsString?: boolean | undefined;
269
+ field: string;
270
+ fields?: string[] | undefined;
271
+ filter?: import("@slickgrid-universal/common").ColumnFilter | undefined;
272
+ filterable?: boolean | undefined;
273
+ filterSearchType?: "string" | "number" | "boolean" | "object" | "text" | "unknown" | "integer" | "float" | "date" | "dateIso" | "dateUtc" | "dateTime" | "dateTimeIso" | "dateTimeIsoAmPm" | "dateTimeIsoAM_PM" | "dateTimeShortIso" | "dateEuro" | "dateEuroShort" | "dateTimeShortEuro" | "dateTimeEuro" | "dateTimeEuroAmPm" | "dateTimeEuroAM_PM" | "dateTimeEuroShort" | "dateTimeEuroShortAmPm" | "dateTimeEuroShortAM_PM" | "dateUs" | "dateUsShort" | "dateTimeShortUs" | "dateTimeUs" | "dateTimeUsAmPm" | "dateTimeUsAM_PM" | "dateTimeUsShort" | "dateTimeUsShortAmPm" | "dateTimeUsShortAM_PM" | "password" | "readonly" | undefined;
274
+ focusable?: boolean | undefined;
275
+ formatter?: import("@slickgrid-universal/common").Formatter<any> | undefined;
276
+ grouping?: import("@slickgrid-universal/common").Grouping<any> | undefined;
277
+ groupTotalsFormatter?: import("@slickgrid-universal/common").GroupTotalsFormatter | undefined;
278
+ header?: import("@slickgrid-universal/common").HeaderButtonsOrMenu | undefined;
279
+ headerCssClass?: string | undefined;
280
+ id: string | number;
281
+ labelKey?: string | undefined;
282
+ maxWidth?: number | undefined;
283
+ minWidth?: number | undefined;
284
+ originalWidth?: number | undefined;
285
+ name?: string | undefined;
286
+ nameCompositeEditor?: string | undefined;
287
+ nameKey?: string | undefined;
288
+ nameCompositeEditorKey?: string | undefined;
289
+ onBeforeEditCell?: ((e: import("@slickgrid-universal/common").SlickEventData, args: import("@slickgrid-universal/common").OnEventArgs) => void) | undefined;
290
+ onCellChange?: ((e: import("@slickgrid-universal/common").SlickEventData, args: import("@slickgrid-universal/common").OnEventArgs) => void) | undefined;
291
+ onCellClick?: ((e: import("@slickgrid-universal/common").SlickEventData, args: import("@slickgrid-universal/common").OnEventArgs) => void) | undefined;
292
+ outputType?: "string" | "number" | "boolean" | "object" | "text" | "unknown" | "integer" | "float" | "date" | "dateIso" | "dateUtc" | "dateTime" | "dateTimeIso" | "dateTimeIsoAmPm" | "dateTimeIsoAM_PM" | "dateTimeShortIso" | "dateEuro" | "dateEuroShort" | "dateTimeShortEuro" | "dateTimeEuro" | "dateTimeEuroAmPm" | "dateTimeEuroAM_PM" | "dateTimeEuroShort" | "dateTimeEuroShortAmPm" | "dateTimeEuroShortAM_PM" | "dateUs" | "dateUsShort" | "dateTimeShortUs" | "dateTimeUs" | "dateTimeUsAmPm" | "dateTimeUsAM_PM" | "dateTimeUsShort" | "dateTimeUsShortAmPm" | "dateTimeUsShortAM_PM" | "password" | "readonly" | undefined;
293
+ saveOutputType?: "string" | "number" | "boolean" | "object" | "text" | "unknown" | "integer" | "float" | "date" | "dateIso" | "dateUtc" | "dateTime" | "dateTimeIso" | "dateTimeIsoAmPm" | "dateTimeIsoAM_PM" | "dateTimeShortIso" | "dateEuro" | "dateEuroShort" | "dateTimeShortEuro" | "dateTimeEuro" | "dateTimeEuroAmPm" | "dateTimeEuroAM_PM" | "dateTimeEuroShort" | "dateTimeEuroShortAmPm" | "dateTimeEuroShortAM_PM" | "dateUs" | "dateUsShort" | "dateTimeShortUs" | "dateTimeUs" | "dateTimeUsAmPm" | "dateTimeUsAM_PM" | "dateTimeUsShort" | "dateTimeUsShortAmPm" | "dateTimeUsShortAM_PM" | "password" | "readonly" | undefined;
294
+ params?: any;
295
+ previousWidth?: number | undefined;
296
+ queryField?: string | undefined;
297
+ queryFieldNameGetterFn?: ((dataContext: any) => string) | undefined;
298
+ queryFieldFilter?: string | undefined;
299
+ queryFieldSorter?: string | undefined;
300
+ resizable?: boolean | undefined;
301
+ resizeAlwaysRecalculateWidth?: boolean | undefined;
302
+ resizeCalcWidthRatio?: number | undefined;
303
+ resizeCharWidthInPx?: number | undefined;
304
+ resizeMaxWidthThreshold?: number | undefined;
305
+ resizeExtraWidthPadding?: number | undefined;
306
+ rerenderOnResize?: boolean | undefined;
307
+ sanitizeDataExport?: boolean | undefined;
308
+ selectable?: boolean | undefined;
309
+ sortable?: boolean | undefined;
310
+ sortComparer?: import("@slickgrid-universal/common").SortComparer | undefined;
311
+ toolTip?: string | undefined;
312
+ type?: "string" | "number" | "boolean" | "object" | "text" | "unknown" | "integer" | "float" | "date" | "dateIso" | "dateUtc" | "dateTime" | "dateTimeIso" | "dateTimeIsoAmPm" | "dateTimeIsoAM_PM" | "dateTimeShortIso" | "dateEuro" | "dateEuroShort" | "dateTimeShortEuro" | "dateTimeEuro" | "dateTimeEuroAmPm" | "dateTimeEuroAM_PM" | "dateTimeEuroShort" | "dateTimeEuroShortAmPm" | "dateTimeEuroShortAM_PM" | "dateUs" | "dateUsShort" | "dateTimeShortUs" | "dateTimeUs" | "dateTimeUsAmPm" | "dateTimeUsAM_PM" | "dateTimeUsShort" | "dateTimeUsShortAmPm" | "dateTimeUsShortAM_PM" | "password" | "readonly" | undefined;
313
+ unselectable?: boolean | undefined;
314
+ validator?: import("@slickgrid-universal/common").EditorValidator | undefined;
315
+ valueCouldBeUndefined?: boolean | undefined;
316
+ width?: number | undefined;
317
+ }[];
211
318
  /** translate all columns (including hidden columns) */
212
- private translateColumnHeaderTitleKeys;
319
+ protected translateColumnHeaderTitleKeys(): void;
213
320
  /** translate all column groups (including hidden columns) */
214
- private translateColumnGroupKeys;
321
+ protected translateColumnGroupKeys(): void;
215
322
  /**
216
323
  * Update the "internalColumnEditor.collection" property.
217
324
  * Since this is called after the async call resolves, the pointer will not be the same as the "column" argument passed.
218
325
  * Once we found the new pointer, we will reassign the "editor" and "collection" to the "internalColumnEditor" so it has newest collection
219
326
  */
220
- private updateEditorCollection;
327
+ protected updateEditorCollection<T = any>(column: Column<T>, newCollection: T[]): void;
221
328
  }
222
- //# sourceMappingURL=slick-vanilla-grid-bundle.d.ts.map
@@ -9,22 +9,15 @@ import 'slickgrid/lib/jquery.mousewheel';
9
9
  import 'slickgrid/slick.core';
10
10
  import 'slickgrid/slick.grid';
11
11
  import 'slickgrid/slick.dataview';
12
- import 'slickgrid/slick.groupitemmetadataprovider';
13
- import { autoAddEditorFormatterToColumnsWithEditor, EventNamingStyle, GlobalGridOptions, GridStateType,
14
- // extensions
15
- AutoTooltipExtension, CheckboxSelectorExtension, CellExternalCopyManagerExtension, CellMenuExtension, ColumnPickerExtension, ContextMenuExtension, DraggableGroupingExtension, ExtensionUtility, GridMenuExtension, GroupItemMetaProviderExtension, HeaderMenuExtension, HeaderButtonExtension, RowDetailViewExtension, RowSelectionExtension,
12
+ import { autoAddEditorFormatterToColumnsWithEditor, EventNamingStyle, GlobalGridOptions, GridStateType, SlickGroupItemMetadataProvider,
16
13
  // services
17
- BackendUtilityService, CollectionService, ExtensionService, FilterFactory, FilterService, GridEventService, GridService, GridStateService, GroupingAndColspanService, PaginationService, ResizerService, RowMoveManagerExtension, SharedService, SortService, SlickgridConfig, TreeDataService,
14
+ BackendUtilityService, CollectionService, ExtensionService, ExtensionUtility, FilterFactory, FilterService, GridEventService, GridService, GridStateService, GroupingAndColspanService, PaginationService, ResizerService, SharedService, SortService, SlickgridConfig, TreeDataService,
18
15
  // utilities
19
16
  emptyElement, } from '@slickgrid-universal/common';
20
17
  import { EventPubSubService } from '@slickgrid-universal/event-pub-sub';
21
- import { SlickCompositeEditorComponent } from '@slickgrid-universal/composite-editor-component';
22
18
  import { SlickEmptyWarningComponent } from '@slickgrid-universal/empty-warning-component';
23
19
  import { SlickFooterComponent } from '@slickgrid-universal/custom-footer-component';
24
20
  import { SlickPaginationComponent } from '@slickgrid-universal/pagination-component';
25
- import { SlickCustomTooltip } from '@slickgrid-universal/custom-tooltip-plugin';
26
- import { TextExportService } from '@slickgrid-universal/text-export';
27
- import { SalesforceGlobalGridOptions } from '../salesforce-global-grid-options';
28
21
  import { UniversalContainerService } from '../services/universalContainer.service';
29
22
  export class SlickVanillaGridBundle {
30
23
  /**
@@ -81,32 +74,17 @@ export class SlickVanillaGridBundle {
81
74
  this.gridEventService = (_j = services === null || services === void 0 ? void 0 : services.gridEventService) !== null && _j !== void 0 ? _j : new GridEventService();
82
75
  this.sharedService = (_k = services === null || services === void 0 ? void 0 : services.sharedService) !== null && _k !== void 0 ? _k : new SharedService();
83
76
  this.collectionService = (_l = services === null || services === void 0 ? void 0 : services.collectionService) !== null && _l !== void 0 ? _l : new CollectionService(this.translaterService);
84
- this.extensionUtility = (_m = services === null || services === void 0 ? void 0 : services.extensionUtility) !== null && _m !== void 0 ? _m : new ExtensionUtility(this.sharedService, this.translaterService);
77
+ this.extensionUtility = (_m = services === null || services === void 0 ? void 0 : services.extensionUtility) !== null && _m !== void 0 ? _m : new ExtensionUtility(this.sharedService, this.backendUtilityService, this.translaterService);
85
78
  this.filterFactory = new FilterFactory(slickgridConfig, this.translaterService, this.collectionService);
86
79
  this.filterService = (_o = services === null || services === void 0 ? void 0 : services.filterService) !== null && _o !== void 0 ? _o : new FilterService(this.filterFactory, this._eventPubSubService, this.sharedService, this.backendUtilityService);
87
80
  this.resizerService = (_p = services === null || services === void 0 ? void 0 : services.resizerService) !== null && _p !== void 0 ? _p : new ResizerService(this._eventPubSubService);
88
81
  this.sortService = (_q = services === null || services === void 0 ? void 0 : services.sortService) !== null && _q !== void 0 ? _q : new SortService(this.sharedService, this._eventPubSubService, this.backendUtilityService);
89
82
  this.treeDataService = (_r = services === null || services === void 0 ? void 0 : services.treeDataService) !== null && _r !== void 0 ? _r : new TreeDataService(this._eventPubSubService, this.sharedService, this.sortService);
90
83
  this.paginationService = (_s = services === null || services === void 0 ? void 0 : services.paginationService) !== null && _s !== void 0 ? _s : new PaginationService(this._eventPubSubService, this.sharedService, this.backendUtilityService);
91
- // extensions
92
- const autoTooltipExtension = new AutoTooltipExtension(this.sharedService);
93
- const cellExternalCopyManagerExtension = new CellExternalCopyManagerExtension(this.extensionUtility, this.sharedService);
94
- const cellMenuExtension = new CellMenuExtension(this.extensionUtility, this.sharedService, this.translaterService);
95
- const contextMenuExtension = new ContextMenuExtension(this.extensionUtility, this._eventPubSubService, this.sharedService, this.treeDataService, this.translaterService);
96
- const columnPickerExtension = new ColumnPickerExtension(this.extensionUtility, this.sharedService);
97
- const checkboxExtension = new CheckboxSelectorExtension(this.sharedService);
98
- const draggableGroupingExtension = new DraggableGroupingExtension(this.extensionUtility, this._eventPubSubService, this.sharedService);
99
- const gridMenuExtension = new GridMenuExtension(this.extensionUtility, this.filterService, this._eventPubSubService, this.sharedService, this.sortService, this.backendUtilityService, this.translaterService);
100
- const groupItemMetaProviderExtension = new GroupItemMetaProviderExtension(this.sharedService);
101
- const headerButtonExtension = new HeaderButtonExtension(this.extensionUtility, this.sharedService);
102
- const headerMenuExtension = new HeaderMenuExtension(this.extensionUtility, this.filterService, this._eventPubSubService, this.sharedService, this.sortService, this.translaterService);
103
- const rowDetailViewExtension = new RowDetailViewExtension();
104
- const rowMoveManagerExtension = new RowMoveManagerExtension(this.sharedService);
105
- const rowSelectionExtension = new RowSelectionExtension(this.sharedService);
106
- this.extensionService = (_t = services === null || services === void 0 ? void 0 : services.extensionService) !== null && _t !== void 0 ? _t : new ExtensionService(autoTooltipExtension, cellExternalCopyManagerExtension, cellMenuExtension, checkboxExtension, columnPickerExtension, contextMenuExtension, draggableGroupingExtension, gridMenuExtension, groupItemMetaProviderExtension, headerButtonExtension, headerMenuExtension, rowDetailViewExtension, rowMoveManagerExtension, rowSelectionExtension, this.sharedService, this.translaterService);
84
+ this.extensionService = (_t = services === null || services === void 0 ? void 0 : services.extensionService) !== null && _t !== void 0 ? _t : new ExtensionService(this.extensionUtility, this.filterService, this._eventPubSubService, this.sharedService, this.sortService, this.treeDataService, this.translaterService);
107
85
  this.gridStateService = (_u = services === null || services === void 0 ? void 0 : services.gridStateService) !== null && _u !== void 0 ? _u : new GridStateService(this.extensionService, this.filterService, this._eventPubSubService, this.sharedService, this.sortService, this.treeDataService);
108
86
  this.gridService = (_v = services === null || services === void 0 ? void 0 : services.gridService) !== null && _v !== void 0 ? _v : new GridService(this.gridStateService, this.filterService, this._eventPubSubService, this.paginationService, this.sharedService, this.sortService, this.treeDataService);
109
- this.groupingService = (_w = services === null || services === void 0 ? void 0 : services.groupingAndColspanService) !== null && _w !== void 0 ? _w : new GroupingAndColspanService(this.extensionUtility, this.extensionService, this._eventPubSubService);
87
+ this.groupingService = (_w = services === null || services === void 0 ? void 0 : services.groupingAndColspanService) !== null && _w !== void 0 ? _w : new GroupingAndColspanService(this.extensionUtility, this._eventPubSubService);
110
88
  if (hierarchicalDataset) {
111
89
  this.sharedService.hierarchicalDataset = (isDeepCopyDataOnPageLoadEnabled ? $.extend(true, [], hierarchicalDataset) : hierarchicalDataset) || [];
112
90
  }
@@ -337,7 +315,7 @@ export class SlickVanillaGridBundle {
337
315
  const dataviewInlineFilters = (_h = (_g = (_f = this._gridOptions) === null || _f === void 0 ? void 0 : _f.dataView) === null || _g === void 0 ? void 0 : _g.inlineFilters) !== null && _h !== void 0 ? _h : false;
338
316
  let dataViewOptions = { inlineFilters: dataviewInlineFilters };
339
317
  if (this.gridOptions.draggableGrouping || this.gridOptions.enableGrouping) {
340
- this.groupItemMetadataProvider = new Slick.Data.GroupItemMetadataProvider();
318
+ this.groupItemMetadataProvider = new SlickGroupItemMetadataProvider();
341
319
  this.sharedService.groupItemMetadataProvider = this.groupItemMetadataProvider;
342
320
  dataViewOptions = { ...dataViewOptions, groupItemMetadataProvider: this.groupItemMetadataProvider };
343
321
  }
@@ -367,6 +345,7 @@ export class SlickVanillaGridBundle {
367
345
  this.slickGrid = new Slick.Grid(gridContainerElm, this.dataView, this._columnDefinitions, this._gridOptions);
368
346
  this.sharedService.dataView = this.dataView;
369
347
  this.sharedService.slickGrid = this.slickGrid;
348
+ this.sharedService.gridContainerElement = this._gridContainerElm;
370
349
  this.extensionService.bindDifferentExtensions();
371
350
  this.bindDifferentHooks(this.slickGrid, this._gridOptions, this.dataView);
372
351
  this._slickgridInitialized = true;
@@ -474,8 +453,7 @@ export class SlickVanillaGridBundle {
474
453
  this._isGridInitialized = true;
475
454
  }
476
455
  mergeGridOptions(gridOptions) {
477
- const extraOptions = (gridOptions.useSalesforceDefaultGridOptions || (this._gridOptions && this._gridOptions.useSalesforceDefaultGridOptions)) ? SalesforceGlobalGridOptions : {};
478
- const options = $.extend(true, {}, GlobalGridOptions, extraOptions, gridOptions);
456
+ const options = $.extend(true, {}, GlobalGridOptions, gridOptions);
479
457
  // also make sure to show the header row if user have enabled filtering
480
458
  if (options.enableFiltering && !options.showHeaderRow) {
481
459
  options.showHeaderRow = options.enableFiltering;
@@ -527,20 +505,16 @@ export class SlickVanillaGridBundle {
527
505
  if (gridOptions.enableTranslate && ((_a = this.translaterService) === null || _a === void 0 ? void 0 : _a.addPubSubMessaging)) {
528
506
  this.translaterService.addPubSubMessaging(this._eventPubSubService);
529
507
  }
530
- // translate some of them on first load, then on each language change
508
+ // translate them all on first load, then on each language change
531
509
  if (gridOptions.enableTranslate) {
510
+ this.extensionService.translateAllExtensions();
532
511
  this.translateColumnHeaderTitleKeys();
533
512
  this.translateColumnGroupKeys();
534
513
  }
535
514
  // on locale change, we have to manually translate the Headers, GridMenu
536
515
  this.subscriptions.push(this._eventPubSubService.subscribe('onLanguageChange', () => {
537
516
  if (gridOptions.enableTranslate) {
538
- this.extensionService.translateCellMenu();
539
- this.extensionService.translateColumnHeaders();
540
- this.extensionService.translateColumnPicker();
541
- this.extensionService.translateContextMenu();
542
- this.extensionService.translateGridMenu();
543
- this.extensionService.translateHeaderMenu();
517
+ this.extensionService.translateAllExtensions();
544
518
  this.translateColumnHeaderTitleKeys();
545
519
  this.translateColumnGroupKeys();
546
520
  if (gridOptions.createPreHeaderPanel && !gridOptions.enableDraggableGrouping) {
@@ -559,8 +533,7 @@ export class SlickVanillaGridBundle {
559
533
  // expose all Slick Grid Events through dispatch
560
534
  for (const prop in grid) {
561
535
  if (grid.hasOwnProperty(prop) && prop.startsWith('on')) {
562
- const gridEventHandler = grid[prop];
563
- this._eventHandler.subscribe(gridEventHandler, (event, args) => {
536
+ this._eventHandler.subscribe(grid[prop], (event, args) => {
564
537
  var _a, _b;
565
538
  const gridEventName = this._eventPubSubService.getEventNameByNamingConvention(prop, (_b = (_a = this._gridOptions) === null || _a === void 0 ? void 0 : _a.defaultSlickgridEventPrefix) !== null && _b !== void 0 ? _b : '');
566
539
  return this._eventPubSubService.dispatchCustomEvent(gridEventName, { eventData: event, args });
@@ -570,8 +543,7 @@ export class SlickVanillaGridBundle {
570
543
  // expose all Slick DataView Events through dispatch
571
544
  for (const prop in dataView) {
572
545
  if (dataView.hasOwnProperty(prop) && prop.startsWith('on')) {
573
- const dataViewEventHandler = dataView[prop];
574
- this._eventHandler.subscribe(dataViewEventHandler, (event, args) => {
546
+ this._eventHandler.subscribe(dataView[prop], (event, args) => {
575
547
  var _a, _b;
576
548
  const dataViewEventName = this._eventPubSubService.getEventNameByNamingConvention(prop, (_b = (_a = this._gridOptions) === null || _a === void 0 ? void 0 : _a.defaultSlickgridEventPrefix) !== null && _b !== void 0 ? _b : '');
577
549
  return this._eventPubSubService.dispatchCustomEvent(dataViewEventName, { eventData: event, args });
@@ -601,14 +573,12 @@ export class SlickVanillaGridBundle {
601
573
  }
602
574
  }
603
575
  // When data changes in the DataView, we need to refresh the metrics and/or display a warning if the dataset is empty
604
- const onRowCountChangedHandler = dataView.onRowCountChanged;
605
- this._eventHandler.subscribe(onRowCountChangedHandler, () => {
576
+ this._eventHandler.subscribe(dataView.onRowCountChanged, () => {
606
577
  var _a, _b, _c;
607
578
  grid.invalidate();
608
579
  this.handleOnItemCountChanged(((_a = this.dataView) === null || _a === void 0 ? void 0 : _a.getFilteredItemCount()) || 0, (_c = (_b = this.dataView) === null || _b === void 0 ? void 0 : _b.getItemCount()) !== null && _c !== void 0 ? _c : 0);
609
580
  });
610
- const onSetItemsCalledHandler = dataView.onSetItemsCalled;
611
- this._eventHandler.subscribe(onSetItemsCalledHandler, (_e, args) => {
581
+ this._eventHandler.subscribe(dataView.onSetItemsCalled, (_e, args) => {
612
582
  var _a, _b;
613
583
  this.handleOnItemCountChanged(((_a = this.dataView) === null || _a === void 0 ? void 0 : _a.getFilteredItemCount()) || 0, args.itemCount);
614
584
  // when user has resize by content enabled, we'll force a full width calculation since we change our entire dataset
@@ -619,8 +589,7 @@ export class SlickVanillaGridBundle {
619
589
  // when filtering data with local dataset, we need to update each row else it will not always show correctly in the UI
620
590
  // also don't use "invalidateRows" since it destroys the entire row and as bad user experience when updating a row
621
591
  if (gridOptions && gridOptions.enableFiltering && !gridOptions.enableRowDetailView) {
622
- const onRowsChangedHandler = dataView.onRowsChanged;
623
- this._eventHandler.subscribe(onRowsChangedHandler, (_e, args) => {
592
+ this._eventHandler.subscribe(dataView.onRowsChanged, (_e, args) => {
624
593
  if ((args === null || args === void 0 ? void 0 : args.rows) && Array.isArray(args.rows)) {
625
594
  args.rows.forEach((row) => grid.updateRow(row));
626
595
  grid.render();
@@ -628,8 +597,7 @@ export class SlickVanillaGridBundle {
628
597
  });
629
598
  }
630
599
  // when column are reordered, we need to update the visibleColumn array
631
- const onColumnsReorderedHandler = grid.onColumnsReordered;
632
- this._eventHandler.subscribe(onColumnsReorderedHandler, (_e, args) => {
600
+ this._eventHandler.subscribe(grid.onColumnsReordered, (_e, args) => {
633
601
  this.sharedService.hasColumnsReordered = true;
634
602
  this.sharedService.visibleColumns = args.impactedColumns;
635
603
  });
@@ -876,7 +844,7 @@ export class SlickVanillaGridBundle {
876
844
  return paginationOptions;
877
845
  }
878
846
  // --
879
- // private functions
847
+ // protected functions
880
848
  // ------------------
881
849
  /**
882
850
  * Loop through all column definitions and copy the original optional `width` properties optionally provided by the user.
@@ -917,7 +885,7 @@ export class SlickVanillaGridBundle {
917
885
  };
918
886
  this.paginationService.totalItems = this.totalItems;
919
887
  this.paginationService.init(this.slickGrid, paginationOptions, this.backendServiceApi);
920
- this.subscriptions.push(this._eventPubSubService.subscribe('onPaginationChanged', (paginationChanges) => this.paginationChanged(paginationChanges)), this._eventPubSubService.subscribe('onPaginationVisibilityChanged', (visibility) => {
888
+ this.subscriptions.push(this._eventPubSubService.subscribe('onPaginationChanged', paginationChanges => this.paginationChanged(paginationChanges)), this._eventPubSubService.subscribe('onPaginationVisibilityChanged', visibility => {
921
889
  var _a, _b, _c;
922
890
  this.showPagination = (_a = visibility === null || visibility === void 0 ? void 0 : visibility.visible) !== null && _a !== void 0 ? _a : false;
923
891
  if ((_b = this.gridOptions) === null || _b === void 0 ? void 0 : _b.backendServiceApi) {
@@ -1082,13 +1050,6 @@ export class SlickVanillaGridBundle {
1082
1050
  }
1083
1051
  }
1084
1052
  registerResources() {
1085
- // when using Salesforce, we want the Export to CSV always enabled without registering it
1086
- if (this.gridOptions.enableTextExport && this.gridOptions.useSalesforceDefaultGridOptions) {
1087
- this._registeredResources.push(new TextExportService());
1088
- }
1089
- if (this.gridOptions.useSalesforceDefaultGridOptions) {
1090
- this._registeredResources.push(new SlickCustomTooltip());
1091
- }
1092
1053
  // at this point, we consider all the registered services as external services, anything else registered afterward aren't external
1093
1054
  if (Array.isArray(this._registeredResources)) {
1094
1055
  this.sharedService.externalRegisteredResources = this._registeredResources;
@@ -1110,14 +1071,6 @@ export class SlickVanillaGridBundle {
1110
1071
  // also initialize (render) the empty warning component
1111
1072
  this.slickEmptyWarning = new SlickEmptyWarningComponent();
1112
1073
  this._registeredResources.push(this.slickEmptyWarning);
1113
- // also initialize (render) the pagination component when using the salesforce default options
1114
- // however before adding a new instance, just make sure there isn't one that might have been loaded by calling "registerExternalResources"
1115
- if (this.gridOptions.enableCompositeEditor && this.gridOptions.useSalesforceDefaultGridOptions) {
1116
- if (!this._registeredResources.some((resource => resource instanceof SlickCompositeEditorComponent))) {
1117
- this.slickCompositeEditor = new SlickCompositeEditorComponent();
1118
- this._registeredResources.push(this.slickCompositeEditor);
1119
- }
1120
- }
1121
1074
  // bind & initialize all Components/Services that were tagged as enabled
1122
1075
  // register all services by executing their init method and providing them with the Grid object
1123
1076
  if (Array.isArray(this._registeredResources)) {