cloud-ide-layout 1.0.336 → 1.0.339

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 (24) hide show
  1. package/fesm2022/{cloud-ide-layout-api-endpoint-manager.component-BYs0Pm1S.mjs → cloud-ide-layout-api-endpoint-manager.component-b1M-QRv0.mjs} +2 -2
  2. package/fesm2022/{cloud-ide-layout-api-endpoint-manager.component-BYs0Pm1S.mjs.map → cloud-ide-layout-api-endpoint-manager.component-b1M-QRv0.mjs.map} +1 -1
  3. package/fesm2022/cloud-ide-layout-cide-lyt-drawer-base.class-fqh3uHtY.mjs +41 -0
  4. package/fesm2022/cloud-ide-layout-cide-lyt-drawer-base.class-fqh3uHtY.mjs.map +1 -0
  5. package/fesm2022/{cloud-ide-layout-cloud-ide-layout-jM63sEp6.mjs → cloud-ide-layout-cloud-ide-layout-BNs30VIP.mjs} +39 -36
  6. package/fesm2022/cloud-ide-layout-cloud-ide-layout-BNs30VIP.mjs.map +1 -0
  7. package/fesm2022/{cloud-ide-layout-dashboard-manager.component-cJaRAYmj.mjs → cloud-ide-layout-dashboard-manager.component-B92CXNIp.mjs} +2 -2
  8. package/fesm2022/{cloud-ide-layout-dashboard-manager.component-cJaRAYmj.mjs.map → cloud-ide-layout-dashboard-manager.component-B92CXNIp.mjs.map} +1 -1
  9. package/fesm2022/cloud-ide-layout-drawer-docs.component-dMNtwaEn.mjs +43 -0
  10. package/fesm2022/cloud-ide-layout-drawer-docs.component-dMNtwaEn.mjs.map +1 -0
  11. package/fesm2022/cloud-ide-layout-drawer-theme.component-Cx5KfJ8Y.mjs +346 -0
  12. package/fesm2022/cloud-ide-layout-drawer-theme.component-Cx5KfJ8Y.mjs.map +1 -0
  13. package/fesm2022/{cloud-ide-layout-home-wrapper.component-3K6mOLI1.mjs → cloud-ide-layout-home-wrapper.component-C-uiRwZ_.mjs} +3 -3
  14. package/fesm2022/{cloud-ide-layout-home-wrapper.component-3K6mOLI1.mjs.map → cloud-ide-layout-home-wrapper.component-C-uiRwZ_.mjs.map} +1 -1
  15. package/fesm2022/cloud-ide-layout-sidedrawer-notes.component-BgmT99VO.mjs +226 -0
  16. package/fesm2022/cloud-ide-layout-sidedrawer-notes.component-BgmT99VO.mjs.map +1 -0
  17. package/fesm2022/cloud-ide-layout.mjs +1 -1
  18. package/index.d.ts +2 -0
  19. package/package.json +1 -1
  20. package/fesm2022/cloud-ide-layout-cloud-ide-layout-jM63sEp6.mjs.map +0 -1
  21. package/fesm2022/cloud-ide-layout-drawer-theme.component-Dk3WKFoJ.mjs +0 -346
  22. package/fesm2022/cloud-ide-layout-drawer-theme.component-Dk3WKFoJ.mjs.map +0 -1
  23. package/fesm2022/cloud-ide-layout-sidedrawer-notes.component-CgnwDxY7.mjs +0 -256
  24. package/fesm2022/cloud-ide-layout-sidedrawer-notes.component-CgnwDxY7.mjs.map +0 -1
@@ -3,7 +3,7 @@ import { input, output, inject, signal, computed, Component } from '@angular/cor
3
3
  import { CommonModule } from '@angular/common';
4
4
  import * as i2 from '@angular/forms';
5
5
  import { FormsModule } from '@angular/forms';
6
- import { C as CideLytSharedWrapperComponent } from './cloud-ide-layout-cloud-ide-layout-jM63sEp6.mjs';
6
+ import { C as CideLytSharedWrapperComponent } from './cloud-ide-layout-cloud-ide-layout-BNs30VIP.mjs';
7
7
  import { D as DashboardCardsService } from './cloud-ide-layout-dashboard-cards.service-BGaKcq7H.mjs';
8
8
  import { NotificationService, CideEleFloatingContainerService, CideEleButtonComponent, CideInputComponent, CideSelectComponent, ConfirmationService, CideEleDataGridComponent } from 'cloud-ide-element';
9
9
 
@@ -703,4 +703,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
703
703
  }], ctorParameters: () => [] });
704
704
 
705
705
  export { DashboardManagerComponent };
706
- //# sourceMappingURL=cloud-ide-layout-dashboard-manager.component-cJaRAYmj.mjs.map
706
+ //# sourceMappingURL=cloud-ide-layout-dashboard-manager.component-B92CXNIp.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-ide-layout-dashboard-manager.component-cJaRAYmj.mjs","sources":["../../../projects/cloud-ide-layout/src/lib/components/dashboard-manager/dashboard-card-form.component.ts","../../../projects/cloud-ide-layout/src/lib/components/dashboard-manager/dashboard-manager.component.ts"],"sourcesContent":["import { Component, OnInit, inject, signal, computed, input, output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport {\r\n CideEleButtonComponent,\r\n CideInputComponent,\r\n CideSelectComponent,\r\n NotificationService\r\n} from 'cloud-ide-element';\r\nimport {\r\n CoreDashboardCards,\r\n DashboardCardsSaveUpdatePayload\r\n} from 'cloud-ide-lms-model';\r\nimport { DashboardCardsService } from '../../services/dashboard-cards.service';\r\nimport { CideEleFloatingContainerService } from 'cloud-ide-element';\r\n\r\ninterface ApiEndpoint {\r\n endpoint: string;\r\n method: string;\r\n description: string;\r\n category: string;\r\n}\r\n\r\n@Component({\r\n selector: 'cide-lyt-dashboard-card-form',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CideEleButtonComponent,\r\n CideInputComponent,\r\n CideSelectComponent\r\n ],\r\n template: `\r\n <div class=\"tw-p-4 tw-space-y-4\">\r\n <form (ngSubmit)=\"saveCard()\" class=\"tw-space-y-4\">\r\n <div class=\"tw-grid tw-grid-cols-2 tw-gap-4\">\r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Title</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.title\"\r\n [name]=\"'title'\"\r\n [required]=\"true\"\r\n [placeholder]=\"'Enter card title'\">\r\n </cide-ele-input>\r\n </div>\r\n \r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Type</label>\r\n <cide-ele-select\r\n [ngModel]=\"cardForm.type || 'custom'\"\r\n (ngModelChange)=\"onTypeChange($event)\"\r\n [options]=\"cardTypes\"\r\n [required]=\"true\">\r\n </cide-ele-select>\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Description</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.description\"\r\n [name]=\"'description'\"\r\n [type]=\"'text'\"\r\n [placeholder]=\"'Enter card description'\">\r\n </cide-ele-input>\r\n </div>\r\n\r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">API Endpoint</label>\r\n <cide-ele-select\r\n [ngModel]=\"cardForm.apiEndpoint\"\r\n (ngModelChange)=\"onApiEndpointChange($event)\"\r\n [options]=\"apiEndpointsOptions()\"\r\n [placeholder]=\"'Select API endpoint'\">\r\n </cide-ele-select>\r\n </div>\r\n\r\n <div class=\"tw-grid tw-grid-cols-2 tw-gap-4\">\r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Icon</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.icon\"\r\n [name]=\"'icon'\"\r\n [placeholder]=\"'e.g., dashboard, analytics'\">\r\n </cide-ele-input>\r\n </div>\r\n \r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Color</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.color\"\r\n [name]=\"'color'\"\r\n [type]=\"'text'\"\r\n [placeholder]=\"'#3B82F6'\">\r\n </cide-ele-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tw-grid tw-grid-cols-4 tw-gap-4\">\r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Row</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.position.row\"\r\n [name]=\"'row'\"\r\n [type]=\"'number'\"\r\n [min]=\"1\">\r\n </cide-ele-input>\r\n </div>\r\n \r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Col</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.position.col\"\r\n [name]=\"'col'\"\r\n [type]=\"'number'\"\r\n [min]=\"1\">\r\n </cide-ele-input>\r\n </div>\r\n \r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Col Span</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.position.colspan\"\r\n [name]=\"'colspan'\"\r\n [type]=\"'number'\"\r\n [min]=\"1\"\r\n [max]=\"12\">\r\n </cide-ele-input>\r\n </div>\r\n \r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Row Span</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.position.rowspan\"\r\n [name]=\"'rowspan'\"\r\n [type]=\"'number'\"\r\n [min]=\"1\">\r\n </cide-ele-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tw-flex tw-gap-2 tw-pt-4 tw-justify-end\">\r\n <cide-ele-button\r\n [label]=\"'Cancel'\"\r\n variant=\"secondary\"\r\n (click)=\"closeForm()\">\r\n </cide-ele-button>\r\n <cide-ele-button\r\n [label]=\"'Save'\"\r\n variant=\"primary\"\r\n [type]=\"'submit'\"\r\n [loading]=\"saving()\">\r\n </cide-ele-button>\r\n </div>\r\n </form>\r\n </div>\r\n `\r\n})\r\nexport class DashboardCardFormComponent implements OnInit {\r\n // Inputs from floating container config\r\n containerId = input<string>('');\r\n editCardData = input<CoreDashboardCards | null>(null);\r\n\r\n // Outputs\r\n saved = output<void>();\r\n cancelled = output<void>();\r\n\r\n protected dashboardCardsService = inject(DashboardCardsService);\r\n protected notificationService = inject(NotificationService);\r\n protected floatingContainerService = inject(CideEleFloatingContainerService);\r\n\r\n saving = signal(false);\r\n apiEndpoints = signal<ApiEndpoint[]>([]);\r\n\r\n cardTypes = [\r\n { value: 'stats', label: 'Stats' },\r\n { value: 'chart', label: 'Chart' },\r\n { value: 'table', label: 'Table' },\r\n { value: 'module-card', label: 'Module Card' },\r\n { value: 'activity-feed', label: 'Activity Feed' },\r\n { value: 'events', label: 'Events' },\r\n { value: 'custom', label: 'Custom' }\r\n ];\r\n\r\n cardForm = {\r\n title: '',\r\n description: '',\r\n type: 'custom' as CoreDashboardCards['cdc_type'],\r\n apiEndpoint: '',\r\n icon: '',\r\n color: '#3B82F6',\r\n position: {\r\n row: 1,\r\n col: 1,\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n };\r\n\r\n apiEndpointsOptions = computed(() => {\r\n return this.apiEndpoints().map(api => ({\r\n value: api.endpoint,\r\n label: `${api.method} ${api.endpoint} - ${api.description}`\r\n }));\r\n });\r\n\r\n ngOnInit(): void {\r\n this.loadApiEndpoints();\r\n\r\n // Initialize form if editing\r\n const card = this.editCardData();\r\n if (card) {\r\n this.cardForm = {\r\n title: card.cdc_title || '',\r\n description: card.cdc_description || '',\r\n type: card.cdc_type || 'custom',\r\n apiEndpoint: card.cdc_api_endpoint || '',\r\n icon: card.cdc_icon || '',\r\n color: card.cdc_color || '#3B82F6',\r\n position: card.cdc_position && typeof card.cdc_position === 'object' &&\r\n 'row' in card.cdc_position && 'col' in card.cdc_position &&\r\n 'colspan' in card.cdc_position && 'rowspan' in card.cdc_position\r\n ? {\r\n row: card.cdc_position.row || 1,\r\n col: card.cdc_position.col || 1,\r\n colspan: card.cdc_position.colspan || 1,\r\n rowspan: card.cdc_position.rowspan || 1\r\n }\r\n : {\r\n row: 1,\r\n col: 1,\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n };\r\n }\r\n }\r\n\r\n loadApiEndpoints(): void {\r\n this.dashboardCardsService.getApiList().subscribe({\r\n next: (response) => {\r\n if (response.success && response.data) {\r\n this.apiEndpoints.set(response.data as ApiEndpoint[]);\r\n }\r\n },\r\n error: (error) => {\r\n console.error('Error loading API endpoints:', error);\r\n }\r\n });\r\n }\r\n\r\n saveCard(): void {\r\n this.saving.set(true);\r\n const card = this.editCardData();\r\n\r\n const payload: DashboardCardsSaveUpdatePayload = {\r\n core_dashboard_cards: {\r\n _id: card?._id,\r\n cdc_title: this.cardForm.title,\r\n cdc_description: this.cardForm.description,\r\n cdc_type: this.cardForm.type,\r\n cdc_api_endpoint: this.cardForm.apiEndpoint,\r\n cdc_icon: this.cardForm.icon,\r\n cdc_color: this.cardForm.color,\r\n cdc_position: this.cardForm.position,\r\n cdc_visible: true,\r\n cdc_draggable: true\r\n }\r\n };\r\n\r\n this.dashboardCardsService.saveUpdateDashboardCard(payload).subscribe({\r\n next: (response) => {\r\n if (response.success) {\r\n this.notificationService.success(\r\n card ? 'Card updated successfully' : 'Card created successfully'\r\n );\r\n this.saved.emit();\r\n this.closeForm();\r\n } else {\r\n this.notificationService.error(response.message || 'Error saving card');\r\n }\r\n this.saving.set(false);\r\n },\r\n error: (error) => {\r\n console.error('Error saving card:', error);\r\n this.notificationService.error('Error saving card');\r\n this.saving.set(false);\r\n }\r\n });\r\n }\r\n\r\n closeForm(): void {\r\n const id = this.containerId();\r\n if (id) {\r\n this.floatingContainerService.hide(id);\r\n }\r\n this.cancelled.emit();\r\n }\r\n\r\n onTypeChange(value: string | number | string[]): void {\r\n this.cardForm.type = value as CoreDashboardCards['cdc_type'];\r\n }\r\n\r\n onApiEndpointChange(value: string | number | string[]): void {\r\n this.cardForm.apiEndpoint = String(value);\r\n }\r\n}\r\n","import { Component, OnInit, inject, signal, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { CideLytSharedWrapperComponent } from '../../layout/shared/shared-wrapper/shared-wrapper.component';\nimport { DashboardCardsService } from '../../services/dashboard-cards.service';\nimport {\n CoreDashboardCards,\n DashboardCardsListResponse,\n DashboardCardsSaveUpdatePayload\n} from 'cloud-ide-lms-model';\nimport {\n CideEleDataGridComponent,\n CideEleButtonComponent,\n NotificationService,\n ConfirmationService,\n GridEvent,\n GridConfiguration,\n GridColumn,\n CideEleFloatingContainerService\n} from 'cloud-ide-element';\nimport { DashboardCardFormComponent } from './dashboard-card-form.component';\n\n@Component({\n selector: 'cide-lyt-dashboard-manager',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n CideLytSharedWrapperComponent,\n CideEleDataGridComponent,\n CideEleButtonComponent\n ],\n template: `\n <cide-lyt-shared-wrapper [shared_wrapper_setup_param]=\"shared_wrapper_setup_param\">\n <div class=\"tw-p-4 tw-space-y-4\">\n <div breadcrumb-actions>\n <cide-ele-button\n [label]=\"'Add New Card'\"\n leftIcon=\"add\"\n (click)=\"openAddCardModal()\"\n variant=\"primary\"\n size=\"xs\"\n [adaptive]=\"true\">\n </cide-ele-button>\n </div>\n\n <!-- Cards Grid -->\n <cide-ele-data-grid\n [config]=\"gridConfig()\"\n (gridEvent)=\"onGridEvent($event)\">\n </cide-ele-data-grid>\n </div>\n </cide-lyt-shared-wrapper>\n `\n})\nexport class DashboardManagerComponent implements OnInit {\n protected dashboardCardsService = inject(DashboardCardsService);\n protected notificationService = inject(NotificationService);\n protected confirmationService = inject(ConfirmationService);\n protected floatingContainerService = inject(CideEleFloatingContainerService);\n\n shared_wrapper_setup_param = {\n sypg_page_code: \"cide_lyt_dashboard_manager\"\n };\n\n cardsList = signal<CoreDashboardCards[]>([]);\n loading = signal(false);\n\n constructor() {\n this.floatingContainerService.registerComponent('dashboard-card-form', DashboardCardFormComponent);\n }\n\n gridConfig = computed<GridConfiguration<CoreDashboardCards>>(() => ({\n id: 'dashboard-cards-grid',\n columns: [\n {\n key: 'cdc_title',\n header: 'Title',\n type: 'text',\n sortable: true\n },\n {\n key: 'cdc_type',\n header: 'Type',\n type: 'text',\n sortable: true\n },\n {\n key: 'cdc_api_endpoint',\n header: 'API Endpoint',\n type: 'text'\n },\n {\n key: 'cdc_visible',\n header: 'Visible',\n type: 'status',\n statusConfig: {\n activeValue: true,\n activeLabel: 'Visible',\n inactiveLabel: 'Hidden',\n activeClass: 'tw-bg-green-100 tw-text-green-800',\n inactiveClass: 'tw-bg-gray-100 tw-text-gray-800'\n }\n },\n {\n key: 'actions',\n header: 'Actions',\n type: 'actions',\n actions: [\n {\n key: 'edit',\n label: 'Edit',\n icon: 'edit',\n variant: 'primary',\n onClick: 'edit'\n },\n {\n key: 'delete',\n label: 'Delete',\n icon: 'delete',\n variant: 'danger',\n onClick: 'delete'\n },\n {\n key: 'toggle',\n label: 'Toggle Visibility',\n icon: 'visibility',\n variant: 'outline',\n onClick: 'toggle'\n }\n ]\n }\n ] as GridColumn[],\n data: this.cardsList(),\n pagination: {\n enabled: true,\n pageSize: 10,\n pageSizeOptions: [10, 25, 50, 100],\n showQuickJump: true,\n showPageInfo: true,\n showRefresh: true\n },\n search: {\n enabled: true,\n placeholder: 'Search cards...',\n searchableColumns: ['cdc_title', 'cdc_type', 'cdc_api_endpoint']\n },\n loading: {\n useDefer: true,\n skeletonRows: 5,\n showOverlay: false\n },\n responsive: true,\n striped: false,\n bordered: true,\n compact: true\n }));\n\n ngOnInit(): void {\n this.loadCards();\n }\n\n loadCards(): void {\n this.loading.set(true);\n this.dashboardCardsService.getDashboardCardsList({}).subscribe({\n next: (response) => {\n if (response.success && response.data) {\n // Map DashboardCardsListResponse to CoreDashboardCards\n const mappedCards: CoreDashboardCards[] = response.data.map((card: DashboardCardsListResponse) => ({\n ...card,\n cdc_entity_id_syen: card.cdc_entity_id_syen?._id || card.cdc_entity_id_syen,\n cdc_created_by_user: card.cdc_created_by_user?._id || card.cdc_created_by_user,\n cdc_modified_by_user: card.cdc_modified_by_user?._id || card.cdc_modified_by_user\n } as CoreDashboardCards));\n this.cardsList.set(mappedCards);\n }\n this.loading.set(false);\n },\n error: (error) => {\n console.error('Error loading cards:', error);\n this.notificationService.error('Error loading dashboard cards');\n this.loading.set(false);\n }\n });\n }\n\n openAddCardModal(): void {\n const containerId = 'dashboard-card-create';\n this.floatingContainerService.show({\n id: containerId,\n title: 'Create Dashboard Card',\n icon: 'add_card',\n width: '800px',\n height: 'auto',\n componentId: 'dashboard-card-form',\n componentConfig: {\n inputs: {\n containerId: signal(containerId),\n editCardData: signal(null)\n },\n outputs: {\n saved: () => {\n this.loadCards();\n this.floatingContainerService.hide(containerId);\n },\n cancelled: () => this.floatingContainerService.hide(containerId)\n }\n }\n });\n }\n\n editCard(card: CoreDashboardCards): void {\n const containerId = `dashboard-card-edit-${card._id}`;\n this.floatingContainerService.show({\n id: containerId,\n title: `Edit Card: ${card.cdc_title}`,\n icon: 'edit',\n width: '800px',\n height: 'auto',\n componentId: 'dashboard-card-form',\n componentConfig: {\n inputs: {\n containerId: signal(containerId),\n editCardData: signal(card)\n },\n outputs: {\n saved: () => {\n this.loadCards();\n this.floatingContainerService.hide(containerId);\n },\n cancelled: () => this.floatingContainerService.hide(containerId)\n }\n }\n });\n }\n\n deleteCard(card: CoreDashboardCards): void {\n if (!card._id) return;\n\n this.confirmationService.ask({\n title: 'Delete Card',\n message: `Are you sure you want to delete \"\\${card.cdc_title}\"?`,\n type: 'danger',\n icon: 'delete_forever',\n confirmText: 'Delete',\n cancelText: 'Cancel'\n }).then((confirmed) => {\n if (confirmed) {\n this.dashboardCardsService.deleteDashboardCard(card._id!).subscribe({\n next: (response) => {\n if (response.success) {\n this.notificationService.success('Card deleted successfully');\n this.loadCards();\n } else {\n this.notificationService.error(response.message || 'Error deleting card');\n }\n },\n error: (error) => {\n console.error('Error deleting card:', error);\n this.notificationService.error('Error deleting card');\n }\n });\n }\n });\n }\n\n toggleVisibility(card: CoreDashboardCards): void {\n const payload: DashboardCardsSaveUpdatePayload = {\n core_dashboard_cards: {\n _id: card._id,\n cdc_visible: !card.cdc_visible\n }\n };\n\n this.dashboardCardsService.saveUpdateDashboardCard(payload).subscribe({\n next: (response) => {\n if (response.success) {\n this.loadCards();\n }\n },\n error: (error) => {\n console.error('Error toggling visibility:', error);\n this.notificationService.error('Error updating card');\n }\n });\n }\n\n onGridEvent(event: GridEvent<CoreDashboardCards>): void {\n if (event.type === 'action' && event.action) {\n const card = event.data as CoreDashboardCards;\n\n if (event.action.key === 'edit') {\n this.editCard(card);\n } else if (event.action.key === 'delete') {\n this.deleteCard(card);\n } else if (event.action.key === 'toggle') {\n this.toggleVisibility(card);\n }\n }\n }\n}\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"cloud-ide-layout-dashboard-manager.component-B92CXNIp.mjs","sources":["../../../projects/cloud-ide-layout/src/lib/components/dashboard-manager/dashboard-card-form.component.ts","../../../projects/cloud-ide-layout/src/lib/components/dashboard-manager/dashboard-manager.component.ts"],"sourcesContent":["import { Component, OnInit, inject, signal, computed, input, output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport {\r\n CideEleButtonComponent,\r\n CideInputComponent,\r\n CideSelectComponent,\r\n NotificationService\r\n} from 'cloud-ide-element';\r\nimport {\r\n CoreDashboardCards,\r\n DashboardCardsSaveUpdatePayload\r\n} from 'cloud-ide-lms-model';\r\nimport { DashboardCardsService } from '../../services/dashboard-cards.service';\r\nimport { CideEleFloatingContainerService } from 'cloud-ide-element';\r\n\r\ninterface ApiEndpoint {\r\n endpoint: string;\r\n method: string;\r\n description: string;\r\n category: string;\r\n}\r\n\r\n@Component({\r\n selector: 'cide-lyt-dashboard-card-form',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CideEleButtonComponent,\r\n CideInputComponent,\r\n CideSelectComponent\r\n ],\r\n template: `\r\n <div class=\"tw-p-4 tw-space-y-4\">\r\n <form (ngSubmit)=\"saveCard()\" class=\"tw-space-y-4\">\r\n <div class=\"tw-grid tw-grid-cols-2 tw-gap-4\">\r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Title</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.title\"\r\n [name]=\"'title'\"\r\n [required]=\"true\"\r\n [placeholder]=\"'Enter card title'\">\r\n </cide-ele-input>\r\n </div>\r\n \r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Type</label>\r\n <cide-ele-select\r\n [ngModel]=\"cardForm.type || 'custom'\"\r\n (ngModelChange)=\"onTypeChange($event)\"\r\n [options]=\"cardTypes\"\r\n [required]=\"true\">\r\n </cide-ele-select>\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Description</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.description\"\r\n [name]=\"'description'\"\r\n [type]=\"'text'\"\r\n [placeholder]=\"'Enter card description'\">\r\n </cide-ele-input>\r\n </div>\r\n\r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">API Endpoint</label>\r\n <cide-ele-select\r\n [ngModel]=\"cardForm.apiEndpoint\"\r\n (ngModelChange)=\"onApiEndpointChange($event)\"\r\n [options]=\"apiEndpointsOptions()\"\r\n [placeholder]=\"'Select API endpoint'\">\r\n </cide-ele-select>\r\n </div>\r\n\r\n <div class=\"tw-grid tw-grid-cols-2 tw-gap-4\">\r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Icon</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.icon\"\r\n [name]=\"'icon'\"\r\n [placeholder]=\"'e.g., dashboard, analytics'\">\r\n </cide-ele-input>\r\n </div>\r\n \r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Color</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.color\"\r\n [name]=\"'color'\"\r\n [type]=\"'text'\"\r\n [placeholder]=\"'#3B82F6'\">\r\n </cide-ele-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tw-grid tw-grid-cols-4 tw-gap-4\">\r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Row</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.position.row\"\r\n [name]=\"'row'\"\r\n [type]=\"'number'\"\r\n [min]=\"1\">\r\n </cide-ele-input>\r\n </div>\r\n \r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Col</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.position.col\"\r\n [name]=\"'col'\"\r\n [type]=\"'number'\"\r\n [min]=\"1\">\r\n </cide-ele-input>\r\n </div>\r\n \r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Col Span</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.position.colspan\"\r\n [name]=\"'colspan'\"\r\n [type]=\"'number'\"\r\n [min]=\"1\"\r\n [max]=\"12\">\r\n </cide-ele-input>\r\n </div>\r\n \r\n <div>\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-mb-1\">Row Span</label>\r\n <cide-ele-input\r\n [(ngModel)]=\"cardForm.position.rowspan\"\r\n [name]=\"'rowspan'\"\r\n [type]=\"'number'\"\r\n [min]=\"1\">\r\n </cide-ele-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tw-flex tw-gap-2 tw-pt-4 tw-justify-end\">\r\n <cide-ele-button\r\n [label]=\"'Cancel'\"\r\n variant=\"secondary\"\r\n (click)=\"closeForm()\">\r\n </cide-ele-button>\r\n <cide-ele-button\r\n [label]=\"'Save'\"\r\n variant=\"primary\"\r\n [type]=\"'submit'\"\r\n [loading]=\"saving()\">\r\n </cide-ele-button>\r\n </div>\r\n </form>\r\n </div>\r\n `\r\n})\r\nexport class DashboardCardFormComponent implements OnInit {\r\n // Inputs from floating container config\r\n containerId = input<string>('');\r\n editCardData = input<CoreDashboardCards | null>(null);\r\n\r\n // Outputs\r\n saved = output<void>();\r\n cancelled = output<void>();\r\n\r\n protected dashboardCardsService = inject(DashboardCardsService);\r\n protected notificationService = inject(NotificationService);\r\n protected floatingContainerService = inject(CideEleFloatingContainerService);\r\n\r\n saving = signal(false);\r\n apiEndpoints = signal<ApiEndpoint[]>([]);\r\n\r\n cardTypes = [\r\n { value: 'stats', label: 'Stats' },\r\n { value: 'chart', label: 'Chart' },\r\n { value: 'table', label: 'Table' },\r\n { value: 'module-card', label: 'Module Card' },\r\n { value: 'activity-feed', label: 'Activity Feed' },\r\n { value: 'events', label: 'Events' },\r\n { value: 'custom', label: 'Custom' }\r\n ];\r\n\r\n cardForm = {\r\n title: '',\r\n description: '',\r\n type: 'custom' as CoreDashboardCards['cdc_type'],\r\n apiEndpoint: '',\r\n icon: '',\r\n color: '#3B82F6',\r\n position: {\r\n row: 1,\r\n col: 1,\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n };\r\n\r\n apiEndpointsOptions = computed(() => {\r\n return this.apiEndpoints().map(api => ({\r\n value: api.endpoint,\r\n label: `${api.method} ${api.endpoint} - ${api.description}`\r\n }));\r\n });\r\n\r\n ngOnInit(): void {\r\n this.loadApiEndpoints();\r\n\r\n // Initialize form if editing\r\n const card = this.editCardData();\r\n if (card) {\r\n this.cardForm = {\r\n title: card.cdc_title || '',\r\n description: card.cdc_description || '',\r\n type: card.cdc_type || 'custom',\r\n apiEndpoint: card.cdc_api_endpoint || '',\r\n icon: card.cdc_icon || '',\r\n color: card.cdc_color || '#3B82F6',\r\n position: card.cdc_position && typeof card.cdc_position === 'object' &&\r\n 'row' in card.cdc_position && 'col' in card.cdc_position &&\r\n 'colspan' in card.cdc_position && 'rowspan' in card.cdc_position\r\n ? {\r\n row: card.cdc_position.row || 1,\r\n col: card.cdc_position.col || 1,\r\n colspan: card.cdc_position.colspan || 1,\r\n rowspan: card.cdc_position.rowspan || 1\r\n }\r\n : {\r\n row: 1,\r\n col: 1,\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n };\r\n }\r\n }\r\n\r\n loadApiEndpoints(): void {\r\n this.dashboardCardsService.getApiList().subscribe({\r\n next: (response) => {\r\n if (response.success && response.data) {\r\n this.apiEndpoints.set(response.data as ApiEndpoint[]);\r\n }\r\n },\r\n error: (error) => {\r\n console.error('Error loading API endpoints:', error);\r\n }\r\n });\r\n }\r\n\r\n saveCard(): void {\r\n this.saving.set(true);\r\n const card = this.editCardData();\r\n\r\n const payload: DashboardCardsSaveUpdatePayload = {\r\n core_dashboard_cards: {\r\n _id: card?._id,\r\n cdc_title: this.cardForm.title,\r\n cdc_description: this.cardForm.description,\r\n cdc_type: this.cardForm.type,\r\n cdc_api_endpoint: this.cardForm.apiEndpoint,\r\n cdc_icon: this.cardForm.icon,\r\n cdc_color: this.cardForm.color,\r\n cdc_position: this.cardForm.position,\r\n cdc_visible: true,\r\n cdc_draggable: true\r\n }\r\n };\r\n\r\n this.dashboardCardsService.saveUpdateDashboardCard(payload).subscribe({\r\n next: (response) => {\r\n if (response.success) {\r\n this.notificationService.success(\r\n card ? 'Card updated successfully' : 'Card created successfully'\r\n );\r\n this.saved.emit();\r\n this.closeForm();\r\n } else {\r\n this.notificationService.error(response.message || 'Error saving card');\r\n }\r\n this.saving.set(false);\r\n },\r\n error: (error) => {\r\n console.error('Error saving card:', error);\r\n this.notificationService.error('Error saving card');\r\n this.saving.set(false);\r\n }\r\n });\r\n }\r\n\r\n closeForm(): void {\r\n const id = this.containerId();\r\n if (id) {\r\n this.floatingContainerService.hide(id);\r\n }\r\n this.cancelled.emit();\r\n }\r\n\r\n onTypeChange(value: string | number | string[]): void {\r\n this.cardForm.type = value as CoreDashboardCards['cdc_type'];\r\n }\r\n\r\n onApiEndpointChange(value: string | number | string[]): void {\r\n this.cardForm.apiEndpoint = String(value);\r\n }\r\n}\r\n","import { Component, OnInit, inject, signal, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { CideLytSharedWrapperComponent } from '../../layout/shared/shared-wrapper/shared-wrapper.component';\nimport { DashboardCardsService } from '../../services/dashboard-cards.service';\nimport {\n CoreDashboardCards,\n DashboardCardsListResponse,\n DashboardCardsSaveUpdatePayload\n} from 'cloud-ide-lms-model';\nimport {\n CideEleDataGridComponent,\n CideEleButtonComponent,\n NotificationService,\n ConfirmationService,\n GridEvent,\n GridConfiguration,\n GridColumn,\n CideEleFloatingContainerService\n} from 'cloud-ide-element';\nimport { DashboardCardFormComponent } from './dashboard-card-form.component';\n\n@Component({\n selector: 'cide-lyt-dashboard-manager',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n CideLytSharedWrapperComponent,\n CideEleDataGridComponent,\n CideEleButtonComponent\n ],\n template: `\n <cide-lyt-shared-wrapper [shared_wrapper_setup_param]=\"shared_wrapper_setup_param\">\n <div class=\"tw-p-4 tw-space-y-4\">\n <div breadcrumb-actions>\n <cide-ele-button\n [label]=\"'Add New Card'\"\n leftIcon=\"add\"\n (click)=\"openAddCardModal()\"\n variant=\"primary\"\n size=\"xs\"\n [adaptive]=\"true\">\n </cide-ele-button>\n </div>\n\n <!-- Cards Grid -->\n <cide-ele-data-grid\n [config]=\"gridConfig()\"\n (gridEvent)=\"onGridEvent($event)\">\n </cide-ele-data-grid>\n </div>\n </cide-lyt-shared-wrapper>\n `\n})\nexport class DashboardManagerComponent implements OnInit {\n protected dashboardCardsService = inject(DashboardCardsService);\n protected notificationService = inject(NotificationService);\n protected confirmationService = inject(ConfirmationService);\n protected floatingContainerService = inject(CideEleFloatingContainerService);\n\n shared_wrapper_setup_param = {\n sypg_page_code: \"cide_lyt_dashboard_manager\"\n };\n\n cardsList = signal<CoreDashboardCards[]>([]);\n loading = signal(false);\n\n constructor() {\n this.floatingContainerService.registerComponent('dashboard-card-form', DashboardCardFormComponent);\n }\n\n gridConfig = computed<GridConfiguration<CoreDashboardCards>>(() => ({\n id: 'dashboard-cards-grid',\n columns: [\n {\n key: 'cdc_title',\n header: 'Title',\n type: 'text',\n sortable: true\n },\n {\n key: 'cdc_type',\n header: 'Type',\n type: 'text',\n sortable: true\n },\n {\n key: 'cdc_api_endpoint',\n header: 'API Endpoint',\n type: 'text'\n },\n {\n key: 'cdc_visible',\n header: 'Visible',\n type: 'status',\n statusConfig: {\n activeValue: true,\n activeLabel: 'Visible',\n inactiveLabel: 'Hidden',\n activeClass: 'tw-bg-green-100 tw-text-green-800',\n inactiveClass: 'tw-bg-gray-100 tw-text-gray-800'\n }\n },\n {\n key: 'actions',\n header: 'Actions',\n type: 'actions',\n actions: [\n {\n key: 'edit',\n label: 'Edit',\n icon: 'edit',\n variant: 'primary',\n onClick: 'edit'\n },\n {\n key: 'delete',\n label: 'Delete',\n icon: 'delete',\n variant: 'danger',\n onClick: 'delete'\n },\n {\n key: 'toggle',\n label: 'Toggle Visibility',\n icon: 'visibility',\n variant: 'outline',\n onClick: 'toggle'\n }\n ]\n }\n ] as GridColumn[],\n data: this.cardsList(),\n pagination: {\n enabled: true,\n pageSize: 10,\n pageSizeOptions: [10, 25, 50, 100],\n showQuickJump: true,\n showPageInfo: true,\n showRefresh: true\n },\n search: {\n enabled: true,\n placeholder: 'Search cards...',\n searchableColumns: ['cdc_title', 'cdc_type', 'cdc_api_endpoint']\n },\n loading: {\n useDefer: true,\n skeletonRows: 5,\n showOverlay: false\n },\n responsive: true,\n striped: false,\n bordered: true,\n compact: true\n }));\n\n ngOnInit(): void {\n this.loadCards();\n }\n\n loadCards(): void {\n this.loading.set(true);\n this.dashboardCardsService.getDashboardCardsList({}).subscribe({\n next: (response) => {\n if (response.success && response.data) {\n // Map DashboardCardsListResponse to CoreDashboardCards\n const mappedCards: CoreDashboardCards[] = response.data.map((card: DashboardCardsListResponse) => ({\n ...card,\n cdc_entity_id_syen: card.cdc_entity_id_syen?._id || card.cdc_entity_id_syen,\n cdc_created_by_user: card.cdc_created_by_user?._id || card.cdc_created_by_user,\n cdc_modified_by_user: card.cdc_modified_by_user?._id || card.cdc_modified_by_user\n } as CoreDashboardCards));\n this.cardsList.set(mappedCards);\n }\n this.loading.set(false);\n },\n error: (error) => {\n console.error('Error loading cards:', error);\n this.notificationService.error('Error loading dashboard cards');\n this.loading.set(false);\n }\n });\n }\n\n openAddCardModal(): void {\n const containerId = 'dashboard-card-create';\n this.floatingContainerService.show({\n id: containerId,\n title: 'Create Dashboard Card',\n icon: 'add_card',\n width: '800px',\n height: 'auto',\n componentId: 'dashboard-card-form',\n componentConfig: {\n inputs: {\n containerId: signal(containerId),\n editCardData: signal(null)\n },\n outputs: {\n saved: () => {\n this.loadCards();\n this.floatingContainerService.hide(containerId);\n },\n cancelled: () => this.floatingContainerService.hide(containerId)\n }\n }\n });\n }\n\n editCard(card: CoreDashboardCards): void {\n const containerId = `dashboard-card-edit-${card._id}`;\n this.floatingContainerService.show({\n id: containerId,\n title: `Edit Card: ${card.cdc_title}`,\n icon: 'edit',\n width: '800px',\n height: 'auto',\n componentId: 'dashboard-card-form',\n componentConfig: {\n inputs: {\n containerId: signal(containerId),\n editCardData: signal(card)\n },\n outputs: {\n saved: () => {\n this.loadCards();\n this.floatingContainerService.hide(containerId);\n },\n cancelled: () => this.floatingContainerService.hide(containerId)\n }\n }\n });\n }\n\n deleteCard(card: CoreDashboardCards): void {\n if (!card._id) return;\n\n this.confirmationService.ask({\n title: 'Delete Card',\n message: `Are you sure you want to delete \"\\${card.cdc_title}\"?`,\n type: 'danger',\n icon: 'delete_forever',\n confirmText: 'Delete',\n cancelText: 'Cancel'\n }).then((confirmed) => {\n if (confirmed) {\n this.dashboardCardsService.deleteDashboardCard(card._id!).subscribe({\n next: (response) => {\n if (response.success) {\n this.notificationService.success('Card deleted successfully');\n this.loadCards();\n } else {\n this.notificationService.error(response.message || 'Error deleting card');\n }\n },\n error: (error) => {\n console.error('Error deleting card:', error);\n this.notificationService.error('Error deleting card');\n }\n });\n }\n });\n }\n\n toggleVisibility(card: CoreDashboardCards): void {\n const payload: DashboardCardsSaveUpdatePayload = {\n core_dashboard_cards: {\n _id: card._id,\n cdc_visible: !card.cdc_visible\n }\n };\n\n this.dashboardCardsService.saveUpdateDashboardCard(payload).subscribe({\n next: (response) => {\n if (response.success) {\n this.loadCards();\n }\n },\n error: (error) => {\n console.error('Error toggling visibility:', error);\n this.notificationService.error('Error updating card');\n }\n });\n }\n\n onGridEvent(event: GridEvent<CoreDashboardCards>): void {\n if (event.type === 'action' && event.action) {\n const card = event.data as CoreDashboardCards;\n\n if (event.action.key === 'edit') {\n this.editCard(card);\n } else if (event.action.key === 'delete') {\n this.deleteCard(card);\n } else if (event.action.key === 'toggle') {\n this.toggleVisibility(card);\n }\n }\n }\n}\n"],"names":["i1"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { input, signal, Component } from '@angular/core';
4
+ import { C as CideLytDrawerBase } from './cloud-ide-layout-cide-lyt-drawer-base.class-fqh3uHtY.mjs';
5
+ import { CideEleSkeletonLoaderComponent } from 'cloud-ide-element';
6
+
7
+ class CideLytDrawerDocsComponent extends CideLytDrawerBase {
8
+ /** JSON config from theme: array of doc items with title, url, description */
9
+ configJson = input([], ...(ngDevMode ? [{ debugName: "configJson" }] : []));
10
+ docs = signal([], ...(ngDevMode ? [{ debugName: "docs" }] : []));
11
+ docsLoading = signal(true, ...(ngDevMode ? [{ debugName: "docsLoading" }] : []));
12
+ ngOnInit() {
13
+ super.ngOnInit();
14
+ this.loadDocs();
15
+ }
16
+ loadDocs() {
17
+ this.docsLoading.set(true);
18
+ const raw = this.configJson();
19
+ let items = [];
20
+ if (Array.isArray(raw)) {
21
+ items = raw.filter((x) => x != null && typeof x === 'object');
22
+ }
23
+ else if (raw && typeof raw === 'object' && 'items' in raw && Array.isArray(raw.items)) {
24
+ items = raw.items;
25
+ }
26
+ this.docs.set(items);
27
+ this.docsLoading.set(false);
28
+ }
29
+ openDoc(url) {
30
+ if (url) {
31
+ window.open(url, '_blank', 'noopener,noreferrer');
32
+ }
33
+ }
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CideLytDrawerDocsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: CideLytDrawerDocsComponent, isStandalone: true, selector: "cide-lyt-drawer-docs", inputs: { configJson: { classPropertyName: "configJson", publicName: "configJson", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"tw-relative tw-w-full tw-min-w-0 tw-h-full tw-bg-white tw-overflow-hidden tw-flex tw-flex-col\">\r\n <div class=\"tw-bg-white tw-border-b tw-border-gray-200\">\r\n <div class=\"tw-flex tw-justify-between tw-items-center tw-p-2 tw-bg-white tw-border-b tw-border-gray-200\">\r\n <h6 class=\"tw-font-semibold tw-text-gray-800\">Docs</h6>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tw-overflow-y-auto tw-scroll-smooth tw-flex-1 tw-p-4\">\r\n @if (docsLoading()) {\r\n <div class=\"tw-flex tw-flex-col tw-gap-4\">\r\n <cide-ele-skeleton-loader [width]=\"'100%'\" [height]=\"'1.25rem'\" [borderRadius]=\"'0.25rem'\"></cide-ele-skeleton-loader>\r\n <cide-ele-skeleton-loader [width]=\"'90%'\" [height]=\"'1rem'\" [borderRadius]=\"'0.25rem'\" [count]=\"3\"></cide-ele-skeleton-loader>\r\n <cide-ele-skeleton-loader [width]=\"'70%'\" [height]=\"'1rem'\" [borderRadius]=\"'0.25rem'\"></cide-ele-skeleton-loader>\r\n </div>\r\n } @else if (docs().length === 0) {\r\n <div class=\"tw-flex tw-flex-col tw-items-center tw-justify-center tw-p-8 tw-text-center\">\r\n <div class=\"tw-w-12 tw-h-12 tw-bg-gray-100 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-mb-4\">\r\n <span class=\"tw-text-2xl\">\uD83D\uDCC4</span>\r\n </div>\r\n <p class=\"tw-text-gray-500 tw-mb-2\">No docs configured.</p>\r\n <p class=\"tw-text-sm tw-text-gray-400\">Add docs via Theme Management \u2192 Drawers \u2192 Config JSON</p>\r\n </div>\r\n } @else {\r\n <div class=\"tw-flex tw-flex-col tw-gap-3\">\r\n @for (doc of docs(); track $index) {\r\n <div\r\n (click)=\"openDoc(doc.url)\"\r\n class=\"tw-block tw-p-3 tw-rounded-lg tw-border tw-border-gray-200 tw-bg-white hover:tw-bg-gray-50 hover:tw-shadow-sm tw-transition-all tw-cursor-pointer\">\r\n <h6 class=\"tw-font-medium tw-text-gray-900 tw-mb-1\">{{ doc.title || 'Untitled' }}</h6>\r\n @if (doc.description) {\r\n <p class=\"tw-text-sm tw-text-gray-600 tw-mb-0\">{{ doc.description }}</p>\r\n }\r\n @if (doc.url) {\r\n <p class=\"tw-text-xs tw-text-gray-400 tw-mt-1 tw-truncate\">{{ doc.url }}</p>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: CideEleSkeletonLoaderComponent, selector: "cide-ele-skeleton-loader", inputs: ["width", "height", "borderRadius", "count", "circle", "animation"] }] });
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CideLytDrawerDocsComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'cide-lyt-drawer-docs', standalone: true, imports: [CommonModule, CideEleSkeletonLoaderComponent], template: "<div class=\"tw-relative tw-w-full tw-min-w-0 tw-h-full tw-bg-white tw-overflow-hidden tw-flex tw-flex-col\">\r\n <div class=\"tw-bg-white tw-border-b tw-border-gray-200\">\r\n <div class=\"tw-flex tw-justify-between tw-items-center tw-p-2 tw-bg-white tw-border-b tw-border-gray-200\">\r\n <h6 class=\"tw-font-semibold tw-text-gray-800\">Docs</h6>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tw-overflow-y-auto tw-scroll-smooth tw-flex-1 tw-p-4\">\r\n @if (docsLoading()) {\r\n <div class=\"tw-flex tw-flex-col tw-gap-4\">\r\n <cide-ele-skeleton-loader [width]=\"'100%'\" [height]=\"'1.25rem'\" [borderRadius]=\"'0.25rem'\"></cide-ele-skeleton-loader>\r\n <cide-ele-skeleton-loader [width]=\"'90%'\" [height]=\"'1rem'\" [borderRadius]=\"'0.25rem'\" [count]=\"3\"></cide-ele-skeleton-loader>\r\n <cide-ele-skeleton-loader [width]=\"'70%'\" [height]=\"'1rem'\" [borderRadius]=\"'0.25rem'\"></cide-ele-skeleton-loader>\r\n </div>\r\n } @else if (docs().length === 0) {\r\n <div class=\"tw-flex tw-flex-col tw-items-center tw-justify-center tw-p-8 tw-text-center\">\r\n <div class=\"tw-w-12 tw-h-12 tw-bg-gray-100 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-mb-4\">\r\n <span class=\"tw-text-2xl\">\uD83D\uDCC4</span>\r\n </div>\r\n <p class=\"tw-text-gray-500 tw-mb-2\">No docs configured.</p>\r\n <p class=\"tw-text-sm tw-text-gray-400\">Add docs via Theme Management \u2192 Drawers \u2192 Config JSON</p>\r\n </div>\r\n } @else {\r\n <div class=\"tw-flex tw-flex-col tw-gap-3\">\r\n @for (doc of docs(); track $index) {\r\n <div\r\n (click)=\"openDoc(doc.url)\"\r\n class=\"tw-block tw-p-3 tw-rounded-lg tw-border tw-border-gray-200 tw-bg-white hover:tw-bg-gray-50 hover:tw-shadow-sm tw-transition-all tw-cursor-pointer\">\r\n <h6 class=\"tw-font-medium tw-text-gray-900 tw-mb-1\">{{ doc.title || 'Untitled' }}</h6>\r\n @if (doc.description) {\r\n <p class=\"tw-text-sm tw-text-gray-600 tw-mb-0\">{{ doc.description }}</p>\r\n }\r\n @if (doc.url) {\r\n <p class=\"tw-text-xs tw-text-gray-400 tw-mt-1 tw-truncate\">{{ doc.url }}</p>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n" }]
40
+ }], propDecorators: { configJson: [{ type: i0.Input, args: [{ isSignal: true, alias: "configJson", required: false }] }] } });
41
+
42
+ export { CideLytDrawerDocsComponent };
43
+ //# sourceMappingURL=cloud-ide-layout-drawer-docs.component-dMNtwaEn.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-ide-layout-drawer-docs.component-dMNtwaEn.mjs","sources":["../../../projects/cloud-ide-layout/src/lib/layout/sidedrawer/drawer-docs/drawer-docs.component.ts","../../../projects/cloud-ide-layout/src/lib/layout/sidedrawer/drawer-docs/drawer-docs.component.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { Component, input, signal, OnInit } from '@angular/core';\r\nimport { CideLytDrawerBase } from '../cide-lyt-drawer-base.class';\r\nimport { CideEleSkeletonLoaderComponent } from 'cloud-ide-element';\r\n\r\nexport interface DocItem {\r\n title?: string;\r\n url?: string;\r\n description?: string;\r\n [key: string]: unknown;\r\n}\r\n\r\n@Component({\r\n selector: 'cide-lyt-drawer-docs',\r\n standalone: true,\r\n imports: [CommonModule, CideEleSkeletonLoaderComponent],\r\n templateUrl: './drawer-docs.component.html',\r\n styleUrl: './drawer-docs.component.css'\r\n})\r\nexport class CideLytDrawerDocsComponent extends CideLytDrawerBase implements OnInit {\r\n /** JSON config from theme: array of doc items with title, url, description */\r\n readonly configJson = input<unknown>([]);\r\n\r\n docs = signal<DocItem[]>([]);\r\n docsLoading = signal(true);\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.loadDocs();\r\n }\r\n\r\n private loadDocs(): void {\r\n this.docsLoading.set(true);\r\n const raw = this.configJson();\r\n let items: DocItem[] = [];\r\n if (Array.isArray(raw)) {\r\n items = raw.filter((x): x is DocItem => x != null && typeof x === 'object');\r\n } else if (raw && typeof raw === 'object' && 'items' in raw && Array.isArray((raw as { items: unknown }).items)) {\r\n items = (raw as { items: DocItem[] }).items;\r\n }\r\n this.docs.set(items);\r\n this.docsLoading.set(false);\r\n }\r\n\r\n openDoc(url: string | undefined): void {\r\n if (url) {\r\n window.open(url, '_blank', 'noopener,noreferrer');\r\n }\r\n }\r\n}\r\n","<div class=\"tw-relative tw-w-full tw-min-w-0 tw-h-full tw-bg-white tw-overflow-hidden tw-flex tw-flex-col\">\r\n <div class=\"tw-bg-white tw-border-b tw-border-gray-200\">\r\n <div class=\"tw-flex tw-justify-between tw-items-center tw-p-2 tw-bg-white tw-border-b tw-border-gray-200\">\r\n <h6 class=\"tw-font-semibold tw-text-gray-800\">Docs</h6>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tw-overflow-y-auto tw-scroll-smooth tw-flex-1 tw-p-4\">\r\n @if (docsLoading()) {\r\n <div class=\"tw-flex tw-flex-col tw-gap-4\">\r\n <cide-ele-skeleton-loader [width]=\"'100%'\" [height]=\"'1.25rem'\" [borderRadius]=\"'0.25rem'\"></cide-ele-skeleton-loader>\r\n <cide-ele-skeleton-loader [width]=\"'90%'\" [height]=\"'1rem'\" [borderRadius]=\"'0.25rem'\" [count]=\"3\"></cide-ele-skeleton-loader>\r\n <cide-ele-skeleton-loader [width]=\"'70%'\" [height]=\"'1rem'\" [borderRadius]=\"'0.25rem'\"></cide-ele-skeleton-loader>\r\n </div>\r\n } @else if (docs().length === 0) {\r\n <div class=\"tw-flex tw-flex-col tw-items-center tw-justify-center tw-p-8 tw-text-center\">\r\n <div class=\"tw-w-12 tw-h-12 tw-bg-gray-100 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-mb-4\">\r\n <span class=\"tw-text-2xl\">📄</span>\r\n </div>\r\n <p class=\"tw-text-gray-500 tw-mb-2\">No docs configured.</p>\r\n <p class=\"tw-text-sm tw-text-gray-400\">Add docs via Theme Management → Drawers → Config JSON</p>\r\n </div>\r\n } @else {\r\n <div class=\"tw-flex tw-flex-col tw-gap-3\">\r\n @for (doc of docs(); track $index) {\r\n <div\r\n (click)=\"openDoc(doc.url)\"\r\n class=\"tw-block tw-p-3 tw-rounded-lg tw-border tw-border-gray-200 tw-bg-white hover:tw-bg-gray-50 hover:tw-shadow-sm tw-transition-all tw-cursor-pointer\">\r\n <h6 class=\"tw-font-medium tw-text-gray-900 tw-mb-1\">{{ doc.title || 'Untitled' }}</h6>\r\n @if (doc.description) {\r\n <p class=\"tw-text-sm tw-text-gray-600 tw-mb-0\">{{ doc.description }}</p>\r\n }\r\n @if (doc.url) {\r\n <p class=\"tw-text-xs tw-text-gray-400 tw-mt-1 tw-truncate\">{{ doc.url }}</p>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n"],"names":[],"mappings":";;;;;;AAmBM,MAAO,0BAA2B,SAAQ,iBAAiB,CAAA;;AAEtD,IAAA,UAAU,GAAG,KAAK,CAAU,EAAE,sDAAC;AAExC,IAAA,IAAI,GAAG,MAAM,CAAY,EAAE,gDAAC;AAC5B,IAAA,WAAW,GAAG,MAAM,CAAC,IAAI,uDAAC;IAEjB,QAAQ,GAAA;QACf,KAAK,CAAC,QAAQ,EAAE;QAChB,IAAI,CAAC,QAAQ,EAAE;IACjB;IAEQ,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE;QAC7B,IAAI,KAAK,GAAc,EAAE;AACzB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAmB,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;QAC7E;aAAO,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAE,GAA0B,CAAC,KAAK,CAAC,EAAE;AAC/G,YAAA,KAAK,GAAI,GAA4B,CAAC,KAAK;QAC7C;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B;AAEA,IAAA,OAAO,CAAC,GAAuB,EAAA;QAC7B,IAAI,GAAG,EAAE;YACP,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,qBAAqB,CAAC;QACnD;IACF;wGA7BW,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBvC,2zEAyCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1BY,YAAY,+BAAE,8BAA8B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAI3C,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,cACpB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,8BAA8B,CAAC,EAAA,QAAA,EAAA,2zEAAA,EAAA;;;;;"}