@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.
- package/README.md +74 -62
- package/fesm2022/mediusinc-mng-commons-core.mjs +159 -302
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-filter.mjs +3 -9
- package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form-api.mjs +4 -4
- package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form.mjs +285 -203
- package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-model.mjs +2 -5
- package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs +1 -0
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
- package/fesm2022/{mediusinc-mng-commons-table-column-toggle.component-BS5xvoDR.mjs → mediusinc-mng-commons-table-column-toggle.component-BHIzrUZz.mjs} +14 -12
- package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-BHIzrUZz.mjs.map +1 -0
- package/fesm2022/{mediusinc-mng-commons-table-mediusinc-mng-commons-table-BfEYZG7s.mjs → mediusinc-mng-commons-table-mediusinc-mng-commons-table-BPgwJRZk.mjs} +558 -522
- package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BPgwJRZk.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-table.mjs +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +10 -75
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +460 -326
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
- package/i18n/en.json +1 -1
- package/i18n/sl.json +2 -2
- package/package.json +11 -24
- package/types/mediusinc-mng-commons-core.d.ts +55 -115
- package/types/mediusinc-mng-commons-filter.d.ts +4 -8
- package/types/mediusinc-mng-commons-form-api.d.ts +7 -7
- package/types/mediusinc-mng-commons-form.d.ts +11 -11
- package/types/mediusinc-mng-commons-table-api.d.ts +2 -2
- package/types/mediusinc-mng-commons-table.d.ts +21 -25
- package/types/mediusinc-mng-commons-tableview-api.d.ts +9 -51
- package/types/mediusinc-mng-commons-tableview.d.ts +9 -15
- package/fesm2022/mediusinc-mng-commons-model-class.mjs +0 -97
- package/fesm2022/mediusinc-mng-commons-model-class.mjs.map +0 -1
- package/fesm2022/mediusinc-mng-commons-table-api-class.mjs +0 -204
- package/fesm2022/mediusinc-mng-commons-table-api-class.mjs.map +0 -1
- package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-BS5xvoDR.mjs.map +0 -1
- package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BfEYZG7s.mjs.map +0 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs +0 -374
- package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs.map +0 -1
- package/model/class/README.md +0 -8
- package/table/api/class/README.md +0 -10
- package/tableview/api/class/README.md +0 -13
- package/types/mediusinc-mng-commons-model-class.d.ts +0 -25
- package/types/mediusinc-mng-commons-table-api-class.d.ts +0 -77
- 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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
66
|
-
|
|
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
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
#
|
|
90
|
+
#
|
|
91
|
+
Za svetlo temo:
|
|
92
|
+
|
|
87
93
|
@import '~../node_modules/@mediusinc/mng-commons/scss/mng-commons-light';
|
|
88
94
|
|
|
89
|
-
#
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
109
|
+
app: {
|
|
110
|
+
colorScheme: 'dark'
|
|
111
|
+
}
|
|
103
112
|
});
|
|
104
113
|
```
|
|
105
114
|
|
|
106
|
-
Tema za svoje delovanje uporablja
|
|
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/
|
|
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
|
|
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
|
|
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
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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
|
-
|
|
166
|
-
|
|
177
|
+
const {code, value, description} = control.value.cost;
|
|
178
|
+
const costControl = control.get('cost');
|
|
167
179
|
|
|
168
|
-
|
|
180
|
+
// tu vmes je še druga koda
|
|
169
181
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
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
|
-
|
|
187
|
+
return false;
|
|
176
188
|
}
|
|
177
189
|
```
|