@rosoftlab/core 1.0.0-alpha-0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. package/README.md +27 -0
  2. package/esm2022/lib/base-components/base-form-edit.component.mjs +239 -0
  3. package/esm2022/lib/base-components/field-error-display/field-error-display.component.mjs +15 -0
  4. package/esm2022/lib/base-components/index.mjs +4 -0
  5. package/esm2022/lib/base-components/page-not-found/page-not-found.component.mjs +15 -0
  6. package/esm2022/lib/base-components/under-construction/under-construction.component.mjs +12 -0
  7. package/esm2022/lib/configurations.mjs +8 -0
  8. package/esm2022/lib/constants/symbols.mjs +3 -0
  9. package/esm2022/lib/converters/date/date.converter.mjs +20 -0
  10. package/esm2022/lib/core.mjs +8 -0
  11. package/esm2022/lib/decorators/attribute.decorator.mjs +87 -0
  12. package/esm2022/lib/decorators/base-datastore-config.decorator.mjs +7 -0
  13. package/esm2022/lib/decorators/base-model-config.decorator.mjs +10 -0
  14. package/esm2022/lib/decorators/custom.type.decorator.mjs +11 -0
  15. package/esm2022/lib/directives/translated-content.directive.mjs +97 -0
  16. package/esm2022/lib/directives/translated-element.directive.mjs +20 -0
  17. package/esm2022/lib/grid-layout-format.enum.mjs +15 -0
  18. package/esm2022/lib/index.mjs +26 -0
  19. package/esm2022/lib/interceptors/cache.interceptor.mjs +52 -0
  20. package/esm2022/lib/interceptors/index.mjs +2 -0
  21. package/esm2022/lib/interfaces/attribute-decorator-options.interface.mjs +2 -0
  22. package/esm2022/lib/interfaces/datastore-config.interface.mjs +2 -0
  23. package/esm2022/lib/interfaces/model-config.interface.mjs +2 -0
  24. package/esm2022/lib/interfaces/overrides.interface.mjs +2 -0
  25. package/esm2022/lib/interfaces/property-converter.interface.mjs +2 -0
  26. package/esm2022/lib/models/base-meta.model.mjs +7 -0
  27. package/esm2022/lib/models/base-query-data.mjs +13 -0
  28. package/esm2022/lib/models/base.model.mjs +158 -0
  29. package/esm2022/lib/models/error-response.model.mjs +9 -0
  30. package/esm2022/lib/models/rule.mjs +6 -0
  31. package/esm2022/lib/pipes/Nl2brPipe.pipe.mjs +21 -0
  32. package/esm2022/lib/pipes/input-error.pipe.mjs +38 -0
  33. package/esm2022/lib/providers.mjs +12 -0
  34. package/esm2022/lib/resolvers/dynamically-class-resolver.mjs +22 -0
  35. package/esm2022/lib/resolvers/dynamically-service-resolver.mjs +22 -0
  36. package/esm2022/lib/resolvers/index.mjs +3 -0
  37. package/esm2022/lib/rsl-base-module.mjs +64 -0
  38. package/esm2022/lib/services/base-datastore.service.mjs +342 -0
  39. package/esm2022/lib/services/base.service.mjs +99 -0
  40. package/esm2022/lib/services/cache.service.mjs +35 -0
  41. package/esm2022/lib/services/datastore.service.mjs +26 -0
  42. package/esm2022/lib/services/dialog.service.mjs +150 -0
  43. package/esm2022/lib/services/index.mjs +6 -0
  44. package/esm2022/lib/services/translate-loader.service.mjs +34 -0
  45. package/esm2022/lib/utils.mjs +27 -0
  46. package/esm2022/lib/validators/pattern-validator.mjs +15 -0
  47. package/esm2022/public-api.mjs +5 -0
  48. package/esm2022/rosoftlab-core.mjs +5 -0
  49. package/fesm2022/rosoftlab-core.mjs +1637 -0
  50. package/fesm2022/rosoftlab-core.mjs.map +1 -0
  51. package/index.d.ts +5 -0
  52. package/lib/base-components/base-form-edit.component.d.ts +56 -0
  53. package/lib/base-components/field-error-display/field-error-display.component.d.ts +7 -0
  54. package/lib/base-components/index.d.ts +3 -0
  55. package/lib/base-components/page-not-found/page-not-found.component.d.ts +8 -0
  56. package/lib/base-components/under-construction/under-construction.component.d.ts +6 -0
  57. package/lib/configurations.d.ts +6 -0
  58. package/lib/constants/symbols.d.ts +1 -0
  59. package/lib/converters/date/date.converter.d.ts +5 -0
  60. package/lib/core.d.ts +7 -0
  61. package/lib/decorators/attribute.decorator.d.ts +3 -0
  62. package/lib/decorators/base-datastore-config.decorator.d.ts +1 -0
  63. package/lib/decorators/base-model-config.decorator.d.ts +1 -0
  64. package/lib/decorators/custom.type.decorator.d.ts +1 -0
  65. package/lib/directives/translated-content.directive.d.ts +21 -0
  66. package/lib/directives/translated-element.directive.d.ts +10 -0
  67. package/lib/grid-layout-format.enum.d.ts +12 -0
  68. package/lib/index.d.ts +25 -0
  69. package/lib/interceptors/cache.interceptor.d.ts +13 -0
  70. package/lib/interceptors/index.d.ts +1 -0
  71. package/lib/interfaces/attribute-decorator-options.interface.d.ts +8 -0
  72. package/lib/interfaces/datastore-config.interface.d.ts +8 -0
  73. package/lib/interfaces/model-config.interface.d.ts +10 -0
  74. package/lib/interfaces/overrides.interface.d.ts +5 -0
  75. package/lib/interfaces/property-converter.interface.d.ts +4 -0
  76. package/lib/models/base-meta.model.d.ts +5 -0
  77. package/lib/models/base-query-data.d.ts +7 -0
  78. package/lib/models/base.model.d.ts +31 -0
  79. package/lib/models/error-response.model.d.ts +17 -0
  80. package/lib/models/rule.d.ts +5 -0
  81. package/lib/pipes/Nl2brPipe.pipe.d.ts +7 -0
  82. package/lib/pipes/input-error.pipe.d.ts +10 -0
  83. package/lib/providers.d.ts +2 -0
  84. package/lib/resolvers/dynamically-class-resolver.d.ts +3 -0
  85. package/lib/resolvers/dynamically-service-resolver.d.ts +3 -0
  86. package/lib/resolvers/index.d.ts +2 -0
  87. package/lib/rsl-base-module.d.ts +13 -0
  88. package/lib/services/base-datastore.service.d.ts +47 -0
  89. package/lib/services/base.service.d.ts +27 -0
  90. package/lib/services/cache.service.d.ts +11 -0
  91. package/lib/services/datastore.service.d.ts +12 -0
  92. package/lib/services/dialog.service.d.ts +21 -0
  93. package/lib/services/index.d.ts +5 -0
  94. package/lib/services/translate-loader.service.d.ts +14 -0
  95. package/lib/utils.d.ts +2 -0
  96. package/lib/validators/pattern-validator.d.ts +4 -0
  97. package/package.json +36 -0
  98. package/public-api.d.ts +1 -0
@@ -0,0 +1,31 @@
1
+ import { HttpHeaders } from '@angular/common/http';
2
+ import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
3
+ import { Observable } from 'rxjs';
4
+ import { ModelConfig } from '../interfaces/model-config.interface';
5
+ import { BaseDatastore, ModelType } from '../services/base-datastore.service';
6
+ export declare class BaseModel {
7
+ protected _datastore: BaseDatastore;
8
+ highlighted: boolean;
9
+ id: any;
10
+ [key: string]: any;
11
+ constructor(_datastore: BaseDatastore, data?: any);
12
+ save(params?: any, headers?: HttpHeaders, customUrl?: string, customBody?: any): Observable<this>;
13
+ patch(origModel: this, params?: any, headers?: HttpHeaders, customUrl?: string): Observable<this>;
14
+ replace(params?: any, headers?: HttpHeaders, customUrl?: string, customBody?: any): Observable<this>;
15
+ get attributeMetadata(): any;
16
+ set attributeMetadata(val: any);
17
+ get hasDirtyAttributes(): boolean;
18
+ rollbackAttributes(): void;
19
+ get modelConfig(): ModelConfig;
20
+ protected deserializeModel<T extends BaseModel>(modelType: ModelType<T>, data: any): T;
21
+ protected transformSerializedNamesToPropertyNames<T extends BaseModel>(modelType: ModelType<T>, attributes: any): any;
22
+ getModelPropertyNames(model: BaseModel): any;
23
+ getModelRequiredPropertyNames(model: BaseModel): any;
24
+ getModelDefaultPropertyValues(model: BaseModel): any;
25
+ getModelSubGroupPropertyNames(model: BaseModel): any;
26
+ getFromGroup(fb: UntypedFormBuilder): UntypedFormGroup;
27
+ private getSubFromGroup;
28
+ getModelFromFormGroup(formGroup: UntypedFormGroup, id?: any): void;
29
+ getSerializedModel(): any;
30
+ getCellClass(property: string): string;
31
+ }
@@ -0,0 +1,17 @@
1
+ export interface JsonBaseError {
2
+ id?: string;
3
+ links?: Array<any>;
4
+ status?: string;
5
+ code?: string;
6
+ title?: string;
7
+ detail?: string;
8
+ source?: {
9
+ pointer?: string;
10
+ parameter?: string;
11
+ };
12
+ meta?: any;
13
+ }
14
+ export declare class ErrorResponse {
15
+ errors?: JsonBaseError[];
16
+ constructor(errors?: JsonBaseError[]);
17
+ }
@@ -0,0 +1,5 @@
1
+ export declare class Rule {
2
+ rule: any;
3
+ order: number;
4
+ parameters: string[];
5
+ }
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class Nl2brPipe implements PipeTransform {
4
+ transform(value: any, args?: any): any;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<Nl2brPipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<Nl2brPipe, "nl2br", false>;
7
+ }
@@ -0,0 +1,10 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { TranslateService } from '@ngx-translate/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class InputErrorPipe implements PipeTransform {
5
+ protected translate: TranslateService;
6
+ constructor(translate: TranslateService);
7
+ transform(value: any, filedTranslationKey: any): string;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputErrorPipe, never>;
9
+ static ɵpipe: i0.ɵɵPipeDeclaration<InputErrorPipe, "inputError", false>;
10
+ }
@@ -0,0 +1,2 @@
1
+ export * from './services';
2
+ export declare const PROVIDERS: any[];
@@ -0,0 +1,3 @@
1
+ import { ResolveFn } from '@angular/router';
2
+ import { BaseModel } from '../core';
3
+ export declare function DynamicallyModelResolver<T extends BaseModel>(modelsImport: any, className?: string | undefined): ResolveFn<T>;
@@ -0,0 +1,3 @@
1
+ import { ResolveFn } from '@angular/router';
2
+ import { BaseModel, BaseService } from '../core';
3
+ export declare function DynamicallyServiceResolver<T extends BaseModel, U extends BaseService<T>>(serviceImport: any, serviceName: string): ResolveFn<U>;
@@ -0,0 +1,2 @@
1
+ export { DynamicallyModelResolver } from './dynamically-class-resolver';
2
+ export { DynamicallyServiceResolver } from './dynamically-service-resolver';
@@ -0,0 +1,13 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { Configurations } from './configurations';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@ngx-translate/core";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "@angular/common/http";
8
+ export declare class RslBaseModule {
9
+ static forRoot(config: Configurations): ModuleWithProviders<RslBaseModule>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<RslBaseModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<RslBaseModule, never, [typeof i1.CommonModule, typeof i2.TranslateModule, typeof i3.ReactiveFormsModule], [typeof i4.HttpClientModule, typeof i2.TranslateModule]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<RslBaseModule>;
13
+ }
@@ -0,0 +1,47 @@
1
+ import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';
2
+ import { Observable } from 'rxjs';
3
+ import { DatastoreConfig } from '../interfaces/datastore-config.interface';
4
+ import { BaseQueryData } from '../models/base-query-data';
5
+ import { BaseModel } from '../models/base.model';
6
+ import { CacheService } from './cache.service';
7
+ import * as i0 from "@angular/core";
8
+ export type ModelType<T extends BaseModel> = new (datastore: BaseDatastore, data: any) => T;
9
+ export declare class BaseDatastore {
10
+ protected httpClient: HttpClient;
11
+ protected cacheService: CacheService;
12
+ protected config: DatastoreConfig;
13
+ private _store;
14
+ private toQueryString;
15
+ private get getDirtyAttributes();
16
+ get getAllAttributes(): (attributedMetadata: any, model?: any) => object;
17
+ private static getDirtyAttributes;
18
+ private static getAllAttributes;
19
+ constructor(httpClient: HttpClient, cacheService: CacheService);
20
+ findAll<T extends BaseModel>(modelType: ModelType<T>, params?: any, headers?: HttpHeaders, customUrl?: string): Observable<BaseQueryData<T>>;
21
+ findRecord<T extends BaseModel>(modelType: ModelType<T>, id?: string, params?: any, headers?: HttpHeaders, customUrl?: string): Observable<T>;
22
+ getCustom<U, T extends BaseModel>(modelType: ModelType<T>, params?: any, headers?: HttpHeaders, customUrl?: string, customResponseType?: any): Observable<U>;
23
+ postCustom<U, T extends BaseModel>(modelType: ModelType<T>, body: any, params?: any, headers?: HttpHeaders, customUrl?: string): Observable<U>;
24
+ patchCustom<U, T extends BaseModel>(modelType: ModelType<T>, body: any, params?: any, headers?: HttpHeaders, customUrl?: string): Observable<U>;
25
+ createRecord<T extends BaseModel>(modelType: ModelType<T>, data?: any): T;
26
+ saveRecord<T extends BaseModel>(attributesMetadata: any, model: T, params?: any, headers?: HttpHeaders, customUrl?: string, customBody?: any): Observable<T>;
27
+ patchRecord<T extends BaseModel>(attributesMetadata: any, model: T, origModel: T, params?: any, headers?: HttpHeaders, customUrl?: string): Observable<T>;
28
+ replaceRecord<T extends BaseModel>(attributesMetadata: any, model: T, params?: any, headers?: HttpHeaders, customUrl?: string, customBody?: any): Observable<T>;
29
+ deleteRecord<T extends BaseModel>(modelType: ModelType<T>, id: string, headers?: HttpHeaders, customUrl?: string): Observable<{}>;
30
+ buildUrl<T extends BaseModel>(modelType: ModelType<T>, customUrl?: string): string;
31
+ protected extractQueryData<T extends BaseModel>(res: any, modelType: ModelType<T>): BaseQueryData<T>;
32
+ protected deserializeModel<T extends BaseModel>(modelType: ModelType<T>, data: any): T;
33
+ protected handleError(error: HttpErrorResponse): Observable<never>;
34
+ protected parseMeta(body: any, modelType: ModelType<BaseModel>): any;
35
+ protected resetMetadataAttributes<T extends BaseModel>(res: T, attributesMetadata: any, modelType: ModelType<T>): T;
36
+ get datastoreConfig(): DatastoreConfig;
37
+ protected transformSerializedNamesToPropertyNames<T extends BaseModel>(modelType: ModelType<T>, attributes: any): any;
38
+ protected getModelPropertyNames(model: BaseModel): any;
39
+ buildHeaders(customHeaders?: HttpHeaders): HttpHeaders;
40
+ buildParams<T extends BaseModel>(modelType: ModelType<T>, params: any): HttpParams;
41
+ protected entityToModel<T extends BaseModel>(res: any, modelType: ModelType<T>, model?: T): T;
42
+ private extractRecordDataJson;
43
+ modelToEntity<T extends BaseModel>(model: T, attributesMetadata: any, allAttributes?: boolean): any;
44
+ private _toQueryString;
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseDatastore, never>;
46
+ static ɵprov: i0.ɵɵInjectableDeclaration<BaseDatastore>;
47
+ }
@@ -0,0 +1,27 @@
1
+ import { HttpHeaders } from '@angular/common/http';
2
+ import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
3
+ import { Observable } from 'rxjs';
4
+ import { BaseQueryData } from '../models/base-query-data';
5
+ import { BaseModel } from '../models/base.model';
6
+ import { BaseDatastore, ModelType } from './base-datastore.service';
7
+ import * as i0 from "@angular/core";
8
+ export declare class BaseService<T extends BaseModel> {
9
+ datastore: BaseDatastore;
10
+ modelType: ModelType<T>;
11
+ constructor(datastore: BaseDatastore);
12
+ setModelType(modelType: ModelType<T>): void;
13
+ get(id?: any, customInclude?: string): Observable<T>;
14
+ getAll(page: number, pageSize: number, sort?: string, filters?: string, customInclude?: string): Observable<BaseQueryData<T>>;
15
+ delete(id: any): Observable<{}>;
16
+ getCustom<U>(params?: any, headers?: HttpHeaders, customUrl?: string, customResponseType?: any): Observable<U>;
17
+ postCustom<U>(body: any, params?: any, headers?: HttpHeaders, customUrl?: string): Observable<U>;
18
+ patchCustom<U>(body: any, params?: any, headers?: HttpHeaders, customUrl?: string): Observable<U>;
19
+ save(docTypeOrFormGroup: T | UntypedFormGroup, id?: any, origModel?: T): Observable<T>;
20
+ patch(docTypeOrFormGroup: T | UntypedFormGroup, origModel: T, id?: any): Observable<T>;
21
+ newModel(data?: any): T;
22
+ toFormGroup(fb: UntypedFormBuilder, fromModel?: T): UntypedFormGroup;
23
+ fromFormGroup(formGroup: UntypedFormGroup, id?: any): T;
24
+ getSelectValues(property: string): Observable<any[]>;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseService<any>, never>;
26
+ static ɵprov: i0.ɵɵInjectableDeclaration<BaseService<any>>;
27
+ }
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class CacheService {
3
+ private cache;
4
+ constructor();
5
+ get(key: string): any;
6
+ set(key: string, data: any, expiresInMs: number): void;
7
+ delete(key: string): void;
8
+ clearCacheContainingKeyword(keyword: string): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<CacheService, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<CacheService>;
11
+ }
@@ -0,0 +1,12 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Configurations } from '../configurations';
3
+ import { BaseDatastore } from './base-datastore.service';
4
+ import { CacheService } from './cache.service';
5
+ import * as i0 from "@angular/core";
6
+ export declare class DatastoreCore extends BaseDatastore {
7
+ private configExt;
8
+ private customConfig;
9
+ constructor(http: HttpClient, cacheService: CacheService, configExt: Configurations);
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatastoreCore, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<DatastoreCore>;
12
+ }
@@ -0,0 +1,21 @@
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Async modal dialog service
5
+ * DialogService makes this app easier to test by faking this service.
6
+ * TODO: better modal implementation that doesn't use window.confirm
7
+ */
8
+ export declare class DialogService {
9
+ /**
10
+ * Ask user to confirm an action. `message` explains the action and choices.
11
+ * Returns observable resolving to `true`=confirm or `false`=cancel
12
+ */
13
+ constructor();
14
+ confirm(message?: string, text?: string, confirmButtonText?: string, cancelButtonText?: string): Observable<boolean>;
15
+ showSaveMessage(message?: string, title?: string): Observable<boolean>;
16
+ showRegisteredMessage(message?: string, title?: string): Observable<boolean>;
17
+ showErrorMessage(e: any, message?: string): Observable<boolean>;
18
+ getTextTranslation(translationKey: string): string;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
20
+ static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
21
+ }
@@ -0,0 +1,5 @@
1
+ export * from './base-datastore.service';
2
+ export * from './base.service';
3
+ export * from './cache.service';
4
+ export * from './datastore.service';
5
+ export * from './dialog.service';
@@ -0,0 +1,14 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { TranslateLoader } from '@ngx-translate/core';
3
+ import { Observable } from 'rxjs';
4
+ import { Configurations } from '../configurations';
5
+ import * as i0 from "@angular/core";
6
+ export declare class TranslateloaderService implements TranslateLoader {
7
+ private httpClient;
8
+ private _apiUrl;
9
+ private headers;
10
+ constructor(httpClient: HttpClient, config?: Configurations);
11
+ getTranslation(lang: string): Observable<any>;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<TranslateloaderService, [null, { optional: true; }]>;
13
+ static ɵprov: i0.ɵɵInjectableDeclaration<TranslateloaderService>;
14
+ }
package/lib/utils.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function readFileAsync(file: File): Promise<any>;
2
+ export declare function getValueFromJsonData(jsonData: any, key: string): any;
@@ -0,0 +1,4 @@
1
+ import { ValidationErrors, ValidatorFn } from '@angular/forms';
2
+ export declare class CustomValidators {
3
+ static patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn;
4
+ }
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@rosoftlab/core",
3
+ "version": "1.0.0-alpha-0",
4
+ "peerDependencies": {
5
+ "@angular/common": "^16.2.1",
6
+ "@angular/core": "^16.2.1",
7
+ "fast-json-patch": "^3.1.1",
8
+ "date-fns": "^2.30.0",
9
+ "@types/qs": "^6.9.7",
10
+ "@ngx-translate/core": "^15.0.0",
11
+ "@tinymce/tinymce-angular": "^7.0.0",
12
+ "tinymce": "^6.4.2",
13
+ "json-logic-js": "^2.0.2",
14
+ "sweetalert2": "^11.7.5",
15
+ "@angular/cdk": "^16.2.1"
16
+ },
17
+ "dependencies": {
18
+ "tslib": "^2.3.1"
19
+ },
20
+ "author": "rosoftlab",
21
+ "license": "ISC",
22
+ "module": "fesm2022/rosoftlab-core.mjs",
23
+ "typings": "index.d.ts",
24
+ "exports": {
25
+ "./package.json": {
26
+ "default": "./package.json"
27
+ },
28
+ ".": {
29
+ "types": "./index.d.ts",
30
+ "esm2022": "./esm2022/rosoftlab-core.mjs",
31
+ "esm": "./esm2022/rosoftlab-core.mjs",
32
+ "default": "./fesm2022/rosoftlab-core.mjs"
33
+ }
34
+ },
35
+ "sideEffects": false
36
+ }
@@ -0,0 +1 @@
1
+ export * from './lib/core';