@rosoftlab/rdict 1.0.0-alpha-15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. package/README.md +27 -0
  2. package/esm2022/lib/components/index.mjs +4 -0
  3. package/esm2022/lib/components/layouts/full/full.component.mjs +112 -0
  4. package/esm2022/lib/components/rdict-crud/rdict-crud.component.mjs +43 -0
  5. package/esm2022/lib/components/rdict-generic-table/rdict-generic-table.component.mjs +285 -0
  6. package/esm2022/lib/components/rdict-generic-table/rdict-table-title.mjs +34 -0
  7. package/esm2022/lib/core.mjs +5 -0
  8. package/esm2022/lib/models/index.mjs +4 -0
  9. package/esm2022/lib/models/menu.mjs +60 -0
  10. package/esm2022/lib/models/right.mjs +57 -0
  11. package/esm2022/lib/models/user.mjs +30 -0
  12. package/esm2022/lib/reactive-dictionary.mjs +173 -0
  13. package/esm2022/lib/rsl-material-module.mjs +95 -0
  14. package/esm2022/lib/services/index.mjs +4 -0
  15. package/esm2022/lib/services/socket.service.mjs +92 -0
  16. package/esm2022/lib/services/user.service.mjs +37 -0
  17. package/esm2022/lib/services/ws-auth.service.mjs +22 -0
  18. package/esm2022/lib/socket-config.token.mjs +4 -0
  19. package/esm2022/public-api.mjs +6 -0
  20. package/esm2022/rosoftlab-rdict.mjs +5 -0
  21. package/fesm2022/rosoftlab-rdict.mjs +1004 -0
  22. package/fesm2022/rosoftlab-rdict.mjs.map +1 -0
  23. package/index.d.ts +5 -0
  24. package/lib/components/index.d.ts +3 -0
  25. package/lib/components/layouts/full/full.component.d.ts +36 -0
  26. package/lib/components/rdict-crud/rdict-crud.component.d.ts +15 -0
  27. package/lib/components/rdict-generic-table/rdict-generic-table.component.d.ts +73 -0
  28. package/lib/components/rdict-generic-table/rdict-table-title.d.ts +11 -0
  29. package/lib/core.d.ts +4 -0
  30. package/lib/models/index.d.ts +3 -0
  31. package/lib/models/menu.d.ts +15 -0
  32. package/lib/models/right.d.ts +14 -0
  33. package/lib/models/user.d.ts +8 -0
  34. package/lib/reactive-dictionary.d.ts +20 -0
  35. package/lib/rsl-material-module.d.ts +45 -0
  36. package/lib/services/index.d.ts +3 -0
  37. package/lib/services/socket.service.d.ts +13 -0
  38. package/lib/services/user.service.d.ts +15 -0
  39. package/lib/services/ws-auth.service.d.ts +9 -0
  40. package/lib/socket-config.token.d.ts +2 -0
  41. package/package.json +56 -0
  42. package/public-api.d.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rosoftlab-rdict.mjs","sources":["../../../../projects/rosoftlab/rdict/src/lib/reactive-dictionary.ts","../../../../projects/rosoftlab/rdict/src/lib/socket-config.token.ts","../../../../projects/rosoftlab/rdict/src/lib/services/socket.service.ts","../../../../projects/rosoftlab/rdict/src/lib/models/menu.ts","../../../../projects/rosoftlab/rdict/src/lib/models/right.ts","../../../../projects/rosoftlab/rdict/src/lib/models/user.ts","../../../../projects/rosoftlab/rdict/src/lib/services/user.service.ts","../../../../projects/rosoftlab/rdict/src/lib/services/ws-auth.service.ts","../../../../projects/rosoftlab/rdict/src/lib/components/layouts/full/full.component.ts","../../../../projects/rosoftlab/rdict/src/lib/components/layouts/full/full.component.html","../../../../projects/rosoftlab/rdict/src/lib/components/rdict-crud/rdict-crud.component.ts","../../../../projects/rosoftlab/rdict/src/lib/components/rdict-crud/rdict-crud.component.html","../../../../projects/rosoftlab/rdict/src/lib/components/rdict-generic-table/rdict-table-title.ts","../../../../projects/rosoftlab/rdict/src/lib/components/rdict-generic-table/rdict-generic-table.component.ts","../../../../projects/rosoftlab/rdict/src/lib/components/rdict-generic-table/rdict-generic-table.component.html","../../../../projects/rosoftlab/rdict/src/lib/rsl-material-module.ts","../../../../projects/rosoftlab/rdict/src/public-api.ts","../../../../projects/rosoftlab/rdict/src/rosoftlab-rdict.ts"],"sourcesContent":["import { BehaviorSubject, Observable } from \"rxjs\";\nimport { SocketService } from \"./services/socket.service\";\n\nexport class ReactiveDictionary extends Map<string, any> {\n private static instance: Map<string, ReactiveDictionary> = new Map<string, ReactiveDictionary>;\n private _socketService: SocketService;\n private changes$: BehaviorSubject<any> = new BehaviorSubject(null);\n private isInitialized: boolean = false;\n private _authToken: string = null;\n private constructor(socketService: SocketService,\n authToken: string) {\n super();\n this._authToken = authToken;\n this._socketService = socketService;\n this._socketService.initSocket(authToken)\n this._socketService.getSetEvent(this)\n }\n\n // Method to get the singleton instance\n public static getInstance(socketService: SocketService, authToken: string, instance_key?: string): ReactiveDictionary {\n if (!instance_key)\n instance_key = 'root'\n if (!ReactiveDictionary.instance.has(instance_key)) {\n ReactiveDictionary.instance.set(instance_key, new ReactiveDictionary(socketService, authToken));\n }\n const instance = ReactiveDictionary.instance.get(instance_key);\n if (!instance) {\n throw new Error(`No instance found for key: ${instance_key}`); // Handle undefined case\n }\n\n return instance; // Now TypeScript knows 'instance' is not undefined\n }\n // str_keys(): string[] {\n override keys(): IterableIterator<string> {\n const excludedKeys = ['__guid', '__type']; // Key to exclude\n const iterator = super.keys();\n\n const filteredIterator = {\n [Symbol.iterator]: () => ({\n next: () => {\n let result;\n\n // Loop until we find a valid key or run out of keys\n do {\n result = iterator.next(); // Get the next entry ([key, value])\n if (result.done) return { done: true }; // Stop if done\n\n const key = result.value; // Destructure the entry\n const value = super.get(key)\n // Check if the key is in excludedKeys or if the value is an object\n if (\n !excludedKeys.includes(key) &&\n !(typeof value === 'object' && value !== null)\n ) {\n return { value: key, done: false }; // Return the valid key\n }\n } while (true); // Continue until a valid key is found\n }\n })\n };\n\n return filteredIterator as IterableIterator<string>;\n }\n // Asynchronous method to get a value by key\n async asyncGet(key: string): Promise<any> {\n // console.log('Get key: ', key);\n const keys = key.split('.')\n if (keys.length === 1) {\n if (this.has(key)) {\n const value = this.get(key)\n if (value instanceof ReactiveDictionary) {\n return value\n }\n if (typeof value === 'object' && value !== null) {\n const dict_type = value['__type']\n // console.log('value type : ', dict_type);\n if (dict_type === 'dict' || dict_type === 'lazy') {\n const lazyLoadData = await this.lazyLoadSync(this.get('__guid'), key);\n // console.log(lazyLoadData)\n if (lazyLoadData) {\n const dict = new ReactiveDictionary(this._socketService, this._authToken);\n await dict.asyncInit(lazyLoadData.data)\n this.set(key, dict)\n return dict\n }\n }\n }\n return value\n }\n } else {\n const obj = await this.asyncGet(keys[0]) as ReactiveDictionary\n if (obj)\n return await obj.asyncGet(keys.slice(1).join('.'))\n else\n return null;\n }\n }\n\n // Asynchronous method to set a value by key\n async asyncSet(key: string, value: any, emmit_event: boolean = true): Promise<void> {\n if (emmit_event) {\n try {\n await this._socketService.emitSet(this.get('__guid'), key, value);\n } catch (error) {\n console.error('Error emitting set event:', error);\n }\n }\n this.set(key, value)\n this.changes$.next({ key, value });\n }\n\n // Asynchronous method to initialize with a set of key-value pairs\n async asyncInit(initialData?: Record<string, any>) {\n if (!this.isInitialized) {\n try {\n // If initial data is not provided, fetch it\n const data = initialData || await this._socketService.getInitialData();\n // this.known_dicts.set(data.__guid,data);\n // Set the initial properties on the proxy\n for (const [key, value] of Object.entries(data)) {\n this.set(key, value);\n }\n this.isInitialized = true\n } catch (error) {\n console.error('Error during initialization:', error);\n }\n }\n }\n\n async lazyLoadSync(guid: string, prop: string | symbol): Promise<any> {\n try {\n const data = await this._socketService.requestLazyLoad(guid, String(prop));\n return data;\n } catch (error) {\n console.error('Error fetching data:', error);\n throw error;\n }\n }\n public getPlainObject(): Record<string, any> {\n const plainObject: Record<string, any> = {};\n this.forEach((value, key) => {\n if (value instanceof ReactiveDictionary)\n plainObject[key] = value.getPlainObject()\n else\n plainObject[key] = value; // Add key-value pairs to the plain object\n });\n return plainObject; // Return the plain object\n }\n async getTable(key: string): Promise<any[]> {\n const data = await this.asyncGet(key); // Get rooms from the ReactiveDictionary\n if (!data) {\n return []; // Return an empty array if data is undefined\n }\n\n // Filter and get only entries that are instances of ReactiveDictionary\n const result = await Promise.all(Array.from(data.entries()).map(async (key: any) => await data.asyncGet(key[0])) // Get data from asyncGet\n ) || []; // Return an empty array if the above yields undefined\n\n\n return result.filter((entry: any) => entry instanceof ReactiveDictionary);\n }\n async getTableWithoutGuid(key: string): Promise<any[]> {\n const data = await this.asyncGet(key); // Get rooms from the ReactiveDictionary\n if (!data) {\n return []; // Return an empty array if data is undefined\n }\n\n // Filter and get only entries that are instances of ReactiveDictionary\n const result = await Promise.all(Array.from(data.entries()).map(async (key: any) => await data.asyncGet(key[0])) // Get data from asyncGet\n ) || []; // Return an empty array if the above yields undefined\n\n\n var filteredResults = result.filter((entry: any) => entry instanceof ReactiveDictionary);\n\n return filteredResults.map(dictionary => {\n // Convert Map to object and filter out __guid\n const filteredObject = {};\n for (const [key, value] of dictionary.entries()) {\n if (key !== '__guid') {\n filteredObject[key] = value;\n }\n }\n return filteredObject;\n });\n }\n onChanges(): Observable<any> {\n return this.changes$.asObservable();\n }\n}\n","// projects/my-library/src/lib/socket-config.token.ts\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport const SOCKET_URL = new InjectionToken<string>('SocketUrl');\r\n","import { Inject, Injectable } from '@angular/core';\nimport { io, Socket } from 'socket.io-client';\nimport * as msgpackParser from 'socket.io-msgpack-parser';\nimport { SOCKET_URL } from '../socket-config.token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SocketService {\n private socket: Socket;\n private socketUrl: string\n constructor(\n @Inject(SOCKET_URL) socketUrl: string,) {\n this.socketUrl = socketUrl\n // Replace with your actual server URL\n // this.socket.on(\"connect\", () => {\n // const engine = this.socket.io.engine;\n // (engine.transport.name); // in most cases, prints \"polling\"\n\n // engine.once(\"upgrade\", () => {\n // // called when the transport is upgraded (i.e. from HTTP long-polling to WebSocket)\n // (engine.transport.name); // in most cases, prints \"websocket\"\n // });\n\n // });\n }\n initSocket(authToken: string) {\n if (this.socket == null && authToken !== null) {\n this.socket = io(this.socketUrl, {\n withCredentials: true,\n parser: msgpackParser,\n auth: {\n token: authToken, // Include the authentication token\n }\n ,\n query: {\n \"access_token\": authToken\n }\n });\n }\n }\n getInitialData(): Promise<Record<string, any>> {\n return new Promise((resolve, reject) => {\n this.socket.on('init', (data: any) => {\n if (data) {\n resolve(data[\"dict_data\"]);\n } else {\n reject('No data received from init event');\n }\n });\n });\n }\n getSetEvent(rdict: any) {\n this.socket.on('set', (data: any) => {\n // (rdict.get('__guid'), data, this.socket.id)\n if (rdict.get('__guid') === data.did) {\n // ('Set the data')\n rdict.asyncSet(data.key, data.value, false)\n }\n });\n }\n // Emit the 'lazy_load' event with callback to get the response\n requestLazyLoad(did: string, key: string): Promise<any> {\n return new Promise((resolve, reject) => {\n this.socket.emit('lazy_load', { did, key }, (response: any) => {\n if (response && response.error) {\n reject(response.error); // Handle error if present\n } else {\n resolve(response); // Resolve with the response data\n }\n });\n });\n }\n\n // Emit the 'set' event to update the data on the server\n emitSet(did: string, key: string, value: any): Promise<void> {\n return new Promise((resolve, reject) => {\n this.socket.emit('set', { did, key, value }, (response: any) => {\n if (response && response.error) {\n reject(response.error);\n } else {\n resolve();\n }\n });\n });\n }\n}\n","import { Attribute, BaseModel, BaseModelConfig } from \"dist/@rosoftlab/core\";\r\n@BaseModelConfig({\r\n type: 'user',\r\n modelEndpointUrl: 'user/menus'\r\n})\r\nexport class Menu extends BaseModel {\r\n\r\n @Attribute({ serializedName: 'id' })\r\n override id!: string;\r\n\r\n @Attribute({ serializedName: 'header' })\r\n header?: string;\r\n\r\n @Attribute({ serializedName: 'icon' })\r\n icon?: string;\r\n\r\n @Attribute({ serializedName: 'link' })\r\n link?: string;\r\n\r\n @Attribute({ serializedName: 'title' })\r\n title?: string;\r\n\r\n @Attribute({ serializedName: 'sublinks' })\r\n sublinks?: Menu[];\r\n\r\n @Attribute({ serializedName: 'target' })\r\n target?: string;\r\n\r\n @Attribute({ serializedName: 'external' })\r\n external?: boolean;\r\n\r\n @Attribute({ serializedName: 'description' })\r\n description?: string;\r\n\r\n @Attribute({ serializedName: 'order' })\r\n order?: number;\r\n\r\n @Attribute({ serializedName: 'translationKey' })\r\n translationKey!: string;\r\n\r\n @Attribute({ serializedName: 'color' })\r\n color?: string;\r\n}\r\n\r\n","// import { Attribute, BaseModel, BaseModelConfig } from '@rosoftlab/core';\r\n\r\nimport { Attribute, BaseModel, BaseModelConfig } from \"dist/@rosoftlab/core\";\r\n\r\n@BaseModelConfig({\r\n type: 'right',\r\n modelEndpointUrl: 'user/rights'\r\n})\r\nexport class Right extends BaseModel {\r\n\r\n @Attribute({ serializedName: 'id' })\r\n override id!: string;\r\n\r\n @Attribute({ serializedName: 'name' })\r\n name!: string;\r\n\r\n @Attribute({ serializedName: 'rightKey' })\r\n rightKey!: string;\r\n\r\n @Attribute({ serializedName: 'pagePath' })\r\n pagePath!: string;\r\n\r\n @Attribute({ serializedName: 'order' })\r\n order!: number;\r\n\r\n @Attribute({ serializedName: 'isMenu' })\r\n isMenu!: boolean;\r\n\r\n @Attribute({ serializedName: 'resourceName' })\r\n resourceName!: string;\r\n\r\n @Attribute({ serializedName: 'parentId' })\r\n parentId!: string;\r\n\r\n @Attribute({ serializedName: 'color' })\r\n color!: string;\r\n\r\n @Attribute({ serializedName: 'defaultRoles' })\r\n defaultRoles!: string;\r\n\r\n @Attribute({ serializedName: 'icon' })\r\n icon?: string;\r\n\r\n}\r\n","import { Attribute, BaseModel, BaseModelConfig } from \"dist/@rosoftlab/core\";\r\n\r\n@BaseModelConfig({\r\n type: 'user'\r\n})\r\nexport class User extends BaseModel {\r\n\r\n @Attribute({ serializedName: 'id' })\r\n override id!: string;\r\n\r\n @Attribute({ serializedName: 'firstName' })\r\n firstName!: string;\r\n\r\n @Attribute({ serializedName: 'lastName' })\r\n lastName!: string;\r\n\r\n @Attribute({ serializedName: 'email' })\r\n email!: string;\r\n\r\n get fullName(): string {\r\n return this.firstName + ' ' + this.lastName;\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\nimport { BaseQueryData, BaseService, DatastoreCore } from \"dist/@rosoftlab/core\";\nimport { Observable } from 'rxjs';\nimport { Menu } from '../models/menu';\nimport { Right } from '../models/right';\nimport { User } from '../models/user';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService extends BaseService<User> {\n userRights!: Right[]; \n constructor(datastore: DatastoreCore) {\n super(datastore);\n this.setModelType(User);\n }\n getRights(): Observable<BaseQueryData<Right>> {\n const response = this.datastore.findAll(Right);\n return response;\n }\n hasRightForLink(link: string): boolean {\n\n if (this.userRights && link) {\n const right = this.userRights.find(f => link.indexOf(f.pagePath) >= 0);\n return true;\n }\n return false;\n }\n getMenus(): Observable<BaseQueryData<Menu>> {\n const response = this.datastore.findAll(Menu);\n return response;\n } \n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WsAuthService {\n private token: string = null\n constructor() { }\n get Token(): string {\n return this.token\n }\n set Token(token: string) {\n this.token = token\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ButtonsModule } from \"@progress/kendo-angular-buttons\";\nimport { KENDO_SVGICON } from '@progress/kendo-angular-icons';\nimport { DrawerItemExpandedFn, DrawerSelectEvent, LayoutModule } from '@progress/kendo-angular-layout';\nimport { ToolBarModule } from '@progress/kendo-angular-toolbar';\nimport * as allIcons from \"@progress/kendo-svg-icons\";\nimport { menuIcon, SVGIcon } from \"@progress/kendo-svg-icons\";\nimport { map, Observable } from 'rxjs';\nimport { Menu } from '../../../models';\nimport { ReactiveDictionary } from '../../../reactive-dictionary';\nimport { SocketService, UserService, WsAuthService } from '../../../services';\n@Component({\n selector: 'rdict-full',\n templateUrl: './full.component.html',\n styleUrls: ['./full.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n RouterModule,\n TranslateModule,\n CommonModule,\n ButtonsModule,\n ToolBarModule,\n LayoutModule,\n KENDO_SVGICON\n ],\n})\nexport class FullComponent implements OnInit {\n public selected = \"Inbox\";\n public menuSvg: SVGIcon = menuIcon;\n public expandedIndices = [2];\n menu$!: Observable<Menu[]>;\n hasItems: boolean = false;\n public items: Array<{ [Key: string]: unknown }> = [];\n public icons = allIcons;\n private rdict: ReactiveDictionary | undefined;\n apptitle: string = \"Test\"\n constructor(\n private userService: UserService,\n private router: Router,\n private socketService: SocketService,\n public translate: TranslateService,\n private wsAuthService: WsAuthService\n ) {\n this.getMenu();\n }\n\n async ngOnInit() {\n this.rdict = ReactiveDictionary.getInstance(this.socketService,this.wsAuthService.Token);\n if (this.rdict.size == 0)\n await this.rdict.asyncInit();\n this.apptitle = await this.rdict.asyncGet(\"appname\")\n\n }\n public isItemExpanded: DrawerItemExpandedFn = (item): boolean => {\n return this.expandedIndices.indexOf(item.id) >= 0;\n };\n getMenu() {\n this.userService.getMenus().subscribe(\n {\n next: value => {\n this.items = this.transformToDrawerItems(value.getModels())\n },\n error: err => console.error('Observable emitted an error: ' + err),\n complete: () => console.log('Observable emitted the complete notification')\n }\n )\n this.menu$ = this.userService.getMenus().pipe(map(f => {\n const data = f.getModels()\n this.hasItems = data.length > 0;\n return data;\n }));\n }\n // public items: Array<DrawerItem> //= items;\n\n public onSelect(ev: DrawerSelectEvent): void {\n this.selected = ev.item.text;\n const current = ev.item.id;\n\n if (this.expandedIndices.indexOf(current) >= 0) {\n this.expandedIndices = this.expandedIndices.filter(\n (id) => id !== current\n );\n } else {\n this.expandedIndices.push(current);\n }\n if (ev.item.path && ev.item.path !== '') {\n this.router.navigate([ev.item.path]);\n // this.router.navigateByUrl(ev.item.path);\n // this.router.navigate(['/import_layout']); \n }\n }\n private transformToDrawerItems(data: Menu[], parentId?: string): any {\n let drawerItems: Array<{ [Key: string]: unknown }> = [];\n\n data.forEach(item => {\n const drawerItem = {\n id: item.id,\n text: this.translate.instant(item.translationKey),\n // icon: item.icon,\n svgIcon: this.icons[item.icon],\n selected: false, // Set this based on your application's state or logic\n parentId: parentId,\n path: (item.sublinks && item.sublinks.length > 0) ? '' : item.link\n };\n\n drawerItems.push(drawerItem);\n\n // Recursively process children and flatten them\n if (item.sublinks && item.sublinks.length > 0) {\n const childItems = this.transformToDrawerItems(item.sublinks, item.id);\n drawerItems = drawerItems.concat(childItems); // Add children to the drawerItems array\n }\n });\n\n return drawerItems;\n }\n}\n","<div class=\"custom-toolbar\">\n <button kendoButton [svgIcon]=\"menuSvg\" fillMode=\"flat\" (click)=\"drawer.toggle()\"></button>\n <!-- <kendo-toolbar-button icon=\"menu\" themeColor=\"tertiary\" (click)=\"drawer.toggle()\"> </kendo-toolbar-button> -->\n <span class=\"app-title\">{{apptitle}}</span>\n</div>\n<kendo-drawer-container>\n <kendo-drawer #drawer [items]=\"items\" mode=\"push\" [mini]=\"true\" [expanded]=\"true\" (select)=\"onSelect($event)\"\n [autoCollapse]=\"false\" [isItemExpanded]=\"isItemExpanded\">\n <!-- <ng-template kendoDrawerItemTemplate let-item>\n <div *ngIf=\"item.path !== ''\" class=\"k-drawer-link\" [routerLink]=\"item.path\">\n <kendo-svgicon [icon]=\"item.svgIcon\"></kendo-svgicon>\n <span>{{ item.text }}</span>\n </div>\n <div *ngIf=\"item.path == ''\" class=\"k-drawer-link\" >\n <kendo-svgicon [icon]=\"item.svgIcon\"></kendo-svgicon>\n <span>{{ item.text }}</span>\n </div>\n </ng-template> -->\n </kendo-drawer>\n\n <kendo-drawer-content>\n <router-outlet></router-outlet>\n <!-- <div>{{selected}}</div> -->\n <!-- <my-content [selectedItem]=\"selected\"></my-content> -->\n </kendo-drawer-content>\n</kendo-drawer-container>","import { Component, OnInit } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { FormlyFieldConfig, FormlyFormOptions, FormlyModule } from '@ngx-formly/core';\nimport { FormlyKendoModule } from '@ngx-formly/kendo';\nimport { TranslateModule } from '@ngx-translate/core';\n;\n@Component({\n standalone: true,\n selector: 'app-rdict-crud',\n templateUrl: './rdict-crud.component.html',\n styleUrls: ['./rdict-crud.component.scss'],\n imports: [\n FormlyModule,\n ReactiveFormsModule,\n FormlyKendoModule,\n TranslateModule\n ]\n})\nexport class RdictCrudComponent implements OnInit {\n baseForm = new FormGroup({});\n model: any = {};\n options: FormlyFormOptions = {};\n fields: FormlyFieldConfig[] = [\n {\n key: 'name',\n type: 'input',\n props: {\n label: 'General.Name',\n translate: true,\n required: true,\n },\n },\n ];\n\n\n constructor() { }\n\n ngOnInit() {\n }\n onSubmit(model) {\n }\n}\n","<form [formGroup]=\"baseForm\" (ngSubmit)=\"onSubmit(model)\">\n <formly-form [form]=\"baseForm\" [fields]=\"fields\" [model]=\"model\" [options]=\"options\"></formly-form>\n</form>","import {\r\n Component,\r\n Input,\r\n TemplateRef,\r\n ViewChild,\r\n forwardRef\r\n} from '@angular/core';\r\nimport { ToolBarToolComponent } from '@progress/kendo-angular-toolbar';\r\n\r\n@Component({\r\n providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => RdictTableTitle) }],\r\n selector: 'table-title',\r\n standalone: true,\r\n template: `\r\n <ng-template #toolbarTemplate>\r\n <kendo-label>{{text}}</kendo-label>\r\n </ng-template>\r\n `\r\n})\r\nexport class RdictTableTitle extends ToolBarToolComponent {\r\n public tabindex = -1;\r\n @ViewChild('toolbarTemplate', { static: true }) public declare toolbarTemplate: TemplateRef<any>;\r\n @Input() public text: string;\r\n constructor() {\r\n super();\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Injector, Input, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort, SortDirection } from '@angular/material/sort';\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationStart, Router, RouterModule, UrlSegment } from '@angular/router';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n// import { Rule } from '@rosoftlab/core';\nimport { CommonModule } from '@angular/common';\nimport { KENDO_GRID } from '@progress/kendo-angular-grid';\nimport { KENDO_LABEL } from '@progress/kendo-angular-label';\nimport { KENDO_TOOLBAR } from '@progress/kendo-angular-toolbar';\nimport { ColumnMode, SelectionType } from '@swimlane/ngx-datatable';\nimport { ReactiveDictionary } from '../../reactive-dictionary';\nimport { WsAuthService } from '../../services';\nimport { SocketService } from '../../services/socket.service';\nimport { RdictTableTitle } from './rdict-table-title';\ndeclare var $: any;\n\n@Component({\n selector: 'rsl-rdict-generic-table',\n templateUrl: './rdict-generic-table.component.html',\n styleUrls: ['./rdict-generic-table.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n CommonModule,\n RouterModule,\n // MatPaginatorModule,\n // MatTableModule,\n TranslateModule,\n KENDO_GRID,\n KENDO_TOOLBAR,\n KENDO_LABEL,\n RdictTableTitle\n ],\n providers: [\n\n ]\n})\nexport class GenericRdictTableComponent implements OnInit {\n dataSource: unknown[] //MatTableDataSource<any> = new MatTableDataSource();\n public title: string;\n model: string;\n @Input() showSerach: boolean;\n @Input() searchFields: string;\n @Input() customInclude: string;\n @Input() defaultSort: string;\n @Input() defaultSortDirection: SortDirection;\n @Input() deletePropertyName: string;\n @Input() defaultFilter: string;\n @Input() showHeader: boolean;\n // @Input() deleteDisableRule: Rule[];\n @Input() hasAdd: boolean;\n @Input() canDelete: boolean;\n @Input() canEdit: boolean;\n @Input() editOnClick: boolean = false;\n @Input() editOnDblClick: boolean = false;\n data: any[] = [];\n pageIndex: number = 1;\n pageSize: number = 30\n\n basePath: string;\n dictPath: string;\n isLoadingResults = true;\n isRateLimitReached = false;\n\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(ElementRef, { static: false }) filter: ElementRef;\n // @ViewChild('table') table: MatTable<any>;\n // @ViewChild('table', { read: ElementRef }) public matTableRef: ElementRef;\n\n\n @Output() selectedObject: EventEmitter<any> = new EventEmitter<any>();\n @Output() click: EventEmitter<{ propertyName: string, model: any }> = new EventEmitter<{ propertyName: string, model: any }>();\n @Output() editModel: EventEmitter<any> = new EventEmitter<any>();\n\n columns = [];\n tableLayout = {};\n allColumns = [];\n displayedColumns: string[];\n ColumnMode = ColumnMode;\n SelectionType = SelectionType;\n\n readonly headerHeight = 50;\n readonly rowHeight = 50;\n isLoading: boolean;\n filterValue: string;\n oldOffsetY: number;\n hasSearch: false\n rdict: ReactiveDictionary | undefined;\n selectedItem: any;\n\n constructor(\n public router: Router,\n public route: ActivatedRoute,\n public translate: TranslateService,\n private injector: Injector,\n private socketService: SocketService,\n private wsAuthService: WsAuthService,\n private el: ElementRef) {\n }\n async ngOnInit() {\n this.setValueFromSnapshot(this, this.route.snapshot, 'model', \"\");\n this.setValueFromSnapshot(this, this.route.snapshot, 'showSerach', false);\n this.setValueFromSnapshot(this, this.route.snapshot, 'searchFields', null);\n this.setValueFromSnapshot(this, this.route.snapshot, 'customInclude', null);\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultSort', null);\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultSortDirection', '');\n this.setValueFromSnapshot(this, this.route.snapshot, 'deletePropertyName', 'name');\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultFilter', null);\n this.setValueFromSnapshot(this, this.route.snapshot, 'showHeader', true);\n this.setValueFromSnapshot(this, this.route.snapshot, 'deleteDisableRule', null);\n this.setValueFromSnapshot(this, this.route.snapshot, 'hasAdd', true);\n this.setValueFromSnapshot(this, this.route.snapshot, 'canDelete', true);\n this.setValueFromSnapshot(this, this.route.snapshot, 'canEdit', true);\n this.setValueFromSnapshot(this, this.route.snapshot, 'editOnClick', false);\n this.setValueFromSnapshot(this, this.route.snapshot, 'editOnDblClick', false);\n\n const currentUrlSegments: UrlSegment[] = this.router.url.split('/').map(segment => new UrlSegment(segment, {}));\n this.basePath = currentUrlSegments.map(segment => segment.path).join('/');\n const filteredSegments = currentUrlSegments.filter(segment => segment.path !== '');\n this.dictPath = filteredSegments.map(segment => segment.path).join('.');\n this.model = filteredSegments.length > 0 ? filteredSegments[filteredSegments.length - 1].path : ''; // Default to empty string if no valid segments\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n // Navigation to another page is about to occur\n this.data = [];\n this.pageIndex = 1\n // Perform actions or update component as needed\n }\n });\n this.rdict = ReactiveDictionary.getInstance(this.socketService,this.wsAuthService.Token);\n if (this.rdict.size == 0)\n await this.rdict.asyncInit();\n await this.getListLayout()\n await this.loadData()\n // this.isLoading = true;\n // this.onScroll(0);\n }\n setValueFromSnapshot<T>(component: any, snapshot: ActivatedRouteSnapshot, key: string, defaultValue: T): void {\n if (component[key] === undefined) {\n let dataFromSnapshot = snapshot.data[key];\n if (dataFromSnapshot === null || dataFromSnapshot === undefined) {\n dataFromSnapshot = snapshot.params[key];\n }\n component[key] = dataFromSnapshot !== undefined ? dataFromSnapshot : defaultValue;\n }\n }\n async loadData() {\n var x = await this.rdict.getTable(this.dictPath)\n const result = x.map(dictionary => {\n // Convert Map to object and filter out __guid\n const filteredObject = {};\n for (const [key, value] of dictionary.entries()) {\n if (key !== '__guid') {\n filteredObject[key] = value;\n }\n }\n return filteredObject;\n });\n this.dataSource = result//new MatTableDataSource(result);\n }\n // async handleChange(event) {\n // this.filterValue = event.target.value.toLowerCase();\n // this.data = [];\n // this.pageIndex = 1\n // this.loadData();\n // }\n // loadData(event = null) {\n // const filters = [];\n // let sorts = '';\n // this.isLoading = true;\n // if (this.defaultSort) {\n // if (this.defaultSortDirection === 'desc') {\n // sorts = '-' + this.defaultSort;\n // } else {\n // sorts = this.defaultSort;\n // }\n // }\n // if (this.showSerach) {\n // if (this.filterValue) {\n // const y = '(' + this.searchFields.replace(',', '|') + ')';\n // filters.push(y + '@=*' + this.filterValue);\n // }\n // }\n // if (this.defaultFilter) {\n // filters.push(this.defaultFilter)\n // }\n // setTimeout(() => {\n // const filtersValue = filters.join(', ');\n // this.modelService.getAll(this.pageIndex, this.pageSize, sorts, filtersValue, this.customInclude).subscribe(\n // (response: BaseQueryData<T>) => {\n // if (this.pageIndex !== response.getMeta().meta.count) {\n // this.pageIndex++\n // } else {\n // if (event) event.target.disabled = true;\n // }\n // // if (this.filterValue)\n // // this.data = response.getModels();\n // // else\n // const rows = [...this.data, ...response.getModels()];\n // this.data = rows;\n // // this.data = this.data.concat();\n\n // if (event) event.target.complete();\n // this.isLoading = false;\n // })\n // }, 700);\n // }\n // async handleRefresh(event) {\n // this.pageIndex = 1\n // this.data = [];\n // this.loadData();\n // event.target.complete();\n // }\n // onAdd() {\n // console.log(this.basePath)\n // this.router.navigate([this.basePath + '/add'])\n // // this.navCtrl.navigateForward(this.basePath + '/add');\n // }\n // editModel(model: BaseModelFormly) {\n // if (this.canEdit)\n // this.router.navigate([this.basePath + '/edit/', model.id]);\n // // this.navCtrl.navigateForward(this.basePath + '/edit/' + model.id);\n // }\n async getListLayout() {\n if (this.model) {\n this.tableLayout = await this.rdict.asyncGet(\"config.models.\" + this.model + \".tableLayout\")\n if (this.tableLayout) {\n this.title = this.translate.instant(this.tableLayout[\"title\"]);\n this.allColumns = this.tableLayout[\"columns\"].map(item => {\n if (!item.isTranslated) {\n item.name = this.translate.instant(item.translateKey);\n item.isTranslated = true\n }\n return item;\n });\n this.columns = [];\n // this.allColumns = Reflect.getMetadata('IonicDataTableLayout', this.model).map((item: IonicDataTableLayoutConfig) => {\n // if (!item.isTranslated) {\n // item.name = this.translate.instant(item.name);\n // item.isTranslated = true\n // }\n // return item;\n // });\n\n this.allColumns.sort((a, b) => a.order - b.order);\n\n // if (this.canDelete || this.canEdit) {\n // this.allColumns.push({\n // // cellTemplate: null,\n // name: '',\n // // cellClass: 'actions-cell',\n // draggable: false,\n // sortable: false,\n // visible: true\n // // width: 100,\n // // maxWidth: 100,\n // // minWidth: 100\n // })\n // }\n // this.columns = this.allColumns.filter((item: IonicDataTableLayoutConfig) => item.visible);\n\n this.displayedColumns = [];\n // if (this.allowReorderItems) {\n // this.displayedColumns.push('position')\n // }\n this.displayedColumns.push.apply(this.displayedColumns, this.allColumns.map(x => x.propertyName));\n\n }\n }\n\n }\n public addHandler(): void {\n console.log(\"add\")\n this.router.navigate([this.basePath + '/add'])\n // this.editDataItem = new Product();\n // this.isNew = true;\n }\n\n}\n","<kendo-grid [data]=\"dataSource\" \n [sortable]=\"true\" \n [filterable]=\"showSerach\"\n (add)=\"addHandler()\">\n <kendo-toolbar>\n <table-title text=\"{{title}}\"></table-title>\n <kendo-toolbar-messages>Test</kendo-toolbar-messages>\n <!-- <kendo-toolbar-separator></kendo-toolbar-separator> -->\n <kendo-toolbar-spacer></kendo-toolbar-spacer>\n <kendo-toolbar-button text=\"Add new\" kendoGridAddTool></kendo-toolbar-button>\n </kendo-toolbar>\n <!-- <kendo-toolbar>\n \n <kendo-toolbar-spacer></kendo-toolbar-spacer>\n <button kendoGridAddCommand type=\"button\">Add new</button>\n </kendo-toolbar> -->\n <kendo-grid-column *ngFor=\"let column of allColumns\" field=\"{{ column.propertyName }}\"\n title=\" {{column.translateKey | translate}}\">\n </kendo-grid-column>\n</kendo-grid>","import { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatNativeDateModule, MatOptionModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n\r\nconst COMMON_MODULES = [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatAutocompleteModule, MatButtonModule, MatButtonToggleModule, MatCardModule, MatCheckboxModule, MatChipsModule, MatDatepickerModule,\r\n MatDialogModule, MatExpansionModule, MatGridListModule, MatIconModule,\r\n MatInputModule, MatListModule, MatMenuModule, MatNativeDateModule,\r\n MatPaginatorModule, MatProgressBarModule, MatProgressSpinnerModule, MatRadioModule, MatRippleModule, MatSelectModule, MatSidenavModule,\r\n MatSliderModule, MatSlideToggleModule, MatSnackBarModule, MatSortModule, MatTableModule, MatTabsModule, MatToolbarModule,\r\n MatTooltipModule, MatOptionModule, DragDropModule, MatDividerModule, PortalModule, MatTreeModule, MatBadgeModule, MatStepperModule,\r\n CdkStepperModule\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n ...COMMON_MODULES,\r\n TranslateModule\r\n ],\r\n exports: [\r\n ...COMMON_MODULES,\r\n TranslateModule],\r\n})\r\nexport class RSLMaterialModule {\r\n}\r\n","/*\r\n * Public API Surface of rdict\r\n */\r\n\r\nexport * from './lib/core';\r\nexport * from './lib/reactive-dictionary';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UserService","i2","i1.SocketService","i3","i1.WsAuthService","i1","i3.SocketService","i4.WsAuthService"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@rosoftlab/rdict" />
5
+ export * from './public-api';
@@ -0,0 +1,3 @@
1
+ export { FullComponent } from './layouts/full/full.component';
2
+ export { RdictCrudComponent } from './rdict-crud/rdict-crud.component';
3
+ export { GenericRdictTableComponent } from './rdict-generic-table/rdict-generic-table.component';
@@ -0,0 +1,36 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { TranslateService } from '@ngx-translate/core';
4
+ import { DrawerItemExpandedFn, DrawerSelectEvent } from '@progress/kendo-angular-layout';
5
+ import * as allIcons from "@progress/kendo-svg-icons";
6
+ import { SVGIcon } from "@progress/kendo-svg-icons";
7
+ import { Observable } from 'rxjs';
8
+ import { Menu } from '../../../models';
9
+ import { SocketService, UserService, WsAuthService } from '../../../services';
10
+ import * as i0 from "@angular/core";
11
+ export declare class FullComponent implements OnInit {
12
+ private userService;
13
+ private router;
14
+ private socketService;
15
+ translate: TranslateService;
16
+ private wsAuthService;
17
+ selected: string;
18
+ menuSvg: SVGIcon;
19
+ expandedIndices: number[];
20
+ menu$: Observable<Menu[]>;
21
+ hasItems: boolean;
22
+ items: Array<{
23
+ [Key: string]: unknown;
24
+ }>;
25
+ icons: typeof allIcons;
26
+ private rdict;
27
+ apptitle: string;
28
+ constructor(userService: UserService, router: Router, socketService: SocketService, translate: TranslateService, wsAuthService: WsAuthService);
29
+ ngOnInit(): Promise<void>;
30
+ isItemExpanded: DrawerItemExpandedFn;
31
+ getMenu(): void;
32
+ onSelect(ev: DrawerSelectEvent): void;
33
+ private transformToDrawerItems;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<FullComponent, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<FullComponent, "rdict-full", never, {}, {}, never, never, true, never>;
36
+ }
@@ -0,0 +1,15 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';
4
+ import * as i0 from "@angular/core";
5
+ export declare class RdictCrudComponent implements OnInit {
6
+ baseForm: FormGroup<{}>;
7
+ model: any;
8
+ options: FormlyFormOptions;
9
+ fields: FormlyFieldConfig[];
10
+ constructor();
11
+ ngOnInit(): void;
12
+ onSubmit(model: any): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdictCrudComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<RdictCrudComponent, "app-rdict-crud", never, {}, {}, never, never, true, never>;
15
+ }
@@ -0,0 +1,73 @@
1
+ import { ElementRef, EventEmitter, Injector, OnInit } from '@angular/core';
2
+ import { MatPaginator } from '@angular/material/paginator';
3
+ import { MatSort, SortDirection } from '@angular/material/sort';
4
+ import { ActivatedRoute, ActivatedRouteSnapshot, Router } from '@angular/router';
5
+ import { TranslateService } from '@ngx-translate/core';
6
+ import { ColumnMode, SelectionType } from '@swimlane/ngx-datatable';
7
+ import { ReactiveDictionary } from '../../reactive-dictionary';
8
+ import { WsAuthService } from '../../services';
9
+ import { SocketService } from '../../services/socket.service';
10
+ import * as i0 from "@angular/core";
11
+ export declare class GenericRdictTableComponent implements OnInit {
12
+ router: Router;
13
+ route: ActivatedRoute;
14
+ translate: TranslateService;
15
+ private injector;
16
+ private socketService;
17
+ private wsAuthService;
18
+ private el;
19
+ dataSource: unknown[];
20
+ title: string;
21
+ model: string;
22
+ showSerach: boolean;
23
+ searchFields: string;
24
+ customInclude: string;
25
+ defaultSort: string;
26
+ defaultSortDirection: SortDirection;
27
+ deletePropertyName: string;
28
+ defaultFilter: string;
29
+ showHeader: boolean;
30
+ hasAdd: boolean;
31
+ canDelete: boolean;
32
+ canEdit: boolean;
33
+ editOnClick: boolean;
34
+ editOnDblClick: boolean;
35
+ data: any[];
36
+ pageIndex: number;
37
+ pageSize: number;
38
+ basePath: string;
39
+ dictPath: string;
40
+ isLoadingResults: boolean;
41
+ isRateLimitReached: boolean;
42
+ paginator: MatPaginator;
43
+ sort: MatSort;
44
+ filter: ElementRef;
45
+ selectedObject: EventEmitter<any>;
46
+ click: EventEmitter<{
47
+ propertyName: string;
48
+ model: any;
49
+ }>;
50
+ editModel: EventEmitter<any>;
51
+ columns: any[];
52
+ tableLayout: {};
53
+ allColumns: any[];
54
+ displayedColumns: string[];
55
+ ColumnMode: typeof ColumnMode;
56
+ SelectionType: typeof SelectionType;
57
+ readonly headerHeight = 50;
58
+ readonly rowHeight = 50;
59
+ isLoading: boolean;
60
+ filterValue: string;
61
+ oldOffsetY: number;
62
+ hasSearch: false;
63
+ rdict: ReactiveDictionary | undefined;
64
+ selectedItem: any;
65
+ constructor(router: Router, route: ActivatedRoute, translate: TranslateService, injector: Injector, socketService: SocketService, wsAuthService: WsAuthService, el: ElementRef);
66
+ ngOnInit(): Promise<void>;
67
+ setValueFromSnapshot<T>(component: any, snapshot: ActivatedRouteSnapshot, key: string, defaultValue: T): void;
68
+ loadData(): Promise<void>;
69
+ getListLayout(): Promise<void>;
70
+ addHandler(): void;
71
+ static ɵfac: i0.ɵɵFactoryDeclaration<GenericRdictTableComponent, never>;
72
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericRdictTableComponent, "rsl-rdict-generic-table", never, { "showSerach": { "alias": "showSerach"; "required": false; }; "searchFields": { "alias": "searchFields"; "required": false; }; "customInclude": { "alias": "customInclude"; "required": false; }; "defaultSort": { "alias": "defaultSort"; "required": false; }; "defaultSortDirection": { "alias": "defaultSortDirection"; "required": false; }; "deletePropertyName": { "alias": "deletePropertyName"; "required": false; }; "defaultFilter": { "alias": "defaultFilter"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "hasAdd": { "alias": "hasAdd"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "canEdit": { "alias": "canEdit"; "required": false; }; "editOnClick": { "alias": "editOnClick"; "required": false; }; "editOnDblClick": { "alias": "editOnDblClick"; "required": false; }; }, { "selectedObject": "selectedObject"; "click": "click"; "editModel": "editModel"; }, never, never, true, never>;
73
+ }
@@ -0,0 +1,11 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import { ToolBarToolComponent } from '@progress/kendo-angular-toolbar';
3
+ import * as i0 from "@angular/core";
4
+ export declare class RdictTableTitle extends ToolBarToolComponent {
5
+ tabindex: number;
6
+ toolbarTemplate: TemplateRef<any>;
7
+ text: string;
8
+ constructor();
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdictTableTitle, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<RdictTableTitle, "table-title", never, { "text": { "alias": "text"; "required": false; }; }, {}, never, never, true, never>;
11
+ }
package/lib/core.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from './components';
2
+ export * from './models';
3
+ export * from './rsl-material-module';
4
+ export * from './services';
@@ -0,0 +1,3 @@
1
+ export { Menu } from './menu';
2
+ export { Right } from './right';
3
+ export { User } from './user';
@@ -0,0 +1,15 @@
1
+ import { BaseModel } from "dist/@rosoftlab/core";
2
+ export declare class Menu extends BaseModel {
3
+ id: string;
4
+ header?: string;
5
+ icon?: string;
6
+ link?: string;
7
+ title?: string;
8
+ sublinks?: Menu[];
9
+ target?: string;
10
+ external?: boolean;
11
+ description?: string;
12
+ order?: number;
13
+ translationKey: string;
14
+ color?: string;
15
+ }
@@ -0,0 +1,14 @@
1
+ import { BaseModel } from "dist/@rosoftlab/core";
2
+ export declare class Right extends BaseModel {
3
+ id: string;
4
+ name: string;
5
+ rightKey: string;
6
+ pagePath: string;
7
+ order: number;
8
+ isMenu: boolean;
9
+ resourceName: string;
10
+ parentId: string;
11
+ color: string;
12
+ defaultRoles: string;
13
+ icon?: string;
14
+ }
@@ -0,0 +1,8 @@
1
+ import { BaseModel } from "dist/@rosoftlab/core";
2
+ export declare class User extends BaseModel {
3
+ id: string;
4
+ firstName: string;
5
+ lastName: string;
6
+ email: string;
7
+ get fullName(): string;
8
+ }
@@ -0,0 +1,20 @@
1
+ import { Observable } from "rxjs";
2
+ import { SocketService } from "./services/socket.service";
3
+ export declare class ReactiveDictionary extends Map<string, any> {
4
+ private static instance;
5
+ private _socketService;
6
+ private changes$;
7
+ private isInitialized;
8
+ private _authToken;
9
+ private constructor();
10
+ static getInstance(socketService: SocketService, authToken: string, instance_key?: string): ReactiveDictionary;
11
+ keys(): IterableIterator<string>;
12
+ asyncGet(key: string): Promise<any>;
13
+ asyncSet(key: string, value: any, emmit_event?: boolean): Promise<void>;
14
+ asyncInit(initialData?: Record<string, any>): Promise<void>;
15
+ lazyLoadSync(guid: string, prop: string | symbol): Promise<any>;
16
+ getPlainObject(): Record<string, any>;
17
+ getTable(key: string): Promise<any[]>;
18
+ getTableWithoutGuid(key: string): Promise<any[]>;
19
+ onChanges(): Observable<any>;
20
+ }
@@ -0,0 +1,45 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "@angular/forms";
4
+ import * as i3 from "@angular/material/autocomplete";
5
+ import * as i4 from "@angular/material/button";
6
+ import * as i5 from "@angular/material/button-toggle";
7
+ import * as i6 from "@angular/material/card";
8
+ import * as i7 from "@angular/material/checkbox";
9
+ import * as i8 from "@angular/material/chips";
10
+ import * as i9 from "@angular/material/datepicker";
11
+ import * as i10 from "@angular/material/dialog";
12
+ import * as i11 from "@angular/material/expansion";
13
+ import * as i12 from "@angular/material/grid-list";
14
+ import * as i13 from "@angular/material/icon";
15
+ import * as i14 from "@angular/material/input";
16
+ import * as i15 from "@angular/material/list";
17
+ import * as i16 from "@angular/material/menu";
18
+ import * as i17 from "@angular/material/core";
19
+ import * as i18 from "@angular/material/paginator";
20
+ import * as i19 from "@angular/material/progress-bar";
21
+ import * as i20 from "@angular/material/progress-spinner";
22
+ import * as i21 from "@angular/material/radio";
23
+ import * as i22 from "@angular/material/select";
24
+ import * as i23 from "@angular/material/sidenav";
25
+ import * as i24 from "@angular/material/slider";
26
+ import * as i25 from "@angular/material/slide-toggle";
27
+ import * as i26 from "@angular/material/snack-bar";
28
+ import * as i27 from "@angular/material/sort";
29
+ import * as i28 from "@angular/material/table";
30
+ import * as i29 from "@angular/material/tabs";
31
+ import * as i30 from "@angular/material/toolbar";
32
+ import * as i31 from "@angular/material/tooltip";
33
+ import * as i32 from "@angular/cdk/drag-drop";
34
+ import * as i33 from "@angular/material/divider";
35
+ import * as i34 from "@angular/cdk/portal";
36
+ import * as i35 from "@angular/material/tree";
37
+ import * as i36 from "@angular/material/badge";
38
+ import * as i37 from "@angular/material/stepper";
39
+ import * as i38 from "@angular/cdk/stepper";
40
+ import * as i39 from "@ngx-translate/core";
41
+ export declare class RSLMaterialModule {
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<RSLMaterialModule, never>;
43
+ static ɵmod: i0.ɵɵNgModuleDeclaration<RSLMaterialModule, never, [typeof i1.CommonModule, typeof i2.ReactiveFormsModule, typeof i3.MatAutocompleteModule, typeof i4.MatButtonModule, typeof i5.MatButtonToggleModule, typeof i6.MatCardModule, typeof i7.MatCheckboxModule, typeof i8.MatChipsModule, typeof i9.MatDatepickerModule, typeof i10.MatDialogModule, typeof i11.MatExpansionModule, typeof i12.MatGridListModule, typeof i13.MatIconModule, typeof i14.MatInputModule, typeof i15.MatListModule, typeof i16.MatMenuModule, typeof i17.MatNativeDateModule, typeof i18.MatPaginatorModule, typeof i19.MatProgressBarModule, typeof i20.MatProgressSpinnerModule, typeof i21.MatRadioModule, typeof i17.MatRippleModule, typeof i22.MatSelectModule, typeof i23.MatSidenavModule, typeof i24.MatSliderModule, typeof i25.MatSlideToggleModule, typeof i26.MatSnackBarModule, typeof i27.MatSortModule, typeof i28.MatTableModule, typeof i29.MatTabsModule, typeof i30.MatToolbarModule, typeof i31.MatTooltipModule, typeof i17.MatOptionModule, typeof i32.DragDropModule, typeof i33.MatDividerModule, typeof i34.PortalModule, typeof i35.MatTreeModule, typeof i36.MatBadgeModule, typeof i37.MatStepperModule, typeof i38.CdkStepperModule, typeof i39.TranslateModule], [typeof i1.CommonModule, typeof i2.ReactiveFormsModule, typeof i3.MatAutocompleteModule, typeof i4.MatButtonModule, typeof i5.MatButtonToggleModule, typeof i6.MatCardModule, typeof i7.MatCheckboxModule, typeof i8.MatChipsModule, typeof i9.MatDatepickerModule, typeof i10.MatDialogModule, typeof i11.MatExpansionModule, typeof i12.MatGridListModule, typeof i13.MatIconModule, typeof i14.MatInputModule, typeof i15.MatListModule, typeof i16.MatMenuModule, typeof i17.MatNativeDateModule, typeof i18.MatPaginatorModule, typeof i19.MatProgressBarModule, typeof i20.MatProgressSpinnerModule, typeof i21.MatRadioModule, typeof i17.MatRippleModule, typeof i22.MatSelectModule, typeof i23.MatSidenavModule, typeof i24.MatSliderModule, typeof i25.MatSlideToggleModule, typeof i26.MatSnackBarModule, typeof i27.MatSortModule, typeof i28.MatTableModule, typeof i29.MatTabsModule, typeof i30.MatToolbarModule, typeof i31.MatTooltipModule, typeof i17.MatOptionModule, typeof i32.DragDropModule, typeof i33.MatDividerModule, typeof i34.PortalModule, typeof i35.MatTreeModule, typeof i36.MatBadgeModule, typeof i37.MatStepperModule, typeof i38.CdkStepperModule, typeof i39.TranslateModule]>;
44
+ static ɵinj: i0.ɵɵInjectorDeclaration<RSLMaterialModule>;
45
+ }
@@ -0,0 +1,3 @@
1
+ export { SocketService } from './socket.service';
2
+ export { UserService } from './user.service';
3
+ export { WsAuthService } from './ws-auth.service';
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SocketService {
3
+ private socket;
4
+ private socketUrl;
5
+ constructor(socketUrl: string);
6
+ initSocket(authToken: string): void;
7
+ getInitialData(): Promise<Record<string, any>>;
8
+ getSetEvent(rdict: any): void;
9
+ requestLazyLoad(did: string, key: string): Promise<any>;
10
+ emitSet(did: string, key: string, value: any): Promise<void>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<SocketService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<SocketService>;
13
+ }
@@ -0,0 +1,15 @@
1
+ import { BaseQueryData, BaseService, DatastoreCore } from "dist/@rosoftlab/core";
2
+ import { Observable } from 'rxjs';
3
+ import { Menu } from '../models/menu';
4
+ import { Right } from '../models/right';
5
+ import { User } from '../models/user';
6
+ import * as i0 from "@angular/core";
7
+ export declare class UserService extends BaseService<User> {
8
+ userRights: Right[];
9
+ constructor(datastore: DatastoreCore);
10
+ getRights(): Observable<BaseQueryData<Right>>;
11
+ hasRightForLink(link: string): boolean;
12
+ getMenus(): Observable<BaseQueryData<Menu>>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserService, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<UserService>;
15
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class WsAuthService {
3
+ private token;
4
+ constructor();
5
+ get Token(): string;
6
+ set Token(token: string);
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<WsAuthService, never>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<WsAuthService>;
9
+ }
@@ -0,0 +1,2 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export declare const SOCKET_URL: InjectionToken<string>;
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@rosoftlab/rdict",
3
+ "version": "1.0.0-alpha-15",
4
+ "peerDependencies": {
5
+ "@angular/common": "^18.2.0",
6
+ "@angular/core": "^18.2.0",
7
+ "socket.io-client": "^4.8.1",
8
+ "socket.io-msgpack-parser": "^3.0.2",
9
+ "socket.io-parser": "^4.2.4",
10
+ "@rosoftlab/core": "1.0.0-alpha-15",
11
+ "@progress/kendo-angular-grid": "^17.1.1",
12
+ "@progress/kendo-data-query": "^1.0.0",
13
+ "@progress/kendo-drawing": "^1.21.0",
14
+ "@progress/kendo-licensing": "^1.0.2",
15
+ "@progress/kendo-angular-buttons": "17.1.1",
16
+ "@progress/kendo-angular-common": "17.1.1",
17
+ "@progress/kendo-angular-dateinputs": "17.1.1",
18
+ "@progress/kendo-angular-layout": "17.1.1",
19
+ "@progress/kendo-angular-dropdowns": "17.1.1",
20
+ "@progress/kendo-angular-excel-export": "17.1.1",
21
+ "@progress/kendo-angular-icons": "17.1.1",
22
+ "@progress/kendo-angular-inputs": "17.1.1",
23
+ "@progress/kendo-angular-intl": "17.1.1",
24
+ "@progress/kendo-angular-l10n": "17.1.1",
25
+ "@progress/kendo-angular-label": "17.1.1",
26
+ "@progress/kendo-angular-pager": "17.1.1",
27
+ "@progress/kendo-angular-pdf-export": "17.1.1",
28
+ "@progress/kendo-angular-popup": "17.1.1",
29
+ "@progress/kendo-angular-toolbar": "17.1.1",
30
+ "@progress/kendo-angular-utils": "17.1.1",
31
+ "@progress/kendo-angular-treeview": "17.1.1",
32
+ "@progress/kendo-angular-navigation": "17.1.1",
33
+ "@progress/kendo-angular-dialog": "17.1.1",
34
+ "@progress/kendo-svg-icons": "^4.0.0",
35
+ "@progress/kendo-angular-progressbar": "17.1.1",
36
+ "@angular/localize": "^18.2.9",
37
+ "@progress/kendo-theme-default": "^10.0.1"
38
+ },
39
+ "dependencies": {
40
+ "tslib": "^2.3.0"
41
+ },
42
+ "sideEffects": false,
43
+ "module": "fesm2022/rosoftlab-rdict.mjs",
44
+ "typings": "index.d.ts",
45
+ "exports": {
46
+ "./package.json": {
47
+ "default": "./package.json"
48
+ },
49
+ ".": {
50
+ "types": "./index.d.ts",
51
+ "esm2022": "./esm2022/rosoftlab-rdict.mjs",
52
+ "esm": "./esm2022/rosoftlab-rdict.mjs",
53
+ "default": "./fesm2022/rosoftlab-rdict.mjs"
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,2 @@
1
+ export * from './lib/core';
2
+ export * from './lib/reactive-dictionary';