@c8y/ngx-components 1023.78.7 → 1023.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/ai/agent-chat/index.d.ts +22 -11
  2. package/ai/agent-chat/index.d.ts.map +1 -1
  3. package/ai/ai-chat/index.d.ts +31 -10
  4. package/ai/ai-chat/index.d.ts.map +1 -1
  5. package/ai/index.d.ts +64 -49
  6. package/ai/index.d.ts.map +1 -1
  7. package/ecosystem/index.d.ts +34 -4
  8. package/ecosystem/index.d.ts.map +1 -1
  9. package/ecosystem/shared/index.d.ts +1 -1
  10. package/ecosystem/shared/index.d.ts.map +1 -1
  11. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +237 -129
  12. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs.map +1 -1
  13. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +112 -51
  14. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs.map +1 -1
  15. package/fesm2022/c8y-ngx-components-ai.mjs +92 -61
  16. package/fesm2022/c8y-ngx-components-ai.mjs.map +1 -1
  17. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DFytXNdc.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-C8QX6xlf.mjs} +3 -3
  18. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-C8QX6xlf.mjs.map +1 -0
  19. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +2 -2
  20. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +7 -7
  21. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  22. package/fesm2022/c8y-ngx-components-device-enrolment-modal.mjs +3 -3
  23. package/fesm2022/c8y-ngx-components-device-enrolment-modal.mjs.map +1 -1
  24. package/fesm2022/c8y-ngx-components-device-grid.mjs +1 -1
  25. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  26. package/fesm2022/c8y-ngx-components-device-list.mjs +2 -2
  27. package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
  28. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +4 -1
  29. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  30. package/fesm2022/c8y-ngx-components-ecosystem.mjs +151 -53
  31. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  32. package/fesm2022/c8y-ngx-components-feature-toggles-list.mjs +3 -3
  33. package/fesm2022/c8y-ngx-components-feature-toggles-list.mjs.map +1 -1
  34. package/fesm2022/c8y-ngx-components-search.mjs +2 -2
  35. package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
  36. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs +31 -29
  37. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs.map +1 -1
  38. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs +4 -4
  39. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs.map +1 -1
  40. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +5 -5
  41. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  42. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs +2 -2
  43. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs.map +1 -1
  44. package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs +2 -2
  45. package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs.map +1 -1
  46. package/fesm2022/c8y-ngx-components.mjs +5 -5
  47. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  48. package/index.d.ts +1 -0
  49. package/index.d.ts.map +1 -1
  50. package/locales/de.po +152 -198
  51. package/locales/es.po +126 -123
  52. package/locales/fr.po +151 -197
  53. package/locales/ja_JP.po +102 -113
  54. package/locales/ko.po +128 -127
  55. package/locales/locales.pot +101 -92
  56. package/locales/nl.po +129 -128
  57. package/locales/pl.po +126 -127
  58. package/locales/pt_BR.po +125 -126
  59. package/locales/zh_CN.po +126 -128
  60. package/locales/zh_TW.po +128 -129
  61. package/package.json +1 -1
  62. package/search/index.d.ts.map +1 -1
  63. package/widgets/implementations/asset-table/index.d.ts +1 -1
  64. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DFytXNdc.mjs.map +0 -1
@@ -212,17 +212,17 @@ class DataFetchingService {
212
212
  */
213
213
  getLimitExceededMessage(hasNoExportableData, emailDeliverableCount, browserDownloadableCount, nonRetrievableCount, totalDatapointsSelectedForExportCount) {
214
214
  if (hasNoExportableData) {
215
- const message = this.translateService.instant(gettext(`The data for selected datapoint(s) exceed 1,000,000 records, which is the limit for backend processing. To export this data, please reduce the date range.`));
215
+ const message = this.translateService.instant(gettext(`The data for selected data point(s) exceeds 1,000,000 records, which is the limit for backend processing. To export this data, reduce the date range.`));
216
216
  return message;
217
217
  }
218
218
  const message = this.translateService.instant(gettext(`After clicking "Download":<br>
219
219
  <ul>
220
- <li><strong>{{$browserDownloadableCount}}</strong> datapoint(s) exports will be downloaded directly within one file: <em>exported_[csv/excel].zip</em></li>
221
- <li><strong>{{$emailDeliverableCount}}</strong> datapoint(s) exports require further processing. The files will be sent to you via separate emails once completed, which may take some time.</li>
222
- <li><strong>{{$nonRetrievableCount}}</strong> datapoint(s) exports exceeded 1,000,000 records, which is the limit for backend processing. To export these data, please reduce the date range. Otherwise, the data will neither be downloaded nor sent via email.</li>
220
+ <li><strong>{{$browserDownloadableCount}}</strong> data point export(s) will be downloaded directly within one file: <em>exported_[csv/excel].zip</em></li>
221
+ <li><strong>{{$emailDeliverableCount}}</strong> data point export(s) require further processing. The files will be sent to you via separate emails once completed, which may take some time.</li>
222
+ <li><strong>{{$nonRetrievableCount}}</strong> data point export(s) exceeded 1,000,000 records, which is the limit for backend processing. To export these data, reduce the date range. Otherwise, the data will neither be downloaded nor sent via email.</li>
223
223
  </ul>
224
224
  <p>The total number of data points that can be exported is: <strong>{{$totalExportableDatapointsCount}} out of {{$totalDatapointsSelectedForExportCount}}</strong>.</p>
225
- <p><strong>Note:</strong> The file name convention of files within zip file is: <code>[source]_[fragment_series].[csv/xls]</code></p>`), {
225
+ <p><strong>Note:</strong> The file name convention of files within a ZIP file is: <code>[source]_[fragment_series].[csv/xls]</code></p>`), {
226
226
  $browserDownloadableCount: browserDownloadableCount,
227
227
  $emailDeliverableCount: emailDeliverableCount,
228
228
  $nonRetrievableCount: nonRetrievableCount,
@@ -2205,11 +2205,11 @@ class DataPointsExportSelectorPreviewComponent {
2205
2205
  }, ...(ngDevMode ? [{ debugName: "previewRows" }] : []));
2206
2206
  }
2207
2207
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: DataPointsExportSelectorPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2208
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: DataPointsExportSelectorPreviewComponent, isStandalone: true, selector: "c8y-datapoints-export-selector-preview", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, hasFetchedDataAnyValuesToExport: { classPropertyName: "hasFetchedDataAnyValuesToExport", publicName: "hasFetchedDataAnyValuesToExport", isSignal: true, isRequired: false, transformFunction: null }, isPreviewLoading: { classPropertyName: "isPreviewLoading", publicName: "isPreviewLoading", isSignal: true, isRequired: false, transformFunction: null }, previewTableData: { classPropertyName: "previewTableData", publicName: "previewTableData", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"p-t-16 p-l-16 p-r-16 m-b-0\">\n <div class=\"d-flex a-i-center\">\n <label\n class=\"m-b-0 d-flex a-i-center gap-4\"\n [title]=\"'Preview`of exported file`' | translate\"\n >\n {{ 'Preview`of exported file`' | translate }}\n <button\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"isListPreview() ? popoverListPreviewTemplate : popoverTablePreviewTemplate\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n data-cy=\"preview--help\"\n [adaptivePosition]=\"true\"\n ></button>\n <ng-template #popoverTablePreviewTemplate>\n <p translate>The preview shows the structure of the raw file from a single source.</p>\n <p translate>If no data is available, only the column headers are visible.</p>\n <p>\n {{ 'The preview is limited to' | translate }}\n <b>{{ MEASUREMENTS_PREVIEW_ITEMS_LIMIT }}</b>\n {{ 'records.' | translate }}\n </p>\n </ng-template>\n <ng-template #popoverListPreviewTemplate>\n <p translate>The preview shows the structure of the raw file from all sources.</p>\n <p>\n {{ 'The preview is limited to' | translate }}\n <b>{{ MEASUREMENTS_PREVIEW_ITEMS_LIMIT }}</b>\n {{ 'records.' | translate }}\n </p>\n </ng-template>\n </label>\n </div>\n <div\n class=\"table-responsive\"\n style=\"min-height: 275px\"\n >\n @if (isListPreview()) {\n <table class=\"table\">\n <thead>\n <tr>\n @for (header of listHeaders(); track header) {\n <th>{{ header | translate }}</th>\n }\n </tr>\n </thead>\n @if (hasFetchedDataAnyValuesToExport() || isPreviewLoading()) {\n @if (!isPreviewLoading()) {\n <tbody>\n @for (row of previewRows(); track row.source) {\n <tr>\n @for (value of row.rowValues; track $index) {\n <td>{{ value }}</td>\n }\n </tr>\n }\n </tbody>\n } @else {\n <tbody>\n <tr>\n <td [attr.colspan]=\"listHeaders().length\">\n <c8y-loading></c8y-loading>\n </td>\n </tr>\n </tbody>\n }\n } @else {\n <tbody>\n <tr>\n <td [attr.colspan]=\"listHeaders().length\">\n <div class=\"d-col a-i-center\">\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No data available.' | translate\"\n [horizontal]=\"true\"\n data-cy=\"datapoints-table-list--empty-state\"\n ></c8y-ui-empty-state>\n </div>\n </td>\n </tr>\n </tbody>\n }\n </table>\n } @else {\n <table class=\"table\">\n <thead>\n <tr>\n <th>{{ 'Time' | translate }}</th>\n <th>{{ 'Source' | translate }}</th>\n <th>{{ 'Device name' | translate }}</th>\n <th>\n {{ 'Fragment and series' | translate }}\n </th>\n <th>{{ 'Value' | translate }}</th>\n <th>{{ 'Unit' | translate }}</th>\n </tr>\n </thead>\n @if (hasFetchedDataAnyValuesToExport() || isPreviewLoading()) {\n @if (!isPreviewLoading()) {\n <tbody>\n @for (row of previewTableData(); track row.source) {\n <tr>\n <td>{{ row.time }}</td>\n <td>{{ row.source }}</td>\n <td>{{ row.device_name }}</td>\n <td>\n {{ row.fragment_series }}\n </td>\n <td>{{ row.value }}</td>\n <td>{{ row.unit }}</td>\n </tr>\n }\n </tbody>\n } @else {\n <tbody>\n <tr>\n <td colspan=\"8\">\n <c8y-loading></c8y-loading>\n </td>\n </tr>\n </tbody>\n }\n } @else {\n <tbody>\n <tr>\n <td colspan=\"8\">\n <div class=\"d-col a-i-center\">\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No data available.' | translate\"\n [horizontal]=\"true\"\n data-cy=\"datapoints-table-list--empty-state\"\n ></c8y-ui-empty-state>\n </div>\n </td>\n </tr>\n </tbody>\n }\n </table>\n }\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: i1.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "directive", type: i3$1.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2208
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: DataPointsExportSelectorPreviewComponent, isStandalone: true, selector: "c8y-datapoints-export-selector-preview", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, hasFetchedDataAnyValuesToExport: { classPropertyName: "hasFetchedDataAnyValuesToExport", publicName: "hasFetchedDataAnyValuesToExport", isSignal: true, isRequired: false, transformFunction: null }, isPreviewLoading: { classPropertyName: "isPreviewLoading", publicName: "isPreviewLoading", isSignal: true, isRequired: false, transformFunction: null }, previewTableData: { classPropertyName: "previewTableData", publicName: "previewTableData", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"p-t-16 p-l-16 p-r-16 m-b-0\">\n <div class=\"d-flex a-i-center\">\n <label\n class=\"m-b-0 d-flex a-i-center gap-4\"\n [title]=\"'Preview`of exported file`' | translate\"\n >\n {{ 'Preview`of exported file`' | translate }}\n <button\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"isListPreview() ? popoverListPreviewTemplate : popoverTablePreviewTemplate\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n data-cy=\"preview--help\"\n [adaptivePosition]=\"true\"\n ></button>\n <ng-template #popoverTablePreviewTemplate>\n <p translate>The preview shows the structure of the raw file from a single source.</p>\n <p translate>If no data is available, only the column headers are visible.</p>\n <p\n translate\n [translateParams]=\"{ count: MEASUREMENTS_PREVIEW_ITEMS_LIMIT }\"\n ngNonBindable\n >\n The preview is limited to <b>{{ count }}</b> records.\n </p>\n </ng-template>\n <ng-template #popoverListPreviewTemplate>\n <p translate>The preview shows the structure of the raw file from all sources.</p>\n <p\n translate\n [translateParams]=\"{ count: MEASUREMENTS_PREVIEW_ITEMS_LIMIT }\"\n ngNonBindable\n >\n The preview is limited to <b>{{ count }}</b> records.\n </p>\n </ng-template>\n </label>\n </div>\n <div\n class=\"table-responsive\"\n style=\"min-height: 275px\"\n >\n @if (isListPreview()) {\n <table class=\"table\">\n <thead>\n <tr>\n @for (header of listHeaders(); track header) {\n <th>{{ header | translate }}</th>\n }\n </tr>\n </thead>\n @if (hasFetchedDataAnyValuesToExport() || isPreviewLoading()) {\n @if (!isPreviewLoading()) {\n <tbody>\n @for (row of previewRows(); track row.source) {\n <tr>\n @for (value of row.rowValues; track $index) {\n <td>{{ value }}</td>\n }\n </tr>\n }\n </tbody>\n } @else {\n <tbody>\n <tr>\n <td [attr.colspan]=\"listHeaders().length\">\n <c8y-loading></c8y-loading>\n </td>\n </tr>\n </tbody>\n }\n } @else {\n <tbody>\n <tr>\n <td [attr.colspan]=\"listHeaders().length\">\n <div class=\"d-col a-i-center\">\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No data available.' | translate\"\n [horizontal]=\"true\"\n data-cy=\"datapoints-table-list--empty-state\"\n ></c8y-ui-empty-state>\n </div>\n </td>\n </tr>\n </tbody>\n }\n </table>\n } @else {\n <table class=\"table\">\n <thead>\n <tr>\n <th>{{ 'Time' | translate }}</th>\n <th>{{ 'Source' | translate }}</th>\n <th>{{ 'Device name' | translate }}</th>\n <th>\n {{ 'Fragment and series' | translate }}\n </th>\n <th>{{ 'Value' | translate }}</th>\n <th>{{ 'Unit' | translate }}</th>\n </tr>\n </thead>\n @if (hasFetchedDataAnyValuesToExport() || isPreviewLoading()) {\n @if (!isPreviewLoading()) {\n <tbody>\n @for (row of previewTableData(); track row.source) {\n <tr>\n <td>{{ row.time }}</td>\n <td>{{ row.source }}</td>\n <td>{{ row.device_name }}</td>\n <td>\n {{ row.fragment_series }}\n </td>\n <td>{{ row.value }}</td>\n <td>{{ row.unit }}</td>\n </tr>\n }\n </tbody>\n } @else {\n <tbody>\n <tr>\n <td colspan=\"8\">\n <c8y-loading></c8y-loading>\n </td>\n </tr>\n </tbody>\n }\n } @else {\n <tbody>\n <tr>\n <td colspan=\"8\">\n <div class=\"d-col a-i-center\">\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No data available.' | translate\"\n [horizontal]=\"true\"\n data-cy=\"datapoints-table-list--empty-state\"\n ></c8y-ui-empty-state>\n </div>\n </td>\n </tr>\n </tbody>\n }\n </table>\n }\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: i1.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "directive", type: i3$1.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2209
2209
  }
2210
2210
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: DataPointsExportSelectorPreviewComponent, decorators: [{
2211
2211
  type: Component,
2212
- args: [{ selector: 'c8y-datapoints-export-selector-preview', imports: [A11yModule, CoreModule, PopoverModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"p-t-16 p-l-16 p-r-16 m-b-0\">\n <div class=\"d-flex a-i-center\">\n <label\n class=\"m-b-0 d-flex a-i-center gap-4\"\n [title]=\"'Preview`of exported file`' | translate\"\n >\n {{ 'Preview`of exported file`' | translate }}\n <button\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"isListPreview() ? popoverListPreviewTemplate : popoverTablePreviewTemplate\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n data-cy=\"preview--help\"\n [adaptivePosition]=\"true\"\n ></button>\n <ng-template #popoverTablePreviewTemplate>\n <p translate>The preview shows the structure of the raw file from a single source.</p>\n <p translate>If no data is available, only the column headers are visible.</p>\n <p>\n {{ 'The preview is limited to' | translate }}\n <b>{{ MEASUREMENTS_PREVIEW_ITEMS_LIMIT }}</b>\n {{ 'records.' | translate }}\n </p>\n </ng-template>\n <ng-template #popoverListPreviewTemplate>\n <p translate>The preview shows the structure of the raw file from all sources.</p>\n <p>\n {{ 'The preview is limited to' | translate }}\n <b>{{ MEASUREMENTS_PREVIEW_ITEMS_LIMIT }}</b>\n {{ 'records.' | translate }}\n </p>\n </ng-template>\n </label>\n </div>\n <div\n class=\"table-responsive\"\n style=\"min-height: 275px\"\n >\n @if (isListPreview()) {\n <table class=\"table\">\n <thead>\n <tr>\n @for (header of listHeaders(); track header) {\n <th>{{ header | translate }}</th>\n }\n </tr>\n </thead>\n @if (hasFetchedDataAnyValuesToExport() || isPreviewLoading()) {\n @if (!isPreviewLoading()) {\n <tbody>\n @for (row of previewRows(); track row.source) {\n <tr>\n @for (value of row.rowValues; track $index) {\n <td>{{ value }}</td>\n }\n </tr>\n }\n </tbody>\n } @else {\n <tbody>\n <tr>\n <td [attr.colspan]=\"listHeaders().length\">\n <c8y-loading></c8y-loading>\n </td>\n </tr>\n </tbody>\n }\n } @else {\n <tbody>\n <tr>\n <td [attr.colspan]=\"listHeaders().length\">\n <div class=\"d-col a-i-center\">\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No data available.' | translate\"\n [horizontal]=\"true\"\n data-cy=\"datapoints-table-list--empty-state\"\n ></c8y-ui-empty-state>\n </div>\n </td>\n </tr>\n </tbody>\n }\n </table>\n } @else {\n <table class=\"table\">\n <thead>\n <tr>\n <th>{{ 'Time' | translate }}</th>\n <th>{{ 'Source' | translate }}</th>\n <th>{{ 'Device name' | translate }}</th>\n <th>\n {{ 'Fragment and series' | translate }}\n </th>\n <th>{{ 'Value' | translate }}</th>\n <th>{{ 'Unit' | translate }}</th>\n </tr>\n </thead>\n @if (hasFetchedDataAnyValuesToExport() || isPreviewLoading()) {\n @if (!isPreviewLoading()) {\n <tbody>\n @for (row of previewTableData(); track row.source) {\n <tr>\n <td>{{ row.time }}</td>\n <td>{{ row.source }}</td>\n <td>{{ row.device_name }}</td>\n <td>\n {{ row.fragment_series }}\n </td>\n <td>{{ row.value }}</td>\n <td>{{ row.unit }}</td>\n </tr>\n }\n </tbody>\n } @else {\n <tbody>\n <tr>\n <td colspan=\"8\">\n <c8y-loading></c8y-loading>\n </td>\n </tr>\n </tbody>\n }\n } @else {\n <tbody>\n <tr>\n <td colspan=\"8\">\n <div class=\"d-col a-i-center\">\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No data available.' | translate\"\n [horizontal]=\"true\"\n data-cy=\"datapoints-table-list--empty-state\"\n ></c8y-ui-empty-state>\n </div>\n </td>\n </tr>\n </tbody>\n }\n </table>\n }\n </div>\n</div>\n" }]
2212
+ args: [{ selector: 'c8y-datapoints-export-selector-preview', imports: [A11yModule, CoreModule, PopoverModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"p-t-16 p-l-16 p-r-16 m-b-0\">\n <div class=\"d-flex a-i-center\">\n <label\n class=\"m-b-0 d-flex a-i-center gap-4\"\n [title]=\"'Preview`of exported file`' | translate\"\n >\n {{ 'Preview`of exported file`' | translate }}\n <button\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"isListPreview() ? popoverListPreviewTemplate : popoverTablePreviewTemplate\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n data-cy=\"preview--help\"\n [adaptivePosition]=\"true\"\n ></button>\n <ng-template #popoverTablePreviewTemplate>\n <p translate>The preview shows the structure of the raw file from a single source.</p>\n <p translate>If no data is available, only the column headers are visible.</p>\n <p\n translate\n [translateParams]=\"{ count: MEASUREMENTS_PREVIEW_ITEMS_LIMIT }\"\n ngNonBindable\n >\n The preview is limited to <b>{{ count }}</b> records.\n </p>\n </ng-template>\n <ng-template #popoverListPreviewTemplate>\n <p translate>The preview shows the structure of the raw file from all sources.</p>\n <p\n translate\n [translateParams]=\"{ count: MEASUREMENTS_PREVIEW_ITEMS_LIMIT }\"\n ngNonBindable\n >\n The preview is limited to <b>{{ count }}</b> records.\n </p>\n </ng-template>\n </label>\n </div>\n <div\n class=\"table-responsive\"\n style=\"min-height: 275px\"\n >\n @if (isListPreview()) {\n <table class=\"table\">\n <thead>\n <tr>\n @for (header of listHeaders(); track header) {\n <th>{{ header | translate }}</th>\n }\n </tr>\n </thead>\n @if (hasFetchedDataAnyValuesToExport() || isPreviewLoading()) {\n @if (!isPreviewLoading()) {\n <tbody>\n @for (row of previewRows(); track row.source) {\n <tr>\n @for (value of row.rowValues; track $index) {\n <td>{{ value }}</td>\n }\n </tr>\n }\n </tbody>\n } @else {\n <tbody>\n <tr>\n <td [attr.colspan]=\"listHeaders().length\">\n <c8y-loading></c8y-loading>\n </td>\n </tr>\n </tbody>\n }\n } @else {\n <tbody>\n <tr>\n <td [attr.colspan]=\"listHeaders().length\">\n <div class=\"d-col a-i-center\">\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No data available.' | translate\"\n [horizontal]=\"true\"\n data-cy=\"datapoints-table-list--empty-state\"\n ></c8y-ui-empty-state>\n </div>\n </td>\n </tr>\n </tbody>\n }\n </table>\n } @else {\n <table class=\"table\">\n <thead>\n <tr>\n <th>{{ 'Time' | translate }}</th>\n <th>{{ 'Source' | translate }}</th>\n <th>{{ 'Device name' | translate }}</th>\n <th>\n {{ 'Fragment and series' | translate }}\n </th>\n <th>{{ 'Value' | translate }}</th>\n <th>{{ 'Unit' | translate }}</th>\n </tr>\n </thead>\n @if (hasFetchedDataAnyValuesToExport() || isPreviewLoading()) {\n @if (!isPreviewLoading()) {\n <tbody>\n @for (row of previewTableData(); track row.source) {\n <tr>\n <td>{{ row.time }}</td>\n <td>{{ row.source }}</td>\n <td>{{ row.device_name }}</td>\n <td>\n {{ row.fragment_series }}\n </td>\n <td>{{ row.value }}</td>\n <td>{{ row.unit }}</td>\n </tr>\n }\n </tbody>\n } @else {\n <tbody>\n <tr>\n <td colspan=\"8\">\n <c8y-loading></c8y-loading>\n </td>\n </tr>\n </tbody>\n }\n } @else {\n <tbody>\n <tr>\n <td colspan=\"8\">\n <div class=\"d-col a-i-center\">\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No data available.' | translate\"\n [horizontal]=\"true\"\n data-cy=\"datapoints-table-list--empty-state\"\n ></c8y-ui-empty-state>\n </div>\n </td>\n </tr>\n </tbody>\n }\n </table>\n }\n </div>\n</div>\n" }]
2213
2213
  }], propDecorators: { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], hasFetchedDataAnyValuesToExport: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasFetchedDataAnyValuesToExport", required: false }] }], isPreviewLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPreviewLoading", required: false }] }], previewTableData: [{ type: i0.Input, args: [{ isSignal: true, alias: "previewTableData", required: false }] }] } });
2214
2214
 
2215
2215
  class DatapointsExportSelectorPreviewModalComponent {