@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.
Files changed (163) hide show
  1. package/dist/IronCore.js +97 -76
  2. package/dist/IronCore.umd.cjs +3 -3
  3. package/dist/core/index.d.ts +1 -0
  4. package/dist/core/src/BaseModel.d.ts +45 -0
  5. package/dist/core/src/Utils.d.ts +4 -0
  6. package/dist/core/src/accessHandling/AccessControl.d.ts +10 -0
  7. package/dist/core/src/accessHandling/AccessLevel.d.ts +13 -0
  8. package/dist/core/src/accessHandling/Accessible.d.ts +3 -0
  9. package/dist/core/src/accessHandling/EveryDirectiveAccess.d.ts +4 -0
  10. package/dist/core/src/accessHandling/SSO/AuthorizationDirective.d.ts +17 -0
  11. package/dist/core/src/accessHandling/SSO/AuthorizationService.d.ts +17 -0
  12. package/dist/core/src/accessHandling/SSO/EveryLevelAuthorizationDirective.d.ts +4 -0
  13. package/dist/core/src/accessHandling/SSO/SomeLevelsAuthorizationDirective.d.ts +4 -0
  14. package/dist/core/src/accessHandling/SomeDirectiveAccess.d.ts +4 -0
  15. package/dist/core/src/accessHandling/index.d.ts +9 -0
  16. package/dist/core/src/baseDirective/BeforeMountDirective.d.ts +3 -0
  17. package/dist/core/src/baseDirective/BeforeUnMountDirective.d.ts +3 -0
  18. package/dist/core/src/baseDirective/BeforeUpdateDirective.d.ts +3 -0
  19. package/dist/core/src/baseDirective/CreatedDirective.d.ts +3 -0
  20. package/dist/core/src/baseDirective/MountedDirective.d.ts +3 -0
  21. package/dist/core/src/baseDirective/UnMountedDirective.d.ts +3 -0
  22. package/dist/core/src/baseDirective/UpdateDirective.d.ts +3 -0
  23. package/dist/core/src/baseDirective/index.d.ts +7 -0
  24. package/dist/core/src/baseForm/BaseRequestBodyFilter.d.ts +4 -0
  25. package/dist/core/src/baseForm/FormManager.d.ts +18 -0
  26. package/dist/core/src/baseForm/InputControl.d.ts +40 -0
  27. package/dist/core/src/baseForm/InputControlBuilder.d.ts +16 -0
  28. package/dist/core/src/baseForm/InputControlData.d.ts +15 -0
  29. package/dist/core/src/baseForm/RequestBodyFilter.d.ts +3 -0
  30. package/dist/core/src/baseForm/TouchSensitiveForm.d.ts +9 -0
  31. package/dist/core/src/baseForm/UseForm.d.ts +18 -0
  32. package/dist/core/src/baseForm/index.d.ts +8 -0
  33. package/dist/core/src/baseSchedule/Schedule.d.ts +3 -0
  34. package/dist/core/src/baseSchedule/Scheduler.d.ts +8 -0
  35. package/dist/core/src/baseSchedule/index.d.ts +2 -0
  36. package/dist/core/src/baseTable/BaseTable.d.ts +47 -0
  37. package/dist/core/src/baseTable/Constants.d.ts +13 -0
  38. package/dist/core/src/baseTable/OnDestory.d.ts +3 -0
  39. package/dist/core/src/baseTable/RowActionSource.d.ts +4 -0
  40. package/dist/core/src/baseTable/RowClick.d.ts +3 -0
  41. package/dist/core/src/baseTable/RowDoubleClick.d.ts +3 -0
  42. package/dist/core/src/baseTable/RowMetaClick.d.ts +3 -0
  43. package/dist/core/src/baseTable/SelectableTable.d.ts +19 -0
  44. package/dist/core/src/baseTable/TableAction.d.ts +8 -0
  45. package/dist/core/src/baseTable/TableHeaderSchema.d.ts +27 -0
  46. package/dist/core/src/baseTable/TableLoader.d.ts +3 -0
  47. package/dist/core/src/baseTable/TablePaginate.d.ts +3 -0
  48. package/dist/core/src/baseTable/TableService.d.ts +9 -0
  49. package/dist/core/src/baseTable/TableSort.d.ts +4 -0
  50. package/dist/core/src/baseTable/TableSummarySchema.d.ts +9 -0
  51. package/dist/core/src/baseTable/generator/SelectableTableGenerator.d.ts +14 -0
  52. package/dist/core/src/baseTable/generator/TableCellComponentRegistry.d.ts +7 -0
  53. package/dist/core/src/baseTable/generator/TableConfig.d.ts +7 -0
  54. package/dist/core/src/baseTable/generator/TableGenerator.d.ts +37 -0
  55. package/dist/core/src/baseTable/generator/TableSource.d.ts +24 -0
  56. package/dist/core/src/baseTable/index.d.ts +23 -0
  57. package/dist/core/src/baseTable/moduleConnection/Action.d.ts +3 -0
  58. package/dist/core/src/baseTable/moduleConnection/Column.d.ts +3 -0
  59. package/dist/core/src/baseTable/moduleConnection/Table.d.ts +4 -0
  60. package/dist/core/src/baseTable/moduleConnection/TableDestroy.d.ts +2 -0
  61. package/dist/core/src/baseTable/moduleConnection/TableRowClick.d.ts +2 -0
  62. package/dist/core/src/baseTable/moduleConnection/generator/GColumn.d.ts +2 -0
  63. package/dist/core/src/baseTable/moduleConnection/generator/GTable.d.ts +2 -0
  64. package/dist/core/src/composables/UseCrud.d.ts +10 -0
  65. package/dist/core/src/composables/UseData.d.ts +15 -0
  66. package/dist/core/src/composables/UseLoadingStatus.d.ts +15 -0
  67. package/dist/core/src/composables/UseParams.d.ts +17 -0
  68. package/dist/core/src/composables/UseRepository.d.ts +67 -0
  69. package/dist/core/src/composables/UseState.d.ts +2 -0
  70. package/dist/core/src/composables/UseStaticTableService.d.ts +5 -0
  71. package/dist/core/src/composables/index.d.ts +7 -0
  72. package/dist/core/src/constants/Constants.d.ts +108 -0
  73. package/dist/core/src/constants/index.d.ts +1 -0
  74. package/dist/core/src/crudService/CrudService.d.ts +22 -0
  75. package/dist/core/src/crudService/index.d.ts +1 -0
  76. package/dist/core/src/dataStructures/Queue/Queue.d.ts +8 -0
  77. package/dist/core/src/dataStructures/index.d.ts +1 -0
  78. package/dist/core/src/dateHandling/Constants.d.ts +5 -0
  79. package/dist/core/src/dateHandling/Converter.d.ts +5 -0
  80. package/dist/core/src/dateHandling/JalaliDateSetup.d.ts +1 -0
  81. package/dist/core/src/dateHandling/Model.d.ts +12 -0
  82. package/dist/core/src/dateHandling/Utils.d.ts +8 -0
  83. package/dist/core/src/dateHandling/index.d.ts +5 -0
  84. package/dist/core/src/debounce/DebounceAction.d.ts +4 -0
  85. package/dist/core/src/debounce/DebounceService.d.ts +9 -0
  86. package/dist/core/src/debounce/index.d.ts +2 -0
  87. package/dist/core/src/deviceManagement/Constants.d.ts +4 -0
  88. package/dist/core/src/deviceManagement/Visibility.d.ts +4 -0
  89. package/dist/core/src/deviceManagement/VisibilityManager.d.ts +6 -0
  90. package/dist/core/src/deviceManagement/index.d.ts +3 -0
  91. package/dist/core/src/errorHandling/ErrorHandler.d.ts +3 -0
  92. package/dist/core/src/errorHandling/HandleError.d.ts +2 -0
  93. package/dist/core/src/errorHandling/index.d.ts +2 -0
  94. package/dist/core/src/eventSystem/CustomEventDispatcher.d.ts +5 -0
  95. package/dist/core/src/eventSystem/Model.d.ts +8 -0
  96. package/dist/core/src/eventSystem/OnEvent.d.ts +1 -0
  97. package/dist/core/src/eventSystem/index.d.ts +3 -0
  98. package/dist/core/src/feedbackHandling/FailureFeedback.d.ts +3 -0
  99. package/dist/core/src/feedbackHandling/Feedback.d.ts +11 -0
  100. package/dist/core/src/feedbackHandling/HandleFeedback.d.ts +2 -0
  101. package/dist/core/src/feedbackHandling/InfoFeedback.d.ts +3 -0
  102. package/dist/core/src/feedbackHandling/SuccessFeedback.d.ts +3 -0
  103. package/dist/core/src/feedbackHandling/WarningFeedback.d.ts +3 -0
  104. package/dist/core/src/feedbackHandling/index.d.ts +6 -0
  105. package/dist/core/src/httpClient/ApiBuilder.d.ts +14 -0
  106. package/dist/core/src/httpClient/ErrorHandlerRegistry.d.ts +10 -0
  107. package/dist/core/src/httpClient/HttpClient.d.ts +14 -0
  108. package/dist/core/src/httpClient/Interceptor.d.ts +4 -0
  109. package/dist/core/src/httpClient/index.d.ts +4 -0
  110. package/dist/core/src/initializer/ApplicationInitializer.d.ts +6 -0
  111. package/dist/core/src/initializer/Initializer.d.ts +3 -0
  112. package/dist/core/src/initializer/index.d.ts +2 -0
  113. package/dist/core/src/json/JsonMapper.d.ts +18 -0
  114. package/dist/core/src/json/index.d.ts +1 -0
  115. package/dist/core/src/layout/Constants.d.ts +10 -0
  116. package/dist/core/src/layout/DialogService.d.ts +406 -0
  117. package/dist/core/src/layout/DrawerService.d.ts +14 -0
  118. package/dist/core/src/layout/Toast.d.ts +8 -0
  119. package/dist/core/src/layout/index.d.ts +4 -0
  120. package/dist/core/src/lib/Constants.d.ts +20 -0
  121. package/dist/core/src/lib/Formatter.d.ts +10 -0
  122. package/dist/core/src/lib/Util.d.ts +12 -0
  123. package/dist/core/src/lib/index.d.ts +3 -0
  124. package/dist/core/src/observables/AbstractSubject.d.ts +7 -0
  125. package/dist/core/src/observables/BehaviorSubject.d.ts +16 -0
  126. package/dist/core/src/observables/Observer.d.ts +3 -0
  127. package/dist/core/src/observables/Subject.d.ts +6 -0
  128. package/dist/core/src/observables/index.d.ts +4 -0
  129. package/dist/core/src/process/Proccess.d.ts +9 -0
  130. package/dist/core/src/process/ProcessManager.d.ts +10 -0
  131. package/dist/core/src/process/index.d.ts +2 -0
  132. package/dist/core/src/repository/Params.d.ts +11 -0
  133. package/dist/core/src/repository/Repository.d.ts +38 -0
  134. package/dist/core/src/repository/SyncDetail.d.ts +5 -0
  135. package/dist/core/src/repository/index.d.ts +4 -0
  136. package/dist/core/src/repository/model.d.ts +5 -0
  137. package/dist/core/src/routeGuard/RouteGuard.d.ts +7 -0
  138. package/dist/core/src/routeGuard/index.d.ts +1 -0
  139. package/dist/core/src/search/client/ClientArraySearch.d.ts +4 -0
  140. package/dist/core/src/search/client/ClientSearch.d.ts +3 -0
  141. package/dist/core/src/search/index.d.ts +2 -0
  142. package/dist/core/src/sort/SortDetail.d.ts +6 -0
  143. package/dist/core/src/sort/client/Sorter.d.ts +6 -0
  144. package/dist/core/src/sort/index.d.ts +4 -0
  145. package/dist/core/src/sort/strategies/SimpleSort.d.ts +5 -0
  146. package/dist/core/src/sort/strategies/SortStrategy.d.ts +4 -0
  147. package/dist/core/src/types/Global.d.ts +1 -0
  148. package/dist/core/src/types/index.d.ts +1 -0
  149. package/dist/core/src/validators/Validator.d.ts +4 -0
  150. package/dist/core/src/validators/index.d.ts +1 -0
  151. package/dist/core/src/webSocket/Constants.d.ts +6 -0
  152. package/dist/core/src/webSocket/Model.d.ts +6 -0
  153. package/dist/core/src/webSocket/WebSocketService.d.ts +30 -0
  154. package/dist/core/src/webSocket/index.d.ts +3 -0
  155. package/dist/example-vue/src/AntTableConfig.d.ts +6 -0
  156. package/dist/example-vue/src/TableService.d.ts +12 -0
  157. package/dist/example-vue/src/TextCell.vue.d.ts +5 -0
  158. package/dist/example-vue/src/app/App.vue.d.ts +2 -0
  159. package/dist/example-vue/src/app/router/index.d.ts +1 -0
  160. package/dist/example-vue/src/app/screens/Index.vue.d.ts +2 -0
  161. package/dist/example-vue/src/main.d.ts +0 -0
  162. package/package.json +4 -1
  163. 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,3 @@
1
+ export interface RequestBodyFilter<T> {
2
+ shouldBeInRequestBody(value: T): boolean;
3
+ }
@@ -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,3 @@
1
+ export interface Schedule {
2
+ runAction: () => Promise<unknown>;
3
+ }
@@ -0,0 +1,8 @@
1
+ import { Schedule } from './Schedule';
2
+ export declare class Scheduler {
3
+ private timerId;
4
+ private readonly schedule;
5
+ constructor(scheduler: Schedule);
6
+ setupInterval(intervalInMilliseconds: number): void;
7
+ clearInterval(): void;
8
+ }
@@ -0,0 +1,2 @@
1
+ export { type Schedule } from './Schedule';
2
+ export { Scheduler } from './Scheduler';
@@ -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,3 @@
1
+ export interface Destroy {
2
+ onDestroy(): Promise<void>;
3
+ }
@@ -0,0 +1,4 @@
1
+ import { TableAction } from './TableAction';
2
+ export interface RowActionSource<Model, A> {
3
+ getActions(): TableAction<Model, A>[];
4
+ }
@@ -0,0 +1,3 @@
1
+ export interface RowClick<Model> {
2
+ handleClick(row: Model): Promise<void>;
3
+ }
@@ -0,0 +1,3 @@
1
+ export interface RowDoubleClick<Model> {
2
+ handleDoubleClick(row: Model): Promise<void>;
3
+ }
@@ -0,0 +1,3 @@
1
+ export interface RowMetaClick<Model> {
2
+ handleMetaClick(row: Model): Promise<void>;
3
+ }
@@ -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,3 @@
1
+ export interface TableLoader<Model> {
2
+ loadRows(): Promise<Model>;
3
+ }
@@ -0,0 +1,3 @@
1
+ export interface TablePaginate {
2
+ handlePagination(nextPage: number, pageSize: number): Promise<void>;
3
+ }
@@ -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,4 @@
1
+ import { SortDetail } from '../sort';
2
+ export interface TableSort<Model> {
3
+ handleSort(sortDetail: SortDetail<Model>): Promise<void>;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { TableHeaderAlign } from '../constants';
2
+ export interface TableSummaryItem {
3
+ data: string | number;
4
+ align: TableHeaderAlign;
5
+ }
6
+ export interface TableSummarySchema {
7
+ summaryTitle: string;
8
+ summaryItems: TableSummaryItem[];
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,3 @@
1
+ import { TableHeaderSchema } from '../TableHeaderSchema';
2
+ import { BaseModel } from '../../BaseModel';
3
+ export declare function Column<Model extends BaseModel>(header: TableHeaderSchema<Model>): (target: BaseModel, propertyKey: string) => 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,2 @@
1
+ import { BaseModel } from '../../BaseModel';
2
+ export declare function TableDestroy(): (target: BaseModel, _propertyKey: string, descriptor: PropertyDescriptor) => void;
@@ -0,0 +1,2 @@
1
+ import { BaseModel } from '../../BaseModel';
2
+ export declare function TableRowClick(): (target: BaseModel, _propertyKey: string, descriptor: PropertyDescriptor) => void;
@@ -0,0 +1,2 @@
1
+ import { TableHeaderSchema } from '../../index';
2
+ export declare function GColumn<T>(header: TableHeaderSchema<T>): (target: T, propertyKey: string) => void;
@@ -0,0 +1,2 @@
1
+ import { TableSource } from '../../generator/TableSource';
2
+ export declare function GTable<T>(table: new (...args: any[]) => TableSource<T>): (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
+ };