{"version":3,"file":"c8y-ngx-components-widgets-definitions-markdown.mjs","sources":["../../widgets/definitions/markdown/index.ts","../../widgets/definitions/markdown/c8y-ngx-components-widgets-definitions-markdown.ts"],"sourcesContent":["import 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 { inject, Injector } from '@angular/core';\nimport type { MarkdownWidgetConfig } from '@c8y/ngx-components/widgets/implementations/markdown';\nimport type { DashboardMetadata } from '@c8y/ngx-components/context-dashboard';\n\nexport interface ExportedMarkdownWidgetConfig extends MarkdownWidgetConfig {\n  markdownDetails?: { file: { name: string; type: string }; text: string };\n}\n\nexport const markdownWidgetDefinition = {\n  id: defaultWidgetIds.MARKDOWN,\n  label: gettext('Markdown widget'),\n  description: gettext(\n    'Display content provided as Markdown. You can write Markdown text directly, upload a file, or provide a file path.'\n  ),\n  loadComponent: () =>\n    import('@c8y/ngx-components/widgets/implementations/markdown').then(\n      m => m.MarkdownWidgetViewComponent\n    ),\n  loadConfigComponent: () =>\n    import('@c8y/ngx-components/widgets/implementations/markdown').then(\n      m => m.MarkdownWidgetConfigComponent\n    ),\n  previewImage: 'c8y-style-assets/markdown-widget.png',\n\n  data: {\n    schema: () =>\n      import(\n        'c8y-schema-loader?interfaceName=MarkdownWidgetConfig!@c8y/ngx-components/widgets/implementations/markdown'\n      ),\n    export: exportMarkdownWidgetConfig,\n    import: importMarkdownWidgetConfig,\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 markdownWidgetProviders = [hookWidget(markdownWidgetDefinition)];\n\nasync function exportMarkdownWidgetConfig(\n  config: MarkdownWidgetConfig,\n  _dashboardData: DashboardMetadata,\n  _options: WidgetImportExportInjectorOptions\n): Promise<ExportedMarkdownWidgetConfig> {\n  const { MarkdownWidgetService } = await import(\n    '@c8y/ngx-components/widgets/implementations/markdown'\n  );\n  const injector = inject(Injector);\n  if (config.contentUrl && !config.markdownBinaryId) {\n    return config;\n  }\n  const markdownWidgetService = injector.get(MarkdownWidgetService);\n  const file = await markdownWidgetService.getFile(config.markdownBinaryId);\n  const content = await file.text();\n\n  return {\n    ...config,\n    markdownDetails: {\n      text: content,\n      file: {\n        name: file.name,\n        type: file.type\n      }\n    }\n  };\n}\n\nasync function importMarkdownWidgetConfig(\n  config: ExportedMarkdownWidgetConfig,\n  _dashboardData: DashboardMetadata,\n  _options: WidgetImportExportInjectorOptions\n): Promise<MarkdownWidgetConfig> {\n  const { MarkdownWidgetService } = await import(\n    '@c8y/ngx-components/widgets/implementations/markdown'\n  );\n  if (!config.markdownDetails) {\n    return config;\n  }\n  const injector = inject(Injector);\n  const markdownService = injector.get(MarkdownWidgetService);\n  const fileToUpload = new File([config.markdownDetails.text], config.markdownDetails.file.name, {\n    type: config.markdownDetails.file.type\n  });\n  const markdownBinaryId = await markdownService.uploadFile(fileToUpload);\n\n  return {\n    contentUrl: config.contentUrl,\n    markdownBinaryId,\n    markdownContent: null\n  };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAeO,MAAM,wBAAwB,GAAG;IACtC,EAAE,EAAE,gBAAgB,CAAC,QAAQ;AAC7B,IAAA,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC;AACjC,IAAA,WAAW,EAAE,OAAO,CAClB,oHAAoH,CACrH;AACD,IAAA,aAAa,EAAE,MACb,OAAO,sDAAsD,CAAC,CAAC,IAAI,CACjE,CAAC,IAAI,CAAC,CAAC,2BAA2B,CACnC;AACH,IAAA,mBAAmB,EAAE,MACnB,OAAO,sDAAsD,CAAC,CAAC,IAAI,CACjE,CAAC,IAAI,CAAC,CAAC,6BAA6B,CACrC;AACH,IAAA,YAAY,EAAE,sCAAsC;AAEpD,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,2GAA2G,CAC5G;AACH,QAAA,MAAM,EAAE,0BAA0B;AAClC,QAAA,MAAM,EAAE,0BAA0B;AAClC,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,gBAAgB,EAAE;AACnB;AACF;AACF;AACF;;AAGI,MAAM,uBAAuB,GAAG,CAAC,UAAU,CAAC,wBAAwB,CAAC;AAE5E,eAAe,0BAA0B,CACvC,MAA4B,EAC5B,cAAiC,EACjC,QAA2C,EAAA;IAE3C,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,OACtC,sDAAsD,CACvD;AACD,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;AACjD,QAAA,OAAO,MAAM;IACf;IACA,MAAM,qBAAqB,GAAG,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACjE,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC;AACzE,IAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;IAEjC,OAAO;AACL,QAAA,GAAG,MAAM;AACT,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC;AACZ;AACF;KACF;AACH;AAEA,eAAe,0BAA0B,CACvC,MAAoC,EACpC,cAAiC,EACjC,QAA2C,EAAA;IAE3C,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,OACtC,sDAAsD,CACvD;AACD,IAAA,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;AAC3B,QAAA,OAAO,MAAM;IACf;AACA,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC3D,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE;AAC7F,QAAA,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;AACnC,KAAA,CAAC;IACF,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC;IAEvE,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,gBAAgB;AAChB,QAAA,eAAe,EAAE;KAClB;AACH;;AC3GA;;AAEG;;;;"}