@mediusinc/mng-commons 0.2.8 → 0.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +46 -0
  2. package/assets/i18n/en.json +202 -151
  3. package/assets/i18n/sl.json +202 -151
  4. package/esm2020/lib/api/utils/object-serializer.util.mjs +12 -7
  5. package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +2 -2
  6. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +2 -4
  7. package/esm2020/lib/components/form/editor/form-editor.component.mjs +1 -1
  8. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +3 -3
  9. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +9 -8
  10. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
  11. package/esm2020/lib/components/layout/menu-item.component.mjs +59 -17
  12. package/esm2020/lib/components/tableview/services/tableview.component.service.mjs +1 -1
  13. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +3 -3
  14. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +2 -1
  15. package/esm2020/lib/components/tableview/table/table.component.mjs +5 -4
  16. package/esm2020/lib/components/tableview/tableview.component.mjs +1 -1
  17. package/esm2020/lib/config/formly.config.mjs +10 -1
  18. package/esm2020/lib/data-providers/base.data-provider.mjs +1 -8
  19. package/esm2020/lib/descriptors/editor.descriptor.mjs +113 -66
  20. package/esm2020/lib/descriptors/table.descriptor.mjs +130 -42
  21. package/esm2020/lib/descriptors/tableview.descriptor.mjs +9 -6
  22. package/esm2020/lib/mng-commons.module.mjs +8 -2
  23. package/esm2020/lib/models/enum.model.mjs +2 -0
  24. package/esm2020/lib/models/index.mjs +3 -1
  25. package/esm2020/lib/models/menu.model.mjs +2 -0
  26. package/esm2020/lib/pipes/enum.pipe.mjs +22 -0
  27. package/esm2020/lib/pipes/i18n-property.pipe.mjs +18 -0
  28. package/esm2020/lib/pipes/index.mjs +3 -1
  29. package/esm2020/lib/router/route-builder.mjs +86 -17
  30. package/esm2020/lib/services/commons.service.mjs +1 -1
  31. package/esm2020/lib/types/type.decorator.mjs +7 -1
  32. package/esm2020/lib/types/type.model.mjs +1 -1
  33. package/esm2020/lib/utils/editor-formly.util.mjs +10 -1
  34. package/esm2020/lib/utils/enum.util.mjs +82 -0
  35. package/esm2020/lib/utils/i18n.util.mjs +38 -26
  36. package/esm2020/lib/utils/index.mjs +2 -1
  37. package/esm2020/lib/utils/type.util.mjs +39 -2
  38. package/esm2020/public-api.mjs +2 -1
  39. package/fesm2015/mediusinc-mng-commons.mjs +643 -197
  40. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  41. package/fesm2020/mediusinc-mng-commons.mjs +637 -196
  42. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  43. package/lib/api/utils/object-serializer.util.d.ts +1 -0
  44. package/lib/components/layout/menu-item.component.d.ts +13 -5
  45. package/lib/components/tableview/table/column-value/column-value.component.d.ts +1 -0
  46. package/lib/data-providers/base.data-provider.d.ts +0 -3
  47. package/lib/descriptors/editor.descriptor.d.ts +43 -28
  48. package/lib/descriptors/table.descriptor.d.ts +37 -16
  49. package/lib/descriptors/tableview.descriptor.d.ts +9 -8
  50. package/lib/mng-commons.module.d.ts +70 -68
  51. package/lib/models/enum.model.d.ts +5 -0
  52. package/lib/models/index.d.ts +2 -0
  53. package/lib/models/menu.model.d.ts +25 -0
  54. package/lib/pipes/enum.pipe.d.ts +7 -0
  55. package/lib/pipes/i18n-property.pipe.d.ts +8 -0
  56. package/lib/pipes/index.d.ts +2 -0
  57. package/lib/router/route-builder.d.ts +9 -5
  58. package/lib/services/commons.service.d.ts +6 -6
  59. package/lib/types/type.decorator.d.ts +2 -0
  60. package/lib/types/type.model.d.ts +2 -2
  61. package/lib/utils/enum.util.d.ts +50 -0
  62. package/lib/utils/i18n.util.d.ts +6 -2
  63. package/lib/utils/index.d.ts +1 -0
  64. package/lib/utils/type.util.d.ts +22 -1
  65. package/package.json +2 -2
  66. package/public-api.d.ts +1 -0
  67. package/scss/mng-overrides/_layout_forms.scss +5 -0
@@ -5,77 +5,79 @@ import * as i0 from "@angular/core";
5
5
  import * as i1 from "./directives/component.directive";
6
6
  import * as i2 from "./directives/template.directive";
7
7
  import * as i3 from "./pipes/property-path.pipe";
8
- import * as i4 from "./pipes/boolean.pipe";
9
- import * as i5 from "./components/layout/breadcrumb.component";
10
- import * as i6 from "./components/layout/footer.component";
11
- import * as i7 from "./components/layout/main-layout.component";
12
- import * as i8 from "./components/layout/menu.component";
13
- import * as i9 from "./components/layout/menu-item.component";
14
- import * as i10 from "./components/layout/topbar.component";
15
- import * as i11 from "./components/form/autocomplete/autocomplete.component";
16
- import * as i12 from "./components/form/dropdown/dropdown.component";
17
- import * as i13 from "./components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component";
18
- import * as i14 from "./components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component";
19
- import * as i15 from "./components/form/formly/fields/formly-field-input/formly-field-input.component";
20
- import * as i16 from "./components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component";
21
- import * as i17 from "./components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component";
22
- import * as i18 from "./components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component";
23
- import * as i19 from "./components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component";
24
- import * as i20 from "./components/form/formly/fields/formly-field-tabs/formly-field-tabs.component";
25
- import * as i21 from "./components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component";
26
- import * as i22 from "./components/tableview/table/table.component";
27
- import * as i23 from "./components/tableview/tableview.component";
28
- import * as i24 from "./components/tableview/table/column-value/column-value.component";
29
- import * as i25 from "./components/tableview/table/column-filter/column-filter.component";
30
- import * as i26 from "./components/tableview/route/tableview-route.component";
31
- import * as i27 from "./components/form/editor/form-editor.component";
32
- import * as i28 from "./components/action/action.component";
33
- import * as i29 from "./components/action/dialog/action-dialog.component";
34
- import * as i30 from "./components/action/route/action-route.component";
35
- import * as i31 from "@angular/common";
36
- import * as i32 from "@angular/router";
37
- import * as i33 from "@angular/common/http";
38
- import * as i34 from "@angular/forms";
39
- import * as i35 from "@ngx-translate/core";
40
- import * as i36 from "@ngx-formly/core";
41
- import * as i37 from "primeng/autocomplete";
42
- import * as i38 from "primeng/breadcrumb";
43
- import * as i39 from "primeng/button";
44
- import * as i40 from "primeng/calendar";
45
- import * as i41 from "primeng/card";
46
- import * as i42 from "primeng/checkbox";
47
- import * as i43 from "primeng/chip";
48
- import * as i44 from "primeng/confirmdialog";
49
- import * as i45 from "primeng/confirmpopup";
50
- import * as i46 from "primeng/dialog";
51
- import * as i47 from "primeng/dynamicdialog";
52
- import * as i48 from "primeng/dropdown";
53
- import * as i49 from "primeng/fileupload";
54
- import * as i50 from "primeng/inputnumber";
55
- import * as i51 from "primeng/inputmask";
56
- import * as i52 from "primeng/inputswitch";
57
- import * as i53 from "primeng/inputtext";
58
- import * as i54 from "primeng/inputtextarea";
59
- import * as i55 from "primeng/paginator";
60
- import * as i56 from "primeng/radiobutton";
61
- import * as i57 from "primeng/ripple";
62
- import * as i58 from "primeng/selectbutton";
63
- import * as i59 from "primeng/table";
64
- import * as i60 from "primeng/tag";
65
- import * as i61 from "primeng/toast";
66
- import * as i62 from "primeng/togglebutton";
67
- import * as i63 from "primeng/toolbar";
68
- import * as i64 from "primeng/tooltip";
69
- import * as i65 from "primeng/messages";
70
- import * as i66 from "primeng/progressspinner";
71
- import * as i67 from "primeng/tabview";
72
- import * as i68 from "primeng/fieldset";
73
- import * as i69 from "primeng/multiselect";
74
- import * as i70 from "primeng/skeleton";
8
+ import * as i4 from "./pipes/enum.pipe";
9
+ import * as i5 from "./pipes/boolean.pipe";
10
+ import * as i6 from "./pipes/i18n-property.pipe";
11
+ import * as i7 from "./components/layout/breadcrumb.component";
12
+ import * as i8 from "./components/layout/footer.component";
13
+ import * as i9 from "./components/layout/main-layout.component";
14
+ import * as i10 from "./components/layout/menu.component";
15
+ import * as i11 from "./components/layout/menu-item.component";
16
+ import * as i12 from "./components/layout/topbar.component";
17
+ import * as i13 from "./components/form/autocomplete/autocomplete.component";
18
+ import * as i14 from "./components/form/dropdown/dropdown.component";
19
+ import * as i15 from "./components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component";
20
+ import * as i16 from "./components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component";
21
+ import * as i17 from "./components/form/formly/fields/formly-field-input/formly-field-input.component";
22
+ import * as i18 from "./components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component";
23
+ import * as i19 from "./components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component";
24
+ import * as i20 from "./components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component";
25
+ import * as i21 from "./components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component";
26
+ import * as i22 from "./components/form/formly/fields/formly-field-tabs/formly-field-tabs.component";
27
+ import * as i23 from "./components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component";
28
+ import * as i24 from "./components/tableview/table/table.component";
29
+ import * as i25 from "./components/tableview/tableview.component";
30
+ import * as i26 from "./components/tableview/table/column-value/column-value.component";
31
+ import * as i27 from "./components/tableview/table/column-filter/column-filter.component";
32
+ import * as i28 from "./components/tableview/route/tableview-route.component";
33
+ import * as i29 from "./components/form/editor/form-editor.component";
34
+ import * as i30 from "./components/action/action.component";
35
+ import * as i31 from "./components/action/dialog/action-dialog.component";
36
+ import * as i32 from "./components/action/route/action-route.component";
37
+ import * as i33 from "@angular/common";
38
+ import * as i34 from "@angular/router";
39
+ import * as i35 from "@angular/common/http";
40
+ import * as i36 from "@angular/forms";
41
+ import * as i37 from "@ngx-translate/core";
42
+ import * as i38 from "@ngx-formly/core";
43
+ import * as i39 from "primeng/autocomplete";
44
+ import * as i40 from "primeng/breadcrumb";
45
+ import * as i41 from "primeng/button";
46
+ import * as i42 from "primeng/calendar";
47
+ import * as i43 from "primeng/card";
48
+ import * as i44 from "primeng/checkbox";
49
+ import * as i45 from "primeng/chip";
50
+ import * as i46 from "primeng/confirmdialog";
51
+ import * as i47 from "primeng/confirmpopup";
52
+ import * as i48 from "primeng/dialog";
53
+ import * as i49 from "primeng/dynamicdialog";
54
+ import * as i50 from "primeng/dropdown";
55
+ import * as i51 from "primeng/fileupload";
56
+ import * as i52 from "primeng/inputnumber";
57
+ import * as i53 from "primeng/inputmask";
58
+ import * as i54 from "primeng/inputswitch";
59
+ import * as i55 from "primeng/inputtext";
60
+ import * as i56 from "primeng/inputtextarea";
61
+ import * as i57 from "primeng/paginator";
62
+ import * as i58 from "primeng/radiobutton";
63
+ import * as i59 from "primeng/ripple";
64
+ import * as i60 from "primeng/selectbutton";
65
+ import * as i61 from "primeng/table";
66
+ import * as i62 from "primeng/tag";
67
+ import * as i63 from "primeng/toast";
68
+ import * as i64 from "primeng/togglebutton";
69
+ import * as i65 from "primeng/toolbar";
70
+ import * as i66 from "primeng/tooltip";
71
+ import * as i67 from "primeng/messages";
72
+ import * as i68 from "primeng/progressspinner";
73
+ import * as i69 from "primeng/tabview";
74
+ import * as i70 from "primeng/fieldset";
75
+ import * as i71 from "primeng/multiselect";
76
+ import * as i72 from "primeng/skeleton";
75
77
  export declare const primeNgModules: (typeof InputTextModule)[];
76
78
  export declare class MngCommonsModule {
77
79
  static forRoot(config: MngModuleConfig): ModuleWithProviders<MngCommonsModule>;
78
80
  static ɵfac: i0.ɵɵFactoryDeclaration<MngCommonsModule, never>;
79
- static ɵmod: i0.ɵɵNgModuleDeclaration<MngCommonsModule, [typeof i1.MngComponentDirective, typeof i2.MngTemplateDirective, typeof i3.MngPropertyPathPipe, typeof i4.MngBooleanPipe, typeof i5.MngBreadcrumbComponent, typeof i6.MngFooterComponent, typeof i7.MngMainLayoutComponent, typeof i8.MngMenuComponent, typeof i9.MngMenuItemComponent, typeof i10.MngTopbarComponent, typeof i11.MngAutocompleteComponent, typeof i12.MngDropdownComponent, typeof i13.MngFormlyFieldWrapperComponent, typeof i14.MngFormlyTableWrapperComponent, typeof i15.MngFormlyFieldInputComponent, typeof i16.MngFormlyFieldDropdownComponent, typeof i17.MngFormlyFieldAutocompleteComponent, typeof i18.MngFormlyFieldTableDialogMultiselectComponent, typeof i19.MngFormlyFieldTableDialogFormComponent, typeof i20.MngFormlyFieldTabsComponent, typeof i21.MngFormlyFieldFieldsetComponent, typeof i22.MngTableComponent, typeof i23.MngTableviewComponent, typeof i24.MngTableColumnValueComponent, typeof i25.MngTableColumnFilterComponent, typeof i26.MngTableviewRouteComponent, typeof i27.MngFormEditorComponent, typeof i28.MngActionComponent, typeof i29.MngActionDialogComponent, typeof i30.MngActionRouteComponent], [typeof i31.CommonModule, typeof i32.RouterModule, typeof i33.HttpClientModule, typeof i34.ReactiveFormsModule, typeof i35.TranslateModule, typeof i36.FormlyModule, typeof i37.AutoCompleteModule, typeof i38.BreadcrumbModule, typeof i39.ButtonModule, typeof i40.CalendarModule, typeof i41.CardModule, typeof i42.CheckboxModule, typeof i43.ChipModule, typeof i44.ConfirmDialogModule, typeof i45.ConfirmPopupModule, typeof i46.DialogModule, typeof i47.DynamicDialogModule, typeof i48.DropdownModule, typeof i49.FileUploadModule, typeof i50.InputNumberModule, typeof i51.InputMaskModule, typeof i52.InputSwitchModule, typeof i53.InputTextModule, typeof i54.InputTextareaModule, typeof i55.PaginatorModule, typeof i56.RadioButtonModule, typeof i57.RippleModule, typeof i58.SelectButtonModule, typeof i59.TableModule, typeof i60.TagModule, typeof i61.ToastModule, typeof i62.ToggleButtonModule, typeof i63.ToolbarModule, typeof i64.TooltipModule, typeof i65.MessagesModule, typeof i66.ProgressSpinnerModule, typeof i67.TabViewModule, typeof i68.FieldsetModule, typeof i69.MultiSelectModule, typeof i70.SkeletonModule], [typeof i37.AutoCompleteModule, typeof i38.BreadcrumbModule, typeof i39.ButtonModule, typeof i40.CalendarModule, typeof i41.CardModule, typeof i42.CheckboxModule, typeof i43.ChipModule, typeof i44.ConfirmDialogModule, typeof i45.ConfirmPopupModule, typeof i46.DialogModule, typeof i47.DynamicDialogModule, typeof i48.DropdownModule, typeof i49.FileUploadModule, typeof i50.InputNumberModule, typeof i51.InputMaskModule, typeof i52.InputSwitchModule, typeof i53.InputTextModule, typeof i54.InputTextareaModule, typeof i55.PaginatorModule, typeof i56.RadioButtonModule, typeof i57.RippleModule, typeof i58.SelectButtonModule, typeof i59.TableModule, typeof i60.TagModule, typeof i61.ToastModule, typeof i62.ToggleButtonModule, typeof i63.ToolbarModule, typeof i64.TooltipModule, typeof i65.MessagesModule, typeof i66.ProgressSpinnerModule, typeof i67.TabViewModule, typeof i68.FieldsetModule, typeof i69.MultiSelectModule, typeof i70.SkeletonModule, typeof i1.MngComponentDirective, typeof i2.MngTemplateDirective, typeof i3.MngPropertyPathPipe, typeof i4.MngBooleanPipe, typeof i5.MngBreadcrumbComponent, typeof i6.MngFooterComponent, typeof i7.MngMainLayoutComponent, typeof i8.MngMenuComponent, typeof i9.MngMenuItemComponent, typeof i10.MngTopbarComponent, typeof i11.MngAutocompleteComponent, typeof i12.MngDropdownComponent, typeof i13.MngFormlyFieldWrapperComponent, typeof i14.MngFormlyTableWrapperComponent, typeof i15.MngFormlyFieldInputComponent, typeof i16.MngFormlyFieldDropdownComponent, typeof i17.MngFormlyFieldAutocompleteComponent, typeof i18.MngFormlyFieldTableDialogMultiselectComponent, typeof i19.MngFormlyFieldTableDialogFormComponent, typeof i20.MngFormlyFieldTabsComponent, typeof i21.MngFormlyFieldFieldsetComponent, typeof i22.MngTableComponent, typeof i23.MngTableviewComponent, typeof i24.MngTableColumnValueComponent, typeof i25.MngTableColumnFilterComponent, typeof i26.MngTableviewRouteComponent, typeof i27.MngFormEditorComponent, typeof i28.MngActionComponent, typeof i29.MngActionDialogComponent, typeof i30.MngActionRouteComponent]>;
81
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MngCommonsModule, [typeof i1.MngComponentDirective, typeof i2.MngTemplateDirective, typeof i3.MngPropertyPathPipe, typeof i4.MngEnumPipe, typeof i5.MngBooleanPipe, typeof i6.MngI18nPropertyPipe, typeof i7.MngBreadcrumbComponent, typeof i8.MngFooterComponent, typeof i9.MngMainLayoutComponent, typeof i10.MngMenuComponent, typeof i11.MngMenuItemComponent, typeof i12.MngTopbarComponent, typeof i13.MngAutocompleteComponent, typeof i14.MngDropdownComponent, typeof i15.MngFormlyFieldWrapperComponent, typeof i16.MngFormlyTableWrapperComponent, typeof i17.MngFormlyFieldInputComponent, typeof i18.MngFormlyFieldDropdownComponent, typeof i19.MngFormlyFieldAutocompleteComponent, typeof i20.MngFormlyFieldTableDialogMultiselectComponent, typeof i21.MngFormlyFieldTableDialogFormComponent, typeof i22.MngFormlyFieldTabsComponent, typeof i23.MngFormlyFieldFieldsetComponent, typeof i24.MngTableComponent, typeof i25.MngTableviewComponent, typeof i26.MngTableColumnValueComponent, typeof i27.MngTableColumnFilterComponent, typeof i28.MngTableviewRouteComponent, typeof i29.MngFormEditorComponent, typeof i30.MngActionComponent, typeof i31.MngActionDialogComponent, typeof i32.MngActionRouteComponent], [typeof i33.CommonModule, typeof i34.RouterModule, typeof i35.HttpClientModule, typeof i36.ReactiveFormsModule, typeof i37.TranslateModule, typeof i38.FormlyModule, typeof i39.AutoCompleteModule, typeof i40.BreadcrumbModule, typeof i41.ButtonModule, typeof i42.CalendarModule, typeof i43.CardModule, typeof i44.CheckboxModule, typeof i45.ChipModule, typeof i46.ConfirmDialogModule, typeof i47.ConfirmPopupModule, typeof i48.DialogModule, typeof i49.DynamicDialogModule, typeof i50.DropdownModule, typeof i51.FileUploadModule, typeof i52.InputNumberModule, typeof i53.InputMaskModule, typeof i54.InputSwitchModule, typeof i55.InputTextModule, typeof i56.InputTextareaModule, typeof i57.PaginatorModule, typeof i58.RadioButtonModule, typeof i59.RippleModule, typeof i60.SelectButtonModule, typeof i61.TableModule, typeof i62.TagModule, typeof i63.ToastModule, typeof i64.ToggleButtonModule, typeof i65.ToolbarModule, typeof i66.TooltipModule, typeof i67.MessagesModule, typeof i68.ProgressSpinnerModule, typeof i69.TabViewModule, typeof i70.FieldsetModule, typeof i71.MultiSelectModule, typeof i72.SkeletonModule], [typeof i39.AutoCompleteModule, typeof i40.BreadcrumbModule, typeof i41.ButtonModule, typeof i42.CalendarModule, typeof i43.CardModule, typeof i44.CheckboxModule, typeof i45.ChipModule, typeof i46.ConfirmDialogModule, typeof i47.ConfirmPopupModule, typeof i48.DialogModule, typeof i49.DynamicDialogModule, typeof i50.DropdownModule, typeof i51.FileUploadModule, typeof i52.InputNumberModule, typeof i53.InputMaskModule, typeof i54.InputSwitchModule, typeof i55.InputTextModule, typeof i56.InputTextareaModule, typeof i57.PaginatorModule, typeof i58.RadioButtonModule, typeof i59.RippleModule, typeof i60.SelectButtonModule, typeof i61.TableModule, typeof i62.TagModule, typeof i63.ToastModule, typeof i64.ToggleButtonModule, typeof i65.ToolbarModule, typeof i66.TooltipModule, typeof i67.MessagesModule, typeof i68.ProgressSpinnerModule, typeof i69.TabViewModule, typeof i70.FieldsetModule, typeof i71.MultiSelectModule, typeof i72.SkeletonModule, typeof i1.MngComponentDirective, typeof i2.MngTemplateDirective, typeof i3.MngPropertyPathPipe, typeof i4.MngEnumPipe, typeof i5.MngBooleanPipe, typeof i6.MngI18nPropertyPipe, typeof i7.MngBreadcrumbComponent, typeof i8.MngFooterComponent, typeof i9.MngMainLayoutComponent, typeof i10.MngMenuComponent, typeof i11.MngMenuItemComponent, typeof i12.MngTopbarComponent, typeof i13.MngAutocompleteComponent, typeof i14.MngDropdownComponent, typeof i15.MngFormlyFieldWrapperComponent, typeof i16.MngFormlyTableWrapperComponent, typeof i17.MngFormlyFieldInputComponent, typeof i18.MngFormlyFieldDropdownComponent, typeof i19.MngFormlyFieldAutocompleteComponent, typeof i20.MngFormlyFieldTableDialogMultiselectComponent, typeof i21.MngFormlyFieldTableDialogFormComponent, typeof i22.MngFormlyFieldTabsComponent, typeof i23.MngFormlyFieldFieldsetComponent, typeof i24.MngTableComponent, typeof i25.MngTableviewComponent, typeof i26.MngTableColumnValueComponent, typeof i27.MngTableColumnFilterComponent, typeof i28.MngTableviewRouteComponent, typeof i29.MngFormEditorComponent, typeof i30.MngActionComponent, typeof i31.MngActionDialogComponent, typeof i32.MngActionRouteComponent]>;
80
82
  static ɵinj: i0.ɵɵInjectorDeclaration<MngCommonsModule>;
81
83
  }
@@ -0,0 +1,5 @@
1
+ export interface EnumValue<T> {
2
+ name?: string;
3
+ value: T;
4
+ title: string;
5
+ }
@@ -1 +1,3 @@
1
+ export * from './enum.model';
2
+ export * from './menu.model';
1
3
  export * from './user.model';
@@ -0,0 +1,25 @@
1
+ import { QueryParamsHandling } from '@angular/router';
2
+ export interface MngMenuItem {
3
+ title?: string;
4
+ label?: string;
5
+ icon?: string;
6
+ items?: Array<MngMenuItem>;
7
+ guards?: Array<any>;
8
+ separator?: boolean;
9
+ className?: string;
10
+ badge?: string;
11
+ badgeClassName?: string;
12
+ visible?: boolean;
13
+ disabled?: boolean;
14
+ routerLink?: string | Array<string>;
15
+ href?: string;
16
+ target?: string;
17
+ queryParams?: {
18
+ [k: string]: any;
19
+ };
20
+ fragment?: string;
21
+ queryParamsHandling?: QueryParamsHandling;
22
+ preserveFragment?: boolean;
23
+ skipLocationChange?: boolean;
24
+ replaceUrl?: boolean;
25
+ }
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class MngEnumPipe implements PipeTransform {
4
+ transform(value: string | number, enumObj: any, i18nPath?: string | null, nameAsValue?: boolean): any;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<MngEnumPipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<MngEnumPipe, "enum">;
7
+ }
@@ -0,0 +1,8 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { ModelDescriptor } from '../descriptors';
3
+ import * as i0 from "@angular/core";
4
+ export declare class MngI18nPropertyPipe implements PipeTransform {
5
+ transform(property: string, model: ModelDescriptor<any>): any;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<MngI18nPropertyPipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<MngI18nPropertyPipe, "i18nProperty">;
8
+ }
@@ -1,2 +1,4 @@
1
1
  export * from './boolean.pipe';
2
+ export * from './enum.pipe';
3
+ export * from './i18n-property.pipe';
2
4
  export * from './property-path.pipe';
@@ -1,9 +1,9 @@
1
1
  import { Type } from '@angular/core';
2
2
  import { LoadChildren, Route, Routes } from '@angular/router';
3
- import { MenuItem } from 'primeng/api';
4
3
  import { MngMainLayoutComponent } from '../components/layout';
5
4
  import { ITableviewDataProvider } from '../data-providers';
6
5
  import { ActionDescriptor, TableviewDescriptor } from '../descriptors';
6
+ import { MngMenuItem } from '../models';
7
7
  import { BreadcrumbType } from './models';
8
8
  export declare class RoutesBuilder {
9
9
  private readonly layoutRoute?;
@@ -14,14 +14,14 @@ export declare class RoutesBuilder {
14
14
  static createWithLayout(layoutComponent?: typeof MngMainLayoutComponent): RoutesBuilder;
15
15
  addAngularRoute(route: Route): this;
16
16
  addRouteRedirect(path: string, redirectTo: string, pathMatch?: 'full' | 'prefix'): this;
17
- addLazyRoute(path: string, loadChildren: LoadChildren): this;
17
+ addLazyRoute(path: string, loadChildren: LoadChildren, canLoad?: Array<any>): this;
18
18
  addRoute(path: string, component: Type<any>): this;
19
19
  addTableviewRoutes<T, S>(path: string, descriptor: TableviewDescriptor<T>, tableviewDataProvider: ITableviewDataProvider<T, S>, actions?: Array<ActionDescriptor<T>>, hasDetails?: boolean, hasEdit?: boolean, hasAdd?: boolean): this;
20
20
  addTableviewRoutesFromComponent(path: string, component: Type<any>, hasDetails?: boolean, hasEdit?: boolean, hasAdd?: boolean): this;
21
21
  addRouteBuilder(routeBuilder: RouteBuilder): this;
22
22
  toRoute(): RouteBuilder;
23
23
  buildRoutes(): Routes;
24
- buildMenu(): Array<MenuItem>;
24
+ buildMenu(): Array<MngMenuItem>;
25
25
  }
26
26
  export declare class RouteBuilder {
27
27
  private readonly route;
@@ -47,8 +47,11 @@ export declare class RouteBuilder {
47
47
  withRedirectTo(redirectTo: string): this;
48
48
  withPathMatch(pathMatch: 'full' | 'prefix'): this;
49
49
  withTitle(title: string): this;
50
+ withCanActivate(diToken: any): this;
51
+ withCanDeactivate(diToken: any): this;
52
+ withResolver(diToken: any, name: string): this;
50
53
  withData(data: any): this;
51
- withPrimeMenuItem(menuItem: MenuItem): this;
54
+ withMngMenuItem(menuItem: MngMenuItem): this;
52
55
  withMenuItem(icon?: string, label?: string, routerLink?: Array<string>): this;
53
56
  withMenuItemChild(label: string, icon?: string, routerLink?: Array<string>): this;
54
57
  withMenuItemChildren(routesBuilder: RoutesBuilder): this;
@@ -60,7 +63,8 @@ export declare class RouteBuilder {
60
63
  toRoot(): RoutesBuilder;
61
64
  finish(): RoutesBuilder;
62
65
  buildRoute(): Route;
63
- buildMenu(): Array<MenuItem>;
66
+ buildMenu(): Array<MngMenuItem>;
64
67
  private createMenuItem;
65
68
  private adjustMenuRouterLinksFromBuilder;
69
+ private findMenuItemGuards;
66
70
  }
@@ -1,10 +1,10 @@
1
1
  import { Title } from '@angular/platform-browser';
2
2
  import { Router } from '@angular/router';
3
3
  import { TranslateService } from '@ngx-translate/core';
4
- import { MenuItem, PrimeNGConfig } from 'primeng/api';
4
+ import { PrimeNGConfig } from 'primeng/api';
5
5
  import { Observable } from 'rxjs';
6
6
  import { MngModuleConfig } from '../config/models';
7
- import { IUser } from '../models';
7
+ import { IUser, MngMenuItem } from '../models';
8
8
  import { MngConfigurationService } from './configuration.service';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class MngCommonsService {
@@ -48,11 +48,11 @@ export declare class MngCommonsService {
48
48
  get menuModeIsSidebar$(): Observable<boolean>;
49
49
  get menuActiveKey$(): Observable<string>;
50
50
  get menuReset$(): Observable<any>;
51
- get menuItems(): MenuItem[];
52
- set menuItems(menuItems: MenuItem[]);
51
+ get menuItems(): MngMenuItem[];
52
+ set menuItems(menuItems: MngMenuItem[]);
53
53
  get menuPinEnabled(): boolean;
54
- get breadcrumbHome$(): Observable<MenuItem | null>;
55
- get breadcrumbs$(): Observable<MenuItem[]>;
54
+ get breadcrumbHome$(): Observable<MngMenuItem | null>;
55
+ get breadcrumbs$(): Observable<MngMenuItem[]>;
56
56
  get colorSchemeIsLight(): boolean;
57
57
  get colorSchemeIsDark(): boolean;
58
58
  get user(): IUser | undefined;
@@ -1,2 +1,4 @@
1
1
  export declare const typeNameDecoratorPropertyName = "typeName";
2
2
  export declare function TypeName(typeName: string): ClassDecorator;
3
+ export declare const enumNameDecoratorPropertyName = "enumName";
4
+ export declare function EnumName(typeName: string): ClassDecorator;
@@ -2,9 +2,9 @@ export interface ClassType<T> extends Function {
2
2
  new (...args: any[]): T;
3
3
  }
4
4
  export interface EnumType {
5
- [key: number]: EnumMemberType;
5
+ [key: string]: EnumConstantType;
6
6
  }
7
- export declare type EnumMemberType = string | number;
7
+ export declare type EnumConstantType = string | number;
8
8
  export declare type IdType = number | string;
9
9
  export declare type PrimitiveType = string | boolean | number;
10
10
  export declare type PropertyType = PrimitiveType | Date | EnumType;
@@ -0,0 +1,50 @@
1
+ import { EnumValue } from '../models';
2
+ import { EnumConstantType, EnumType } from '../types';
3
+ export declare class EnumUtil {
4
+ /**
5
+ * Returns array of names for constants in enum.
6
+ * @param enumType Enum object.
7
+ */
8
+ static getConstantNames(enumType: EnumType): Array<string>;
9
+ /**
10
+ * Returns array of names for constants in enum.
11
+ * @param enumObj Enum object.
12
+ */
13
+ static getConstantNamesFromEnumObject(enumObj: object): Array<string>;
14
+ /**
15
+ * Returns array of string values for constants in enum.
16
+ * @param enumType Enum object.
17
+ */
18
+ static getConstantValuesAsString(enumType: EnumType): Array<string>;
19
+ /**
20
+ * Returns array of number values for constants in enum.
21
+ * @param enumType Enum object.
22
+ */
23
+ static getConstantValuesAsNumber(enumType: EnumType): Array<number>;
24
+ /**
25
+ * Returns array of type EnumValue for all constants in enum.
26
+ * @param enumType Enum object.
27
+ * @param nameAsValue If use name of constant as value (optional, default: false).
28
+ * @param titlePath Base path for title to use as translation (optional).
29
+ */
30
+ static fromConstantsAsEnumValueArray(enumType: EnumType, nameAsValue?: boolean, titlePath?: string): EnumValue<string | number>[];
31
+ /**
32
+ * Returns array of type EnumValue for provided values in enum.
33
+ * @param enumType Enum object.
34
+ * @param nameAsValue If use name of constant as value (optional, default: false).
35
+ * @param titlePath Base path for title to use as translation (optional).
36
+ */
37
+ static fromValuesAsEnumValueArray(enumType: EnumType, values: Array<EnumConstantType>, nameAsValue?: boolean, titlePath?: string): EnumValue<string | number>[];
38
+ /**
39
+ * Gets constant name for value.
40
+ * @param enumType Enum object.
41
+ * @param value Value of enum constant.
42
+ */
43
+ static getConstantName(enumType: EnumType, value: EnumConstantType): string | null;
44
+ /**
45
+ * Gets constant name for value.
46
+ * @param enumObj Enum object.
47
+ * @param value Value of enum constant.
48
+ */
49
+ static getConstantNameFromEnumObject(enumObj: object, value: EnumConstantType): string | null;
50
+ }
@@ -3,16 +3,20 @@ import { Observable } from 'rxjs';
3
3
  import { ActionDescriptor, ModelDescriptor } from '../descriptors';
4
4
  export declare class I18nUtil {
5
5
  static instantModelTranslation(translate: TranslateService, model: ModelDescriptor<any>, keyPath: string, customKey?: string, item?: any, fallbackKey?: string, i18nParams?: any): string | null;
6
+ static getModelTabKey(model: ModelDescriptor<any>, tab: string): string;
7
+ static getModelGroupKey(model: ModelDescriptor<any>, group: string): string;
8
+ static getModelPropertyKey(model: ModelDescriptor<any>, property: string): string;
6
9
  static instantActionTranslation(translate: TranslateService, action: ActionDescriptor<any>, keyPath: string, customKey?: string, item?: any, fallbackKey?: string, functionNameKey?: string, i18nParams?: any): string | null;
7
10
  static streamActionTranslation(translate: TranslateService, action: ActionDescriptor<any>, keyPath: string, customKey?: string, item?: any, fallbackKey?: string): Observable<string | null>;
8
11
  static getActionTranslation(translate: TranslateService, action: ActionDescriptor<any>, keyPath: string, customKey?: string, item?: any, fallbackKey?: string, oneTime?: boolean): Observable<string | null>;
9
- private static getModelKeysByPriority;
10
- private static getActionKeysByPriority;
11
12
  static getModelI18nParams(model: ModelDescriptor<any>, item: any, i18nModelName?: string, i18nParameters?: any): any;
12
13
  static getActionI18nParams(action: ActionDescriptor<any>, item: any, i18nModelName?: string, i18nParameters?: any, functionTitle?: string): any;
13
14
  static instantModelName(translate: TranslateService, model: ModelDescriptor<any>, singular?: boolean): string | null;
14
15
  static getModelName(translate: TranslateService, model: ModelDescriptor<any>, oneTime?: boolean, singular?: boolean): Observable<string | null>;
15
16
  static getModelNameKeys(model: ModelDescriptor<any>, singular?: boolean): string[];
17
+ private static getModelKeysByPriority;
18
+ private static getModelKeyPath;
19
+ private static getActionKeysByPriority;
16
20
  private static selectKeyByPriority;
17
21
  private static getFunctionTitle;
18
22
  }
@@ -1,4 +1,5 @@
1
1
  export * from './editor-formly.util';
2
+ export * from './enum.util';
2
3
  export * from './i18n.util';
3
4
  export * from './model.util';
4
5
  export * from './toast.util';
@@ -1,15 +1,36 @@
1
1
  import 'reflect-metadata';
2
- import { ClassType } from '../types';
2
+ import { ClassType, EnumType } from '../types';
3
3
  export declare class TypeUtil {
4
+ /**
5
+ * Defines type name decorator.
6
+ * @param targetType class.
7
+ * @param typeName Name of the type.
8
+ */
4
9
  static defineReflectTypeName(targetType: ClassType<any>, typeName?: string): void;
10
+ /**
11
+ * Defines enum name decorator.
12
+ * @param targetType enum object.
13
+ * @param enumName Name of the enum.
14
+ */
15
+ static defineReflectEnumName(targetType: EnumType, enumName: string): void;
5
16
  /**
6
17
  * Gets type name from either decorator or reflect metadata.
7
18
  * @param type Class.
8
19
  */
9
20
  static findTypeName(type: ClassType<any>): string;
21
+ /**
22
+ * Gets enum name from either decorator or reflect metadata.
23
+ * @param enumType Class.
24
+ */
25
+ static findEnumName(enumType: EnumType): string;
10
26
  /**
11
27
  * Get value from decorator defined property name
12
28
  * @param type Class.
13
29
  */
14
30
  static getDecoratorTypeName(type: Function): string | undefined;
31
+ /**
32
+ * Get value from decorator defined property name
33
+ * @param type Enum object.
34
+ */
35
+ static getDecoratorEnumName(type: EnumType): string | undefined;
15
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mediusinc/mng-commons",
3
- "version": "0.2.8",
3
+ "version": "0.2.13",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.1.0",
6
6
  "@angular/core": "^13.1.0",
@@ -34,5 +34,5 @@
34
34
  }
35
35
  },
36
36
  "sideEffects": false,
37
- "readme": "# Angular Commons\n\nCommons knjižnica za izgradnjo uporabniškega vmesnika na ogrodju Angular.\n\n## Predhodne zahteve\n\n- Node.js (LTS v14) in npm\n- pnpm package manager (https://pnpm.io/), ki optimizira delovanje privzetega npm.\n- Zahtevane skupne odvisnosti (peer dependencies)\n - Angular (moduli `@angular/core`, `@angular/common`, `@angular/forms`, `@angular/router`) verzije `^13.1.0`\n - Ngx Formly (modul `@ngx-formly/core`) verzije `^6.0.0-next.6`\n - Ngx Translate (module `@ngx-translate/core`) verzije `^14.0.0`\n - PrimeNG (modul `primeng`) verzije `^13.0.0`\n\n## Namestitev\n\n```bash\npnpm i @mediusinc/mng-commons\n```\n\n## Lokalizacija (i18n)\n\nModul `ngx-translate` se konfigurira na končnem projektu in je na končnem projektu potrebno določiti način za load prevodov.\nPrimer konfiguracije za multi-module HTTP loader:\n\n- HTTP loader factory:\n```ts\nexport function i18nHttpLoaderFactory(http: HttpClient) {\n return new MultiTranslateHttpLoader(http, [\n {prefix: './assets/i18n/mng/', suffix: '.json'},\n {prefix: './assets/i18n/', suffix: '.json'}\n ]);\n}\n```\n\n- Konfiguracija v `AppModule`:\n```ts\nTranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: i18nHttpLoaderFactory,\n deps: [HttpClient]\n }\n})\n```\n\n- Definicijo jezikov podamo preko konfiguracije `MngCommonsModule`:\n```ts\nMngCommonsModule.forRoot({\n languages: ['en', 'sl']\n})\n```\n\nKnjižnica pakira tudi osnovne prevode, ki so del modula. Za vključitev na zgornji način je potrebno dodati naslednjo konfiguracijo v `angular.json` med `assets` nastavitve:\n```json\n{\n \"glob\": \"**/*\",\n \"input\": \"./node_modules/@mediusinc/mng-commons/assets/i18n\",\n \"output\": \"/assets/i18n/mng\"\n}\n```\n\n## Tema\n\nOpcijsko se vključi tudi tema MNG Commons, ki ima dve svetlo in temno varianto.\nZa vključitev se v stile na končnem projektu doda import v `style.scss`:\n\n```scss\n# Za svetlo temo:\n@import '~../node_modules/@mediusinc/mng-commons/scss/mng-commons-light';\n\n# Za temno temo:\n@import '~../node_modules/@mediusinc/mng-commons/scss/mng-commons-dark';\n```\n\n~~~~\nPrimarno se uporablja svetla tema!\n~~~~\n\nPri uporabi temne teme je potrebno dodatno nastaviti tudi `colorMode` v modulu:\n```ts\nMngCommonsModule.forRoot({\n app: {\n colorScheme: 'dark'\n }\n});\n```\n\nTema za svoje delovanje uporablja primeNG stile (za posamezne komponente) in PrimeFlex kot pomožno CSS knjižnico.\nDodatno se lahko na končnem projektu lahko uporabi še ikone PrimeIcons.\nGlede ne preference se opcijsko dodajo naslednji importi (**pred importom MNG commons teme!**):\n\n```scss\n@import '~../node_modules/primeng/resources/primeng.min.css';\n@import '~../node_modules/primeflex/primeflex.scss';\n@import '~../node_modules/primeicons/primeicons.css';\n```\n\nPri prvem importu ni potrebno namestiti dodatnih odvisnosti (je že vključeno z primeng), za drugi dve pa je potrebno namestiti:\n```bash\npnpm i primeflex\npnpm i primeicons\n```\n\nDodajanje MNG Commons slik v `assets` na končnem projektu se uredi z konfiguracijo v `assets` segmentu znotraj `angular.json`, kjer se doda:\n\n```json\n{\n \"glob\": \"**/*\",\n \"input\": \"./node_modules/@mediusinc/mng-commons/assets/images\",\n \"output\": \"/assets/images/mng\"\n}\n```\n\n"
37
+ "readme": "# Angular Commons\n\nCommons knjižnica za izgradnjo uporabniškega vmesnika na ogrodju Angular.\n\n## Predhodne zahteve\n\n- Node.js (LTS v14) in npm\n- pnpm package manager (https://pnpm.io/), ki optimizira delovanje privzetega npm.\n- Zahtevane skupne odvisnosti (peer dependencies)\n - Angular (moduli `@angular/core`, `@angular/common`, `@angular/forms`, `@angular/router`) verzije `^13.1.0`\n - Ngx Formly (modul `@ngx-formly/core`) verzije `^6.0.0-next.6`\n - Ngx Translate (module `@ngx-translate/core`) verzije `^14.0.0`\n - PrimeNG (modul `primeng`) verzije `^13.0.0`\n\n## Namestitev\n\n```bash\npnpm i @mediusinc/mng-commons\n```\n\n## Lokalizacija (i18n)\n\nModul `ngx-translate` se konfigurira na končnem projektu in je na končnem projektu potrebno določiti način za load prevodov.\nPrimer konfiguracije za multi-module HTTP loader:\n\n- HTTP loader factory:\n```ts\nexport function i18nHttpLoaderFactory(http: HttpClient) {\n return new MultiTranslateHttpLoader(http, [\n {prefix: './assets/i18n/mng/', suffix: '.json'},\n {prefix: './assets/i18n/', suffix: '.json'}\n ]);\n}\n```\n\n- Konfiguracija v `AppModule`:\n```ts\nTranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: i18nHttpLoaderFactory,\n deps: [HttpClient]\n }\n})\n```\n\n- Definicijo jezikov podamo preko konfiguracije `MngCommonsModule`:\n```ts\nMngCommonsModule.forRoot({\n languages: ['en', 'sl']\n})\n```\n\nKnjižnica pakira tudi osnovne prevode, ki so del modula. Za vključitev na zgornji način je potrebno dodati naslednjo konfiguracijo v `angular.json` med `assets` nastavitve:\n```json\n{\n \"glob\": \"**/*\",\n \"input\": \"./node_modules/@mediusinc/mng-commons/assets/i18n\",\n \"output\": \"/assets/i18n/mng\"\n}\n```\n\n## Tema\n\nOpcijsko se vključi tudi tema MNG Commons, ki ima dve svetlo in temno varianto.\nZa vključitev se v stile na končnem projektu doda import v `style.scss`:\n\n```scss\n# Za svetlo temo:\n@import '~../node_modules/@mediusinc/mng-commons/scss/mng-commons-light';\n\n# Za temno temo:\n@import '~../node_modules/@mediusinc/mng-commons/scss/mng-commons-dark';\n```\n\n~~~~\nPrimarno se uporablja svetla tema!\n~~~~\n\nPri uporabi temne teme je potrebno dodatno nastaviti tudi `colorMode` v modulu:\n```ts\nMngCommonsModule.forRoot({\n app: {\n colorScheme: 'dark'\n }\n});\n```\n\nTema za svoje delovanje uporablja primeNG stile (za posamezne komponente) in PrimeFlex kot pomožno CSS knjižnico.\nDodatno se lahko na končnem projektu lahko uporabi še ikone PrimeIcons.\nGlede ne preference se opcijsko dodajo naslednji importi (**pred importom MNG commons teme!**):\n\n```scss\n@import '~../node_modules/primeng/resources/primeng.min.css';\n@import '~../node_modules/primeflex/primeflex.scss';\n@import '~../node_modules/primeicons/primeicons.css';\n```\n\nPri prvem importu ni potrebno namestiti dodatnih odvisnosti (je že vključeno z primeng), za drugi dve pa je potrebno namestiti:\n```bash\npnpm i primeflex\npnpm i primeicons\n```\n\nDodajanje MNG Commons slik v `assets` na končnem projektu se uredi z konfiguracijo v `assets` segmentu znotraj `angular.json`, kjer se doda:\n\n```json\n{\n \"glob\": \"**/*\",\n \"input\": \"./node_modules/@mediusinc/mng-commons/assets/images\",\n \"output\": \"/assets/images/mng\"\n}\n```\n\n## Custom Formly validatorji\n\nValidatorje lahko dodajamo samostojno na polja, ali pa na skupine polj.\n\nDodajanje se v obeh primerih razlikuje.\n- validator na polje lahko dodamo preko polja, kjer mu podamo ime, funkcijo in sporočilo za validacijo.\n```typescript\nserviceChannelsTableviewDescriptor.addField('cost.code')\n .withValidator('codeValidator', control => control.value, (err, field) => 'error message');\n```\n- validator na skupine lahko dodamo preko\n```typescript\nserviceChannelsTableviewDescriptor.createFieldGroup('Service cost', 'ServiceChannelDto.fieldGroups.serviceCost')\n .withValidator('serviceCostAllOrNoneFieldsRequired', this.serviceCostAllOrNoneFieldsRequired);\n```\n\nKo dodajamo na grupe, moramo registrirati tudi globalno sporočilo za validacijo v `formly-translate.extension.ts`, kjer mora biti ime sporočila za validacijo enako kot napaka, ki jo nastavljamo v samem validatorju.\n```typescript\nexport function formlyConfigProvider(translate: TranslateService): ConfigOption {\n return {\n validationMessages: [\n { name: 'required', message: getRequiredValidationMessage(translate)},\n ...\n // naše sporočilo, ki se imenuje serviceCostAllOrNoneFieldsRequired\n { name: 'serviceCostAllOrNoneFieldsRequired', message: serviceCostAllOrNoneFieldsRequiredValidatorMessage(translate)}\n ],\n extras: { lazyRender: true },\n wrappers: formlyWrappersConfig,\n types: formlyTypesConfig\n };\n}\n\nexport function serviceCostAllOrNoneFieldsRequired(control: AbstractControl): boolean {\n const { code, value, description } = control.value.cost;\n const costControl = control.get('cost');\n\n // tu vmes je še druga koda\n \n // nastavimo enako napako, kot je ime sporočila\n costControl.get('code').setErrors({serviceCostAllOrNoneFieldsRequired: true});\n costControl.get('value').setErrors({serviceCostAllOrNoneFieldsRequired: true});\n costControl.get('description').setErrors({serviceCostAllOrNoneFieldsRequired: true});\n\n return false;\n}\n```\n"
38
38
  }
package/public-api.d.ts CHANGED
@@ -23,4 +23,5 @@ export * from './lib/data-providers';
23
23
  export * from './lib/descriptors';
24
24
  export * from './lib/models';
25
25
  export * from './lib/router';
26
+ export * from './lib/router/models';
26
27
  export * from './lib/types';
@@ -28,4 +28,9 @@ form {
28
28
  padding: 0.75rem 0 0 0;
29
29
  }
30
30
  }
31
+
32
+ .field-checkbox,
33
+ .field-radiobutton {
34
+ margin-bottom: 0.5rem;
35
+ }
31
36
  }