ui-plugin.module.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { Component, NgModule } from '@angular/core';
  2. import { RouterModule } from '@angular/router';
  3. import {
  4. ExtensionHostComponent,
  5. ExtensionHostConfig,
  6. ModalService,
  7. SharedModule,
  8. } from '@vendure/admin-ui/src';
  9. @Component({
  10. selector: 'plugin-test-component',
  11. template: `
  12. <p>Test component works!!!</p>
  13. <button class="btn btn-primary" (click)="handleClick()">Click me!</button>
  14. `,
  15. })
  16. export class TestComponent {
  17. constructor(private modalService: ModalService) {}
  18. handleClick() {
  19. this.modalService
  20. .dialog({
  21. title: 'Did it work?',
  22. buttons: [{ label: 'Yes!!!!', returnValue: true, type: 'primary' }],
  23. })
  24. .subscribe(val => {
  25. // tslint:disable-next-line:no-console
  26. console.log(val);
  27. });
  28. }
  29. }
  30. @NgModule({
  31. declarations: [TestComponent],
  32. imports: [
  33. SharedModule,
  34. RouterModule.forChild([
  35. {
  36. path: 'js-app',
  37. component: ExtensionHostComponent,
  38. data: {
  39. extensionHostConfig: new ExtensionHostConfig({
  40. extensionUrl: './assets/js-app/index.html',
  41. }),
  42. },
  43. },
  44. {
  45. path: 'vue-app',
  46. component: ExtensionHostComponent,
  47. data: {
  48. breadcrumb: [
  49. {
  50. label: 'Vue.js extension',
  51. link: ['./'],
  52. },
  53. ],
  54. extensionHostConfig: new ExtensionHostConfig({
  55. extensionUrl: './assets/vue-app/index.html',
  56. openInNewTab: true,
  57. }),
  58. },
  59. },
  60. ]),
  61. ],
  62. })
  63. export class TestModule {}