Parcourir la source

refactor(admin-ui): Remove circular dependencies & fix export issues

Michael Bromley il y a 3 ans
Parent
commit
c8ec5b20e3

+ 11 - 1
packages/admin-ui/src/lib/core/src/public_api.ts

@@ -151,16 +151,24 @@ export * from './shared/components/product-search-input/product-search-input.com
 export * from './shared/components/product-selector/product-selector.component';
 export * from './shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component';
 export * from './shared/components/rich-text-editor/link-dialog/link-dialog.component';
+export * from './shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component';
+export * from './shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service';
+export * from './shared/components/rich-text-editor/prosemirror/custom-nodes';
 export * from './shared/components/rich-text-editor/prosemirror/inputrules';
 export * from './shared/components/rich-text-editor/prosemirror/keymap';
-export * from './shared/components/rich-text-editor/prosemirror/plugins/image-plugin';
 export * from './shared/components/rich-text-editor/prosemirror/menu/links';
 export * from './shared/components/rich-text-editor/prosemirror/menu/menu-common';
+export * from './shared/components/rich-text-editor/prosemirror/menu/menu-plugin';
 export * from './shared/components/rich-text-editor/prosemirror/menu/menu';
+export * from './shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon';
+export * from './shared/components/rich-text-editor/prosemirror/plugins/image-plugin';
 export * from './shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin';
+export * from './shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin';
+export * from './shared/components/rich-text-editor/prosemirror/plugins/tables-plugin';
 export * from './shared/components/rich-text-editor/prosemirror/prosemirror.service';
 export * from './shared/components/rich-text-editor/prosemirror/types';
 export * from './shared/components/rich-text-editor/prosemirror/utils';
+export * from './shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component';
 export * from './shared/components/rich-text-editor/rich-text-editor.component';
 export * from './shared/components/select-toggle/select-toggle.component';
 export * from './shared/components/simple-dialog/simple-dialog.component';
@@ -177,6 +185,8 @@ export * from './shared/directives/if-directive-base';
 export * from './shared/directives/if-multichannel.directive';
 export * from './shared/directives/if-permissions.directive';
 export * from './shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component';
+export * from './shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component';
+export * from './shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component';
 export * from './shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component';
 export * from './shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component';
 export * from './shared/dynamic-form-inputs/currency-form-input/currency-form-input.component';

+ 4 - 4
packages/admin-ui/src/lib/core/src/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.ts

@@ -10,13 +10,14 @@ import {
     ViewChild,
     ViewContainerRef,
 } from '@angular/core';
-import { RichTextEditorComponent } from '@vendure/admin-ui/core';
 import { BehaviorSubject, Observable, Subscription } from 'rxjs';
 import { distinctUntilChanged } from 'rxjs/operators';
 
+import { RichTextEditorComponent } from '../../rich-text-editor.component';
+
 import { ContextMenuConfig, ContextMenuItem, ContextMenuService } from './context-menu.service';
 
-export type DropdownPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
+type DropdownPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
 
 @Component({
     selector: 'vdr-context-menu',
@@ -25,7 +26,6 @@ export type DropdownPosition = 'top-left' | 'top-right' | 'bottom-left' | 'botto
     changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class ContextMenuComponent implements AfterViewInit, OnDestroy {
-    @Input('vdrPosition') private position: DropdownPosition = 'top-left';
     @ViewChild('contextMenu', { static: true }) private menuTemplate: TemplateRef<any>;
 
     menuConfig: ContextMenuConfig | undefined;
@@ -137,7 +137,7 @@ export class ContextMenuComponent implements AfterViewInit, OnDestroy {
             },
         };
 
-        const pos = position[this.position];
+        const pos = position['top-left'];
 
         return this.overlay
             .position()

+ 1 - 1
packages/admin-ui/src/lib/core/src/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.ts

@@ -1,8 +1,8 @@
-import { ModalService } from '@vendure/admin-ui/core';
 import { DOMParser, DOMSerializer, Node } from 'prosemirror-model';
 import { Plugin } from 'prosemirror-state';
 import { Protocol } from 'puppeteer';
 
+import { ModalService } from '../../../../../providers/modal/modal.service';
 import { RawHtmlDialogComponent } from '../../raw-html-dialog/raw-html-dialog.component';
 import { ContextMenuService } from '../context-menu/context-menu.service';
 

+ 3 - 20
packages/admin-ui/src/lib/core/src/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.ts

@@ -1,27 +1,10 @@
-import {
-    AfterViewInit,
-    ChangeDetectionStrategy,
-    ChangeDetectorRef,
-    Component,
-    ComponentFactoryResolver,
-    ElementRef,
-    Injector,
-    OnInit,
-    ViewChild,
-} from '@angular/core';
-import { FormControl, FormGroup, Validators } from '@angular/forms';
-import { ConfigArgDefinition, jsonValidator } from '@vendure/admin-ui/core';
-import { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';
-import { CodeJar } from 'codejar';
+import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
+import { FormControl } from '@angular/forms';
 
+import { ConfigArgDefinition } from '../../../../common/generated-types';
 import { Dialog } from '../../../../providers/modal/modal.service';
 import { HtmlEditorFormInputComponent } from '../../../dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component';
 
-export interface LinkAttrs {
-    href: string;
-    title: string;
-}
-
 @Component({
     selector: 'vdr-raw-html-dialog',
     templateUrl: './raw-html-dialog.component.html',

+ 3 - 19
packages/admin-ui/src/lib/core/src/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.ts

@@ -1,26 +1,10 @@
-import { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, OnInit, ViewChild } from '@angular/core';
-import { AbstractControl, FormControl, ValidationErrors, ValidatorFn } from '@angular/forms';
-import { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';
+import { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, ViewChild } from '@angular/core';
+import { FormControl, ValidatorFn } from '@angular/forms';
+import { DefaultFormComponentConfig } from '@vendure/common/lib/shared-types';
 import { CodeJar } from 'codejar';
 
 import { FormInputComponent } from '../../../common/component-registry-types';
 
-export function jsonValidator(): ValidatorFn {
-    return (control: AbstractControl): ValidationErrors | null => {
-        const error: ValidationErrors = { jsonInvalid: true };
-
-        try {
-            JSON.parse(control.value);
-        } catch (e) {
-            control.setErrors(error);
-            return error;
-        }
-
-        control.setErrors(null);
-        return null;
-    };
-}
-
 export interface CodeEditorConfig {
     validator: ValidatorFn;
     getErrorMessage: (content: string) => string | undefined;

+ 2 - 2
packages/admin-ui/src/lib/core/src/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.ts

@@ -6,7 +6,7 @@ import { FormInputComponent } from '../../../common/component-registry-types';
 
 import { BaseCodeEditorFormInputComponent } from './base-code-editor-form-input.component';
 
-export function jsonValidator(): ValidatorFn {
+function htmlValidator(): ValidatorFn {
     return (control: AbstractControl): ValidationErrors | null => {
         return null;
     };
@@ -40,7 +40,7 @@ export class HtmlEditorFormInputComponent
 
     ngOnInit() {
         this.configure({
-            validator: jsonValidator,
+            validator: htmlValidator,
             highlight: (html: string, errorPos: number | undefined) => {
                 let hasMarkedError = false;
                 return html.replace(HTML_TAG_RE, (match, ...args) => {