@wemake4u/form-player-se 1.0.8 → 1.0.10
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/esm2022/lib/common/record.mjs +26 -0
- package/esm2022/lib/common/symbols.mjs +2 -0
- package/esm2022/lib/dataSources/odata.mjs +7 -1
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +17 -161
- package/esm2022/lib/locale/locale-it.mjs +8 -2
- package/esm2022/lib/services/formatter.service.mjs +27 -9
- package/esm2022/lib/services/grid.service.mjs +483 -0
- package/esm2022/lib/services/programmability.service.mjs +19 -3
- package/esm2022/lib/services/weak.service.mjs +15 -11
- package/esm2022/lib/utils/setFilter.mjs +111 -0
- package/esm2022/public-api.mjs +1 -4
- package/fesm2022/wemake4u-form-player-se.mjs +943 -512
- package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
- package/lib/common/record.d.ts +11 -0
- package/lib/common/symbols.d.ts +1 -0
- package/lib/dynamic-fields/dynamic-fields.component.d.ts +9 -12
- package/lib/dynamic-form/dynamic-form.component.d.ts +6 -0
- package/lib/locale/locale-it.d.ts +6 -0
- package/lib/services/formatter.service.d.ts +1 -0
- package/lib/services/grid.service.d.ts +42 -0
- package/lib/services/programmability.service.d.ts +1 -0
- package/lib/utils/gridCells.d.ts +12 -0
- package/lib/utils/setFilter.d.ts +72 -0
- package/package.json +2 -1
- package/esm2022/lib/utils/gridUtils.mjs +0 -75
- package/lib/utils/gridUtils.d.ts +0 -4
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { getLabelSymbol } from './symbols';
|
|
2
|
+
export type LabeledMap<TKey extends string | number, TValue> = Record<TKey, TValue> & {
|
|
3
|
+
[getLabelSymbol]?: (value: TKey) => TValue;
|
|
4
|
+
};
|
|
5
|
+
export declare function isLabeledRecord<TKey extends string | number, TValue>(obj: any, isKey: (key: any) => key is TKey, isValue: (val: any) => val is TValue, getLabelSymbol: symbol): obj is Record<TKey, TValue> & {
|
|
6
|
+
[key: symbol]: (key: TKey) => TValue;
|
|
7
|
+
};
|
|
8
|
+
export declare function isRecord<TKey extends string | number, TValue>(obj: any, isKey: (key: any) => key is TKey, isValue: (val: any) => val is TValue): obj is Record<TKey, TValue>;
|
|
9
|
+
export declare function isStringKey(key: any): key is string | number;
|
|
10
|
+
export declare function isNumericKey(key: any): key is string | number;
|
|
11
|
+
export declare function isBooleanKey(key: any): key is string | number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getLabelSymbol: unique symbol;
|
|
@@ -7,10 +7,10 @@ import { MarkdownService } from '../services/markdown.service';
|
|
|
7
7
|
import { MimeService } from '../services/mime.service';
|
|
8
8
|
import { ProgrammabilityService } from '../services/programmability.service';
|
|
9
9
|
import { EventService } from '../services/event.service';
|
|
10
|
-
import { FormatterService } from '../services/formatter.service';
|
|
11
10
|
import { WeakService } from '../services/weak.service';
|
|
12
11
|
import { RegisterService } from '../services/register.service';
|
|
13
12
|
import { MetadataService } from '../services/metadata.service';
|
|
13
|
+
import { GridService } from '../services/grid.service';
|
|
14
14
|
import { ButtonColors } from 'ngx-sirio-lib';
|
|
15
15
|
import { Observable } from 'rxjs';
|
|
16
16
|
import { SirioFileUploadComponent, NgxSirioEvent } from 'ngx-sirio-lib';
|
|
@@ -22,10 +22,10 @@ export declare class DynamicFieldsComponent implements OnInit, AfterViewInit, ID
|
|
|
22
22
|
private mime;
|
|
23
23
|
private programmability;
|
|
24
24
|
private events;
|
|
25
|
-
private formatter;
|
|
26
25
|
private weak;
|
|
27
26
|
private register;
|
|
28
27
|
private metadata;
|
|
28
|
+
private grid;
|
|
29
29
|
private el;
|
|
30
30
|
rows: Array<any> | undefined;
|
|
31
31
|
formGroup: FormGroup;
|
|
@@ -47,8 +47,14 @@ export declare class DynamicFieldsComponent implements OnInit, AfterViewInit, ID
|
|
|
47
47
|
Actions: string;
|
|
48
48
|
ReadMore: string;
|
|
49
49
|
ReadLess: string;
|
|
50
|
+
SelectAll: string;
|
|
51
|
+
ChooseOne: string;
|
|
52
|
+
True: string;
|
|
53
|
+
False: string;
|
|
54
|
+
Blank: string;
|
|
55
|
+
NotBlank: string;
|
|
50
56
|
};
|
|
51
|
-
constructor(sanitizer: SanitizeService, markdown: MarkdownService, mime: MimeService, programmability: ProgrammabilityService, events: EventService,
|
|
57
|
+
constructor(sanitizer: SanitizeService, markdown: MarkdownService, mime: MimeService, programmability: ProgrammabilityService, events: EventService, weak: WeakService, register: RegisterService, metadata: MetadataService, grid: GridService, el: ElementRef);
|
|
52
58
|
ngOnInit(): void;
|
|
53
59
|
ngAfterViewInit(): void;
|
|
54
60
|
getRegister(): RegisterService;
|
|
@@ -80,15 +86,6 @@ export declare class DynamicFieldsComponent implements OnInit, AfterViewInit, ID
|
|
|
80
86
|
createUploadTables(component: any): any;
|
|
81
87
|
fileUploaded($event: NgxSirioEvent<SirioFileUploadComponent>): void;
|
|
82
88
|
private focusFirst;
|
|
83
|
-
private gridTexts;
|
|
84
|
-
private gridTheme;
|
|
85
|
-
private getGridColumns;
|
|
86
|
-
private getGridPaginable;
|
|
87
|
-
private getGridPageSize;
|
|
88
|
-
private getGridTexts;
|
|
89
|
-
private getGridTheme;
|
|
90
|
-
private getGridFormatter;
|
|
91
|
-
private getGridRenderer;
|
|
92
89
|
private getAsObservable;
|
|
93
90
|
private configureDatepicker;
|
|
94
91
|
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFieldsComponent, never>;
|
|
@@ -43,6 +43,12 @@ export declare class DynamicFormComponent implements OnChanges, OnDestroy {
|
|
|
43
43
|
Actions: string;
|
|
44
44
|
ReadMore: string;
|
|
45
45
|
ReadLess: string;
|
|
46
|
+
SelectAll: string;
|
|
47
|
+
ChooseOne: string;
|
|
48
|
+
True: string;
|
|
49
|
+
False: string;
|
|
50
|
+
Blank: string;
|
|
51
|
+
NotBlank: string;
|
|
46
52
|
};
|
|
47
53
|
ngOnDestroy(): void;
|
|
48
54
|
private internalChange;
|
|
@@ -3,6 +3,7 @@ export declare class FormatterService {
|
|
|
3
3
|
constructor();
|
|
4
4
|
formatCurrency(value: any, symbol?: string | null): string;
|
|
5
5
|
formatDate(value: any): string;
|
|
6
|
+
formatDateTime(value: any): string;
|
|
6
7
|
formatInteger(value: any): string;
|
|
7
8
|
formatExpression(value: any, expression: string): string;
|
|
8
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormatterService, never>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Module, GridOptions } from 'ag-grid-community';
|
|
2
|
+
import { FormGroup } from '@angular/forms';
|
|
3
|
+
import { FormatterService } from '../services/formatter.service';
|
|
4
|
+
import { ProgrammabilityService } from '../services/programmability.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class GridService {
|
|
7
|
+
private formatter;
|
|
8
|
+
private programmability;
|
|
9
|
+
constructor(formatter: FormatterService, programmability: ProgrammabilityService);
|
|
10
|
+
getGridModules(): Module[];
|
|
11
|
+
getGridOptions(component: any, formGroup: FormGroup): GridOptions;
|
|
12
|
+
private getGridColumns;
|
|
13
|
+
private setCellDataType;
|
|
14
|
+
private setCellRenderer;
|
|
15
|
+
private setResizable;
|
|
16
|
+
private setSortable;
|
|
17
|
+
private setFilter;
|
|
18
|
+
private setFilterParams;
|
|
19
|
+
private setUuidFilterParams;
|
|
20
|
+
private setIntegerFilterParams;
|
|
21
|
+
private setDateFilterParams;
|
|
22
|
+
private setBooleanFilterParams;
|
|
23
|
+
private setSuppressMovable;
|
|
24
|
+
private setFlex;
|
|
25
|
+
private setAlign;
|
|
26
|
+
private setPinned;
|
|
27
|
+
private setWidth;
|
|
28
|
+
private setValueFormatter;
|
|
29
|
+
private getGridPaginable;
|
|
30
|
+
private getGridPageSize;
|
|
31
|
+
private getGridTexts;
|
|
32
|
+
private getGridTheme;
|
|
33
|
+
private getDataTypeDefinitions;
|
|
34
|
+
private getMap;
|
|
35
|
+
private formatMap;
|
|
36
|
+
private formatFlags;
|
|
37
|
+
private navigateInsideCell;
|
|
38
|
+
private getEventPath;
|
|
39
|
+
private getAllFocusableElementsOf;
|
|
40
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GridService, never>;
|
|
41
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<GridService>;
|
|
42
|
+
}
|
package/lib/utils/gridCells.d.ts
CHANGED
|
@@ -22,6 +22,12 @@ export declare class ObjectURLRendererComponent implements ICellRendererAngularC
|
|
|
22
22
|
Actions: string;
|
|
23
23
|
ReadMore: string;
|
|
24
24
|
ReadLess: string;
|
|
25
|
+
SelectAll: string;
|
|
26
|
+
ChooseOne: string;
|
|
27
|
+
True: string;
|
|
28
|
+
False: string;
|
|
29
|
+
Blank: string;
|
|
30
|
+
NotBlank: string;
|
|
25
31
|
};
|
|
26
32
|
agInit(params: ICellRendererParams): void;
|
|
27
33
|
onClick(event: Event): void;
|
|
@@ -49,6 +55,12 @@ export declare class DeleteRowCellRenderer implements ICellRendererAngularComp {
|
|
|
49
55
|
Actions: string;
|
|
50
56
|
ReadMore: string;
|
|
51
57
|
ReadLess: string;
|
|
58
|
+
SelectAll: string;
|
|
59
|
+
ChooseOne: string;
|
|
60
|
+
True: string;
|
|
61
|
+
False: string;
|
|
62
|
+
Blank: string;
|
|
63
|
+
NotBlank: string;
|
|
52
64
|
};
|
|
53
65
|
agInit(params: any): void;
|
|
54
66
|
onClick(event: Event): void;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { IFilterParams, IDoesFilterPassParams } from 'ag-grid-community';
|
|
2
|
+
import { IFilterAngularComp } from '@ag-grid-community/angular';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SetFilterComponent implements IFilterAngularComp {
|
|
5
|
+
private params;
|
|
6
|
+
private fieldName;
|
|
7
|
+
Texts: {
|
|
8
|
+
TypeToSearch: string;
|
|
9
|
+
Upload: string;
|
|
10
|
+
ScrollLeft: string;
|
|
11
|
+
ScrollRight: string;
|
|
12
|
+
AddItem: string;
|
|
13
|
+
RemoveItem: string;
|
|
14
|
+
PreviousSection: string;
|
|
15
|
+
NextSection: string;
|
|
16
|
+
Show: string;
|
|
17
|
+
Remove: string;
|
|
18
|
+
Close: string;
|
|
19
|
+
Name: string;
|
|
20
|
+
Size: string;
|
|
21
|
+
Type: string;
|
|
22
|
+
Actions: string;
|
|
23
|
+
ReadMore: string;
|
|
24
|
+
ReadLess: string;
|
|
25
|
+
SelectAll: string;
|
|
26
|
+
ChooseOne: string;
|
|
27
|
+
True: string;
|
|
28
|
+
False: string;
|
|
29
|
+
Blank: string;
|
|
30
|
+
NotBlank: string;
|
|
31
|
+
};
|
|
32
|
+
selectAll: boolean;
|
|
33
|
+
searchText: string;
|
|
34
|
+
options: {
|
|
35
|
+
value: any;
|
|
36
|
+
label: string;
|
|
37
|
+
selected: boolean;
|
|
38
|
+
}[];
|
|
39
|
+
filteredOptions: typeof this.options;
|
|
40
|
+
agInit(params: IFilterParams): void;
|
|
41
|
+
isFilterActive(): boolean;
|
|
42
|
+
doesFilterPass(params: IDoesFilterPassParams): boolean;
|
|
43
|
+
getModel(): {
|
|
44
|
+
filterType: string;
|
|
45
|
+
type: string;
|
|
46
|
+
filter: any;
|
|
47
|
+
} | {
|
|
48
|
+
filterType: string;
|
|
49
|
+
type: string;
|
|
50
|
+
operator?: undefined;
|
|
51
|
+
conditions?: undefined;
|
|
52
|
+
} | {
|
|
53
|
+
filterType: string;
|
|
54
|
+
operator: string;
|
|
55
|
+
conditions: {
|
|
56
|
+
filterType: string;
|
|
57
|
+
type: string;
|
|
58
|
+
filter: any;
|
|
59
|
+
}[];
|
|
60
|
+
type?: undefined;
|
|
61
|
+
} | null;
|
|
62
|
+
setModel(model: any): void;
|
|
63
|
+
onSelectionChange(): void;
|
|
64
|
+
onSearchChange(): void;
|
|
65
|
+
onSelectAllChange(): void;
|
|
66
|
+
private parseKey;
|
|
67
|
+
private setAll;
|
|
68
|
+
private updateFilteredOptions;
|
|
69
|
+
private resolvePath;
|
|
70
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SetFilterComponent, never>;
|
|
71
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SetFilterComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
72
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wemake4u/form-player-se",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/cdk": "^18.2.0",
|
|
6
6
|
"@angular/common": "^18.2.0",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"rxjs": "~7.8.0",
|
|
10
10
|
"bootstrap": "5.3.3",
|
|
11
11
|
"ag-grid-angular": "^33.0.4",
|
|
12
|
+
"@ag-grid-community/angular": "32.3.7",
|
|
12
13
|
"@ag-grid-community/locale": "^33.1.0",
|
|
13
14
|
"ngx-sirio-lib": "^1.2.6-A16",
|
|
14
15
|
"util": "^0.12.5"
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
const GRID_CELL_CLASSNAME = "ag-cell";
|
|
2
|
-
function getEventPath(event) {
|
|
3
|
-
const path = [];
|
|
4
|
-
let currentTarget = event.target;
|
|
5
|
-
while (currentTarget) {
|
|
6
|
-
path.push(currentTarget);
|
|
7
|
-
currentTarget = currentTarget.parentElement;
|
|
8
|
-
}
|
|
9
|
-
return path;
|
|
10
|
-
}
|
|
11
|
-
function getAllFocusableElementsOf(el) {
|
|
12
|
-
return Array.from(el.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter((focusableEl) => {
|
|
13
|
-
return focusableEl.tabIndex !== -1 && !focusableEl.hasAttribute('disabled');
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
export const GridUtils = {
|
|
17
|
-
navigateInsideCell({ event }) {
|
|
18
|
-
const { key, shiftKey } = event;
|
|
19
|
-
const path = getEventPath(event);
|
|
20
|
-
const isTabForward = key === "Tab" && shiftKey === false;
|
|
21
|
-
const isTabBackward = key === "Tab" && shiftKey === true;
|
|
22
|
-
let suppressEvent = false;
|
|
23
|
-
// Handle cell children tabbing
|
|
24
|
-
if (isTabForward || isTabBackward) {
|
|
25
|
-
const eGridCell = path.find((el) => {
|
|
26
|
-
if (el.classList === undefined)
|
|
27
|
-
return false;
|
|
28
|
-
return el.classList.contains(GRID_CELL_CLASSNAME);
|
|
29
|
-
});
|
|
30
|
-
if (!eGridCell) {
|
|
31
|
-
return suppressEvent;
|
|
32
|
-
}
|
|
33
|
-
const focusableChildrenElements = getAllFocusableElementsOf(eGridCell);
|
|
34
|
-
const lastCellChildEl = focusableChildrenElements[focusableChildrenElements.length - 1];
|
|
35
|
-
const firstCellChildEl = focusableChildrenElements[0];
|
|
36
|
-
// Suppress keyboard event if tabbing forward within the cell and the current focused element is not the last child
|
|
37
|
-
if (focusableChildrenElements.length === 0) {
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
const currentIndex = focusableChildrenElements.indexOf(document.activeElement);
|
|
41
|
-
if (isTabForward) {
|
|
42
|
-
const isLastChildFocused = lastCellChildEl && document.activeElement === lastCellChildEl;
|
|
43
|
-
if (!isLastChildFocused) {
|
|
44
|
-
suppressEvent = true;
|
|
45
|
-
if (currentIndex !== -1 || document.activeElement === eGridCell) {
|
|
46
|
-
event.preventDefault();
|
|
47
|
-
focusableChildrenElements[currentIndex + 1].focus();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
// Suppress keyboard event if tabbing backwards within the cell, and the current focused element is not the first child
|
|
52
|
-
else {
|
|
53
|
-
const cellHasFocusedChildren = eGridCell.contains(document.activeElement) &&
|
|
54
|
-
eGridCell !== document.activeElement;
|
|
55
|
-
// Manually set focus to the last child element if cell doesn't have focused children
|
|
56
|
-
if (!cellHasFocusedChildren) {
|
|
57
|
-
lastCellChildEl.focus();
|
|
58
|
-
// Cancel keyboard press, so that it doesn't focus on the last child and then pass through the keyboard press to
|
|
59
|
-
// move to the 2nd last child element
|
|
60
|
-
event.preventDefault();
|
|
61
|
-
}
|
|
62
|
-
const isFirstChildFocused = firstCellChildEl && document.activeElement === firstCellChildEl;
|
|
63
|
-
if (!isFirstChildFocused) {
|
|
64
|
-
suppressEvent = true;
|
|
65
|
-
if (currentIndex !== -1 || document.activeElement === eGridCell) {
|
|
66
|
-
event.preventDefault();
|
|
67
|
-
focusableChildrenElements[currentIndex - 1].focus();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return suppressEvent;
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZFV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvZ3JpZFV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0FBRXRDLFNBQVMsWUFBWSxDQUFDLEtBQVk7SUFDaEMsTUFBTSxJQUFJLEdBQWtCLEVBQUUsQ0FBQztJQUMvQixJQUFJLGFBQWEsR0FBUSxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3RDLE9BQU8sYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6QixhQUFhLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FBQyxFQUFlO0lBQ2hELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDZixFQUFFLENBQUMsZ0JBQWdCLENBQ2pCLDBFQUEwRSxDQUMzRSxDQUNGLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDdkIsT0FBTyxXQUFXLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5RSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDdkIsa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQW9DO1FBQzVELE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxNQUFNLFlBQVksR0FBRyxHQUFHLEtBQUssS0FBSyxJQUFJLFFBQVEsS0FBSyxLQUFLLENBQUM7UUFD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Z3JpZC1jb21tdW5pdHknO1xyXG5cclxuY29uc3QgR1JJRF9DRUxMX0NMQVNTTkFNRSA9IFwiYWctY2VsbFwiO1xyXG5cclxuZnVuY3Rpb24gZ2V0RXZlbnRQYXRoKGV2ZW50OiBFdmVudCk6IEhUTUxFbGVtZW50W10ge1xyXG4gIGNvbnN0IHBhdGg6IEhUTUxFbGVtZW50W10gPSBbXTtcclxuICBsZXQgY3VycmVudFRhcmdldDogYW55ID0gZXZlbnQudGFyZ2V0O1xyXG4gIHdoaWxlIChjdXJyZW50VGFyZ2V0KSB7XHJcbiAgICBwYXRoLnB1c2goY3VycmVudFRhcmdldCk7XHJcbiAgICBjdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldC5wYXJlbnRFbGVtZW50O1xyXG4gIH1cclxuICByZXR1cm4gcGF0aDtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QWxsRm9jdXNhYmxlRWxlbWVudHNPZihlbDogSFRNTEVsZW1lbnQpIHtcclxuICByZXR1cm4gQXJyYXkuZnJvbTxIVE1MRWxlbWVudD4oXHJcbiAgICBlbC5xdWVyeVNlbGVjdG9yQWxsKFxyXG4gICAgICAnYnV0dG9uLCBbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknLFxyXG4gICAgKVxyXG4gICkuZmlsdGVyKChmb2N1c2FibGVFbCkgPT4ge1xyXG4gICAgcmV0dXJuIGZvY3VzYWJsZUVsLnRhYkluZGV4ICE9PSAtMSAmJiAhZm9jdXNhYmxlRWwuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgR3JpZFV0aWxzID0ge1xyXG4gIG5hdmlnYXRlSW5zaWRlQ2VsbCh7IGV2ZW50IH06IFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtczxhbnk+KSB7XHJcbiAgICBjb25zdCB7IGtleSwgc2hpZnRLZXkgfSA9IGV2ZW50OyAgICBcclxuICAgIGNvbnN0IHBhdGggPSBnZXRFdmVudFBhdGgoZXZlbnQpO1xyXG4gICAgY29uc3QgaXNUYWJGb3J3YXJkID0ga2V5ID09PSBcIlRhYlwiICYmIHNoaWZ0S2V5ID09PSBmYWxzZTtcclxuICAgIGNvbnN0IGlzVGFiQmFja3dhcmQgPSBrZXkgPT09IFwiVGFiXCIgJiYgc2hpZnRLZXkgPT09IHRydWU7XHJcbiAgICBsZXQgc3VwcHJlc3NFdmVudCA9IGZhbHNlO1xyXG4gICAgLy8gSGFuZGxlIGNlbGwgY2hpbGRyZW4gdGFiYmluZ1xyXG4gICAgaWYgKGlzVGFiRm9yd2FyZCB8fCBpc1RhYkJhY2t3YXJkKSB7XHJcbiAgICAgIGNvbnN0IGVHcmlkQ2VsbCA9IHBhdGguZmluZCgoZWwpID0+IHtcclxuICAgICAgICBpZiAoZWwuY2xhc3NMaXN0ID09PSB1bmRlZmluZWQpIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gZWwuY2xhc3NMaXN0LmNvbnRhaW5zKEdSSURfQ0VMTF9DTEFTU05BTUUpO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCFlR3JpZENlbGwpIHtcclxuICAgICAgICByZXR1cm4gc3VwcHJlc3NFdmVudDtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBmb2N1c2FibGVDaGlsZHJlbkVsZW1lbnRzID0gZ2V0QWxsRm9jdXNhYmxlRWxlbWVudHNPZihlR3JpZENlbGwpO1xyXG4gICAgICBjb25zdCBsYXN0Q2VsbENoaWxkRWwgPVxyXG4gICAgICAgIGZvY3VzYWJsZUNoaWxkcmVuRWxlbWVudHNbZm9jdXNhYmxlQ2hpbGRyZW5FbGVtZW50cy5sZW5ndGggLSAxXTtcclxuICAgICAgY29uc3QgZmlyc3RDZWxsQ2hpbGRFbCA9IGZvY3VzYWJsZUNoaWxkcmVuRWxlbWVudHNbMF07XHJcbiAgICAgIC8vIFN1cHByZXNzIGtleWJvYXJkIGV2ZW50IGlmIHRhYmJpbmcgZm9yd2FyZCB3aXRoaW4gdGhlIGNlbGwgYW5kIHRoZSBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCBpcyBub3QgdGhlIGxhc3QgY2hpbGRcclxuICAgICAgaWYgKGZvY3VzYWJsZUNoaWxkcmVuRWxlbWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGZvY3VzYWJsZUNoaWxkcmVuRWxlbWVudHMuaW5kZXhPZihcclxuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50LFxyXG4gICAgICApO1xyXG4gICAgICBpZiAoaXNUYWJGb3J3YXJkKSB7XHJcbiAgICAgICAgY29uc3QgaXNMYXN0Q2hpbGRGb2N1c2VkID1cclxuICAgICAgICAgIGxhc3RDZWxsQ2hpbGRFbCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsYXN0Q2VsbENoaWxkRWw7XHJcbiAgICAgICAgaWYgKCFpc0xhc3RDaGlsZEZvY3VzZWQpIHtcclxuICAgICAgICAgIHN1cHByZXNzRXZlbnQgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCAhPT0gLTEgfHwgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZUdyaWRDZWxsKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGZvY3VzYWJsZUNoaWxkcmVuRWxlbWVudHNbY3VycmVudEluZGV4ICsgMV0uZm9jdXMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gU3VwcHJlc3Mga2V5Ym9hcmQgZXZlbnQgaWYgdGFiYmluZyBiYWNrd2FyZHMgd2l0aGluIHRoZSBjZWxsLCBhbmQgdGhlIGN1cnJlbnQgZm9jdXNlZCBlbGVtZW50IGlzIG5vdCB0aGUgZmlyc3QgY2hpbGRcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc3QgY2VsbEhhc0ZvY3VzZWRDaGlsZHJlbiA9XHJcbiAgICAgICAgICBlR3JpZENlbGwuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkgJiZcclxuICAgICAgICAgIGVHcmlkQ2VsbCAhPT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuICAgICAgICAvLyBNYW51YWxseSBzZXQgZm9jdXMgdG8gdGhlIGxhc3QgY2hpbGQgZWxlbWVudCBpZiBjZWxsIGRvZXNuJ3QgaGF2ZSBmb2N1c2VkIGNoaWxkcmVuXHJcbiAgICAgICAgaWYgKCFjZWxsSGFzRm9jdXNlZENoaWxkcmVuKSB7XHJcbiAgICAgICAgICBsYXN0Q2VsbENoaWxkRWwuZm9jdXMoKTtcclxuICAgICAgICAgIC8vIENhbmNlbCBrZXlib2FyZCBwcmVzcywgc28gdGhhdCBpdCBkb2Vzbid0IGZvY3VzIG9uIHRoZSBsYXN0IGNoaWxkIGFuZCB0aGVuIHBhc3MgdGhyb3VnaCB0aGUga2V5Ym9hcmQgcHJlc3MgdG9cclxuICAgICAgICAgIC8vIG1vdmUgdG8gdGhlIDJuZCBsYXN0IGNoaWxkIGVsZW1lbnRcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGlzRmlyc3RDaGlsZEZvY3VzZWQgPVxyXG4gICAgICAgICAgZmlyc3RDZWxsQ2hpbGRFbCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmaXJzdENlbGxDaGlsZEVsO1xyXG4gICAgICAgIGlmICghaXNGaXJzdENoaWxkRm9jdXNlZCkge1xyXG4gICAgICAgICAgc3VwcHJlc3NFdmVudCA9IHRydWU7XHJcbiAgICAgICAgICBpZiAoY3VycmVudEluZGV4ICE9PSAtMSB8fCBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlR3JpZENlbGwpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZm9jdXNhYmxlQ2hpbGRyZW5FbGVtZW50c1tjdXJyZW50SW5kZXggLSAxXS5mb2N1cygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1cHByZXNzRXZlbnQ7XHJcbiAgfSxcclxuXHJcbiAgXHJcbn07XHJcbiJdfQ==
|
package/lib/utils/gridUtils.d.ts
DELETED