{"version":3,"file":"c8y-ngx-components-exports-list.mjs","sources":["../../exports/list/exports-grid.service.ts","../../exports/list/exports-list/exports-list.component.ts","../../exports/list/exports-list/exports-list.component.html","../../exports/list/c8y-ngx-components-exports-list.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { FetchClient, IManagedObject, InventoryService, IResultList } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { Column, DataGridService, Pagination, UserPreferencesService } from '@c8y/ngx-components';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ExportsGridService extends DataGridService {\n  baseQuery = {\n    __has: 'c8y_ExportConfiguration'\n  };\n  constructor(\n    protected inventory: InventoryService,\n    protected userPreferencesService: UserPreferencesService,\n    protected fetchClient: FetchClient\n  ) {\n    super(userPreferencesService);\n  }\n\n  getColumns(): Column[] {\n    return [\n      {\n        name: 'name',\n        header: gettext('Name'),\n        path: 'name',\n        sortable: true,\n        sortingConfig: {\n          pathSortingConfigs: [{ path: 'name' }]\n        }\n      },\n      {\n        name: 'exportType',\n        header: gettext('File type'),\n        path: 'exportType',\n        sortable: true,\n        sortingConfig: {\n          pathSortingConfigs: [{ path: 'exportType' }]\n        }\n      },\n      {\n        name: 'dateType',\n        header: gettext('Time range'),\n        path: 'queryParameters.dateType',\n        sortable: false\n      }\n    ];\n  }\n\n  async getData(\n    columns: Column[],\n    pagination: Pagination,\n    text?: string\n  ): Promise<IResultList<IManagedObject>> {\n    const filters = this.getFilters(columns, pagination, text);\n\n    return await this.inventory.list(filters);\n  }\n\n  async getTotal(): Promise<number> {\n    const query = this.queriesUtil.buildQuery(this.baseQuery);\n    return (\n      await this.inventory.list({\n        query,\n        withTotalElements: true\n      })\n    ).paging.totalElements;\n  }\n\n  private getFilters(columns: Column[], pagination: Pagination, text?: string) {\n    return {\n      query: this.getQueryString(columns),\n      ...(text && { text }),\n      pageSize: pagination.pageSize,\n      currentPage: pagination.currentPage,\n      withTotalPages: true,\n      withTotalElements: true\n    };\n  }\n\n  private getQueryString(columns: Column[]): string {\n    const queryFromColumns = this.getQueryObj(columns);\n    const fullQuery = this.queriesUtil.addAndFilter(queryFromColumns, this.baseQuery);\n    return this.queriesUtil.buildQuery(fullQuery);\n  }\n}\n","import { Component, EventEmitter } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n  ActionBarItemComponent,\n  ActionControl,\n  alertOnError,\n  AlertService,\n  BreadcrumbComponent,\n  BreadcrumbItemComponent,\n  BuiltInActionType,\n  BulkActionControl,\n  C8yTranslateDirective,\n  C8yTranslatePipe,\n  CellRendererDefDirective,\n  Column,\n  ColumnDirective,\n  DataGridComponent,\n  DataSourceModifier,\n  DatePipe,\n  DisplayOptions,\n  EmptyStateComponent,\n  HelpComponent,\n  IconDirective,\n  ModalService,\n  Pagination,\n  ServerSideDataCallback,\n  ServerSideDataResult,\n  Status,\n  TitleComponent\n} from '@c8y/ngx-components';\nimport { ExportsGridService } from '../exports-grid.service';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ReportsService } from '@c8y/ngx-components/reports';\n\n@Component({\n  selector: 'c8y-exports-list',\n  templateUrl: './exports-list.component.html',\n  standalone: true,\n  imports: [\n    DataGridComponent,\n    TitleComponent,\n    EmptyStateComponent,\n    C8yTranslatePipe,\n    C8yTranslateDirective,\n    ActionBarItemComponent,\n    IconDirective,\n    HelpComponent,\n    BreadcrumbItemComponent,\n    BreadcrumbComponent,\n    ColumnDirective,\n    CellRendererDefDirective,\n    DatePipe\n  ]\n})\nexport class ExportsListComponent {\n  title = gettext('Exports');\n  loadMoreItemsLabel = gettext('Load more exports');\n  loadingItemsLabel: string = gettext('Loading exports…');\n  columns: Column[] = this.exportsGridService.getColumns();\n  pagination: Pagination = {\n    pageSize: 100,\n    currentPage: 1\n  };\n  actionControls: ActionControl[] = [\n    {\n      type: BuiltInActionType.Edit,\n      text: gettext('Edit'),\n      callback: item => {\n        this.router.navigate(['export', item.id]);\n      }\n    },\n    {\n      type: 'duplicate',\n      icon: 'clone',\n      text: gettext('Duplicate'),\n      callback: item => {\n        this.router.navigate(['export', item.id, 'clone']);\n      }\n    },\n    {\n      type: BuiltInActionType.Delete,\n      text: gettext('Delete'),\n      callback: async (item, reload) => {\n        try {\n          await this.modal.confirm(\n            gettext('Delete configuration'),\n            this.translateService.instant(\n              'You are about to delete the configuration \"{{name}}\". Do you want to proceed?',\n              { name: item.name }\n            ),\n            Status.DANGER,\n            { ok: gettext('Delete'), cancel: gettext('Cancel') }\n          );\n        } catch {\n          // closed\n          return;\n        }\n\n        try {\n          await this.reportsService.removeConfiguration(item);\n        } catch (e) {\n          this.alert.warning(gettext(`Failed to delete configuration.`));\n        }\n        reload();\n      }\n    }\n  ];\n  bulkActionControls: BulkActionControl[] = [\n    {\n      callback: async items => {\n        try {\n          await Promise.all(items.map(item => this.reportsService.requestExport({ id: item })));\n          this.alert.success(gettext('Export request accepted, you will receive an email.'));\n        } catch {\n          this.alert.warning(gettext(`Failed to request export.`));\n        }\n      },\n      type: BuiltInActionType.Export,\n      text: gettext('Export'),\n      icon: 'data-export'\n    }\n  ];\n  serverSideDataCallback: ServerSideDataCallback;\n  displayOptions: DisplayOptions = {\n    striped: true,\n    bordered: false,\n    gridHeader: true,\n    filter: true,\n    hover: false\n  };\n  refresh = new EventEmitter<void>();\n\n  constructor(\n    protected exportsGridService: ExportsGridService,\n    protected router: Router,\n    private modal: ModalService,\n    private translateService: TranslateService,\n    private alert: AlertService,\n    private reportsService: ReportsService\n  ) {\n    this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n  }\n\n  addExport() {\n    this.router.navigate(['export', 'new']);\n  }\n\n  async onDataSourceModifier(\n    dataSourceModifier: DataSourceModifier\n  ): Promise<ServerSideDataResult> {\n    const { res, data, paging } = await alertOnError(\n      this.exportsGridService.getData(\n        dataSourceModifier.columns,\n        dataSourceModifier.pagination,\n        dataSourceModifier.searchText\n      )\n    );\n    const filteredSize = paging.totalElements;\n    const size = await alertOnError(this.exportsGridService.getTotal());\n\n    return {\n      res,\n      data,\n      paging,\n      filteredSize,\n      size\n    };\n  }\n}\n","<c8y-title>{{ 'Exports' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n  <c8y-breadcrumb-item\n    [icon]=\"'c8y-tools'\"\n    [label]=\"'Configuration' | translate\"\n  ></c8y-breadcrumb-item>\n  <c8y-breadcrumb-item\n    [icon]=\"'c8y-report'\"\n    [label]=\"'Exports' | translate\"\n  ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-help [src]=\"'/docs/cockpit/exports/#managing-exports'\"></c8y-help>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n  <button\n    class=\"btn btn-link\"\n    [title]=\"'Add export' | translate\"\n    (click)=\"addExport()\"\n  >\n    <i [c8yIcon]=\"'plus-circle'\"></i>\n    <span translate>Add export</span>\n  </button>\n</c8y-action-bar-item>\n\n<div class=\"content-fullpage d-flex d-col border-top border-bottom\">\n  <c8y-data-grid\n    [title]=\"title\"\n    [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n    [loadingItemsLabel]=\"loadingItemsLabel\"\n    [columns]=\"columns\"\n    [pagination]=\"pagination\"\n    [serverSideDataCallback]=\"serverSideDataCallback\"\n    [actionControls]=\"actionControls\"\n    [bulkActionControls]=\"bulkActionControls\"\n    [displayOptions]=\"displayOptions\"\n    [refresh]=\"refresh\"\n    [showSearch]=\"true\"\n    [selectable]=\"true\"\n  >\n    <c8y-column name=\"exportType\">\n      <ng-container *c8yCellRendererDef=\"let context\">\n        <ng-container>\n          @switch (context.value) {\n            @case ('csv') {\n              <span title=\"CSV\">\n                <i [c8yIcon]=\"'file-text-o'\"></i>\n                CSV\n              </span>\n            }\n            @case ('vnd.ms-excel') {\n              <span title=\"XLS\">\n                <i [c8yIcon]=\"'file-excel-o'\"></i>\n                XLS\n              </span>\n            }\n            @default {\n              <span [title]=\"context.value\">\n                <i [c8yIcon]=\"'file-text-o'\"></i>\n                {{ context.value }}\n              </span>\n            }\n          }\n        </ng-container>\n      </ng-container>\n    </c8y-column>\n\n    <c8y-column name=\"dateType\">\n      <ng-container *c8yCellRendererDef=\"let context\">\n        @switch (context.value) {\n          @case ('LAST_24HOURS') {\n            <span>\n              <i\n                class=\"m-r-4\"\n                [c8yIcon]=\"'calendar'\"\n              ></i>\n              <span translate>Last 24 hours</span>\n            </span>\n          }\n          @case ('LAST_7DAYS') {\n            <span>\n              <i\n                class=\"m-r-4\"\n                [c8yIcon]=\"'calendar'\"\n              ></i>\n              <span translate>Last 7 days</span>\n            </span>\n          }\n          @case ('LAST_30DAYS') {\n            <span>\n              <i\n                class=\"m-r-4\"\n                [c8yIcon]=\"'calendar'\"\n              ></i>\n              <span translate>Last 30 days</span>\n            </span>\n          }\n          @case ('LAST_WEEK') {\n            <span>\n              <i\n                class=\"m-r-4\"\n                [c8yIcon]=\"'calendar'\"\n              ></i>\n              <span translate>Last week</span>\n            </span>\n          }\n          @case ('LAST_MONTH') {\n            <span>\n              <i\n                class=\"m-r-4\"\n                [c8yIcon]=\"'calendar'\"\n              ></i>\n              <span translate>Last month</span>\n            </span>\n          }\n          @case ('LAST_YEAR') {\n            <span>\n              <i\n                class=\"m-r-4\"\n                [c8yIcon]=\"'calendar'\"\n              ></i>\n              <span translate>Last year</span>\n            </span>\n          }\n          @case ('CUSTOM') {\n            <span>\n              <i\n                class=\"m-r-4\"\n                [c8yIcon]=\"'calendar'\"\n              ></i>\n              <span>\n                <label class=\"text-label-small\">{{ 'From`date`' | translate }}</label>\n                {{ context.item.queryParameters.from | c8yDate }} &nbsp;\n              </span>\n              <span>\n                <label class=\"text-label-small\">{{ 'To`date`' | translate }}</label>\n                {{ context.item.queryParameters.to | c8yDate }}\n              </span>\n            </span>\n          }\n          @default {\n            <span>{{ context.value }}</span>\n          }\n        }\n      </ng-container>\n    </c8y-column>\n\n    <c8y-ui-empty-state\n      [icon]=\"'search'\"\n      [title]=\"'No matching exports.' | translate\"\n      [subtitle]=\"'Refine your search terms' | translate\"\n      [horizontal]=\"true\"\n    ></c8y-ui-empty-state>\n  </c8y-data-grid>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1.ExportsGridService"],"mappings":"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"}