{"version":3,"file":"c8y-ngx-components-widgets-definitions-scada.mjs","sources":["../../widgets/definitions/scada/scada-widget.factory.ts","../../widgets/definitions/scada/scada-widget-config.factory.ts","../../widgets/definitions/scada/index.ts","../../widgets/definitions/scada/c8y-ngx-components-widgets-definitions-scada.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport {\n  DynamicComponentDefinition,\n  DynamicComponentErrorStrategy,\n  DynamicManagedObjectResolver,\n  DynamicWidgetDefinition,\n  ExtensionFactory,\n  PreviewService\n} from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { from, map, Observable, switchMap } 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({ providedIn: 'root' })\nexport class ScadaWidgetFactory implements ExtensionFactory<DynamicComponentDefinition> {\n  private readonly betaPreviewService = inject(PreviewService);\n  private readonly baseWidgetDefinition: DynamicComponentDefinition = {\n    id: defaultWidgetIds.SCADA,\n    label: gettext('SCADA'),\n    description: gettext(\n      `Displays a dynamically updated SVG image for real-time device monitoring.`\n    ),\n    loadComponent: () =>\n      import('@c8y/ngx-components/widgets/implementations/scada').then(\n        m => m.ScadaWidgetViewComponent\n      ),\n    errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n    previewImage: 'c8y-style-assets/scada-widget-preview.png',\n    data: {\n      schema: () =>\n        import(\n          'c8y-schema-loader?interfaceName=ScadaWidgetConfig!@c8y/ngx-components/widgets/implementations/scada'\n        ),\n      export: exportConfigWithDevice,\n      import: importConfigWithDevice,\n      settings: {\n        noNewWidgets: false,\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 from(\n      import('@c8y/ngx-components/widgets/implementations/scada').then(\n        m => m.SCADA_WIDGET_FEATURE_FLAG_NAME\n      )\n    ).pipe(\n      switchMap(featureFlagName => this.betaPreviewService.getState$(featureFlagName)),\n      map(active => {\n        if (active) {\n          return [this.baseWidgetDefinition];\n        }\n        return [];\n      })\n    );\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { from, map, Observable, switchMap } from 'rxjs';\nimport { ExtensionFactory, PreviewService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n  AssetPropertyMapping,\n  ContextWidgetConfig,\n  quoteAndEscape,\n  WidgetAssetSelectorComponent,\n  WidgetConfigSectionDefinition\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\n\n@Injectable({ providedIn: 'root' })\nexport class ScadaWidgetConfigFactory implements ExtensionFactory<WidgetConfigSectionDefinition> {\n  private readonly betaPreviewService = inject(PreviewService);\n  private readonly baseWidgetConfigDefinition: WidgetConfigSectionDefinition[] = [\n    {\n      widgetId: defaultWidgetIds.SCADA,\n      label: gettext('Asset selection'),\n      loadComponent: () => Promise.resolve(WidgetAssetSelectorComponent),\n      providers: () =>\n        import('@c8y/ngx-components/widgets/implementations/scada').then(m => [\n          m.ScadaWidgetConfigService\n        ]),\n      priority: 100,\n      initialState: {\n        isRequired: false,\n        groupsSelectable: true\n      }\n    },\n    {\n      widgetId: defaultWidgetIds.SCADA,\n      label: gettext('SVG configuration'),\n      loadComponent: () =>\n        import('@c8y/ngx-components/widgets/implementations/scada').then(\n          m => m.ScadaWidgetSvgSelectorComponent\n        ),\n      providers: () =>\n        import('@c8y/ngx-components/widgets/implementations/scada').then(m => [\n          m.ScadaWidgetConfigService\n        ]),\n      priority: 70\n    },\n    {\n      widgetId: defaultWidgetIds.SCADA,\n      label: gettext('Placeholder mappings'),\n      loadComponent: () =>\n        import('@c8y/ngx-components/context-dashboard').then(m => m.AssetPropertyMappingsComponent),\n      priority: 50,\n      expanded: true,\n      initialState: {\n        widgetConfigPath: ['config', 'mappings'],\n        allowAddingNewMappings: false,\n        allowRenamingMappings: true,\n        mappingNameFormatRegex: /^[a-zA-Z_$][a-zA-Z0-9_$]*$/,\n        mappingNameFormatErrorMessage: gettext(\n          'Name must be a valid identifier (only letters, digits, underscores, or dollar signs allowed, cannot start with a digit).'\n        ),\n        allowRelabellingMappings: false,\n        allowEditingMappings: true,\n        allowRemovingMappings: false,\n        showLabels: false,\n        showNames: true,\n        showAssets: true,\n        showValues: true,\n        emptyStateTitle: gettext('No placeholder mappings'),\n        emptyStateSubtitle: gettext('Add first placeholder in the preview or code.'),\n        feedbackMessage: gettext('{{ count }} placeholders'),\n        onBeforeCopyMappingToClipboard: (\n          mapping: AssetPropertyMapping,\n          config?: ContextWidgetConfig | null\n        ) => {\n          const name = String(mapping.name);\n          if (config?.config?.htmlWidgetConfig?.config?.legacy) {\n            return `{{ ${name} }}`;\n          }\n          const nonAlphanumericRegex = /[^a-zA-Z0-9]/;\n          const nameQuotedEscaped = quoteAndEscape(name);\n          const key = nonAlphanumericRegex.test(name) ? `[${nameQuotedEscaped}]` : name;\n          return '${this.c8yScadaValues?.' + key + '}';\n        }\n      }\n    },\n    {\n      widgetId: defaultWidgetIds.SCADA,\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      priority: 90\n    },\n    {\n      widgetId: defaultWidgetIds.SCADA,\n      label: gettext('Advanced editor'),\n      loadComponent: () =>\n        import('@c8y/ngx-components/widgets/implementations/scada').then(\n          m => m.ScadaWidgetAdvancedEditorComponent\n        ),\n      providers: () =>\n        import('@c8y/ngx-components/widgets/implementations/scada').then(m => [\n          m.ScadaWidgetConfigService\n        ]),\n      priority: 40,\n      expanded: false\n    }\n  ];\n\n  get(): Observable<WidgetConfigSectionDefinition[]> {\n    return from(\n      import('@c8y/ngx-components/widgets/implementations/scada').then(\n        m => m.SCADA_WIDGET_FEATURE_FLAG_NAME\n      )\n    ).pipe(\n      switchMap(featureFlagName => this.betaPreviewService.getState$(featureFlagName)),\n      map(active => {\n        if (active) {\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 { ScadaWidgetFactory } from './scada-widget.factory';\nimport { ScadaWidgetConfigFactory } from './scada-widget-config.factory';\n\nexport const scadaWidgetProviders = [\n  hookWidget(ScadaWidgetFactory),\n  hookWidgetConfig(ScadaWidgetConfigFactory),\n  hookPreview({\n    key: 'ui.scada-widget.v2',\n    label: 'SCADA widget v2',\n    description: () =>\n      import('@c8y/style/markdown-files/scada-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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"}