@mediusinc/mng-commons 7.4.0 → 8.0.0-rc.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.
Files changed (48) hide show
  1. package/README.md +74 -62
  2. package/fesm2022/mediusinc-mng-commons-core.mjs +159 -302
  3. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  4. package/fesm2022/mediusinc-mng-commons-filter.mjs +3 -9
  5. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  6. package/fesm2022/mediusinc-mng-commons-form-api.mjs +4 -4
  7. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  8. package/fesm2022/mediusinc-mng-commons-form.mjs +285 -203
  9. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  10. package/fesm2022/mediusinc-mng-commons-model.mjs +2 -5
  11. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  12. package/fesm2022/mediusinc-mng-commons-table-api.mjs +1 -0
  13. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  14. package/fesm2022/{mediusinc-mng-commons-table-column-toggle.component-BS5xvoDR.mjs → mediusinc-mng-commons-table-column-toggle.component-BHIzrUZz.mjs} +14 -12
  15. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-BHIzrUZz.mjs.map +1 -0
  16. package/fesm2022/{mediusinc-mng-commons-table-mediusinc-mng-commons-table-BfEYZG7s.mjs → mediusinc-mng-commons-table-mediusinc-mng-commons-table-BPgwJRZk.mjs} +558 -522
  17. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BPgwJRZk.mjs.map +1 -0
  18. package/fesm2022/mediusinc-mng-commons-table.mjs +1 -1
  19. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +10 -75
  20. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  21. package/fesm2022/mediusinc-mng-commons-tableview.mjs +460 -326
  22. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  23. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
  24. package/i18n/en.json +1 -1
  25. package/i18n/sl.json +2 -2
  26. package/package.json +11 -24
  27. package/types/mediusinc-mng-commons-core.d.ts +55 -115
  28. package/types/mediusinc-mng-commons-filter.d.ts +4 -8
  29. package/types/mediusinc-mng-commons-form-api.d.ts +7 -7
  30. package/types/mediusinc-mng-commons-form.d.ts +11 -11
  31. package/types/mediusinc-mng-commons-table-api.d.ts +2 -2
  32. package/types/mediusinc-mng-commons-table.d.ts +21 -25
  33. package/types/mediusinc-mng-commons-tableview-api.d.ts +9 -51
  34. package/types/mediusinc-mng-commons-tableview.d.ts +9 -15
  35. package/fesm2022/mediusinc-mng-commons-model-class.mjs +0 -97
  36. package/fesm2022/mediusinc-mng-commons-model-class.mjs.map +0 -1
  37. package/fesm2022/mediusinc-mng-commons-table-api-class.mjs +0 -204
  38. package/fesm2022/mediusinc-mng-commons-table-api-class.mjs.map +0 -1
  39. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-BS5xvoDR.mjs.map +0 -1
  40. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BfEYZG7s.mjs.map +0 -1
  41. package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs +0 -374
  42. package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs.map +0 -1
  43. package/model/class/README.md +0 -8
  44. package/table/api/class/README.md +0 -10
  45. package/tableview/api/class/README.md +0 -13
  46. package/types/mediusinc-mng-commons-model-class.d.ts +0 -25
  47. package/types/mediusinc-mng-commons-table-api-class.d.ts +0 -77
  48. package/types/mediusinc-mng-commons-tableview-api-class.d.ts +0 -141
package/README.md CHANGED
@@ -7,10 +7,10 @@ Commons knjižnica za izgradnjo uporabniškega vmesnika na ogrodju Angular.
7
7
  - Node.js (preveri kompatibilne verzije v skeciji Kompatibilnost) in npm
8
8
  - pnpm package manager (https://pnpm.io/), ki optimizira delovanje privzetega npm.
9
9
  - Zahtevane skupne odvisnosti (peer dependencies)
10
- - Angular (moduli `@angular/*`)
11
- - PrimeNG (moduli `primeng/*`)
12
- - Ngx Formly (modul `@ngx-formly/core`)
13
- - Ngx Translate (modul `@ngx-translate/core`)
10
+ - Angular (moduli `@angular/*`)
11
+ - Optimus UI (moduli `@openng/optimus-ui/*`)
12
+ - Ngx Formly (modul `@ngx-formly/core`)
13
+ - Ngx Translate (modul `@ngx-translate/core`)
14
14
 
15
15
  Za verzije odvisnosti glej poglavlje kompatibilnosti.
16
16
 
@@ -24,26 +24,29 @@ pnpm i @mediusinc/mng-commons
24
24
 
25
25
  V tabeli so navedene kompatibilne verzije za commons knjižnico in povezane odvisnosti.
26
26
 
27
- | Commons | Angular | PrimeNG | Ngx-translate | Ngx-formly | Node |
28
- |---------|----------------|---------|---------------|------------|--------------------------------------|
29
- | 5.1.x | 17.3.x, 18.x.x | 17.18.x | 14.x.x | 6.x.x | ^18.13.0 \|\| ^20.9.0 |
30
- | 5.x.x | 17.x.x | 17.x.x | 14.x.x | 6.x.x | ^18.13.0 \|\| ^20.9.0 |
31
- | 4.x.x | 17.x.x | 17.x.x | 14.x.x | 6.x.x | ^18.13.0 \|\| ^20.9.0 |
32
- | 3.x.x | 16.x.x | 16.x.x | 14.x.x | 6.x.x | ^16.14.0 \|\| ^18.10.0 |
33
- | 2.x.x | 15.x.x | 15.x.x | 14.x.x | 6.x.x | ^14.20.0 \|\| ^16.13.0 \|\| ^18.10.0 |
27
+ | Commons | Angular | ~~PrimeNG~~ | Optimus UI | Ngx-translate | Ngx-formly | Node |
28
+ |---------|----------------|-------------|------------|---------------|------------|--------------------------------------|
29
+ | 8.x.x | 22.x.x | / | 2.x.x | 18.x.x | 6.3.x | ^22.22.3 \|\| ^24.15.0 \|\| ^26.0.0 |
30
+ | 7.x.x | 21.x.x | 21.x.x | / | 17.x.x | 6.3.x | ^20.19.0 \|\| ^22.12.0 \|\| ^24.0.0 |
31
+ | 6.x.x | 19.x.x | 20.x.x | / | 16.x.x | 6.3.x | ^18.19.1 \|\| ^20.11.1 \|\| ^22.0.0 |
32
+ | 5.1.x | 17.3.x, 18.x.x | 17.18.x | / | 14.x.x | 6.x.x | ^18.13.0 \|\| ^20.9.0 |
33
+ | 5.x.x | 17.x.x | 17.x.x | / | 14.x.x | 6.x.x | ^18.13.0 \|\| ^20.9.0 |
34
+ | 4.x.x | 17.x.x | 17.x.x | / | 14.x.x | 6.x.x | ^18.13.0 \|\| ^20.9.0 |
35
+ | 3.x.x | 16.x.x | 16.x.x | / | 14.x.x | 6.x.x | ^16.14.0 \|\| ^18.10.0 |
36
+ | 2.x.x | 15.x.x | 15.x.x | / | 14.x.x | 6.x.x | ^14.20.0 \|\| ^16.13.0 \|\| ^18.10.0 |
34
37
 
35
38
  ## Lokalizacija (i18n)
36
39
 
37
- Modul `ngx-translate` se konfigurira na končnem projektu in je na končnem projektu potrebno določiti način za load prevodov.
38
- Primer konfiguracije za multi-module HTTP loader:
40
+ Modul `ngx-translate` se konfigurira na končnem projektu in je na končnem projektu potrebno določiti način za load prevodov. Primer konfiguracije za multi-module HTTP loader:
39
41
 
40
42
  - HTTP loader factory:
43
+
41
44
  ```ts
42
- export function i18nHttpLoaderFactory(http: HttpBackend ) {
43
- return new MultiTranslateHttpLoader(http, [
44
- {prefix: './assets/i18n/mng/', suffix: '.json'},
45
- {prefix: './assets/i18n/', suffix: '.json'}
46
- ]);
45
+ export function i18nHttpLoaderFactory(http: HttpBackend) {
46
+ return new MultiTranslateHttpLoader(http, [
47
+ {prefix: './assets/i18n/mng/', suffix: '.json'},
48
+ {prefix: './assets/i18n/', suffix: '.json'}
49
+ ]);
47
50
  }
48
51
  ```
49
52
 
@@ -60,33 +63,38 @@ provideTranslateService({
60
63
  ```
61
64
 
62
65
  - Definicijo jezikov podamo preko konfiguracije `provideCommons()`:
66
+
63
67
  ```ts
64
68
  provideCommons({
65
- app: {
66
- locales: ['en', 'sl']
67
- }
69
+ app: {
70
+ locales: ['en', 'sl']
71
+ }
68
72
  })
69
73
  ```
70
74
 
71
75
  Knjiž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:
76
+
72
77
  ```json
73
78
  {
74
- "glob": "**/*",
75
- "input": "./node_modules/@mediusinc/mng-commons/assets/i18n",
76
- "output": "/assets/i18n/mng"
79
+ "glob": "**/*",
80
+ "input": "./node_modules/@mediusinc/mng-commons/assets/i18n",
81
+ "output": "/assets/i18n/mng"
77
82
  }
78
83
  ```
79
84
 
80
85
  ## Tema
81
86
 
82
- Opcijsko se vključi tudi tema MNG Commons, ki ima dve svetlo in temno varianto.
83
- Za vključitev se v stile na končnem projektu doda import v `style.scss`:
87
+ Opcijsko se vključi tudi tema MNG Commons, ki ima dve svetlo in temno varianto. Za vključitev se v stile na končnem projektu doda import v `style.scss`:
84
88
 
85
89
  ```scss
86
- # Za svetlo temo:
90
+ #
91
+ Za svetlo temo:
92
+
87
93
  @import '~../node_modules/@mediusinc/mng-commons/scss/mng-commons-light';
88
94
 
89
- # Za temno temo:
95
+ #
96
+ Za temno temo:
97
+
90
98
  @import '~../node_modules/@mediusinc/mng-commons/scss/mng-commons-dark';
91
99
  ```
92
100
 
@@ -95,37 +103,36 @@ Primarno se uporablja svetla tema!
95
103
  ~~~~
96
104
 
97
105
  Pri uporabi temne teme je potrebno dodatno nastaviti tudi `colorMode` v modulu:
106
+
98
107
  ```ts
99
108
  MngCommonsModule.forRoot({
100
- app: {
101
- colorScheme: 'dark'
102
- }
109
+ app: {
110
+ colorScheme: 'dark'
111
+ }
103
112
  });
104
113
  ```
105
114
 
106
- Tema za svoje delovanje uporablja primeNG stile (za posamezne komponente) in PrimeFlex kot pomožno CSS knjižnico.
107
- Dodatno se lahko na končnem projektu lahko uporabi še ikone PrimeIcons.
108
- Glede ne preference se opcijsko dodajo naslednji importi (**pred importom MNG commons teme!**):
115
+ Tema za svoje delovanje uporablja Optimus UI stile (za posamezne komponente) in PrimeFlex kot pomožno CSS knjižnico. Dodatno se lahko na končnem projektu uporabljajo ikone OpenNG. Glede ne preference se opcijsko dodajo naslednji importi (**pred importom MNG commons teme!**):
109
116
 
110
117
  ```scss
111
- @import '~../node_modules/primeng/resources/primeng.min.css';
112
118
  @import '~../node_modules/primeflex/primeflex.scss';
113
- @import '~../node_modules/primeicons/primeicons.css';
119
+ @import '~../node_modules/@openng/icons/openng-icons.css';
114
120
  ```
115
121
 
116
- Pri prvem importu ni potrebno namestiti dodatnih odvisnosti (je že vključeno z primeng), za drugi dve pa je potrebno namestiti:
122
+ Pri prvem importu ni potrebno namestiti dodatnih odvisnosti (je že vključeno z Optimus UI), za drugi dve pa je potrebno namestiti:
123
+
117
124
  ```bash
118
125
  pnpm i primeflex
119
- pnpm i primeicons
126
+ pnpm i @openng/icons
120
127
  ```
121
128
 
122
129
  Dodajanje MNG Commons slik v `assets` na končnem projektu se uredi z konfiguracijo v `assets` segmentu znotraj `angular.json`, kjer se doda:
123
130
 
124
131
  ```json
125
132
  {
126
- "glob": "**/*",
127
- "input": "./node_modules/@mediusinc/mng-commons/assets/images",
128
- "output": "/assets/images/mng"
133
+ "glob": "**/*",
134
+ "input": "./node_modules/@mediusinc/mng-commons/assets/images",
135
+ "output": "/assets/images/mng"
129
136
  }
130
137
  ```
131
138
 
@@ -134,44 +141,49 @@ Dodajanje MNG Commons slik v `assets` na končnem projektu se uredi z konfigurac
134
141
  Validatorje lahko dodajamo samostojno na polja, ali pa na skupine polj.
135
142
 
136
143
  Dodajanje se v obeh primerih razlikuje.
144
+
137
145
  - validator na polje lahko dodamo preko polja, kjer mu podamo ime, funkcijo in sporočilo za validacijo.
146
+
138
147
  ```typescript
139
148
  serviceChannelsTableviewDescriptor.addField('cost.code')
140
- .withValidator('codeValidator', control => control.value, (err, field) => 'error message');
149
+ .withValidator('codeValidator', control => control.value, (err, field) => 'error message');
141
150
  ```
151
+
142
152
  - validator na skupine lahko dodamo preko
153
+
143
154
  ```typescript
144
155
  serviceChannelsTableviewDescriptor.createFieldGroup('Service cost', 'ServiceChannelDto.fieldGroups.serviceCost')
145
- .withValidator('serviceCostAllOrNoneFieldsRequired', this.serviceCostAllOrNoneFieldsRequired);
156
+ .withValidator('serviceCostAllOrNoneFieldsRequired', this.serviceCostAllOrNoneFieldsRequired);
146
157
  ```
147
158
 
148
159
  Ko 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.
160
+
149
161
  ```typescript
150
162
  export function formlyConfigProvider(translate: TranslateService): ConfigOption {
151
- return {
152
- validationMessages: [
153
- { name: 'required', message: getRequiredValidationMessage(translate)},
154
- ...
155
- // naše sporočilo, ki se imenuje serviceCostAllOrNoneFieldsRequired
156
- { name: 'serviceCostAllOrNoneFieldsRequired', message: serviceCostAllOrNoneFieldsRequiredValidatorMessage(translate)}
157
- ],
158
- extras: { lazyRender: true },
159
- wrappers: formlyWrappersConfig,
160
- types: formlyTypesConfig
161
- };
163
+ return {
164
+ validationMessages: [
165
+ {name: 'required', message: getRequiredValidationMessage(translate)},
166
+ ...
167
+ // naše sporočilo, ki se imenuje serviceCostAllOrNoneFieldsRequired
168
+ {name: 'serviceCostAllOrNoneFieldsRequired', message: serviceCostAllOrNoneFieldsRequiredValidatorMessage(translate)}
169
+ ],
170
+ extras: {lazyRender: true},
171
+ wrappers: formlyWrappersConfig,
172
+ types: formlyTypesConfig
173
+ };
162
174
  }
163
175
 
164
176
  export function serviceCostAllOrNoneFieldsRequired(control: AbstractControl): boolean {
165
- const { code, value, description } = control.value.cost;
166
- const costControl = control.get('cost');
177
+ const {code, value, description} = control.value.cost;
178
+ const costControl = control.get('cost');
167
179
 
168
- // tu vmes je še druga koda
180
+ // tu vmes je še druga koda
169
181
 
170
- // nastavimo enako napako, kot je ime sporočila
171
- costControl.get('code').setErrors({serviceCostAllOrNoneFieldsRequired: true});
172
- costControl.get('value').setErrors({serviceCostAllOrNoneFieldsRequired: true});
173
- costControl.get('description').setErrors({serviceCostAllOrNoneFieldsRequired: true});
182
+ // nastavimo enako napako, kot je ime sporočila
183
+ costControl.get('code').setErrors({serviceCostAllOrNoneFieldsRequired: true});
184
+ costControl.get('value').setErrors({serviceCostAllOrNoneFieldsRequired: true});
185
+ costControl.get('description').setErrors({serviceCostAllOrNoneFieldsRequired: true});
174
186
 
175
- return false;
187
+ return false;
176
188
  }
177
189
  ```