@c8y/ngx-components 1023.75.1 → 1023.76.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 (72) hide show
  1. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +1 -1
  2. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs.map +1 -1
  3. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-Cek3_qZQ.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DVEnCRzW.mjs} +2 -2
  4. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DVEnCRzW.mjs.map +1 -0
  5. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +2 -2
  6. package/fesm2022/c8y-ngx-components-global-context.mjs +40 -18
  7. package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
  8. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +1 -1
  9. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
  10. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs +4 -5
  11. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs.map +1 -1
  12. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs +4 -5
  13. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs.map +1 -1
  14. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-notes.mjs +1 -1
  15. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-notes.mjs.map +1 -1
  16. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-table.mjs +1 -1
  17. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-table.mjs.map +1 -1
  18. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +1 -1
  19. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
  20. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +1 -1
  21. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs.map +1 -1
  22. package/fesm2022/c8y-ngx-components-widgets-definitions-device-control-message.mjs +1 -1
  23. package/fesm2022/c8y-ngx-components-widgets-definitions-device-control-message.mjs.map +1 -1
  24. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +1 -1
  25. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
  26. package/fesm2022/c8y-ngx-components-widgets-definitions-image.mjs +1 -1
  27. package/fesm2022/c8y-ngx-components-widgets-definitions-image.mjs.map +1 -1
  28. package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs +1 -1
  29. package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs.map +1 -1
  30. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs +1 -1
  31. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs.map +1 -1
  32. package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs +1 -1
  33. package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs.map +1 -1
  34. package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs +1 -1
  35. package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs.map +1 -1
  36. package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs +1 -1
  37. package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs.map +1 -1
  38. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +1 -1
  39. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -1
  40. package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs +1 -1
  41. package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs.map +1 -1
  42. package/fesm2022/c8y-ngx-components-widgets-definitions-three-d-rotation.mjs +1 -1
  43. package/fesm2022/c8y-ngx-components-widgets-definitions-three-d-rotation.mjs.map +1 -1
  44. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +66 -59
  45. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  46. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +1 -1
  47. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
  48. package/fesm2022/c8y-ngx-components.mjs +132 -144
  49. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  50. package/global-context/index.d.ts +87 -1
  51. package/global-context/index.d.ts.map +1 -1
  52. package/index.d.ts +10 -4
  53. package/index.d.ts.map +1 -1
  54. package/locales/de.po +3 -0
  55. package/locales/es.po +3 -0
  56. package/locales/fr.po +3 -0
  57. package/locales/ja_JP.po +3 -0
  58. package/locales/ko.po +3 -0
  59. package/locales/locales.pot +3 -0
  60. package/locales/nl.po +3 -0
  61. package/locales/pl.po +3 -0
  62. package/locales/pt_BR.po +3 -0
  63. package/locales/zh_CN.po +3 -0
  64. package/locales/zh_TW.po +3 -0
  65. package/package.json +1 -1
  66. package/widgets/definitions/alarms/all-critical-alarms/index.d.ts +1 -2
  67. package/widgets/definitions/alarms/all-critical-alarms/index.d.ts.map +1 -1
  68. package/widgets/definitions/alarms/recent-alarms/index.d.ts +1 -2
  69. package/widgets/definitions/alarms/recent-alarms/index.d.ts.map +1 -1
  70. package/widgets/implementations/alarms/index.d.ts +6 -1
  71. package/widgets/implementations/alarms/index.d.ts.map +1 -1
  72. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-Cek3_qZQ.mjs.map +0 -1
@@ -17,7 +17,7 @@ const alarmListWidgetDefinition = {
17
17
  },
18
18
  errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,
19
19
  data: {
20
- schema: () => import('c8y-schema-loader?interfaceName=AlarmListWidgetConfig!@c8y/ngx-components/widgets/implementations/alarms'),
20
+ schema: () => import('c8y-schema-loader?interfaceName=AlarmListWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/alarms'),
21
21
  export: exportConfigWithDevice,
22
22
  import: importConfigWithDevice,
23
23
  settings: {
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs","sources":["../../widgets/definitions/alarms/alarm-list/index.ts","../../widgets/definitions/alarms/alarm-list/c8y-ngx-components-widgets-definitions-alarms-alarm-list.ts"],"sourcesContent":["import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n type DynamicWidgetDefinition,\n DynamicComponentErrorStrategy,\n DynamicManagedObjectResolver,\n hookWidget\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\nexport const alarmListWidgetDefinition = {\n id: defaultWidgetIds.ALARM_LIST,\n label: gettext('Alarm list'),\n description: gettext(`Displays a list of alarms filtered by object, severity, status and date`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/alarms/alarm-list-widget.png',\n resolve: {\n device: DynamicManagedObjectResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=AlarmListWidgetConfig!@c8y/ngx-components/widgets/implementations/alarms'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n settings: {\n alarmListWidget: true,\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n ng1: {\n options: {\n noDeviceTarget: false,\n groupsSelectable: true,\n deviceTargetNotRequired: true\n }\n }\n },\n controls: PRESET_NAME.ALARM_LIST_CONFIG,\n displaySettings: {\n globalTimeContext: true,\n globalAutoRefreshContext: true\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const alarmListWidgetProviders = [\n hookWidget(alarmListWidgetDefinition),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.ALARM_LIST,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.ALARM_LIST_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAkBO,MAAM,yBAAyB,GAAG;IACvC,EAAE,EAAE,gBAAgB,CAAC,UAAU;AAC/B,IAAA,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC;AAC5B,IAAA,WAAW,EAAE,OAAO,CAAC,CAAA,uEAAA,CAAyE,CAAC;AAC/F,IAAA,aAAa,EAAE,MACb,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAChC;AACH,IAAA,mBAAmB,EAAE,MACnB,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,8BAA8B,CACtC;AACH,IAAA,YAAY,EAAE,+CAA+C;AAC7D,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE;AACT,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,0GAA0G,CAC3G;AACH,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,QAAQ,EAAE;AACR,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,KAAK;AACrB,oBAAA,gBAAgB,EAAE,IAAI;AACtB,oBAAA,uBAAuB,EAAE;AAC1B;AACF;AACF,SAAA;QACD,QAAQ,EAAE,WAAW,CAAC,iBAAiB;AACvC,QAAA,eAAe,EAAE;AACf,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,wBAAwB,EAAE;AAC3B;AACF;;AAGI,MAAM,wBAAwB,GAAG;IACtC,UAAU,CAAC,yBAAyB,CAAC;AACrC,IAAA,gBAAgB,CAAgC;QAC9C,QAAQ,EAAE,gBAAgB,CAAC,UAAU;AACrC,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;AAC9B,QAAA,YAAY,EAAE;YACZ,QAAQ,EAAE,WAAW,CAAC;AACvB,SAAA;AACD,QAAA,aAAa,EAAE,MACb,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B;KAC5F;;;AC5EH;;AAEG;;;;"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs","sources":["../../widgets/definitions/alarms/alarm-list/index.ts","../../widgets/definitions/alarms/alarm-list/c8y-ngx-components-widgets-definitions-alarms-alarm-list.ts"],"sourcesContent":["import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n type DynamicWidgetDefinition,\n DynamicComponentErrorStrategy,\n DynamicManagedObjectResolver,\n hookWidget\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\nexport const alarmListWidgetDefinition = {\n id: defaultWidgetIds.ALARM_LIST,\n label: gettext('Alarm list'),\n description: gettext(`Displays a list of alarms filtered by object, severity, status and date`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/alarms/alarm-list-widget.png',\n resolve: {\n device: DynamicManagedObjectResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=AlarmListWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/alarms'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n settings: {\n alarmListWidget: true,\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n ng1: {\n options: {\n noDeviceTarget: false,\n groupsSelectable: true,\n deviceTargetNotRequired: true\n }\n }\n },\n controls: PRESET_NAME.ALARM_LIST_CONFIG,\n displaySettings: {\n globalTimeContext: true,\n globalAutoRefreshContext: true\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const alarmListWidgetProviders = [\n hookWidget(alarmListWidgetDefinition),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.ALARM_LIST,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.ALARM_LIST_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAkBO,MAAM,yBAAyB,GAAG;IACvC,EAAE,EAAE,gBAAgB,CAAC,UAAU;AAC/B,IAAA,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC;AAC5B,IAAA,WAAW,EAAE,OAAO,CAAC,CAAA,uEAAA,CAAyE,CAAC;AAC/F,IAAA,aAAa,EAAE,MACb,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAChC;AACH,IAAA,mBAAmB,EAAE,MACnB,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,8BAA8B,CACtC;AACH,IAAA,YAAY,EAAE,+CAA+C;AAC7D,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE;AACT,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,6HAA6H,CAC9H;AACH,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,QAAQ,EAAE;AACR,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,KAAK;AACrB,oBAAA,gBAAgB,EAAE,IAAI;AACtB,oBAAA,uBAAuB,EAAE;AAC1B;AACF;AACF,SAAA;QACD,QAAQ,EAAE,WAAW,CAAC,iBAAiB;AACvC,QAAA,eAAe,EAAE;AACf,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,wBAAwB,EAAE;AAC3B;AACF;;AAGI,MAAM,wBAAwB,GAAG;IACtC,UAAU,CAAC,yBAAyB,CAAC;AACrC,IAAA,gBAAgB,CAAgC;QAC9C,QAAQ,EAAE,gBAAgB,CAAC,UAAU;AACrC,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;AAC9B,QAAA,YAAY,EAAE;YACZ,QAAQ,EAAE,WAAW,CAAC;AACvB,SAAA;AACD,QAAA,aAAa,EAAE,MACb,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B;KAC5F;;;AC5EH;;AAEG;;;;"}
@@ -1,11 +1,10 @@
1
1
  import { gettext } from '@c8y/ngx-components/gettext';
2
2
  import { DynamicComponentErrorStrategy, DynamicManagedObjectResolver, hookWidget } from '@c8y/ngx-components';
3
3
  import { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';
4
+ import { PRESET_NAME } from '@c8y/ngx-components/global-context';
4
5
  import { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';
5
6
  import { importConfigWithDevice, exportConfigWithDevice } from '@c8y/ngx-components/widgets/import-export-config';
6
- import { createLegacyAlarmControls } from '@c8y/ngx-components/widgets/definitions/alarms/alarm-widget-controls.presets';
7
7
 
8
- const CRITICAL_ALARM_CONTROLS = createLegacyAlarmControls();
9
8
  const criticalAlarmsWidgetDefinition = {
10
9
  id: defaultWidgetIds.ALL_CRITICAL_ALARMS,
11
10
  label: gettext('All critical alarms'),
@@ -17,10 +16,10 @@ const criticalAlarmsWidgetDefinition = {
17
16
  },
18
17
  errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,
19
18
  data: {
20
- schema: () => import('c8y-schema-loader?interfaceName=AlarmListWidgetConfig!@c8y/ngx-components/widgets/implementations/alarms'),
19
+ schema: () => import('c8y-schema-loader?interfaceName=AlarmListWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/alarms'),
21
20
  export: exportConfigWithDevice,
22
21
  import: importConfigWithDevice,
23
- widgetControls: CRITICAL_ALARM_CONTROLS,
22
+ controls: PRESET_NAME.ALARM_LIST_LEGACY,
24
23
  settings: {
25
24
  criticalAlarmsWidget: true,
26
25
  noNewWidgets: true,
@@ -48,7 +47,7 @@ const criticalAlarmsWidgetProviders = [
48
47
  priority: 10,
49
48
  label: gettext('Time context'),
50
49
  initialState: {
51
- widgetControls: CRITICAL_ALARM_CONTROLS
50
+ controls: PRESET_NAME.ALARM_LIST_CONFIG
52
51
  },
53
52
  loadComponent: () => import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)
54
53
  })
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs","sources":["../../widgets/definitions/alarms/all-critical-alarms/index.ts","../../widgets/definitions/alarms/all-critical-alarms/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.ts"],"sourcesContent":["import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicComponentErrorStrategy,\n DynamicWidgetDefinition,\n hookWidget,\n DynamicManagedObjectResolver\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n importConfigWithDevice,\n exportConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { createLegacyAlarmControls } from '@c8y/ngx-components/widgets/definitions/alarms/alarm-widget-controls.presets';\n\nconst CRITICAL_ALARM_CONTROLS = createLegacyAlarmControls();\n\nexport const criticalAlarmsWidgetDefinition = {\n id: defaultWidgetIds.ALL_CRITICAL_ALARMS,\n label: gettext('All critical alarms'),\n description: gettext(`Display all critical alarms from all devices`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetConfigComponent\n ),\n resolve: {\n device: DynamicManagedObjectResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=AlarmListWidgetConfig!@c8y/ngx-components/widgets/implementations/alarms'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n widgetControls: CRITICAL_ALARM_CONTROLS,\n settings: {\n criticalAlarmsWidget: true,\n noNewWidgets: true,\n widgetDefaults: {\n _width: 4,\n _height: 4\n },\n ng1: {\n options: {\n noDeviceTarget: false,\n groupsSelectable: true,\n deviceTargetNotRequired: true\n }\n }\n },\n displaySettings: {\n globalAutoRefreshContext: true\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const criticalAlarmsWidgetProviders = [\n hookWidget(criticalAlarmsWidgetDefinition),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.ALL_CRITICAL_ALARMS,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n widgetControls: CRITICAL_ALARM_CONTROLS\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAkBA,MAAM,uBAAuB,GAAG,yBAAyB,EAAE;AAEpD,MAAM,8BAA8B,GAAG;IAC5C,EAAE,EAAE,gBAAgB,CAAC,mBAAmB;AACxC,IAAA,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;AACrC,IAAA,WAAW,EAAE,OAAO,CAAC,CAAA,4CAAA,CAA8C,CAAC;AACpE,IAAA,aAAa,EAAE,MACb,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAChC;AACH,IAAA,mBAAmB,EAAE,MACnB,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,8BAA8B,CACtC;AACH,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE;AACT,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,0GAA0G,CAC3G;AACH,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,cAAc,EAAE,uBAAuB;AACvC,QAAA,QAAQ,EAAE;AACR,YAAA,oBAAoB,EAAE,IAAI;AAC1B,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,KAAK;AACrB,oBAAA,gBAAgB,EAAE,IAAI;AACtB,oBAAA,uBAAuB,EAAE;AAC1B;AACF;AACF,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,wBAAwB,EAAE;AAC3B;AACF;;AAGI,MAAM,6BAA6B,GAAG;IAC3C,UAAU,CAAC,8BAA8B,CAAC;AAC1C,IAAA,gBAAgB,CAAgC;QAC9C,QAAQ,EAAE,gBAAgB,CAAC,mBAAmB;AAC9C,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;AAC9B,QAAA,YAAY,EAAE;AACZ,YAAA,cAAc,EAAE;AACjB,SAAA;AACD,QAAA,aAAa,EAAE,MACb,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B;KAC5F;;;AC5EH;;AAEG;;;;"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs","sources":["../../widgets/definitions/alarms/all-critical-alarms/index.ts","../../widgets/definitions/alarms/all-critical-alarms/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.ts"],"sourcesContent":["import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicComponentErrorStrategy,\n DynamicWidgetDefinition,\n hookWidget,\n DynamicManagedObjectResolver\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n importConfigWithDevice,\n exportConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\nexport const criticalAlarmsWidgetDefinition = {\n id: defaultWidgetIds.ALL_CRITICAL_ALARMS,\n label: gettext('All critical alarms'),\n description: gettext(`Display all critical alarms from all devices`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetConfigComponent\n ),\n resolve: {\n device: DynamicManagedObjectResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=AlarmListWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/alarms'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n controls: PRESET_NAME.ALARM_LIST_LEGACY,\n settings: {\n criticalAlarmsWidget: true,\n noNewWidgets: true,\n widgetDefaults: {\n _width: 4,\n _height: 4\n },\n ng1: {\n options: {\n noDeviceTarget: false,\n groupsSelectable: true,\n deviceTargetNotRequired: true\n }\n }\n },\n displaySettings: {\n globalAutoRefreshContext: true\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const criticalAlarmsWidgetProviders = [\n hookWidget(criticalAlarmsWidgetDefinition),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.ALL_CRITICAL_ALARMS,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.ALARM_LIST_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAkBO,MAAM,8BAA8B,GAAG;IAC5C,EAAE,EAAE,gBAAgB,CAAC,mBAAmB;AACxC,IAAA,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;AACrC,IAAA,WAAW,EAAE,OAAO,CAAC,CAAA,4CAAA,CAA8C,CAAC;AACpE,IAAA,aAAa,EAAE,MACb,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAChC;AACH,IAAA,mBAAmB,EAAE,MACnB,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,8BAA8B,CACtC;AACH,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE;AACT,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,6HAA6H,CAC9H;AACH,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,MAAM,EAAE,sBAAsB;QAC9B,QAAQ,EAAE,WAAW,CAAC,iBAAiB;AACvC,QAAA,QAAQ,EAAE;AACR,YAAA,oBAAoB,EAAE,IAAI;AAC1B,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,KAAK;AACrB,oBAAA,gBAAgB,EAAE,IAAI;AACtB,oBAAA,uBAAuB,EAAE;AAC1B;AACF;AACF,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,wBAAwB,EAAE;AAC3B;AACF;;AAGI,MAAM,6BAA6B,GAAG;IAC3C,UAAU,CAAC,8BAA8B,CAAC;AAC1C,IAAA,gBAAgB,CAAgC;QAC9C,QAAQ,EAAE,gBAAgB,CAAC,mBAAmB;AAC9C,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;AAC9B,QAAA,YAAY,EAAE;YACZ,QAAQ,EAAE,WAAW,CAAC;AACvB,SAAA;AACD,QAAA,aAAa,EAAE,MACb,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B;KAC5F;;;AC1EH;;AAEG;;;;"}
@@ -1,11 +1,10 @@
1
1
  import { gettext } from '@c8y/ngx-components/gettext';
2
2
  import { DynamicComponentErrorStrategy, DynamicManagedObjectResolver, hookWidget } from '@c8y/ngx-components';
3
3
  import { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';
4
+ import { PRESET_NAME } from '@c8y/ngx-components/global-context';
4
5
  import { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';
5
6
  import { importConfigWithDevice, exportConfigWithDevice } from '@c8y/ngx-components/widgets/import-export-config';
6
- import { createLegacyAlarmControls } from '@c8y/ngx-components/widgets/definitions/alarms/alarm-widget-controls.presets';
7
7
 
8
- const RECENT_ALARM_CONTROLS = createLegacyAlarmControls();
9
8
  const recentAlarmsDefinition = {
10
9
  id: defaultWidgetIds.RECENT_ALARMS,
11
10
  label: gettext('Recent alarms'),
@@ -17,10 +16,10 @@ const recentAlarmsDefinition = {
17
16
  },
18
17
  errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,
19
18
  data: {
20
- schema: () => import('c8y-schema-loader?interfaceName=AlarmListWidgetConfig!@c8y/ngx-components/widgets/implementations/alarms'),
19
+ schema: () => import('c8y-schema-loader?interfaceName=AlarmListWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/alarms'),
21
20
  export: exportConfigWithDevice,
22
21
  import: importConfigWithDevice,
23
- widgetControls: RECENT_ALARM_CONTROLS,
22
+ controls: PRESET_NAME.ALARM_LIST_LEGACY,
24
23
  settings: {
25
24
  recentAlarmsWidget: true,
26
25
  noNewWidgets: true,
@@ -48,7 +47,7 @@ const recentAlarmsWidgetProviders = [
48
47
  priority: 10,
49
48
  label: gettext('Time context'),
50
49
  initialState: {
51
- widgetControls: RECENT_ALARM_CONTROLS
50
+ controls: PRESET_NAME.ALARM_LIST_CONFIG
52
51
  },
53
52
  loadComponent: () => import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)
54
53
  })
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs","sources":["../../widgets/definitions/alarms/recent-alarms/index.ts","../../widgets/definitions/alarms/recent-alarms/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.ts"],"sourcesContent":["import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicWidgetDefinition,\n DynamicComponentErrorStrategy,\n hookWidget,\n DynamicManagedObjectResolver\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n importConfigWithDevice,\n exportConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { createLegacyAlarmControls } from '@c8y/ngx-components/widgets/definitions/alarms/alarm-widget-controls.presets';\n\nconst RECENT_ALARM_CONTROLS = createLegacyAlarmControls();\n\nexport const recentAlarmsDefinition = {\n id: defaultWidgetIds.RECENT_ALARMS,\n label: gettext('Recent alarms'),\n description: gettext('Log of recent alarms from all devices with any severity and status'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetConfigComponent\n ),\n resolve: {\n device: DynamicManagedObjectResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=AlarmListWidgetConfig!@c8y/ngx-components/widgets/implementations/alarms'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n widgetControls: RECENT_ALARM_CONTROLS,\n settings: {\n recentAlarmsWidget: true,\n noNewWidgets: true,\n widgetDefaults: {\n _width: 4,\n _height: 4\n },\n ng1: {\n options: {\n noDeviceTarget: false,\n groupsSelectable: true,\n deviceTargetNotRequired: true\n }\n }\n },\n displaySettings: {\n globalAutoRefreshContext: true\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const recentAlarmsWidgetProviders = [\n hookWidget(recentAlarmsDefinition),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.RECENT_ALARMS,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n widgetControls: RECENT_ALARM_CONTROLS\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAkBA,MAAM,qBAAqB,GAAG,yBAAyB,EAAE;AAElD,MAAM,sBAAsB,GAAG;IACpC,EAAE,EAAE,gBAAgB,CAAC,aAAa;AAClC,IAAA,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC;AAC/B,IAAA,WAAW,EAAE,OAAO,CAAC,oEAAoE,CAAC;AAC1F,IAAA,aAAa,EAAE,MACb,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAChC;AACH,IAAA,mBAAmB,EAAE,MACnB,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,8BAA8B,CACtC;AACH,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE;AACT,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,0GAA0G,CAC3G;AACH,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,cAAc,EAAE,qBAAqB;AACrC,QAAA,QAAQ,EAAE;AACR,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,KAAK;AACrB,oBAAA,gBAAgB,EAAE,IAAI;AACtB,oBAAA,uBAAuB,EAAE;AAC1B;AACF;AACF,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,wBAAwB,EAAE;AAC3B;AACF;;AAGI,MAAM,2BAA2B,GAAG;IACzC,UAAU,CAAC,sBAAsB,CAAC;AAClC,IAAA,gBAAgB,CAAgC;QAC9C,QAAQ,EAAE,gBAAgB,CAAC,aAAa;AACxC,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;AAC9B,QAAA,YAAY,EAAE;AACZ,YAAA,cAAc,EAAE;AACjB,SAAA;AACD,QAAA,aAAa,EAAE,MACb,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B;KAC5F;;;AC5EH;;AAEG;;;;"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs","sources":["../../widgets/definitions/alarms/recent-alarms/index.ts","../../widgets/definitions/alarms/recent-alarms/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.ts"],"sourcesContent":["import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicWidgetDefinition,\n DynamicComponentErrorStrategy,\n hookWidget,\n DynamicManagedObjectResolver\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n importConfigWithDevice,\n exportConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\nexport const recentAlarmsDefinition = {\n id: defaultWidgetIds.RECENT_ALARMS,\n label: gettext('Recent alarms'),\n description: gettext('Log of recent alarms from all devices with any severity and status'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetConfigComponent\n ),\n resolve: {\n device: DynamicManagedObjectResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=AlarmListWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/alarms'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n controls: PRESET_NAME.ALARM_LIST_LEGACY,\n settings: {\n recentAlarmsWidget: true,\n noNewWidgets: true,\n widgetDefaults: {\n _width: 4,\n _height: 4\n },\n ng1: {\n options: {\n noDeviceTarget: false,\n groupsSelectable: true,\n deviceTargetNotRequired: true\n }\n }\n },\n displaySettings: {\n globalAutoRefreshContext: true\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const recentAlarmsWidgetProviders = [\n hookWidget(recentAlarmsDefinition),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.RECENT_ALARMS,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.ALARM_LIST_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAkBO,MAAM,sBAAsB,GAAG;IACpC,EAAE,EAAE,gBAAgB,CAAC,aAAa;AAClC,IAAA,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC;AAC/B,IAAA,WAAW,EAAE,OAAO,CAAC,oEAAoE,CAAC;AAC1F,IAAA,aAAa,EAAE,MACb,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAChC;AACH,IAAA,mBAAmB,EAAE,MACnB,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,8BAA8B,CACtC;AACH,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE;AACT,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,6HAA6H,CAC9H;AACH,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,MAAM,EAAE,sBAAsB;QAC9B,QAAQ,EAAE,WAAW,CAAC,iBAAiB;AACvC,QAAA,QAAQ,EAAE;AACR,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,KAAK;AACrB,oBAAA,gBAAgB,EAAE,IAAI;AACtB,oBAAA,uBAAuB,EAAE;AAC1B;AACF;AACF,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,wBAAwB,EAAE;AAC3B;AACF;;AAGI,MAAM,2BAA2B,GAAG;IACzC,UAAU,CAAC,sBAAsB,CAAC;AAClC,IAAA,gBAAgB,CAAgC;QAC9C,QAAQ,EAAE,gBAAgB,CAAC,aAAa;AACxC,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;AAC9B,QAAA,YAAY,EAAE;YACZ,QAAQ,EAAE,WAAW,CAAC;AACvB,SAAA;AACD,QAAA,aAAa,EAAE,MACb,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B;KAC5F;;;AC1EH;;AAEG;;;;"}
@@ -13,7 +13,7 @@ const assetNotesWidgetDefinition = {
13
13
  },
14
14
  errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,
15
15
  data: {
16
- schema: () => import('c8y-schema-loader?interfaceName=AssetNotesConfig!@c8y/ngx-components/widgets/implementations/asset-notes'),
16
+ schema: () => import('c8y-schema-loader?interfaceName=AssetNotesConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/asset-notes'),
17
17
  settings: {
18
18
  noNewWidgets: false,
19
19
  widgetDefaults: {
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-definitions-asset-notes.mjs","sources":["../../widgets/definitions/asset-notes/index.ts","../../widgets/definitions/asset-notes/c8y-ngx-components-widgets-definitions-asset-notes.ts"],"sourcesContent":["import type { DynamicWidgetDefinition } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicComponentErrorStrategy,\n DynamicManagedObjectResolver,\n hookWidget\n} from '@c8y/ngx-components';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\n\nexport const assetNotesWidgetDefinition = {\n id: defaultWidgetIds.ASSET_NOTES,\n label: gettext('Asset notes'),\n description: gettext(`Displays editable asset notes.`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/asset-notes').then(\n m => m.AssetNotesWidgetComponent\n ),\n previewImage: 'c8y-style-assets/dm-asset-notes-widget.png',\n resolve: {\n device: DynamicManagedObjectResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=AssetNotesConfig!@c8y/ngx-components/widgets/implementations/asset-notes'\n ),\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n ng1: {\n options: {\n groupsSelectable: true\n }\n }\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const assetNotesWidgetProviders = [hookWidget(assetNotesWidgetDefinition)];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AASO,MAAM,0BAA0B,GAAG;IACxC,EAAE,EAAE,gBAAgB,CAAC,WAAW;AAChC,IAAA,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC;AAC7B,IAAA,WAAW,EAAE,OAAO,CAAC,CAAA,8BAAA,CAAgC,CAAC;AACtD,IAAA,aAAa,EAAE,MACb,OAAO,yDAAyD,CAAC,CAAC,IAAI,CACpE,CAAC,IAAI,CAAC,CAAC,yBAAyB,CACjC;AACH,IAAA,YAAY,EAAE,4CAA4C;AAC1D,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE;AACT,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,0GAA0G,CAC3G;AACH,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,gBAAgB,EAAE;AACnB;AACF;AACF;AACF;;AAGI,MAAM,yBAAyB,GAAG,CAAC,UAAU,CAAC,0BAA0B,CAAC;;AC1ChF;;AAEG;;;;"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-definitions-asset-notes.mjs","sources":["../../widgets/definitions/asset-notes/index.ts","../../widgets/definitions/asset-notes/c8y-ngx-components-widgets-definitions-asset-notes.ts"],"sourcesContent":["import type { DynamicWidgetDefinition } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicComponentErrorStrategy,\n DynamicManagedObjectResolver,\n hookWidget\n} from '@c8y/ngx-components';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\n\nexport const assetNotesWidgetDefinition = {\n id: defaultWidgetIds.ASSET_NOTES,\n label: gettext('Asset notes'),\n description: gettext(`Displays editable asset notes.`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/asset-notes').then(\n m => m.AssetNotesWidgetComponent\n ),\n previewImage: 'c8y-style-assets/dm-asset-notes-widget.png',\n resolve: {\n device: DynamicManagedObjectResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=AssetNotesConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/asset-notes'\n ),\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n ng1: {\n options: {\n groupsSelectable: true\n }\n }\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const assetNotesWidgetProviders = [hookWidget(assetNotesWidgetDefinition)];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AASO,MAAM,0BAA0B,GAAG;IACxC,EAAE,EAAE,gBAAgB,CAAC,WAAW;AAChC,IAAA,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC;AAC7B,IAAA,WAAW,EAAE,OAAO,CAAC,CAAA,8BAAA,CAAgC,CAAC;AACtD,IAAA,aAAa,EAAE,MACb,OAAO,yDAAyD,CAAC,CAAC,IAAI,CACpE,CAAC,IAAI,CAAC,CAAC,yBAAyB,CACjC;AACH,IAAA,YAAY,EAAE,4CAA4C;AAC1D,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE;AACT,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,6HAA6H,CAC9H;AACH,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,gBAAgB,EAAE;AACnB;AACF;AACF;AACF;;AAGI,MAAM,yBAAyB,GAAG,CAAC,UAAU,CAAC,0BAA0B,CAAC;;AC1ChF;;AAEG;;;;"}
@@ -18,7 +18,7 @@ class AssetTableWidgetFactory {
18
18
  previewImage: 'c8y-style-assets/asset-table-pr.png',
19
19
  data: {
20
20
  settings: {
21
- schema: () => import('c8y-schema-loader?interfaceName=AssetTableWidgetConfig!@c8y/ngx-components/widgets/implementations/asset-table'),
21
+ schema: () => import('c8y-schema-loader?interfaceName=AssetTableWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/asset-table'),
22
22
  export: exportConfigWithDevice,
23
23
  import: importConfigWithDevice,
24
24
  noNewWidgets: false,
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-definitions-asset-table.mjs","sources":["../../widgets/definitions/asset-table/asset-table.factory.ts","../../widgets/definitions/asset-table/asset-table-config.factory.ts","../../widgets/definitions/asset-table/index.ts","../../widgets/definitions/asset-table/c8y-ngx-components-widgets-definitions-asset-table.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport {\n DynamicComponentDefinition,\n DynamicWidgetDefinition,\n ExtensionFactory,\n PreviewService\n} from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { map, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AssetTableWidgetFactory implements ExtensionFactory<DynamicComponentDefinition> {\n private readonly previewService = inject(PreviewService);\n private readonly baseWidgetDefinition: DynamicComponentDefinition = {\n id: defaultWidgetIds.ASSET_TABLE,\n label: gettext('Asset table'),\n description: gettext('Displays a table of assets with configurable columns and filters.'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/asset-table').then(\n m => m.AssetTableWidgetViewComponent\n ),\n previewImage: 'c8y-style-assets/asset-table-pr.png',\n data: {\n settings: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=AssetTableWidgetConfig!@c8y/ngx-components/widgets/implementations/asset-table'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 6\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n groupsSelectable: true\n }\n }\n },\n displaySettings: {\n globalTimeContext: true,\n globalAutoRefreshContext: true\n }\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.previewService.getState$('ui.asset-table.v2').pipe(\n map(state => {\n if (state) {\n return [this.baseWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ExtensionFactory, PreviewService } from '@c8y/ngx-components';\nimport {\n WidgetAssetSelectorComponent,\n WidgetConfigSectionDefinition\n} from '@c8y/ngx-components/context-dashboard';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AssetTableConfigFactory implements ExtensionFactory<WidgetConfigSectionDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetConfigDefinition: WidgetConfigSectionDefinition[] = [\n {\n widgetId: defaultWidgetIds.ASSET_TABLE,\n label: gettext('Asset selection'),\n loadComponent: () => Promise.resolve(WidgetAssetSelectorComponent),\n priority: 100,\n initialState: {\n isRequired: false,\n groupsSelectable: true\n }\n },\n {\n widgetId: defaultWidgetIds.ASSET_TABLE,\n label: gettext('Asset properties'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/asset-table').then(\n m => m.AssetTableGridSettingsComponent\n ),\n priority: 50,\n expanded: true\n },\n {\n widgetId: defaultWidgetIds.ASSET_TABLE,\n label: gettext('Settings'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/asset-table').then(\n m => m.AssetTableWidgetConfigComponent\n ),\n priority: 0,\n expanded: true\n }\n ];\n\n get(): Observable<WidgetConfigSectionDefinition[]> {\n return this.betaPreviewService.getState$('ui.asset-table.v2').pipe(\n map(state => {\n if (state) {\n return this.baseWidgetConfigDefinition;\n }\n return [];\n })\n );\n }\n}\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';\nimport { AssetTableWidgetFactory } from './asset-table.factory';\nimport { AssetTableConfigFactory } from './asset-table-config.factory';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\nexport const assetTableWidgetProviders = [\n hookWidget(AssetTableWidgetFactory),\n hookWidgetConfig(AssetTableConfigFactory),\n hookPreview({\n key: 'ui.asset-table.v2',\n label: gettext('Asset table v2'),\n description: () =>\n import('@c8y/style/markdown-files/asset-table-widget-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-definitions-asset-table.mjs","sources":["../../widgets/definitions/asset-table/asset-table.factory.ts","../../widgets/definitions/asset-table/asset-table-config.factory.ts","../../widgets/definitions/asset-table/index.ts","../../widgets/definitions/asset-table/c8y-ngx-components-widgets-definitions-asset-table.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport {\n DynamicComponentDefinition,\n DynamicWidgetDefinition,\n ExtensionFactory,\n PreviewService\n} from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { map, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AssetTableWidgetFactory implements ExtensionFactory<DynamicComponentDefinition> {\n private readonly previewService = inject(PreviewService);\n private readonly baseWidgetDefinition: DynamicComponentDefinition = {\n id: defaultWidgetIds.ASSET_TABLE,\n label: gettext('Asset table'),\n description: gettext('Displays a table of assets with configurable columns and filters.'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/asset-table').then(\n m => m.AssetTableWidgetViewComponent\n ),\n previewImage: 'c8y-style-assets/asset-table-pr.png',\n data: {\n settings: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=AssetTableWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/asset-table'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 6\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n groupsSelectable: true\n }\n }\n },\n displaySettings: {\n globalTimeContext: true,\n globalAutoRefreshContext: true\n }\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.previewService.getState$('ui.asset-table.v2').pipe(\n map(state => {\n if (state) {\n return [this.baseWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ExtensionFactory, PreviewService } from '@c8y/ngx-components';\nimport {\n WidgetAssetSelectorComponent,\n WidgetConfigSectionDefinition\n} from '@c8y/ngx-components/context-dashboard';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AssetTableConfigFactory implements ExtensionFactory<WidgetConfigSectionDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetConfigDefinition: WidgetConfigSectionDefinition[] = [\n {\n widgetId: defaultWidgetIds.ASSET_TABLE,\n label: gettext('Asset selection'),\n loadComponent: () => Promise.resolve(WidgetAssetSelectorComponent),\n priority: 100,\n initialState: {\n isRequired: false,\n groupsSelectable: true\n }\n },\n {\n widgetId: defaultWidgetIds.ASSET_TABLE,\n label: gettext('Asset properties'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/asset-table').then(\n m => m.AssetTableGridSettingsComponent\n ),\n priority: 50,\n expanded: true\n },\n {\n widgetId: defaultWidgetIds.ASSET_TABLE,\n label: gettext('Settings'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/asset-table').then(\n m => m.AssetTableWidgetConfigComponent\n ),\n priority: 0,\n expanded: true\n }\n ];\n\n get(): Observable<WidgetConfigSectionDefinition[]> {\n return this.betaPreviewService.getState$('ui.asset-table.v2').pipe(\n map(state => {\n if (state) {\n return this.baseWidgetConfigDefinition;\n }\n return [];\n })\n );\n }\n}\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';\nimport { AssetTableWidgetFactory } from './asset-table.factory';\nimport { AssetTableConfigFactory } from './asset-table-config.factory';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\nexport const assetTableWidgetProviders = [\n hookWidget(AssetTableWidgetFactory),\n hookWidgetConfig(AssetTableConfigFactory),\n hookPreview({\n key: 'ui.asset-table.v2',\n label: gettext('Asset table v2'),\n description: () =>\n import('@c8y/style/markdown-files/asset-table-widget-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ class DatapointGraphFactory {
23
23
  datapoints: DynamicDatapointsResolver
24
24
  },
25
25
  data: {
26
- schema: () => import('c8y-schema-loader?interfaceName=DatapointsGraphWidgetConfig!@c8y/ngx-components/echart'),
26
+ schema: () => import('c8y-schema-loader?interfaceName=DatapointsGraphWidgetConfig&type=widget-config!@c8y/ngx-components/echart'),
27
27
  export: exportConfigWithTargets,
28
28
  import: importConfigWithTargets,
29
29
  controls: PRESET_NAME.DATAPOINTS_GRAPH,
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-graph.mjs","sources":["../../widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.ts","../../widgets/definitions/datapoints-graph/datapoint-graph.constants.ts","../../widgets/definitions/datapoints-graph/index.ts","../../widgets/definitions/datapoints-graph/c8y-ngx-components-widgets-definitions-datapoints-graph.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicDatapointsResolver,\n PreviewService,\n DynamicWidgetDefinition\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\n\n@Injectable()\nexport class DatapointGraphFactory {\n private readonly previewFeatureService = inject(PreviewService);\n\n private readonly baseWidgetDefinition: DynamicWidgetDefinition = {\n id: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Data graph'),\n description: gettext('Displays a graph of selected data points'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n m => m.DatapointsGraphWidgetViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n m => m.DatapointsGraphWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/datapoints-graph-widget.png',\n resolve: {\n datapoints: DynamicDatapointsResolver\n },\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DatapointsGraphWidgetConfig!@c8y/ngx-components/echart'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n controls: PRESET_NAME.DATAPOINTS_GRAPH,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n noDeviceTarget: true,\n groupsSelectable: false\n },\n displaySettings: {\n globalTimeContext: true,\n globalAggregationContext: true,\n globalRealtimeContext: true\n }\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.previewFeatureService.getState$('ui.datapoint-graph.v2').pipe(\n map(state => {\n if (state) {\n const newWidgetDefinition = cloneDeep(this.baseWidgetDefinition);\n newWidgetDefinition.id = defaultWidgetIds.DATAPOINTS_GRAPH_NEW;\n newWidgetDefinition.data.settings.noNewWidgets = true;\n\n return [this.baseWidgetDefinition, newWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { DatapointAttributesFormConfig } from '@c8y/ngx-components/datapoint-selector';\n\nexport const DATAPOINT_SELECT_DEFAULT_OPTIONS: Partial<DatapointAttributesFormConfig> = {\n showRange: true,\n showChart: true\n};\n\nexport const MIN_ACTIVE_COUNT = 1;\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { DatapointGraphFactory } from './datapoint-graph-widget-factory';\nimport {\n hookWidgetConfig,\n GlobalContextSectionComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { DATAPOINT_SELECT_DEFAULT_OPTIONS, MIN_ACTIVE_COUNT } from './datapoint-graph.constants';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\n\nexport const datapointGraphWidgetproviders = [\n hookWidget(DatapointGraphFactory),\n hookPreview({\n key: 'ui.datapoint-graph.v2',\n label: 'Data graph',\n description: () =>\n import('@c8y/style/markdown-files/datapoint-graph-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n }),\n /* We need to register the widget config for both the new and old widget IDs. This ensures compatibility for widgets\n created with the new data graph id (e.g. if a data point graph widget was created via community plugins)\n and widgets using the default one (toggled via preview feature)\n */\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH_NEW,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.DATAPOINTS_GRAPH_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n }),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.DATAPOINTS_GRAPH_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Alarm selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/alarm-event-selector').then(m => m.WidgetAlarmSelectorComponent),\n initialState: {\n configStoreMode: 'MIXED'\n },\n priority: 100\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Event selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/alarm-event-selector').then(m => m.WidgetEventSelectorComponent),\n initialState: {\n configStoreMode: 'MIXED'\n },\n priority: 110\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Data point selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-selector').then(\n m => m.WidgetDatapointsSelectorComponent\n ),\n initialState: {\n minActiveCount: MIN_ACTIVE_COUNT,\n defaultFormOptions: DATAPOINT_SELECT_DEFAULT_OPTIONS,\n useAdvancedChartOptions: true\n },\n expanded: true,\n priority: 120\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-graph.mjs","sources":["../../widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.ts","../../widgets/definitions/datapoints-graph/datapoint-graph.constants.ts","../../widgets/definitions/datapoints-graph/index.ts","../../widgets/definitions/datapoints-graph/c8y-ngx-components-widgets-definitions-datapoints-graph.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicDatapointsResolver,\n PreviewService,\n DynamicWidgetDefinition\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\n\n@Injectable()\nexport class DatapointGraphFactory {\n private readonly previewFeatureService = inject(PreviewService);\n\n private readonly baseWidgetDefinition: DynamicWidgetDefinition = {\n id: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Data graph'),\n description: gettext('Displays a graph of selected data points'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n m => m.DatapointsGraphWidgetViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n m => m.DatapointsGraphWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/datapoints-graph-widget.png',\n resolve: {\n datapoints: DynamicDatapointsResolver\n },\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DatapointsGraphWidgetConfig&type=widget-config!@c8y/ngx-components/echart'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n controls: PRESET_NAME.DATAPOINTS_GRAPH,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n noDeviceTarget: true,\n groupsSelectable: false\n },\n displaySettings: {\n globalTimeContext: true,\n globalAggregationContext: true,\n globalRealtimeContext: true\n }\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.previewFeatureService.getState$('ui.datapoint-graph.v2').pipe(\n map(state => {\n if (state) {\n const newWidgetDefinition = cloneDeep(this.baseWidgetDefinition);\n newWidgetDefinition.id = defaultWidgetIds.DATAPOINTS_GRAPH_NEW;\n newWidgetDefinition.data.settings.noNewWidgets = true;\n\n return [this.baseWidgetDefinition, newWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { DatapointAttributesFormConfig } from '@c8y/ngx-components/datapoint-selector';\n\nexport const DATAPOINT_SELECT_DEFAULT_OPTIONS: Partial<DatapointAttributesFormConfig> = {\n showRange: true,\n showChart: true\n};\n\nexport const MIN_ACTIVE_COUNT = 1;\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { DatapointGraphFactory } from './datapoint-graph-widget-factory';\nimport {\n hookWidgetConfig,\n GlobalContextSectionComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { DATAPOINT_SELECT_DEFAULT_OPTIONS, MIN_ACTIVE_COUNT } from './datapoint-graph.constants';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\n\nexport const datapointGraphWidgetproviders = [\n hookWidget(DatapointGraphFactory),\n hookPreview({\n key: 'ui.datapoint-graph.v2',\n label: 'Data graph',\n description: () =>\n import('@c8y/style/markdown-files/datapoint-graph-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n }),\n /* We need to register the widget config for both the new and old widget IDs. This ensures compatibility for widgets\n created with the new data graph id (e.g. if a data point graph widget was created via community plugins)\n and widgets using the default one (toggled via preview feature)\n */\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH_NEW,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.DATAPOINTS_GRAPH_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n }),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.DATAPOINTS_GRAPH_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Alarm selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/alarm-event-selector').then(m => m.WidgetAlarmSelectorComponent),\n initialState: {\n configStoreMode: 'MIXED'\n },\n priority: 100\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Event selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/alarm-event-selector').then(m => m.WidgetEventSelectorComponent),\n initialState: {\n configStoreMode: 'MIXED'\n },\n priority: 110\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Data point selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-selector').then(\n m => m.WidgetDatapointsSelectorComponent\n ),\n initialState: {\n minActiveCount: MIN_ACTIVE_COUNT,\n defaultFormOptions: DATAPOINT_SELECT_DEFAULT_OPTIONS,\n useAdvancedChartOptions: true\n },\n expanded: true,\n priority: 120\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ const dataPointsTableWidgetDefinition = {
27
27
  },
28
28
  errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,
29
29
  data: {
30
- schema: () => import('c8y-schema-loader?interfaceName=DatapointsTableConfig!@c8y/ngx-components/widgets/implementations/datapoints-table'),
30
+ schema: () => import('c8y-schema-loader?interfaceName=DatapointsTableConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/datapoints-table'),
31
31
  export: exportConfigWithTargets,
32
32
  import: importConfigWithTargets,
33
33
  widgetControls: datapointsTableWidgetControls,
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-table.mjs","sources":["../../widgets/definitions/datapoints-table/datapoints-table.constants.ts","../../widgets/definitions/datapoints-table/index.ts","../../widgets/definitions/datapoints-table/c8y-ngx-components-widgets-definitions-datapoints-table.ts"],"sourcesContent":["import { DatapointAttributesFormConfig } from '@c8y/ngx-components/datapoint-selector';\n\nexport const DATAPOINT_SELECT_DEFAULT_OPTIONS: Partial<DatapointAttributesFormConfig> = {\n selectableChartLineTypes: [],\n selectableAxisTypes: [],\n showRedRange: true,\n showYellowRange: true\n};\nexport const MIN_ACTIVE_COUNT = 1;\n","import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicWidgetDefinition,\n DynamicDatapointsResolver,\n DynamicComponentErrorStrategy,\n hookWidget\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { DATAPOINT_SELECT_DEFAULT_OPTIONS, MIN_ACTIVE_COUNT } from './datapoints-table.constants';\nimport { type WidgetControlsPresetConfig } from '@c8y/ngx-components/global-context';\n\nconst datapointsTableWidgetControls: WidgetControlsPresetConfig = {\n presets: ['defaultWithAggregation']\n};\n\nexport const dataPointsTableWidgetDefinition = {\n id: defaultWidgetIds.DATA_POINTS_TABLE,\n label: gettext('Data points table'),\n description: gettext(`A table display of a collection of data points`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-table').then(\n m => m.DatapointsTableViewWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-table').then(\n m => m.DatapointsTableWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/data-points-table-widget.png',\n resolve: {\n datapoints: DynamicDatapointsResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DatapointsTableConfig!@c8y/ngx-components/widgets/implementations/datapoints-table'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n widgetControls: datapointsTableWidgetControls,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n minCol: 6,\n datapointAttributes: ['datapoints']\n }\n }\n },\n displaySettings: {\n globalAutoRefreshContext: true,\n globalTimeContext: true,\n globalRealtimeContext: false,\n globalAggregationContext: true\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const dataPointsTableWidgetProviders = [\n hookWidget(dataPointsTableWidgetDefinition),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATA_POINTS_TABLE,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n widgetControls: datapointsTableWidgetControls\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATA_POINTS_TABLE,\n label: gettext('Data point selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-selector').then(\n m => m.WidgetDatapointsSelectorComponent\n ),\n initialState: {\n minActiveCount: MIN_ACTIVE_COUNT,\n defaultFormOptions: DATAPOINT_SELECT_DEFAULT_OPTIONS\n },\n expanded: true,\n priority: 100\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAEO,MAAM,gCAAgC,GAA2C;AACtF,IAAA,wBAAwB,EAAE,EAAE;AAC5B,IAAA,mBAAmB,EAAE,EAAE;AACvB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,eAAe,EAAE;CAClB;AACM,MAAM,gBAAgB,GAAG,CAAC;;ACWjC,MAAM,6BAA6B,GAA+B;IAChE,OAAO,EAAE,CAAC,wBAAwB;CACnC;AAEM,MAAM,+BAA+B,GAAG;IAC7C,EAAE,EAAE,gBAAgB,CAAC,iBAAiB;AACtC,IAAA,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC;AACnC,IAAA,WAAW,EAAE,OAAO,CAAC,CAAA,8CAAA,CAAgD,CAAC;AACtE,IAAA,aAAa,EAAE,MACb,OAAO,8DAA8D,CAAC,CAAC,IAAI,CACzE,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAC1C;AACH,IAAA,mBAAmB,EAAE,MACnB,OAAO,8DAA8D,CAAC,CAAC,IAAI,CACzE,CAAC,IAAI,CAAC,CAAC,oCAAoC,CAC5C;AACH,IAAA,YAAY,EAAE,+CAA+C;AAC7D,IAAA,OAAO,EAAE;AACP,QAAA,UAAU,EAAE;AACb,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,oHAAoH,CACrH;AACH,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,cAAc,EAAE,6BAA6B;AAC7C,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,IAAI;AACpB,oBAAA,MAAM,EAAE,CAAC;oBACT,mBAAmB,EAAE,CAAC,YAAY;AACnC;AACF;AACF,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,wBAAwB,EAAE,IAAI;AAC9B,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,wBAAwB,EAAE;AAC3B;AACF;;AAGI,MAAM,8BAA8B,GAAG;IAC5C,UAAU,CAAC,+BAA+B,CAAC;AAC3C,IAAA,gBAAgB,CAAgC;QAC9C,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB;AAC5C,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;AAC9B,QAAA,YAAY,EAAE;AACZ,YAAA,cAAc,EAAE;AACjB,SAAA;AACD,QAAA,aAAa,EAAE,MACb,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B;KAC5F,CAAC;AACF,IAAA,gBAAgB,CAAC;QACf,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB;AAC5C,QAAA,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC;AACtC,QAAA,aAAa,EAAE,MACb,OAAO,wCAAwC,CAAC,CAAC,IAAI,CACnD,CAAC,IAAI,CAAC,CAAC,iCAAiC,CACzC;AACH,QAAA,YAAY,EAAE;AACZ,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,kBAAkB,EAAE;AACrB,SAAA;AACD,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,QAAQ,EAAE;KACX;;;AChGH;;AAEG;;;;"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-table.mjs","sources":["../../widgets/definitions/datapoints-table/datapoints-table.constants.ts","../../widgets/definitions/datapoints-table/index.ts","../../widgets/definitions/datapoints-table/c8y-ngx-components-widgets-definitions-datapoints-table.ts"],"sourcesContent":["import { DatapointAttributesFormConfig } from '@c8y/ngx-components/datapoint-selector';\n\nexport const DATAPOINT_SELECT_DEFAULT_OPTIONS: Partial<DatapointAttributesFormConfig> = {\n selectableChartLineTypes: [],\n selectableAxisTypes: [],\n showRedRange: true,\n showYellowRange: true\n};\nexport const MIN_ACTIVE_COUNT = 1;\n","import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicWidgetDefinition,\n DynamicDatapointsResolver,\n DynamicComponentErrorStrategy,\n hookWidget\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { DATAPOINT_SELECT_DEFAULT_OPTIONS, MIN_ACTIVE_COUNT } from './datapoints-table.constants';\nimport { type WidgetControlsPresetConfig } from '@c8y/ngx-components/global-context';\n\nconst datapointsTableWidgetControls: WidgetControlsPresetConfig = {\n presets: ['defaultWithAggregation']\n};\n\nexport const dataPointsTableWidgetDefinition = {\n id: defaultWidgetIds.DATA_POINTS_TABLE,\n label: gettext('Data points table'),\n description: gettext(`A table display of a collection of data points`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-table').then(\n m => m.DatapointsTableViewWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-table').then(\n m => m.DatapointsTableWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/data-points-table-widget.png',\n resolve: {\n datapoints: DynamicDatapointsResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DatapointsTableConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/datapoints-table'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n widgetControls: datapointsTableWidgetControls,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n minCol: 6,\n datapointAttributes: ['datapoints']\n }\n }\n },\n displaySettings: {\n globalAutoRefreshContext: true,\n globalTimeContext: true,\n globalRealtimeContext: false,\n globalAggregationContext: true\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const dataPointsTableWidgetProviders = [\n hookWidget(dataPointsTableWidgetDefinition),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATA_POINTS_TABLE,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n widgetControls: datapointsTableWidgetControls\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATA_POINTS_TABLE,\n label: gettext('Data point selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-selector').then(\n m => m.WidgetDatapointsSelectorComponent\n ),\n initialState: {\n minActiveCount: MIN_ACTIVE_COUNT,\n defaultFormOptions: DATAPOINT_SELECT_DEFAULT_OPTIONS\n },\n expanded: true,\n priority: 100\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAEO,MAAM,gCAAgC,GAA2C;AACtF,IAAA,wBAAwB,EAAE,EAAE;AAC5B,IAAA,mBAAmB,EAAE,EAAE;AACvB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,eAAe,EAAE;CAClB;AACM,MAAM,gBAAgB,GAAG,CAAC;;ACWjC,MAAM,6BAA6B,GAA+B;IAChE,OAAO,EAAE,CAAC,wBAAwB;CACnC;AAEM,MAAM,+BAA+B,GAAG;IAC7C,EAAE,EAAE,gBAAgB,CAAC,iBAAiB;AACtC,IAAA,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC;AACnC,IAAA,WAAW,EAAE,OAAO,CAAC,CAAA,8CAAA,CAAgD,CAAC;AACtE,IAAA,aAAa,EAAE,MACb,OAAO,8DAA8D,CAAC,CAAC,IAAI,CACzE,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAC1C;AACH,IAAA,mBAAmB,EAAE,MACnB,OAAO,8DAA8D,CAAC,CAAC,IAAI,CACzE,CAAC,IAAI,CAAC,CAAC,oCAAoC,CAC5C;AACH,IAAA,YAAY,EAAE,+CAA+C;AAC7D,IAAA,OAAO,EAAE;AACP,QAAA,UAAU,EAAE;AACb,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,uIAAuI,CACxI;AACH,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,cAAc,EAAE,6BAA6B;AAC7C,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,IAAI;AACpB,oBAAA,MAAM,EAAE,CAAC;oBACT,mBAAmB,EAAE,CAAC,YAAY;AACnC;AACF;AACF,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,wBAAwB,EAAE,IAAI;AAC9B,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,wBAAwB,EAAE;AAC3B;AACF;;AAGI,MAAM,8BAA8B,GAAG;IAC5C,UAAU,CAAC,+BAA+B,CAAC;AAC3C,IAAA,gBAAgB,CAAgC;QAC9C,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB;AAC5C,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;AAC9B,QAAA,YAAY,EAAE;AACZ,YAAA,cAAc,EAAE;AACjB,SAAA;AACD,QAAA,aAAa,EAAE,MACb,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B;KAC5F,CAAC;AACF,IAAA,gBAAgB,CAAC;QACf,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB;AAC5C,QAAA,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC;AACtC,QAAA,aAAa,EAAE,MACb,OAAO,wCAAwC,CAAC,CAAC,IAAI,CACnD,CAAC,IAAI,CAAC,CAAC,iCAAiC,CACzC;AACH,QAAA,YAAY,EAAE;AACZ,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,kBAAkB,EAAE;AACrB,SAAA;AACD,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,QAAQ,EAAE;KACX;;;AChGH;;AAEG;;;;"}
@@ -15,7 +15,7 @@ const deviceControlMessageWidgetDefinition = {
15
15
  previewImage: 'c8y-style-assets/device-control-message-widget.png',
16
16
  errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,
17
17
  data: {
18
- schema: () => import('c8y-schema-loader?interfaceName=DeviceControlMessageWidgetConfig!@c8y/ngx-components/widgets/implementations/device-control-message'),
18
+ schema: () => import('c8y-schema-loader?interfaceName=DeviceControlMessageWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/device-control-message'),
19
19
  export: exportConfigWithDevice,
20
20
  import: importConfigWithDevice,
21
21
  settings: {
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-definitions-device-control-message.mjs","sources":["../../widgets/definitions/device-control-message/index.ts","../../widgets/definitions/device-control-message/c8y-ngx-components-widgets-definitions-device-control-message.ts"],"sourcesContent":["import {\n hookWidgetConfig,\n WidgetAssetSelectorComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport type { DynamicWidgetDefinition } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicComponentErrorStrategy,\n DynamicManagedObjectResolver,\n hookWidget\n} from '@c8y/ngx-components';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n importConfigWithDevice,\n exportConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\nexport const deviceControlMessageWidgetDefinition = {\n id: defaultWidgetIds.DEVICE_CONTROL_MESSAGE_WIDGET,\n label: gettext('Message sending'),\n description: gettext(`Remotely send a message to a device`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/device-control-message').then(\n m => m.DeviceControlMessageWidgetViewComponent\n ),\n resolve: {\n device: DynamicManagedObjectResolver\n },\n previewImage: 'c8y-style-assets/device-control-message-widget.png',\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DeviceControlMessageWidgetConfig!@c8y/ngx-components/widgets/implementations/device-control-message'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n }\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const deviceControlMessageWidgetProviders = [\n hookWidget(deviceControlMessageWidgetDefinition),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DEVICE_CONTROL_MESSAGE_WIDGET,\n label: gettext('Device'),\n loadComponent: () => Promise.resolve(WidgetAssetSelectorComponent),\n priority: 100\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAiBO,MAAM,oCAAoC,GAAG;IAClD,EAAE,EAAE,gBAAgB,CAAC,6BAA6B;AAClD,IAAA,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC;AACjC,IAAA,WAAW,EAAE,OAAO,CAAC,CAAA,mCAAA,CAAqC,CAAC;AAC3D,IAAA,aAAa,EAAE,MACb,OAAO,oEAAoE,CAAC,CAAC,IAAI,CAC/E,CAAC,IAAI,CAAC,CAAC,uCAAuC,CAC/C;AACH,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE;AACT,KAAA;AACD,IAAA,YAAY,EAAE,oDAAoD;IAClE,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,qIAAqI,CACtI;AACH,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV;AACF;AACF;;AAGI,MAAM,mCAAmC,GAAG;IACjD,UAAU,CAAC,oCAAoC,CAAC;AAChD,IAAA,gBAAgB,CAAC;QACf,QAAQ,EAAE,gBAAgB,CAAC,6BAA6B;AACxD,QAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;QACxB,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC;AAClE,QAAA,QAAQ,EAAE;KACX;;;ACtDH;;AAEG;;;;"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-definitions-device-control-message.mjs","sources":["../../widgets/definitions/device-control-message/index.ts","../../widgets/definitions/device-control-message/c8y-ngx-components-widgets-definitions-device-control-message.ts"],"sourcesContent":["import {\n hookWidgetConfig,\n WidgetAssetSelectorComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport type { DynamicWidgetDefinition } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicComponentErrorStrategy,\n DynamicManagedObjectResolver,\n hookWidget\n} from '@c8y/ngx-components';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n importConfigWithDevice,\n exportConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\nexport const deviceControlMessageWidgetDefinition = {\n id: defaultWidgetIds.DEVICE_CONTROL_MESSAGE_WIDGET,\n label: gettext('Message sending'),\n description: gettext(`Remotely send a message to a device`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/device-control-message').then(\n m => m.DeviceControlMessageWidgetViewComponent\n ),\n resolve: {\n device: DynamicManagedObjectResolver\n },\n previewImage: 'c8y-style-assets/device-control-message-widget.png',\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DeviceControlMessageWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/device-control-message'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n }\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const deviceControlMessageWidgetProviders = [\n hookWidget(deviceControlMessageWidgetDefinition),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DEVICE_CONTROL_MESSAGE_WIDGET,\n label: gettext('Device'),\n loadComponent: () => Promise.resolve(WidgetAssetSelectorComponent),\n priority: 100\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAiBO,MAAM,oCAAoC,GAAG;IAClD,EAAE,EAAE,gBAAgB,CAAC,6BAA6B;AAClD,IAAA,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC;AACjC,IAAA,WAAW,EAAE,OAAO,CAAC,CAAA,mCAAA,CAAqC,CAAC;AAC3D,IAAA,aAAa,EAAE,MACb,OAAO,oEAAoE,CAAC,CAAC,IAAI,CAC/E,CAAC,IAAI,CAAC,CAAC,uCAAuC,CAC/C;AACH,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE;AACT,KAAA;AACD,IAAA,YAAY,EAAE,oDAAoD;IAClE,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,wJAAwJ,CACzJ;AACH,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV;AACF;AACF;;AAGI,MAAM,mCAAmC,GAAG;IACjD,UAAU,CAAC,oCAAoC,CAAC;AAChD,IAAA,gBAAgB,CAAC;QACf,QAAQ,EAAE,gBAAgB,CAAC,6BAA6B;AACxD,QAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;QACxB,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC;AAClE,QAAA,QAAQ,EAAE;KACX;;;ACtDH;;AAEG;;;;"}
@@ -141,7 +141,7 @@ class HtmlWidgetFactory {
141
141
  loadComponent: () => import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => m.HtmlWidgetComponent),
142
142
  previewImage: 'c8y-style-assets/html-widget-pr.png',
143
143
  data: {
144
- schema: () => import('c8y-schema-loader?interfaceName=HtmlWidgetConfig!@c8y/ngx-components/widgets/implementations/html-widget'),
144
+ schema: () => import('c8y-schema-loader?interfaceName=HtmlWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/html-widget'),
145
145
  export: exportConfigWithDevice,
146
146
  import: importConfigWithDevice,
147
147
  settings: {
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-definitions-html-widget.mjs","sources":["../../widgets/definitions/html-widget/html-widget-config.factory.ts","../../widgets/definitions/html-widget/html-widget.factory.ts","../../widgets/definitions/html-widget/index.ts","../../widgets/definitions/html-widget/c8y-ngx-components-widgets-definitions-html-widget.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { ExtensionFactory, PreviewService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport type {\n AssetPropertyMapping,\n WidgetConfigSectionDefinition\n} from '@c8y/ngx-components/context-dashboard';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\nimport { quoteAndEscape } from '@c8y/ngx-components/context-dashboard';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HtmlWidgetConfigFactory implements ExtensionFactory<WidgetConfigSectionDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetConfigDefinition: WidgetConfigSectionDefinition[] = [\n {\n widgetId: defaultWidgetIds.HTML,\n providers: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => [\n m.HtmlWidgetConfigService\n ]),\n label: gettext('Asset selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.WidgetAssetSelectorComponent),\n priority: 100,\n initialState: {\n isRequired: false,\n groupsSelectable: true\n }\n },\n {\n widgetId: defaultWidgetIds.HTML,\n label: gettext('Asset properties'),\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.AssetPropertyMappingsComponent),\n priority: 70,\n initialState: {\n widgetConfigPath: ['properties'],\n initialMappings: {\n lastUpdated: {\n label: 'Last updated',\n assetProperty: {\n c8y_JsonSchema: {\n properties: {\n lastUpdated: {\n type: 'string',\n label: 'Last updated'\n }\n }\n },\n name: 'lastUpdated',\n label: 'Last updated',\n type: 'string',\n isEditable: false,\n isStandardProperty: true,\n active: true\n }\n },\n lastDeviceMessage: {\n label: 'Last device message',\n assetProperty: {\n c8y_JsonSchema: {\n properties: {\n lastDeviceMessage: {\n label: 'Last device message',\n type: 'string'\n }\n }\n },\n name: 'lastDeviceMessage',\n label: 'Last device message',\n printFormat: 'datetime',\n type: 'string',\n computed: true,\n isEditable: false,\n isStandardProperty: true,\n active: true\n }\n }\n },\n allowAddingNewMappings: true,\n allowRenamingMappings: true,\n allowRelabellingMappings: false,\n allowEditingMappings: true,\n allowRemovingMappings: true,\n showLabels: false,\n showNames: true,\n showAssets: true,\n showValues: true,\n onBeforeCopyMappingToClipboard: (mapping: AssetPropertyMapping) => {\n const nonAlphanumericRegex = /[^a-zA-Z0-9]/;\n const name = String(mapping.name);\n const nameQuotedEscaped = quoteAndEscape(name);\n const key = nonAlphanumericRegex.test(name) ? `[${nameQuotedEscaped}]` : name;\n return '${this.c8yProperties?.' + key + '}';\n }\n }\n },\n {\n widgetId: defaultWidgetIds.HTML,\n priority: 40,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.AUTO_REFRESH_ONLY_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n },\n {\n widgetId: defaultWidgetIds.HTML,\n providers: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => [\n m.HtmlWidgetConfigService\n ]),\n label: gettext('Settings'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetConfigComponent\n ),\n priority: 0,\n expanded: true\n }\n ];\n\n get(): Observable<WidgetConfigSectionDefinition[]> {\n return this.betaPreviewService.getState$('ui.html-widget.v2').pipe(\n map(state => {\n if (state) {\n return this.baseWidgetConfigDefinition;\n }\n return [];\n })\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicComponentDefinition,\n DynamicManagedObjectResolver,\n DynamicWidgetDefinition,\n ExtensionFactory,\n PreviewService,\n WIDGET_CONFIGURATION_GRID_SIZE\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HtmlWidgetFactory implements ExtensionFactory<DynamicComponentDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetDefinition: DynamicComponentDefinition = {\n id: defaultWidgetIds.HTML,\n label: gettext('HTML'),\n description: gettext(`Display custom HTML code.`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetComponent\n ),\n previewImage: 'c8y-style-assets/html-widget-pr.png',\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=HtmlWidgetConfig!@c8y/ngx-components/widgets/implementations/html-widget'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n settings: {\n noNewWidgets: false,\n configurationViewGridSize: WIDGET_CONFIGURATION_GRID_SIZE.HALF,\n widgetDefaults: {\n _width: 8,\n _height: 4\n }\n }\n },\n resolve: {\n device: DynamicManagedObjectResolver\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.betaPreviewService.getState$('ui.html-widget.v2').pipe(\n map(state => {\n if (state) {\n return [this.baseWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';\nimport { HtmlWidgetConfigFactory } from './html-widget-config.factory';\nimport { HtmlWidgetFactory } from './html-widget.factory';\n\nexport const htmlWidgetProviders = [\n hookWidget(HtmlWidgetFactory),\n hookWidgetConfig(HtmlWidgetConfigFactory),\n hookPreview({\n key: 'ui.html-widget.v2',\n label: 'Improved HTML widget',\n description: () =>\n import('@c8y/style/markdown-files/html-widget-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-definitions-html-widget.mjs","sources":["../../widgets/definitions/html-widget/html-widget-config.factory.ts","../../widgets/definitions/html-widget/html-widget.factory.ts","../../widgets/definitions/html-widget/index.ts","../../widgets/definitions/html-widget/c8y-ngx-components-widgets-definitions-html-widget.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { ExtensionFactory, PreviewService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport type {\n AssetPropertyMapping,\n WidgetConfigSectionDefinition\n} from '@c8y/ngx-components/context-dashboard';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\nimport { quoteAndEscape } from '@c8y/ngx-components/context-dashboard';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HtmlWidgetConfigFactory implements ExtensionFactory<WidgetConfigSectionDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetConfigDefinition: WidgetConfigSectionDefinition[] = [\n {\n widgetId: defaultWidgetIds.HTML,\n providers: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => [\n m.HtmlWidgetConfigService\n ]),\n label: gettext('Asset selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.WidgetAssetSelectorComponent),\n priority: 100,\n initialState: {\n isRequired: false,\n groupsSelectable: true\n }\n },\n {\n widgetId: defaultWidgetIds.HTML,\n label: gettext('Asset properties'),\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.AssetPropertyMappingsComponent),\n priority: 70,\n initialState: {\n widgetConfigPath: ['properties'],\n initialMappings: {\n lastUpdated: {\n label: 'Last updated',\n assetProperty: {\n c8y_JsonSchema: {\n properties: {\n lastUpdated: {\n type: 'string',\n label: 'Last updated'\n }\n }\n },\n name: 'lastUpdated',\n label: 'Last updated',\n type: 'string',\n isEditable: false,\n isStandardProperty: true,\n active: true\n }\n },\n lastDeviceMessage: {\n label: 'Last device message',\n assetProperty: {\n c8y_JsonSchema: {\n properties: {\n lastDeviceMessage: {\n label: 'Last device message',\n type: 'string'\n }\n }\n },\n name: 'lastDeviceMessage',\n label: 'Last device message',\n printFormat: 'datetime',\n type: 'string',\n computed: true,\n isEditable: false,\n isStandardProperty: true,\n active: true\n }\n }\n },\n allowAddingNewMappings: true,\n allowRenamingMappings: true,\n allowRelabellingMappings: false,\n allowEditingMappings: true,\n allowRemovingMappings: true,\n showLabels: false,\n showNames: true,\n showAssets: true,\n showValues: true,\n onBeforeCopyMappingToClipboard: (mapping: AssetPropertyMapping) => {\n const nonAlphanumericRegex = /[^a-zA-Z0-9]/;\n const name = String(mapping.name);\n const nameQuotedEscaped = quoteAndEscape(name);\n const key = nonAlphanumericRegex.test(name) ? `[${nameQuotedEscaped}]` : name;\n return '${this.c8yProperties?.' + key + '}';\n }\n }\n },\n {\n widgetId: defaultWidgetIds.HTML,\n priority: 40,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.AUTO_REFRESH_ONLY_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n },\n {\n widgetId: defaultWidgetIds.HTML,\n providers: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => [\n m.HtmlWidgetConfigService\n ]),\n label: gettext('Settings'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetConfigComponent\n ),\n priority: 0,\n expanded: true\n }\n ];\n\n get(): Observable<WidgetConfigSectionDefinition[]> {\n return this.betaPreviewService.getState$('ui.html-widget.v2').pipe(\n map(state => {\n if (state) {\n return this.baseWidgetConfigDefinition;\n }\n return [];\n })\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicComponentDefinition,\n DynamicManagedObjectResolver,\n DynamicWidgetDefinition,\n ExtensionFactory,\n PreviewService,\n WIDGET_CONFIGURATION_GRID_SIZE\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HtmlWidgetFactory implements ExtensionFactory<DynamicComponentDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetDefinition: DynamicComponentDefinition = {\n id: defaultWidgetIds.HTML,\n label: gettext('HTML'),\n description: gettext(`Display custom HTML code.`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetComponent\n ),\n previewImage: 'c8y-style-assets/html-widget-pr.png',\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=HtmlWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/html-widget'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n settings: {\n noNewWidgets: false,\n configurationViewGridSize: WIDGET_CONFIGURATION_GRID_SIZE.HALF,\n widgetDefaults: {\n _width: 8,\n _height: 4\n }\n }\n },\n resolve: {\n device: DynamicManagedObjectResolver\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.betaPreviewService.getState$('ui.html-widget.v2').pipe(\n map(state => {\n if (state) {\n return [this.baseWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';\nimport { HtmlWidgetConfigFactory } from './html-widget-config.factory';\nimport { HtmlWidgetFactory } from './html-widget.factory';\n\nexport const htmlWidgetProviders = [\n hookWidget(HtmlWidgetFactory),\n hookWidgetConfig(HtmlWidgetConfigFactory),\n hookPreview({\n key: 'ui.html-widget.v2',\n label: 'Improved HTML widget',\n description: () =>\n import('@c8y/style/markdown-files/html-widget-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ const imageWidgetDefinition = {
12
12
  loadConfigComponent: () => import('@c8y/ngx-components/widgets/implementations/image').then(m => m.ImageWidgetConfigComponent),
13
13
  previewImage: 'c8y-style-assets/image-widget.png',
14
14
  data: {
15
- schema: () => import('c8y-schema-loader?interfaceName=ImageWidgetConfig!@c8y/ngx-components/widgets/implementations/image'),
15
+ schema: () => import('c8y-schema-loader?interfaceName=ImageWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/image'),
16
16
  export: exportImageWidgetConfig,
17
17
  import: importImageWidgetConfig,
18
18
  settings: {
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-definitions-image.mjs","sources":["../../widgets/definitions/image/index.ts","../../widgets/definitions/image/c8y-ngx-components-widgets-definitions-image.ts"],"sourcesContent":["import type { DashboardMetadata } from '@c8y/ngx-components/context-dashboard';\nimport type {\n DynamicWidgetDefinition,\n WidgetImportExportInjectorOptions\n} from '@c8y/ngx-components';\nimport { hookWidget } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport type { ImageWidgetConfig } from '@c8y/ngx-components/widgets/implementations/image';\nimport { inject, Injector } from '@angular/core';\nimport { InventoryService, QueriesUtil } from '@c8y/client';\n\nexport interface ExportedImageWidgetConfig extends ImageWidgetConfig {\n imageDetails: { file: { name: string; type: string }; base64: string; c8y_SHA256: string };\n}\n\nexport const imageWidgetDefinition = {\n id: defaultWidgetIds.IMAGE,\n label: gettext('Image'),\n description: gettext(`Display a single image selected from the user's file system.`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/image').then(\n m => m.ImageWidgetViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/image').then(\n m => m.ImageWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/image-widget.png',\n\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=ImageWidgetConfig!@c8y/ngx-components/widgets/implementations/image'\n ),\n export: exportImageWidgetConfig,\n import: importImageWidgetConfig,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n groupsSelectable: false\n }\n }\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const imageWidgetProviders = [hookWidget(imageWidgetDefinition)];\n\nasync function exportImageWidgetConfig(\n config: ImageWidgetConfig,\n _dashboardData: DashboardMetadata,\n _options: WidgetImportExportInjectorOptions\n): Promise<ExportedImageWidgetConfig> {\n const { ImageWidgetService } = await import('@c8y/ngx-components/widgets/implementations/image');\n const injector = inject(Injector);\n const imageWidgetService = injector.get(ImageWidgetService);\n const imageDetails = await imageWidgetService.getImageDetails(config.imageBinaryId);\n\n return {\n ...config,\n imageDetails: {\n base64: imageDetails.base64,\n c8y_SHA256: imageDetails.c8y_SHA256,\n file: {\n name: imageDetails.file.name,\n type: imageDetails.file.type\n }\n }\n };\n}\n\nasync function importImageWidgetConfig(\n config: ExportedImageWidgetConfig,\n dashboardData: DashboardMetadata,\n _options: WidgetImportExportInjectorOptions\n): Promise<ImageWidgetConfig> {\n const injector = inject(Injector);\n const inventoryService = injector.get(InventoryService);\n\n const baseQuery = {\n __filter: { c8y_SHA256: { __eq: config.imageDetails.c8y_SHA256 } }\n };\n const queriesUtil = new QueriesUtil();\n const query = queriesUtil.buildQuery(baseQuery);\n\n // check if image already exists in inventory\n const fileBySha = (await inventoryService.list({ query, pageSize: 1 })).data?.[0];\n if (fileBySha) {\n return {\n imageBinaryId: fileBySha.id,\n styling: config.styling\n };\n }\n\n // create image file from base64\n const url = config.imageDetails.base64;\n const fileName = config.imageDetails.file.name;\n const type = config.imageDetails.file.type;\n const file = await fetch(url)\n .then(res => res.blob())\n .then(blob => {\n return new File([blob], fileName, { type });\n });\n\n const { ImageWidgetService } = await import('@c8y/ngx-components/widgets/implementations/image');\n const imageWidgetService = injector.get(ImageWidgetService);\n const imageBinaryId = await imageWidgetService.uploadFile(file, {\n dashboardMoId: dashboardData.mo.id,\n isDeviceTypeDashboard:\n !!dashboardData.mo.c8y_Dashboard.deviceType &&\n !!dashboardData.mo.c8y_Dashboard.deviceTypeValue\n });\n\n return {\n imageBinaryId,\n styling: config.styling\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-definitions-image.mjs","sources":["../../widgets/definitions/image/index.ts","../../widgets/definitions/image/c8y-ngx-components-widgets-definitions-image.ts"],"sourcesContent":["import type { DashboardMetadata } from '@c8y/ngx-components/context-dashboard';\nimport type {\n DynamicWidgetDefinition,\n WidgetImportExportInjectorOptions\n} from '@c8y/ngx-components';\nimport { hookWidget } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport type { ImageWidgetConfig } from '@c8y/ngx-components/widgets/implementations/image';\nimport { inject, Injector } from '@angular/core';\nimport { InventoryService, QueriesUtil } from '@c8y/client';\n\nexport interface ExportedImageWidgetConfig extends ImageWidgetConfig {\n imageDetails: { file: { name: string; type: string }; base64: string; c8y_SHA256: string };\n}\n\nexport const imageWidgetDefinition = {\n id: defaultWidgetIds.IMAGE,\n label: gettext('Image'),\n description: gettext(`Display a single image selected from the user's file system.`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/image').then(\n m => m.ImageWidgetViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/image').then(\n m => m.ImageWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/image-widget.png',\n\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=ImageWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/image'\n ),\n export: exportImageWidgetConfig,\n import: importImageWidgetConfig,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n groupsSelectable: false\n }\n }\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const imageWidgetProviders = [hookWidget(imageWidgetDefinition)];\n\nasync function exportImageWidgetConfig(\n config: ImageWidgetConfig,\n _dashboardData: DashboardMetadata,\n _options: WidgetImportExportInjectorOptions\n): Promise<ExportedImageWidgetConfig> {\n const { ImageWidgetService } = await import('@c8y/ngx-components/widgets/implementations/image');\n const injector = inject(Injector);\n const imageWidgetService = injector.get(ImageWidgetService);\n const imageDetails = await imageWidgetService.getImageDetails(config.imageBinaryId);\n\n return {\n ...config,\n imageDetails: {\n base64: imageDetails.base64,\n c8y_SHA256: imageDetails.c8y_SHA256,\n file: {\n name: imageDetails.file.name,\n type: imageDetails.file.type\n }\n }\n };\n}\n\nasync function importImageWidgetConfig(\n config: ExportedImageWidgetConfig,\n dashboardData: DashboardMetadata,\n _options: WidgetImportExportInjectorOptions\n): Promise<ImageWidgetConfig> {\n const injector = inject(Injector);\n const inventoryService = injector.get(InventoryService);\n\n const baseQuery = {\n __filter: { c8y_SHA256: { __eq: config.imageDetails.c8y_SHA256 } }\n };\n const queriesUtil = new QueriesUtil();\n const query = queriesUtil.buildQuery(baseQuery);\n\n // check if image already exists in inventory\n const fileBySha = (await inventoryService.list({ query, pageSize: 1 })).data?.[0];\n if (fileBySha) {\n return {\n imageBinaryId: fileBySha.id,\n styling: config.styling\n };\n }\n\n // create image file from base64\n const url = config.imageDetails.base64;\n const fileName = config.imageDetails.file.name;\n const type = config.imageDetails.file.type;\n const file = await fetch(url)\n .then(res => res.blob())\n .then(blob => {\n return new File([blob], fileName, { type });\n });\n\n const { ImageWidgetService } = await import('@c8y/ngx-components/widgets/implementations/image');\n const imageWidgetService = injector.get(ImageWidgetService);\n const imageBinaryId = await imageWidgetService.uploadFile(file, {\n dashboardMoId: dashboardData.mo.id,\n isDeviceTypeDashboard:\n !!dashboardData.mo.c8y_Dashboard.deviceType &&\n !!dashboardData.mo.c8y_Dashboard.deviceTypeValue\n });\n\n return {\n imageBinaryId,\n styling: config.styling\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -77,7 +77,7 @@ const infoGaugeWidgetDefinition = {
77
77
  },
78
78
  errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,
79
79
  data: {
80
- schema: () => import('c8y-schema-loader?interfaceName=InfoGaugeWidgetConfig!@c8y/ngx-components/widgets/implementations/info-gauge'),
80
+ schema: () => import('c8y-schema-loader?interfaceName=InfoGaugeWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/info-gauge'),
81
81
  export: exportConfigWithTargets,
82
82
  import: importConfigWithTargets,
83
83
  settings: {
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-widgets-definitions-info-gauge.mjs","sources":["../../widgets/definitions/info-gauge/info-gauge.constants.ts","../../widgets/definitions/info-gauge/index.ts","../../widgets/definitions/info-gauge/c8y-ngx-components-widgets-definitions-info-gauge.ts"],"sourcesContent":["import { DatapointAttributesFormConfig } from '@c8y/ngx-components/datapoint-selector';\nimport { AbstractControl, FormGroup, ValidatorFn } from '@angular/forms';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\nconst AT_LEAST_ONE_ACTIVE_ERROR_KEY = 'noActiveDataPoint';\n\nexport function atLeastOneDataPointActive(dataPointsControlNames: string[]): ValidatorFn {\n const validatorFn = (formGroup: AbstractControl) => {\n if (!(formGroup instanceof FormGroup)) return null;\n\n const errorKey = AT_LEAST_ONE_ACTIVE_ERROR_KEY;\n let anyActive = false;\n\n for (const controlName of dataPointsControlNames) {\n const control = formGroup.get(controlName);\n const value = control?.value;\n if (Array.isArray(value) && value.some(item => item?.__active)) {\n anyActive = true;\n break;\n }\n }\n\n // If none are active\n if (!anyActive) {\n // Set error on all specified controls\n for (const controlName of dataPointsControlNames) {\n const control = formGroup.get(controlName);\n if (control) {\n const errors = { ...(control.errors || {}) };\n errors[errorKey] = true;\n control.setErrors(errors);\n }\n }\n // Set error on the group\n return { [errorKey]: true };\n } else {\n // Remove error from all specified controls if present\n for (const controlName of dataPointsControlNames) {\n const control = formGroup.get(controlName);\n if (control?.errors?.[errorKey]) {\n const errors = { ...control.errors };\n delete errors[errorKey];\n control.setErrors(Object.keys(errors).length ? errors : null);\n }\n }\n // Validation passes for the group\n return null;\n }\n };\n\n // Attach metadata to the validator function\n (validatorFn as any).controlNames = dataPointsControlNames;\n\n return validatorFn;\n}\n\nexport const DEFAULT_FORM_CONFIG: Partial<DatapointAttributesFormConfig> = {\n showRedRange: true,\n showYellowRange: true,\n showRange: true,\n selectableChartRenderTypes: []\n};\n\nexport const DATAPOINTS_GAUGE_CONTROL_NAME = 'datapointsGauge';\nexport const DATAPOINTS_LABELS_CONTROL_NAME = 'datapointsLabels';\n\nexport const minActiveDataPointError = {\n [AT_LEAST_ONE_ACTIVE_ERROR_KEY]: gettext(\n 'At least 1 data point must be selected and active for the gauge or the labels.'\n )\n} as const;\n","import type { DynamicWidgetDefinition } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicDatapointsResolver,\n hookWidget,\n DynamicComponentErrorStrategy\n} from '@c8y/ngx-components';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';\nimport {\n DATAPOINTS_LABELS_CONTROL_NAME,\n DEFAULT_FORM_CONFIG,\n atLeastOneDataPointActive,\n DATAPOINTS_GAUGE_CONTROL_NAME,\n minActiveDataPointError\n} from './info-gauge.constants';\n\nexport const infoGaugeWidgetDefinition = {\n id: defaultWidgetIds.INFO_GAUGE,\n label: gettext('Info gauge'),\n description: gettext('Radial gauge and multiple label and value pairs for data points'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/info-gauge').then(\n m => m.InfoGaugeWidgetViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/info-gauge').then(\n m => m.InfoGaugeWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/info-gauge-widget-pr.png',\n resolve: {\n datapointsLabels: DynamicDatapointsResolver,\n datapointsGauge: DynamicDatapointsResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=InfoGaugeWidgetConfig!@c8y/ngx-components/widgets/implementations/info-gauge'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 4,\n _height: 2\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n groupsSelectable: false\n }\n }\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const infoGaugeWidgetProviders = [\n hookWidget(infoGaugeWidgetDefinition),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.INFO_GAUGE,\n label: gettext('Gauge`display`'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-selector').then(\n m => m.WidgetDatapointsSelectorComponent\n ),\n initialState: {\n minActiveCount: 0,\n defaultFormOptions: DEFAULT_FORM_CONFIG,\n controlName: DATAPOINTS_GAUGE_CONTROL_NAME\n },\n expanded: true,\n validators: [\n atLeastOneDataPointActive([DATAPOINTS_GAUGE_CONTROL_NAME, DATAPOINTS_LABELS_CONTROL_NAME])\n ],\n validationErrors: minActiveDataPointError,\n priority: 110\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.INFO_GAUGE,\n label: gettext('Multiple label and value pairs'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-selector').then(\n m => m.WidgetDatapointsSelectorComponent\n ),\n initialState: {\n minActiveCount: 0,\n defaultFormOptions: DEFAULT_FORM_CONFIG,\n controlName: DATAPOINTS_LABELS_CONTROL_NAME\n },\n validators: [\n atLeastOneDataPointActive([DATAPOINTS_GAUGE_CONTROL_NAME, DATAPOINTS_LABELS_CONTROL_NAME])\n ],\n validationErrors: minActiveDataPointError,\n priority: 100\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-widgets-definitions-info-gauge.mjs","sources":["../../widgets/definitions/info-gauge/info-gauge.constants.ts","../../widgets/definitions/info-gauge/index.ts","../../widgets/definitions/info-gauge/c8y-ngx-components-widgets-definitions-info-gauge.ts"],"sourcesContent":["import { DatapointAttributesFormConfig } from '@c8y/ngx-components/datapoint-selector';\nimport { AbstractControl, FormGroup, ValidatorFn } from '@angular/forms';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\nconst AT_LEAST_ONE_ACTIVE_ERROR_KEY = 'noActiveDataPoint';\n\nexport function atLeastOneDataPointActive(dataPointsControlNames: string[]): ValidatorFn {\n const validatorFn = (formGroup: AbstractControl) => {\n if (!(formGroup instanceof FormGroup)) return null;\n\n const errorKey = AT_LEAST_ONE_ACTIVE_ERROR_KEY;\n let anyActive = false;\n\n for (const controlName of dataPointsControlNames) {\n const control = formGroup.get(controlName);\n const value = control?.value;\n if (Array.isArray(value) && value.some(item => item?.__active)) {\n anyActive = true;\n break;\n }\n }\n\n // If none are active\n if (!anyActive) {\n // Set error on all specified controls\n for (const controlName of dataPointsControlNames) {\n const control = formGroup.get(controlName);\n if (control) {\n const errors = { ...(control.errors || {}) };\n errors[errorKey] = true;\n control.setErrors(errors);\n }\n }\n // Set error on the group\n return { [errorKey]: true };\n } else {\n // Remove error from all specified controls if present\n for (const controlName of dataPointsControlNames) {\n const control = formGroup.get(controlName);\n if (control?.errors?.[errorKey]) {\n const errors = { ...control.errors };\n delete errors[errorKey];\n control.setErrors(Object.keys(errors).length ? errors : null);\n }\n }\n // Validation passes for the group\n return null;\n }\n };\n\n // Attach metadata to the validator function\n (validatorFn as any).controlNames = dataPointsControlNames;\n\n return validatorFn;\n}\n\nexport const DEFAULT_FORM_CONFIG: Partial<DatapointAttributesFormConfig> = {\n showRedRange: true,\n showYellowRange: true,\n showRange: true,\n selectableChartRenderTypes: []\n};\n\nexport const DATAPOINTS_GAUGE_CONTROL_NAME = 'datapointsGauge';\nexport const DATAPOINTS_LABELS_CONTROL_NAME = 'datapointsLabels';\n\nexport const minActiveDataPointError = {\n [AT_LEAST_ONE_ACTIVE_ERROR_KEY]: gettext(\n 'At least 1 data point must be selected and active for the gauge or the labels.'\n )\n} as const;\n","import type { DynamicWidgetDefinition } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicDatapointsResolver,\n hookWidget,\n DynamicComponentErrorStrategy\n} from '@c8y/ngx-components';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';\nimport {\n DATAPOINTS_LABELS_CONTROL_NAME,\n DEFAULT_FORM_CONFIG,\n atLeastOneDataPointActive,\n DATAPOINTS_GAUGE_CONTROL_NAME,\n minActiveDataPointError\n} from './info-gauge.constants';\n\nexport const infoGaugeWidgetDefinition = {\n id: defaultWidgetIds.INFO_GAUGE,\n label: gettext('Info gauge'),\n description: gettext('Radial gauge and multiple label and value pairs for data points'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/info-gauge').then(\n m => m.InfoGaugeWidgetViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/info-gauge').then(\n m => m.InfoGaugeWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/info-gauge-widget-pr.png',\n resolve: {\n datapointsLabels: DynamicDatapointsResolver,\n datapointsGauge: DynamicDatapointsResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=InfoGaugeWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/info-gauge'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 4,\n _height: 2\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n groupsSelectable: false\n }\n }\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const infoGaugeWidgetProviders = [\n hookWidget(infoGaugeWidgetDefinition),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.INFO_GAUGE,\n label: gettext('Gauge`display`'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-selector').then(\n m => m.WidgetDatapointsSelectorComponent\n ),\n initialState: {\n minActiveCount: 0,\n defaultFormOptions: DEFAULT_FORM_CONFIG,\n controlName: DATAPOINTS_GAUGE_CONTROL_NAME\n },\n expanded: true,\n validators: [\n atLeastOneDataPointActive([DATAPOINTS_GAUGE_CONTROL_NAME, DATAPOINTS_LABELS_CONTROL_NAME])\n ],\n validationErrors: minActiveDataPointError,\n priority: 110\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.INFO_GAUGE,\n label: gettext('Multiple label and value pairs'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-selector').then(\n m => m.WidgetDatapointsSelectorComponent\n ),\n initialState: {\n minActiveCount: 0,\n defaultFormOptions: DEFAULT_FORM_CONFIG,\n controlName: DATAPOINTS_LABELS_CONTROL_NAME\n },\n validators: [\n atLeastOneDataPointActive([DATAPOINTS_GAUGE_CONTROL_NAME, DATAPOINTS_LABELS_CONTROL_NAME])\n ],\n validationErrors: minActiveDataPointError,\n priority: 100\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ const kpiWidgetDefinition = {
22
22
  },
23
23
  errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,
24
24
  data: {
25
- schema: () => import('c8y-schema-loader?interfaceName=KpiWidgetConfig!@c8y/ngx-components/widgets/implementations/kpi'),
25
+ schema: () => import('c8y-schema-loader?interfaceName=KpiWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/kpi'),
26
26
  export: exportConfigWithTargets,
27
27
  import: importConfigWithTargets,
28
28
  controls: PRESET_NAME.KPI_CONFIG,