@rosoftlab/rdict 1.0.0-alpha-17 → 1.0.1-alpha-2

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.
@@ -1,7 +1,7 @@
1
1
  import * as i5$1 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, Injectable, Inject, Component, forwardRef, ViewChild, Input, EventEmitter, ElementRef, ViewEncapsulation, Output } from '@angular/core';
4
+ import { Injectable, Inject, Component, forwardRef, ViewChild, Input, EventEmitter, ElementRef, ViewEncapsulation, Output, InjectionToken } from '@angular/core';
5
5
  import * as i1$1 from '@angular/router';
6
6
  import { RouterModule, UrlSegment, NavigationStart } from '@angular/router';
7
7
  import * as i2 from '@ngx-translate/core';
@@ -26,12 +26,9 @@ import { FormGroup, ReactiveFormsModule } from '@angular/forms';
26
26
  import * as i1$2 from '@ngx-formly/core';
27
27
  import { FormlyModule } from '@ngx-formly/core';
28
28
  import { FormlyKendoModule } from '@ngx-formly/kendo';
29
- import { MatPaginator } from '@angular/material/paginator';
30
- import { MatSort } from '@angular/material/sort';
31
29
  import * as i6 from '@progress/kendo-angular-grid';
32
30
  import { KENDO_GRID } from '@progress/kendo-angular-grid';
33
31
  import { KENDO_LABEL } from '@progress/kendo-angular-label';
34
- import { ColumnMode, SelectionType } from '@swimlane/ngx-datatable';
35
32
 
36
33
  class ReactiveDictionary extends Map {
37
34
  static { this.instance = new Map; }
@@ -205,9 +202,6 @@ class ReactiveDictionary extends Map {
205
202
  }
206
203
  }
207
204
 
208
- // projects/my-library/src/lib/socket-config.token.ts
209
- const SOCKET_URL = new InjectionToken('SocketUrl');
210
-
211
205
  class SocketService {
212
206
  constructor(socketUrl) {
213
207
  this.socketUrl = socketUrl;
@@ -282,10 +276,10 @@ class SocketService {
282
276
  });
283
277
  });
284
278
  }
285
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SocketService, deps: [{ token: SOCKET_URL }], target: i0.ɵɵFactoryTarget.Injectable }); }
286
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SocketService, providedIn: 'root' }); }
279
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: SocketService, deps: [{ token: SOCKET_URL }], target: i0.ɵɵFactoryTarget.Injectable }); }
280
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: SocketService, providedIn: 'root' }); }
287
281
  }
288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SocketService, decorators: [{
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: SocketService, decorators: [{
289
283
  type: Injectable,
290
284
  args: [{
291
285
  providedIn: 'root'
@@ -353,6 +347,7 @@ Menu = __decorate([
353
347
  ], Menu);
354
348
 
355
349
  // import { Attribute, BaseModel, BaseModelConfig } from '@rosoftlab/core';
350
+ ;
356
351
  let Right = class Right extends BaseModel {
357
352
  };
358
353
  __decorate([
@@ -406,6 +401,7 @@ Right = __decorate([
406
401
  })
407
402
  ], Right);
408
403
 
404
+ ;
409
405
  let User = class User extends BaseModel {
410
406
  get fullName() {
411
407
  return this.firstName + ' ' + this.lastName;
@@ -453,10 +449,10 @@ class UserService extends BaseService {
453
449
  const response = this.datastore.findAll(Menu);
454
450
  return response;
455
451
  }
456
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserService, deps: [{ token: i1.DatastoreCore }], target: i0.ɵɵFactoryTarget.Injectable }); }
457
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserService, providedIn: 'root' }); }
452
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: UserService, deps: [{ token: i1.DatastoreCore }], target: i0.ɵɵFactoryTarget.Injectable }); }
453
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: UserService, providedIn: 'root' }); }
458
454
  }
459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserService, decorators: [{
455
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: UserService, decorators: [{
460
456
  type: Injectable,
461
457
  args: [{
462
458
  providedIn: 'root'
@@ -473,10 +469,10 @@ class WsAuthService {
473
469
  set Token(token) {
474
470
  this.token = token;
475
471
  }
476
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WsAuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
477
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WsAuthService, providedIn: 'root' }); }
472
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: WsAuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
473
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: WsAuthService, providedIn: 'root' }); }
478
474
  }
479
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WsAuthService, decorators: [{
475
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: WsAuthService, decorators: [{
480
476
  type: Injectable,
481
477
  args: [{
482
478
  providedIn: 'root'
@@ -559,12 +555,12 @@ class FullComponent {
559
555
  });
560
556
  return drawerItems;
561
557
  }
562
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FullComponent, deps: [{ token: UserService }, { token: i1$1.Router }, { token: SocketService }, { token: i2.TranslateService }, { token: WsAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
563
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: FullComponent, isStandalone: true, selector: "rdict-full", ngImport: i0, template: "<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>", styles: ["html,body,rdict-full{padding:0;height:100%}rdict-full{display:flex;flex-direction:column}kendo-drawer-container{flex:1 1 auto;overflow-y:auto}.k-icon{font-size:20px}.custom-toolbar{width:100%;background-color:#f6f6f6;line-height:10px;border-bottom:inset;border-bottom-width:1px;padding:3px 8px;color:#656565}.app-title{margin-left:20px;font-weight:700;font-size:17px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i4.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: ToolBarModule }, { kind: "ngmodule", type: LayoutModule }, { kind: "component", type: i5.DrawerComponent, selector: "kendo-drawer", inputs: ["mode", "position", "mini", "expanded", "width", "miniWidth", "autoCollapse", "items", "isItemExpanded", "animation"], outputs: ["expand", "collapse", "select", "expandedChange"], exportAs: ["kendoDrawer"] }, { kind: "component", type: i5.DrawerContainerComponent, selector: "kendo-drawer-container" }, { kind: "component", type: i5.DrawerContentComponent, selector: "kendo-drawer-content" }] }); }
558
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: FullComponent, deps: [{ token: UserService }, { token: i1$1.Router }, { token: SocketService }, { token: i2.TranslateService }, { token: WsAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
559
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: FullComponent, isStandalone: true, selector: "rdict-full", ngImport: i0, template: "<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>", styles: ["html,body,rdict-full{padding:0;height:100%}rdict-full{display:flex;flex-direction:column}kendo-drawer-container{flex:1 1 auto;overflow-y:auto}.k-icon{font-size:20px}.custom-toolbar{width:100%;background-color:#f6f6f6;line-height:10px;border-bottom:inset;border-bottom-width:1px;padding:3px 8px;color:#656565}.app-title{margin-left:20px;font-weight:700;font-size:17px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i4.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: ToolBarModule }, { kind: "ngmodule", type: LayoutModule }, { kind: "component", type: i5.DrawerComponent, selector: "kendo-drawer", inputs: ["mode", "position", "mini", "expanded", "width", "miniWidth", "autoCollapse", "items", "isItemExpanded", "animation"], outputs: ["expand", "collapse", "select", "expandedChange"], exportAs: ["kendoDrawer"] }, { kind: "component", type: i5.DrawerContainerComponent, selector: "kendo-drawer-container" }, { kind: "component", type: i5.DrawerContentComponent, selector: "kendo-drawer-content" }] }); }
564
560
  }
565
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FullComponent, decorators: [{
561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: FullComponent, decorators: [{
566
562
  type: Component,
567
- args: [{ selector: 'rdict-full', standalone: true, imports: [
563
+ args: [{ selector: 'rdict-full', imports: [
568
564
  CommonModule,
569
565
  RouterModule,
570
566
  TranslateModule,
@@ -598,12 +594,12 @@ class RdictCrudComponent {
598
594
  }
599
595
  onSubmit(model) {
600
596
  }
601
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RdictCrudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
602
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: RdictCrudComponent, isStandalone: true, selector: "app-rdict-crud", ngImport: i0, template: "<form [formGroup]=\"baseForm\" (ngSubmit)=\"onSubmit(model)\">\n <formly-form [form]=\"baseForm\" [fields]=\"fields\" [model]=\"model\" [options]=\"options\"></formly-form>\n</form>", styles: [""], dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$2.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyKendoModule }, { kind: "ngmodule", type: TranslateModule }] }); }
597
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: RdictCrudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
598
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: RdictCrudComponent, isStandalone: true, selector: "app-rdict-crud", ngImport: i0, template: "<form [formGroup]=\"baseForm\" (ngSubmit)=\"onSubmit(model)\">\n <formly-form [form]=\"baseForm\" [fields]=\"fields\" [model]=\"model\" [options]=\"options\"></formly-form>\n</form>", styles: [""], dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$2.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyKendoModule }, { kind: "ngmodule", type: TranslateModule }] }); }
603
599
  }
604
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RdictCrudComponent, decorators: [{
600
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: RdictCrudComponent, decorators: [{
605
601
  type: Component,
606
- args: [{ standalone: true, selector: 'app-rdict-crud', imports: [
602
+ args: [{ selector: 'app-rdict-crud', imports: [
607
603
  FormlyModule,
608
604
  ReactiveFormsModule,
609
605
  FormlyKendoModule,
@@ -616,14 +612,14 @@ class RdictTableTitle extends ToolBarToolComponent {
616
612
  super();
617
613
  this.tabindex = -1;
618
614
  }
619
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RdictTableTitle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
620
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: RdictTableTitle, isStandalone: true, selector: "table-title", inputs: { text: "text" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => RdictTableTitle) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
615
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: RdictTableTitle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
616
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: RdictTableTitle, isStandalone: true, selector: "table-title", inputs: { text: "text" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => RdictTableTitle) }], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
621
617
  <ng-template #toolbarTemplate>
622
618
  <kendo-label>{{text}}</kendo-label>
623
619
  </ng-template>
624
620
  `, isInline: true }); }
625
621
  }
626
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RdictTableTitle, decorators: [{
622
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: RdictTableTitle, decorators: [{
627
623
  type: Component,
628
624
  args: [{
629
625
  providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => RdictTableTitle) }],
@@ -666,8 +662,8 @@ class GenericRdictTableComponent {
666
662
  this.columns = [];
667
663
  this.tableLayout = {};
668
664
  this.allColumns = [];
669
- this.ColumnMode = ColumnMode;
670
- this.SelectionType = SelectionType;
665
+ // ColumnMode = ColumnMode;
666
+ // SelectionType = SelectionType;
671
667
  this.headerHeight = 50;
672
668
  this.rowHeight = 50;
673
669
  }
@@ -842,15 +838,15 @@ class GenericRdictTableComponent {
842
838
  // this.editDataItem = new Product();
843
839
  // this.isNew = true;
844
840
  }
845
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: GenericRdictTableComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: i2.TranslateService }, { token: i0.Injector }, { token: SocketService }, { token: WsAuthService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
846
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: GenericRdictTableComponent, isStandalone: true, selector: "rsl-rdict-generic-table", inputs: { showSerach: "showSerach", searchFields: "searchFields", customInclude: "customInclude", defaultSort: "defaultSort", defaultSortDirection: "defaultSortDirection", deletePropertyName: "deletePropertyName", defaultFilter: "defaultFilter", showHeader: "showHeader", hasAdd: "hasAdd", canDelete: "canDelete", canEdit: "canEdit", editOnClick: "editOnClick", editOnDblClick: "editOnDblClick" }, outputs: { selectedObject: "selectedObject", click: "click", editModel: "editModel" }, providers: [], viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "filter", first: true, predicate: ElementRef, descendants: true }], ngImport: i0, template: "<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>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
841
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: GenericRdictTableComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: i2.TranslateService }, { token: i0.Injector }, { token: SocketService }, { token: WsAuthService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
842
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: GenericRdictTableComponent, isStandalone: true, selector: "rsl-rdict-generic-table", inputs: { showSerach: "showSerach", searchFields: "searchFields", customInclude: "customInclude", defaultSort: "defaultSort", deletePropertyName: "deletePropertyName", defaultFilter: "defaultFilter", showHeader: "showHeader", hasAdd: "hasAdd", canDelete: "canDelete", canEdit: "canEdit", editOnClick: "editOnClick", editOnDblClick: "editOnDblClick" }, outputs: { selectedObject: "selectedObject", click: "click", editModel: "editModel" }, providers: [], viewQueries: [{ propertyName: "filter", first: true, predicate: ElementRef, descendants: true }], ngImport: i0, template: "<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>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
847
843
  // MatPaginatorModule,
848
844
  // MatTableModule,
849
845
  TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: i6.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "component", type: i6.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i6.AddCommandToolbarDirective, selector: "[kendoGridAddTool]" }, { kind: "component", type: i7.ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "fillMode", "tabindex", "size", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { kind: "component", type: i7.ToolbarCustomMessagesComponent, selector: "kendo-toolbar-messages" }, { kind: "component", type: i7.ToolBarButtonComponent, selector: "kendo-toolbar-button", inputs: ["showText", "showIcon", "text", "style", "className", "title", "disabled", "toggleable", "look", "togglable", "selected", "fillMode", "themeColor", "icon", "iconClass", "svgIcon", "imageUrl"], outputs: ["click", "pointerdown", "selectedChange"], exportAs: ["kendoToolBarButton"] }, { kind: "component", type: i7.ToolBarSpacerComponent, selector: "kendo-toolbar-spacer", exportAs: ["kendoToolBarSpacer"] }, { kind: "component", type: RdictTableTitle, selector: "table-title", inputs: ["text"] }], encapsulation: i0.ViewEncapsulation.None }); }
850
846
  }
851
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: GenericRdictTableComponent, decorators: [{
847
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: GenericRdictTableComponent, decorators: [{
852
848
  type: Component,
853
- args: [{ selector: 'rsl-rdict-generic-table', encapsulation: ViewEncapsulation.None, standalone: true, imports: [
849
+ args: [{ selector: 'rsl-rdict-generic-table', encapsulation: ViewEncapsulation.None, imports: [
854
850
  CommonModule,
855
851
  RouterModule,
856
852
  // MatPaginatorModule,
@@ -869,8 +865,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
869
865
  type: Input
870
866
  }], defaultSort: [{
871
867
  type: Input
872
- }], defaultSortDirection: [{
873
- type: Input
874
868
  }], deletePropertyName: [{
875
869
  type: Input
876
870
  }], defaultFilter: [{
@@ -887,12 +881,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
887
881
  type: Input
888
882
  }], editOnDblClick: [{
889
883
  type: Input
890
- }], paginator: [{
891
- type: ViewChild,
892
- args: [MatPaginator, { static: true }]
893
- }], sort: [{
894
- type: ViewChild,
895
- args: [MatSort, { static: true }]
896
884
  }], filter: [{
897
885
  type: ViewChild,
898
886
  args: [ElementRef, { static: false }]
@@ -904,6 +892,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
904
892
  type: Output
905
893
  }] } });
906
894
 
895
+ // projects/my-library/src/lib/socket-config.token.ts
896
+ const SOCKET_URL = new InjectionToken('SocketUrl');
897
+
907
898
  /*
908
899
  * Public API Surface of rdict
909
900
  */
@@ -1 +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/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 \"@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 \"@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 \"@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 \"@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>","/*\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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"}
1
+ {"version":3,"file":"rosoftlab-rdict.mjs","sources":["../../../../projects/rosoftlab/rdict/src/lib/reactive-dictionary.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/socket-config.token.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","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 '../core';\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 '@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 '@rosoftlab/core';\r\n;\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 '@rosoftlab/core';\r\n;\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 \"@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 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 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 { 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';\n// import { ColumnMode, SelectionType, SortDirection } 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 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})\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(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>","// 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","/*\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","i5"],"mappings":"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"}