cloud-ide-layout 1.0.25 → 1.0.26
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/fesm2022/{cloud-ide-layout-cloud-ide-layout-B7zJJ9zM.mjs → cloud-ide-layout-cloud-ide-layout-o_bwZvM8.mjs} +415 -288
- package/fesm2022/{cloud-ide-layout-cloud-ide-layout-B7zJJ9zM.mjs.map → cloud-ide-layout-cloud-ide-layout-o_bwZvM8.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-layout-drawer-theme.component-gmPE1a4W.mjs → cloud-ide-layout-drawer-theme.component-CdUqFP29.mjs} +2 -2
- package/fesm2022/{cloud-ide-layout-drawer-theme.component-gmPE1a4W.mjs.map → cloud-ide-layout-drawer-theme.component-CdUqFP29.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-layout-home-wrapper.component-iPkvBOgE.mjs → cloud-ide-layout-home-wrapper.component-DegRTEPv.mjs} +2 -2
- package/fesm2022/{cloud-ide-layout-home-wrapper.component-iPkvBOgE.mjs.map → cloud-ide-layout-home-wrapper.component-DegRTEPv.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-layout-sidedrawer-notes.component-OKwCnhEf.mjs → cloud-ide-layout-sidedrawer-notes.component-meLfK8As.mjs} +2 -2
- package/fesm2022/{cloud-ide-layout-sidedrawer-notes.component-OKwCnhEf.mjs.map → cloud-ide-layout-sidedrawer-notes.component-meLfK8As.mjs.map} +1 -1
- package/fesm2022/cloud-ide-layout.mjs +1 -1
- package/index.d.ts +5 -0
- package/package.json +1 -1
|
@@ -2653,8 +2653,8 @@ class CideLytSidedrawerWrapperComponent {
|
|
|
2653
2653
|
}
|
|
2654
2654
|
ngOnInit() {
|
|
2655
2655
|
// Initialize the component map (You'd likely populate this from a config or service)
|
|
2656
|
-
this.componentMap['drowar_notes'] = () => import('./cloud-ide-layout-sidedrawer-notes.component-
|
|
2657
|
-
this.componentMap['drawer_theme'] = () => import('./cloud-ide-layout-drawer-theme.component-
|
|
2656
|
+
this.componentMap['drowar_notes'] = () => import('./cloud-ide-layout-sidedrawer-notes.component-meLfK8As.mjs').then(m => m.CideLytSidedrawerNotesComponent);
|
|
2657
|
+
this.componentMap['drawer_theme'] = () => import('./cloud-ide-layout-drawer-theme.component-CdUqFP29.mjs').then(m => m.CideLytDrawerThemeComponent);
|
|
2658
2658
|
}
|
|
2659
2659
|
async loadComponent(configFor) {
|
|
2660
2660
|
console.log('🔍 SIDEDRAWER - Loading component:', configFor, 'Current tab:', this.currentTabId);
|
|
@@ -3042,7 +3042,7 @@ const layoutControlPannelChildRoutes = [{
|
|
|
3042
3042
|
},
|
|
3043
3043
|
{
|
|
3044
3044
|
path: "home",
|
|
3045
|
-
loadComponent: () => import('./cloud-ide-layout-home-wrapper.component-
|
|
3045
|
+
loadComponent: () => import('./cloud-ide-layout-home-wrapper.component-DegRTEPv.mjs').then(c => c.CideLytHomeWrapperComponent),
|
|
3046
3046
|
canActivate: [authGuard],
|
|
3047
3047
|
data: {
|
|
3048
3048
|
reuseTab: true, // For CustomRouteReuseStrategy
|
|
@@ -3304,17 +3304,26 @@ class CideLytFloatingEntityRightsSharingComponent {
|
|
|
3304
3304
|
close = new EventEmitter();
|
|
3305
3305
|
save = new EventEmitter();
|
|
3306
3306
|
fb = inject(FormBuilder);
|
|
3307
|
+
// Tabs
|
|
3308
|
+
selectedTab = signal('user', ...(ngDevMode ? [{ debugName: "selectedTab" }] : []));
|
|
3307
3309
|
// State signals
|
|
3308
3310
|
entities = signal([], ...(ngDevMode ? [{ debugName: "entities" }] : []));
|
|
3309
3311
|
selectedEntityId = signal('', ...(ngDevMode ? [{ debugName: "selectedEntityId" }] : []));
|
|
3310
3312
|
entitiesLoading = signal(false, ...(ngDevMode ? [{ debugName: "entitiesLoading" }] : []));
|
|
3311
3313
|
accessPassLoading = signal(false, ...(ngDevMode ? [{ debugName: "accessPassLoading" }] : []));
|
|
3312
3314
|
saving = signal(false, ...(ngDevMode ? [{ debugName: "saving" }] : []));
|
|
3315
|
+
// Hierarchy state (mock)
|
|
3316
|
+
hierarchy = signal([], ...(ngDevMode ? [{ debugName: "hierarchy" }] : []));
|
|
3317
|
+
hierarchyLoading = signal(false, ...(ngDevMode ? [{ debugName: "hierarchyLoading" }] : []));
|
|
3313
3318
|
// Form
|
|
3314
3319
|
rightsForm;
|
|
3315
3320
|
ngOnInit() {
|
|
3316
3321
|
this.initializeForm();
|
|
3317
3322
|
this.loadEntities();
|
|
3323
|
+
this.loadHierarchy();
|
|
3324
|
+
}
|
|
3325
|
+
selectTab(tab) {
|
|
3326
|
+
this.selectedTab.set(tab);
|
|
3318
3327
|
}
|
|
3319
3328
|
initializeForm() {
|
|
3320
3329
|
this.rightsForm = this.fb.group({
|
|
@@ -3357,6 +3366,24 @@ class CideLytFloatingEntityRightsSharingComponent {
|
|
|
3357
3366
|
this.entitiesLoading.set(false);
|
|
3358
3367
|
}
|
|
3359
3368
|
}
|
|
3369
|
+
async loadHierarchy() {
|
|
3370
|
+
this.hierarchyLoading.set(true);
|
|
3371
|
+
try {
|
|
3372
|
+
// Mock hierarchy uses same type for simplicity
|
|
3373
|
+
const mockHierarchy = [
|
|
3374
|
+
{ _id: 'root', syen_name: 'Root Entity', syen_entity_code: 'R001', syen_isactive: true },
|
|
3375
|
+
{ _id: 'child-1', syen_name: 'Department A', syen_entity_code: 'D-A', syen_isactive: true },
|
|
3376
|
+
{ _id: 'child-2', syen_name: 'Department B', syen_entity_code: 'D-B', syen_isactive: true }
|
|
3377
|
+
];
|
|
3378
|
+
this.hierarchy.set(mockHierarchy);
|
|
3379
|
+
}
|
|
3380
|
+
catch (err) {
|
|
3381
|
+
console.error('Error loading hierarchy:', err);
|
|
3382
|
+
}
|
|
3383
|
+
finally {
|
|
3384
|
+
this.hierarchyLoading.set(false);
|
|
3385
|
+
}
|
|
3386
|
+
}
|
|
3360
3387
|
selectEntity(entityId) {
|
|
3361
3388
|
this.selectedEntityId.set(entityId);
|
|
3362
3389
|
this.loadAccessPassData();
|
|
@@ -3406,148 +3433,198 @@ class CideLytFloatingEntityRightsSharingComponent {
|
|
|
3406
3433
|
this.close.emit();
|
|
3407
3434
|
}
|
|
3408
3435
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideLytFloatingEntityRightsSharingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3409
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: CideLytFloatingEntityRightsSharingComponent, isStandalone: true, selector: "cide-lyt-floating-entity-rights-sharing", inputs: { data: "data" }, outputs: { close: "close", save: "save" }, ngImport: i0, template: `
|
|
3410
|
-
<!-- Entity Rights Sharing Content -->
|
|
3411
|
-
<div class="tw-p-4 tw-overflow-y-auto tw-max-h-[calc(80vh-120px)] tw-scrollbar-thin tw-scrollbar-thumb-gray-300 tw-scrollbar-track-transparent tw-select-none">
|
|
3412
|
-
<!--
|
|
3413
|
-
<div class="tw-mb-
|
|
3414
|
-
|
|
3415
|
-
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
|
|
3424
|
-
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
|
|
3428
|
-
|
|
3429
|
-
|
|
3430
|
-
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
|
|
3438
|
-
|
|
3439
|
-
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
|
|
3499
|
-
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3505
|
-
|
|
3506
|
-
|
|
3507
|
-
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
|
|
3511
|
-
|
|
3512
|
-
|
|
3513
|
-
|
|
3514
|
-
|
|
3515
|
-
|
|
3516
|
-
</cide-ele-
|
|
3517
|
-
|
|
3518
|
-
|
|
3519
|
-
<
|
|
3520
|
-
|
|
3521
|
-
|
|
3522
|
-
|
|
3523
|
-
|
|
3524
|
-
|
|
3525
|
-
|
|
3526
|
-
|
|
3527
|
-
|
|
3528
|
-
|
|
3529
|
-
|
|
3530
|
-
|
|
3531
|
-
|
|
3532
|
-
</
|
|
3533
|
-
|
|
3534
|
-
|
|
3535
|
-
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
|
|
3543
|
-
|
|
3544
|
-
|
|
3545
|
-
|
|
3546
|
-
|
|
3547
|
-
|
|
3548
|
-
|
|
3549
|
-
|
|
3550
|
-
|
|
3436
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: CideLytFloatingEntityRightsSharingComponent, isStandalone: true, selector: "cide-lyt-floating-entity-rights-sharing", inputs: { data: "data" }, outputs: { close: "close", save: "save" }, ngImport: i0, template: `
|
|
3437
|
+
<!-- Entity Rights Sharing Content -->
|
|
3438
|
+
<div class="tw-p-4 tw-overflow-y-auto tw-max-h-[calc(80vh-120px)] tw-scrollbar-thin tw-scrollbar-thumb-gray-300 tw-scrollbar-track-transparent tw-select-none">
|
|
3439
|
+
<!-- Tabs / Pills -->
|
|
3440
|
+
<div class="tw-mb-3 tw-flex tw-items-center tw-gap-2">
|
|
3441
|
+
<button type="button"
|
|
3442
|
+
class="tw-text-xs tw-font-medium tw-rounded-full tw-px-3 tw-py-1 tw-transition-colors"
|
|
3443
|
+
[class.tw-bg-blue-600]="selectedTab() === 'user'"
|
|
3444
|
+
[class.tw-text-white]="selectedTab() === 'user'"
|
|
3445
|
+
[class.tw-bg-gray-100]="selectedTab() !== 'user'"
|
|
3446
|
+
[class.tw-text-gray-700]="selectedTab() !== 'user'"
|
|
3447
|
+
(click)="selectTab('user')">
|
|
3448
|
+
User Linked
|
|
3449
|
+
</button>
|
|
3450
|
+
<button type="button"
|
|
3451
|
+
class="tw-text-xs tw-font-medium tw-rounded-full tw-px-3 tw-py-1 tw-transition-colors"
|
|
3452
|
+
[class.tw-bg-blue-600]="selectedTab() === 'hierarchy'"
|
|
3453
|
+
[class.tw-text-white]="selectedTab() === 'hierarchy'"
|
|
3454
|
+
[class.tw-bg-gray-100]="selectedTab() !== 'hierarchy'"
|
|
3455
|
+
[class.tw-text-gray-700]="selectedTab() !== 'hierarchy'"
|
|
3456
|
+
(click)="selectTab('hierarchy')">
|
|
3457
|
+
Entity Hierarchy
|
|
3458
|
+
</button>
|
|
3459
|
+
</div>
|
|
3460
|
+
|
|
3461
|
+
<!-- User Linked Entities -->
|
|
3462
|
+
@if (selectedTab() === 'user') {
|
|
3463
|
+
<div class="tw-mb-4">
|
|
3464
|
+
|
|
3465
|
+
@if (entitiesLoading()) {
|
|
3466
|
+
<div class="tw-flex tw-items-center tw-justify-center tw-py-6">
|
|
3467
|
+
<cide-ele-spinner size="sm"></cide-ele-spinner>
|
|
3468
|
+
<span class="tw-ml-3 tw-text-gray-600 tw-text-sm">Loading entities...</span>
|
|
3469
|
+
</div>
|
|
3470
|
+
} @else if (entities().length === 0) {
|
|
3471
|
+
<div class="tw-text-center tw-py-6">
|
|
3472
|
+
<div class="tw-w-10 tw-h-10 tw-bg-gray-100 tw-rounded-xl tw-flex tw-items-center tw-justify-center tw-mx-auto tw-mb-2">
|
|
3473
|
+
<cide-ele-icon class="tw-w-5 tw-h-5 tw-text-gray-400">business</cide-ele-icon>
|
|
3474
|
+
</div>
|
|
3475
|
+
<p class="tw-text-gray-500 tw-text-sm">No entities available</p>
|
|
3476
|
+
</div>
|
|
3477
|
+
} @else {
|
|
3478
|
+
<div class="tw-space-y-2">
|
|
3479
|
+
@defer (when entities().length > 0) {
|
|
3480
|
+
@for (entity of entities(); track entity._id || entity.syen_name) {
|
|
3481
|
+
<div class="tw-bg-white tw-bg-opacity-80 tw-backdrop-blur-sm tw-border tw-border-gray-200 tw-border-opacity-50 tw-rounded-xl tw-p-3 tw-cursor-pointer tw-transition-all tw-duration-200 hover:tw-shadow-md hover:tw-border-blue-300 hover:tw-border-opacity-50 hover:tw-scale-[1.01] tw-group tw-select-none"
|
|
3482
|
+
[class.tw-border-blue-500]="selectedEntityId() === entity._id"
|
|
3483
|
+
[class.tw-bg-blue-50]="selectedEntityId() === entity._id"
|
|
3484
|
+
(click)="selectEntity(entity._id || '')">
|
|
3485
|
+
<div class="tw-flex tw-items-start tw-space-x-3">
|
|
3486
|
+
<div class="tw-w-6 tw-h-6 tw-bg-gray-100 tw-rounded-lg tw-flex tw-items-center tw-justify-center tw-flex-shrink-0">
|
|
3487
|
+
<cide-ele-icon class="tw-text-gray-600">person</cide-ele-icon>
|
|
3488
|
+
</div>
|
|
3489
|
+
<div class="tw-flex-1 tw-min-w-0">
|
|
3490
|
+
<div class="tw-flex tw-items-center tw-space-x-2 tw-mb-1">
|
|
3491
|
+
<h4 class="tw-text-sm tw-font-semibold tw-text-gray-900 tw-truncate">{{ entity.syen_name }}</h4>
|
|
3492
|
+
@if (entity._id === 'owner-entity') {
|
|
3493
|
+
<div class="tw-inline-flex tw-items-center tw-px-2 tw-py-0.5 tw-rounded-full tw-text-xs tw-font-medium tw-bg-green-100 tw-text-green-800 tw-space-x-1">
|
|
3494
|
+
<cide-ele-icon>admin_panel_settings</cide-ele-icon>
|
|
3495
|
+
<span>Owner</span>
|
|
3496
|
+
</div>
|
|
3497
|
+
}
|
|
3498
|
+
</div>
|
|
3499
|
+
<div class="tw-flex tw-items-center tw-space-x-3">
|
|
3500
|
+
<div class="tw-flex tw-items-center tw-space-x-1">
|
|
3501
|
+
<cide-ele-icon class="tw-text-gray-400">visibility</cide-ele-icon>
|
|
3502
|
+
<span class="tw-text-xs tw-text-gray-500">View</span>
|
|
3503
|
+
</div>
|
|
3504
|
+
<div class="tw-flex tw-items-center tw-space-x-1">
|
|
3505
|
+
<cide-ele-icon class="tw-text-gray-400">edit</cide-ele-icon>
|
|
3506
|
+
<span class="tw-text-xs tw-text-gray-500">Edit</span>
|
|
3507
|
+
</div>
|
|
3508
|
+
</div>
|
|
3509
|
+
</div>
|
|
3510
|
+
@if (selectedEntityId() === entity._id) {
|
|
3511
|
+
<div class="tw-w-4 tw-h-4 tw-bg-green-500 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-flex-shrink-0">
|
|
3512
|
+
<cide-ele-icon class="tw-text-white">done</cide-ele-icon>
|
|
3513
|
+
</div>
|
|
3514
|
+
}
|
|
3515
|
+
</div>
|
|
3516
|
+
</div>
|
|
3517
|
+
}
|
|
3518
|
+
} @placeholder {
|
|
3519
|
+
<div class="tw-flex tw-items-center tw-justify-center tw-py-4">
|
|
3520
|
+
<cide-ele-spinner size="sm"></cide-ele-spinner>
|
|
3521
|
+
<span class="tw-ml-2 tw-text-sm tw-text-gray-600">Loading entities...</span>
|
|
3522
|
+
</div>
|
|
3523
|
+
}
|
|
3524
|
+
</div>
|
|
3525
|
+
}
|
|
3526
|
+
</div>
|
|
3527
|
+
}
|
|
3528
|
+
|
|
3529
|
+
<!-- Entity Hierarchy -->
|
|
3530
|
+
@if (selectedTab() === 'hierarchy') {
|
|
3531
|
+
<div class="tw-mb-4">
|
|
3532
|
+
@if (hierarchyLoading()) {
|
|
3533
|
+
<div class="tw-flex tw-items-center tw-justify-center tw-py-6">
|
|
3534
|
+
<cide-ele-spinner size="sm"></cide-ele-spinner>
|
|
3535
|
+
<span class="tw-ml-3 tw-text-gray-600 tw-text-sm">Loading hierarchy...</span>
|
|
3536
|
+
</div>
|
|
3537
|
+
} @else {
|
|
3538
|
+
<div class="tw-space-y-2">
|
|
3539
|
+
@for (node of hierarchy(); track node._id) {
|
|
3540
|
+
<div class="tw-bg-white tw-border tw-border-gray-200 tw-rounded-xl tw-p-3">
|
|
3541
|
+
<div class="tw-flex tw-items-center tw-justify-between">
|
|
3542
|
+
<div class="tw-flex tw-items-center tw-gap-2">
|
|
3543
|
+
<cide-ele-icon class="tw-text-gray-500">account_tree</cide-ele-icon>
|
|
3544
|
+
<span class="tw-text-sm tw-font-medium tw-text-gray-800">{{ node.syen_name }}</span>
|
|
3545
|
+
</div>
|
|
3546
|
+
<span class="tw-text-xs tw-text-gray-500">Code: {{ node.syen_entity_code }}</span>
|
|
3547
|
+
</div>
|
|
3548
|
+
</div>
|
|
3549
|
+
}
|
|
3550
|
+
</div>
|
|
3551
|
+
}
|
|
3552
|
+
</div>
|
|
3553
|
+
}
|
|
3554
|
+
|
|
3555
|
+
<!-- Rights Management -->
|
|
3556
|
+
@if (selectedEntityId()) {
|
|
3557
|
+
<div class="tw-bg-white tw-bg-opacity-80 tw-backdrop-blur-sm tw-border tw-border-gray-200 tw-border-opacity-50 tw-rounded-xl tw-p-3 tw-shadow-sm">
|
|
3558
|
+
<div class="tw-flex tw-items-center tw-space-x-2 tw-mb-3">
|
|
3559
|
+
<cide-ele-icon class="tw-text-green-600">security</cide-ele-icon>
|
|
3560
|
+
<h3 class="tw-text-sm tw-font-semibold tw-text-gray-900">Manage Rights</h3>
|
|
3561
|
+
</div>
|
|
3562
|
+
|
|
3563
|
+
@if (accessPassLoading()) {
|
|
3564
|
+
<div class="tw-flex tw-items-center tw-justify-center tw-min-h-[80px]">
|
|
3565
|
+
<cide-ele-spinner size="sm"></cide-ele-spinner>
|
|
3566
|
+
<span class="tw-ml-3 tw-text-gray-600 tw-text-sm">Loading...</span>
|
|
3567
|
+
</div>
|
|
3568
|
+
} @else {
|
|
3569
|
+
@defer (when !accessPassLoading()) {
|
|
3570
|
+
<form [formGroup]="rightsForm" (ngSubmit)="saveRights()">
|
|
3571
|
+
<div class="tw-flex tw-flex-wrap tw-gap-3 tw-min-h-[80px] tw-items-center">
|
|
3572
|
+
<div class="tw-flex tw-items-center tw-space-x-2">
|
|
3573
|
+
<cide-ele-input
|
|
3574
|
+
type="checkbox"
|
|
3575
|
+
formControlName="can_view"
|
|
3576
|
+
label="View">
|
|
3577
|
+
</cide-ele-input>
|
|
3578
|
+
</div>
|
|
3579
|
+
|
|
3580
|
+
<div class="tw-flex tw-items-center tw-space-x-2">
|
|
3581
|
+
<cide-ele-input
|
|
3582
|
+
type="checkbox"
|
|
3583
|
+
formControlName="can_edit"
|
|
3584
|
+
label="Edit">
|
|
3585
|
+
</cide-ele-input>
|
|
3586
|
+
</div>
|
|
3587
|
+
|
|
3588
|
+
<div class="tw-flex tw-items-center tw-space-x-2">
|
|
3589
|
+
<cide-ele-input
|
|
3590
|
+
type="checkbox"
|
|
3591
|
+
formControlName="is_owner"
|
|
3592
|
+
label="Is Owner">
|
|
3593
|
+
</cide-ele-input>
|
|
3594
|
+
</div>
|
|
3595
|
+
|
|
3596
|
+
<div class="tw-flex tw-items-center tw-space-x-2">
|
|
3597
|
+
<cide-ele-input
|
|
3598
|
+
type="checkbox"
|
|
3599
|
+
formControlName="syepm_isactive"
|
|
3600
|
+
label="Is Active">
|
|
3601
|
+
</cide-ele-input>
|
|
3602
|
+
</div>
|
|
3603
|
+
</div>
|
|
3604
|
+
</form>
|
|
3605
|
+
} @placeholder {
|
|
3606
|
+
<div class="tw-flex tw-items-center tw-justify-center tw-min-h-[80px]">
|
|
3607
|
+
<cide-ele-spinner size="sm"></cide-ele-spinner>
|
|
3608
|
+
<span class="tw-ml-2 tw-text-sm tw-text-gray-600">Loading rights...</span>
|
|
3609
|
+
</div>
|
|
3610
|
+
}
|
|
3611
|
+
}
|
|
3612
|
+
</div>
|
|
3613
|
+
}
|
|
3614
|
+
</div>
|
|
3615
|
+
|
|
3616
|
+
<!-- Footer -->
|
|
3617
|
+
<div class="tw-bg-white tw-bg-opacity-80 tw-backdrop-blur-sm tw-px-4 tw-py-3 tw-border-t tw-border-gray-200 tw-border-opacity-30 tw-flex tw-justify-end tw-space-x-2">
|
|
3618
|
+
<button cideEleButton variant="secondary" size="xs" type="button" (click)="onCancel()">
|
|
3619
|
+
Cancel
|
|
3620
|
+
</button>
|
|
3621
|
+
@if (selectedEntityId()) {
|
|
3622
|
+
<button cideEleButton variant="primary" size="xs" type="button" (click)="saveRights()"
|
|
3623
|
+
[disabled]="rightsForm.invalid || saving()" [loading]="saving()">
|
|
3624
|
+
{{ saving() ? 'Saving...' : 'Save' }}
|
|
3625
|
+
</button>
|
|
3626
|
+
}
|
|
3627
|
+
</div>
|
|
3551
3628
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: CideEleButtonComponent, selector: "button[cideEleButton], a[cideEleButton]", inputs: ["label", "variant", "size", "type", "shape", "elevation", "disabled", "id", "loading", "fullWidth", "leftIcon", "rightIcon", "customClass", "tooltip", "ariaLabel", "testId", "routerLink", "routerExtras", "preventDoubleClick", "animated"], outputs: ["btnClick", "doubleClick"] }, { kind: "component", type: CideIconComponent, selector: "cide-ele-icon", inputs: ["size", "type", "toolTip"] }, { kind: "component", type: CideSpinnerComponent, selector: "cide-ele-spinner", inputs: ["size", "type"] }], deferBlockDependencies: [() => [CideIconComponent], () => [i2$1.ɵNgNoValidate, i2$1.NgControlStatus, i2$1.NgControlStatusGroup, i2$1.FormGroupDirective, i2$1.FormControlName, CideInputComponent]] });
|
|
3552
3629
|
}
|
|
3553
3630
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideLytFloatingEntityRightsSharingComponent, decorators: [{
|
|
@@ -3559,148 +3636,198 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
|
|
|
3559
3636
|
CideInputComponent,
|
|
3560
3637
|
CideIconComponent,
|
|
3561
3638
|
CideSpinnerComponent
|
|
3562
|
-
], template: `
|
|
3563
|
-
<!-- Entity Rights Sharing Content -->
|
|
3564
|
-
<div class="tw-p-4 tw-overflow-y-auto tw-max-h-[calc(80vh-120px)] tw-scrollbar-thin tw-scrollbar-thumb-gray-300 tw-scrollbar-track-transparent tw-select-none">
|
|
3565
|
-
<!--
|
|
3566
|
-
<div class="tw-mb-
|
|
3567
|
-
|
|
3568
|
-
|
|
3569
|
-
|
|
3570
|
-
|
|
3571
|
-
|
|
3572
|
-
|
|
3573
|
-
|
|
3574
|
-
|
|
3575
|
-
|
|
3576
|
-
|
|
3577
|
-
|
|
3578
|
-
|
|
3579
|
-
|
|
3580
|
-
|
|
3581
|
-
|
|
3582
|
-
|
|
3583
|
-
|
|
3584
|
-
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
|
|
3588
|
-
|
|
3589
|
-
|
|
3590
|
-
|
|
3591
|
-
|
|
3592
|
-
|
|
3593
|
-
|
|
3594
|
-
|
|
3595
|
-
|
|
3596
|
-
|
|
3597
|
-
|
|
3598
|
-
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
|
|
3610
|
-
|
|
3611
|
-
|
|
3612
|
-
|
|
3613
|
-
|
|
3614
|
-
|
|
3615
|
-
|
|
3616
|
-
|
|
3617
|
-
|
|
3618
|
-
|
|
3619
|
-
|
|
3620
|
-
|
|
3621
|
-
|
|
3622
|
-
|
|
3623
|
-
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
|
|
3628
|
-
|
|
3629
|
-
|
|
3630
|
-
|
|
3631
|
-
|
|
3632
|
-
|
|
3633
|
-
|
|
3634
|
-
|
|
3635
|
-
|
|
3636
|
-
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
</cide-ele-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
<
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
|
|
3682
|
-
|
|
3683
|
-
|
|
3684
|
-
|
|
3685
|
-
</
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3639
|
+
], template: `
|
|
3640
|
+
<!-- Entity Rights Sharing Content -->
|
|
3641
|
+
<div class="tw-p-4 tw-overflow-y-auto tw-max-h-[calc(80vh-120px)] tw-scrollbar-thin tw-scrollbar-thumb-gray-300 tw-scrollbar-track-transparent tw-select-none">
|
|
3642
|
+
<!-- Tabs / Pills -->
|
|
3643
|
+
<div class="tw-mb-3 tw-flex tw-items-center tw-gap-2">
|
|
3644
|
+
<button type="button"
|
|
3645
|
+
class="tw-text-xs tw-font-medium tw-rounded-full tw-px-3 tw-py-1 tw-transition-colors"
|
|
3646
|
+
[class.tw-bg-blue-600]="selectedTab() === 'user'"
|
|
3647
|
+
[class.tw-text-white]="selectedTab() === 'user'"
|
|
3648
|
+
[class.tw-bg-gray-100]="selectedTab() !== 'user'"
|
|
3649
|
+
[class.tw-text-gray-700]="selectedTab() !== 'user'"
|
|
3650
|
+
(click)="selectTab('user')">
|
|
3651
|
+
User Linked
|
|
3652
|
+
</button>
|
|
3653
|
+
<button type="button"
|
|
3654
|
+
class="tw-text-xs tw-font-medium tw-rounded-full tw-px-3 tw-py-1 tw-transition-colors"
|
|
3655
|
+
[class.tw-bg-blue-600]="selectedTab() === 'hierarchy'"
|
|
3656
|
+
[class.tw-text-white]="selectedTab() === 'hierarchy'"
|
|
3657
|
+
[class.tw-bg-gray-100]="selectedTab() !== 'hierarchy'"
|
|
3658
|
+
[class.tw-text-gray-700]="selectedTab() !== 'hierarchy'"
|
|
3659
|
+
(click)="selectTab('hierarchy')">
|
|
3660
|
+
Entity Hierarchy
|
|
3661
|
+
</button>
|
|
3662
|
+
</div>
|
|
3663
|
+
|
|
3664
|
+
<!-- User Linked Entities -->
|
|
3665
|
+
@if (selectedTab() === 'user') {
|
|
3666
|
+
<div class="tw-mb-4">
|
|
3667
|
+
|
|
3668
|
+
@if (entitiesLoading()) {
|
|
3669
|
+
<div class="tw-flex tw-items-center tw-justify-center tw-py-6">
|
|
3670
|
+
<cide-ele-spinner size="sm"></cide-ele-spinner>
|
|
3671
|
+
<span class="tw-ml-3 tw-text-gray-600 tw-text-sm">Loading entities...</span>
|
|
3672
|
+
</div>
|
|
3673
|
+
} @else if (entities().length === 0) {
|
|
3674
|
+
<div class="tw-text-center tw-py-6">
|
|
3675
|
+
<div class="tw-w-10 tw-h-10 tw-bg-gray-100 tw-rounded-xl tw-flex tw-items-center tw-justify-center tw-mx-auto tw-mb-2">
|
|
3676
|
+
<cide-ele-icon class="tw-w-5 tw-h-5 tw-text-gray-400">business</cide-ele-icon>
|
|
3677
|
+
</div>
|
|
3678
|
+
<p class="tw-text-gray-500 tw-text-sm">No entities available</p>
|
|
3679
|
+
</div>
|
|
3680
|
+
} @else {
|
|
3681
|
+
<div class="tw-space-y-2">
|
|
3682
|
+
@defer (when entities().length > 0) {
|
|
3683
|
+
@for (entity of entities(); track entity._id || entity.syen_name) {
|
|
3684
|
+
<div class="tw-bg-white tw-bg-opacity-80 tw-backdrop-blur-sm tw-border tw-border-gray-200 tw-border-opacity-50 tw-rounded-xl tw-p-3 tw-cursor-pointer tw-transition-all tw-duration-200 hover:tw-shadow-md hover:tw-border-blue-300 hover:tw-border-opacity-50 hover:tw-scale-[1.01] tw-group tw-select-none"
|
|
3685
|
+
[class.tw-border-blue-500]="selectedEntityId() === entity._id"
|
|
3686
|
+
[class.tw-bg-blue-50]="selectedEntityId() === entity._id"
|
|
3687
|
+
(click)="selectEntity(entity._id || '')">
|
|
3688
|
+
<div class="tw-flex tw-items-start tw-space-x-3">
|
|
3689
|
+
<div class="tw-w-6 tw-h-6 tw-bg-gray-100 tw-rounded-lg tw-flex tw-items-center tw-justify-center tw-flex-shrink-0">
|
|
3690
|
+
<cide-ele-icon class="tw-text-gray-600">person</cide-ele-icon>
|
|
3691
|
+
</div>
|
|
3692
|
+
<div class="tw-flex-1 tw-min-w-0">
|
|
3693
|
+
<div class="tw-flex tw-items-center tw-space-x-2 tw-mb-1">
|
|
3694
|
+
<h4 class="tw-text-sm tw-font-semibold tw-text-gray-900 tw-truncate">{{ entity.syen_name }}</h4>
|
|
3695
|
+
@if (entity._id === 'owner-entity') {
|
|
3696
|
+
<div class="tw-inline-flex tw-items-center tw-px-2 tw-py-0.5 tw-rounded-full tw-text-xs tw-font-medium tw-bg-green-100 tw-text-green-800 tw-space-x-1">
|
|
3697
|
+
<cide-ele-icon>admin_panel_settings</cide-ele-icon>
|
|
3698
|
+
<span>Owner</span>
|
|
3699
|
+
</div>
|
|
3700
|
+
}
|
|
3701
|
+
</div>
|
|
3702
|
+
<div class="tw-flex tw-items-center tw-space-x-3">
|
|
3703
|
+
<div class="tw-flex tw-items-center tw-space-x-1">
|
|
3704
|
+
<cide-ele-icon class="tw-text-gray-400">visibility</cide-ele-icon>
|
|
3705
|
+
<span class="tw-text-xs tw-text-gray-500">View</span>
|
|
3706
|
+
</div>
|
|
3707
|
+
<div class="tw-flex tw-items-center tw-space-x-1">
|
|
3708
|
+
<cide-ele-icon class="tw-text-gray-400">edit</cide-ele-icon>
|
|
3709
|
+
<span class="tw-text-xs tw-text-gray-500">Edit</span>
|
|
3710
|
+
</div>
|
|
3711
|
+
</div>
|
|
3712
|
+
</div>
|
|
3713
|
+
@if (selectedEntityId() === entity._id) {
|
|
3714
|
+
<div class="tw-w-4 tw-h-4 tw-bg-green-500 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-flex-shrink-0">
|
|
3715
|
+
<cide-ele-icon class="tw-text-white">done</cide-ele-icon>
|
|
3716
|
+
</div>
|
|
3717
|
+
}
|
|
3718
|
+
</div>
|
|
3719
|
+
</div>
|
|
3720
|
+
}
|
|
3721
|
+
} @placeholder {
|
|
3722
|
+
<div class="tw-flex tw-items-center tw-justify-center tw-py-4">
|
|
3723
|
+
<cide-ele-spinner size="sm"></cide-ele-spinner>
|
|
3724
|
+
<span class="tw-ml-2 tw-text-sm tw-text-gray-600">Loading entities...</span>
|
|
3725
|
+
</div>
|
|
3726
|
+
}
|
|
3727
|
+
</div>
|
|
3728
|
+
}
|
|
3729
|
+
</div>
|
|
3730
|
+
}
|
|
3731
|
+
|
|
3732
|
+
<!-- Entity Hierarchy -->
|
|
3733
|
+
@if (selectedTab() === 'hierarchy') {
|
|
3734
|
+
<div class="tw-mb-4">
|
|
3735
|
+
@if (hierarchyLoading()) {
|
|
3736
|
+
<div class="tw-flex tw-items-center tw-justify-center tw-py-6">
|
|
3737
|
+
<cide-ele-spinner size="sm"></cide-ele-spinner>
|
|
3738
|
+
<span class="tw-ml-3 tw-text-gray-600 tw-text-sm">Loading hierarchy...</span>
|
|
3739
|
+
</div>
|
|
3740
|
+
} @else {
|
|
3741
|
+
<div class="tw-space-y-2">
|
|
3742
|
+
@for (node of hierarchy(); track node._id) {
|
|
3743
|
+
<div class="tw-bg-white tw-border tw-border-gray-200 tw-rounded-xl tw-p-3">
|
|
3744
|
+
<div class="tw-flex tw-items-center tw-justify-between">
|
|
3745
|
+
<div class="tw-flex tw-items-center tw-gap-2">
|
|
3746
|
+
<cide-ele-icon class="tw-text-gray-500">account_tree</cide-ele-icon>
|
|
3747
|
+
<span class="tw-text-sm tw-font-medium tw-text-gray-800">{{ node.syen_name }}</span>
|
|
3748
|
+
</div>
|
|
3749
|
+
<span class="tw-text-xs tw-text-gray-500">Code: {{ node.syen_entity_code }}</span>
|
|
3750
|
+
</div>
|
|
3751
|
+
</div>
|
|
3752
|
+
}
|
|
3753
|
+
</div>
|
|
3754
|
+
}
|
|
3755
|
+
</div>
|
|
3756
|
+
}
|
|
3757
|
+
|
|
3758
|
+
<!-- Rights Management -->
|
|
3759
|
+
@if (selectedEntityId()) {
|
|
3760
|
+
<div class="tw-bg-white tw-bg-opacity-80 tw-backdrop-blur-sm tw-border tw-border-gray-200 tw-border-opacity-50 tw-rounded-xl tw-p-3 tw-shadow-sm">
|
|
3761
|
+
<div class="tw-flex tw-items-center tw-space-x-2 tw-mb-3">
|
|
3762
|
+
<cide-ele-icon class="tw-text-green-600">security</cide-ele-icon>
|
|
3763
|
+
<h3 class="tw-text-sm tw-font-semibold tw-text-gray-900">Manage Rights</h3>
|
|
3764
|
+
</div>
|
|
3765
|
+
|
|
3766
|
+
@if (accessPassLoading()) {
|
|
3767
|
+
<div class="tw-flex tw-items-center tw-justify-center tw-min-h-[80px]">
|
|
3768
|
+
<cide-ele-spinner size="sm"></cide-ele-spinner>
|
|
3769
|
+
<span class="tw-ml-3 tw-text-gray-600 tw-text-sm">Loading...</span>
|
|
3770
|
+
</div>
|
|
3771
|
+
} @else {
|
|
3772
|
+
@defer (when !accessPassLoading()) {
|
|
3773
|
+
<form [formGroup]="rightsForm" (ngSubmit)="saveRights()">
|
|
3774
|
+
<div class="tw-flex tw-flex-wrap tw-gap-3 tw-min-h-[80px] tw-items-center">
|
|
3775
|
+
<div class="tw-flex tw-items-center tw-space-x-2">
|
|
3776
|
+
<cide-ele-input
|
|
3777
|
+
type="checkbox"
|
|
3778
|
+
formControlName="can_view"
|
|
3779
|
+
label="View">
|
|
3780
|
+
</cide-ele-input>
|
|
3781
|
+
</div>
|
|
3782
|
+
|
|
3783
|
+
<div class="tw-flex tw-items-center tw-space-x-2">
|
|
3784
|
+
<cide-ele-input
|
|
3785
|
+
type="checkbox"
|
|
3786
|
+
formControlName="can_edit"
|
|
3787
|
+
label="Edit">
|
|
3788
|
+
</cide-ele-input>
|
|
3789
|
+
</div>
|
|
3790
|
+
|
|
3791
|
+
<div class="tw-flex tw-items-center tw-space-x-2">
|
|
3792
|
+
<cide-ele-input
|
|
3793
|
+
type="checkbox"
|
|
3794
|
+
formControlName="is_owner"
|
|
3795
|
+
label="Is Owner">
|
|
3796
|
+
</cide-ele-input>
|
|
3797
|
+
</div>
|
|
3798
|
+
|
|
3799
|
+
<div class="tw-flex tw-items-center tw-space-x-2">
|
|
3800
|
+
<cide-ele-input
|
|
3801
|
+
type="checkbox"
|
|
3802
|
+
formControlName="syepm_isactive"
|
|
3803
|
+
label="Is Active">
|
|
3804
|
+
</cide-ele-input>
|
|
3805
|
+
</div>
|
|
3806
|
+
</div>
|
|
3807
|
+
</form>
|
|
3808
|
+
} @placeholder {
|
|
3809
|
+
<div class="tw-flex tw-items-center tw-justify-center tw-min-h-[80px]">
|
|
3810
|
+
<cide-ele-spinner size="sm"></cide-ele-spinner>
|
|
3811
|
+
<span class="tw-ml-2 tw-text-sm tw-text-gray-600">Loading rights...</span>
|
|
3812
|
+
</div>
|
|
3813
|
+
}
|
|
3814
|
+
}
|
|
3815
|
+
</div>
|
|
3816
|
+
}
|
|
3817
|
+
</div>
|
|
3818
|
+
|
|
3819
|
+
<!-- Footer -->
|
|
3820
|
+
<div class="tw-bg-white tw-bg-opacity-80 tw-backdrop-blur-sm tw-px-4 tw-py-3 tw-border-t tw-border-gray-200 tw-border-opacity-30 tw-flex tw-justify-end tw-space-x-2">
|
|
3821
|
+
<button cideEleButton variant="secondary" size="xs" type="button" (click)="onCancel()">
|
|
3822
|
+
Cancel
|
|
3823
|
+
</button>
|
|
3824
|
+
@if (selectedEntityId()) {
|
|
3825
|
+
<button cideEleButton variant="primary" size="xs" type="button" (click)="saveRights()"
|
|
3826
|
+
[disabled]="rightsForm.invalid || saving()" [loading]="saving()">
|
|
3827
|
+
{{ saving() ? 'Saving...' : 'Save' }}
|
|
3828
|
+
</button>
|
|
3829
|
+
}
|
|
3830
|
+
</div>
|
|
3704
3831
|
` }]
|
|
3705
3832
|
}], propDecorators: { data: [{
|
|
3706
3833
|
type: Input
|
|
@@ -3803,4 +3930,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
|
|
|
3803
3930
|
*/
|
|
3804
3931
|
|
|
3805
3932
|
export { AppStateHelperService as A, CideLytSharedWrapperComponent as C, ENVIRONMENT_CONFIG as E, CideLytSidebarService as a, CideLytRequestService as b, CideLytSidedrawerService as c, CideLytThemeService as d, CloudIdeLayoutService as e, CloudIdeLayoutComponent as f, CideLytSharedService as g, layoutControlPannelChildRoutes as h, CustomRouteReuseStrategy as i, AppStateService as j, CideLytUserStatusService as k, layoutRoutes as l, CacheManagerService as m, CideLytFileManagerService as n, CideLytFloatingEntityRightsSharingComponent as o, processThemeVariable as p, CideLytFloatingEntityRightsSharingService as q, setCSSVariable as s, themeFactory as t };
|
|
3806
|
-
//# sourceMappingURL=cloud-ide-layout-cloud-ide-layout-
|
|
3933
|
+
//# sourceMappingURL=cloud-ide-layout-cloud-ide-layout-o_bwZvM8.mjs.map
|