@sankhyalabs/core 5.20.0-dev.6 → 5.20.0-dev.61
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/.docs/classes/Change.md +11 -11
- package/.docs/classes/DataUnit.md +317 -137
- package/.docs/classes/DateUtils.md +8 -8
- package/.docs/classes/IDBRepository.md +22 -0
- package/.docs/classes/LockManager.md +191 -0
- package/.docs/classes/MaskFormatter.md +66 -14
- package/.docs/classes/ObjectUtils.md +141 -0
- package/.docs/classes/OverflowWatcher.md +533 -0
- package/.docs/classes/SelectionInfo.md +25 -11
- package/.docs/classes/ServiceCanceledException.md +193 -0
- package/.docs/classes/ServiceUtils.md +67 -0
- package/.docs/classes/SilentException.md +193 -0
- package/.docs/enumerations/Action.md +41 -21
- package/.docs/enumerations/ChangeOperation.md +4 -4
- package/.docs/enumerations/LockManagerOperation.md +21 -0
- package/.docs/enumerations/OverflowDirection.md +29 -0
- package/.docs/enumerations/SelectionMode.md +2 -2
- package/.docs/enumerations/StorageType.md +37 -0
- package/.docs/globals.md +18 -0
- package/.docs/interfaces/DUActionInterceptor.md +1 -1
- package/.docs/interfaces/IRepository.md +18 -0
- package/.docs/interfaces/LoadDataRequest.md +1 -1
- package/.docs/interfaces/OverFlowWatcherParams.md +67 -0
- package/.docs/interfaces/PageRequest.md +3 -3
- package/.docs/interfaces/PaginationInfo.md +13 -0
- package/.docs/interfaces/QuickFilter.md +3 -3
- package/.docs/interfaces/Record.md +4 -4
- package/.docs/interfaces/SavedRecord.md +5 -5
- package/.docs/interfaces/WaitingChange.md +3 -3
- package/.docs/namespaces/MaskFormatter/type-aliases/MaskCharacter.md +1 -1
- package/.docs/namespaces/MaskFormatter/variables/MaskCharacter.md +1 -1
- package/.docs/type-aliases/DataUnitEventOptions.md +17 -0
- package/.docs/type-aliases/OnOverflowCallBack.md +25 -0
- package/.docs/variables/OVERFLOWED_CLASS_NAME.md +13 -0
- package/bun.lockb +0 -0
- package/dist/dataunit/DataUnit.d.ts +60 -11
- package/dist/dataunit/DataUnit.js +158 -46
- package/dist/dataunit/DataUnit.js.map +1 -1
- package/dist/dataunit/DataUnitHelper.js +6 -5
- package/dist/dataunit/DataUnitHelper.js.map +1 -1
- package/dist/dataunit/formatting/PrettyFormatter.js +14 -6
- package/dist/dataunit/formatting/PrettyFormatter.js.map +1 -1
- package/dist/dataunit/loading/LoadDataRequest.d.ts +1 -1
- package/dist/dataunit/loading/PaginationInfo.d.ts +4 -0
- package/dist/dataunit/metadata/DataType.js +3 -0
- package/dist/dataunit/metadata/DataType.js.map +1 -1
- package/dist/dataunit/state/action/DataUnitAction.d.ts +2 -0
- package/dist/dataunit/state/action/DataUnitAction.js +2 -0
- package/dist/dataunit/state/action/DataUnitAction.js.map +1 -1
- package/dist/dataunit/state/slice/InvalidFieldsSlice.js +2 -0
- package/dist/dataunit/state/slice/InvalidFieldsSlice.js.map +1 -1
- package/dist/dataunit/state/slice/RecordsSlice.js +1 -1
- package/dist/dataunit/state/slice/RecordsSlice.js.map +1 -1
- package/dist/dataunit/state/slice/SelectionSlice.js +4 -4
- package/dist/dataunit/state/slice/SelectionSlice.js.map +1 -1
- package/dist/exceptions/ServiceCanceledException.d.ts +14 -0
- package/dist/exceptions/ServiceCanceledException.js +13 -0
- package/dist/exceptions/ServiceCanceledException.js.map +1 -0
- package/dist/exceptions/SilentException.d.ts +14 -0
- package/dist/exceptions/SilentException.js +13 -0
- package/dist/exceptions/SilentException.js.map +1 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/repository/IRepository.d.ts +6 -0
- package/dist/repository/indexeddb/IDBRepository.d.ts +1 -0
- package/dist/repository/indexeddb/IDBRepository.js +3 -0
- package/dist/repository/indexeddb/IDBRepository.js.map +1 -1
- package/dist/utils/CacheManager/index.d.ts +52 -0
- package/dist/utils/CacheManager/index.js +101 -0
- package/dist/utils/CacheManager/index.js.map +1 -0
- package/dist/utils/CacheManager/interfaces/index.d.ts +5 -0
- package/dist/utils/CacheManager/interfaces/index.js +7 -0
- package/dist/utils/CacheManager/interfaces/index.js.map +1 -0
- package/dist/utils/DateUtils.js +3 -0
- package/dist/utils/DateUtils.js.map +1 -1
- package/dist/utils/ElementUtils.d.ts +2 -0
- package/dist/utils/ElementUtils.js +9 -0
- package/dist/utils/ElementUtils.js.map +1 -0
- package/dist/utils/LockManager.d.ts +46 -0
- package/dist/utils/LockManager.js +141 -0
- package/dist/utils/LockManager.js.map +1 -0
- package/dist/utils/MaskFormatter.d.ts +16 -1
- package/dist/utils/MaskFormatter.js +82 -2
- package/dist/utils/MaskFormatter.js.map +1 -1
- package/dist/utils/ObjectUtils.d.ts +38 -0
- package/dist/utils/ObjectUtils.js +51 -0
- package/dist/utils/ObjectUtils.js.map +1 -1
- package/dist/utils/OnboardingUtils.js +1 -1
- package/dist/utils/OnboardingUtils.js.map +1 -1
- package/dist/utils/OverflowWatcher/index.d.ts +59 -0
- package/dist/utils/OverflowWatcher/index.js +188 -0
- package/dist/utils/OverflowWatcher/index.js.map +1 -0
- package/dist/utils/OverflowWatcher/types/overflow-callback.d.ts +6 -0
- package/dist/utils/OverflowWatcher/types/overflow-callback.js +2 -0
- package/dist/utils/OverflowWatcher/types/overflow-callback.js.map +1 -0
- package/dist/utils/OverflowWatcher/types/overflow-direction.d.ts +7 -0
- package/dist/utils/OverflowWatcher/types/overflow-direction.js +9 -0
- package/dist/utils/OverflowWatcher/types/overflow-direction.js.map +1 -0
- package/dist/utils/ServiceUtils.d.ts +24 -0
- package/dist/utils/ServiceUtils.js +40 -0
- package/dist/utils/ServiceUtils.js.map +1 -0
- package/dist/utils/SortingUtils.d.ts +9 -0
- package/dist/utils/SortingUtils.js +24 -0
- package/dist/utils/SortingUtils.js.map +1 -0
- package/jest.config.ts +2 -0
- package/package.json +2 -1
- package/reports/test-report.xml +175 -0
- package/setupTests.js +7 -0
- package/sonar-project.properties +6 -3
- package/src/dataunit/DataUnit.ts +189 -59
- package/src/dataunit/DataUnitHelper.ts +6 -5
- package/src/dataunit/formatting/PrettyFormatter.ts +15 -6
- package/src/dataunit/loading/LoadDataRequest.ts +1 -1
- package/src/dataunit/loading/PaginationInfo.ts +5 -0
- package/src/dataunit/metadata/DataType.ts +3 -0
- package/src/dataunit/state/action/DataUnitAction.ts +2 -0
- package/src/dataunit/state/slice/InvalidFieldsSlice.ts +2 -0
- package/src/dataunit/state/slice/RecordsSlice.ts +1 -1
- package/src/dataunit/state/slice/SelectionSlice.ts +4 -4
- package/src/dataunit/state/slice/test/RecordsSlice.spec.ts +45 -0
- package/src/dataunit/test/DataUnit.spec.ts +44 -0
- package/src/exceptions/ServiceCanceledException.ts +25 -0
- package/src/exceptions/SilentException.ts +25 -0
- package/src/index.ts +19 -1
- package/src/repository/IRepository.ts +7 -0
- package/src/repository/indexeddb/IDBRepository.ts +4 -0
- package/src/utils/CacheManager/index.ts +103 -0
- package/src/utils/CacheManager/interfaces/index.ts +5 -0
- package/src/utils/DateUtils.ts +3 -0
- package/src/utils/ElementUtils.ts +10 -0
- package/src/utils/LockManager.ts +157 -0
- package/src/utils/MaskFormatter.ts +93 -2
- package/src/utils/ObjectUtils.ts +56 -0
- package/src/utils/OnboardingUtils.ts +1 -1
- package/src/utils/OverflowWatcher/index.ts +243 -0
- package/src/utils/OverflowWatcher/types/overflow-callback.ts +6 -0
- package/src/utils/OverflowWatcher/types/overflow-direction.ts +7 -0
- package/src/utils/ServiceUtils.ts +36 -0
- package/src/utils/SortingUtils.ts +30 -0
- package/src/utils/test/objectUtils.spec.ts +109 -0
- package/test/dataunit/formatting/PrettyFormatter.spec.ts +177 -0
- package/test/util/ElementUtils.spec.ts +34 -0
- package/test/util/OverflowWatcher.spec.ts +152 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectUtils.js","sourceRoot":"","sources":["../../src/utils/ObjectUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAG5B;;;;;OAKG;IACI,MAAM,CAAC,IAAI,CAAI,IAA2B;QAC7C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAM,CAAC;IAC/D,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,cAAc,CAAC,IAA2B;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,cAAc,CAAC,IAAW;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,cAAc,CAAC,IAAS,EAAE,QAAgB;QACpD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aACrB,IAAI,CAAC,UAAS,IAAY,EAAE,IAAY;YACvC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,GAAW,EAAE,EAAE;YAClC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,iBAAiB,CAAC,GAAW;QACzC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAChF,CAAC;IAEJ,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,MAAM,CAAC,IAAS,EAAE,IAAS;QACvC,OAAO,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"ObjectUtils.js","sourceRoot":"","sources":["../../src/utils/ObjectUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export class OnboardingUtils {
|
|
|
24
24
|
window.document.head.appendChild(scriptEl);
|
|
25
25
|
}
|
|
26
26
|
register(ctx) {
|
|
27
|
-
window.userGuiding.identify(`${ctx.userID}-${ctx.userName}-${ctx.clientGaId}`, ctx);
|
|
27
|
+
window.userGuiding.identify(`${encodeURIComponent(ctx.userID)}-${encodeURIComponent(ctx.userName)}-${encodeURIComponent(ctx.clientGaId)}`, ctx);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
OnboardingUtils.USER_GUIDE_TAG_ID = "userGuideSnippet";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingUtils.js","sourceRoot":"","sources":["../../src/utils/OnboardingUtils.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAe;IAIxB,gBAAsB,CAAC;IAEhB,MAAM,CAAC,WAAW;QACrB,IAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEM,IAAI,CAAC,MAAc,EAAE,GAAuB;QAC/C,IAAG,CAAC,MAAM,EAAC;YACP,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,YAAY,CAAC,MAAc;QAC/B,IAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,eAAe,CAAC,iBAAiB,EAAE,CAAC,EAAC;YACjF,OAAO;SACV;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClD,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAC/D,QAAQ,CAAC,SAAS,GAAG,ygBAAygB,MAAM,KAAK,CAAC;QAC1iB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEO,QAAQ,CAAC,GAAuB;QACnC,MAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"OnboardingUtils.js","sourceRoot":"","sources":["../../src/utils/OnboardingUtils.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAe;IAIxB,gBAAsB,CAAC;IAEhB,MAAM,CAAC,WAAW;QACrB,IAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEM,IAAI,CAAC,MAAc,EAAE,GAAuB;QAC/C,IAAG,CAAC,MAAM,EAAC;YACP,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,YAAY,CAAC,MAAc;QAC/B,IAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,eAAe,CAAC,iBAAiB,EAAE,CAAC,EAAC;YACjF,OAAO;SACV;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClD,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAC/D,QAAQ,CAAC,SAAS,GAAG,ygBAAygB,MAAM,KAAK,CAAC;QAC1iB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEO,QAAQ,CAAC,GAAuB;QACnC,MAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7J,CAAC;;AAlCuB,iCAAiB,GAAG,kBAAkB,CAAC;AAqCnE,MAAM,OAAO,kBAAkB;IAA/B;QACK,WAAM,GAAW,EAAE,CAAC;QACpB,aAAQ,GAAW,EAAE,CAAC;QACtB,gBAAW,GAAW,EAAE,CAAC;QACzB,eAAU,GAAW,EAAE,CAAC;QACxB,gBAAW,GAAW,EAAE,CAAC;QACzB,eAAU,GAAW,EAAE,CAAC;IAC7B,CAAC;CAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { OverflowDirection } from "./types/overflow-direction.js";
|
|
2
|
+
import { OnOverflowCallBack } from "./types/overflow-callback.js";
|
|
3
|
+
export * from "./types/overflow-direction.js";
|
|
4
|
+
export * from "./types/overflow-callback.js";
|
|
5
|
+
export declare const OVERFLOWED_CLASS_NAME = "overflowed";
|
|
6
|
+
export default class OverflowWatcher {
|
|
7
|
+
private _onResize;
|
|
8
|
+
private _resizeObserver;
|
|
9
|
+
private _lastContainerSize;
|
|
10
|
+
private _lastContainerInstance;
|
|
11
|
+
private _scrollDirection;
|
|
12
|
+
private _propSize;
|
|
13
|
+
private _hiddenItemsProps;
|
|
14
|
+
private _notOverFlowPros;
|
|
15
|
+
private _deltaSize;
|
|
16
|
+
private _notOverFlow;
|
|
17
|
+
readonly DATA_ELEMENT_ID = "data-element-id";
|
|
18
|
+
/**
|
|
19
|
+
* Cria uma instancia do OverflowWatcher
|
|
20
|
+
*
|
|
21
|
+
* @param element - Elemento HTML que o overflow será observado.
|
|
22
|
+
* @param callback - Função que sera chamada quando ocorrer overflow no elemento.
|
|
23
|
+
* @param overFlowDirection - Indica direção que o overflow será monitorado.
|
|
24
|
+
* @param deltaSize - Variação de tamanho que será considerada como overflow.
|
|
25
|
+
* @param debounce - Tempo até execução do callback em milissegundos.
|
|
26
|
+
* @param notOverFlow - Lista de ids ou data-element-ids dos elementos que não devem sofrer overFlow.
|
|
27
|
+
*/
|
|
28
|
+
constructor({ element, callback, overFlowDirection, debounce, deltaSize, notOverFlow }: OverFlowWatcherParams);
|
|
29
|
+
addNotOverFlowElement(elementId: string): void;
|
|
30
|
+
destroy(): void;
|
|
31
|
+
forceUpdate(): void;
|
|
32
|
+
private handleResize;
|
|
33
|
+
private updateOverFlowedItems;
|
|
34
|
+
private registerNotOverflowProps;
|
|
35
|
+
private canNotRegisterNotOverFlow;
|
|
36
|
+
private hasChangedSize;
|
|
37
|
+
private proccessElements;
|
|
38
|
+
private clearOverFlow;
|
|
39
|
+
private proccessElementsOverFlow;
|
|
40
|
+
private isElementOverFlowing;
|
|
41
|
+
private canOverFlowElement;
|
|
42
|
+
private getDataElementId;
|
|
43
|
+
private exceedsAvaliableSize;
|
|
44
|
+
private calculateVariation;
|
|
45
|
+
private canNotOverFlowNotIncludedIds;
|
|
46
|
+
private registerElementSize;
|
|
47
|
+
private getElementSizeProps;
|
|
48
|
+
private calcChildrenSize;
|
|
49
|
+
private calcElementSize;
|
|
50
|
+
private isOverFlowed;
|
|
51
|
+
}
|
|
52
|
+
export interface OverFlowWatcherParams {
|
|
53
|
+
element: HTMLElement;
|
|
54
|
+
callback: OnOverflowCallBack;
|
|
55
|
+
overFlowDirection?: OverflowDirection;
|
|
56
|
+
deltaSize?: number;
|
|
57
|
+
debounce?: number;
|
|
58
|
+
notOverFlow?: string[];
|
|
59
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { JSUtils } from "../JSUtils.js";
|
|
2
|
+
import { OverflowDirection } from "./types/overflow-direction.js";
|
|
3
|
+
import { calcMarginSize } from '../ElementUtils.js';
|
|
4
|
+
export * from "./types/overflow-direction.js";
|
|
5
|
+
export * from "./types/overflow-callback.js";
|
|
6
|
+
export const OVERFLOWED_CLASS_NAME = 'overflowed';
|
|
7
|
+
export default class OverflowWatcher {
|
|
8
|
+
/**
|
|
9
|
+
* Cria uma instancia do OverflowWatcher
|
|
10
|
+
*
|
|
11
|
+
* @param element - Elemento HTML que o overflow será observado.
|
|
12
|
+
* @param callback - Função que sera chamada quando ocorrer overflow no elemento.
|
|
13
|
+
* @param overFlowDirection - Indica direção que o overflow será monitorado.
|
|
14
|
+
* @param deltaSize - Variação de tamanho que será considerada como overflow.
|
|
15
|
+
* @param debounce - Tempo até execução do callback em milissegundos.
|
|
16
|
+
* @param notOverFlow - Lista de ids ou data-element-ids dos elementos que não devem sofrer overFlow.
|
|
17
|
+
*/
|
|
18
|
+
constructor({ element, callback, overFlowDirection = OverflowDirection.HORIZONTAL, debounce = 200, deltaSize = 0, notOverFlow = [] }) {
|
|
19
|
+
this._lastContainerSize = undefined;
|
|
20
|
+
this._lastContainerInstance = undefined;
|
|
21
|
+
this._scrollDirection = OverflowDirection.HORIZONTAL;
|
|
22
|
+
this._hiddenItemsProps = new Map();
|
|
23
|
+
this._notOverFlowPros = new Map();
|
|
24
|
+
this._notOverFlow = [];
|
|
25
|
+
this.DATA_ELEMENT_ID = 'data-element-id';
|
|
26
|
+
this._onResize = callback;
|
|
27
|
+
this._scrollDirection = overFlowDirection;
|
|
28
|
+
this._propSize = (OverflowDirection.HORIZONTAL === overFlowDirection) ? "width" : "height";
|
|
29
|
+
this._resizeObserver = new ResizeObserver(JSUtils.debounce((entries) => this.handleResize(entries), debounce));
|
|
30
|
+
this._resizeObserver.observe(element);
|
|
31
|
+
this._deltaSize = deltaSize;
|
|
32
|
+
this._notOverFlow = notOverFlow;
|
|
33
|
+
}
|
|
34
|
+
addNotOverFlowElement(elementId) {
|
|
35
|
+
if (!this._notOverFlow.includes(elementId)) {
|
|
36
|
+
this._notOverFlow.push(elementId);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
destroy() {
|
|
40
|
+
this._resizeObserver.disconnect();
|
|
41
|
+
}
|
|
42
|
+
forceUpdate() {
|
|
43
|
+
if (this._lastContainerSize && this._lastContainerInstance) {
|
|
44
|
+
this.updateOverFlowedItems(this._lastContainerInstance, this._lastContainerSize);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
handleResize(entries) {
|
|
48
|
+
if (!entries || entries.length === 0)
|
|
49
|
+
return;
|
|
50
|
+
const container = entries[0];
|
|
51
|
+
const containerSize = container.contentRect[this._propSize];
|
|
52
|
+
if (!containerSize)
|
|
53
|
+
return;
|
|
54
|
+
if (this.hasChangedSize(containerSize)) {
|
|
55
|
+
this.updateOverFlowedItems(container.target, containerSize);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
updateOverFlowedItems(container, containerSize) {
|
|
59
|
+
const children = Array.from(container.children);
|
|
60
|
+
this.registerNotOverflowProps(children);
|
|
61
|
+
this.proccessElements(containerSize, children);
|
|
62
|
+
this._lastContainerSize = containerSize;
|
|
63
|
+
this._lastContainerInstance = container;
|
|
64
|
+
}
|
|
65
|
+
registerNotOverflowProps(children) {
|
|
66
|
+
children.forEach(childElement => {
|
|
67
|
+
const id = childElement.id || this.getDataElementId(childElement);
|
|
68
|
+
if (this.canNotRegisterNotOverFlow(id))
|
|
69
|
+
return;
|
|
70
|
+
this._notOverFlowPros.set(id, this.getElementSizeProps(childElement));
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
canNotRegisterNotOverFlow(id) {
|
|
74
|
+
return !id || !this._notOverFlow.includes(id) || this._notOverFlowPros.has(id);
|
|
75
|
+
}
|
|
76
|
+
hasChangedSize(elementSize) {
|
|
77
|
+
if (!this._lastContainerSize)
|
|
78
|
+
return true;
|
|
79
|
+
const variation = elementSize - this._lastContainerSize;
|
|
80
|
+
if (variation < 0) {
|
|
81
|
+
const absoluteVariation = Math.abs(variation);
|
|
82
|
+
return (absoluteVariation > this._deltaSize);
|
|
83
|
+
}
|
|
84
|
+
return variation > 0;
|
|
85
|
+
}
|
|
86
|
+
proccessElements(elementSize, children) {
|
|
87
|
+
if (children.length === 0)
|
|
88
|
+
return;
|
|
89
|
+
const childrenSize = this.calcChildrenSize(children);
|
|
90
|
+
let diff = Number((elementSize - childrenSize).toFixed(4));
|
|
91
|
+
if (diff > 0) {
|
|
92
|
+
this.clearOverFlow();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
this.proccessElementsOverFlow(children, elementSize);
|
|
96
|
+
}
|
|
97
|
+
clearOverFlow() {
|
|
98
|
+
this._hiddenItemsProps = new Map();
|
|
99
|
+
this._onResize([]);
|
|
100
|
+
}
|
|
101
|
+
proccessElementsOverFlow(allElements, avaliableSize) {
|
|
102
|
+
const elementsThatFit = [];
|
|
103
|
+
const avaliableSizeConsideringDelta = (avaliableSize - this._deltaSize);
|
|
104
|
+
let sumElementsSize = 0;
|
|
105
|
+
for (const element of allElements) {
|
|
106
|
+
sumElementsSize += this.calcElementSize(element);
|
|
107
|
+
if (this.exceedsAvaliableSize(sumElementsSize, elementsThatFit, avaliableSizeConsideringDelta))
|
|
108
|
+
break;
|
|
109
|
+
elementsThatFit.push(element);
|
|
110
|
+
}
|
|
111
|
+
const overFlowedElements = allElements.filter(element => this.isElementOverFlowing(elementsThatFit, element));
|
|
112
|
+
overFlowedElements.forEach(overFlowed => {
|
|
113
|
+
if (!this._hiddenItemsProps.has(overFlowed)) {
|
|
114
|
+
this.registerElementSize(overFlowed);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
this._onResize(overFlowedElements);
|
|
118
|
+
}
|
|
119
|
+
isElementOverFlowing(elementsThatFit, element) {
|
|
120
|
+
return !elementsThatFit.includes(element) && this.canOverFlowElement(element);
|
|
121
|
+
}
|
|
122
|
+
canOverFlowElement(element) {
|
|
123
|
+
return !this._notOverFlow.includes(element.id)
|
|
124
|
+
&& !this._notOverFlow.includes(this.getDataElementId(element));
|
|
125
|
+
}
|
|
126
|
+
getDataElementId(element) {
|
|
127
|
+
var _a;
|
|
128
|
+
return (_a = element.getAttribute('data-element-id')) !== null && _a !== void 0 ? _a : "";
|
|
129
|
+
}
|
|
130
|
+
exceedsAvaliableSize(sumElementsSize, elements, avaliableSize) {
|
|
131
|
+
if (!this._notOverFlow.length)
|
|
132
|
+
return sumElementsSize > avaliableSize;
|
|
133
|
+
const elementIdsToCalculate = this.canNotOverFlowNotIncludedIds(elements);
|
|
134
|
+
if (!elementIdsToCalculate.length)
|
|
135
|
+
return sumElementsSize > avaliableSize;
|
|
136
|
+
const variation = this.calculateVariation(elementIdsToCalculate);
|
|
137
|
+
const occupiedSize = sumElementsSize + variation;
|
|
138
|
+
return occupiedSize > avaliableSize;
|
|
139
|
+
}
|
|
140
|
+
calculateVariation(elementIdsToCalculate) {
|
|
141
|
+
let variation = 0;
|
|
142
|
+
elementIdsToCalculate.forEach(id => {
|
|
143
|
+
var _a, _b;
|
|
144
|
+
const sizeProps = this._notOverFlowPros.get(id);
|
|
145
|
+
variation += (_a = sizeProps === null || sizeProps === void 0 ? void 0 : sizeProps.size) !== null && _a !== void 0 ? _a : 0;
|
|
146
|
+
variation += (_b = sizeProps === null || sizeProps === void 0 ? void 0 : sizeProps.margin) !== null && _b !== void 0 ? _b : 0;
|
|
147
|
+
});
|
|
148
|
+
return variation;
|
|
149
|
+
}
|
|
150
|
+
canNotOverFlowNotIncludedIds(elements) {
|
|
151
|
+
const elementsIdList = elements.map(el => el.id || this.getDataElementId(el)).filter(id => !!id);
|
|
152
|
+
return this._notOverFlow.filter(id => !elementsIdList.includes(id));
|
|
153
|
+
}
|
|
154
|
+
registerElementSize(element) {
|
|
155
|
+
const sizeProps = this.getElementSizeProps(element);
|
|
156
|
+
this._hiddenItemsProps.set(element, sizeProps);
|
|
157
|
+
}
|
|
158
|
+
getElementSizeProps(element) {
|
|
159
|
+
const sizeProps = {
|
|
160
|
+
size: element.getBoundingClientRect()[this._propSize],
|
|
161
|
+
margin: calcMarginSize(element, this._scrollDirection),
|
|
162
|
+
};
|
|
163
|
+
return sizeProps;
|
|
164
|
+
}
|
|
165
|
+
calcChildrenSize(children) {
|
|
166
|
+
let sumChildren = 0;
|
|
167
|
+
sumChildren += this._deltaSize;
|
|
168
|
+
Array.from(children).forEach(el => sumChildren += this.calcElementSize(el));
|
|
169
|
+
return sumChildren;
|
|
170
|
+
}
|
|
171
|
+
calcElementSize(el) {
|
|
172
|
+
var _a, _b;
|
|
173
|
+
let size = 0;
|
|
174
|
+
if (this.isOverFlowed(el)) {
|
|
175
|
+
const sizeProps = this._hiddenItemsProps.get(el);
|
|
176
|
+
size += (_a = sizeProps === null || sizeProps === void 0 ? void 0 : sizeProps.size) !== null && _a !== void 0 ? _a : 0;
|
|
177
|
+
size += (_b = sizeProps === null || sizeProps === void 0 ? void 0 : sizeProps.margin) !== null && _b !== void 0 ? _b : 0;
|
|
178
|
+
return size;
|
|
179
|
+
}
|
|
180
|
+
size += el.getBoundingClientRect()[this._propSize];
|
|
181
|
+
size += calcMarginSize(el, this._scrollDirection);
|
|
182
|
+
return size;
|
|
183
|
+
}
|
|
184
|
+
isOverFlowed(el) {
|
|
185
|
+
return el.classList.contains(OVERFLOWED_CLASS_NAME);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/OverflowWatcher/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Callback que será chamado quando o overflow de um elemento for alterado.
|
|
3
|
+
*
|
|
4
|
+
* @param elementsOverFlow - Conjunto de elementos filhos que estão causando overflow no elemento pai.
|
|
5
|
+
*/
|
|
6
|
+
export type OnOverflowCallBack = (elementsOverFlow: Array<Element>) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overflow-callback.js","sourceRoot":"","sources":["../../../../src/utils/OverflowWatcher/types/overflow-callback.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Define em qual direção o overflow será observado
|
|
3
|
+
*/
|
|
4
|
+
export var OverflowDirection;
|
|
5
|
+
(function (OverflowDirection) {
|
|
6
|
+
OverflowDirection[OverflowDirection["VERTICAL"] = 0] = "VERTICAL";
|
|
7
|
+
OverflowDirection[OverflowDirection["HORIZONTAL"] = 1] = "HORIZONTAL";
|
|
8
|
+
})(OverflowDirection || (OverflowDirection = {}));
|
|
9
|
+
//# sourceMappingURL=overflow-direction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overflow-direction.js","sourceRoot":"","sources":["../../../../src/utils/OverflowWatcher/types/overflow-direction.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,iEAAU,CAAA;IACV,qEAAY,CAAA;AAChB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { StorageType } from './CacheManager/interfaces/index.js';
|
|
2
|
+
export declare class ServiceUtils {
|
|
3
|
+
/**
|
|
4
|
+
* Auxilia no uso do CacheManager, gerando automaticamente uma chave de cache com base no identificador.
|
|
5
|
+
*
|
|
6
|
+
* @template T Tipo do dado a ser retornado.
|
|
7
|
+
* @param identifier Identificadores únicos usados para compor a chave de cache.
|
|
8
|
+
* @param fetchFunction Função que retorna uma `Promise` com o valor a ser armazenado no cache caso ele não exista ou tenha expirado.
|
|
9
|
+
* @param storageType Tipo de armazenamento: `'sessionStorage'` ou `'localStorage'`. O padrão é `'sessionStorage'`.
|
|
10
|
+
* @returns Uma `Promise` com o valor armazenado ou obtido via `fetchFunction`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const actions = await useCacheWithService(
|
|
15
|
+
* `${this.entityName} - ${this.resourceID}`,
|
|
16
|
+
* async () => {
|
|
17
|
+
* return await fetchActionsFromAPI();
|
|
18
|
+
* }
|
|
19
|
+
* );
|
|
20
|
+
* console.log(actions);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
static useCacheWithService<T>(identifier: string, fetchFunction: () => Promise<T>, storageType?: StorageType): Promise<T>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { CacheManager } from './CacheManager/index.js';
|
|
11
|
+
import { StorageType } from './CacheManager/interfaces/index.js';
|
|
12
|
+
export class ServiceUtils {
|
|
13
|
+
/**
|
|
14
|
+
* Auxilia no uso do CacheManager, gerando automaticamente uma chave de cache com base no identificador.
|
|
15
|
+
*
|
|
16
|
+
* @template T Tipo do dado a ser retornado.
|
|
17
|
+
* @param identifier Identificadores únicos usados para compor a chave de cache.
|
|
18
|
+
* @param fetchFunction Função que retorna uma `Promise` com o valor a ser armazenado no cache caso ele não exista ou tenha expirado.
|
|
19
|
+
* @param storageType Tipo de armazenamento: `'sessionStorage'` ou `'localStorage'`. O padrão é `'sessionStorage'`.
|
|
20
|
+
* @returns Uma `Promise` com o valor armazenado ou obtido via `fetchFunction`.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const actions = await useCacheWithService(
|
|
25
|
+
* `${this.entityName} - ${this.resourceID}`,
|
|
26
|
+
* async () => {
|
|
27
|
+
* return await fetchActionsFromAPI();
|
|
28
|
+
* }
|
|
29
|
+
* );
|
|
30
|
+
* console.log(actions);
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
static useCacheWithService(identifier, fetchFunction, storageType = StorageType.IN_MEMORY_CACHE) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
const cacheKey = `${identifier}`;
|
|
36
|
+
return CacheManager.getOrSet(cacheKey, fetchFunction, storageType);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=ServiceUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceUtils.js","sourceRoot":"","sources":["../../src/utils/ServiceUtils.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAGjE,MAAM,OAAO,YAAY;IAGrB;;;;;;;;;;;;;;;;;;;OAmBG;IACI,MAAM,CAAO,mBAAmB,CACnC,UAAkB,EAClB,aAA+B,EAC/B,cAA2B,WAAW,CAAC,eAAe;;YAEtD,MAAM,QAAQ,GAAG,GAAG,UAAU,EAAE,CAAC;YACjC,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QACvE,CAAC;KAAA;CACJ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import DataUnit from "../dataunit/DataUnit.js";
|
|
2
|
+
import { Sort } from "../dataunit/metadata/UnitMetadata.js";
|
|
3
|
+
import { Record } from '../dataunit/DataUnit.js';
|
|
4
|
+
/**
|
|
5
|
+
* `SortingUtils`: Utilizado para auxiliar na ordenacao de registros.
|
|
6
|
+
*/
|
|
7
|
+
export default class SortingUtils {
|
|
8
|
+
static getSortingFunction(dataUnit: DataUnit, sorting?: Array<Sort>): ((recordA: Record, recordB: Record) => number) | undefined;
|
|
9
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SortMode } from "../dataunit/metadata/UnitMetadata.js";
|
|
2
|
+
import { FieldComparator } from "../dataunit/sorting/FieldComparator.js";
|
|
3
|
+
/**
|
|
4
|
+
* `SortingUtils`: Utilizado para auxiliar na ordenacao de registros.
|
|
5
|
+
*/
|
|
6
|
+
export default class SortingUtils {
|
|
7
|
+
static getSortingFunction(dataUnit, sorting) {
|
|
8
|
+
if (sorting == undefined || sorting.length == 0) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return (recordA, recordB) => {
|
|
12
|
+
for (const sort of sorting) {
|
|
13
|
+
if (sort.field) {
|
|
14
|
+
const result = FieldComparator.compare(dataUnit.getField(sort.field), recordA, recordB, sort.mode === SortMode.ASC);
|
|
15
|
+
if (result != 0) {
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return 0;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=SortingUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SortingUtils.js","sourceRoot":"","sources":["../../src/utils/SortingUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAGzE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IAEtB,MAAM,CAAC,kBAAkB,CAAC,QAAkB,EAAE,OAAqB;QAEtE,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7C,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACxB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;gBACxB,IAAI,IAAI,CAAC,KAAK,EAAC;oBACX,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAoB,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACvI,IAAI,MAAM,IAAI,CAAC,EAAE;wBACb,OAAO,MAAM,CAAC;qBACjB;iBACJ;aACJ;YACD,OAAO,CAAC,CAAC;QACb,CAAC,CAAC;IACN,CAAC;CAEJ"}
|
package/jest.config.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sankhyalabs/core",
|
|
3
|
-
"version": "5.20.0-dev.
|
|
3
|
+
"version": "5.20.0-dev.61",
|
|
4
4
|
"description": "Modulo core JavaScript da Sankhya.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"jest": "^29.4.1",
|
|
46
46
|
"jest-environment-jsdom": "^29.4.1",
|
|
47
47
|
"jest-sonar-reporter": "^2.0.0",
|
|
48
|
+
"resize-observer-polyfill": "^1.5.1",
|
|
48
49
|
"ts-jest": "^29.0.5",
|
|
49
50
|
"ts-node": "^10.9.1",
|
|
50
51
|
"typedoc": "^0.25.13",
|