@flusys/ng-iam 6.2.2 → 6.3.0

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 (19) hide show
  1. package/fesm2022/{flusys-ng-iam-action-form-page.component-CqrxA8bY.mjs → flusys-ng-iam-action-form-page.component-Cz7DY6JM.mjs} +16 -24
  2. package/fesm2022/flusys-ng-iam-action-form-page.component-Cz7DY6JM.mjs.map +1 -0
  3. package/fesm2022/{flusys-ng-iam-action-list-page.component-P7YcQOur.mjs → flusys-ng-iam-action-list-page.component-D-Lhs8gW.mjs} +2 -2
  4. package/fesm2022/{flusys-ng-iam-action-list-page.component-P7YcQOur.mjs.map → flusys-ng-iam-action-list-page.component-D-Lhs8gW.mjs.map} +1 -1
  5. package/fesm2022/{flusys-ng-iam-flusys-ng-iam-D397Jg30.mjs → flusys-ng-iam-flusys-ng-iam-DW60PO5q.mjs} +287 -62
  6. package/fesm2022/flusys-ng-iam-flusys-ng-iam-DW60PO5q.mjs.map +1 -0
  7. package/fesm2022/flusys-ng-iam-permission-page.component-C1XE1Zes.mjs +203 -0
  8. package/fesm2022/flusys-ng-iam-permission-page.component-C1XE1Zes.mjs.map +1 -0
  9. package/fesm2022/{flusys-ng-iam-role-form-page.component-Cw958yl1.mjs → flusys-ng-iam-role-form-page.component-DMDQjumX.mjs} +2 -2
  10. package/fesm2022/{flusys-ng-iam-role-form-page.component-Cw958yl1.mjs.map → flusys-ng-iam-role-form-page.component-DMDQjumX.mjs.map} +1 -1
  11. package/fesm2022/{flusys-ng-iam-role-list-page.component-Cu3NxRWX.mjs → flusys-ng-iam-role-list-page.component-CUzEIuzS.mjs} +2 -2
  12. package/fesm2022/{flusys-ng-iam-role-list-page.component-Cu3NxRWX.mjs.map → flusys-ng-iam-role-list-page.component-CUzEIuzS.mjs.map} +1 -1
  13. package/fesm2022/flusys-ng-iam.mjs +1 -1
  14. package/package.json +5 -5
  15. package/types/flusys-ng-iam.d.ts +28 -5
  16. package/fesm2022/flusys-ng-iam-action-form-page.component-CqrxA8bY.mjs.map +0 -1
  17. package/fesm2022/flusys-ng-iam-flusys-ng-iam-D397Jg30.mjs.map +0 -1
  18. package/fesm2022/flusys-ng-iam-permission-page.component-DhwjuKxl.mjs +0 -143
  19. package/fesm2022/flusys-ng-iam-permission-page.component-DhwjuKxl.mjs.map +0 -1
@@ -1,143 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, signal, computed, effect, untracked, Component } from '@angular/core';
3
- import { COMPANY_ACTION_PERMISSIONS, USER_ACTION_PERMISSIONS, USER_ROLE_PERMISSIONS, ROLE_ACTION_PERMISSIONS, AngularModule, HasPermissionDirective, TranslatePipe } from '@flusys/ng-shared';
4
- import { APP_CONFIG, getPermissionMode, isCompanyFeatureEnabled } from '@flusys/ng-core';
5
- import { b as RoleActionSelectorComponent, C as CompanyActionSelectorComponent, U as UserRoleSelectorComponent, d as UserActionSelectorComponent } from './flusys-ng-iam-flusys-ng-iam-D397Jg30.mjs';
6
- import * as i2 from '@flusys/ng-ui';
7
- import { UiModule } from '@flusys/ng-ui';
8
-
9
- /** Permission codes for each tab */
10
- const TAB_PERMISSIONS = {
11
- 'role-actions': ROLE_ACTION_PERMISSIONS.READ,
12
- 'user-roles': USER_ROLE_PERMISSIONS.READ,
13
- 'user-actions': USER_ACTION_PERMISSIONS.READ,
14
- 'company-actions': COMPANY_ACTION_PERMISSIONS.READ,
15
- };
16
- /** Main permission management interface with tabs for role/user/company permission assignment */
17
- class PermissionPageComponent {
18
- appConfig = inject(APP_CONFIG);
19
- activeTab = signal('', /* @ts-ignore */
20
- ...(ngDevMode ? [{ debugName: "activeTab" }] : /* istanbul ignore next */ []));
21
- /** Available tabs based on permission mode */
22
- availableTabs = computed(() => {
23
- const permissionMode = getPermissionMode(this.appConfig);
24
- const tabs = [];
25
- if (permissionMode === 'rbac' || permissionMode === 'full') {
26
- tabs.push({ id: 'role-actions', labelKey: 'iam.permission.role.actions', icon: 'shield', permission: TAB_PERMISSIONS['role-actions'] }, { id: 'user-roles', labelKey: 'iam.permission.user.roles', icon: 'user', permission: TAB_PERMISSIONS['user-roles'] });
27
- }
28
- if (permissionMode === 'direct' || permissionMode === 'full') {
29
- tabs.push({ id: 'user-actions', labelKey: 'iam.permission.user.actions', icon: 'key', permission: TAB_PERMISSIONS['user-actions'] });
30
- }
31
- if (isCompanyFeatureEnabled(this.appConfig)) {
32
- tabs.push({ id: 'company-actions', labelKey: 'iam.permission.company.actions', icon: 'building', permission: TAB_PERMISSIONS['company-actions'] });
33
- }
34
- return tabs;
35
- }, /* @ts-ignore */
36
- ...(ngDevMode ? [{ debugName: "availableTabs" }] : /* istanbul ignore next */ []));
37
- constructor() {
38
- effect(() => {
39
- const tabs = this.availableTabs();
40
- const currentTab = untracked(() => this.activeTab());
41
- if (!currentTab || !tabs.some((t) => t.id === currentTab)) {
42
- if (tabs.length > 0) {
43
- this.activeTab.set(tabs[0].id);
44
- }
45
- }
46
- });
47
- }
48
- setActiveTab(tabId) {
49
- this.activeTab.set(tabId);
50
- }
51
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: PermissionPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: PermissionPageComponent, isStandalone: true, selector: "lib-permission-page", ngImport: i0, template: `
53
- <div class="card">
54
- <h3 class="text-xl font-semibold mb-4">{{ 'iam.permission.title' | translate }}</h3>
55
-
56
- <div class="scrollbar-hide flex gap-2 mb-4 overflow-x-auto flex-nowrap">
57
- @for (tab of availableTabs(); track tab.id) {
58
- <button
59
- fButton
60
- *hasPermission="tab.permission"
61
- [outlined]="activeTab() !== tab.id"
62
- size="small"
63
- class="shrink-0"
64
- (click)="setActiveTab(tab.id)"
65
- >
66
- <ui-icon pButtonIcon [name]="tab.icon"></ui-icon>
67
- <span pButtonLabel>{{ tab.labelKey | translate }}</span>
68
- </button>
69
- }
70
- </div>
71
-
72
- <div class="mt-4">
73
- @switch (activeTab()) {
74
- @case ('role-actions') {
75
- <flusys-role-action-selector />
76
- }
77
- @case ('user-roles') {
78
- <flusys-user-role-selector />
79
- }
80
- @case ('user-actions') {
81
- <flusys-user-action-selector />
82
- }
83
- @case ('company-actions') {
84
- <flusys-company-action-selector />
85
- }
86
- }
87
- </div>
88
- </div>
89
- `, isInline: true, styles: [".scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}\n"], dependencies: [{ kind: "ngmodule", type: AngularModule }, { kind: "ngmodule", type: UiModule }, { kind: "directive", type: i2.FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: i2.UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "directive", type: HasPermissionDirective, selector: "[hasPermission]", inputs: ["hasPermission"] }, { kind: "component", type: RoleActionSelectorComponent, selector: "flusys-role-action-selector" }, { kind: "component", type: CompanyActionSelectorComponent, selector: "flusys-company-action-selector" }, { kind: "component", type: UserRoleSelectorComponent, selector: "flusys-user-role-selector" }, { kind: "component", type: UserActionSelectorComponent, selector: "flusys-user-action-selector" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
90
- }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: PermissionPageComponent, decorators: [{
92
- type: Component,
93
- args: [{ selector: 'lib-permission-page', imports: [
94
- AngularModule,
95
- UiModule,
96
- HasPermissionDirective,
97
- TranslatePipe,
98
- RoleActionSelectorComponent,
99
- CompanyActionSelectorComponent,
100
- UserRoleSelectorComponent,
101
- UserActionSelectorComponent
102
- ], template: `
103
- <div class="card">
104
- <h3 class="text-xl font-semibold mb-4">{{ 'iam.permission.title' | translate }}</h3>
105
-
106
- <div class="scrollbar-hide flex gap-2 mb-4 overflow-x-auto flex-nowrap">
107
- @for (tab of availableTabs(); track tab.id) {
108
- <button
109
- fButton
110
- *hasPermission="tab.permission"
111
- [outlined]="activeTab() !== tab.id"
112
- size="small"
113
- class="shrink-0"
114
- (click)="setActiveTab(tab.id)"
115
- >
116
- <ui-icon pButtonIcon [name]="tab.icon"></ui-icon>
117
- <span pButtonLabel>{{ tab.labelKey | translate }}</span>
118
- </button>
119
- }
120
- </div>
121
-
122
- <div class="mt-4">
123
- @switch (activeTab()) {
124
- @case ('role-actions') {
125
- <flusys-role-action-selector />
126
- }
127
- @case ('user-roles') {
128
- <flusys-user-role-selector />
129
- }
130
- @case ('user-actions') {
131
- <flusys-user-action-selector />
132
- }
133
- @case ('company-actions') {
134
- <flusys-company-action-selector />
135
- }
136
- }
137
- </div>
138
- </div>
139
- `, styles: [".scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}\n"] }]
140
- }], ctorParameters: () => [] });
141
-
142
- export { PermissionPageComponent };
143
- //# sourceMappingURL=flusys-ng-iam-permission-page.component-DhwjuKxl.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flusys-ng-iam-permission-page.component-DhwjuKxl.mjs","sources":["../../../projects/ng-iam/pages/permission/permission-page.component.ts"],"sourcesContent":["import { Component, computed, effect, inject, signal, untracked } from '@angular/core';\nimport {\n AngularModule,\n HasPermissionDirective,\n ROLE_ACTION_PERMISSIONS,\n USER_ROLE_PERMISSIONS,\n USER_ACTION_PERMISSIONS,\n COMPANY_ACTION_PERMISSIONS,\n TranslatePipe,\n} from '@flusys/ng-shared';\nimport { APP_CONFIG, getPermissionMode, isCompanyFeatureEnabled } from '@flusys/ng-core';\nimport { RoleActionSelectorComponent } from '../../components/role-action-selector.component';\nimport { CompanyActionSelectorComponent } from '../../components/company-action-selector.component';\nimport { UserRoleSelectorComponent } from '../../components/user-role-selector.component';\nimport { UserActionSelectorComponent } from '../../components/user-action-selector.component';\nimport { UiModule } from '@flusys/ng-ui';\n\n/** Permission codes for each tab */\nconst TAB_PERMISSIONS = {\n 'role-actions': ROLE_ACTION_PERMISSIONS.READ,\n 'user-roles': USER_ROLE_PERMISSIONS.READ,\n 'user-actions': USER_ACTION_PERMISSIONS.READ,\n 'company-actions': COMPANY_ACTION_PERMISSIONS.READ,\n} as const;\n\n/** Main permission management interface with tabs for role/user/company permission assignment */\n@Component({\n selector: 'lib-permission-page',\n imports: [\n AngularModule,\n UiModule,\n HasPermissionDirective,\n TranslatePipe,\n RoleActionSelectorComponent,\n CompanyActionSelectorComponent,\n UserRoleSelectorComponent,\n UserActionSelectorComponent\n ],\n styles: `\n .scrollbar-hide {\n -ms-overflow-style: none;\n scrollbar-width: none;\n &::-webkit-scrollbar { display: none; }\n }\n `,\n template: `\n <div class=\"card\">\n <h3 class=\"text-xl font-semibold mb-4\">{{ 'iam.permission.title' | translate }}</h3>\n\n <div class=\"scrollbar-hide flex gap-2 mb-4 overflow-x-auto flex-nowrap\">\n @for (tab of availableTabs(); track tab.id) {\n <button\n fButton\n *hasPermission=\"tab.permission\"\n [outlined]=\"activeTab() !== tab.id\"\n size=\"small\"\n class=\"shrink-0\"\n (click)=\"setActiveTab(tab.id)\"\n >\n <ui-icon pButtonIcon [name]=\"tab.icon\"></ui-icon>\n <span pButtonLabel>{{ tab.labelKey | translate }}</span>\n </button>\n }\n </div>\n\n <div class=\"mt-4\">\n @switch (activeTab()) {\n @case ('role-actions') {\n <flusys-role-action-selector />\n }\n @case ('user-roles') {\n <flusys-user-role-selector />\n }\n @case ('user-actions') {\n <flusys-user-action-selector />\n }\n @case ('company-actions') {\n <flusys-company-action-selector />\n }\n }\n </div>\n </div>\n `,\n})\nexport class PermissionPageComponent {\n private readonly appConfig = inject(APP_CONFIG);\n\n readonly activeTab = signal<string>('');\n\n /** Available tabs based on permission mode */\n readonly availableTabs = computed(() => {\n const permissionMode = getPermissionMode(this.appConfig);\n const tabs: Array<{ id: string; labelKey: string; icon: string; permission: string }> = [];\n\n if (permissionMode === 'rbac' || permissionMode === 'full') {\n tabs.push(\n { id: 'role-actions', labelKey: 'iam.permission.role.actions', icon: 'shield', permission: TAB_PERMISSIONS['role-actions'] },\n { id: 'user-roles', labelKey: 'iam.permission.user.roles', icon: 'user', permission: TAB_PERMISSIONS['user-roles'] }\n );\n }\n\n if (permissionMode === 'direct' || permissionMode === 'full') {\n tabs.push({ id: 'user-actions', labelKey: 'iam.permission.user.actions', icon: 'key', permission: TAB_PERMISSIONS['user-actions'] });\n }\n\n if (isCompanyFeatureEnabled(this.appConfig)) {\n tabs.push({ id: 'company-actions', labelKey: 'iam.permission.company.actions', icon: 'building', permission: TAB_PERMISSIONS['company-actions'] });\n }\n\n return tabs;\n });\n\n constructor() {\n effect(() => {\n const tabs = this.availableTabs();\n const currentTab = untracked(() => this.activeTab());\n if (!currentTab || !tabs.some((t) => t.id === currentTab)) {\n if (tabs.length > 0) {\n this.activeTab.set(tabs[0].id);\n }\n }\n });\n }\n\n setActiveTab(tabId: string): void {\n this.activeTab.set(tabId);\n }\n}\n"],"names":["i1"],"mappings":"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"}