@sarafapp/iron_core 1.0.62 → 1.0.64
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 +18 -8
- package/dist/IronCore.umd.cjs +1 -1
- package/dist/core/index.d.ts +31 -0
- package/dist/{src → core/src}/BaseModel.d.ts +4 -4
- package/dist/core/src/baseForm/UseForm.d.ts +18 -0
- package/dist/{src → core/src}/baseTable/BaseTable.d.ts +3 -2
- package/dist/{src → core/src}/baseTable/Constants.d.ts +4 -3
- package/dist/{src → core/src}/baseTable/SelectableTable.d.ts +2 -2
- package/dist/{src → core/src}/baseTable/generator/SelectableTableGenerator.d.ts +3 -3
- package/dist/{src → core/src}/baseTable/moduleConnection/Table.d.ts +1 -1
- package/dist/{src → core/src}/baseTable/moduleConnection/generator/GColumn.d.ts +1 -1
- package/dist/{src → core/src}/composables/UseCrud.d.ts +4 -4
- package/dist/{src → core/src}/composables/UseData.d.ts +4 -3
- package/dist/core/src/composables/UseLoadingStatus.d.ts +15 -0
- package/dist/{src → core/src}/composables/UseParams.d.ts +3 -1
- package/dist/core/src/composables/UseRepository.d.ts +67 -0
- package/dist/core/src/composables/UseStaticTableService.d.ts +5 -0
- package/dist/{src → core/src}/crudService/CrudService.d.ts +8 -8
- package/dist/{src → core/src}/dateHandling/Converter.d.ts +1 -1
- package/dist/{src → core/src}/httpClient/ErrorHandlerRegistry.d.ts +1 -1
- package/dist/{src → core/src}/json/JsonMapper.d.ts +1 -1
- package/dist/core/src/layout/DialogService.d.ts +406 -0
- package/dist/core/src/layout/DrawerService.d.ts +14 -0
- package/dist/{src → core/src}/lib/Formatter.d.ts +1 -1
- package/dist/{src → core/src}/lib/Util.d.ts +2 -1
- package/dist/core/vite.config.d.ts +2 -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/dist/example-vue/vite.config.d.ts +2 -0
- package/dist/index.d.ts +2 -31
- package/index.ts +37 -0
- package/package.json +2 -5
- package/src/BaseModel.ts +127 -0
- package/src/Utils.ts +16 -0
- package/src/accessHandling/AccessControl.ts +33 -0
- package/src/accessHandling/AccessLevel.ts +52 -0
- package/src/accessHandling/Accessible.ts +3 -0
- package/src/accessHandling/EveryDirectiveAccess.ts +7 -0
- package/src/accessHandling/SSO/AuthorizationDirective.ts +65 -0
- package/src/accessHandling/SSO/AuthorizationService.ts +74 -0
- package/src/accessHandling/SSO/EveryLevelAuthorizationDirective.ts +7 -0
- package/src/accessHandling/SSO/SomeLevelsAuthorizationDirective.ts +7 -0
- package/src/accessHandling/SomeDirectiveAccess.ts +7 -0
- package/src/accessHandling/index.ts +9 -0
- package/src/baseDirective/BeforeMountDirective.ts +3 -0
- package/src/baseDirective/BeforeUnMountDirective.ts +3 -0
- package/src/baseDirective/BeforeUpdateDirective.ts +3 -0
- package/src/baseDirective/CreatedDirective.ts +3 -0
- package/src/baseDirective/MountedDirective.ts +3 -0
- package/src/baseDirective/UnMountedDirective.ts +3 -0
- package/src/baseDirective/UpdateDirective.ts +3 -0
- package/src/baseDirective/index.ts +7 -0
- package/src/baseForm/BaseRequestBodyFilter.ts +7 -0
- package/src/baseForm/FormManager.ts +95 -0
- package/src/baseForm/InputControl.ts +182 -0
- package/src/baseForm/InputControlBuilder.ts +59 -0
- package/src/baseForm/InputControlData.ts +16 -0
- package/src/baseForm/RequestBodyFilter.ts +3 -0
- package/src/baseForm/TouchSensitiveForm.ts +47 -0
- package/src/baseForm/UseForm.ts +32 -0
- package/src/baseForm/index.ts +8 -0
- package/src/baseSchedule/Schedule.ts +3 -0
- package/src/baseSchedule/Scheduler.ts +29 -0
- package/src/baseSchedule/index.ts +2 -0
- package/src/baseTable/BaseTable.ts +162 -0
- package/src/baseTable/Constants.ts +26 -0
- package/src/baseTable/OnDestory.ts +3 -0
- package/src/baseTable/RowActionSource.ts +5 -0
- package/src/baseTable/RowClick.ts +3 -0
- package/src/baseTable/RowDoubleClick.ts +3 -0
- package/src/baseTable/RowMetaClick.ts +3 -0
- package/src/baseTable/SelectableTable.ts +86 -0
- package/src/baseTable/TableAction.ts +10 -0
- package/src/baseTable/TableHeaderSchema.ts +44 -0
- package/src/baseTable/TableLoader.ts +3 -0
- package/src/baseTable/TablePaginate.ts +3 -0
- package/src/baseTable/TableService.ts +10 -0
- package/src/baseTable/TableSort.ts +5 -0
- package/src/baseTable/TableSummarySchema.ts +11 -0
- package/src/baseTable/generator/SelectableTableGenerator.ts +65 -0
- package/src/baseTable/generator/TableCellComponentRegistry.ts +15 -0
- package/src/baseTable/generator/TableConfig.ts +18 -0
- package/src/baseTable/generator/TableGenerator.ts +147 -0
- package/src/baseTable/generator/TableSource.ts +34 -0
- package/src/baseTable/index.ts +43 -0
- package/src/baseTable/moduleConnection/Action.ts +12 -0
- package/src/baseTable/moduleConnection/Column.ts +11 -0
- package/src/baseTable/moduleConnection/Table.ts +49 -0
- package/src/baseTable/moduleConnection/TableDestroy.ts +7 -0
- package/src/baseTable/moduleConnection/TableRowClick.ts +7 -0
- package/src/baseTable/moduleConnection/generator/GColumn.ts +10 -0
- package/src/baseTable/moduleConnection/generator/GTable.ts +11 -0
- package/src/composables/UseCrud.ts +53 -0
- package/src/composables/UseData.ts +70 -0
- package/src/composables/UseLoadingStatus.ts +65 -0
- package/src/composables/UseParams.ts +93 -0
- package/src/composables/UseRepository.ts +207 -0
- package/src/composables/UseState.ts +30 -0
- package/src/composables/UseStaticTableService.ts +45 -0
- package/src/composables/index.ts +7 -0
- package/src/constants/Constants.ts +126 -0
- package/src/constants/index.ts +19 -0
- package/src/crudService/CrudService.ts +121 -0
- package/src/crudService/index.ts +1 -0
- package/src/dateHandling/Constants.ts +5 -0
- package/src/dateHandling/Converter.ts +15 -0
- package/src/dateHandling/JalaliDateSetup.ts +42 -0
- package/src/dateHandling/Model.ts +27 -0
- package/src/dateHandling/Utils.ts +49 -0
- package/src/dateHandling/index.ts +5 -0
- package/src/debounce/DebounceAction.ts +4 -0
- package/src/debounce/DebounceService.ts +27 -0
- package/src/debounce/index.ts +2 -0
- package/src/deviceManagement/Constants.ts +4 -0
- package/src/deviceManagement/Visibility.ts +4 -0
- package/src/deviceManagement/VisibilityManager.ts +18 -0
- package/src/deviceManagement/index.ts +3 -0
- package/src/errorHandling/ErrorHandler.ts +3 -0
- package/src/errorHandling/HandleError.ts +20 -0
- package/src/errorHandling/index.ts +2 -0
- package/src/eventSystem/CustomEventDispatcher.ts +13 -0
- package/src/eventSystem/Model.ts +29 -0
- package/src/eventSystem/OnEvent.ts +25 -0
- package/src/eventSystem/index.ts +3 -0
- package/src/feedbackHandling/FailureFeedback.ts +3 -0
- package/src/feedbackHandling/Feedback.ts +34 -0
- package/src/feedbackHandling/HandleFeedback.ts +28 -0
- package/src/feedbackHandling/InfoFeedback.ts +3 -0
- package/src/feedbackHandling/SuccessFeedback.ts +3 -0
- package/src/feedbackHandling/WarningFeedback.ts +3 -0
- package/src/feedbackHandling/index.ts +6 -0
- package/src/httpClient/ApiBuilder.ts +57 -0
- package/src/httpClient/ErrorHandlerRegistry.ts +29 -0
- package/src/httpClient/HttpClient.ts +77 -0
- package/src/httpClient/Interceptor.ts +5 -0
- package/src/httpClient/index.ts +4 -0
- package/src/initializer/ApplicationInitializer.ts +15 -0
- package/src/initializer/Initializer.ts +3 -0
- package/src/initializer/index.ts +2 -0
- package/src/json/JsonMapper.ts +48 -0
- package/src/json/index.ts +1 -0
- package/src/layout/Constants.ts +11 -0
- package/src/layout/DialogService.ts +75 -0
- package/src/layout/DrawerService.ts +25 -0
- package/src/layout/Toast.ts +14 -0
- package/src/layout/index.ts +4 -0
- package/src/lib/Constants.ts +433 -0
- package/src/lib/Formatter.ts +68 -0
- package/src/lib/Util.ts +113 -0
- package/src/lib/index.ts +3 -0
- package/src/observables/AbstractSubject.ts +21 -0
- package/src/observables/BehaviorSubject.ts +58 -0
- package/src/observables/Observer.ts +3 -0
- package/src/observables/Subject.ts +9 -0
- package/src/observables/index.ts +4 -0
- package/src/process/Proccess.ts +21 -0
- package/src/process/ProcessManager.ts +31 -0
- package/src/process/index.ts +2 -0
- package/src/repository/Params.ts +10 -0
- package/src/repository/Repository.ts +44 -0
- package/src/repository/SyncDetail.ts +8 -0
- package/src/repository/index.ts +4 -0
- package/src/repository/model.ts +9 -0
- package/src/routeGuard/RouteGuard.ts +38 -0
- package/src/routeGuard/index.ts +1 -0
- package/src/search/client/ClientArraySearch.ts +25 -0
- package/src/search/client/ClientSearch.ts +3 -0
- package/src/search/index.ts +2 -0
- package/src/sort/SortDetail.ts +11 -0
- package/src/sort/client/Sorter.ts +28 -0
- package/src/sort/index.ts +4 -0
- package/src/sort/strategies/SimpleSort.ts +35 -0
- package/src/sort/strategies/SortStrategy.ts +4 -0
- package/src/types/Global.ts +1 -0
- package/src/types/index.ts +1 -0
- package/src/validators/Validator.ts +5 -0
- package/src/validators/index.ts +1 -0
- package/src/webSocket/Constants.ts +6 -0
- package/src/webSocket/Model.ts +16 -0
- package/src/webSocket/WebSocketService.ts +153 -0
- package/src/webSocket/index.ts +3 -0
- package/vite.config.ts +55 -0
- package/dist/src/baseForm/UseForm.d.ts +0 -5
- package/dist/src/composables/UseLoadingStatus.d.ts +0 -15
- package/dist/src/composables/UseRepository.d.ts +0 -63
- package/dist/src/composables/UseStaticTableService.d.ts +0 -4
- package/dist/src/layout/DialogService.d.ts +0 -1
- package/dist/src/layout/DrawerService.d.ts +0 -1
- package/dist/vite.config.d.ts +0 -2
- /package/dist/{src → core/src}/Utils.d.ts +0 -0
- /package/dist/{src → core/src}/accessHandling/AccessControl.d.ts +0 -0
- /package/dist/{src → core/src}/accessHandling/AccessLevel.d.ts +0 -0
- /package/dist/{src → core/src}/accessHandling/Accessible.d.ts +0 -0
- /package/dist/{src → core/src}/accessHandling/EveryDirectiveAccess.d.ts +0 -0
- /package/dist/{src → core/src}/accessHandling/SSO/AuthorizationDirective.d.ts +0 -0
- /package/dist/{src → core/src}/accessHandling/SSO/AuthorizationService.d.ts +0 -0
- /package/dist/{src → core/src}/accessHandling/SSO/EveryLevelAuthorizationDirective.d.ts +0 -0
- /package/dist/{src → core/src}/accessHandling/SSO/SomeLevelsAuthorizationDirective.d.ts +0 -0
- /package/dist/{src → core/src}/accessHandling/SomeDirectiveAccess.d.ts +0 -0
- /package/dist/{src → core/src}/accessHandling/index.d.ts +0 -0
- /package/dist/{src → core/src}/baseDirective/BeforeMountDirective.d.ts +0 -0
- /package/dist/{src → core/src}/baseDirective/BeforeUnMountDirective.d.ts +0 -0
- /package/dist/{src → core/src}/baseDirective/BeforeUpdateDirective.d.ts +0 -0
- /package/dist/{src → core/src}/baseDirective/CreatedDirective.d.ts +0 -0
- /package/dist/{src → core/src}/baseDirective/MountedDirective.d.ts +0 -0
- /package/dist/{src → core/src}/baseDirective/UnMountedDirective.d.ts +0 -0
- /package/dist/{src → core/src}/baseDirective/UpdateDirective.d.ts +0 -0
- /package/dist/{src → core/src}/baseDirective/index.d.ts +0 -0
- /package/dist/{src → core/src}/baseForm/BaseRequestBodyFilter.d.ts +0 -0
- /package/dist/{src → core/src}/baseForm/FormManager.d.ts +0 -0
- /package/dist/{src → core/src}/baseForm/InputControl.d.ts +0 -0
- /package/dist/{src → core/src}/baseForm/InputControlBuilder.d.ts +0 -0
- /package/dist/{src → core/src}/baseForm/InputControlData.d.ts +0 -0
- /package/dist/{src → core/src}/baseForm/RequestBodyFilter.d.ts +0 -0
- /package/dist/{src → core/src}/baseForm/TouchSensitiveForm.d.ts +0 -0
- /package/dist/{src → core/src}/baseForm/index.d.ts +0 -0
- /package/dist/{src → core/src}/baseSchedule/Schedule.d.ts +0 -0
- /package/dist/{src → core/src}/baseSchedule/Scheduler.d.ts +0 -0
- /package/dist/{src → core/src}/baseSchedule/index.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/OnDestory.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/RowActionSource.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/RowClick.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/RowDoubleClick.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/RowMetaClick.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/TableAction.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/TableHeaderSchema.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/TableLoader.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/TablePaginate.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/TableService.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/TableSort.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/TableSummarySchema.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/generator/TableCellComponentRegistry.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/generator/TableConfig.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/generator/TableGenerator.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/generator/TableSource.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/index.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/moduleConnection/Action.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/moduleConnection/Column.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/moduleConnection/TableDestroy.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/moduleConnection/TableRowClick.d.ts +0 -0
- /package/dist/{src → core/src}/baseTable/moduleConnection/generator/GTable.d.ts +0 -0
- /package/dist/{src → core/src}/composables/UseState.d.ts +0 -0
- /package/dist/{src → core/src}/composables/index.d.ts +0 -0
- /package/dist/{src → core/src}/constants/Constants.d.ts +0 -0
- /package/dist/{src → core/src}/constants/index.d.ts +0 -0
- /package/dist/{src → core/src}/crudService/index.d.ts +0 -0
- /package/dist/{src → core/src}/dateHandling/Constants.d.ts +0 -0
- /package/dist/{src → core/src}/dateHandling/JalaliDateSetup.d.ts +0 -0
- /package/dist/{src → core/src}/dateHandling/Model.d.ts +0 -0
- /package/dist/{src → core/src}/dateHandling/Utils.d.ts +0 -0
- /package/dist/{src → core/src}/dateHandling/index.d.ts +0 -0
- /package/dist/{src → core/src}/debounce/DebounceAction.d.ts +0 -0
- /package/dist/{src → core/src}/debounce/DebounceService.d.ts +0 -0
- /package/dist/{src → core/src}/debounce/index.d.ts +0 -0
- /package/dist/{src → core/src}/deviceManagement/Constants.d.ts +0 -0
- /package/dist/{src → core/src}/deviceManagement/Visibility.d.ts +0 -0
- /package/dist/{src → core/src}/deviceManagement/VisibilityManager.d.ts +0 -0
- /package/dist/{src → core/src}/deviceManagement/index.d.ts +0 -0
- /package/dist/{src → core/src}/errorHandling/ErrorHandler.d.ts +0 -0
- /package/dist/{src → core/src}/errorHandling/HandleError.d.ts +0 -0
- /package/dist/{src → core/src}/errorHandling/index.d.ts +0 -0
- /package/dist/{src → core/src}/eventSystem/CustomEventDispatcher.d.ts +0 -0
- /package/dist/{src → core/src}/eventSystem/Model.d.ts +0 -0
- /package/dist/{src → core/src}/eventSystem/OnEvent.d.ts +0 -0
- /package/dist/{src → core/src}/eventSystem/index.d.ts +0 -0
- /package/dist/{src → core/src}/feedbackHandling/FailureFeedback.d.ts +0 -0
- /package/dist/{src → core/src}/feedbackHandling/Feedback.d.ts +0 -0
- /package/dist/{src → core/src}/feedbackHandling/HandleFeedback.d.ts +0 -0
- /package/dist/{src → core/src}/feedbackHandling/InfoFeedback.d.ts +0 -0
- /package/dist/{src → core/src}/feedbackHandling/SuccessFeedback.d.ts +0 -0
- /package/dist/{src → core/src}/feedbackHandling/WarningFeedback.d.ts +0 -0
- /package/dist/{src → core/src}/feedbackHandling/index.d.ts +0 -0
- /package/dist/{src → core/src}/httpClient/ApiBuilder.d.ts +0 -0
- /package/dist/{src → core/src}/httpClient/HttpClient.d.ts +0 -0
- /package/dist/{src → core/src}/httpClient/Interceptor.d.ts +0 -0
- /package/dist/{src → core/src}/httpClient/index.d.ts +0 -0
- /package/dist/{src → core/src}/initializer/ApplicationInitializer.d.ts +0 -0
- /package/dist/{src → core/src}/initializer/Initializer.d.ts +0 -0
- /package/dist/{src → core/src}/initializer/index.d.ts +0 -0
- /package/dist/{src → core/src}/json/index.d.ts +0 -0
- /package/dist/{src → core/src}/layout/Constants.d.ts +0 -0
- /package/dist/{src → core/src}/layout/Toast.d.ts +0 -0
- /package/dist/{src → core/src}/layout/index.d.ts +0 -0
- /package/dist/{src → core/src}/lib/Constants.d.ts +0 -0
- /package/dist/{src → core/src}/lib/index.d.ts +0 -0
- /package/dist/{src → core/src}/observables/AbstractSubject.d.ts +0 -0
- /package/dist/{src → core/src}/observables/BehaviorSubject.d.ts +0 -0
- /package/dist/{src → core/src}/observables/Observer.d.ts +0 -0
- /package/dist/{src → core/src}/observables/Subject.d.ts +0 -0
- /package/dist/{src → core/src}/observables/index.d.ts +0 -0
- /package/dist/{src → core/src}/process/Proccess.d.ts +0 -0
- /package/dist/{src → core/src}/process/ProcessManager.d.ts +0 -0
- /package/dist/{src → core/src}/process/index.d.ts +0 -0
- /package/dist/{src → core/src}/repository/Params.d.ts +0 -0
- /package/dist/{src → core/src}/repository/Repository.d.ts +0 -0
- /package/dist/{src → core/src}/repository/SyncDetail.d.ts +0 -0
- /package/dist/{src → core/src}/repository/index.d.ts +0 -0
- /package/dist/{src → core/src}/repository/model.d.ts +0 -0
- /package/dist/{src → core/src}/routeGuard/RouteGuard.d.ts +0 -0
- /package/dist/{src → core/src}/routeGuard/index.d.ts +0 -0
- /package/dist/{src → core/src}/search/client/ClientArraySearch.d.ts +0 -0
- /package/dist/{src → core/src}/search/client/ClientSearch.d.ts +0 -0
- /package/dist/{src → core/src}/search/index.d.ts +0 -0
- /package/dist/{src → core/src}/sort/SortDetail.d.ts +0 -0
- /package/dist/{src → core/src}/sort/client/Sorter.d.ts +0 -0
- /package/dist/{src → core/src}/sort/index.d.ts +0 -0
- /package/dist/{src → core/src}/sort/strategies/SimpleSort.d.ts +0 -0
- /package/dist/{src → core/src}/sort/strategies/SortStrategy.d.ts +0 -0
- /package/dist/{src → core/src}/types/Global.d.ts +0 -0
- /package/dist/{src → core/src}/types/index.d.ts +0 -0
- /package/dist/{src → core/src}/validators/Validator.d.ts +0 -0
- /package/dist/{src → core/src}/validators/index.d.ts +0 -0
- /package/dist/{src → core/src}/webSocket/Constants.d.ts +0 -0
- /package/dist/{src → core/src}/webSocket/Model.d.ts +0 -0
- /package/dist/{src → core/src}/webSocket/WebSocketService.d.ts +0 -0
- /package/dist/{src → core/src}/webSocket/index.d.ts +0 -0
package/src/BaseModel.ts
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { JsonObject, JsonProperty } from "json2typescript";
|
|
2
|
+
import { Formatter, DateFormat } from "./lib";
|
|
3
|
+
|
|
4
|
+
@JsonObject("Amount")
|
|
5
|
+
export class Amount {
|
|
6
|
+
@JsonProperty("value", String, true)
|
|
7
|
+
value: string = "";
|
|
8
|
+
|
|
9
|
+
@JsonProperty("symbol", String)
|
|
10
|
+
symbol: string = "";
|
|
11
|
+
|
|
12
|
+
public get tradeValueInNumber() {
|
|
13
|
+
return Number(this.value);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
public get truncatedValue() {
|
|
17
|
+
return this.tradeValueInNumber.toLocaleString("en-US", {
|
|
18
|
+
maximumFractionDigits: 8,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@JsonObject("BaseModel")
|
|
24
|
+
export class BaseModel {
|
|
25
|
+
@JsonProperty("id", Object)
|
|
26
|
+
public id!: number | string;
|
|
27
|
+
|
|
28
|
+
protected getTable<Table>() {
|
|
29
|
+
const table = Object.getPrototypeOf(this)._table;
|
|
30
|
+
if (!table) {
|
|
31
|
+
throw new Error(
|
|
32
|
+
"No Table found for the model. are you sure decorated the model with @Table() ?",
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
return table as Table;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@JsonObject("MinifiedSymbolModel")
|
|
40
|
+
export class MinifiedSymbolModel extends BaseModel {
|
|
41
|
+
@JsonProperty("symbol", String)
|
|
42
|
+
public symbol!: string;
|
|
43
|
+
@JsonProperty("enName", String)
|
|
44
|
+
public enName!: string;
|
|
45
|
+
@JsonProperty("faName", String)
|
|
46
|
+
public faName!: string;
|
|
47
|
+
@JsonProperty("image", String)
|
|
48
|
+
public image!: string;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export class TradeDate {
|
|
52
|
+
public requestedDate: number;
|
|
53
|
+
public executedDate: number;
|
|
54
|
+
|
|
55
|
+
constructor(requestedDate: number, executedDate: number) {
|
|
56
|
+
this.requestedDate = requestedDate;
|
|
57
|
+
this.executedDate = executedDate;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
public get requestedDateInJalali() {
|
|
61
|
+
return Formatter.mapUnixToDate(this.requestedDate, DateFormat.SimpleDate);
|
|
62
|
+
}
|
|
63
|
+
public get requestedTime() {
|
|
64
|
+
return Formatter.mapUnixToDate(this.requestedDate, DateFormat.JustHour);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public get executedDateInJalali() {
|
|
68
|
+
return Formatter.mapUnixToDate(this.executedDate, DateFormat.SimpleDate);
|
|
69
|
+
}
|
|
70
|
+
public get executedDateTime() {
|
|
71
|
+
return Formatter.mapUnixToDate(this.executedDate, DateFormat.JustHour);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export class TradeAmount {
|
|
76
|
+
public requestedAmount: Amount;
|
|
77
|
+
public executedAmount: Amount;
|
|
78
|
+
|
|
79
|
+
constructor(requestedAmount: Amount, executedAmount: Amount) {
|
|
80
|
+
this.requestedAmount = requestedAmount;
|
|
81
|
+
this.executedAmount = executedAmount;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export class SymbolPriceInTrade {
|
|
86
|
+
public symobl: string;
|
|
87
|
+
public symbolPrice: number;
|
|
88
|
+
public USDTPrice: number;
|
|
89
|
+
public symbolImage: string;
|
|
90
|
+
public USDTImage: string;
|
|
91
|
+
|
|
92
|
+
constructor(
|
|
93
|
+
symbolPrice: number,
|
|
94
|
+
USDTPrice: number,
|
|
95
|
+
symbol: string,
|
|
96
|
+
symbolImage: string,
|
|
97
|
+
USDTImage: string,
|
|
98
|
+
) {
|
|
99
|
+
this.symbolPrice = symbolPrice;
|
|
100
|
+
this.USDTPrice = USDTPrice;
|
|
101
|
+
this.symobl = symbol;
|
|
102
|
+
this.symbolImage = symbolImage;
|
|
103
|
+
this.USDTImage = USDTImage;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
public get truncatedSymbolPrice() {
|
|
107
|
+
return this.symbolPrice.toLocaleString("en-US", {
|
|
108
|
+
maximumFractionDigits: 8,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
public get truncatedUSDTPrice() {
|
|
113
|
+
return this.USDTPrice.toLocaleString("en-US", {
|
|
114
|
+
maximumFractionDigits: 8,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export class SymbolInTrade {
|
|
120
|
+
public soldSymbol: MinifiedSymbolModel;
|
|
121
|
+
public buySymbol: MinifiedSymbolModel;
|
|
122
|
+
|
|
123
|
+
constructor(soldSymbol: MinifiedSymbolModel, buySymbol: MinifiedSymbolModel) {
|
|
124
|
+
this.soldSymbol = soldSymbol;
|
|
125
|
+
this.buySymbol = buySymbol;
|
|
126
|
+
}
|
|
127
|
+
}
|
package/src/Utils.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function isOnlyOneItem(total: number): boolean {
|
|
2
|
+
return total === 1;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export function isLastItem(total: number, index: number): boolean {
|
|
6
|
+
return total - 1 === index;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function isEmpty(value: unknown): boolean {
|
|
10
|
+
return String(value).length === 0 || value === null || value === undefined;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function setupStore(initializer: () => void) {
|
|
14
|
+
initializer();
|
|
15
|
+
}
|
|
16
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { DirectiveBinding } from "vue";
|
|
2
|
+
import type { MountedDirective, UpdateDirective } from "../baseDirective";
|
|
3
|
+
import { AccessLevel } from "./AccessLevel";
|
|
4
|
+
|
|
5
|
+
export abstract class AccessControl
|
|
6
|
+
implements MountedDirective, UpdateDirective
|
|
7
|
+
{
|
|
8
|
+
protected accessService;
|
|
9
|
+
|
|
10
|
+
constructor() {
|
|
11
|
+
this.accessService = AccessLevel.GetInstance();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
public mounted = (
|
|
15
|
+
element: HTMLElement,
|
|
16
|
+
binding: DirectiveBinding<string[]>,
|
|
17
|
+
) => {
|
|
18
|
+
this.checkAccess(element, binding.value);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
public updated = (
|
|
22
|
+
element: HTMLElement,
|
|
23
|
+
binding: DirectiveBinding<string[]>,
|
|
24
|
+
) => {
|
|
25
|
+
this.checkAccess(element, binding.value);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
private checkAccess = (element: HTMLElement, accessLevels: string[]) => {
|
|
29
|
+
if (!this.hasAccess(accessLevels)) element.remove();
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
protected abstract hasAccess(accessLevels: string[]): boolean;
|
|
33
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { StorageKeys } from '../constants'
|
|
2
|
+
import type { Initializer } from '../initializer/Initializer'
|
|
3
|
+
import type { Nullable } from '../types'
|
|
4
|
+
|
|
5
|
+
export class AccessLevel implements Initializer {
|
|
6
|
+
private static Instance: Nullable<AccessLevel> = null
|
|
7
|
+
private availableAccesses: Set<string> = new Set<string>()
|
|
8
|
+
|
|
9
|
+
private constructor() {}
|
|
10
|
+
|
|
11
|
+
public setAvailableAccesses(accessToAdd: string[]) {
|
|
12
|
+
this.setAccessListToStorage(accessToAdd)
|
|
13
|
+
for (const access of accessToAdd) {
|
|
14
|
+
this.availableAccesses.add(access)
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
private setAccessListToStorage(accessesToAdd: string[]) {
|
|
19
|
+
localStorage.setItem(StorageKeys.AccessList, JSON.stringify(accessesToAdd))
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public everyAccess(accessesToCheck: string[]) {
|
|
23
|
+
return accessesToCheck.every((access) => {
|
|
24
|
+
return this.availableAccesses.has(access)
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public someAccess(accessesToCheck: string[]) {
|
|
29
|
+
return accessesToCheck.some((access) => {
|
|
30
|
+
return this.availableAccesses.has(access)
|
|
31
|
+
})
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public clearAvailableAccesses() {
|
|
35
|
+
this.availableAccesses.clear()
|
|
36
|
+
localStorage.removeItem(StorageKeys.AccessList)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public initialize(): void {
|
|
40
|
+
const AccessesInStorage = localStorage.getItem(StorageKeys.AccessList)
|
|
41
|
+
if (AccessesInStorage !== null) {
|
|
42
|
+
this.setAvailableAccesses(JSON.parse(AccessesInStorage))
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public static GetInstance() {
|
|
47
|
+
if (!AccessLevel.Instance) {
|
|
48
|
+
AccessLevel.Instance = new AccessLevel()
|
|
49
|
+
}
|
|
50
|
+
return AccessLevel.Instance as AccessLevel
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type MountedDirective,
|
|
3
|
+
type UpdateDirective,
|
|
4
|
+
} from "../../baseDirective";
|
|
5
|
+
import { AuthorizationService } from "./AuthorizationService";
|
|
6
|
+
|
|
7
|
+
export abstract class AuthorizationDirective
|
|
8
|
+
implements MountedDirective, UpdateDirective
|
|
9
|
+
{
|
|
10
|
+
protected _authorizationService: AuthorizationService =
|
|
11
|
+
AuthorizationService.GetInstance();
|
|
12
|
+
|
|
13
|
+
constructor() {
|
|
14
|
+
this.mounted = this.mounted.bind(this);
|
|
15
|
+
this.updated = this.updated.bind(this);
|
|
16
|
+
this.hasAccess = this.hasAccess.bind(this);
|
|
17
|
+
this.manageElement = this.manageElement.bind(this);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public mounted(
|
|
21
|
+
element: HTMLElement,
|
|
22
|
+
binding: { arg: string; modifiers: Record<PropertyKey, boolean> },
|
|
23
|
+
_vnode: unknown,
|
|
24
|
+
): void {
|
|
25
|
+
this.manageElement(element, binding.arg, binding.modifiers);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public updated(
|
|
29
|
+
element: HTMLElement,
|
|
30
|
+
binding: { arg: string; modifiers: Record<PropertyKey, boolean> },
|
|
31
|
+
_vnode: unknown,
|
|
32
|
+
): void {
|
|
33
|
+
this.manageElement(element, binding.arg, binding.modifiers);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
private manageElement(
|
|
37
|
+
element: HTMLElement,
|
|
38
|
+
scope: string,
|
|
39
|
+
levels: Record<PropertyKey, boolean>,
|
|
40
|
+
) {
|
|
41
|
+
if (!this._authorizationService.hasScope(scope)) {
|
|
42
|
+
element.remove();
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const accessLevels = this.getAccessLevels(scope, levels);
|
|
46
|
+
if (this.hasAccess(scope, accessLevels)) return;
|
|
47
|
+
element.remove();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private getAccessLevels(
|
|
51
|
+
scope: string,
|
|
52
|
+
accessLevels: Record<PropertyKey, boolean>,
|
|
53
|
+
) {
|
|
54
|
+
let directiveAccessLevels = Object.keys(accessLevels);
|
|
55
|
+
if (!directiveAccessLevels.length) {
|
|
56
|
+
directiveAccessLevels = Array.from(
|
|
57
|
+
this._authorizationService.getAccessLevelsOfScope(scope)?.values() ??
|
|
58
|
+
[],
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
return directiveAccessLevels;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
protected abstract hasAccess(scope: string, levels: string[]): boolean;
|
|
65
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { StorageKeys } from "../../constants";
|
|
2
|
+
import { type Initializer } from "../../initializer/Initializer";
|
|
3
|
+
import { type Nullable } from "../../types/Global";
|
|
4
|
+
|
|
5
|
+
export class AuthorizationService implements Initializer {
|
|
6
|
+
private static _instance: Nullable<AuthorizationService> = null;
|
|
7
|
+
private _accessLevels: Map<string, Set<string>> = new Map();
|
|
8
|
+
|
|
9
|
+
private constructor() {}
|
|
10
|
+
|
|
11
|
+
public initialize(): void {
|
|
12
|
+
this.setAccessLevelFromStorage();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public setAccessLevels(levels: Record<PropertyKey, string[]>) {
|
|
16
|
+
for (const key in levels) {
|
|
17
|
+
this._accessLevels.set(key, new Set(levels[key]));
|
|
18
|
+
}
|
|
19
|
+
this.setAccessLevelsToStorage(levels);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
private setAccessLevelsToStorage(levels: Record<PropertyKey, string[]>) {
|
|
23
|
+
localStorage.setItem(StorageKeys.SSO_ACCESS_LIST, JSON.stringify(levels));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
private getAccessLevelsFromStorage() {
|
|
27
|
+
let levelsInStorage = localStorage.getItem(StorageKeys.SSO_ACCESS_LIST);
|
|
28
|
+
if (levelsInStorage !== null) {
|
|
29
|
+
return JSON.parse(levelsInStorage);
|
|
30
|
+
}
|
|
31
|
+
return levelsInStorage;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public getAccessLevelsOfScope(scope: string) {
|
|
35
|
+
if (this._accessLevels.has(scope)) {
|
|
36
|
+
return this._accessLevels.get(scope);
|
|
37
|
+
}
|
|
38
|
+
throw new Error(`The scope is not exists ${scope}`);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
private setAccessLevelFromStorage() {
|
|
42
|
+
const accessLevelInStorage = this.getAccessLevelsFromStorage();
|
|
43
|
+
if (!accessLevelInStorage) return;
|
|
44
|
+
this.setAccessLevels(accessLevelInStorage);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public everyAccess(scope: string, levels: string[]) {
|
|
48
|
+
const levelsInScope = this.getAccessLevelsOfScope(scope);
|
|
49
|
+
if (!levelsInScope) return false;
|
|
50
|
+
return levels.every((level) => levelsInScope.has(level));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public someAccess(scope: string, levels: string[]) {
|
|
54
|
+
const levelInScope = this.getAccessLevelsOfScope(scope);
|
|
55
|
+
if (!levelInScope) return false;
|
|
56
|
+
return levels.some((level) => levelInScope.has(level));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
public hasScope(scope: string) {
|
|
60
|
+
return this._accessLevels.has(scope);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public clear() {
|
|
64
|
+
localStorage.removeItem(StorageKeys.SSO_ACCESS_LIST);
|
|
65
|
+
this._accessLevels = new Map<string, Set<string>>();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public static GetInstance() {
|
|
69
|
+
if (!AuthorizationService._instance) {
|
|
70
|
+
AuthorizationService._instance = new AuthorizationService();
|
|
71
|
+
}
|
|
72
|
+
return AuthorizationService._instance;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AuthorizationDirective } from "./AuthorizationDirective";
|
|
2
|
+
|
|
3
|
+
export class EveryLevelAuthorizationDirective extends AuthorizationDirective {
|
|
4
|
+
protected hasAccess(scope: string, levels: string[]): boolean {
|
|
5
|
+
return this._authorizationService.everyAccess(scope, levels);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AuthorizationDirective } from "./AuthorizationDirective";
|
|
2
|
+
|
|
3
|
+
export class SomeLevelsAuthorizationDirective extends AuthorizationDirective {
|
|
4
|
+
protected hasAccess(scope: string, levels: string[]): boolean {
|
|
5
|
+
return this._authorizationService.someAccess(scope, levels);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { AccessLevel } from "./AccessLevel";
|
|
2
|
+
export { AccessControl } from "./AccessControl";
|
|
3
|
+
export type { Accessible } from "./Accessible";
|
|
4
|
+
export { EveryAccess } from "./EveryDirectiveAccess";
|
|
5
|
+
export { SomeAccess } from "./SomeDirectiveAccess";
|
|
6
|
+
export * from './SSO/AuthorizationDirective';
|
|
7
|
+
export * from './SSO/AuthorizationService';
|
|
8
|
+
export * from './SSO/EveryLevelAuthorizationDirective';
|
|
9
|
+
export * from './SSO/SomeLevelsAuthorizationDirective';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type { BeforeMountDirective } from "./BeforeMountDirective";
|
|
2
|
+
export type { BeforeUnMountDirective } from "./BeforeUnMountDirective";
|
|
3
|
+
export type { BeforeUpdateDirective } from "./BeforeUpdateDirective";
|
|
4
|
+
export type { CreatedDirective } from "./CreatedDirective";
|
|
5
|
+
export type { MountedDirective } from "./MountedDirective";
|
|
6
|
+
export type { UnMountedDirective } from "./UnMountedDirective";
|
|
7
|
+
export type { UpdateDirective } from "./UpdateDirective";
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { InputControl } from "./InputControl";
|
|
2
|
+
import { BaseRequestBodyFilter } from "./BaseRequestBodyFilter";
|
|
3
|
+
|
|
4
|
+
export class FormManager {
|
|
5
|
+
private _inputControls = new Map<string, InputControl<unknown>>();
|
|
6
|
+
private _isValid: boolean = false;
|
|
7
|
+
private _id: number = Math.random();
|
|
8
|
+
|
|
9
|
+
public getInputControlsAsArray(): InputControl<unknown>[] {
|
|
10
|
+
return Array.from(this._inputControls.values());
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
public async runValidation(shouldValidateInputControls?: boolean) {
|
|
14
|
+
let isValid = true;
|
|
15
|
+
|
|
16
|
+
for (const inputControl of this.getInputControlsAsArray()) {
|
|
17
|
+
if (shouldValidateInputControls) {
|
|
18
|
+
await inputControl.runValidation(true);
|
|
19
|
+
}
|
|
20
|
+
const isInputValid = inputControl.getIsValid();
|
|
21
|
+
if (!isInputValid) {
|
|
22
|
+
isValid = false;
|
|
23
|
+
if (!shouldValidateInputControls) {
|
|
24
|
+
this._isValid = false;
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
this._isValid = isValid;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public addInputControls(inputControls: InputControl<unknown>[]) {
|
|
33
|
+
for (const inputControl of inputControls) {
|
|
34
|
+
this._inputControls.set(inputControl.getName(), inputControl);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public getInputControl<T>(inputControlName: string) {
|
|
39
|
+
const inputControl = this._inputControls.get(inputControlName);
|
|
40
|
+
if (!inputControl) {
|
|
41
|
+
throw new Error(
|
|
42
|
+
`The provided input name (${inputControlName}}) has no controls.`,
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
return inputControl as InputControl<T>;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public resetControls(inputControlNames: string[]) {
|
|
49
|
+
for (const inputName of inputControlNames) {
|
|
50
|
+
const inputToReset = this._inputControls.get(inputName);
|
|
51
|
+
if (inputToReset) {
|
|
52
|
+
inputToReset.reset();
|
|
53
|
+
} else {
|
|
54
|
+
console.warn(
|
|
55
|
+
`Provided input name ${inputName} has no controllers in this form`,
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
public resetAll() {
|
|
62
|
+
for (const inputControl of this.getInputControlsAsArray()) {
|
|
63
|
+
inputControl.reset();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public createRequestBody<T>(requestBodyFilter = new BaseRequestBodyFilter()) {
|
|
68
|
+
const requestBody: Record<string, unknown> = {};
|
|
69
|
+
|
|
70
|
+
for (const inputControl of this.getInputControlsAsArray()) {
|
|
71
|
+
if (
|
|
72
|
+
inputControl.getIsIncludeInRequestBody() &&
|
|
73
|
+
requestBodyFilter.shouldBeInRequestBody(inputControl.value)
|
|
74
|
+
) {
|
|
75
|
+
requestBody[inputControl.getName()] = inputControl.value;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return requestBody as T;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
public setIsValid(isValid: boolean): void {
|
|
83
|
+
this._isValid = isValid;
|
|
84
|
+
}
|
|
85
|
+
public getIsValid() {
|
|
86
|
+
return this._isValid;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
public setId(id: number) {
|
|
90
|
+
this._id = id;
|
|
91
|
+
}
|
|
92
|
+
public getId() {
|
|
93
|
+
return this._id;
|
|
94
|
+
}
|
|
95
|
+
}
|