import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
import { HistoryEntryType, } from '@vendure/admin-ui/core';
import * as i0 from "@angular/core";
import * as i1 from "@vendure/admin-ui/core";
import * as i2 from "@clr/angular";
import * as i3 from "@angular/common";
import * as i4 from "@angular/forms";
import * as i5 from "./customer-history-entry-host.component";
import * as i6 from "@ngx-translate/core";
export class CustomerHistoryComponent {
    constructor(historyEntryComponentService) {
        this.historyEntryComponentService = historyEntryComponentService;
        this.addNote = new EventEmitter();
        this.updateNote = new EventEmitter();
        this.deleteNote = new EventEmitter();
        this.note = '';
        this.expanded = false;
        this.type = HistoryEntryType;
    }
    hasCustomComponent(type) {
        return !!this.historyEntryComponentService.getComponent(type);
    }
    getDisplayType(entry) {
        switch (entry.type) {
            case HistoryEntryType.CUSTOMER_VERIFIED:
            case HistoryEntryType.CUSTOMER_EMAIL_UPDATE_VERIFIED:
            case HistoryEntryType.CUSTOMER_PASSWORD_RESET_VERIFIED:
                return 'success';
            case HistoryEntryType.CUSTOMER_REGISTERED:
                return 'muted';
            case HistoryEntryType.CUSTOMER_REMOVED_FROM_GROUP:
                return 'error';
            default:
                return 'default';
        }
    }
    getTimelineIcon(entry) {
        switch (entry.type) {
            case HistoryEntryType.CUSTOMER_REGISTERED:
                return 'user';
            case HistoryEntryType.CUSTOMER_VERIFIED:
                return ['assign-user', 'is-solid'];
            case HistoryEntryType.CUSTOMER_NOTE:
                return 'note';
            case HistoryEntryType.CUSTOMER_ADDED_TO_GROUP:
            case HistoryEntryType.CUSTOMER_REMOVED_FROM_GROUP:
                return 'users';
        }
    }
    isFeatured(entry) {
        switch (entry.type) {
            case HistoryEntryType.CUSTOMER_REGISTERED:
            case HistoryEntryType.CUSTOMER_VERIFIED:
                return true;
            default:
                return false;
        }
    }
    getName(entry) {
        const { administrator } = entry;
        if (administrator) {
            return `${administrator.firstName} ${administrator.lastName}`;
        }
        else {
            return `${this.customer.firstName} ${this.customer.lastName}`;
        }
    }
    addNoteToCustomer() {
        this.addNote.emit({ note: this.note });
        this.note = '';
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerHistoryComponent, deps: [{ token: i1.HistoryEntryComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CustomerHistoryComponent, selector: "vdr-customer-history", inputs: { customer: "customer", history: "history" }, outputs: { addNote: "addNote", updateNote: "updateNote", deleteNote: "deleteNote" }, ngImport: i0, template: "<div class=\"entry-list\">\n    <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" *vdrIfPermissions=\"'UpdateCustomer'\">\n        <div class=\"note-entry\">\n            <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\n            <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToCustomer()\">\n                {{ 'order.add-note' | translate }}\n            </button>\n        </div>\n    </vdr-timeline-entry>\n    <ng-container *ngFor=\"let entry of history\">\n        <vdr-customer-history-entry-host\n            *ngIf=\"hasCustomComponent(entry.type); else defaultComponents\"\n            [customer]=\"customer\"\n            [entry]=\"entry\"\n            [expanded]=\"expanded\"\n            (expandClick)=\"expanded = !expanded\"\n        ></vdr-customer-history-entry-host>\n        <ng-template #defaultComponents>\n            <vdr-timeline-entry\n                [displayType]=\"getDisplayType(entry)\"\n                [iconShape]=\"getTimelineIcon(entry)\"\n                [createdAt]=\"entry.createdAt\"\n                [name]=\"getName(entry)\"\n                [featured]=\"isFeatured(entry)\"\n            >\n                <ng-container [ngSwitch]=\"entry.type\">\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_REGISTERED\">\n                        <div class=\"title\">\n                            {{ 'customer.history-customer-registered' | translate }}\n                        </div>\n                        <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\n                            {{ 'customer.history-using-native-auth-strategy' | translate }}\n                        </ng-container>\n                        <ng-template #namedStrategy>\n                            {{\n                                'customer.history-using-external-auth-strategy'\n                                    | translate: { strategy: entry.data.strategy }\n                            }}\n                        </ng-template>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_VERIFIED\">\n                        <div class=\"title\">\n                            {{ 'customer.history-customer-verified' | translate }}\n                        </div>\n                        <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\n                            {{ 'customer.history-using-native-auth-strategy' | translate }}\n                        </ng-container>\n                        <ng-template #namedStrategy>\n                            {{\n                                'customer.history-using-external-auth-strategy'\n                                    | translate: { strategy: entry.data.strategy }\n                            }}\n                        </ng-template>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_DETAIL_UPDATED\">\n                        <div class=\"flex\">\n                            {{ 'customer.history-customer-detail-updated' | translate }}\n                            <vdr-history-entry-detail>\n                                <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\n                            </vdr-history-entry-detail>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDED_TO_GROUP\">\n                        {{\n                            'customer.history-customer-added-to-group'\n                                | translate: { groupName: entry.data.groupName }\n                        }}\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_REMOVED_FROM_GROUP\">\n                        {{\n                            'customer.history-customer-removed-from-group'\n                                | translate: { groupName: entry.data.groupName }\n                        }}\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_CREATED\">\n                        {{ 'customer.history-customer-address-created' | translate }}\n                        <div class=\"flex\">\n                            <div class=\"address-string\">{{ entry.data.address }}</div>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_UPDATED\">\n                        {{ 'customer.history-customer-address-updated' | translate }}\n                        <div class=\"flex\">\n                            <div class=\"address-string\">{{ entry.data.address }}</div>\n                            <vdr-history-entry-detail>\n                                <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\n                            </vdr-history-entry-detail>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_DELETED\">\n                        {{ 'customer.history-customer-address-deleted' | translate }}\n                        <div class=\"address-string\">{{ entry.data.address }}</div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_UPDATED\">\n                        {{ 'customer.history-customer-password-updated' | translate }}\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_REQUESTED\">\n                        {{ 'customer.history-customer-password-reset-requested' | translate }}\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_VERIFIED\">\n                        {{ 'customer.history-customer-password-reset-verified' | translate }}\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_REQUESTED\">\n                        <div class=\"flex\">\n                            {{ 'customer.history-customer-email-update-requested' | translate }}\n                            <vdr-history-entry-detail>\n                                <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\n                                    entry.data.oldEmailAddress\n                                }}</vdr-labeled-data>\n                                <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\n                                    entry.data.newEmailAddress\n                                }}</vdr-labeled-data>\n                            </vdr-history-entry-detail>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_VERIFIED\">\n                        <div class=\"flex\">\n                            {{ 'customer.history-customer-email-update-verified' | translate }}\n                            <vdr-history-entry-detail>\n                                <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\n                                    entry.data.oldEmailAddress\n                                }}</vdr-labeled-data>\n                                <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\n                                    entry.data.newEmailAddress\n                                }}</vdr-labeled-data>\n                            </vdr-history-entry-detail>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_NOTE\">\n                        <div class=\"flex\">\n                            <div class=\"note-text\">\n                                {{ entry.data.note }}\n                            </div>\n                            <div class=\"flex-spacer\"></div>\n                            <vdr-dropdown>\n                                <button class=\"icon-button\" vdrDropdownTrigger>\n                                    <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\n                                </button>\n                                <vdr-dropdown-menu vdrPosition=\"bottom-right\">\n                                    <button\n                                        vdrDropdownItem\n                                        (click)=\"updateNote.emit(entry)\"\n                                        [disabled]=\"!('UpdateCustomer' | hasPermission)\"\n                                    >\n                                        <clr-icon shape=\"edit\"></clr-icon>\n                                        {{ 'common.edit' | translate }}\n                                    </button>\n                                    <div class=\"dropdown-divider\"></div>\n                                    <button\n                                        vdrDropdownItem\n                                        (click)=\"deleteNote.emit(entry)\"\n                                        [disabled]=\"!('UpdateCustomer' | hasPermission)\"\n                                    >\n                                        <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\n                                        {{ 'common.delete' | translate }}\n                                    </button>\n                                </vdr-dropdown-menu>\n                            </vdr-dropdown>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchDefault>\n                        <div class=\"title\">\n                            {{ entry.type | translate }}\n                        </div>\n                        <vdr-history-entry-detail *ngIf=\"entry.data\">\n                            <vdr-object-tree [value]=\"entry.data\"></vdr-object-tree>\n                        </vdr-history-entry-detail>\n                    </ng-container>\n                </ng-container>\n            </vdr-timeline-entry>\n        </ng-template>\n    </ng-container>\n    <vdr-timeline-entry [isLast]=\"true\"></vdr-timeline-entry>\n</div>\n", styles: [".entry-list{margin:24px 12px 24px 24px}.note-entry{display:flex;align-items:center}.note-entry .note{flex:1}.note-entry button{margin:0}textarea.note{flex:1;height:36px;border-radius:3px;margin-inline-end:6px}.note-text{color:var(--color-text-100);white-space:pre-wrap}.address-string{font-size:smaller;color:var(--color-text-200)}\n"], dependencies: [{ kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i1.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "component", type: i1.ObjectTreeComponent, selector: "vdr-object-tree", inputs: ["value", "isArrayItem"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.TimelineEntryComponent, selector: "vdr-timeline-entry", inputs: ["displayType", "createdAt", "name", "featured", "iconShape", "isLast", "collapsed"], outputs: ["expandClick"] }, { kind: "component", type: i1.HistoryEntryDetailComponent, selector: "vdr-history-entry-detail" }, { kind: "component", type: i5.CustomerHistoryEntryHostComponent, selector: "vdr-customer-history-entry-host", inputs: ["entry", "customer", "expanded"], outputs: ["expandClick"], exportAs: ["historyEntry"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.HasPermissionPipe, name: "hasPermission" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomerHistoryComponent, decorators: [{
            type: Component,
            args: [{ selector: 'vdr-customer-history', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"entry-list\">\n    <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" *vdrIfPermissions=\"'UpdateCustomer'\">\n        <div class=\"note-entry\">\n            <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\n            <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToCustomer()\">\n                {{ 'order.add-note' | translate }}\n            </button>\n        </div>\n    </vdr-timeline-entry>\n    <ng-container *ngFor=\"let entry of history\">\n        <vdr-customer-history-entry-host\n            *ngIf=\"hasCustomComponent(entry.type); else defaultComponents\"\n            [customer]=\"customer\"\n            [entry]=\"entry\"\n            [expanded]=\"expanded\"\n            (expandClick)=\"expanded = !expanded\"\n        ></vdr-customer-history-entry-host>\n        <ng-template #defaultComponents>\n            <vdr-timeline-entry\n                [displayType]=\"getDisplayType(entry)\"\n                [iconShape]=\"getTimelineIcon(entry)\"\n                [createdAt]=\"entry.createdAt\"\n                [name]=\"getName(entry)\"\n                [featured]=\"isFeatured(entry)\"\n            >\n                <ng-container [ngSwitch]=\"entry.type\">\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_REGISTERED\">\n                        <div class=\"title\">\n                            {{ 'customer.history-customer-registered' | translate }}\n                        </div>\n                        <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\n                            {{ 'customer.history-using-native-auth-strategy' | translate }}\n                        </ng-container>\n                        <ng-template #namedStrategy>\n                            {{\n                                'customer.history-using-external-auth-strategy'\n                                    | translate: { strategy: entry.data.strategy }\n                            }}\n                        </ng-template>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_VERIFIED\">\n                        <div class=\"title\">\n                            {{ 'customer.history-customer-verified' | translate }}\n                        </div>\n                        <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\n                            {{ 'customer.history-using-native-auth-strategy' | translate }}\n                        </ng-container>\n                        <ng-template #namedStrategy>\n                            {{\n                                'customer.history-using-external-auth-strategy'\n                                    | translate: { strategy: entry.data.strategy }\n                            }}\n                        </ng-template>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_DETAIL_UPDATED\">\n                        <div class=\"flex\">\n                            {{ 'customer.history-customer-detail-updated' | translate }}\n                            <vdr-history-entry-detail>\n                                <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\n                            </vdr-history-entry-detail>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDED_TO_GROUP\">\n                        {{\n                            'customer.history-customer-added-to-group'\n                                | translate: { groupName: entry.data.groupName }\n                        }}\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_REMOVED_FROM_GROUP\">\n                        {{\n                            'customer.history-customer-removed-from-group'\n                                | translate: { groupName: entry.data.groupName }\n                        }}\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_CREATED\">\n                        {{ 'customer.history-customer-address-created' | translate }}\n                        <div class=\"flex\">\n                            <div class=\"address-string\">{{ entry.data.address }}</div>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_UPDATED\">\n                        {{ 'customer.history-customer-address-updated' | translate }}\n                        <div class=\"flex\">\n                            <div class=\"address-string\">{{ entry.data.address }}</div>\n                            <vdr-history-entry-detail>\n                                <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\n                            </vdr-history-entry-detail>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_DELETED\">\n                        {{ 'customer.history-customer-address-deleted' | translate }}\n                        <div class=\"address-string\">{{ entry.data.address }}</div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_UPDATED\">\n                        {{ 'customer.history-customer-password-updated' | translate }}\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_REQUESTED\">\n                        {{ 'customer.history-customer-password-reset-requested' | translate }}\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_VERIFIED\">\n                        {{ 'customer.history-customer-password-reset-verified' | translate }}\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_REQUESTED\">\n                        <div class=\"flex\">\n                            {{ 'customer.history-customer-email-update-requested' | translate }}\n                            <vdr-history-entry-detail>\n                                <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\n                                    entry.data.oldEmailAddress\n                                }}</vdr-labeled-data>\n                                <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\n                                    entry.data.newEmailAddress\n                                }}</vdr-labeled-data>\n                            </vdr-history-entry-detail>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_VERIFIED\">\n                        <div class=\"flex\">\n                            {{ 'customer.history-customer-email-update-verified' | translate }}\n                            <vdr-history-entry-detail>\n                                <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\n                                    entry.data.oldEmailAddress\n                                }}</vdr-labeled-data>\n                                <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\n                                    entry.data.newEmailAddress\n                                }}</vdr-labeled-data>\n                            </vdr-history-entry-detail>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"type.CUSTOMER_NOTE\">\n                        <div class=\"flex\">\n                            <div class=\"note-text\">\n                                {{ entry.data.note }}\n                            </div>\n                            <div class=\"flex-spacer\"></div>\n                            <vdr-dropdown>\n                                <button class=\"icon-button\" vdrDropdownTrigger>\n                                    <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\n                                </button>\n                                <vdr-dropdown-menu vdrPosition=\"bottom-right\">\n                                    <button\n                                        vdrDropdownItem\n                                        (click)=\"updateNote.emit(entry)\"\n                                        [disabled]=\"!('UpdateCustomer' | hasPermission)\"\n                                    >\n                                        <clr-icon shape=\"edit\"></clr-icon>\n                                        {{ 'common.edit' | translate }}\n                                    </button>\n                                    <div class=\"dropdown-divider\"></div>\n                                    <button\n                                        vdrDropdownItem\n                                        (click)=\"deleteNote.emit(entry)\"\n                                        [disabled]=\"!('UpdateCustomer' | hasPermission)\"\n                                    >\n                                        <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\n                                        {{ 'common.delete' | translate }}\n                                    </button>\n                                </vdr-dropdown-menu>\n                            </vdr-dropdown>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngSwitchDefault>\n                        <div class=\"title\">\n                            {{ entry.type | translate }}\n                        </div>\n                        <vdr-history-entry-detail *ngIf=\"entry.data\">\n                            <vdr-object-tree [value]=\"entry.data\"></vdr-object-tree>\n                        </vdr-history-entry-detail>\n                    </ng-container>\n                </ng-container>\n            </vdr-timeline-entry>\n        </ng-template>\n    </ng-container>\n    <vdr-timeline-entry [isLast]=\"true\"></vdr-timeline-entry>\n</div>\n", styles: [".entry-list{margin:24px 12px 24px 24px}.note-entry{display:flex;align-items:center}.note-entry .note{flex:1}.note-entry button{margin:0}textarea.note{flex:1;height:36px;border-radius:3px;margin-inline-end:6px}.note-text{color:var(--color-text-100);white-space:pre-wrap}.address-string{font-size:smaller;color:var(--color-text-200)}\n"] }]
        }], ctorParameters: function () { return [{ type: i1.HistoryEntryComponentService }]; }, propDecorators: { customer: [{
                type: Input
            }], history: [{
                type: Input
            }], addNote: [{
                type: Output
            }], updateNote: [{
                type: Output
            }], deleteNote: [{
                type: Output
            }] } });
//# sourceMappingURL=data:application/json;base64, 