@foblex/flow
Version:
An Angular library designed to simplify the creation and manipulation of dynamic flow. Provides components for flows, nodes, and connections, automating node manipulation and inter-node connections.
52 lines • 7.62 kB
JavaScript
import { __decorate } from "tslib";
import { FExternalItemCreatePreviewRequest } from './f-external-item-create-preview.request';
import { FExecutionRegister } from '@foblex/mediator';
import { inject, Injectable, ViewContainerRef } from '@angular/core';
import { deepCloneNode, disableDragInteractions, extendStyles, getOrCreateRootNodeForViewRef } from '@foblex/utils';
import { BrowserService } from '@foblex/platform';
import * as i0 from "@angular/core";
let FExternalItemCreatePreviewExecution = class FExternalItemCreatePreviewExecution {
_fBrowser = inject(BrowserService);
_containerRef = inject(ViewContainerRef);
handle(request) {
const { hostElement, fPreview } = request.fExternalItem;
const result = fPreview ?
this._fromTemplate(fPreview) :
this._fromHost(hostElement);
this._setPreviewStyles(result);
disableDragInteractions(result);
result.classList.add('f-external-item-preview');
return result;
}
_fromTemplate(template) {
return getOrCreateRootNodeForViewRef(this._createViewRef(template), this._fBrowser.document);
}
_fromHost(element) {
return deepCloneNode(element);
}
_createViewRef(template) {
const result = this._containerRef.createEmbeddedView(template);
result.detectChanges();
return result;
}
_setPreviewStyles(element) {
extendStyles(element.style, {
'pointer-events': 'none',
'margin': 'showPopover' in element ? '0 auto 0 0' : '0',
'position': 'fixed',
'top': '0',
'left': '0',
'z-index': '1000',
}, new Set(['position',]));
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FExternalItemCreatePreviewExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FExternalItemCreatePreviewExecution });
};
FExternalItemCreatePreviewExecution = __decorate([
FExecutionRegister(FExternalItemCreatePreviewRequest)
], FExternalItemCreatePreviewExecution);
export { FExternalItemCreatePreviewExecution };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FExternalItemCreatePreviewExecution, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1leHRlcm5hbC1pdGVtLWNyZWF0ZS1wcmV2aWV3LmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1leHRlcm5hbC1pdGVtL2RvbWFpbi9jcmVhdGUtcHJldmlldy9mLWV4dGVybmFsLWl0ZW0tY3JlYXRlLXByZXZpZXcuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RixPQUFPLEVBQUUsa0JBQWtCLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQW1CLE1BQU0sRUFBRSxVQUFVLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLGFBQWEsRUFBRSx1QkFBdUIsRUFBRSxZQUFZLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUkzQyxJQUFNLG1DQUFtQyxHQUF6QyxNQUFNLG1DQUFtQztJQUc3QixTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLGFBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUVuRCxNQUFNLENBQUMsT0FBMEM7UUFDdEQsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBRXhELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQTBCLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUVoRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sYUFBYSxDQUFDLFFBQTBCO1FBQzlDLE9BQU8sNkJBQTZCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFTyxTQUFTLENBQUMsT0FBb0I7UUFDcEMsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUEwQjtRQUMvQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBb0I7UUFDNUMsWUFBWSxDQUNWLE9BQU8sQ0FBQyxLQUFLLEVBQ2I7WUFDRSxnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLFFBQVEsRUFBRSxhQUFhLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUc7WUFDdkQsVUFBVSxFQUFFLE9BQU87WUFDbkIsS0FBSyxFQUFFLEdBQUc7WUFDVixNQUFNLEVBQUUsR0FBRztZQUNYLFNBQVMsRUFBRSxNQUFNO1NBQ2xCLEVBQ0QsSUFBSSxHQUFHLENBQUMsQ0FBRSxVQUFVLEVBQUcsQ0FBQyxDQUN6QixDQUFDO0lBQ0osQ0FBQzt3R0EvQ1UsbUNBQW1DOzRHQUFuQyxtQ0FBbUM7O0FBQW5DLG1DQUFtQztJQUQvQyxrQkFBa0IsQ0FBQyxpQ0FBaUMsQ0FBQztHQUN6QyxtQ0FBbUMsQ0FnRC9DOzs0RkFoRFksbUNBQW1DO2tCQUYvQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRkV4dGVybmFsSXRlbUNyZWF0ZVByZXZpZXdSZXF1ZXN0IH0gZnJvbSAnLi9mLWV4dGVybmFsLWl0ZW0tY3JlYXRlLXByZXZpZXcucmVxdWVzdCc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEVtYmVkZGVkVmlld1JlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVlcENsb25lTm9kZSwgZGlzYWJsZURyYWdJbnRlcmFjdGlvbnMsIGV4dGVuZFN0eWxlcywgZ2V0T3JDcmVhdGVSb290Tm9kZUZvclZpZXdSZWYgfSBmcm9tICdAZm9ibGV4L3V0aWxzJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoRkV4dGVybmFsSXRlbUNyZWF0ZVByZXZpZXdSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIEZFeHRlcm5hbEl0ZW1DcmVhdGVQcmV2aWV3RXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxGRXh0ZXJuYWxJdGVtQ3JlYXRlUHJldmlld1JlcXVlc3QsIEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudD4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZCcm93c2VyID0gaW5qZWN0KEJyb3dzZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogRkV4dGVybmFsSXRlbUNyZWF0ZVByZXZpZXdSZXF1ZXN0KTogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50IHtcbiAgICBjb25zdCB7IGhvc3RFbGVtZW50LCBmUHJldmlldyB9ID0gcmVxdWVzdC5mRXh0ZXJuYWxJdGVtO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gZlByZXZpZXcgP1xuICAgICAgdGhpcy5fZnJvbVRlbXBsYXRlKGZQcmV2aWV3KSA6XG4gICAgICB0aGlzLl9mcm9tSG9zdChob3N0RWxlbWVudCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICB0aGlzLl9zZXRQcmV2aWV3U3R5bGVzKHJlc3VsdCk7XG4gICAgZGlzYWJsZURyYWdJbnRlcmFjdGlvbnMocmVzdWx0KTtcbiAgICByZXN1bHQuY2xhc3NMaXN0LmFkZCgnZi1leHRlcm5hbC1pdGVtLXByZXZpZXcnKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIF9mcm9tVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIGdldE9yQ3JlYXRlUm9vdE5vZGVGb3JWaWV3UmVmKHRoaXMuX2NyZWF0ZVZpZXdSZWYodGVtcGxhdGUpLCB0aGlzLl9mQnJvd3Nlci5kb2N1bWVudCk7XG4gIH1cblxuICBwcml2YXRlIF9mcm9tSG9zdChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gZGVlcENsb25lTm9kZShlbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZVZpZXdSZWYodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pOiBFbWJlZGRlZFZpZXdSZWY8YW55PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fY29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0ZW1wbGF0ZSk7XG4gICAgcmVzdWx0LmRldGVjdENoYW5nZXMoKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0UHJldmlld1N0eWxlcyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGV4dGVuZFN0eWxlcyhcbiAgICAgIGVsZW1lbnQuc3R5bGUsXG4gICAgICB7XG4gICAgICAgICdwb2ludGVyLWV2ZW50cyc6ICdub25lJyxcbiAgICAgICAgJ21hcmdpbic6ICdzaG93UG9wb3ZlcicgaW4gZWxlbWVudCA/ICcwIGF1dG8gMCAwJyA6ICcwJyxcbiAgICAgICAgJ3Bvc2l0aW9uJzogJ2ZpeGVkJyxcbiAgICAgICAgJ3RvcCc6ICcwJyxcbiAgICAgICAgJ2xlZnQnOiAnMCcsXG4gICAgICAgICd6LWluZGV4JzogJzEwMDAnLFxuICAgICAgfSxcbiAgICAgIG5ldyBTZXQoWyAncG9zaXRpb24nLCBdKSxcbiAgICApO1xuICB9XG59XG4iXX0=