ui-plugin.module.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. }),
  57. },
  58. },
  59. ]),
  60. ],
  61. })
  62. export class TestModule {}