@sd-angular/core 19.0.0-beta.71 → 19.0.0-beta.72
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/components/modal/src/modal.component.d.ts +1 -1
- package/components/upload-file/src/configurations/upload-file.configuration.d.ts +33 -0
- package/components/upload-file/src/upload-file.component.d.ts +5 -2
- package/fesm2022/sd-angular-core-components-table.mjs +7 -5
- package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-upload-file.mjs +61 -9
- package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-workflow.mjs +2 -2
- package/fesm2022/sd-angular-core-components-workflow.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-layout.mjs +2 -3
- package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-permission.mjs +160 -74
- package/fesm2022/sd-angular-core-modules-permission.mjs.map +1 -1
- package/fesm2022/sd-angular-core.mjs +0 -1
- package/fesm2022/sd-angular-core.mjs.map +1 -1
- package/modules/layout/services/menu/menu.model.d.ts +1 -0
- package/modules/permission/src/configurations/permission.configuration.d.ts +56 -2
- package/modules/permission/src/directives/permission.directive.d.ts +5 -8
- package/modules/permission/src/guards/permission.guard.d.ts +2 -1
- package/modules/permission/src/services/permission.service.d.ts +6 -9
- package/package.json +86 -94
- package/public-api.d.ts +0 -1
- package/sd-angular-core-19.0.0-beta.72.tgz +0 -0
- package/fesm2022/sd-angular-core-guards-permission.mjs +0 -155
- package/fesm2022/sd-angular-core-guards-permission.mjs.map +0 -1
- package/fesm2022/sd-angular-core-guards.mjs +0 -6
- package/fesm2022/sd-angular-core-guards.mjs.map +0 -1
- package/guards/index.d.ts +0 -1
- package/guards/permission/index.d.ts +0 -4
- package/guards/permission/src/configurations/index.d.ts +0 -1
- package/guards/permission/src/configurations/permission.configuration.d.ts +0 -8
- package/guards/permission/src/directives/index.d.ts +0 -1
- package/guards/permission/src/directives/permission.directive.d.ts +0 -12
- package/guards/permission/src/guards/index.d.ts +0 -1
- package/guards/permission/src/guards/permission.guard.d.ts +0 -13
- package/guards/permission/src/services/index.d.ts +0 -1
- package/guards/permission/src/services/permission.service.d.ts +0 -15
- package/sd-angular-core-19.0.0-beta.71.tgz +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sd-angular/core",
|
|
3
|
-
"version": "19.0.0-beta.
|
|
3
|
+
"version": "19.0.0-beta.72",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
6
6
|
"@angular/core": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
@@ -34,21 +34,17 @@
|
|
|
34
34
|
"types": "./components/index.d.ts",
|
|
35
35
|
"default": "./fesm2022/sd-angular-core-components.mjs"
|
|
36
36
|
},
|
|
37
|
-
"./
|
|
38
|
-
"types": "./
|
|
39
|
-
"default": "./fesm2022/sd-angular-core-
|
|
37
|
+
"./directives": {
|
|
38
|
+
"types": "./directives/index.d.ts",
|
|
39
|
+
"default": "./fesm2022/sd-angular-core-directives.mjs"
|
|
40
40
|
},
|
|
41
41
|
"./configurations": {
|
|
42
42
|
"types": "./configurations/index.d.ts",
|
|
43
43
|
"default": "./fesm2022/sd-angular-core-configurations.mjs"
|
|
44
44
|
},
|
|
45
|
-
"./
|
|
46
|
-
"types": "./
|
|
47
|
-
"default": "./fesm2022/sd-angular-core-
|
|
48
|
-
},
|
|
49
|
-
"./guards": {
|
|
50
|
-
"types": "./guards/index.d.ts",
|
|
51
|
-
"default": "./fesm2022/sd-angular-core-guards.mjs"
|
|
45
|
+
"./forms": {
|
|
46
|
+
"types": "./forms/index.d.ts",
|
|
47
|
+
"default": "./fesm2022/sd-angular-core-forms.mjs"
|
|
52
48
|
},
|
|
53
49
|
"./handlers": {
|
|
54
50
|
"types": "./handlers/index.d.ts",
|
|
@@ -62,50 +58,50 @@
|
|
|
62
58
|
"types": "./modules/index.d.ts",
|
|
63
59
|
"default": "./fesm2022/sd-angular-core-modules.mjs"
|
|
64
60
|
},
|
|
65
|
-
"./services": {
|
|
66
|
-
"types": "./services/index.d.ts",
|
|
67
|
-
"default": "./fesm2022/sd-angular-core-services.mjs"
|
|
68
|
-
},
|
|
69
61
|
"./pipes": {
|
|
70
62
|
"types": "./pipes/index.d.ts",
|
|
71
63
|
"default": "./fesm2022/sd-angular-core-pipes.mjs"
|
|
72
64
|
},
|
|
65
|
+
"./services": {
|
|
66
|
+
"types": "./services/index.d.ts",
|
|
67
|
+
"default": "./fesm2022/sd-angular-core-services.mjs"
|
|
68
|
+
},
|
|
73
69
|
"./utilities": {
|
|
74
70
|
"types": "./utilities/index.d.ts",
|
|
75
71
|
"default": "./fesm2022/sd-angular-core-utilities.mjs"
|
|
76
72
|
},
|
|
77
|
-
"./components/anchor-v2": {
|
|
78
|
-
"types": "./components/anchor-v2/index.d.ts",
|
|
79
|
-
"default": "./fesm2022/sd-angular-core-components-anchor-v2.mjs"
|
|
80
|
-
},
|
|
81
73
|
"./components/anchor": {
|
|
82
74
|
"types": "./components/anchor/index.d.ts",
|
|
83
75
|
"default": "./fesm2022/sd-angular-core-components-anchor.mjs"
|
|
84
76
|
},
|
|
77
|
+
"./components/anchor-v2": {
|
|
78
|
+
"types": "./components/anchor-v2/index.d.ts",
|
|
79
|
+
"default": "./fesm2022/sd-angular-core-components-anchor-v2.mjs"
|
|
80
|
+
},
|
|
85
81
|
"./components/avatar": {
|
|
86
82
|
"types": "./components/avatar/index.d.ts",
|
|
87
83
|
"default": "./fesm2022/sd-angular-core-components-avatar.mjs"
|
|
88
84
|
},
|
|
89
|
-
"./components/
|
|
90
|
-
"types": "./components/
|
|
91
|
-
"default": "./fesm2022/sd-angular-core-components-
|
|
85
|
+
"./components/button": {
|
|
86
|
+
"types": "./components/button/index.d.ts",
|
|
87
|
+
"default": "./fesm2022/sd-angular-core-components-button.mjs"
|
|
92
88
|
},
|
|
93
89
|
"./components/base": {
|
|
94
90
|
"types": "./components/base/index.d.ts",
|
|
95
91
|
"default": "./fesm2022/sd-angular-core-components-base.mjs"
|
|
96
92
|
},
|
|
97
|
-
"./components/
|
|
98
|
-
"types": "./components/
|
|
99
|
-
"default": "./fesm2022/sd-angular-core-components-
|
|
100
|
-
},
|
|
101
|
-
"./components/document-builder": {
|
|
102
|
-
"types": "./components/document-builder/index.d.ts",
|
|
103
|
-
"default": "./fesm2022/sd-angular-core-components-document-builder.mjs"
|
|
93
|
+
"./components/badge": {
|
|
94
|
+
"types": "./components/badge/index.d.ts",
|
|
95
|
+
"default": "./fesm2022/sd-angular-core-components-badge.mjs"
|
|
104
96
|
},
|
|
105
97
|
"./components/code-editor": {
|
|
106
98
|
"types": "./components/code-editor/index.d.ts",
|
|
107
99
|
"default": "./fesm2022/sd-angular-core-components-code-editor.mjs"
|
|
108
100
|
},
|
|
101
|
+
"./components/document-builder": {
|
|
102
|
+
"types": "./components/document-builder/index.d.ts",
|
|
103
|
+
"default": "./fesm2022/sd-angular-core-components-document-builder.mjs"
|
|
104
|
+
},
|
|
109
105
|
"./components/history": {
|
|
110
106
|
"types": "./components/history/index.d.ts",
|
|
111
107
|
"default": "./fesm2022/sd-angular-core-components-history.mjs"
|
|
@@ -114,18 +110,14 @@
|
|
|
114
110
|
"types": "./components/mini-editor/index.d.ts",
|
|
115
111
|
"default": "./fesm2022/sd-angular-core-components-mini-editor.mjs"
|
|
116
112
|
},
|
|
117
|
-
"./components/import-excel": {
|
|
118
|
-
"types": "./components/import-excel/index.d.ts",
|
|
119
|
-
"default": "./fesm2022/sd-angular-core-components-import-excel.mjs"
|
|
120
|
-
},
|
|
121
|
-
"./components/preview": {
|
|
122
|
-
"types": "./components/preview/index.d.ts",
|
|
123
|
-
"default": "./fesm2022/sd-angular-core-components-preview.mjs"
|
|
124
|
-
},
|
|
125
113
|
"./components/modal": {
|
|
126
114
|
"types": "./components/modal/index.d.ts",
|
|
127
115
|
"default": "./fesm2022/sd-angular-core-components-modal.mjs"
|
|
128
116
|
},
|
|
117
|
+
"./components/import-excel": {
|
|
118
|
+
"types": "./components/import-excel/index.d.ts",
|
|
119
|
+
"default": "./fesm2022/sd-angular-core-components-import-excel.mjs"
|
|
120
|
+
},
|
|
129
121
|
"./components/query-builder": {
|
|
130
122
|
"types": "./components/query-builder/index.d.ts",
|
|
131
123
|
"default": "./fesm2022/sd-angular-core-components-query-builder.mjs"
|
|
@@ -134,17 +126,17 @@
|
|
|
134
126
|
"types": "./components/quick-action/index.d.ts",
|
|
135
127
|
"default": "./fesm2022/sd-angular-core-components-quick-action.mjs"
|
|
136
128
|
},
|
|
137
|
-
"./components/
|
|
138
|
-
"types": "./components/
|
|
139
|
-
"default": "./fesm2022/sd-angular-core-components-
|
|
129
|
+
"./components/preview": {
|
|
130
|
+
"types": "./components/preview/index.d.ts",
|
|
131
|
+
"default": "./fesm2022/sd-angular-core-components-preview.mjs"
|
|
140
132
|
},
|
|
141
133
|
"./components/side-drawer": {
|
|
142
134
|
"types": "./components/side-drawer/index.d.ts",
|
|
143
135
|
"default": "./fesm2022/sd-angular-core-components-side-drawer.mjs"
|
|
144
136
|
},
|
|
145
|
-
"./components/
|
|
146
|
-
"types": "./components/
|
|
147
|
-
"default": "./fesm2022/sd-angular-core-components-
|
|
137
|
+
"./components/section": {
|
|
138
|
+
"types": "./components/section/index.d.ts",
|
|
139
|
+
"default": "./fesm2022/sd-angular-core-components-section.mjs"
|
|
148
140
|
},
|
|
149
141
|
"./components/tab-router": {
|
|
150
142
|
"types": "./components/tab-router/index.d.ts",
|
|
@@ -154,57 +146,65 @@
|
|
|
154
146
|
"types": "./components/upload-file/index.d.ts",
|
|
155
147
|
"default": "./fesm2022/sd-angular-core-components-upload-file.mjs"
|
|
156
148
|
},
|
|
157
|
-
"./components/
|
|
158
|
-
"types": "./components/
|
|
159
|
-
"default": "./fesm2022/sd-angular-core-components-
|
|
149
|
+
"./components/view": {
|
|
150
|
+
"types": "./components/view/index.d.ts",
|
|
151
|
+
"default": "./fesm2022/sd-angular-core-components-view.mjs"
|
|
152
|
+
},
|
|
153
|
+
"./components/table": {
|
|
154
|
+
"types": "./components/table/index.d.ts",
|
|
155
|
+
"default": "./fesm2022/sd-angular-core-components-table.mjs"
|
|
160
156
|
},
|
|
161
157
|
"./forms/checkbox": {
|
|
162
158
|
"types": "./forms/checkbox/index.d.ts",
|
|
163
159
|
"default": "./fesm2022/sd-angular-core-forms-checkbox.mjs"
|
|
164
160
|
},
|
|
165
|
-
"./
|
|
166
|
-
"types": "./
|
|
167
|
-
"default": "./fesm2022/sd-angular-core-
|
|
168
|
-
},
|
|
169
|
-
"./forms/chip": {
|
|
170
|
-
"types": "./forms/chip/index.d.ts",
|
|
171
|
-
"default": "./fesm2022/sd-angular-core-forms-chip.mjs"
|
|
161
|
+
"./components/workflow": {
|
|
162
|
+
"types": "./components/workflow/index.d.ts",
|
|
163
|
+
"default": "./fesm2022/sd-angular-core-components-workflow.mjs"
|
|
172
164
|
},
|
|
173
165
|
"./forms/autocomplete": {
|
|
174
166
|
"types": "./forms/autocomplete/index.d.ts",
|
|
175
167
|
"default": "./fesm2022/sd-angular-core-forms-autocomplete.mjs"
|
|
176
168
|
},
|
|
177
|
-
"./forms/
|
|
178
|
-
"types": "./forms/
|
|
179
|
-
"default": "./fesm2022/sd-angular-core-forms-
|
|
169
|
+
"./forms/chip": {
|
|
170
|
+
"types": "./forms/chip/index.d.ts",
|
|
171
|
+
"default": "./fesm2022/sd-angular-core-forms-chip.mjs"
|
|
172
|
+
},
|
|
173
|
+
"./forms/chip-calendar": {
|
|
174
|
+
"types": "./forms/chip-calendar/index.d.ts",
|
|
175
|
+
"default": "./fesm2022/sd-angular-core-forms-chip-calendar.mjs"
|
|
180
176
|
},
|
|
181
177
|
"./forms/date-range": {
|
|
182
178
|
"types": "./forms/date-range/index.d.ts",
|
|
183
179
|
"default": "./fesm2022/sd-angular-core-forms-date-range.mjs"
|
|
184
180
|
},
|
|
185
|
-
"./forms/directives": {
|
|
186
|
-
"types": "./forms/directives/index.d.ts",
|
|
187
|
-
"default": "./fesm2022/sd-angular-core-forms-directives.mjs"
|
|
188
|
-
},
|
|
189
181
|
"./forms/datetime": {
|
|
190
182
|
"types": "./forms/datetime/index.d.ts",
|
|
191
183
|
"default": "./fesm2022/sd-angular-core-forms-datetime.mjs"
|
|
192
184
|
},
|
|
185
|
+
"./forms/date": {
|
|
186
|
+
"types": "./forms/date/index.d.ts",
|
|
187
|
+
"default": "./fesm2022/sd-angular-core-forms-date.mjs"
|
|
188
|
+
},
|
|
189
|
+
"./forms/directives": {
|
|
190
|
+
"types": "./forms/directives/index.d.ts",
|
|
191
|
+
"default": "./fesm2022/sd-angular-core-forms-directives.mjs"
|
|
192
|
+
},
|
|
193
193
|
"./forms/input": {
|
|
194
194
|
"types": "./forms/input/index.d.ts",
|
|
195
195
|
"default": "./fesm2022/sd-angular-core-forms-input.mjs"
|
|
196
196
|
},
|
|
197
|
-
"./forms/
|
|
198
|
-
"types": "./forms/
|
|
199
|
-
"default": "./fesm2022/sd-angular-core-forms-
|
|
197
|
+
"./forms/label": {
|
|
198
|
+
"types": "./forms/label/index.d.ts",
|
|
199
|
+
"default": "./fesm2022/sd-angular-core-forms-label.mjs"
|
|
200
200
|
},
|
|
201
201
|
"./forms/input-number": {
|
|
202
202
|
"types": "./forms/input-number/index.d.ts",
|
|
203
203
|
"default": "./fesm2022/sd-angular-core-forms-input-number.mjs"
|
|
204
204
|
},
|
|
205
|
-
"./forms/
|
|
206
|
-
"types": "./forms/
|
|
207
|
-
"default": "./fesm2022/sd-angular-core-forms-
|
|
205
|
+
"./forms/models": {
|
|
206
|
+
"types": "./forms/models/index.d.ts",
|
|
207
|
+
"default": "./fesm2022/sd-angular-core-forms-models.mjs"
|
|
208
208
|
},
|
|
209
209
|
"./forms/radio": {
|
|
210
210
|
"types": "./forms/radio/index.d.ts",
|
|
@@ -214,17 +214,13 @@
|
|
|
214
214
|
"types": "./forms/select/index.d.ts",
|
|
215
215
|
"default": "./fesm2022/sd-angular-core-forms-select.mjs"
|
|
216
216
|
},
|
|
217
|
-
"./forms/textarea": {
|
|
218
|
-
"types": "./forms/textarea/index.d.ts",
|
|
219
|
-
"default": "./fesm2022/sd-angular-core-forms-textarea.mjs"
|
|
220
|
-
},
|
|
221
217
|
"./forms/switch": {
|
|
222
218
|
"types": "./forms/switch/index.d.ts",
|
|
223
219
|
"default": "./fesm2022/sd-angular-core-forms-switch.mjs"
|
|
224
220
|
},
|
|
225
|
-
"./
|
|
226
|
-
"types": "./
|
|
227
|
-
"default": "./fesm2022/sd-angular-core-
|
|
221
|
+
"./forms/textarea": {
|
|
222
|
+
"types": "./forms/textarea/index.d.ts",
|
|
223
|
+
"default": "./fesm2022/sd-angular-core-forms-textarea.mjs"
|
|
228
224
|
},
|
|
229
225
|
"./modules/auth": {
|
|
230
226
|
"types": "./modules/auth/index.d.ts",
|
|
@@ -234,25 +230,25 @@
|
|
|
234
230
|
"types": "./modules/keycloak/index.d.ts",
|
|
235
231
|
"default": "./fesm2022/sd-angular-core-modules-keycloak.mjs"
|
|
236
232
|
},
|
|
237
|
-
"./modules/permission": {
|
|
238
|
-
"types": "./modules/permission/index.d.ts",
|
|
239
|
-
"default": "./fesm2022/sd-angular-core-modules-permission.mjs"
|
|
240
|
-
},
|
|
241
233
|
"./modules/layout": {
|
|
242
234
|
"types": "./modules/layout/index.d.ts",
|
|
243
235
|
"default": "./fesm2022/sd-angular-core-modules-layout.mjs"
|
|
244
236
|
},
|
|
245
|
-
"./
|
|
246
|
-
"types": "./
|
|
247
|
-
"default": "./fesm2022/sd-angular-core-
|
|
237
|
+
"./modules/permission": {
|
|
238
|
+
"types": "./modules/permission/index.d.ts",
|
|
239
|
+
"default": "./fesm2022/sd-angular-core-modules-permission.mjs"
|
|
240
|
+
},
|
|
241
|
+
"./services/api": {
|
|
242
|
+
"types": "./services/api/index.d.ts",
|
|
243
|
+
"default": "./fesm2022/sd-angular-core-services-api.mjs"
|
|
248
244
|
},
|
|
249
245
|
"./services/cache": {
|
|
250
246
|
"types": "./services/cache/index.d.ts",
|
|
251
247
|
"default": "./fesm2022/sd-angular-core-services-cache.mjs"
|
|
252
248
|
},
|
|
253
|
-
"./services/
|
|
254
|
-
"types": "./services/
|
|
255
|
-
"default": "./fesm2022/sd-angular-core-services-
|
|
249
|
+
"./services/confirm": {
|
|
250
|
+
"types": "./services/confirm/index.d.ts",
|
|
251
|
+
"default": "./fesm2022/sd-angular-core-services-confirm.mjs"
|
|
256
252
|
},
|
|
257
253
|
"./services/docx": {
|
|
258
254
|
"types": "./services/docx/index.d.ts",
|
|
@@ -270,29 +266,25 @@
|
|
|
270
266
|
"types": "./services/license/index.d.ts",
|
|
271
267
|
"default": "./fesm2022/sd-angular-core-services-license.mjs"
|
|
272
268
|
},
|
|
273
|
-
"./services/loading": {
|
|
274
|
-
"types": "./services/loading/index.d.ts",
|
|
275
|
-
"default": "./fesm2022/sd-angular-core-services-loading.mjs"
|
|
276
|
-
},
|
|
277
269
|
"./services/notify": {
|
|
278
270
|
"types": "./services/notify/index.d.ts",
|
|
279
271
|
"default": "./fesm2022/sd-angular-core-services-notify.mjs"
|
|
280
272
|
},
|
|
273
|
+
"./services/loading": {
|
|
274
|
+
"types": "./services/loading/index.d.ts",
|
|
275
|
+
"default": "./fesm2022/sd-angular-core-services-loading.mjs"
|
|
276
|
+
},
|
|
281
277
|
"./services/storage": {
|
|
282
278
|
"types": "./services/storage/index.d.ts",
|
|
283
279
|
"default": "./fesm2022/sd-angular-core-services-storage.mjs"
|
|
284
280
|
},
|
|
285
|
-
"./utilities/extensions": {
|
|
286
|
-
"types": "./utilities/extensions/index.d.ts",
|
|
287
|
-
"default": "./fesm2022/sd-angular-core-utilities-extensions.mjs"
|
|
288
|
-
},
|
|
289
281
|
"./utilities/models": {
|
|
290
282
|
"types": "./utilities/models/index.d.ts",
|
|
291
283
|
"default": "./fesm2022/sd-angular-core-utilities-models.mjs"
|
|
292
284
|
},
|
|
293
|
-
"./
|
|
294
|
-
"types": "./
|
|
295
|
-
"default": "./fesm2022/sd-angular-core-
|
|
285
|
+
"./utilities/extensions": {
|
|
286
|
+
"types": "./utilities/extensions/index.d.ts",
|
|
287
|
+
"default": "./fesm2022/sd-angular-core-utilities-extensions.mjs"
|
|
296
288
|
}
|
|
297
289
|
}
|
|
298
290
|
}
|
package/public-api.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ import '@sd-angular/core/configurations';
|
|
|
2
2
|
import '@sd-angular/core/utilities';
|
|
3
3
|
import '@sd-angular/core/pipes';
|
|
4
4
|
import '@sd-angular/core/directives';
|
|
5
|
-
import '@sd-angular/core/guards';
|
|
6
5
|
import '@sd-angular/core/services';
|
|
7
6
|
import '@sd-angular/core/interceptors';
|
|
8
7
|
import '@sd-angular/core/handlers';
|
|
Binary file
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Inject, Injectable, Input, Directive } from '@angular/core';
|
|
3
|
-
import { ArrayUtilities } from '@sd-angular/core/utilities/extensions';
|
|
4
|
-
import * as i1 from '@sd-angular/core/services/cache';
|
|
5
|
-
|
|
6
|
-
const SD_PERMISSION_CONFIGURATION = new InjectionToken('sd-permission.configuration');
|
|
7
|
-
|
|
8
|
-
class SdPermissionService {
|
|
9
|
-
configuration;
|
|
10
|
-
cacheService;
|
|
11
|
-
#permission = {};
|
|
12
|
-
#permissions;
|
|
13
|
-
#loaded = false;
|
|
14
|
-
constructor(configuration, cacheService) {
|
|
15
|
-
this.configuration = configuration;
|
|
16
|
-
this.cacheService = cacheService;
|
|
17
|
-
this.#permissions = this.cacheService.create('212a51fa-38d5-43b2-bd46-922d85950ba3', {
|
|
18
|
-
type: 'session',
|
|
19
|
-
default: [],
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
loadPermissions = async () => {
|
|
23
|
-
if (!this.#loaded) {
|
|
24
|
-
const permissions = await this.configuration.loadPermissions().catch(err => {
|
|
25
|
-
console.error(err);
|
|
26
|
-
return [];
|
|
27
|
-
});
|
|
28
|
-
this.#permissions.set(ArrayUtilities.distinct(permissions));
|
|
29
|
-
// Chuyển thành Object để đảm bảo kiểm tra permisison không cần phải loop array
|
|
30
|
-
this.#permission = {};
|
|
31
|
-
permissions.forEach(permission => (this.#permission[permission] = true));
|
|
32
|
-
this.#loaded = true;
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
hasPermission = (permission) => {
|
|
36
|
-
if (!permission?.toString()) {
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
if (this.configuration.disabled) {
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
const permissions = Array.isArray(permission) ? permission : [permission];
|
|
43
|
-
return permissions.some(permission => this.#permission[permission]);
|
|
44
|
-
};
|
|
45
|
-
getToken = async () => {
|
|
46
|
-
if (!this.configuration.getToken) {
|
|
47
|
-
throw new Error('[Permission] Method getToken');
|
|
48
|
-
}
|
|
49
|
-
const token = this.configuration.getToken();
|
|
50
|
-
if (token instanceof Promise) {
|
|
51
|
-
return await token;
|
|
52
|
-
}
|
|
53
|
-
return token;
|
|
54
|
-
};
|
|
55
|
-
decodeToken = async () => {
|
|
56
|
-
const token = await this.getToken();
|
|
57
|
-
if (!token) {
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
try {
|
|
61
|
-
const payload = token.split('.')[1];
|
|
62
|
-
const base64 = payload.replace(/-/g, '+').replace(/_/g, '/');
|
|
63
|
-
const jsonPayload = decodeURIComponent(atob(base64)
|
|
64
|
-
.split('')
|
|
65
|
-
.map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))
|
|
66
|
-
.join(''));
|
|
67
|
-
return JSON.parse(jsonPayload);
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
console.error('Invalid token', error);
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdPermissionService, deps: [{ token: SD_PERMISSION_CONFIGURATION }, { token: i1.SdCacheService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
75
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdPermissionService, providedIn: 'root' });
|
|
76
|
-
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdPermissionService, decorators: [{
|
|
78
|
-
type: Injectable,
|
|
79
|
-
args: [{ providedIn: 'root' }]
|
|
80
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
81
|
-
type: Inject,
|
|
82
|
-
args: [SD_PERMISSION_CONFIGURATION]
|
|
83
|
-
}] }, { type: i1.SdCacheService }] });
|
|
84
|
-
|
|
85
|
-
class SdPermissionDirective {
|
|
86
|
-
templateRef;
|
|
87
|
-
viewContainerRef;
|
|
88
|
-
permissionService;
|
|
89
|
-
// Nếu là mảng thì chỉ cần có 1 permission trong mảng đó xem như có quyền
|
|
90
|
-
set sdPermission(permission) {
|
|
91
|
-
// Nếu không gắn permisison thì render
|
|
92
|
-
if (!permission?.toString()) {
|
|
93
|
-
this.viewContainerRef.createEmbeddedView(this.templateRef);
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
// Kiểm tra permisison
|
|
97
|
-
if (this.permissionService.hasPermission(permission)) {
|
|
98
|
-
this.viewContainerRef.createEmbeddedView(this.templateRef);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
constructor(templateRef, viewContainerRef, permissionService) {
|
|
102
|
-
this.templateRef = templateRef;
|
|
103
|
-
this.viewContainerRef = viewContainerRef;
|
|
104
|
-
this.permissionService = permissionService;
|
|
105
|
-
}
|
|
106
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdPermissionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: SdPermissionService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
107
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: SdPermissionDirective, isStandalone: true, selector: "[sdPermission]", inputs: { sdPermission: "sdPermission" }, ngImport: i0 });
|
|
108
|
-
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdPermissionDirective, decorators: [{
|
|
110
|
-
type: Directive,
|
|
111
|
-
args: [{
|
|
112
|
-
selector: '[sdPermission]',
|
|
113
|
-
}]
|
|
114
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: SdPermissionService }], propDecorators: { sdPermission: [{
|
|
115
|
-
type: Input
|
|
116
|
-
}] } });
|
|
117
|
-
|
|
118
|
-
class SdPermissionGuard {
|
|
119
|
-
configuration;
|
|
120
|
-
permissionService;
|
|
121
|
-
constructor(configuration, permissionService) {
|
|
122
|
-
this.configuration = configuration;
|
|
123
|
-
this.permissionService = permissionService;
|
|
124
|
-
}
|
|
125
|
-
canActivate = async (next, state) => {
|
|
126
|
-
// Đảm bảo permission đã được loaded
|
|
127
|
-
await this.permissionService.loadPermissions().catch(console.error);
|
|
128
|
-
return true;
|
|
129
|
-
};
|
|
130
|
-
canActivateChild = async (activatedRoute, state) => {
|
|
131
|
-
const permission = activatedRoute.data['permission'];
|
|
132
|
-
if (this.permissionService.hasPermission(permission)) {
|
|
133
|
-
return true;
|
|
134
|
-
}
|
|
135
|
-
//
|
|
136
|
-
this.configuration?.onForbiden?.();
|
|
137
|
-
return false;
|
|
138
|
-
};
|
|
139
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdPermissionGuard, deps: [{ token: SD_PERMISSION_CONFIGURATION }, { token: SdPermissionService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
140
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdPermissionGuard, providedIn: 'root' });
|
|
141
|
-
}
|
|
142
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SdPermissionGuard, decorators: [{
|
|
143
|
-
type: Injectable,
|
|
144
|
-
args: [{ providedIn: 'root' }]
|
|
145
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
146
|
-
type: Inject,
|
|
147
|
-
args: [SD_PERMISSION_CONFIGURATION]
|
|
148
|
-
}] }, { type: SdPermissionService }] });
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Generated bundle index. Do not edit.
|
|
152
|
-
*/
|
|
153
|
-
|
|
154
|
-
export { SD_PERMISSION_CONFIGURATION, SdPermissionDirective, SdPermissionGuard, SdPermissionService };
|
|
155
|
-
//# sourceMappingURL=sd-angular-core-guards-permission.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-guards-permission.mjs","sources":["../../../projects/sd-angular/guards/permission/src/configurations/permission.configuration.ts","../../../projects/sd-angular/guards/permission/src/services/permission.service.ts","../../../projects/sd-angular/guards/permission/src/directives/permission.directive.ts","../../../projects/sd-angular/guards/permission/src/guards/permission.guard.ts","../../../projects/sd-angular/guards/permission/sd-angular-core-guards-permission.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport interface ISdPermissionConfiguration {\r\n disabled?: boolean; // Vô hiệu việc kiểm tra permission, mục đích để test chức năng khi chưa có permisison\r\n loadPermissions: () => Promise<string[]>;\r\n onForbiden?: () => void; // Xử lý khi không có quyền truy cập vào URL\r\n getToken?: () => Promise<string | undefined | null> | string | undefined | null; // Lấy thông tin token\r\n}\r\n\r\nexport const SD_PERMISSION_CONFIGURATION = new InjectionToken<ISdPermissionConfiguration>('sd-permission.configuration');\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { SdCache, SdCacheService } from '@sd-angular/core/services/cache';\r\nimport { ArrayUtilities } from '@sd-angular/core/utilities/extensions';\r\nimport { ISdPermissionConfiguration, SD_PERMISSION_CONFIGURATION } from '../configurations';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SdPermissionService {\r\n #permission: Record<string, boolean> = {};\r\n #permissions: SdCache<string[]>;\r\n #loaded = false;\r\n constructor(\r\n @Inject(SD_PERMISSION_CONFIGURATION) private configuration: ISdPermissionConfiguration,\r\n private cacheService: SdCacheService\r\n ) {\r\n this.#permissions = this.cacheService.create<string[]>('212a51fa-38d5-43b2-bd46-922d85950ba3', {\r\n type: 'session',\r\n default: [],\r\n });\r\n }\r\n\r\n loadPermissions = async () => {\r\n if (!this.#loaded) {\r\n const permissions: string[] = await this.configuration.loadPermissions().catch(err => {\r\n console.error(err);\r\n return [];\r\n });\r\n this.#permissions.set(ArrayUtilities.distinct(permissions));\r\n // Chuyển thành Object để đảm bảo kiểm tra permisison không cần phải loop array\r\n this.#permission = {};\r\n permissions.forEach(permission => (this.#permission[permission] = true));\r\n this.#loaded = true;\r\n }\r\n };\r\n\r\n hasPermission = (permission: string | string[]) => {\r\n if (!permission?.toString()) {\r\n return true;\r\n }\r\n if (this.configuration.disabled) {\r\n return true;\r\n }\r\n const permissions = Array.isArray(permission) ? permission : [permission];\r\n return permissions.some(permission => this.#permission[permission]);\r\n };\r\n\r\n getToken = async () => {\r\n if (!this.configuration.getToken) {\r\n throw new Error('[Permission] Method getToken');\r\n }\r\n const token = this.configuration.getToken();\r\n if (token instanceof Promise) {\r\n return await token;\r\n }\r\n return token;\r\n };\r\n\r\n decodeToken = async <T>(): Promise<T | null> => {\r\n const token = await this.getToken();\r\n if (!token) {\r\n return null;\r\n }\r\n try {\r\n const payload = token.split('.')[1];\r\n const base64 = payload.replace(/-/g, '+').replace(/_/g, '/');\r\n const jsonPayload = decodeURIComponent(\r\n atob(base64)\r\n .split('')\r\n .map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))\r\n .join('')\r\n );\r\n return JSON.parse(jsonPayload);\r\n } catch (error) {\r\n console.error('Invalid token', error);\r\n return null;\r\n }\r\n };\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { SdPermissionService } from '../services';\r\n\r\n@Directive({\r\n selector: '[sdPermission]',\r\n})\r\nexport class SdPermissionDirective {\r\n // Nếu là mảng thì chỉ cần có 1 permission trong mảng đó xem như có quyền\r\n @Input() set sdPermission(permission: string | string[] | undefined | null) {\r\n // Nếu không gắn permisison thì render\r\n if (!permission?.toString()) {\r\n this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n return;\r\n }\r\n // Kiểm tra permisison\r\n if (this.permissionService.hasPermission(permission)) {\r\n this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n }\r\n }\r\n\r\n constructor(\r\n private templateRef: TemplateRef<any>,\r\n private viewContainerRef: ViewContainerRef,\r\n private permissionService: SdPermissionService\r\n ) {}\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, RouterStateSnapshot } from '@angular/router';\r\nimport { ISdPermissionConfiguration, SD_PERMISSION_CONFIGURATION } from '../configurations';\r\nimport { SdPermissionService } from '../services';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SdPermissionGuard implements CanActivate, CanActivateChild {\r\n constructor(\r\n @Inject(SD_PERMISSION_CONFIGURATION)\r\n private configuration: ISdPermissionConfiguration,\r\n private permissionService: SdPermissionService\r\n ) {}\r\n\r\n canActivate = async (next: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\r\n // Đảm bảo permission đã được loaded\r\n await this.permissionService.loadPermissions().catch(console.error);\r\n return true;\r\n };\r\n\r\n canActivateChild = async (activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\r\n const permission = activatedRoute.data['permission'];\r\n if (this.permissionService.hasPermission(permission)) {\r\n return true;\r\n }\r\n //\r\n this.configuration?.onForbiden?.();\r\n return false;\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SdPermissionService"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-guards.mjs","sources":["../../../projects/sd-angular/guards/sd-angular-core-guards.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAA;;AAEG"}
|
package/guards/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@sd-angular/core/guards/permission';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './permission.configuration';
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export interface ISdPermissionConfiguration {
|
|
3
|
-
disabled?: boolean;
|
|
4
|
-
loadPermissions: () => Promise<string[]>;
|
|
5
|
-
onForbiden?: () => void;
|
|
6
|
-
getToken?: () => Promise<string | undefined | null> | string | undefined | null;
|
|
7
|
-
}
|
|
8
|
-
export declare const SD_PERMISSION_CONFIGURATION: InjectionToken<ISdPermissionConfiguration>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './permission.directive';
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { SdPermissionService } from '../services';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class SdPermissionDirective {
|
|
5
|
-
private templateRef;
|
|
6
|
-
private viewContainerRef;
|
|
7
|
-
private permissionService;
|
|
8
|
-
set sdPermission(permission: string | string[] | undefined | null);
|
|
9
|
-
constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef, permissionService: SdPermissionService);
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdPermissionDirective, never>;
|
|
11
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<SdPermissionDirective, "[sdPermission]", never, { "sdPermission": { "alias": "sdPermission"; "required": false; }; }, {}, never, never, true, never>;
|
|
12
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './permission.guard';
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ActivatedRouteSnapshot, CanActivate, CanActivateChild, RouterStateSnapshot } from '@angular/router';
|
|
2
|
-
import { ISdPermissionConfiguration } from '../configurations';
|
|
3
|
-
import { SdPermissionService } from '../services';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class SdPermissionGuard implements CanActivate, CanActivateChild {
|
|
6
|
-
private configuration;
|
|
7
|
-
private permissionService;
|
|
8
|
-
constructor(configuration: ISdPermissionConfiguration, permissionService: SdPermissionService);
|
|
9
|
-
canActivate: (next: ActivatedRouteSnapshot, state: RouterStateSnapshot) => Promise<boolean>;
|
|
10
|
-
canActivateChild: (activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) => Promise<boolean>;
|
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdPermissionGuard, never>;
|
|
12
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<SdPermissionGuard>;
|
|
13
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './permission.service';
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { SdCacheService } from '@sd-angular/core/services/cache';
|
|
2
|
-
import { ISdPermissionConfiguration } from '../configurations';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class SdPermissionService {
|
|
5
|
-
#private;
|
|
6
|
-
private configuration;
|
|
7
|
-
private cacheService;
|
|
8
|
-
constructor(configuration: ISdPermissionConfiguration, cacheService: SdCacheService);
|
|
9
|
-
loadPermissions: () => Promise<void>;
|
|
10
|
-
hasPermission: (permission: string | string[]) => boolean;
|
|
11
|
-
getToken: () => Promise<string | null | undefined>;
|
|
12
|
-
decodeToken: <T>() => Promise<T | null>;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SdPermissionService, never>;
|
|
14
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<SdPermissionService>;
|
|
15
|
-
}
|
|
Binary file
|