@sarafapp/iron_core 1.0.66 → 1.0.68
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/dist/IronCore.js +97 -76
- package/dist/IronCore.umd.cjs +3 -3
- package/dist/core/index.d.ts +1 -0
- package/dist/core/src/BaseModel.d.ts +45 -0
- package/dist/core/src/Utils.d.ts +4 -0
- package/dist/core/src/accessHandling/AccessControl.d.ts +10 -0
- package/dist/core/src/accessHandling/AccessLevel.d.ts +13 -0
- package/dist/core/src/accessHandling/Accessible.d.ts +3 -0
- package/dist/core/src/accessHandling/EveryDirectiveAccess.d.ts +4 -0
- package/dist/core/src/accessHandling/SSO/AuthorizationDirective.d.ts +17 -0
- package/dist/core/src/accessHandling/SSO/AuthorizationService.d.ts +17 -0
- package/dist/core/src/accessHandling/SSO/EveryLevelAuthorizationDirective.d.ts +4 -0
- package/dist/core/src/accessHandling/SSO/SomeLevelsAuthorizationDirective.d.ts +4 -0
- package/dist/core/src/accessHandling/SomeDirectiveAccess.d.ts +4 -0
- package/dist/core/src/accessHandling/index.d.ts +9 -0
- package/dist/core/src/baseDirective/BeforeMountDirective.d.ts +3 -0
- package/dist/core/src/baseDirective/BeforeUnMountDirective.d.ts +3 -0
- package/dist/core/src/baseDirective/BeforeUpdateDirective.d.ts +3 -0
- package/dist/core/src/baseDirective/CreatedDirective.d.ts +3 -0
- package/dist/core/src/baseDirective/MountedDirective.d.ts +3 -0
- package/dist/core/src/baseDirective/UnMountedDirective.d.ts +3 -0
- package/dist/core/src/baseDirective/UpdateDirective.d.ts +3 -0
- package/dist/core/src/baseDirective/index.d.ts +7 -0
- package/dist/core/src/baseForm/BaseRequestBodyFilter.d.ts +4 -0
- package/dist/core/src/baseForm/FormManager.d.ts +18 -0
- package/dist/core/src/baseForm/InputControl.d.ts +40 -0
- package/dist/core/src/baseForm/InputControlBuilder.d.ts +16 -0
- package/dist/core/src/baseForm/InputControlData.d.ts +15 -0
- package/dist/core/src/baseForm/RequestBodyFilter.d.ts +3 -0
- package/dist/core/src/baseForm/TouchSensitiveForm.d.ts +9 -0
- package/dist/core/src/baseForm/UseForm.d.ts +18 -0
- package/dist/core/src/baseForm/index.d.ts +8 -0
- package/dist/core/src/baseSchedule/Schedule.d.ts +3 -0
- package/dist/core/src/baseSchedule/Scheduler.d.ts +8 -0
- package/dist/core/src/baseSchedule/index.d.ts +2 -0
- package/dist/core/src/baseTable/BaseTable.d.ts +47 -0
- package/dist/core/src/baseTable/Constants.d.ts +13 -0
- package/dist/core/src/baseTable/OnDestory.d.ts +3 -0
- package/dist/core/src/baseTable/RowActionSource.d.ts +4 -0
- package/dist/core/src/baseTable/RowClick.d.ts +3 -0
- package/dist/core/src/baseTable/RowDoubleClick.d.ts +3 -0
- package/dist/core/src/baseTable/RowMetaClick.d.ts +3 -0
- package/dist/core/src/baseTable/SelectableTable.d.ts +19 -0
- package/dist/core/src/baseTable/TableAction.d.ts +8 -0
- package/dist/core/src/baseTable/TableHeaderSchema.d.ts +27 -0
- package/dist/core/src/baseTable/TableLoader.d.ts +3 -0
- package/dist/core/src/baseTable/TablePaginate.d.ts +3 -0
- package/dist/core/src/baseTable/TableService.d.ts +9 -0
- package/dist/core/src/baseTable/TableSort.d.ts +4 -0
- package/dist/core/src/baseTable/TableSummarySchema.d.ts +9 -0
- package/dist/core/src/baseTable/generator/SelectableTableGenerator.d.ts +14 -0
- package/dist/core/src/baseTable/generator/TableCellComponentRegistry.d.ts +7 -0
- package/dist/core/src/baseTable/generator/TableConfig.d.ts +7 -0
- package/dist/core/src/baseTable/generator/TableGenerator.d.ts +37 -0
- package/dist/core/src/baseTable/generator/TableSource.d.ts +24 -0
- package/dist/core/src/baseTable/index.d.ts +23 -0
- package/dist/core/src/baseTable/moduleConnection/Action.d.ts +3 -0
- package/dist/core/src/baseTable/moduleConnection/Column.d.ts +3 -0
- package/dist/core/src/baseTable/moduleConnection/Table.d.ts +4 -0
- package/dist/core/src/baseTable/moduleConnection/TableDestroy.d.ts +2 -0
- package/dist/core/src/baseTable/moduleConnection/TableRowClick.d.ts +2 -0
- package/dist/core/src/baseTable/moduleConnection/generator/GColumn.d.ts +2 -0
- package/dist/core/src/baseTable/moduleConnection/generator/GTable.d.ts +2 -0
- package/dist/core/src/composables/UseCrud.d.ts +10 -0
- package/dist/core/src/composables/UseData.d.ts +15 -0
- package/dist/core/src/composables/UseLoadingStatus.d.ts +15 -0
- package/dist/core/src/composables/UseParams.d.ts +17 -0
- package/dist/core/src/composables/UseRepository.d.ts +67 -0
- package/dist/core/src/composables/UseState.d.ts +2 -0
- package/dist/core/src/composables/UseStaticTableService.d.ts +5 -0
- package/dist/core/src/composables/index.d.ts +7 -0
- package/dist/core/src/constants/Constants.d.ts +108 -0
- package/dist/core/src/constants/index.d.ts +1 -0
- package/dist/core/src/crudService/CrudService.d.ts +22 -0
- package/dist/core/src/crudService/index.d.ts +1 -0
- package/dist/core/src/dataStructures/Queue/Queue.d.ts +8 -0
- package/dist/core/src/dataStructures/index.d.ts +1 -0
- package/dist/core/src/dateHandling/Constants.d.ts +5 -0
- package/dist/core/src/dateHandling/Converter.d.ts +5 -0
- package/dist/core/src/dateHandling/JalaliDateSetup.d.ts +1 -0
- package/dist/core/src/dateHandling/Model.d.ts +12 -0
- package/dist/core/src/dateHandling/Utils.d.ts +8 -0
- package/dist/core/src/dateHandling/index.d.ts +5 -0
- package/dist/core/src/debounce/DebounceAction.d.ts +4 -0
- package/dist/core/src/debounce/DebounceService.d.ts +9 -0
- package/dist/core/src/debounce/index.d.ts +2 -0
- package/dist/core/src/deviceManagement/Constants.d.ts +4 -0
- package/dist/core/src/deviceManagement/Visibility.d.ts +4 -0
- package/dist/core/src/deviceManagement/VisibilityManager.d.ts +6 -0
- package/dist/core/src/deviceManagement/index.d.ts +3 -0
- package/dist/core/src/errorHandling/ErrorHandler.d.ts +3 -0
- package/dist/core/src/errorHandling/HandleError.d.ts +2 -0
- package/dist/core/src/errorHandling/index.d.ts +2 -0
- package/dist/core/src/eventSystem/CustomEventDispatcher.d.ts +5 -0
- package/dist/core/src/eventSystem/Model.d.ts +8 -0
- package/dist/core/src/eventSystem/OnEvent.d.ts +1 -0
- package/dist/core/src/eventSystem/index.d.ts +3 -0
- package/dist/core/src/feedbackHandling/FailureFeedback.d.ts +3 -0
- package/dist/core/src/feedbackHandling/Feedback.d.ts +11 -0
- package/dist/core/src/feedbackHandling/HandleFeedback.d.ts +2 -0
- package/dist/core/src/feedbackHandling/InfoFeedback.d.ts +3 -0
- package/dist/core/src/feedbackHandling/SuccessFeedback.d.ts +3 -0
- package/dist/core/src/feedbackHandling/WarningFeedback.d.ts +3 -0
- package/dist/core/src/feedbackHandling/index.d.ts +6 -0
- package/dist/core/src/httpClient/ApiBuilder.d.ts +14 -0
- package/dist/core/src/httpClient/ErrorHandlerRegistry.d.ts +10 -0
- package/dist/core/src/httpClient/HttpClient.d.ts +14 -0
- package/dist/core/src/httpClient/Interceptor.d.ts +4 -0
- package/dist/core/src/httpClient/index.d.ts +4 -0
- package/dist/core/src/initializer/ApplicationInitializer.d.ts +6 -0
- package/dist/core/src/initializer/Initializer.d.ts +3 -0
- package/dist/core/src/initializer/index.d.ts +2 -0
- package/dist/core/src/json/JsonMapper.d.ts +18 -0
- package/dist/core/src/json/index.d.ts +1 -0
- package/dist/core/src/layout/Constants.d.ts +10 -0
- package/dist/core/src/layout/DialogService.d.ts +406 -0
- package/dist/core/src/layout/DrawerService.d.ts +14 -0
- package/dist/core/src/layout/Toast.d.ts +8 -0
- package/dist/core/src/layout/index.d.ts +4 -0
- package/dist/core/src/lib/Constants.d.ts +20 -0
- package/dist/core/src/lib/Formatter.d.ts +10 -0
- package/dist/core/src/lib/Util.d.ts +12 -0
- package/dist/core/src/lib/index.d.ts +3 -0
- package/dist/core/src/observables/AbstractSubject.d.ts +7 -0
- package/dist/core/src/observables/BehaviorSubject.d.ts +16 -0
- package/dist/core/src/observables/Observer.d.ts +3 -0
- package/dist/core/src/observables/Subject.d.ts +6 -0
- package/dist/core/src/observables/index.d.ts +4 -0
- package/dist/core/src/process/Proccess.d.ts +9 -0
- package/dist/core/src/process/ProcessManager.d.ts +10 -0
- package/dist/core/src/process/index.d.ts +2 -0
- package/dist/core/src/repository/Params.d.ts +11 -0
- package/dist/core/src/repository/Repository.d.ts +38 -0
- package/dist/core/src/repository/SyncDetail.d.ts +5 -0
- package/dist/core/src/repository/index.d.ts +4 -0
- package/dist/core/src/repository/model.d.ts +5 -0
- package/dist/core/src/routeGuard/RouteGuard.d.ts +7 -0
- package/dist/core/src/routeGuard/index.d.ts +1 -0
- package/dist/core/src/search/client/ClientArraySearch.d.ts +4 -0
- package/dist/core/src/search/client/ClientSearch.d.ts +3 -0
- package/dist/core/src/search/index.d.ts +2 -0
- package/dist/core/src/sort/SortDetail.d.ts +6 -0
- package/dist/core/src/sort/client/Sorter.d.ts +6 -0
- package/dist/core/src/sort/index.d.ts +4 -0
- package/dist/core/src/sort/strategies/SimpleSort.d.ts +5 -0
- package/dist/core/src/sort/strategies/SortStrategy.d.ts +4 -0
- package/dist/core/src/types/Global.d.ts +1 -0
- package/dist/core/src/types/index.d.ts +1 -0
- package/dist/core/src/validators/Validator.d.ts +4 -0
- package/dist/core/src/validators/index.d.ts +1 -0
- package/dist/core/src/webSocket/Constants.d.ts +6 -0
- package/dist/core/src/webSocket/Model.d.ts +6 -0
- package/dist/core/src/webSocket/WebSocketService.d.ts +30 -0
- package/dist/core/src/webSocket/index.d.ts +3 -0
- package/dist/example-vue/src/AntTableConfig.d.ts +6 -0
- package/dist/example-vue/src/TableService.d.ts +12 -0
- package/dist/example-vue/src/TextCell.vue.d.ts +5 -0
- package/dist/example-vue/src/app/App.vue.d.ts +2 -0
- package/dist/example-vue/src/app/router/index.d.ts +1 -0
- package/dist/example-vue/src/app/screens/Index.vue.d.ts +2 -0
- package/dist/example-vue/src/main.d.ts +0 -0
- package/package.json +4 -1
- package/index.ts +0 -37
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputControl } from './InputControl';
|
|
2
|
+
import { BaseRequestBodyFilter } from './BaseRequestBodyFilter';
|
|
3
|
+
export declare class FormManager {
|
|
4
|
+
private _inputControls;
|
|
5
|
+
private _isValid;
|
|
6
|
+
private _id;
|
|
7
|
+
getInputControlsAsArray(): InputControl<unknown>[];
|
|
8
|
+
runValidation(shouldValidateInputControls?: boolean): Promise<void>;
|
|
9
|
+
addInputControls(inputControls: InputControl<unknown>[]): void;
|
|
10
|
+
getInputControl<T>(inputControlName: string): InputControl<T>;
|
|
11
|
+
resetControls(inputControlNames: string[]): void;
|
|
12
|
+
resetAll(): void;
|
|
13
|
+
createRequestBody<T>(requestBodyFilter?: BaseRequestBodyFilter): T;
|
|
14
|
+
setIsValid(isValid: boolean): void;
|
|
15
|
+
getIsValid(): boolean;
|
|
16
|
+
setId(id: number): void;
|
|
17
|
+
getId(): number;
|
|
18
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Nullable } from '../types';
|
|
2
|
+
import { Validator } from '../validators';
|
|
3
|
+
export declare class InputControl<T> {
|
|
4
|
+
private initialData;
|
|
5
|
+
private data;
|
|
6
|
+
private _validators;
|
|
7
|
+
private _id;
|
|
8
|
+
constructor(name: string, value: Nullable<T>);
|
|
9
|
+
private shouldRunValidation;
|
|
10
|
+
runValidation(isBlur?: boolean): Promise<void>;
|
|
11
|
+
private setFormToInvalidState;
|
|
12
|
+
private setFormToValidState;
|
|
13
|
+
reset(): void;
|
|
14
|
+
markAsInitial(): void;
|
|
15
|
+
setValidators(validators: Validator<T>[]): void;
|
|
16
|
+
getChangeSensitive(): boolean;
|
|
17
|
+
setChangeSensitive(isChangeSensitive: boolean): void;
|
|
18
|
+
getIsBlurSensitive(): boolean;
|
|
19
|
+
setIsBlurSensitive(isBlurSensitive: boolean): void;
|
|
20
|
+
getIsRequired(): boolean;
|
|
21
|
+
setIsRequired(isRequired: boolean): void;
|
|
22
|
+
getIsValid(): boolean;
|
|
23
|
+
setIsValid(isValid: boolean): void;
|
|
24
|
+
getIsIncludeInRequestBody(): boolean;
|
|
25
|
+
setIsIncludeInRequestBody(isIncludeInRequestBody: boolean): void;
|
|
26
|
+
getNotValidMessage(): string;
|
|
27
|
+
setNotValidMessage(notValidMessage: string): void;
|
|
28
|
+
getName(): string;
|
|
29
|
+
setName(name: string): void;
|
|
30
|
+
setId(id: number): void;
|
|
31
|
+
getId(): number;
|
|
32
|
+
getIsEmptySensitive(): boolean;
|
|
33
|
+
setIsEmptySensitive(value: boolean): void;
|
|
34
|
+
setHasCustomValidationCheck(hasCustomCheck: boolean): void;
|
|
35
|
+
setShouldRemoveValidationOnInteract(value: boolean): void;
|
|
36
|
+
getShouldRemoveValidationOnInteract(): boolean;
|
|
37
|
+
hasCustomValidationCheck(): boolean;
|
|
38
|
+
set value(value: Nullable<T>);
|
|
39
|
+
get value(): Nullable<T>;
|
|
40
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { InputControl } from './InputControl';
|
|
2
|
+
import { Validator } from '../validators';
|
|
3
|
+
export declare class InputControlBuilder<T> {
|
|
4
|
+
private _inputControl;
|
|
5
|
+
constructor(inputControl: InputControl<T>);
|
|
6
|
+
setValidators(validators: Validator<T>[]): this;
|
|
7
|
+
setChangeSensitive(): this;
|
|
8
|
+
setRequired(): this;
|
|
9
|
+
setValid(): this;
|
|
10
|
+
setBlurSensitive(): this;
|
|
11
|
+
setId(id: number): this;
|
|
12
|
+
removeEmptySensitive(): this;
|
|
13
|
+
setHasCustomValidationCheck(): this;
|
|
14
|
+
removeErrorOnInteract(): this;
|
|
15
|
+
build(): InputControl<T>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Nullable } from '../types';
|
|
2
|
+
export declare class InputControlData<T> {
|
|
3
|
+
value: Nullable<T>;
|
|
4
|
+
initialValue: Nullable<T>;
|
|
5
|
+
name: string;
|
|
6
|
+
isValid: boolean;
|
|
7
|
+
isBlurSensitive: boolean;
|
|
8
|
+
isRequired: boolean;
|
|
9
|
+
isIncludeInRequestBody: boolean;
|
|
10
|
+
isChangeSensitive: boolean;
|
|
11
|
+
notValidMessage: string;
|
|
12
|
+
isEmptySensitive: boolean;
|
|
13
|
+
hasCustomValidationCheck: boolean;
|
|
14
|
+
shouldRemoveValidationMessageOnInteract: boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DirectiveBinding } from 'vue';
|
|
2
|
+
import { MountedDirective, BeforeUnMountDirective } from '../baseDirective';
|
|
3
|
+
import { InputControl } from './InputControl';
|
|
4
|
+
export declare class TouchSensitiveControl implements MountedDirective, BeforeUnMountDirective {
|
|
5
|
+
mounted: (element: HTMLInputElement, binding: DirectiveBinding<InputControl<unknown>>) => void;
|
|
6
|
+
beforeUnMount: (element: HTMLInputElement, binding: DirectiveBinding<InputControl<unknown>>) => void;
|
|
7
|
+
private handleBlur;
|
|
8
|
+
private handleFocus;
|
|
9
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FormManager } from './FormManager';
|
|
2
|
+
import { FormValidationStatus } from '../constants';
|
|
3
|
+
export declare function useForm(form: FormManager, hasCustomValidation?: boolean): {
|
|
4
|
+
reactiveForm: {
|
|
5
|
+
getInputControlsAsArray: () => import('./InputControl').InputControl<unknown>[];
|
|
6
|
+
runValidation: (shouldValidateInputControls?: boolean) => Promise<void>;
|
|
7
|
+
addInputControls: (inputControls: import('./InputControl').InputControl<unknown>[]) => void;
|
|
8
|
+
getInputControl: <T>(inputControlName: string) => import('./InputControl').InputControl<T>;
|
|
9
|
+
resetControls: (inputControlNames: string[]) => void;
|
|
10
|
+
resetAll: () => void;
|
|
11
|
+
createRequestBody: <T>(requestBodyFilter?: import('./BaseRequestBodyFilter').BaseRequestBodyFilter) => T;
|
|
12
|
+
setIsValid: (isValid: boolean) => void;
|
|
13
|
+
getIsValid: () => boolean;
|
|
14
|
+
setId: (id: number) => void;
|
|
15
|
+
getId: () => number;
|
|
16
|
+
};
|
|
17
|
+
validationStatus: import('vue').Ref<FormValidationStatus, FormValidationStatus>;
|
|
18
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { InputControl } from './InputControl';
|
|
2
|
+
export { InputControlBuilder } from './InputControlBuilder';
|
|
3
|
+
export { InputControlData } from './InputControlData';
|
|
4
|
+
export { TouchSensitiveControl } from './TouchSensitiveForm';
|
|
5
|
+
export { FormManager } from './FormManager';
|
|
6
|
+
export { useForm } from './UseForm';
|
|
7
|
+
export { BaseRequestBodyFilter } from './BaseRequestBodyFilter';
|
|
8
|
+
export { type RequestBodyFilter } from './RequestBodyFilter';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { SortDetail } from '../sort';
|
|
2
|
+
import { BaseModel } from '../BaseModel';
|
|
3
|
+
import { LoadingStatus } from '../constants';
|
|
4
|
+
import { Accessible } from '../accessHandling';
|
|
5
|
+
import { TableHeaderSchema } from './TableHeaderSchema';
|
|
6
|
+
import { TableService } from './TableService';
|
|
7
|
+
import { TableAction } from './TableAction';
|
|
8
|
+
import { Nullable } from '../types';
|
|
9
|
+
import { TableSummarySchema } from './TableSummarySchema.ts';
|
|
10
|
+
export declare abstract class BaseTable<Model extends BaseModel> {
|
|
11
|
+
protected service: TableService<Model>;
|
|
12
|
+
private accessService;
|
|
13
|
+
protected currentPage: number;
|
|
14
|
+
protected currentPageSize: number;
|
|
15
|
+
private currentSortDetail;
|
|
16
|
+
protected loadedRows: Model[];
|
|
17
|
+
headerSchema: TableHeaderSchema<Model>[];
|
|
18
|
+
protected constructor(service: TableService<Model>);
|
|
19
|
+
addHeader(schema: TableHeaderSchema<Model>): void;
|
|
20
|
+
load(): Promise<void>;
|
|
21
|
+
protected filterItemsBaseOnAccessLevel<T>(items: Accessible[]): T[];
|
|
22
|
+
sort(sortDetail: SortDetail<Model>): Promise<void>;
|
|
23
|
+
private shouldSendSortRequest;
|
|
24
|
+
paginate(nextPage: number, pageSize: number): Promise<void>;
|
|
25
|
+
private shouldSendPaginationRequest;
|
|
26
|
+
protected loadRows(): Promise<Model[]>;
|
|
27
|
+
getData(): import('./TableHeaderSchema').TableRenderingData<Model>;
|
|
28
|
+
protected handleSort(sortDetail: SortDetail<Model>): Promise<import('../repository').FetchListResponse<Model>>;
|
|
29
|
+
protected handlePagination(nextPage: number, pageSize: number): Promise<import('../repository').FetchListResponse<Model>>;
|
|
30
|
+
getItemCountPerPage(): number;
|
|
31
|
+
isLoading(): boolean;
|
|
32
|
+
protected getLoadingStatuses(): Set<LoadingStatus>;
|
|
33
|
+
hasAnyAction(): boolean;
|
|
34
|
+
getAccessedActions(row: Model): TableAction<Model>[];
|
|
35
|
+
protected getActions(row: Model): TableAction<Model>[];
|
|
36
|
+
getScrollDetail(): Nullable<boolean | {
|
|
37
|
+
x?: number;
|
|
38
|
+
y?: number;
|
|
39
|
+
}>;
|
|
40
|
+
isExpandable(): boolean;
|
|
41
|
+
handleClick(row: Model): Promise<void>;
|
|
42
|
+
handleMetaClick(row: Model): Promise<void>;
|
|
43
|
+
handleDoubleClick(row: Model): Promise<void>;
|
|
44
|
+
onDestroy(): Promise<void>;
|
|
45
|
+
loadHeader(): Promise<TableHeaderSchema<Model>[]>;
|
|
46
|
+
loadSummarySchema(): TableSummarySchema;
|
|
47
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TableHeaderSchema } from './TableHeaderSchema';
|
|
2
|
+
import { BaseModel } from '../BaseModel';
|
|
3
|
+
import { CellType, HeaderType, TableHeaderAlign } from '../constants';
|
|
4
|
+
export declare const TABLE_COLUMN_DEFAULT_WIDTH = "150px";
|
|
5
|
+
export declare const TABLE_COLUMN_DEFAULT_COLSPAN = 2;
|
|
6
|
+
export declare const TABLE_ACTION_COLUMN: TableHeaderSchema<BaseModel>;
|
|
7
|
+
export declare const TABLE_COLUMN_DEFAULT_VALUES: {
|
|
8
|
+
width: string;
|
|
9
|
+
align: TableHeaderAlign;
|
|
10
|
+
headerType: HeaderType;
|
|
11
|
+
cellType: CellType;
|
|
12
|
+
colspan: number;
|
|
13
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BaseTable } from './BaseTable';
|
|
2
|
+
import { BehaviorSubject } from '../observables/BehaviorSubject';
|
|
3
|
+
import { SortDetail } from '../sort';
|
|
4
|
+
import { BaseModel } from '../BaseModel';
|
|
5
|
+
import { TableService } from './TableService';
|
|
6
|
+
export declare abstract class SelectableTable<Model extends BaseModel> extends BaseTable<Model> {
|
|
7
|
+
selectedRows: BehaviorSubject<Map<number, Model>>;
|
|
8
|
+
constructor(service: TableService<Model>);
|
|
9
|
+
rowSelect(row: Model): void;
|
|
10
|
+
selectAll(): void;
|
|
11
|
+
private isEveryRowSelected;
|
|
12
|
+
protected handlePagination(nextPage: number, pageSize: number): Promise<import('../repository').FetchListResponse<Model>>;
|
|
13
|
+
protected handleSort(sortDetail: SortDetail<Model>): Promise<import('../repository').FetchListResponse<Model>>;
|
|
14
|
+
clearAllSelectedItems(): void;
|
|
15
|
+
getSelectedRows(): BehaviorSubject<Map<number, Model>>;
|
|
16
|
+
getSelectedRowsAsArray(): Model[];
|
|
17
|
+
getSelectedRowIds(): number[];
|
|
18
|
+
getSelectedRowsValue(): Map<number, Model>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Accessible } from '../accessHandling';
|
|
2
|
+
export interface TableAction<Model> extends Accessible {
|
|
3
|
+
readonly actionName: string;
|
|
4
|
+
handler(row: Model): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
export interface ActionDecorator<Model> extends TableAction<Model> {
|
|
7
|
+
isAvailable(model: Model): boolean;
|
|
8
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { CellType, HeaderType, LoadingStatus, SortOrder, TableHeaderAlign } from '../constants';
|
|
2
|
+
import { Accessible } from '../accessHandling';
|
|
3
|
+
export interface TableHeaderSchema<Model> extends Accessible {
|
|
4
|
+
path?: keyof Model;
|
|
5
|
+
title: string;
|
|
6
|
+
getProps?: (row: Model) => Record<string, unknown>;
|
|
7
|
+
key: keyof Model;
|
|
8
|
+
cellType?: CellType | string;
|
|
9
|
+
align?: TableHeaderAlign;
|
|
10
|
+
headerType?: HeaderType;
|
|
11
|
+
colspan?: number;
|
|
12
|
+
width?: string | number;
|
|
13
|
+
ellipsis?: boolean;
|
|
14
|
+
maxWidth?: number;
|
|
15
|
+
minWidth?: number;
|
|
16
|
+
resizable?: boolean;
|
|
17
|
+
sortOrder?: SortOrder;
|
|
18
|
+
sorter?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface TableRenderingData<Model> {
|
|
21
|
+
totalItems: number;
|
|
22
|
+
currentPage: number;
|
|
23
|
+
rows: Model[];
|
|
24
|
+
loadingStatus: Set<LoadingStatus>;
|
|
25
|
+
currentPageItems: Model[];
|
|
26
|
+
}
|
|
27
|
+
export declare function generateHeader<Model>(header: TableHeaderSchema<Model>): TableHeaderSchema<Model>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SortDetail } from '../sort';
|
|
2
|
+
import { FetchListResponse } from '../repository/model';
|
|
3
|
+
import { TableRenderingData } from './TableHeaderSchema';
|
|
4
|
+
export interface TableService<Model> {
|
|
5
|
+
fetchRows(): Promise<FetchListResponse<Model>>;
|
|
6
|
+
paginate(nextPage: number, pageSize: number): Promise<FetchListResponse<Model>>;
|
|
7
|
+
sort(sortDetail: SortDetail<Model>): Promise<FetchListResponse<Model>>;
|
|
8
|
+
getData(): TableRenderingData<Model>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TableGenerator } from './TableGenerator';
|
|
2
|
+
import { TableSource } from './TableSource';
|
|
3
|
+
import { BehaviorSubject } from '../../observables';
|
|
4
|
+
export declare class SelectableTableGenerator<T> extends TableGenerator<T> {
|
|
5
|
+
selectedRows: BehaviorSubject<Map<number, T>>;
|
|
6
|
+
constructor(tableSource: TableSource<T>);
|
|
7
|
+
selectRow(row: T): void;
|
|
8
|
+
selectAll(): void;
|
|
9
|
+
private isEveryRowSelected;
|
|
10
|
+
clearAllSelectedItems(): void;
|
|
11
|
+
getSelectedRows(): Map<number, T>;
|
|
12
|
+
getSelectedRowsAsArray(): T[];
|
|
13
|
+
getSelectedRowIds(): number[];
|
|
14
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Initializer } from '../../initializer';
|
|
2
|
+
export declare abstract class TableCellComponentRegistry implements Initializer {
|
|
3
|
+
private registeredComponents;
|
|
4
|
+
initialize(): void;
|
|
5
|
+
protected abstract registerComponents(): void;
|
|
6
|
+
getRegisteredComponents(): Map<string, unknown>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TableCellComponentRegistry } from './TableCellComponentRegistry';
|
|
2
|
+
export declare class TableConfig {
|
|
3
|
+
private cellComponentRegistry;
|
|
4
|
+
constructor();
|
|
5
|
+
setCellComponentRegistry(registry: TableCellComponentRegistry): void;
|
|
6
|
+
getCellComponentRegistry(): TableCellComponentRegistry;
|
|
7
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { BehaviorSubject } from '../../observables';
|
|
2
|
+
import { SortDetail } from '../../sort';
|
|
3
|
+
import { TableHeaderSchema } from '../TableHeaderSchema';
|
|
4
|
+
import { Nullable } from '../../types';
|
|
5
|
+
import { TableSummarySchema } from '../TableSummarySchema';
|
|
6
|
+
import { TableSource } from './TableSource';
|
|
7
|
+
import { AccessLevel } from '../../accessHandling';
|
|
8
|
+
import { TableAction } from '../TableAction';
|
|
9
|
+
export declare class TableGenerator<T> {
|
|
10
|
+
rows: BehaviorSubject<T[]>;
|
|
11
|
+
headerSchema: BehaviorSubject<TableHeaderSchema<T>[]>;
|
|
12
|
+
currentPage: BehaviorSubject<number>;
|
|
13
|
+
currentPageSize: BehaviorSubject<number>;
|
|
14
|
+
totalItems: BehaviorSubject<number>;
|
|
15
|
+
protected currentSortDetail: BehaviorSubject<SortDetail<T>>;
|
|
16
|
+
scrollDetail: BehaviorSubject<Nullable<boolean | {
|
|
17
|
+
x?: number;
|
|
18
|
+
y?: number;
|
|
19
|
+
}>>;
|
|
20
|
+
isExpandable: BehaviorSubject<boolean>;
|
|
21
|
+
protected tableSource: TableSource<T>;
|
|
22
|
+
protected accessService: AccessLevel;
|
|
23
|
+
constructor(tableSource: TableSource<T>);
|
|
24
|
+
load(): Promise<void>;
|
|
25
|
+
paginate(nextPage: number, pageSize: number): Promise<void>;
|
|
26
|
+
private shouldSendPaginationRequest;
|
|
27
|
+
sort(sortDetail: SortDetail<T>): Promise<void>;
|
|
28
|
+
private shouldSendSortRequest;
|
|
29
|
+
handleClick(row: T): Promise<void>;
|
|
30
|
+
handleMetaClick(row: T): Promise<void>;
|
|
31
|
+
handleDoubleClick(row: T): Promise<void>;
|
|
32
|
+
hasAnyAction(): boolean;
|
|
33
|
+
getRowActions(row: T): TableAction<T>[];
|
|
34
|
+
loadSummarySchema(): TableSummarySchema;
|
|
35
|
+
private filterItemsBaseOnAccessLevel;
|
|
36
|
+
onDestroy(): Promise<void>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TableHeaderSchema } from '../TableHeaderSchema';
|
|
2
|
+
import { SortDetail } from '../../sort';
|
|
3
|
+
import { TableSummarySchema } from '../TableSummarySchema';
|
|
4
|
+
import { TableAction } from '../TableAction';
|
|
5
|
+
export interface TableSource<T> {
|
|
6
|
+
loadRows(): Promise<T[]>;
|
|
7
|
+
loadHeaderSchema(): Promise<TableHeaderSchema<T>[]>;
|
|
8
|
+
loadRowActions(row: T): TableAction<T>[];
|
|
9
|
+
paginate(nextPage: number, pageSize: number): Promise<T[]>;
|
|
10
|
+
sort(sortDetail: SortDetail<T>): Promise<T[]>;
|
|
11
|
+
onTableDestroy(): void;
|
|
12
|
+
}
|
|
13
|
+
export interface RowClick<T> extends TableSource<T> {
|
|
14
|
+
onRowClick(row: T): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export interface RowMetaClick<T> extends TableSource<T> {
|
|
17
|
+
onRowMetaClick(row: T): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export interface handleDoubleClick<T> extends TableSource<T> {
|
|
20
|
+
onRowDoubleClick(row: T): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export interface TableSummary<T> extends TableSource<T> {
|
|
23
|
+
loadSummarySchema(): Promise<TableSummarySchema>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type { TableAction } from './TableAction';
|
|
2
|
+
export type { TableService } from './TableService';
|
|
3
|
+
export type { Destroy } from './OnDestory';
|
|
4
|
+
export type { RowActionSource } from './RowActionSource';
|
|
5
|
+
export type { TableLoader } from './TableLoader';
|
|
6
|
+
export type { TablePaginate } from './TablePaginate';
|
|
7
|
+
export { TABLE_ACTION_COLUMN, TABLE_COLUMN_DEFAULT_VALUES, TABLE_COLUMN_DEFAULT_COLSPAN, TABLE_COLUMN_DEFAULT_WIDTH, } from './Constants';
|
|
8
|
+
export { BaseTable } from './BaseTable';
|
|
9
|
+
export { SelectableTable } from './SelectableTable';
|
|
10
|
+
export { type TableHeaderSchema, type TableRenderingData, generateHeader, } from './TableHeaderSchema';
|
|
11
|
+
export { type TableSummaryItem, type TableSummarySchema, } from './TableSummarySchema';
|
|
12
|
+
export { Column } from './moduleConnection/Column';
|
|
13
|
+
export { Table } from './moduleConnection/Table';
|
|
14
|
+
export { Action } from './moduleConnection/Action';
|
|
15
|
+
export { TableDestroy } from './moduleConnection/TableDestroy';
|
|
16
|
+
export { TableRowClick } from './moduleConnection/TableRowClick';
|
|
17
|
+
export { type TableSource, type TableSummary, type RowClick, type RowMetaClick, type handleDoubleClick, } from './generator/TableSource';
|
|
18
|
+
export { SelectableTableGenerator } from './generator/SelectableTableGenerator';
|
|
19
|
+
export { TableGenerator } from './generator/TableGenerator';
|
|
20
|
+
export { TableConfig } from './generator/TableConfig';
|
|
21
|
+
export { TableCellComponentRegistry } from './generator/TableCellComponentRegistry';
|
|
22
|
+
export { GColumn } from './moduleConnection/generator/GColumn';
|
|
23
|
+
export { GTable } from './moduleConnection/generator/GTable';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ActionDecorator } from '../TableAction';
|
|
2
|
+
import { BaseModel } from '../../BaseModel';
|
|
3
|
+
export declare function Action<Model extends BaseModel>(actionDetail: Omit<ActionDecorator<Model>, 'handler'>): (target: BaseModel, _propertyKey: string, propertyDescriptor: PropertyDescriptor) => void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BaseTable } from '../index';
|
|
2
|
+
import { BaseModel } from '../../BaseModel';
|
|
3
|
+
import { SelectableTable } from '../SelectableTable';
|
|
4
|
+
export declare function Table<Model extends BaseModel>(table: typeof BaseTable<Model> | typeof SelectableTable<Model>): (constructor: Function) => void;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseModel } from '../BaseModel';
|
|
2
|
+
export declare function useCrud<Entity extends BaseModel>(): {
|
|
3
|
+
entityItemsAsArray: import('vue').ComputedRef<Entity[]>;
|
|
4
|
+
addOrReplaceItems: (items: Entity[]) => void;
|
|
5
|
+
removeById: (id: string | number) => Entity;
|
|
6
|
+
getItemById: (id: number | string) => Entity;
|
|
7
|
+
clearItems: () => void;
|
|
8
|
+
setTotalCount: (count: number) => void;
|
|
9
|
+
getTotalCount: import('vue').ComputedRef<number>;
|
|
10
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { BaseModel } from '../BaseModel';
|
|
3
|
+
import { Nullable } from '../types';
|
|
4
|
+
export declare function useData<Model extends BaseModel>(): {
|
|
5
|
+
itemsAsArray: import('vue').ComputedRef<Model[]>;
|
|
6
|
+
totalCount: Ref<number, number>;
|
|
7
|
+
currentItem: [Model] extends [Ref<any, any>] ? import('@vue/shared').IfAny<Model, Ref<Model, Model>, Model> : Ref<import('vue').UnwrapRef<Model>, Model | import('vue').UnwrapRef<Model>>;
|
|
8
|
+
setTotalCount: (totalItems: number) => void;
|
|
9
|
+
addOrReplaceItems: (itemsToAdd: Model[]) => void;
|
|
10
|
+
getById: (id: number) => Nullable<Model>;
|
|
11
|
+
removeById: (id: number) => boolean;
|
|
12
|
+
clearItems: () => void;
|
|
13
|
+
setCurrentItem: (item: Nullable<Model>) => void;
|
|
14
|
+
clearCurrentItem: () => void;
|
|
15
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { LoadingStatus } from '../constants';
|
|
2
|
+
export declare function useLoadingStatus(): {
|
|
3
|
+
loadingStatus: import('vue').Ref<Set<LoadingStatus> & Omit<Set<LoadingStatus>, keyof Set<any>>, Set<LoadingStatus> | (Set<LoadingStatus> & Omit<Set<LoadingStatus>, keyof Set<any>>)>;
|
|
4
|
+
isFetchingList: import('vue').ComputedRef<boolean>;
|
|
5
|
+
isFetchingItem: import('vue').ComputedRef<boolean>;
|
|
6
|
+
isFetchingLastItems: import('vue').ComputedRef<boolean>;
|
|
7
|
+
isFetchingPreviousItems: import('vue').ComputedRef<boolean>;
|
|
8
|
+
isCreating: import('vue').ComputedRef<boolean>;
|
|
9
|
+
isUpdating: import('vue').ComputedRef<boolean>;
|
|
10
|
+
isDeleting: import('vue').ComputedRef<boolean>;
|
|
11
|
+
isSearching: import('vue').ComputedRef<boolean>;
|
|
12
|
+
isSorting: import('vue').ComputedRef<boolean>;
|
|
13
|
+
setStatus: (status: LoadingStatus) => void;
|
|
14
|
+
removeStatus: (status: LoadingStatus) => void;
|
|
15
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { SortDetail } from '../sort';
|
|
3
|
+
import { BaseModel } from '../BaseModel';
|
|
4
|
+
import { Params } from '../repository';
|
|
5
|
+
export declare function useParams(): {
|
|
6
|
+
params: Ref<Params, Params>;
|
|
7
|
+
setNextPage: () => void;
|
|
8
|
+
setPreventPage: () => void;
|
|
9
|
+
setPageNumber: (pageNumber: number) => void;
|
|
10
|
+
setItemCount: (itemCount: number) => void;
|
|
11
|
+
setSortDetail: (sortDetail: SortDetail<BaseModel>) => void;
|
|
12
|
+
setFilter: (key: string, value: unknown) => void;
|
|
13
|
+
removeFilter: (key: string) => void;
|
|
14
|
+
getRequestParams: () => Record<string, unknown>;
|
|
15
|
+
clearParam: () => void;
|
|
16
|
+
setFiltersBaseOnRequestBody: (filters: Record<string, unknown>) => void;
|
|
17
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Repository } from '../repository';
|
|
2
|
+
import { LoadingStatus } from '../constants';
|
|
3
|
+
import { SortDetail } from '../sort';
|
|
4
|
+
import { BaseModel } from '../BaseModel';
|
|
5
|
+
import { TableRenderingData, TableService } from '../baseTable';
|
|
6
|
+
export declare function useRepository<Model extends BaseModel>(repository: Repository<Model>): {
|
|
7
|
+
loadingStatusManager: {
|
|
8
|
+
loadingStatus: import('vue').Ref<Set<LoadingStatus> & Omit<Set<LoadingStatus>, keyof Set<any>>, Set<LoadingStatus> | (Set<LoadingStatus> & Omit<Set<LoadingStatus>, keyof Set<any>>)>;
|
|
9
|
+
isFetchingList: import('vue').ComputedRef<boolean>;
|
|
10
|
+
isFetchingItem: import('vue').ComputedRef<boolean>;
|
|
11
|
+
isFetchingLastItems: import('vue').ComputedRef<boolean>;
|
|
12
|
+
isFetchingPreviousItems: import('vue').ComputedRef<boolean>;
|
|
13
|
+
isCreating: import('vue').ComputedRef<boolean>;
|
|
14
|
+
isUpdating: import('vue').ComputedRef<boolean>;
|
|
15
|
+
isDeleting: import('vue').ComputedRef<boolean>;
|
|
16
|
+
isSearching: import('vue').ComputedRef<boolean>;
|
|
17
|
+
isSorting: import('vue').ComputedRef<boolean>;
|
|
18
|
+
setStatus: (status: LoadingStatus) => void;
|
|
19
|
+
removeStatus: (status: LoadingStatus) => void;
|
|
20
|
+
};
|
|
21
|
+
dataManger: {
|
|
22
|
+
itemsAsArray: import('vue').ComputedRef<BaseModel[]>;
|
|
23
|
+
totalCount: import('vue').Ref<number, number>;
|
|
24
|
+
currentItem: import('vue').Ref<{
|
|
25
|
+
id: number | string;
|
|
26
|
+
}, BaseModel | {
|
|
27
|
+
id: number | string;
|
|
28
|
+
}>;
|
|
29
|
+
setTotalCount: (totalItems: number) => void;
|
|
30
|
+
addOrReplaceItems: (itemsToAdd: BaseModel[]) => void;
|
|
31
|
+
getById: (id: number) => BaseModel;
|
|
32
|
+
removeById: (id: number) => boolean;
|
|
33
|
+
clearItems: () => void;
|
|
34
|
+
setCurrentItem: (item: BaseModel) => void;
|
|
35
|
+
clearCurrentItem: () => void;
|
|
36
|
+
};
|
|
37
|
+
paramsManager: {
|
|
38
|
+
params: import('vue').Ref<import('../repository').Params, import('../repository').Params>;
|
|
39
|
+
setNextPage: () => void;
|
|
40
|
+
setPreventPage: () => void;
|
|
41
|
+
setPageNumber: (pageNumber: number) => void;
|
|
42
|
+
setItemCount: (itemCount: number) => void;
|
|
43
|
+
setSortDetail: (sortDetail: SortDetail<BaseModel>) => void;
|
|
44
|
+
setFilter: (key: string, value: unknown) => void;
|
|
45
|
+
removeFilter: (key: string) => void;
|
|
46
|
+
getRequestParams: () => Record<string, unknown>;
|
|
47
|
+
clearParam: () => void;
|
|
48
|
+
setFiltersBaseOnRequestBody: (filters: Record<string, unknown>) => void;
|
|
49
|
+
};
|
|
50
|
+
tableRenderingData: import('vue').ComputedRef<TableRenderingData<Model>>;
|
|
51
|
+
fetchList: (loadingStatus?: LoadingStatus) => Promise<import('../repository').FetchListResponse<Model>>;
|
|
52
|
+
fetchWithAutoRefresh: () => Promise<void>;
|
|
53
|
+
setupAutoRefresh: () => void;
|
|
54
|
+
stopAutoRefresh: () => void;
|
|
55
|
+
fetchItemById: (id: number, shouldRemoveItem?: boolean) => Promise<Model>;
|
|
56
|
+
createItem: <Body>(body: Body) => Promise<Model>;
|
|
57
|
+
updateItem: <Body>(id: number, body: Body) => Promise<Model>;
|
|
58
|
+
deleteItem: (id: number) => Promise<boolean>;
|
|
59
|
+
fetchLastItems: () => Promise<import('../repository').FetchListResponse<Model>>;
|
|
60
|
+
fetchPreviousItems: () => Promise<import('../repository').FetchListResponse<Model>>;
|
|
61
|
+
fetchItemsByPageNumber: (pageNumber: number) => Promise<import('../repository').FetchListResponse<Model>>;
|
|
62
|
+
search: (searchedValue: string) => Promise<import('../repository').FetchListResponse<Model>>;
|
|
63
|
+
sort: (sortDetail: SortDetail<Model>) => Promise<import('../repository').FetchListResponse<Model>>;
|
|
64
|
+
clearFilters: () => Promise<import('../repository').FetchListResponse<Model>>;
|
|
65
|
+
tableService: import('vue').ComputedRef<TableService<Model>>;
|
|
66
|
+
currentPageItems: import('vue').ComputedRef<Model[]>;
|
|
67
|
+
};
|