@acorex/components 18.12.4 → 18.12.5
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/menu/lib/context-menu.component.mjs +2 -2
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +7 -8
- package/fesm2022/acorex-components-menu.mjs +1 -1
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +6 -7
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/package.json +25 -25
- package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +1 -1
@@ -98,7 +98,7 @@ export class AXContextMenuComponent extends NXComponent {
|
|
98
98
|
//
|
99
99
|
const elementsUnderMouse = document.elementsFromPoint(e.x, e.y);
|
100
100
|
const targetElements = this.getTargetElements();
|
101
|
-
const targetElement =
|
101
|
+
const targetElement = elementsUnderMouse.find(target => targetElements.includes(target));
|
102
102
|
//
|
103
103
|
const event = {
|
104
104
|
sender: this,
|
@@ -232,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
232
232
|
type: HostBinding,
|
233
233
|
args: ['class']
|
234
234
|
}] } });
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQ0gsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQStFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBVyxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQUdsRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsT0FBK0I7SUFBOUU7O1FBRUksYUFBUSxHQUFHLEtBQUssQ0FBQztJQUdyQixDQUFDO0NBQUE7QUFHRDs7O0dBR0c7QUFlSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBVztJQWtCbkQscUNBQXFDO0lBRXJDLGNBQWM7SUFDZDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBcEJaLHFCQUFxQjtRQUVyQixnQkFBVyxHQUFHLEtBQUssQ0FBZ0IsVUFBVSxDQUFDLENBQUM7UUFDL0MsV0FB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RUFBRSxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDLENBQUM7SUFDdEgsQ0FBQzs4R0FyT1Esc0JBQXNCO2tHQUF0QixzQkFBc0IscTVCQVJwQjtZQUNQLGFBQWE7WUFDYjtnQkFDSSxPQUFPLEVBQUUsVUFBVTtnQkFDbkIsV0FBVyxFQUFFLHNCQUFzQjthQUN0QztTQUNKLGlEQzdDTCx5bkNBbUNjOzsyRkRZRCxzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0ksaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1AsYUFBYTt3QkFDYjs0QkFDSSxPQUFPLEVBQUUsVUFBVTs0QkFDbkIsV0FBVyx3QkFBd0I7eUJBQ3RDO3FCQUNKO3dEQThOTyxhQUFhO3NCQUZwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3hDLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFyQyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYT3JpZW50YXRpb24sIE5YQ29tcG9uZW50LCBOWEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGFmdGVyTmV4dFJlbmRlcixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBvdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIHNpZ25hbCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVDbG9zZVRyaWdnZXIsIEFYTWVudUl0ZW0sIEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudCwgQVhNZW51T3BlblRyaWdnZXIsIEFYUm9vdE1lbnUgfSBmcm9tICcuL21lbnUudHlwZXMnO1xuaW1wb3J0IHsgQVhNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYSHRtbFV0aWwsIEFYUG9pbnQgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5cblxuZXhwb3J0IGNsYXNzIEFYQ29udGV4dE1lbnVPcGVuaW5nRXZlbnQgZXh0ZW5kcyBOWEV2ZW50PEFYQ29udGV4dE1lbnVDb21wb25lbnQ+IHtcbiAgICBpdGVtczogQVhNZW51SXRlbVtdO1xuICAgIGNhbmNlbGVkID0gZmFsc2U7XG4gICAgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnRcblxufVxuZXhwb3J0IHR5cGUgQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCA9IEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudDxBWENvbnRleHRNZW51Q29tcG9uZW50PlxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtZW51IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGNvbnRleHQgbWVudS5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXgtY29udGV4dC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEFYTWVudVNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFYUm9vdE1lbnUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQVhDb250ZXh0TWVudUNvbXBvbmVudFxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51Q29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuXG4gICAgLy8gSW5wdXRzIGFuZCBPdXRwdXRzXG5cbiAgICBvcmllbnRhdGlvbiA9IGlucHV0PEFYT3JpZW50YXRpb24+KCd2ZXJ0aWNhbCcpO1xuICAgIG9wZW5PbiA9IGlucHV0PEFYTWVudU9wZW5UcmlnZ2VyPignaG92ZXInKTtcbiAgICBjbG9zZU9uID0gaW5wdXQ8QVhNZW51Q2xvc2VUcmlnZ2VyPignY2xpY2snKTtcbiAgICBvcmdpbmFsSXRlbXMgPSBpbnB1dDxBWE1lbnVJdGVtW10+KFtdLCB7IGFsaWFzOiBcIml0ZW1zXCIgfSk7XG4gICAgdGFyZ2V0ID0gaW5wdXQ8SFRNTEVsZW1lbnQgfCBIVE1MRWxlbWVudFtdIHwgc3RyaW5nPigpO1xuXG4gICAgb25JdGVtQ2xpY2sgPSBvdXRwdXQ8QVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudD4oKTtcbiAgICBvbk9wZW5pbmcgPSBvdXRwdXQ8QVhDb250ZXh0TWVudU9wZW5pbmdFdmVudD4oKTtcblxuICAgIC8vIEluamVjdGVkIFNlcnZpY2VzXG5cbiAgICBwcml2YXRlIHNlcnZpY2UgPSBpbmplY3QoQVhNZW51U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpXG5cbiAgICAvLyBDb25zdHJ1Y3RvciAoRGVwZW5kZW5jeSBJbmplY3Rpb24pXG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICAvL1xuICAgICAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5iaW5kQ29udGV4dEV2ZW50KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbENvbnRleHRNZW51JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VydmljZS5vcGVuQ29udGV4dE1lbnUkLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGUuc2VuZGVyIGFzIGFueSA9PSB0aGlzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFNob3dBdChlLnBvaW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG5cblxuICAgIC8vIExpZmVjeWNsZSBIb29rc1xuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVDb250ZXh0RXZlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWZyZXNoKCl7XG4gICAgICAgIHRoaXMuYmluZENvbnRleHRFdmVudCgpXG4gICAgfVxuXG4gICAgLy8gUHVibGljIE1ldGhvZHNcblxuICAgIHB1YmxpYyBzaG93QXQocG9pbnQ6IEFYUG9pbnQpIHtcbiAgICAgICAgY29uc3Qgc2VuZGVyID0gdGhpcyBhcyBhbnkgYXMgQVhSb290TWVudTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXIgfSk7XG4gICAgICAgIHRoaXMuc2VydmljZS5vcGVuQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXIsIHBvaW50IH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LXN0YXRlLW9wZW4nKTtcbiAgICAgICAgdGhpcy5yZW1vdmVCYWNrZHJvcCgpO1xuICAgIH1cblxuICAgIC8vIFByaXZhdGUgUHJvcGVydGllc1xuXG4gICAgcHJpdmF0ZSBiYWNrZHJvcEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcblxuICAgIHByb3RlY3RlZCBpdGVtcyA9IHNpZ25hbDxBWE1lbnVJdGVtW10+KFtdKTtcblxuICAgIC8vIFByaXZhdGUgTWV0aG9kcyAoSW50ZXJuYWwgTG9naWMpXG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgZ2V0VGFyZ2V0RWxlbWVudHMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdID0gdHlwZW9mIHRoaXMudGFyZ2V0KCkgPT0gJ3N0cmluZycgP1xuICAgICAgICAgICAgQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50Pih0aGlzLnRhcmdldCgpIGFzIHN0cmluZykpIDpcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodGhpcy50YXJnZXQoKSkgP1xuICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0KCkgYXMgSFRNTEVsZW1lbnRbXSA6XG4gICAgICAgICAgICAgICAgW3RoaXMudGFyZ2V0KCkgYXMgSFRNTEVsZW1lbnRdXG5cbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBiaW5kQ29udGV4dEV2ZW50KCkge1xuICAgICAgICB0aGlzLmdldFRhcmdldEVsZW1lbnRzKCkuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgICAgICAgZS5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIHRoaXMuaGFuZGxlQ29udGV4dE1lbnUuYmluZCh0aGlzKSk7XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHJlbW92ZUNvbnRleHRFdmVudCgpIHtcbiAgICAgICAgdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpLmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgICAgIGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLmhhbmRsZUNvbnRleHRNZW51LmJpbmQodGhpcykpO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBoYW5kbGVDb250ZXh0TWVudShlOiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgLy9cbiAgICAgICAgY29uc3QgZWxlbWVudHNVbmRlck1vdXNlID0gZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQoZS54LCBlLnkpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnRzID0gdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpO1xuICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gdGFyZ2V0RWxlbWVudHMuZmluZCh0YXJnZXQgPT4gZWxlbWVudHNVbmRlck1vdXNlLmluY2x1ZGVzKHRhcmdldCkpXG4gICAgICAgIC8vXG4gICAgICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgICAgICAgc2VuZGVyOiB0aGlzLFxuICAgICAgICAgICAgY2FuY2VsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudDogdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgICAgIGl0ZW1zOiBjbG9uZURlZXAodGhpcy5vcmdpbmFsSXRlbXMoKSksXG4gICAgICAgIH0gYXMgQVhDb250ZXh0TWVudU9wZW5pbmdFdmVudDtcbiAgICAgICAgdGhpcy5vbk9wZW5pbmcuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMuaXRlbXMuc2V0KGV2ZW50Lml0ZW1zKTtcbiAgICAgICAgLy9cbiAgICAgICAgaWYgKCFldmVudC5jYW5jZWxlZCkge1xuICAgICAgICAgICAgdGhpcy5zaG93QXQoeyB4OiBlLmNsaWVudFgsIHk6IGUuY2xpZW50WSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBpbnRlcm5hbFNob3dBdChwb2ludDogQVhQb2ludCkge1xuICAgICAgICBjb25zdCBlbGVtZW50UmVmID0gdGhpcy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBlbGVtZW50UmVmLmNsYXNzTGlzdC5hZGQoJ2F4LXN0YXRlLW9wZW4nKTtcbiAgICAgICAgY29uc3QgaXRlbVJlY3QgPSBlbGVtZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cbiAgICAgICAgLy8gRGV0ZWN0IFJUTCAoUmlnaHQtVG8tTGVmdCkgbW9kZVxuICAgICAgICBjb25zdCBpc1J0bCA9IEFYSHRtbFV0aWwuaXNSdGwoZWxlbWVudFJlZik7XG5cbiAgICAgICAgbGV0IGxlZnQ6IG51bWJlcjtcbiAgICAgICAgaWYgKGlzUnRsKSB7XG4gICAgICAgICAgICBsZWZ0ID0gcG9pbnQueCAtIGl0ZW1SZWN0LndpZHRoO1xuICAgICAgICAgICAgaWYgKGxlZnQgPCAwKSB7XG4gICAgICAgICAgICAgICAgbGVmdCA9IHBvaW50Lng7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZWZ0ID0gcG9pbnQueDtcbiAgICAgICAgICAgIGlmIChsZWZ0ICsgaXRlbVJlY3Qud2lkdGggPiB3aW5kb3dXaWR0aCkge1xuICAgICAgICAgICAgICAgIGxlZnQgPSBwb2ludC54IC0gaXRlbVJlY3Qud2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBib3R0b20gPSBwb2ludC55ICsgaXRlbVJlY3QuaGVpZ2h0O1xuICAgICAgICBsZXQgdG9wOiBudW1iZXI7XG5cbiAgICAgICAgaWYgKGJvdHRvbSA+IHdpbmRvd0hlaWdodCkge1xuICAgICAgICAgICAgdG9wID0gcG9pbnQueSAtIGl0ZW1SZWN0LmhlaWdodDtcbiAgICAgICAgICAgIGlmICh0b3AgPCAwKSB7XG4gICAgICAgICAgICAgICAgdG9wID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvcCA9IHBvaW50Lnk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYsICdsZWZ0JywgYCR7bGVmdH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYsICd0b3AnLCBgJHt0b3B9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50UmVmLCAncG9zaXRpb24nLCAnZml4ZWQnKTtcblxuICAgICAgICB0aGlzLmNyZWF0ZUJhY2tkcm9wKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIGNyZWF0ZUJhY2tkcm9wKCkge1xuICAgICAgICB0aGlzLmJhY2tkcm9wRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICdwb3NpdGlvbicsICdmaXhlZCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAndG9wJywgJzAnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2xlZnQnLCAnMCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnd2lkdGgnLCAnMTAwJScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ3otaW5kZXgnLCAnOTk5Jyk7IC8vIEVuc3VyZSBpdCdzIGJlbG93IHRoZSBjb250ZXh0IG1lbnVcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2JhY2tncm91bmQnLCAndHJhbnNwYXJlbnQnKTtcblxuICAgICAgICBjb25zdCBsMSA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICBsMSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBsMiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnd2hlZWwnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICBsMigpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBsMyA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnY29udGV4dG1lbnUnLCAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgLy8gR2V0IGFsbCBlbGVtZW50cyB1bmRlciB0aGUgbW91c2UgcG9pbnRlclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudHNVbmRlck1vdXNlID0gZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQoZS54LCBlLnkpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50cyA9IHRoaXMuZ2V0VGFyZ2V0RWxlbWVudHMoKTtcbiAgICAgICAgICAgIGlmICh0YXJnZXRFbGVtZW50cy5zb21lKHRhcmdldCA9PiBlbGVtZW50c1VuZGVyTW91c2UuaW5jbHVkZXModGFyZ2V0KSkpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vdGhpcy5pbnRlcm5hbFNob3dBdCh7IHg6IGUueCwgeTogZS55IH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNvbnRleHRNZW51KGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbDMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmJhY2tkcm9wRWxlbWVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHJlbW92ZUJhY2tkcm9wKCkge1xuICAgICAgICBpZiAodGhpcy5iYWNrZHJvcEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmJhY2tkcm9wRWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iYWNrZHJvcEVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmJhY2tkcm9wRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmJhY2tkcm9wRWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb3N0IExpc3RlbmVycyAoVUkgSW50ZXJhY3Rpb24gSGFuZGxpbmcpXG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICAgIHByaXZhdGUgb25XaW5kb3dFdmVudCgpIHtcbiAgICAgICAgY29uc3Qgc2VuZGVyID0gdGhpcyBhcyBhbnkgYXMgQVhSb290TWVudTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXI6IHNlbmRlciB9KTsgLy8gQ2xvc2UgYWxsIG1lbnVzIG9uIHNjcm9sbCBvciByZXNpemVcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBfX2hvc3RDbGFzcygpOiBhbnkge1xuICAgICAgICByZXR1cm4gWydheC1tZW51LWNvbnRhaW5lcicsIGBheC1vcmllbnRhdGlvbi0ke3RoaXMub3JpZW50YXRpb24oKX1gLCAnYXgtYWN0aW9uLWxpc3QnLCAnYXgtYWN0aW9uLWxpc3QtdmVydGljYWwnXTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1tZW51LWl0ZW0sYXgtdGl0bGUsbmctY29udGFpbmVyXCI+PC9uZy1jb250ZW50PlxuXG48bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBub2RlIG9mIGl0ZW1zKClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJSZWN1cnNpb25cIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogbm9kZSB9XCI+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjUmVjdXJzaW9uIGxldC1pdGVtPlxuICAgIEBpZihpdGVtLmdyb3VwPy50aXRsZSlcbiAgICB7XG4gICAgPGF4LXRpdGxlPnt7aXRlbS5ncm91cD8udGl0bGV9fTwvYXgtdGl0bGU+XG4gICAgfVxuICAgIDxheC1tZW51LWl0ZW0gW25hbWVdPVwiaXRlbS5uYW1lXCIgW2RhdGFdPVwiaXRlbS5kYXRhXCIgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiPlxuICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgQGlmKGl0ZW0uaWNvbilcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPlxuICAgICAgICAgICAgPC9heC1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgQGlmKGl0ZW0udGV4dClcbiAgICAgICAge1xuICAgICAgICA8YXgtdGV4dD57eyBpdGVtLnRleHQgfX08L2F4LXRleHQ+XG4gICAgICAgIH1cbiAgICAgICAgQGlmKGl0ZW0uc3VmZml4KVxuICAgICAgICB7XG4gICAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgICAgICA8YXgtdGV4dD57eyBpdGVtLnN1ZmZpeC50ZXh0IH19PC9heC10ZXh0PlxuICAgICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgICAgfVxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBpdGVtLml0ZW1zXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY2hpbGQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIEBpZihpdGVtLmJyZWFrKVxuICAgIHtcbiAgICA8YXgtZGl2aWRlcj48L2F4LWRpdmlkZXI+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQ0gsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQStFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBVyxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQUdsRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsT0FBK0I7SUFBOUU7O1FBRUksYUFBUSxHQUFHLEtBQUssQ0FBQztJQUdyQixDQUFDO0NBQUE7QUFHRDs7O0dBR0c7QUFlSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBVztJQWtCbkQscUNBQXFDO0lBRXJDLGNBQWM7SUFDZDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBcEJaLHFCQUFxQjtRQUVyQixnQkFBVyxHQUFHLEtBQUssQ0FBZ0IsVUFBVSxDQUFDLENBQUM7UUFDL0MsV0FBTSxHQUFHLEtBQUssQ0FBb0IsT0FBTyxDQUFDLENBQUM7UUFDM0MsWUFBTyxHQUFHLEtBQUssQ0FBcUIsT0FBTyxDQUFDLENBQUM7UUFDN0MsaUJBQVksR0FBRyxLQUFLLENBQWUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDM0QsV0FBTSxHQUFHLEtBQUssRUFBd0MsQ0FBQztRQUV2RCxnQkFBVyxHQUFHLE1BQU0sRUFBZ0MsQ0FBQztRQUNyRCxjQUFTLEdBQUcsTUFBTSxFQUE2QixDQUFDO1FBRWhELG9CQUFvQjtRQUVaLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQXVEMUIsVUFBSyxHQUFHLE1BQU0sQ0FBZSxFQUFFLENBQUMsQ0FBQztRQWhEdkMsRUFBRTtRQUNGLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDakIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsQ0FBQyxNQUFhLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFJRCxrQkFBa0I7SUFFbEIsV0FBVztRQUNQLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO0lBQzNCLENBQUM7SUFFRCxpQkFBaUI7SUFFVixNQUFNLENBQUMsS0FBYztRQUN4QixNQUFNLE1BQU0sR0FBRyxJQUF5QixDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBUUQsbUNBQW1DO0lBRW5DLGNBQWM7SUFDTixpQkFBaUI7UUFDckIsTUFBTSxRQUFRLEdBQWtCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLFFBQVEsQ0FBQyxDQUFDO1lBQzlELEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFjLElBQUksQ0FBQyxNQUFNLEVBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxNQUFNLEVBQW1CLENBQUMsQ0FBQztnQkFDaEMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFpQixDQUFDLENBQUE7UUFFdEMsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVELGNBQWM7SUFDTixnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsY0FBYztJQUNOLGtCQUFrQjtRQUN0QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1RSxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxjQUFjO0lBQ04saUJBQWlCLENBQUMsQ0FBYTtRQUNuQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLEVBQUU7UUFDRixNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQWtCLENBQUM7UUFDakYsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDaEQsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQ3hGLEVBQUU7UUFDRixNQUFNLEtBQUssR0FBRztZQUNWLE1BQU0sRUFBRSxJQUFJO1lBQ1osUUFBUSxFQUFFLEtBQUs7WUFDZixhQUFhLEVBQUUsYUFBYTtZQUM1QixLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNYLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLEVBQUU7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ04sY0FBYyxDQUFDLEtBQWM7UUFDakMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN0QyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNwRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3RDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFFeEMsa0NBQWtDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0MsSUFBSSxJQUFZLENBQUM7UUFDakIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDaEMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbkIsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDZixJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO2dCQUN0QyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3BDLENBQUM7UUFDTCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksR0FBVyxDQUFDO1FBRWhCLElBQUksTUFBTSxHQUFHLFlBQVksRUFBRSxDQUFDO1lBQ3hCLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDaEMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ1YsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNaLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYztJQUNOLGNBQWM7UUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLHFDQUFxQztRQUNyRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUUxRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDaEUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsRUFBRSxFQUFFLENBQUM7UUFDVCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRTtZQUNoRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixFQUFFLEVBQUUsQ0FBQztRQUNULENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFhLEVBQUUsRUFBRTtZQUNuRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYiwyQ0FBMkM7WUFDM0MsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFrQixDQUFDO1lBQ2pGLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2hELElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JFLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWiwwQ0FBMEM7b0JBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1lBQ0QsRUFBRSxFQUFFLENBQUM7UUFDVCxDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsY0FBYztJQUNOLGNBQWM7UUFDbEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7WUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUNoQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDJDQUEyQztJQUUzQyxjQUFjO0lBR04sYUFBYTtRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUF5QixDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxzQ0FBc0M7SUFDdEcsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUNJLFdBQVc7UUFDWCxPQUFPLENBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDLENBQUM7SUFDdEgsQ0FBQzs4R0FyT1Esc0JBQXNCO2tHQUF0QixzQkFBc0IscTVCQVJwQjtZQUNQLGFBQWE7WUFDYjtnQkFDSSxPQUFPLEVBQUUsVUFBVTtnQkFDbkIsV0FBVyxFQUFFLHNCQUFzQjthQUN0QztTQUNKLGlEQzdDTCx5bkNBbUNjOzsyRkRZRCxzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0ksaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1AsYUFBYTt3QkFDYjs0QkFDSSxPQUFPLEVBQUUsVUFBVTs0QkFDbkIsV0FBVyx3QkFBd0I7eUJBQ3RDO3FCQUNKO3dEQThOTyxhQUFhO3NCQUZwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3hDLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFyQyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYT3JpZW50YXRpb24sIE5YQ29tcG9uZW50LCBOWEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGFmdGVyTmV4dFJlbmRlcixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBvdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIHNpZ25hbCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVDbG9zZVRyaWdnZXIsIEFYTWVudUl0ZW0sIEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudCwgQVhNZW51T3BlblRyaWdnZXIsIEFYUm9vdE1lbnUgfSBmcm9tICcuL21lbnUudHlwZXMnO1xuaW1wb3J0IHsgQVhNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYSHRtbFV0aWwsIEFYUG9pbnQgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5cblxuZXhwb3J0IGNsYXNzIEFYQ29udGV4dE1lbnVPcGVuaW5nRXZlbnQgZXh0ZW5kcyBOWEV2ZW50PEFYQ29udGV4dE1lbnVDb21wb25lbnQ+IHtcbiAgICBpdGVtczogQVhNZW51SXRlbVtdO1xuICAgIGNhbmNlbGVkID0gZmFsc2U7XG4gICAgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnRcblxufVxuZXhwb3J0IHR5cGUgQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCA9IEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudDxBWENvbnRleHRNZW51Q29tcG9uZW50PlxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtZW51IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGNvbnRleHQgbWVudS5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXgtY29udGV4dC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEFYTWVudVNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFYUm9vdE1lbnUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQVhDb250ZXh0TWVudUNvbXBvbmVudFxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51Q29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuXG4gICAgLy8gSW5wdXRzIGFuZCBPdXRwdXRzXG5cbiAgICBvcmllbnRhdGlvbiA9IGlucHV0PEFYT3JpZW50YXRpb24+KCd2ZXJ0aWNhbCcpO1xuICAgIG9wZW5PbiA9IGlucHV0PEFYTWVudU9wZW5UcmlnZ2VyPignaG92ZXInKTtcbiAgICBjbG9zZU9uID0gaW5wdXQ8QVhNZW51Q2xvc2VUcmlnZ2VyPignY2xpY2snKTtcbiAgICBvcmdpbmFsSXRlbXMgPSBpbnB1dDxBWE1lbnVJdGVtW10+KFtdLCB7IGFsaWFzOiBcIml0ZW1zXCIgfSk7XG4gICAgdGFyZ2V0ID0gaW5wdXQ8SFRNTEVsZW1lbnQgfCBIVE1MRWxlbWVudFtdIHwgc3RyaW5nPigpO1xuXG4gICAgb25JdGVtQ2xpY2sgPSBvdXRwdXQ8QVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudD4oKTtcbiAgICBvbk9wZW5pbmcgPSBvdXRwdXQ8QVhDb250ZXh0TWVudU9wZW5pbmdFdmVudD4oKTtcblxuICAgIC8vIEluamVjdGVkIFNlcnZpY2VzXG5cbiAgICBwcml2YXRlIHNlcnZpY2UgPSBpbmplY3QoQVhNZW51U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpXG5cbiAgICAvLyBDb25zdHJ1Y3RvciAoRGVwZW5kZW5jeSBJbmplY3Rpb24pXG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICAvL1xuICAgICAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5iaW5kQ29udGV4dEV2ZW50KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbENvbnRleHRNZW51JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VydmljZS5vcGVuQ29udGV4dE1lbnUkLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGUuc2VuZGVyIGFzIGFueSA9PSB0aGlzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFNob3dBdChlLnBvaW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG5cblxuICAgIC8vIExpZmVjeWNsZSBIb29rc1xuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVDb250ZXh0RXZlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWZyZXNoKCl7XG4gICAgICAgIHRoaXMuYmluZENvbnRleHRFdmVudCgpXG4gICAgfVxuXG4gICAgLy8gUHVibGljIE1ldGhvZHNcblxuICAgIHB1YmxpYyBzaG93QXQocG9pbnQ6IEFYUG9pbnQpIHtcbiAgICAgICAgY29uc3Qgc2VuZGVyID0gdGhpcyBhcyBhbnkgYXMgQVhSb290TWVudTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXIgfSk7XG4gICAgICAgIHRoaXMuc2VydmljZS5vcGVuQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXIsIHBvaW50IH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LXN0YXRlLW9wZW4nKTtcbiAgICAgICAgdGhpcy5yZW1vdmVCYWNrZHJvcCgpO1xuICAgIH1cblxuICAgIC8vIFByaXZhdGUgUHJvcGVydGllc1xuXG4gICAgcHJpdmF0ZSBiYWNrZHJvcEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcblxuICAgIHByb3RlY3RlZCBpdGVtcyA9IHNpZ25hbDxBWE1lbnVJdGVtW10+KFtdKTtcblxuICAgIC8vIFByaXZhdGUgTWV0aG9kcyAoSW50ZXJuYWwgTG9naWMpXG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgZ2V0VGFyZ2V0RWxlbWVudHMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdID0gdHlwZW9mIHRoaXMudGFyZ2V0KCkgPT0gJ3N0cmluZycgP1xuICAgICAgICAgICAgQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50Pih0aGlzLnRhcmdldCgpIGFzIHN0cmluZykpIDpcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodGhpcy50YXJnZXQoKSkgP1xuICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0KCkgYXMgSFRNTEVsZW1lbnRbXSA6XG4gICAgICAgICAgICAgICAgW3RoaXMudGFyZ2V0KCkgYXMgSFRNTEVsZW1lbnRdXG5cbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBiaW5kQ29udGV4dEV2ZW50KCkge1xuICAgICAgICB0aGlzLmdldFRhcmdldEVsZW1lbnRzKCkuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgICAgICAgZS5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIHRoaXMuaGFuZGxlQ29udGV4dE1lbnUuYmluZCh0aGlzKSk7XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHJlbW92ZUNvbnRleHRFdmVudCgpIHtcbiAgICAgICAgdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpLmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgICAgIGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLmhhbmRsZUNvbnRleHRNZW51LmJpbmQodGhpcykpO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBoYW5kbGVDb250ZXh0TWVudShlOiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgLy9cbiAgICAgICAgY29uc3QgZWxlbWVudHNVbmRlck1vdXNlID0gZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQoZS54LCBlLnkpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnRzID0gdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpO1xuICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZWxlbWVudHNVbmRlck1vdXNlLmZpbmQodGFyZ2V0ID0+IHRhcmdldEVsZW1lbnRzLmluY2x1ZGVzKHRhcmdldCkpXG4gICAgICAgIC8vXG4gICAgICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgICAgICAgc2VuZGVyOiB0aGlzLFxuICAgICAgICAgICAgY2FuY2VsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudDogdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgICAgIGl0ZW1zOiBjbG9uZURlZXAodGhpcy5vcmdpbmFsSXRlbXMoKSksXG4gICAgICAgIH0gYXMgQVhDb250ZXh0TWVudU9wZW5pbmdFdmVudDtcbiAgICAgICAgdGhpcy5vbk9wZW5pbmcuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMuaXRlbXMuc2V0KGV2ZW50Lml0ZW1zKTtcbiAgICAgICAgLy9cbiAgICAgICAgaWYgKCFldmVudC5jYW5jZWxlZCkge1xuICAgICAgICAgICAgdGhpcy5zaG93QXQoeyB4OiBlLmNsaWVudFgsIHk6IGUuY2xpZW50WSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBpbnRlcm5hbFNob3dBdChwb2ludDogQVhQb2ludCkge1xuICAgICAgICBjb25zdCBlbGVtZW50UmVmID0gdGhpcy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBlbGVtZW50UmVmLmNsYXNzTGlzdC5hZGQoJ2F4LXN0YXRlLW9wZW4nKTtcbiAgICAgICAgY29uc3QgaXRlbVJlY3QgPSBlbGVtZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cbiAgICAgICAgLy8gRGV0ZWN0IFJUTCAoUmlnaHQtVG8tTGVmdCkgbW9kZVxuICAgICAgICBjb25zdCBpc1J0bCA9IEFYSHRtbFV0aWwuaXNSdGwoZWxlbWVudFJlZik7XG5cbiAgICAgICAgbGV0IGxlZnQ6IG51bWJlcjtcbiAgICAgICAgaWYgKGlzUnRsKSB7XG4gICAgICAgICAgICBsZWZ0ID0gcG9pbnQueCAtIGl0ZW1SZWN0LndpZHRoO1xuICAgICAgICAgICAgaWYgKGxlZnQgPCAwKSB7XG4gICAgICAgICAgICAgICAgbGVmdCA9IHBvaW50Lng7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZWZ0ID0gcG9pbnQueDtcbiAgICAgICAgICAgIGlmIChsZWZ0ICsgaXRlbVJlY3Qud2lkdGggPiB3aW5kb3dXaWR0aCkge1xuICAgICAgICAgICAgICAgIGxlZnQgPSBwb2ludC54IC0gaXRlbVJlY3Qud2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBib3R0b20gPSBwb2ludC55ICsgaXRlbVJlY3QuaGVpZ2h0O1xuICAgICAgICBsZXQgdG9wOiBudW1iZXI7XG5cbiAgICAgICAgaWYgKGJvdHRvbSA+IHdpbmRvd0hlaWdodCkge1xuICAgICAgICAgICAgdG9wID0gcG9pbnQueSAtIGl0ZW1SZWN0LmhlaWdodDtcbiAgICAgICAgICAgIGlmICh0b3AgPCAwKSB7XG4gICAgICAgICAgICAgICAgdG9wID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvcCA9IHBvaW50Lnk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYsICdsZWZ0JywgYCR7bGVmdH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYsICd0b3AnLCBgJHt0b3B9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50UmVmLCAncG9zaXRpb24nLCAnZml4ZWQnKTtcblxuICAgICAgICB0aGlzLmNyZWF0ZUJhY2tkcm9wKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIGNyZWF0ZUJhY2tkcm9wKCkge1xuICAgICAgICB0aGlzLmJhY2tkcm9wRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICdwb3NpdGlvbicsICdmaXhlZCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAndG9wJywgJzAnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2xlZnQnLCAnMCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnd2lkdGgnLCAnMTAwJScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ3otaW5kZXgnLCAnOTk5Jyk7IC8vIEVuc3VyZSBpdCdzIGJlbG93IHRoZSBjb250ZXh0IG1lbnVcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2JhY2tncm91bmQnLCAndHJhbnNwYXJlbnQnKTtcblxuICAgICAgICBjb25zdCBsMSA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICBsMSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBsMiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnd2hlZWwnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICBsMigpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBsMyA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnY29udGV4dG1lbnUnLCAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgLy8gR2V0IGFsbCBlbGVtZW50cyB1bmRlciB0aGUgbW91c2UgcG9pbnRlclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudHNVbmRlck1vdXNlID0gZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQoZS54LCBlLnkpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50cyA9IHRoaXMuZ2V0VGFyZ2V0RWxlbWVudHMoKTtcbiAgICAgICAgICAgIGlmICh0YXJnZXRFbGVtZW50cy5zb21lKHRhcmdldCA9PiBlbGVtZW50c1VuZGVyTW91c2UuaW5jbHVkZXModGFyZ2V0KSkpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vdGhpcy5pbnRlcm5hbFNob3dBdCh7IHg6IGUueCwgeTogZS55IH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNvbnRleHRNZW51KGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbDMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmJhY2tkcm9wRWxlbWVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHJlbW92ZUJhY2tkcm9wKCkge1xuICAgICAgICBpZiAodGhpcy5iYWNrZHJvcEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmJhY2tkcm9wRWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iYWNrZHJvcEVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmJhY2tkcm9wRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmJhY2tkcm9wRWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb3N0IExpc3RlbmVycyAoVUkgSW50ZXJhY3Rpb24gSGFuZGxpbmcpXG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICAgIHByaXZhdGUgb25XaW5kb3dFdmVudCgpIHtcbiAgICAgICAgY29uc3Qgc2VuZGVyID0gdGhpcyBhcyBhbnkgYXMgQVhSb290TWVudTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXI6IHNlbmRlciB9KTsgLy8gQ2xvc2UgYWxsIG1lbnVzIG9uIHNjcm9sbCBvciByZXNpemVcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBfX2hvc3RDbGFzcygpOiBhbnkge1xuICAgICAgICByZXR1cm4gWydheC1tZW51LWNvbnRhaW5lcicsIGBheC1vcmllbnRhdGlvbi0ke3RoaXMub3JpZW50YXRpb24oKX1gLCAnYXgtYWN0aW9uLWxpc3QnLCAnYXgtYWN0aW9uLWxpc3QtdmVydGljYWwnXTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1tZW51LWl0ZW0sYXgtdGl0bGUsbmctY29udGFpbmVyXCI+PC9uZy1jb250ZW50PlxuXG48bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBub2RlIG9mIGl0ZW1zKClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJSZWN1cnNpb25cIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogbm9kZSB9XCI+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjUmVjdXJzaW9uIGxldC1pdGVtPlxuICAgIEBpZihpdGVtLmdyb3VwPy50aXRsZSlcbiAgICB7XG4gICAgPGF4LXRpdGxlPnt7aXRlbS5ncm91cD8udGl0bGV9fTwvYXgtdGl0bGU+XG4gICAgfVxuICAgIDxheC1tZW51LWl0ZW0gW25hbWVdPVwiaXRlbS5uYW1lXCIgW2RhdGFdPVwiaXRlbS5kYXRhXCIgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiPlxuICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgQGlmKGl0ZW0uaWNvbilcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPlxuICAgICAgICAgICAgPC9heC1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgQGlmKGl0ZW0udGV4dClcbiAgICAgICAge1xuICAgICAgICA8YXgtdGV4dD57eyBpdGVtLnRleHQgfX08L2F4LXRleHQ+XG4gICAgICAgIH1cbiAgICAgICAgQGlmKGl0ZW0uc3VmZml4KVxuICAgICAgICB7XG4gICAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgICAgICA8YXgtdGV4dD57eyBpdGVtLnN1ZmZpeC50ZXh0IH19PC9heC10ZXh0PlxuICAgICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgICAgfVxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBpdGVtLml0ZW1zXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY2hpbGQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIEBpZihpdGVtLmJyZWFrKVxuICAgIHtcbiAgICA8YXgtZGl2aWRlcj48L2F4LWRpdmlkZXI+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
@@ -13,7 +13,7 @@ import * as i0 from "@angular/core";
|
|
13
13
|
*/
|
14
14
|
export class AXWysiwygContainerComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {
|
15
15
|
constructor() {
|
16
|
-
super();
|
16
|
+
super(...arguments);
|
17
17
|
/** @ignore */
|
18
18
|
this.service = inject(AXWysiwygService);
|
19
19
|
/** @ignore */
|
@@ -56,9 +56,6 @@ export class AXWysiwygContainerComponent extends classes((MXInputBaseValueCompon
|
|
56
56
|
}, 1000);
|
57
57
|
}
|
58
58
|
});
|
59
|
-
this.onValueChanged.subscribe((v) => {
|
60
|
-
this.service.wysiwyg()?.setContent(v.value);
|
61
|
-
});
|
62
59
|
}
|
63
60
|
#init;
|
64
61
|
#effect1;
|
@@ -88,9 +85,11 @@ export class AXWysiwygContainerComponent extends classes((MXInputBaseValueCompon
|
|
88
85
|
ngOnDestroy() {
|
89
86
|
this.service.wysiwyg()?.quillObj().off('text-change', this.changeHandler);
|
90
87
|
clearTimeout(this.setTimeOut);
|
91
|
-
this.onValueChanged.unsubscribe();
|
92
88
|
}
|
93
|
-
|
89
|
+
setContent(e) {
|
90
|
+
this.service.wysiwyg().setContent(e);
|
91
|
+
}
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXWysiwygContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
94
93
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: { look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, placeHolder: { classPropertyName: "placeHolder", publicName: "placeHolder", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: "onValueChanged" }, providers: [
|
95
94
|
{ provide: AXComponent, useExisting: AXWysiwygContainerComponent },
|
96
95
|
{ provide: AXFocusableComponent, useExisting: AXWysiwygContainerComponent },
|
@@ -116,5 +115,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
116
115
|
multi: true,
|
117
116
|
},
|
118
117
|
], template: "<div class=\"ax-editor-container ax-look-{{ look }}\">\n <ng-content></ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n", styles: [".ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container:not(.ql-disabled) li[data-list=checked]>.ql-ui,.ql-container:not(.ql-disabled) li[data-list=unchecked]>.ql-ui{cursor:pointer}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0}@supports (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-set:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor table{border-collapse:collapse}.ql-editor td{border:1px solid #000;padding:2px 5px}.ql-editor ol{padding-left:1.5em}.ql-editor li{list-style-type:none;padding-left:1.5em;position:relative}.ql-editor li>.ql-ui:before{display:inline-block;margin-left:-1.5em;margin-right:.3em;text-align:right;white-space:nowrap;width:1.2em}.ql-editor li[data-list=checked]>.ql-ui,.ql-editor li[data-list=unchecked]>.ql-ui{color:#777}.ql-editor li[data-list=bullet]>.ql-ui:before{content:\"\\2022\"}.ql-editor li[data-list=checked]>.ql-ui:before{content:\"\\2611\"}.ql-editor li[data-list=unchecked]>.ql-ui:before{content:\"\\2610\"}@supports (counter-set:none){.ql-editor li[data-list]{counter-set:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list]{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered]{counter-increment:list-0}.ql-editor li[data-list=ordered]>.ql-ui:before{content:counter(list-0,decimal) \". \"}.ql-editor li[data-list=ordered].ql-indent-1{counter-increment:list-1}.ql-editor li[data-list=ordered].ql-indent-1>.ql-ui:before{content:counter(list-1,lower-alpha) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-set:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-2{counter-increment:list-2}.ql-editor li[data-list=ordered].ql-indent-2>.ql-ui:before{content:counter(list-2,lower-roman) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-set:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-3{counter-increment:list-3}.ql-editor li[data-list=ordered].ql-indent-3>.ql-ui:before{content:counter(list-3,decimal) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-set:list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-4{counter-increment:list-4}.ql-editor li[data-list=ordered].ql-indent-4>.ql-ui:before{content:counter(list-4,lower-alpha) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-set:list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-5{counter-increment:list-5}.ql-editor li[data-list=ordered].ql-indent-5>.ql-ui:before{content:counter(list-5,lower-roman) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-set:list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-6{counter-increment:list-6}.ql-editor li[data-list=ordered].ql-indent-6>.ql-ui:before{content:counter(list-6,decimal) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-set:list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-reset:list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-7{counter-increment:list-7}.ql-editor li[data-list=ordered].ql-indent-7>.ql-ui:before{content:counter(list-7,lower-alpha) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-set:list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-reset:list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-8{counter-increment:list-8}.ql-editor li[data-list=ordered].ql-indent-8>.ql-ui:before{content:counter(list-8,lower-roman) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-set:list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-reset:list-9}}.ql-editor li[data-list=ordered].ql-indent-9{counter-increment:list-9}.ql-editor li[data-list=ordered].ql-indent-9>.ql-ui:before{content:counter(list-9,decimal) \". \"}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor li.ql-direction-rtl{padding-right:1.5em}.ql-editor li.ql-direction-rtl>.ql-ui:before{margin-left:.3em;margin-right:-1.5em;text-align:left}.ql-editor table{table-layout:fixed;width:100%}.ql-editor table td{outline:none}.ql-editor .ql-code-block-container{font-family:monospace}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor .ql-ui{position:absolute}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}ax-wysiwyg-container{width:100%;display:block}ax-wysiwyg-container>.ax-editor-container{display:block;height:auto!important}\n/*! Bundled license information:\n\nquill/dist/quill.core.css:\n (*!\n * Quill Editor v2.0.2\n * https://quilljs.com\n * Copyright (c) 2017-2024, Slab\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n *)\n*/\n"] }]
|
119
|
-
}]
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3d5c2l3eWcvc3JjL2xpYi93eXNpd3lnL3d5c2l3eWctY29udGFpbmVyL3d5c2l3eWctY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy93eXNpd3lnL3NyYy9saWIvd3lzaXd5Zy93eXNpd3lnLWNvbnRhaW5lci93eXNpd3lnLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsZUFBZSxHQUNoQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBRU4saUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFdEQ7OztHQUdHO0FBcUJILE1BQU0sT0FBTywyQkFDWCxTQUFRLE9BQU8sQ0FBQyxDQUFBLHlCQUFpQyxDQUFBLEVB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V0FBVyw2QkFBNkIsRUFBRTt3QkFDM0UsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyw2QkFBNkIsRUFBRTt3QkFDMUU7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7NEJBQzFELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhXeXNpd3lnIH0gZnJvbSAnQGFjb3JleC9jZGsvd3lzaXd5Zyc7XHJcbmltcG9ydCB7XHJcbiAgQVhDbGVhcmFibGVDb21wb25lbnQsXHJcbiAgQVhDb21wb25lbnQsXHJcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXHJcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcclxuICBNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50LFxyXG4gIE1YTG9va0NvbXBvbmVudCxcclxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcclxuaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgTmdab25lLFxyXG4gIE9uRGVzdHJveSxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBhZnRlck5leHRSZW5kZXIsXHJcbiAgZWZmZWN0LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcclxuaW1wb3J0IHsgUXVpbGxEZWx0YVRvSHRtbENvbnZlcnRlciB9IGZyb20gJ3F1aWxsLWRlbHRhLXRvLWh0bWwnO1xyXG5pbXBvcnQgeyBBWFd5c2l3eWdTZXJ2aWNlIH0gZnJvbSAnLi4vd3lzaXd5Zy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBBIGNvbnRhaW5lciBjb21wb25lbnQgZm9yIFdZU0lXWUcgKFdoYXQgWW91IFNlZSBJcyBXaGF0IFlvdSBHZXQpIGVkaXRvciBmdW5jdGlvbmFsaXR5LlxyXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC13eXNpd3lnLWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3d5c2l3eWctY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vd3lzaXd5Zy1jb250YWluZXIuY29tcG9uZW50LnNjc3MnLFxyXG4gIGlucHV0czogWydsb29rJ10sXHJcbiAgb3V0cHV0czogWydvblZhbHVlQ2hhbmdlZCddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50IH0sXHJcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50IH0sXHJcbiAgICB7IHByb3ZpZGU6IEFYQ2xlYXJhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50IH0sXHJcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFd5c2l3eWdDb250YWluZXJDb21wb25lbnQgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYV3lzaXd5Z0NvbnRhaW5lckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8c3RyaW5nPiwgTVhMb29rQ29tcG9uZW50KVxyXG4gIGltcGxlbWVudHMgT25EZXN0cm95XHJcbntcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYV3lzaXd5Z1NlcnZpY2UpO1xyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBzZXRUaW1lT3V0O1xyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByaXZhdGUgem9uZSA9IGluamVjdChOZ1pvbmUpO1xyXG5cclxuICAvKipcclxuICAgKiBTcGVjaWZpZXMgdGhlIHBsYWNlaG9sZGVyIHRleHQuXHJcbiAgICpcclxuICAgKi9cclxuICBwbGFjZUhvbGRlciA9IGlucHV0PHN0cmluZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5zdWJzY3JpYmUoKHY6IEFYV3lzaXd5Z0NvbnRhaW5lckNvbXBvbmVudCkgPT4ge1xyXG4gICAgICB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpPy5zZXRDb250ZW50KHYudmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XHJcbiAgICBjb25zdCB2aWV3ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2F4LXd5c2l3eWctdmlldycpIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcihhc3luYyAoKSA9PiB7XHJcbiAgICAgIGlmIChpc0Jyb3dzZXIoKSkge1xyXG4gICAgICAgIGNvbnN0IG5ld1d5c2l3eWcgPSBuZXcgQVhXeXNpd3lnKCk7XHJcblxyXG4gICAgICAgIGF3YWl0IG5ld1d5c2l3eWcuaW5pdCh2aWV3LCB7XHJcbiAgICAgICAgICByZWFkT25seTogdHJ1ZSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnd5c2l3eWcuc2V0KG5ld1d5c2l3eWcpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgI2VmZmVjdDEgPSBlZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMucGxhY2VIb2xkZXIoKSAmJiB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpPy5xdWlsbE9iaigpKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS53eXNpd3lnKCkucXVpbGxPYmooKS5yb290LnNldEF0dHJpYnV0ZSgnZGF0YS1wbGFjZWhvbGRlcicsIHRoaXMucGxhY2VIb2xkZXIoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VydmljZS53eXNpd3lnKCk/LnF1aWxsT2JqKCkpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKS5xdWlsbE9iaigpLnJvb3Quc2V0QXR0cmlidXRlKCdkYXRhLXBsYWNlaG9sZGVyJywgJ1dyaXRlIFlvdXIgTWVzc2FnZSAuLi4nKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgI2VmZmVjdDIgPSBlZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKT8ucXVpbGxPYmooKSkge1xyXG4gICAgICB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpLnF1aWxsT2JqKCkucm9vdC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAjZWZmZWN0MyA9IGVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlLnd5c2l3eWcoKT8ucXVpbGxPYmooKSkge1xyXG4gICAgICB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpLnF1aWxsT2JqKCkub24oJ3RleHQtY2hhbmdlJywgdGhpcy5jaGFuZ2VIYW5kbGVyLmJpbmQodGhpcykpO1xyXG5cclxuICAgICAgdGhpcy5zZXRUaW1lT3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKT8ucXVpbGxPYmooKS5lbmFibGUoKTtcclxuICAgICAgfSwgMTAwMCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIGNoYW5nZUhhbmRsZXIoKSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2VydmljZS53eXNpd3lnKCk/LnF1aWxsT2JqKCkucm9vdC5pbm5lckhUTUw7XHJcbiAgICBpZiAodmFsdWUgPT09ICc8cD48YnI+PC9wPicgfHwgIXZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUobnVsbCk7XHJcbiAgICAgIGlmICh0aGlzLnNlcnZpY2UuaXNFZGl0b3JDbGVhbigpKSByZXR1cm47XHJcbiAgICAgIHRoaXMuc2VydmljZS5pc0VkaXRvckNsZWFuLnNldCh0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRlbHRhID0gdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKT8ucXVpbGxPYmooKS5lZGl0b3IuZGVsdGEub3BzO1xyXG4gICAgICBjb25zdCBjZmcgPSB7IGlubGluZVN0eWxlczogdHJ1ZSB9O1xyXG4gICAgICBjb25zdCBjb252ZXJ0ZXIgPSBuZXcgUXVpbGxEZWx0YVRvSHRtbENvbnZlcnRlcihkZWx0YSwgY2ZnKTtcclxuICAgICAgY29uc3QgaHRtbCA9IGNvbnZlcnRlci5jb252ZXJ0KCk7XHJcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUoaHRtbCk7XHJcbiAgICAgIGlmICghdGhpcy5zZXJ2aWNlLmlzRWRpdG9yQ2xlYW4oKSkgcmV0dXJuO1xyXG4gICAgICB0aGlzLnNlcnZpY2UuaXNFZGl0b3JDbGVhbi5zZXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS53eXNpd3lnKCk/LnF1aWxsT2JqKCkub2ZmKCd0ZXh0LWNoYW5nZScsIHRoaXMuY2hhbmdlSGFuZGxlcik7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5zZXRUaW1lT3V0KTtcclxuICAgIHRoaXMub25WYWx1ZUNoYW5nZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImF4LWVkaXRvci1jb250YWluZXIgYXgtbG9vay17eyBsb29rIH19XCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImF4LWVycm9yLWNvbnRhaW5lclwiPjwvZGl2PlxuIl19
|
118
|
+
}] });
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3d5c2l3eWcvc3JjL2xpYi93eXNpd3lnL3d5c2l3eWctY29udGFpbmVyL3d5c2l3eWctY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy93eXNpd3lnL3NyYy9saWIvd3lzaXd5Zy93eXNpd3lnLWNvbnRhaW5lci93eXNpd3lnLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsZUFBZSxHQUNoQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBRU4saUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFdEQ7OztHQUdHO0FBcUJILE1BQU0sT0FBTywyQkFDWCxTQUFRLE9BQU8sQ0FBQyxDQUFBLHlCQUFpQyxDQUFBLEVB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Q0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7NEJBQzFELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhXeXNpd3lnIH0gZnJvbSAnQGFjb3JleC9jZGsvd3lzaXd5Zyc7XHJcbmltcG9ydCB7XHJcbiAgQVhDbGVhcmFibGVDb21wb25lbnQsXHJcbiAgQVhDb21wb25lbnQsXHJcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXHJcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcclxuICBNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50LFxyXG4gIE1YTG9va0NvbXBvbmVudCxcclxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcclxuaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgTmdab25lLFxyXG4gIE9uRGVzdHJveSxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBhZnRlck5leHRSZW5kZXIsXHJcbiAgZWZmZWN0LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcclxuaW1wb3J0IHsgUXVpbGxEZWx0YVRvSHRtbENvbnZlcnRlciB9IGZyb20gJ3F1aWxsLWRlbHRhLXRvLWh0bWwnO1xyXG5pbXBvcnQgeyBBWFd5c2l3eWdTZXJ2aWNlIH0gZnJvbSAnLi4vd3lzaXd5Zy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBBIGNvbnRhaW5lciBjb21wb25lbnQgZm9yIFdZU0lXWUcgKFdoYXQgWW91IFNlZSBJcyBXaGF0IFlvdSBHZXQpIGVkaXRvciBmdW5jdGlvbmFsaXR5LlxyXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC13eXNpd3lnLWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3d5c2l3eWctY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vd3lzaXd5Zy1jb250YWluZXIuY29tcG9uZW50LnNjc3MnLFxyXG4gIGlucHV0czogWydsb29rJ10sXHJcbiAgb3V0cHV0czogWydvblZhbHVlQ2hhbmdlZCddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50IH0sXHJcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50IH0sXHJcbiAgICB7IHByb3ZpZGU6IEFYQ2xlYXJhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50IH0sXHJcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFd5c2l3eWdDb250YWluZXJDb21wb25lbnQgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYV3lzaXd5Z0NvbnRhaW5lckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8c3RyaW5nPiwgTVhMb29rQ29tcG9uZW50KVxyXG4gIGltcGxlbWVudHMgT25EZXN0cm95XHJcbntcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYV3lzaXd5Z1NlcnZpY2UpO1xyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBzZXRUaW1lT3V0O1xyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByaXZhdGUgem9uZSA9IGluamVjdChOZ1pvbmUpO1xyXG5cclxuICAvKipcclxuICAgKiBTcGVjaWZpZXMgdGhlIHBsYWNlaG9sZGVyIHRleHQuXHJcbiAgICpcclxuICAgKi9cclxuICBwbGFjZUhvbGRlciA9IGlucHV0PHN0cmluZz4oKTtcclxuXHJcbiAgI2luaXQgPSBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xyXG4gICAgY29uc3QgdmlldyA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCdheC13eXNpd3lnLXZpZXcnKSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoYXN5bmMgKCkgPT4ge1xyXG4gICAgICBpZiAoaXNCcm93c2VyKCkpIHtcclxuICAgICAgICBjb25zdCBuZXdXeXNpd3lnID0gbmV3IEFYV3lzaXd5ZygpO1xyXG5cclxuICAgICAgICBhd2FpdCBuZXdXeXNpd3lnLmluaXQodmlldywge1xyXG4gICAgICAgICAgcmVhZE9ubHk6IHRydWUsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2VydmljZS53eXNpd3lnLnNldChuZXdXeXNpd3lnKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSk7XHJcblxyXG4gICNlZmZlY3QxID0gZWZmZWN0KCgpID0+IHtcclxuICAgIGlmICh0aGlzLnBsYWNlSG9sZGVyKCkgJiYgdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKT8ucXVpbGxPYmooKSkge1xyXG4gICAgICB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpLnF1aWxsT2JqKCkucm9vdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtcGxhY2Vob2xkZXInLCB0aGlzLnBsYWNlSG9sZGVyKCkpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNlcnZpY2Uud3lzaXd5ZygpPy5xdWlsbE9iaigpKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS53eXNpd3lnKCkucXVpbGxPYmooKS5yb290LnNldEF0dHJpYnV0ZSgnZGF0YS1wbGFjZWhvbGRlcicsICdXcml0ZSBZb3VyIE1lc3NhZ2UgLi4uJyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gICNlZmZlY3QyID0gZWZmZWN0KCgpID0+IHtcclxuICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMuc2VydmljZS53eXNpd3lnKCk/LnF1aWxsT2JqKCkpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKS5xdWlsbE9iaigpLnJvb3QuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgI2VmZmVjdDMgPSBlZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuc2VydmljZS53eXNpd3lnKCk/LnF1aWxsT2JqKCkpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKS5xdWlsbE9iaigpLm9uKCd0ZXh0LWNoYW5nZScsIHRoaXMuY2hhbmdlSGFuZGxlci5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAgIHRoaXMuc2V0VGltZU91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS53eXNpd3lnKCk/LnF1aWxsT2JqKCkuZW5hYmxlKCk7XHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBjaGFuZ2VIYW5kbGVyKCkge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpPy5xdWlsbE9iaigpLnJvb3QuaW5uZXJIVE1MO1xyXG4gICAgaWYgKHZhbHVlID09PSAnPHA+PGJyPjwvcD4nIHx8ICF2YWx1ZSkge1xyXG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKG51bGwpO1xyXG4gICAgICBpZiAodGhpcy5zZXJ2aWNlLmlzRWRpdG9yQ2xlYW4oKSkgcmV0dXJuO1xyXG4gICAgICB0aGlzLnNlcnZpY2UuaXNFZGl0b3JDbGVhbi5zZXQodHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkZWx0YSA9IHRoaXMuc2VydmljZS53eXNpd3lnKCk/LnF1aWxsT2JqKCkuZWRpdG9yLmRlbHRhLm9wcztcclxuICAgICAgY29uc3QgY2ZnID0geyBpbmxpbmVTdHlsZXM6IHRydWUgfTtcclxuICAgICAgY29uc3QgY29udmVydGVyID0gbmV3IFF1aWxsRGVsdGFUb0h0bWxDb252ZXJ0ZXIoZGVsdGEsIGNmZyk7XHJcbiAgICAgIGNvbnN0IGh0bWwgPSBjb252ZXJ0ZXIuY29udmVydCgpO1xyXG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKGh0bWwpO1xyXG4gICAgICBpZiAoIXRoaXMuc2VydmljZS5pc0VkaXRvckNsZWFuKCkpIHJldHVybjtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmlzRWRpdG9yQ2xlYW4uc2V0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpPy5xdWlsbE9iaigpLm9mZigndGV4dC1jaGFuZ2UnLCB0aGlzLmNoYW5nZUhhbmRsZXIpO1xyXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuc2V0VGltZU91dCk7XHJcbiAgfVxyXG5cclxuICBzZXRDb250ZW50KGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKS5zZXRDb250ZW50KGUpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXgtZWRpdG9yLWNvbnRhaW5lciBheC1sb29rLXt7IGxvb2sgfX1cIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXgtZXJyb3ItY29udGFpbmVyXCI+PC9kaXY+XG4iXX0=
|
@@ -441,7 +441,7 @@ class AXContextMenuComponent extends NXComponent {
|
|
441
441
|
//
|
442
442
|
const elementsUnderMouse = document.elementsFromPoint(e.x, e.y);
|
443
443
|
const targetElements = this.getTargetElements();
|
444
|
-
const targetElement =
|
444
|
+
const targetElement = elementsUnderMouse.find(target => targetElements.includes(target));
|
445
445
|
//
|
446
446
|
const event = {
|
447
447
|
sender: this,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-menu.mjs","sources":["../../../../libs/components/menu/src/lib/menu.types.ts","../../../../libs/components/menu/src/lib/menu.service.ts","../../../../libs/components/menu/src/lib/menu-item.component.ts","../../../../libs/components/menu/src/lib/menu-item.component.html","../../../../libs/components/menu/src/lib/context-menu.component.ts","../../../../libs/components/menu/src/lib/menu.component.html","../../../../libs/components/menu/src/lib/menu.component.ts","../../../../libs/components/menu/src/lib/menu.module.ts","../../../../libs/components/menu/src/acorex-components-menu.ts"],"sourcesContent":["import { AXOrientation, AXStyleColorType, NXClickEvent, NXComponent } from '@acorex/components/common';\nimport { OutputEmitterRef, WritableSignal } from '@angular/core';\n\nexport type AXMenuOpenTrigger = 'click' | 'hover';\nexport type AXMenuCloseTrigger = 'click' | 'leave';\n\n\nexport abstract class AXRootMenu {\n orientation: WritableSignal<AXOrientation>;\n openOn: WritableSignal<AXMenuOpenTrigger>;\n closeOn: WritableSignal<AXMenuCloseTrigger>;\n onItemClick: OutputEmitterRef<AXMenuItemClickBaseEvent>;\n nativeElement: HTMLDivElement;\n}\n\nexport abstract class AXMenuItemComponentBase {\n}\n\n\nexport abstract class AXMenuItem {\n color?: AXStyleColorType\n name?: string;\n text: string;\n data?: any\n icon?: string;\n disabled?: boolean;\n items?: AXMenuItem[];\n suffix?: {\n text: string\n };\n break?: boolean\n group?: {\n name?: string\n title?: string\n }\n}\n\n\nexport class AXMenuItemClickBaseEvent<T extends NXComponent = NXComponent> extends NXClickEvent<T> {\n item: {\n name?: string;\n text: string;\n data?: any\n };\n canceled = false;\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXMenuItemComponentBase, AXRootMenu } from './menu.types';\nimport { AXPoint } from '@acorex/core/utils';\n\n@Injectable()\nexport class AXMenuService {\n public closeAll$: Subject<void> = new Subject();\n public open$: Subject<AXMenuItemComponentBase> = new Subject();\n public close$: Subject<AXMenuItemComponentBase> = new Subject();\n public closeExcept$ = new Subject<AXMenuItemComponentBase>();\n\n public openContextMenu$ = new Subject<{ sender: AXRootMenu, point: AXPoint }>();\n public closeAllContextMenu$ = new Subject<{ sender: AXRootMenu }>();\n}\n","import { AXStyleColorType, NXComponent } from '@acorex/components/common';\nimport { AXHtmlUtil, AXUnsubscriber } from '@acorex/core/utils';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostBinding,\n HostListener,\n inject,\n input,\n output,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuItemClickBaseEvent, AXMenuItemComponentBase, AXRootMenu } from './menu.types';\n\nexport type AXMenuItemClickEvent = AXMenuItemClickBaseEvent<AXMenuItemComponent>;\n\n/**\n * Represents a menu item component used within an `ax-menu`.\n * @category Components\n */\n@Component({\n selector: 'ax-menu-item',\n templateUrl: './menu-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXMenuItemComponentBase,\n useExisting: AXMenuItemComponent,\n },\n AXUnsubscriber,\n ],\n})\nexport class AXMenuItemComponent extends NXComponent {\n protected isOpen = signal(false);\n protected hasSubItems = signal(false);\n protected isFirstLevel = signal(false);\n private mutationObserver!: MutationObserver;\n\n protected root = inject(AXRootMenu);\n protected parent?: AXMenuItemComponent | null;\n\n private service = inject(AXMenuService);\n private scrollableParents: HTMLElement[] = [];\n\n private unsuscriber = inject(AXUnsubscriber);\n private renderer = inject(Renderer2);\n\n protected arrowIcon = computed(() => {\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n return this.root.orientation() == 'horizontal' && this.isFirstLevel()\n ? 'ax-icon-chevron-down'\n : isRtl\n ? 'ax-icon-chevron-left'\n : 'ax-icon-chevron-right';\n });\n\n onClick = output<AXMenuItemClickEvent>();\n\n name = input<string>();\n data = input<any>();\n disabled = input<boolean>();\n color = input<AXStyleColorType>();\n isActive = input<boolean>(false);\n\n constructor() {\n super();\n //\n afterNextRender(() => {\n this.detectSubItems();\n this.observeMutations();\n this.bindScrollEvents();\n });\n //\n this.service.closeAll$.pipe(this.unsuscriber.takeUntilDestroy).subscribe(() => this.close());\n\n this.service.open$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if ((this as any) === item) {\n this.isOpen.set(true);\n this.calculatePosition();\n }\n });\n //\n this.service.close$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if ((this as any) == item) {\n this.isOpen.set(false);\n }\n });\n //\n this.service.closeExcept$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n this.closeExcept(item as AXMenuItemComponent);\n });\n }\n\n private closeExcept(item: AXMenuItemComponent) {\n const list: AXMenuItemComponent[] = [item];\n //\n let parent = item.parent;\n while (parent != null) {\n list.push(parent);\n parent = parent.parent;\n }\n //\n if (!list.includes(this)) {\n this.close();\n }\n }\n\n private observeMutations() {\n this.mutationObserver = new MutationObserver(() => {\n this.detectSubItems();\n });\n\n // Start observing changes in child elements\n this.mutationObserver.observe(this.nativeElement, {\n childList: true,\n subtree: true,\n });\n }\n\n private getText(): string {\n return this.nativeElement.querySelector<HTMLDivElement>('ax-text')?.innerText;\n }\n\n /**\n * Manually detect all `ax-menu-item` elements and check if this menu item has sub-items.\n */\n private detectSubItems() {\n //\n const parentEl = this.nativeElement.parentElement?.parentElement;\n this.parent =\n parentEl?.tagName == 'AX-MENU-ITEM' ? (parentEl?.['__axContext__'] as AXMenuItemComponent) : null;\n //\n const tag = this.nativeElement.parentElement?.tagName;\n this.isFirstLevel.set(tag == 'AX-MENU' || tag == 'AX-CONTEXT-MENU');\n const subItems = this.nativeElement.querySelectorAll('ax-menu-item');\n if (subItems.length > 0) {\n this.hasSubItems.set(true);\n } else {\n this.hasSubItems.set(false);\n }\n }\n\n open() {\n this.service.closeExcept$.next(this);\n if (!this.disabled() && this.hasSubItems()) {\n this.service.open$.next(this);\n }\n }\n\n close() {\n this.service.close$.next(this);\n }\n\n /**\n * Calculate the position of the submenu to avoid it going out of the viewport.\n */\n private calculatePosition() {\n const submenu = this.nativeElement.querySelector('.ax-menu-items');\n if (!submenu) return;\n\n const submenuRect = submenu.getBoundingClientRect();\n const itemRect = this.nativeElement.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n\n let top: number | null = null;\n let left: number | null = null;\n\n // For first-level menu items\n if (this.isFirstLevel() && this.root.orientation() === 'horizontal') {\n top =\n itemRect.bottom + submenuRect.height > windowHeight\n ? itemRect.top - submenuRect.height // Open upwards\n : itemRect.bottom; // Open downwards\n\n if (isRtl) {\n // RTL: Align to the right of the parent item\n left =\n itemRect.right - submenuRect.width < 0\n ? itemRect.left // Align to the left if not enough space on the right\n : itemRect.right - submenuRect.width; // Open to the left in RTL\n } else {\n // LTR: Align to the left of the parent item\n left =\n itemRect.left + submenuRect.width > windowWidth\n ? itemRect.right - submenuRect.width // Align to the right edge in LTR\n : itemRect.left; // Open to the left\n }\n } else {\n // For nested submenus\n if (isRtl) {\n // RTL: Nested submenu opens to the left\n left =\n itemRect.left - submenuRect.width < 0\n ? itemRect.right // Align to the right if not enough space on the left\n : itemRect.left - submenuRect.width; // Open to the left in RTL\n } else {\n // LTR: Nested submenu opens to the right\n left =\n itemRect.right + submenuRect.width > windowWidth\n ? itemRect.left - submenuRect.width // Open to the left if not enough space\n : itemRect.right; // Open to the right in LTR\n }\n\n // Adjust top position (align vertically with parent)\n top =\n itemRect.top + submenuRect.height > windowHeight\n ? itemRect.top - (itemRect.bottom + submenuRect.height - windowHeight) // Adjust upwards\n : itemRect.top; // Align with the parent item\n }\n\n // Apply calculated styles for RTL/LTR\n this.renderer.setStyle(submenu, 'left', `${left}px`);\n this.renderer.setStyle(submenu, 'top', `${top}px`);\n this.renderer.setStyle(submenu, 'position', 'fixed'); // Fixed position relative to the viewport\n }\n\n @HostListener('click', ['$event'])\n private handleClick(e: MouseEvent) {\n e.stopPropagation();\n if (this.disabled()) return;\n //\n const event = {\n sender: this,\n nativeEvent: e,\n canceled: false,\n item: {\n name: this.name(),\n text: this.getText(),\n data: this.data(),\n },\n } as AXMenuItemClickEvent;\n //\n this.onClick.emit(event);\n this.root.onItemClick.emit({ ...event, ...{ sender: this.root as any } });\n //\n if (this.hasSubItems() && !event.canceled) {\n this.open();\n } else if (!event.canceled) {\n this.service.closeAll$.next();\n this.service.closeAllContextMenu$.next({ sender: this.root });\n }\n }\n\n @HostListener('mouseenter', ['$event'])\n private handleMouseEnter(event: MouseEvent) {\n event.stopPropagation();\n // Cancel the close delay if the mouse re-enters the element\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n this.mouseLeaveTimeout = null; // Reset the timeout\n }\n if (!this.isFirstLevel() || this.root.openOn() == 'hover') {\n this.open();\n }\n }\n\n private mouseLeaveTimeout: any;\n\n @HostListener('mouseleave', ['$event'])\n private handleMouseLeave(event: MouseEvent) {\n event.stopPropagation();\n\n if (this.hasSubItems() && this.root.closeOn() === 'leave') {\n // Clear any previous timeout to avoid multiple triggers\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n }\n\n // Set a delay before closing the submenu\n this.mouseLeaveTimeout = setTimeout(() => {\n this.close();\n }, 500); // Adjust the delay (500ms in this case) as per your requirement\n }\n }\n\n @HostListener('window:scroll', ['$event'])\n @HostListener('window:resize', ['$event'])\n private onWindowEvent() {\n this.service.closeAll$.next(); // Close all menus on scroll or resize\n }\n\n /**\n * Close all menus if clicking outside the root menu and all sub-items.\n */\n @HostListener('document:click', ['$event'])\n private onClickOutside(event: MouseEvent) {\n const hostElement = this.root.nativeElement;\n if (!hostElement.contains(event.target as Node)) {\n this.service.closeAll$.next(); // Close all menus if click is outside the root and sub-items\n }\n }\n\n ngOnDestroy() {\n this.removeScrollEvents();\n }\n\n private bindScrollEvents() {\n this.scrollableParents = AXHtmlUtil.getScrollableParents(this.nativeElement);\n\n this.scrollableParents.forEach((parent) => {\n parent.addEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n\n // Remove scroll event listeners\n private removeScrollEvents() {\n this.scrollableParents.forEach((parent) => {\n parent.removeEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n\n /**\n * Handler for scroll events (window or scrollable parent containers)\n */\n private onContainerScroll() {\n this.service.closeAll$.next(); // Close all menus on scroll\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string[] {\n const list: string[] = ['ax-el-interactive', 'ax-action-item'];\n if (this.disabled()) {\n list.push('ax-state-disabled');\n }\n if (this.color()) {\n list.push(`ax-el-${this.color()}-blank`);\n }\n if (this.isActive()) {\n list.push(`ax-item-active`);\n }\n return list;\n }\n}\n","<div class=\"ax-action-item-prefix\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n</div>\n<div class=\"ax-action-item-suffix\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasSubItems()) {\n <i class=\"ax-icon ax-icon-solid {{ arrowIcon() }} ax-menu-item-child-icon\"></i>\n }\n</div>\n<div class=\"ax-menu-items ax-action-list ax-action-list-vertical\" [class.ax-state-open]=\"isOpen()\">\n <ng-content select=\"ax-menu-item,ax-title,ng-container\"></ng-content>\n</div>","import { AXOrientation, NXComponent, NXEvent } from '@acorex/components/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n HostListener,\n inject,\n input,\n output,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuCloseTrigger, AXMenuItem, AXMenuItemClickBaseEvent, AXMenuOpenTrigger, AXRootMenu } from './menu.types';\nimport { AXMenuService } from './menu.service';\nimport { AXHtmlUtil, AXPoint } from '@acorex/core/utils';\nimport { cloneDeep } from 'lodash-es';\nimport { isBrowser } from '@acorex/core/platform';\n\n\nexport class AXContextMenuOpeningEvent extends NXEvent<AXContextMenuComponent> {\n items: AXMenuItem[];\n canceled = false;\n targetElement: HTMLElement\n\n}\nexport type AXContextMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXContextMenuComponent>\n\n/**\n * Represents a menu component that displays context menu.\n * @category Components\n */\n@Component({\n selector: 'ax-context-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXContextMenuComponent\n }\n ]\n})\nexport class AXContextMenuComponent extends NXComponent {\n\n // Inputs and Outputs\n\n orientation = input<AXOrientation>('vertical');\n openOn = input<AXMenuOpenTrigger>('hover');\n closeOn = input<AXMenuCloseTrigger>('click');\n orginalItems = input<AXMenuItem[]>([], { alias: \"items\" });\n target = input<HTMLElement | HTMLElement[] | string>();\n\n onItemClick = output<AXContextMenuItemsClickEvent>();\n onOpening = output<AXContextMenuOpeningEvent>();\n\n // Injected Services\n\n private service = inject(AXMenuService);\n private renderer = inject(Renderer2)\n\n // Constructor (Dependency Injection)\n\n /** @ignore */\n constructor() {\n super();\n //\n afterNextRender(() => {\n this.bindContextEvent();\n });\n\n this.service.closeAllContextMenu$.subscribe(() => {\n this.service.closeAll$.next();\n this.close();\n });\n\n this.service.openContextMenu$.subscribe((e) => {\n if (e.sender as any == this) {\n this.internalShowAt(e.point);\n }\n });\n }\n\n\n\n // Lifecycle Hooks\n\n ngOnDestroy() {\n if (isBrowser()) {\n this.removeContextEvent();\n }\n }\n\n public refresh(){\n this.bindContextEvent()\n }\n\n // Public Methods\n\n public showAt(point: AXPoint) {\n const sender = this as any as AXRootMenu;\n this.service.closeAllContextMenu$.next({ sender });\n this.service.openContextMenu$.next({ sender, point });\n }\n\n public close() {\n this.nativeElement.classList.remove('ax-state-open');\n this.removeBackdrop();\n }\n\n // Private Properties\n\n private backdropElement!: HTMLElement;\n\n protected items = signal<AXMenuItem[]>([]);\n\n // Private Methods (Internal Logic)\n\n /** @ignore */\n private getTargetElements(): HTMLElement[] {\n const elements: HTMLElement[] = typeof this.target() == 'string' ?\n Array.from(document.querySelectorAll<HTMLElement>(this.target() as string)) :\n Array.isArray(this.target()) ?\n this.target() as HTMLElement[] :\n [this.target() as HTMLElement]\n\n return elements;\n }\n\n /** @ignore */\n private bindContextEvent() {\n this.getTargetElements().forEach((e) => {\n e.addEventListener('contextmenu', this.handleContextMenu.bind(this));\n })\n }\n\n /** @ignore */\n private removeContextEvent() {\n this.getTargetElements().forEach((e) => {\n e.removeEventListener('contextmenu', this.handleContextMenu.bind(this));\n })\n }\n\n /** @ignore */\n private handleContextMenu(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n //\n const elementsUnderMouse = document.elementsFromPoint(e.x, e.y) as HTMLElement[];\n const targetElements = this.getTargetElements();\n const targetElement = targetElements.find(target => elementsUnderMouse.includes(target))\n //\n const event = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.orginalItems()),\n } as AXContextMenuOpeningEvent;\n this.onOpening.emit(event);\n this.items.set(event.items);\n //\n if (!event.canceled) {\n this.showAt({ x: e.clientX, y: e.clientY });\n }\n }\n\n /** @ignore */\n private internalShowAt(point: AXPoint) {\n const elementRef = this.nativeElement;\n elementRef.classList.add('ax-state-open');\n const itemRect = elementRef.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n // Detect RTL (Right-To-Left) mode\n const isRtl = AXHtmlUtil.isRtl(elementRef);\n\n let left: number;\n if (isRtl) {\n left = point.x - itemRect.width;\n if (left < 0) {\n left = point.x;\n }\n } else {\n left = point.x;\n if (left + itemRect.width > windowWidth) {\n left = point.x - itemRect.width;\n }\n }\n\n const bottom = point.y + itemRect.height;\n let top: number;\n\n if (bottom > windowHeight) {\n top = point.y - itemRect.height;\n if (top < 0) {\n top = 0;\n }\n } else {\n top = point.y;\n }\n\n this.renderer.setStyle(elementRef, 'left', `${left}px`);\n this.renderer.setStyle(elementRef, 'top', `${top}px`);\n this.renderer.setStyle(elementRef, 'position', 'fixed');\n\n this.createBackdrop();\n }\n\n /** @ignore */\n private createBackdrop() {\n this.backdropElement = this.renderer.createElement('div');\n this.renderer.setStyle(this.backdropElement, 'position', 'fixed');\n this.renderer.setStyle(this.backdropElement, 'top', '0');\n this.renderer.setStyle(this.backdropElement, 'left', '0');\n this.renderer.setStyle(this.backdropElement, 'width', '100%');\n this.renderer.setStyle(this.backdropElement, 'height', '100%');\n this.renderer.setStyle(this.backdropElement, 'z-index', '999'); // Ensure it's below the context menu\n this.renderer.setStyle(this.backdropElement, 'background', 'transparent');\n\n const l1 = this.renderer.listen(this.backdropElement, 'click', () => {\n this.close();\n l1();\n });\n\n const l2 = this.renderer.listen(this.backdropElement, 'wheel', () => {\n this.close();\n l2();\n });\n\n const l3 = this.renderer.listen(this.backdropElement, 'contextmenu', (e: MouseEvent) => {\n this.close();\n // Get all elements under the mouse pointer\n const elementsUnderMouse = document.elementsFromPoint(e.x, e.y) as HTMLElement[];\n const targetElements = this.getTargetElements();\n if (targetElements.some(target => elementsUnderMouse.includes(target))) {\n e.preventDefault();\n setTimeout(() => {\n //this.internalShowAt({ x: e.x, y: e.y });\n this.handleContextMenu(e);\n });\n }\n l3();\n });\n\n document.body.appendChild(this.backdropElement);\n }\n\n /** @ignore */\n private removeBackdrop() {\n if (this.backdropElement) {\n if (this.backdropElement.parentNode) {\n this.backdropElement.parentNode.removeChild(this.backdropElement);\n }\n this.backdropElement = null;\n }\n }\n\n // Host Listeners (UI Interaction Handling)\n\n /** @ignore */\n @HostListener('window:scroll', ['$event'])\n @HostListener('window:resize', ['$event'])\n private onWindowEvent() {\n const sender = this as any as AXRootMenu;\n this.service.closeAllContextMenu$.next({ sender: sender }); // Close all menus on scroll or resize\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): any {\n return ['ax-menu-container', `ax-orientation-${this.orientation()}`, 'ax-action-list', 'ax-action-list-vertical'];\n }\n}\n","<ng-content select=\"ax-menu-item,ax-title,ng-container\"></ng-content>\n\n<ng-container *ngFor=\"let node of items()\" [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\n</ng-container>\n<ng-template #Recursion let-item>\n @if(item.group?.title)\n {\n <ax-title>{{item.group?.title}}</ax-title>\n }\n <ax-menu-item [name]=\"item.name\" [data]=\"item.data\" [disabled]=\"item.disabled\" [color]=\"item.color\">\n <ax-prefix>\n @if(item.icon)\n {\n <ax-icon [icon]=\"item.icon\">\n </ax-icon>\n }\n </ax-prefix>\n @if(item.text)\n {\n <ax-text>{{ item.text }}</ax-text>\n }\n @if(item.suffix)\n {\n <ax-suffix>\n <ax-text>{{ item.suffix.text }}</ax-text>\n </ax-suffix>\n }\n <ng-container *ngFor=\"let child of item.items\" [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\n </ax-menu-item>\n @if(item.break)\n {\n <ax-divider></ax-divider>\n }\n</ng-template>","import { AXOrientation, NXComponent } from '@acorex/components/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n inject,\n input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuCloseTrigger, AXMenuItem, AXMenuItemClickBaseEvent, AXMenuOpenTrigger, AXRootMenu } from './menu.types';\n\nexport type AXMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXMenuComponent>;\n\n/**\n * Represents a menu component that displays menu items.\n * @category Components\n */\n@Component({\n selector: 'ax-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent\n }\n ]\n})\nexport class AXMenuComponent extends NXComponent {\n orientation = input<AXOrientation>('horizontal');\n\n openOn = input<AXMenuOpenTrigger>('hover');\n\n closeOn = input<AXMenuCloseTrigger>('leave');\n\n service = inject(AXMenuService);\n\n onItemClick = output<AXMenuItemsClickEvent>();\n\n items = input<AXMenuItem[]>([]);\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-action-list-${this.orientation()} ax-action-list`;\n }\n\n\n public close() {\n this.service.closeAll$.next();\n }\n}\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AXMenuComponent } from './menu.component';\nimport { AXContextMenuComponent } from './context-menu.component';\nimport { AXMenuItemComponent } from './menu-item.component';\n\nconst COMPONENT = [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent];\nconst MODULES = [AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [CommonModule, ...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXMenuModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.AXMenuItemComponent"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-menu.mjs","sources":["../../../../libs/components/menu/src/lib/menu.types.ts","../../../../libs/components/menu/src/lib/menu.service.ts","../../../../libs/components/menu/src/lib/menu-item.component.ts","../../../../libs/components/menu/src/lib/menu-item.component.html","../../../../libs/components/menu/src/lib/context-menu.component.ts","../../../../libs/components/menu/src/lib/menu.component.html","../../../../libs/components/menu/src/lib/menu.component.ts","../../../../libs/components/menu/src/lib/menu.module.ts","../../../../libs/components/menu/src/acorex-components-menu.ts"],"sourcesContent":["import { AXOrientation, AXStyleColorType, NXClickEvent, NXComponent } from '@acorex/components/common';\nimport { OutputEmitterRef, WritableSignal } from '@angular/core';\n\nexport type AXMenuOpenTrigger = 'click' | 'hover';\nexport type AXMenuCloseTrigger = 'click' | 'leave';\n\n\nexport abstract class AXRootMenu {\n orientation: WritableSignal<AXOrientation>;\n openOn: WritableSignal<AXMenuOpenTrigger>;\n closeOn: WritableSignal<AXMenuCloseTrigger>;\n onItemClick: OutputEmitterRef<AXMenuItemClickBaseEvent>;\n nativeElement: HTMLDivElement;\n}\n\nexport abstract class AXMenuItemComponentBase {\n}\n\n\nexport abstract class AXMenuItem {\n color?: AXStyleColorType\n name?: string;\n text: string;\n data?: any\n icon?: string;\n disabled?: boolean;\n items?: AXMenuItem[];\n suffix?: {\n text: string\n };\n break?: boolean\n group?: {\n name?: string\n title?: string\n }\n}\n\n\nexport class AXMenuItemClickBaseEvent<T extends NXComponent = NXComponent> extends NXClickEvent<T> {\n item: {\n name?: string;\n text: string;\n data?: any\n };\n canceled = false;\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXMenuItemComponentBase, AXRootMenu } from './menu.types';\nimport { AXPoint } from '@acorex/core/utils';\n\n@Injectable()\nexport class AXMenuService {\n public closeAll$: Subject<void> = new Subject();\n public open$: Subject<AXMenuItemComponentBase> = new Subject();\n public close$: Subject<AXMenuItemComponentBase> = new Subject();\n public closeExcept$ = new Subject<AXMenuItemComponentBase>();\n\n public openContextMenu$ = new Subject<{ sender: AXRootMenu, point: AXPoint }>();\n public closeAllContextMenu$ = new Subject<{ sender: AXRootMenu }>();\n}\n","import { AXStyleColorType, NXComponent } from '@acorex/components/common';\nimport { AXHtmlUtil, AXUnsubscriber } from '@acorex/core/utils';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostBinding,\n HostListener,\n inject,\n input,\n output,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuItemClickBaseEvent, AXMenuItemComponentBase, AXRootMenu } from './menu.types';\n\nexport type AXMenuItemClickEvent = AXMenuItemClickBaseEvent<AXMenuItemComponent>;\n\n/**\n * Represents a menu item component used within an `ax-menu`.\n * @category Components\n */\n@Component({\n selector: 'ax-menu-item',\n templateUrl: './menu-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXMenuItemComponentBase,\n useExisting: AXMenuItemComponent,\n },\n AXUnsubscriber,\n ],\n})\nexport class AXMenuItemComponent extends NXComponent {\n protected isOpen = signal(false);\n protected hasSubItems = signal(false);\n protected isFirstLevel = signal(false);\n private mutationObserver!: MutationObserver;\n\n protected root = inject(AXRootMenu);\n protected parent?: AXMenuItemComponent | null;\n\n private service = inject(AXMenuService);\n private scrollableParents: HTMLElement[] = [];\n\n private unsuscriber = inject(AXUnsubscriber);\n private renderer = inject(Renderer2);\n\n protected arrowIcon = computed(() => {\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n return this.root.orientation() == 'horizontal' && this.isFirstLevel()\n ? 'ax-icon-chevron-down'\n : isRtl\n ? 'ax-icon-chevron-left'\n : 'ax-icon-chevron-right';\n });\n\n onClick = output<AXMenuItemClickEvent>();\n\n name = input<string>();\n data = input<any>();\n disabled = input<boolean>();\n color = input<AXStyleColorType>();\n isActive = input<boolean>(false);\n\n constructor() {\n super();\n //\n afterNextRender(() => {\n this.detectSubItems();\n this.observeMutations();\n this.bindScrollEvents();\n });\n //\n this.service.closeAll$.pipe(this.unsuscriber.takeUntilDestroy).subscribe(() => this.close());\n\n this.service.open$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if ((this as any) === item) {\n this.isOpen.set(true);\n this.calculatePosition();\n }\n });\n //\n this.service.close$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if ((this as any) == item) {\n this.isOpen.set(false);\n }\n });\n //\n this.service.closeExcept$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n this.closeExcept(item as AXMenuItemComponent);\n });\n }\n\n private closeExcept(item: AXMenuItemComponent) {\n const list: AXMenuItemComponent[] = [item];\n //\n let parent = item.parent;\n while (parent != null) {\n list.push(parent);\n parent = parent.parent;\n }\n //\n if (!list.includes(this)) {\n this.close();\n }\n }\n\n private observeMutations() {\n this.mutationObserver = new MutationObserver(() => {\n this.detectSubItems();\n });\n\n // Start observing changes in child elements\n this.mutationObserver.observe(this.nativeElement, {\n childList: true,\n subtree: true,\n });\n }\n\n private getText(): string {\n return this.nativeElement.querySelector<HTMLDivElement>('ax-text')?.innerText;\n }\n\n /**\n * Manually detect all `ax-menu-item` elements and check if this menu item has sub-items.\n */\n private detectSubItems() {\n //\n const parentEl = this.nativeElement.parentElement?.parentElement;\n this.parent =\n parentEl?.tagName == 'AX-MENU-ITEM' ? (parentEl?.['__axContext__'] as AXMenuItemComponent) : null;\n //\n const tag = this.nativeElement.parentElement?.tagName;\n this.isFirstLevel.set(tag == 'AX-MENU' || tag == 'AX-CONTEXT-MENU');\n const subItems = this.nativeElement.querySelectorAll('ax-menu-item');\n if (subItems.length > 0) {\n this.hasSubItems.set(true);\n } else {\n this.hasSubItems.set(false);\n }\n }\n\n open() {\n this.service.closeExcept$.next(this);\n if (!this.disabled() && this.hasSubItems()) {\n this.service.open$.next(this);\n }\n }\n\n close() {\n this.service.close$.next(this);\n }\n\n /**\n * Calculate the position of the submenu to avoid it going out of the viewport.\n */\n private calculatePosition() {\n const submenu = this.nativeElement.querySelector('.ax-menu-items');\n if (!submenu) return;\n\n const submenuRect = submenu.getBoundingClientRect();\n const itemRect = this.nativeElement.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n\n let top: number | null = null;\n let left: number | null = null;\n\n // For first-level menu items\n if (this.isFirstLevel() && this.root.orientation() === 'horizontal') {\n top =\n itemRect.bottom + submenuRect.height > windowHeight\n ? itemRect.top - submenuRect.height // Open upwards\n : itemRect.bottom; // Open downwards\n\n if (isRtl) {\n // RTL: Align to the right of the parent item\n left =\n itemRect.right - submenuRect.width < 0\n ? itemRect.left // Align to the left if not enough space on the right\n : itemRect.right - submenuRect.width; // Open to the left in RTL\n } else {\n // LTR: Align to the left of the parent item\n left =\n itemRect.left + submenuRect.width > windowWidth\n ? itemRect.right - submenuRect.width // Align to the right edge in LTR\n : itemRect.left; // Open to the left\n }\n } else {\n // For nested submenus\n if (isRtl) {\n // RTL: Nested submenu opens to the left\n left =\n itemRect.left - submenuRect.width < 0\n ? itemRect.right // Align to the right if not enough space on the left\n : itemRect.left - submenuRect.width; // Open to the left in RTL\n } else {\n // LTR: Nested submenu opens to the right\n left =\n itemRect.right + submenuRect.width > windowWidth\n ? itemRect.left - submenuRect.width // Open to the left if not enough space\n : itemRect.right; // Open to the right in LTR\n }\n\n // Adjust top position (align vertically with parent)\n top =\n itemRect.top + submenuRect.height > windowHeight\n ? itemRect.top - (itemRect.bottom + submenuRect.height - windowHeight) // Adjust upwards\n : itemRect.top; // Align with the parent item\n }\n\n // Apply calculated styles for RTL/LTR\n this.renderer.setStyle(submenu, 'left', `${left}px`);\n this.renderer.setStyle(submenu, 'top', `${top}px`);\n this.renderer.setStyle(submenu, 'position', 'fixed'); // Fixed position relative to the viewport\n }\n\n @HostListener('click', ['$event'])\n private handleClick(e: MouseEvent) {\n e.stopPropagation();\n if (this.disabled()) return;\n //\n const event = {\n sender: this,\n nativeEvent: e,\n canceled: false,\n item: {\n name: this.name(),\n text: this.getText(),\n data: this.data(),\n },\n } as AXMenuItemClickEvent;\n //\n this.onClick.emit(event);\n this.root.onItemClick.emit({ ...event, ...{ sender: this.root as any } });\n //\n if (this.hasSubItems() && !event.canceled) {\n this.open();\n } else if (!event.canceled) {\n this.service.closeAll$.next();\n this.service.closeAllContextMenu$.next({ sender: this.root });\n }\n }\n\n @HostListener('mouseenter', ['$event'])\n private handleMouseEnter(event: MouseEvent) {\n event.stopPropagation();\n // Cancel the close delay if the mouse re-enters the element\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n this.mouseLeaveTimeout = null; // Reset the timeout\n }\n if (!this.isFirstLevel() || this.root.openOn() == 'hover') {\n this.open();\n }\n }\n\n private mouseLeaveTimeout: any;\n\n @HostListener('mouseleave', ['$event'])\n private handleMouseLeave(event: MouseEvent) {\n event.stopPropagation();\n\n if (this.hasSubItems() && this.root.closeOn() === 'leave') {\n // Clear any previous timeout to avoid multiple triggers\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n }\n\n // Set a delay before closing the submenu\n this.mouseLeaveTimeout = setTimeout(() => {\n this.close();\n }, 500); // Adjust the delay (500ms in this case) as per your requirement\n }\n }\n\n @HostListener('window:scroll', ['$event'])\n @HostListener('window:resize', ['$event'])\n private onWindowEvent() {\n this.service.closeAll$.next(); // Close all menus on scroll or resize\n }\n\n /**\n * Close all menus if clicking outside the root menu and all sub-items.\n */\n @HostListener('document:click', ['$event'])\n private onClickOutside(event: MouseEvent) {\n const hostElement = this.root.nativeElement;\n if (!hostElement.contains(event.target as Node)) {\n this.service.closeAll$.next(); // Close all menus if click is outside the root and sub-items\n }\n }\n\n ngOnDestroy() {\n this.removeScrollEvents();\n }\n\n private bindScrollEvents() {\n this.scrollableParents = AXHtmlUtil.getScrollableParents(this.nativeElement);\n\n this.scrollableParents.forEach((parent) => {\n parent.addEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n\n // Remove scroll event listeners\n private removeScrollEvents() {\n this.scrollableParents.forEach((parent) => {\n parent.removeEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n\n /**\n * Handler for scroll events (window or scrollable parent containers)\n */\n private onContainerScroll() {\n this.service.closeAll$.next(); // Close all menus on scroll\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string[] {\n const list: string[] = ['ax-el-interactive', 'ax-action-item'];\n if (this.disabled()) {\n list.push('ax-state-disabled');\n }\n if (this.color()) {\n list.push(`ax-el-${this.color()}-blank`);\n }\n if (this.isActive()) {\n list.push(`ax-item-active`);\n }\n return list;\n }\n}\n","<div class=\"ax-action-item-prefix\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n</div>\n<div class=\"ax-action-item-suffix\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasSubItems()) {\n <i class=\"ax-icon ax-icon-solid {{ arrowIcon() }} ax-menu-item-child-icon\"></i>\n }\n</div>\n<div class=\"ax-menu-items ax-action-list ax-action-list-vertical\" [class.ax-state-open]=\"isOpen()\">\n <ng-content select=\"ax-menu-item,ax-title,ng-container\"></ng-content>\n</div>","import { AXOrientation, NXComponent, NXEvent } from '@acorex/components/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n HostListener,\n inject,\n input,\n output,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuCloseTrigger, AXMenuItem, AXMenuItemClickBaseEvent, AXMenuOpenTrigger, AXRootMenu } from './menu.types';\nimport { AXMenuService } from './menu.service';\nimport { AXHtmlUtil, AXPoint } from '@acorex/core/utils';\nimport { cloneDeep } from 'lodash-es';\nimport { isBrowser } from '@acorex/core/platform';\n\n\nexport class AXContextMenuOpeningEvent extends NXEvent<AXContextMenuComponent> {\n items: AXMenuItem[];\n canceled = false;\n targetElement: HTMLElement\n\n}\nexport type AXContextMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXContextMenuComponent>\n\n/**\n * Represents a menu component that displays context menu.\n * @category Components\n */\n@Component({\n selector: 'ax-context-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXContextMenuComponent\n }\n ]\n})\nexport class AXContextMenuComponent extends NXComponent {\n\n // Inputs and Outputs\n\n orientation = input<AXOrientation>('vertical');\n openOn = input<AXMenuOpenTrigger>('hover');\n closeOn = input<AXMenuCloseTrigger>('click');\n orginalItems = input<AXMenuItem[]>([], { alias: \"items\" });\n target = input<HTMLElement | HTMLElement[] | string>();\n\n onItemClick = output<AXContextMenuItemsClickEvent>();\n onOpening = output<AXContextMenuOpeningEvent>();\n\n // Injected Services\n\n private service = inject(AXMenuService);\n private renderer = inject(Renderer2)\n\n // Constructor (Dependency Injection)\n\n /** @ignore */\n constructor() {\n super();\n //\n afterNextRender(() => {\n this.bindContextEvent();\n });\n\n this.service.closeAllContextMenu$.subscribe(() => {\n this.service.closeAll$.next();\n this.close();\n });\n\n this.service.openContextMenu$.subscribe((e) => {\n if (e.sender as any == this) {\n this.internalShowAt(e.point);\n }\n });\n }\n\n\n\n // Lifecycle Hooks\n\n ngOnDestroy() {\n if (isBrowser()) {\n this.removeContextEvent();\n }\n }\n\n public refresh(){\n this.bindContextEvent()\n }\n\n // Public Methods\n\n public showAt(point: AXPoint) {\n const sender = this as any as AXRootMenu;\n this.service.closeAllContextMenu$.next({ sender });\n this.service.openContextMenu$.next({ sender, point });\n }\n\n public close() {\n this.nativeElement.classList.remove('ax-state-open');\n this.removeBackdrop();\n }\n\n // Private Properties\n\n private backdropElement!: HTMLElement;\n\n protected items = signal<AXMenuItem[]>([]);\n\n // Private Methods (Internal Logic)\n\n /** @ignore */\n private getTargetElements(): HTMLElement[] {\n const elements: HTMLElement[] = typeof this.target() == 'string' ?\n Array.from(document.querySelectorAll<HTMLElement>(this.target() as string)) :\n Array.isArray(this.target()) ?\n this.target() as HTMLElement[] :\n [this.target() as HTMLElement]\n\n return elements;\n }\n\n /** @ignore */\n private bindContextEvent() {\n this.getTargetElements().forEach((e) => {\n e.addEventListener('contextmenu', this.handleContextMenu.bind(this));\n })\n }\n\n /** @ignore */\n private removeContextEvent() {\n this.getTargetElements().forEach((e) => {\n e.removeEventListener('contextmenu', this.handleContextMenu.bind(this));\n })\n }\n\n /** @ignore */\n private handleContextMenu(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n //\n const elementsUnderMouse = document.elementsFromPoint(e.x, e.y) as HTMLElement[];\n const targetElements = this.getTargetElements();\n const targetElement = elementsUnderMouse.find(target => targetElements.includes(target))\n //\n const event = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.orginalItems()),\n } as AXContextMenuOpeningEvent;\n this.onOpening.emit(event);\n this.items.set(event.items);\n //\n if (!event.canceled) {\n this.showAt({ x: e.clientX, y: e.clientY });\n }\n }\n\n /** @ignore */\n private internalShowAt(point: AXPoint) {\n const elementRef = this.nativeElement;\n elementRef.classList.add('ax-state-open');\n const itemRect = elementRef.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n // Detect RTL (Right-To-Left) mode\n const isRtl = AXHtmlUtil.isRtl(elementRef);\n\n let left: number;\n if (isRtl) {\n left = point.x - itemRect.width;\n if (left < 0) {\n left = point.x;\n }\n } else {\n left = point.x;\n if (left + itemRect.width > windowWidth) {\n left = point.x - itemRect.width;\n }\n }\n\n const bottom = point.y + itemRect.height;\n let top: number;\n\n if (bottom > windowHeight) {\n top = point.y - itemRect.height;\n if (top < 0) {\n top = 0;\n }\n } else {\n top = point.y;\n }\n\n this.renderer.setStyle(elementRef, 'left', `${left}px`);\n this.renderer.setStyle(elementRef, 'top', `${top}px`);\n this.renderer.setStyle(elementRef, 'position', 'fixed');\n\n this.createBackdrop();\n }\n\n /** @ignore */\n private createBackdrop() {\n this.backdropElement = this.renderer.createElement('div');\n this.renderer.setStyle(this.backdropElement, 'position', 'fixed');\n this.renderer.setStyle(this.backdropElement, 'top', '0');\n this.renderer.setStyle(this.backdropElement, 'left', '0');\n this.renderer.setStyle(this.backdropElement, 'width', '100%');\n this.renderer.setStyle(this.backdropElement, 'height', '100%');\n this.renderer.setStyle(this.backdropElement, 'z-index', '999'); // Ensure it's below the context menu\n this.renderer.setStyle(this.backdropElement, 'background', 'transparent');\n\n const l1 = this.renderer.listen(this.backdropElement, 'click', () => {\n this.close();\n l1();\n });\n\n const l2 = this.renderer.listen(this.backdropElement, 'wheel', () => {\n this.close();\n l2();\n });\n\n const l3 = this.renderer.listen(this.backdropElement, 'contextmenu', (e: MouseEvent) => {\n this.close();\n // Get all elements under the mouse pointer\n const elementsUnderMouse = document.elementsFromPoint(e.x, e.y) as HTMLElement[];\n const targetElements = this.getTargetElements();\n if (targetElements.some(target => elementsUnderMouse.includes(target))) {\n e.preventDefault();\n setTimeout(() => {\n //this.internalShowAt({ x: e.x, y: e.y });\n this.handleContextMenu(e);\n });\n }\n l3();\n });\n\n document.body.appendChild(this.backdropElement);\n }\n\n /** @ignore */\n private removeBackdrop() {\n if (this.backdropElement) {\n if (this.backdropElement.parentNode) {\n this.backdropElement.parentNode.removeChild(this.backdropElement);\n }\n this.backdropElement = null;\n }\n }\n\n // Host Listeners (UI Interaction Handling)\n\n /** @ignore */\n @HostListener('window:scroll', ['$event'])\n @HostListener('window:resize', ['$event'])\n private onWindowEvent() {\n const sender = this as any as AXRootMenu;\n this.service.closeAllContextMenu$.next({ sender: sender }); // Close all menus on scroll or resize\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): any {\n return ['ax-menu-container', `ax-orientation-${this.orientation()}`, 'ax-action-list', 'ax-action-list-vertical'];\n }\n}\n","<ng-content select=\"ax-menu-item,ax-title,ng-container\"></ng-content>\n\n<ng-container *ngFor=\"let node of items()\" [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\n</ng-container>\n<ng-template #Recursion let-item>\n @if(item.group?.title)\n {\n <ax-title>{{item.group?.title}}</ax-title>\n }\n <ax-menu-item [name]=\"item.name\" [data]=\"item.data\" [disabled]=\"item.disabled\" [color]=\"item.color\">\n <ax-prefix>\n @if(item.icon)\n {\n <ax-icon [icon]=\"item.icon\">\n </ax-icon>\n }\n </ax-prefix>\n @if(item.text)\n {\n <ax-text>{{ item.text }}</ax-text>\n }\n @if(item.suffix)\n {\n <ax-suffix>\n <ax-text>{{ item.suffix.text }}</ax-text>\n </ax-suffix>\n }\n <ng-container *ngFor=\"let child of item.items\" [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\n </ax-menu-item>\n @if(item.break)\n {\n <ax-divider></ax-divider>\n }\n</ng-template>","import { AXOrientation, NXComponent } from '@acorex/components/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n inject,\n input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuCloseTrigger, AXMenuItem, AXMenuItemClickBaseEvent, AXMenuOpenTrigger, AXRootMenu } from './menu.types';\n\nexport type AXMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXMenuComponent>;\n\n/**\n * Represents a menu component that displays menu items.\n * @category Components\n */\n@Component({\n selector: 'ax-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent\n }\n ]\n})\nexport class AXMenuComponent extends NXComponent {\n orientation = input<AXOrientation>('horizontal');\n\n openOn = input<AXMenuOpenTrigger>('hover');\n\n closeOn = input<AXMenuCloseTrigger>('leave');\n\n service = inject(AXMenuService);\n\n onItemClick = output<AXMenuItemsClickEvent>();\n\n items = input<AXMenuItem[]>([]);\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-action-list-${this.orientation()} ax-action-list`;\n }\n\n\n public close() {\n this.service.closeAll$.next();\n }\n}\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AXMenuComponent } from './menu.component';\nimport { AXContextMenuComponent } from './context-menu.component';\nimport { AXMenuItemComponent } from './menu-item.component';\n\nconst COMPONENT = [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent];\nconst MODULES = [AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [CommonModule, ...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXMenuModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.AXMenuItemComponent"],"mappings":"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"}
|
@@ -41,7 +41,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
41
41
|
*/
|
42
42
|
class AXWysiwygContainerComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {
|
43
43
|
constructor() {
|
44
|
-
super();
|
44
|
+
super(...arguments);
|
45
45
|
/** @ignore */
|
46
46
|
this.service = inject(AXWysiwygService);
|
47
47
|
/** @ignore */
|
@@ -84,9 +84,6 @@ class AXWysiwygContainerComponent extends classes((MXInputBaseValueComponent), M
|
|
84
84
|
}, 1000);
|
85
85
|
}
|
86
86
|
});
|
87
|
-
this.onValueChanged.subscribe((v) => {
|
88
|
-
this.service.wysiwyg()?.setContent(v.value);
|
89
|
-
});
|
90
87
|
}
|
91
88
|
#init;
|
92
89
|
#effect1;
|
@@ -116,9 +113,11 @@ class AXWysiwygContainerComponent extends classes((MXInputBaseValueComponent), M
|
|
116
113
|
ngOnDestroy() {
|
117
114
|
this.service.wysiwyg()?.quillObj().off('text-change', this.changeHandler);
|
118
115
|
clearTimeout(this.setTimeOut);
|
119
|
-
this.onValueChanged.unsubscribe();
|
120
116
|
}
|
121
|
-
|
117
|
+
setContent(e) {
|
118
|
+
this.service.wysiwyg().setContent(e);
|
119
|
+
}
|
120
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXWysiwygContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
122
121
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: { look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, placeHolder: { classPropertyName: "placeHolder", publicName: "placeHolder", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: "onValueChanged" }, providers: [
|
123
122
|
{ provide: AXComponent, useExisting: AXWysiwygContainerComponent },
|
124
123
|
{ provide: AXFocusableComponent, useExisting: AXWysiwygContainerComponent },
|
@@ -144,7 +143,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
144
143
|
multi: true,
|
145
144
|
},
|
146
145
|
], template: "<div class=\"ax-editor-container ax-look-{{ look }}\">\n <ng-content></ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n", styles: [".ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container:not(.ql-disabled) li[data-list=checked]>.ql-ui,.ql-container:not(.ql-disabled) li[data-list=unchecked]>.ql-ui{cursor:pointer}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0}@supports (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-set:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor table{border-collapse:collapse}.ql-editor td{border:1px solid #000;padding:2px 5px}.ql-editor ol{padding-left:1.5em}.ql-editor li{list-style-type:none;padding-left:1.5em;position:relative}.ql-editor li>.ql-ui:before{display:inline-block;margin-left:-1.5em;margin-right:.3em;text-align:right;white-space:nowrap;width:1.2em}.ql-editor li[data-list=checked]>.ql-ui,.ql-editor li[data-list=unchecked]>.ql-ui{color:#777}.ql-editor li[data-list=bullet]>.ql-ui:before{content:\"\\2022\"}.ql-editor li[data-list=checked]>.ql-ui:before{content:\"\\2611\"}.ql-editor li[data-list=unchecked]>.ql-ui:before{content:\"\\2610\"}@supports (counter-set:none){.ql-editor li[data-list]{counter-set:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list]{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered]{counter-increment:list-0}.ql-editor li[data-list=ordered]>.ql-ui:before{content:counter(list-0,decimal) \". \"}.ql-editor li[data-list=ordered].ql-indent-1{counter-increment:list-1}.ql-editor li[data-list=ordered].ql-indent-1>.ql-ui:before{content:counter(list-1,lower-alpha) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-set:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-2{counter-increment:list-2}.ql-editor li[data-list=ordered].ql-indent-2>.ql-ui:before{content:counter(list-2,lower-roman) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-set:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-3{counter-increment:list-3}.ql-editor li[data-list=ordered].ql-indent-3>.ql-ui:before{content:counter(list-3,decimal) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-set:list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-4{counter-increment:list-4}.ql-editor li[data-list=ordered].ql-indent-4>.ql-ui:before{content:counter(list-4,lower-alpha) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-set:list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-5{counter-increment:list-5}.ql-editor li[data-list=ordered].ql-indent-5>.ql-ui:before{content:counter(list-5,lower-roman) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-set:list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-6{counter-increment:list-6}.ql-editor li[data-list=ordered].ql-indent-6>.ql-ui:before{content:counter(list-6,decimal) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-set:list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-reset:list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-7{counter-increment:list-7}.ql-editor li[data-list=ordered].ql-indent-7>.ql-ui:before{content:counter(list-7,lower-alpha) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-set:list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-reset:list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-8{counter-increment:list-8}.ql-editor li[data-list=ordered].ql-indent-8>.ql-ui:before{content:counter(list-8,lower-roman) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-set:list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-reset:list-9}}.ql-editor li[data-list=ordered].ql-indent-9{counter-increment:list-9}.ql-editor li[data-list=ordered].ql-indent-9>.ql-ui:before{content:counter(list-9,decimal) \". \"}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor li.ql-direction-rtl{padding-right:1.5em}.ql-editor li.ql-direction-rtl>.ql-ui:before{margin-left:.3em;margin-right:-1.5em;text-align:left}.ql-editor table{table-layout:fixed;width:100%}.ql-editor table td{outline:none}.ql-editor .ql-code-block-container{font-family:monospace}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor .ql-ui{position:absolute}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}ax-wysiwyg-container{width:100%;display:block}ax-wysiwyg-container>.ax-editor-container{display:block;height:auto!important}\n/*! Bundled license information:\n\nquill/dist/quill.core.css:\n (*!\n * Quill Editor v2.0.2\n * https://quilljs.com\n * Copyright (c) 2017-2024, Slab\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n *)\n*/\n"] }]
|
147
|
-
}]
|
146
|
+
}] });
|
148
147
|
|
149
148
|
/**
|
150
149
|
* A toolbar component for the WYSIWYG editor, providing various formatting options.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-wysiwyg.mjs","sources":["../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg.service.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg.module.ts","../../../../libs/components/wysiwyg/src/acorex-components-wysiwyg.ts"],"sourcesContent":["import { AXWysiwyg } from '@acorex/cdk/wysiwyg';\nimport { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXWysiwygService {\n wysiwyg = signal<AXWysiwyg | null>(null);\n isEditorClean = signal(true);\n currentSelectedElemArray = signal<string[]>([]);\n currentSelectedElemList = signal<string>('');\n currentSelectedElemAlign = signal<string>('');\n}\n","import { AXWysiwyg } from '@acorex/cdk/wysiwyg';\r\nimport {\r\n AXClearableComponent,\r\n AXComponent,\r\n AXFocusableComponent,\r\n AXValuableComponent,\r\n MXInputBaseValueComponent,\r\n MXLookComponent,\r\n} from '@acorex/components/common';\r\nimport { isBrowser } from '@acorex/core/platform';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n NgZone,\r\n OnDestroy,\r\n ViewEncapsulation,\r\n afterNextRender,\r\n effect,\r\n forwardRef,\r\n inject,\r\n input,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { classes } from 'polytype';\r\nimport { QuillDeltaToHtmlConverter } from 'quill-delta-to-html';\r\nimport { AXWysiwygService } from '../wysiwyg.service';\r\n\r\n/**\r\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-wysiwyg-container',\r\n templateUrl: './wysiwyg-container.component.html',\r\n styleUrl: './wysiwyg-container.component.scss',\r\n inputs: ['look'],\r\n outputs: ['onValueChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n { provide: AXComponent, useExisting: AXWysiwygContainerComponent },\r\n { provide: AXFocusableComponent, useExisting: AXWysiwygContainerComponent },\r\n { provide: AXClearableComponent, useExisting: AXWysiwygContainerComponent },\r\n { provide: AXValuableComponent, useExisting: AXWysiwygContainerComponent },\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AXWysiwygContainerComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AXWysiwygContainerComponent\r\n extends classes(MXInputBaseValueComponent<string>, MXLookComponent)\r\n implements OnDestroy\r\n{\r\n /** @ignore */\r\n protected service = inject(AXWysiwygService);\r\n\r\n /** @ignore */\r\n protected setTimeOut;\r\n\r\n /** @ignore */\r\n private zone = inject(NgZone);\r\n\r\n /**\r\n * Specifies the placeholder text.\r\n *\r\n */\r\n placeHolder = input<string>();\r\n\r\n constructor() {\r\n super();\r\n this.onValueChanged.subscribe((v: AXWysiwygContainerComponent) => {\r\n this.service.wysiwyg()?.setContent(v.value);\r\n });\r\n }\r\n\r\n #init = afterNextRender(() => {\r\n const view = this.getHostElement().querySelector('ax-wysiwyg-view') as HTMLElement;\r\n\r\n this.zone.runOutsideAngular(async () => {\r\n if (isBrowser()) {\r\n const newWysiwyg = new AXWysiwyg();\r\n\r\n await newWysiwyg.init(view, {\r\n readOnly: true,\r\n });\r\n\r\n this.service.wysiwyg.set(newWysiwyg);\r\n }\r\n });\r\n });\r\n\r\n #effect1 = effect(() => {\r\n if (this.placeHolder() && this.service.wysiwyg()?.quillObj()) {\r\n this.service.wysiwyg().quillObj().root.setAttribute('data-placeholder', this.placeHolder());\r\n } else if (this.service.wysiwyg()?.quillObj()) {\r\n this.service.wysiwyg().quillObj().root.setAttribute('data-placeholder', 'Write Your Message ...');\r\n }\r\n });\r\n\r\n #effect2 = effect(() => {\r\n if (this.value && this.service.wysiwyg()?.quillObj()) {\r\n this.service.wysiwyg().quillObj().root.innerHTML = this.value;\r\n }\r\n });\r\n\r\n #effect3 = effect(() => {\r\n if (this.service.wysiwyg()?.quillObj()) {\r\n this.service.wysiwyg().quillObj().on('text-change', this.changeHandler.bind(this));\r\n\r\n this.setTimeOut = setTimeout(() => {\r\n this.service.wysiwyg()?.quillObj().enable();\r\n }, 1000);\r\n }\r\n });\r\n\r\n /** @ignore */\r\n protected changeHandler() {\r\n const value = this.service.wysiwyg()?.quillObj().root.innerHTML;\r\n if (value === '<p><br></p>' || !value) {\r\n this.commitValue(null);\r\n if (this.service.isEditorClean()) return;\r\n this.service.isEditorClean.set(true);\r\n } else {\r\n const delta = this.service.wysiwyg()?.quillObj().editor.delta.ops;\r\n const cfg = { inlineStyles: true };\r\n const converter = new QuillDeltaToHtmlConverter(delta, cfg);\r\n const html = converter.convert();\r\n this.commitValue(html);\r\n if (!this.service.isEditorClean()) return;\r\n this.service.isEditorClean.set(false);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n override ngOnDestroy(): void {\r\n this.service.wysiwyg()?.quillObj().off('text-change', this.changeHandler);\r\n clearTimeout(this.setTimeOut);\r\n this.onValueChanged.unsubscribe();\r\n }\r\n}\r\n","<div class=\"ax-editor-container ax-look-{{ look }}\">\n <ng-content></ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n","import { Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n/**\n * A toolbar component for the WYSIWYG editor, providing various formatting options.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-toolbar',\n templateUrl: './wysiwyg-toolbar.component.html',\n styleUrl: './wysiwyg-toolbar.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXWysiwygToolbarComponent {\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-sm`;\n }\n}\n","<ng-content select=\"ax-prefix\"></ng-content>\r\n<div class=\"ax-wysiwyg-tools\"><ng-content></ng-content></div>\r\n<ng-content select=\"ax-suffix\"></ng-content>\r\n","import { AXPlacement } from '@acorex/components/common';\nimport { AXPopoverCloseTrigger, AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport { Component, effect, inject, signal } from '@angular/core';\nimport { AXWysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-alignment',\n templateUrl: './wysiwyg-alignment.component.html',\n styleUrl: './wysiwyg-alignment.component.scss',\n})\nexport class AXWysiwygAlignmentComponent {\n /** @ignore */\n service = inject(AXWysiwygService);\n\n /** @ignore */\n protected alignState = signal('');\n\n /** @ignore */\n protected popoverOption: {\n openOn: AXPopoverOpenTrigger;\n closeOn: AXPopoverCloseTrigger;\n placement: AXPlacement;\n offsetX: number;\n offsetY: number;\n } = {\n openOn: 'click',\n closeOn: 'clickOut',\n placement: 'top',\n offsetX: 0,\n offsetY: 0,\n };\n\n /** @ignore */\n constructor() {\n effect(\n () => {\n if (!this.service.wysiwyg()) return;\n switch (this.service.currentSelectedElemAlign()) {\n case 'ql-align-center':\n this.alignState.set('center');\n this.service.wysiwyg().align('center');\n break;\n case 'ql-align-right':\n this.alignState.set('right');\n this.service.wysiwyg().align('right');\n break;\n default:\n this.alignState.set('left');\n this.service.wysiwyg().align('left');\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n /** @ignore */\n protected alignStateHandler(e: any) {\n this.alignState.set(e);\n this.service.wysiwyg().align(e);\n }\n}\n","<ax-button look=\"blank\" #alignPop>\n <ax-icon class=\"ax-icon ax-icon-align-left\"></ax-icon>\n</ax-button>\n<ax-popover [openOn]=\"popoverOption.openOn\" [closeOn]=\"popoverOption.closeOn\" [target]=\"alignPop\" [placement]=\"popoverOption.placement\">\n <div class=\"ax-overlay-pane ax-alignment-cotainer ax-sm\">\n <ax-button (click)=\"alignStateHandler('left')\" look=\"blank\" [selected]=\"alignState() === 'left' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-align-left\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"alignStateHandler('center')\" look=\"blank\" [selected]=\"alignState() === 'center' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-align-center\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"alignStateHandler('right')\" look=\"blank\" [selected]=\"alignState() === 'right' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-align-right\"></ax-icon>\n </ax-button>\n </div>\n</ax-popover>\n","import { AXPlacement } from '@acorex/components/common';\nimport { AXPopoverCloseTrigger, AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport { Component, ViewEncapsulation, effect, inject, signal } from '@angular/core';\nimport { AXWysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-colors',\n templateUrl: './wysiwyg-colors.component.html',\n styleUrl: './wysiwyg-colors.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXWysiwygColorsComponent {\n /** @ignore */\n service = inject(AXWysiwygService);\n\n /** @ignore */\n protected selectedColor = signal('rgb(151, 148, 148)');\n\n /** @ignore */\n protected selectedHighlightColor = signal('rgba(223, 223, 24, 0.5)');\n\n /** @ignore */\n protected userInteractColor = signal(false);\n\n /** @ignore */\n protected userInteractHighligh = signal(false);\n\n /** @ignore */\n protected popoverOption: {\n openOn: AXPopoverOpenTrigger;\n closeOn: AXPopoverCloseTrigger;\n placement: AXPlacement;\n offsetX: number;\n offsetY: number;\n } = {\n openOn: 'click',\n closeOn: 'clickOut',\n placement: 'top',\n offsetX: 0,\n offsetY: 0,\n };\n\n /** @ignore */\n constructor() {\n effect(\n () => {\n if (this.service.isEditorClean()) {\n this.selectedHighlightColor.set('rgba(223, 223, 24, 0.5)');\n this.selectedColor.set('rgb(151, 148, 148)');\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n /** @ignore */\n protected changeColorHandler(e: string) {\n if (!this.userInteractColor()) return;\n this.selectedColor.set(e);\n this.service.wysiwyg().color(e);\n }\n\n /** @ignore */\n protected changeHighlightColorHandler(e: string) {\n if (!this.userInteractHighligh()) return;\n this.selectedHighlightColor.set(e);\n this.service.wysiwyg().background(e);\n }\n\n /** @ignore */\n protected initialHighlightHandler() {\n if (this.userInteractHighligh()) return;\n this.userInteractHighligh.set(true);\n this.service.wysiwyg().background('rgba(223, 223, 24, 0.5)');\n }\n\n /** @ignore */\n protected initialColorHandler() {\n if (this.userInteractColor()) return;\n this.userInteractColor.set(true);\n this.service.wysiwyg().color('rgb(151, 148, 148)');\n }\n}\n","<div class=\"ax-color-picker-wysiwyg-container\">\n <div (click)=\"initialColorHandler()\" class=\"ax-color-flex-wysiwyg-container\">\n <div [style]=\"{ backgroundColor: selectedColor() }\" class=\"ax-submit-color\"></div>\n <ax-button #colorBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>\n </ax-button>\n </div>\n\n <div (click)=\"initialHighlightHandler()\" class=\"ax-color-flex-wysiwyg-container\">\n <div [style]=\"{ backgroundColor: selectedHighlightColor() }\" class=\"ax-submit-color\"></div>\n <ax-button #highlightBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n </div>\n</div>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"colorBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-color-palette (ngModelChange)=\"changeColorHandler($event)\" [ngModel]=\"selectedColor()\">\n <ax-color-palette-preview></ax-color-palette-preview>\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </div>\n</ax-popover>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"highlightBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-color-palette\n (ngModelChange)=\"changeHighlightColorHandler($event)\"\n [ngModel]=\"selectedHighlightColor()\"\n >\n <ax-color-palette-preview></ax-color-palette-preview>\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </div>\n</ax-popover>\n","import { Component, effect, inject, signal } from '@angular/core';\r\nimport { AXWysiwygContainerComponent } from '../../wysiwyg-container/wysiwyg-container.component';\r\nimport { AXWysiwygService } from '../../wysiwyg.service';\r\n\r\n/**\r\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-wysiwyg-font-style',\r\n templateUrl: './wysiwyg-font-style.component.html',\r\n styleUrl: './wysiwyg-font-style.component.scss',\r\n})\r\nexport class AXWysiwygFontStyleComponent {\r\n /** @ignore */\r\n parent = inject(AXWysiwygContainerComponent);\r\n\r\n /** @ignore */\r\n protected boldState = signal(false);\r\n\r\n /** @ignore */\r\n protected italicState = signal(false);\r\n\r\n /** @ignore */\r\n protected underLineState = signal(false);\r\n\r\n /** @ignore */\r\n protected strikeLineState = signal(false);\r\n\r\n /** @ignore */\r\n protected selectedFont = signal('medium');\r\n\r\n /** @ignore */\r\n service = inject(AXWysiwygService);\r\n\r\n /** @ignore */\r\n constructor() {\r\n effect(\r\n () => {\r\n if (!this.service.wysiwyg()) return;\r\n this.service.currentSelectedElemArray().forEach((item) => {\r\n switch (item) {\r\n case 'U':\r\n this.service.wysiwyg().underLine(true);\r\n this.underLineState.set(true);\r\n break;\r\n case 'S':\r\n this.service.wysiwyg().strike(true);\r\n this.strikeLineState.set(true);\r\n break;\r\n case 'EM':\r\n this.service.wysiwyg().italic(true);\r\n this.italicState.set(true);\r\n break;\r\n case 'STRONG':\r\n this.service.wysiwyg().bold(true);\r\n this.boldState.set(true);\r\n break;\r\n\r\n default:\r\n if (this.boldState()) this.service.wysiwyg().bold(true);\r\n if (this.italicState()) this.service.wysiwyg().italic(true);\r\n if (this.strikeLineState()) this.service.wysiwyg().strike(true);\r\n if (this.underLineState()) this.service.wysiwyg().underLine(true);\r\n }\r\n });\r\n },\r\n { allowSignalWrites: true },\r\n );\r\n }\r\n\r\n /** @ignore */\r\n protected bold() {\r\n if (this.boldState()) {\r\n this.service.wysiwyg().bold(false);\r\n this.boldState.set(false);\r\n } else {\r\n this.service.wysiwyg().bold(true);\r\n this.boldState.set(true);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected italic() {\r\n if (this.italicState()) {\r\n this.service.wysiwyg().italic(false);\r\n this.italicState.set(false);\r\n } else {\r\n this.service.wysiwyg().italic(true);\r\n this.italicState.set(true);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected underLine() {\r\n if (this.underLineState()) {\r\n this.service.wysiwyg().underLine(false);\r\n this.underLineState.set(false);\r\n } else {\r\n this.service.wysiwyg().underLine(true);\r\n this.underLineState.set(true);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected strike() {\r\n if (this.strikeLineState()) {\r\n this.service.wysiwyg().strike(false);\r\n this.strikeLineState.set(false);\r\n } else {\r\n this.service.wysiwyg().strike(true);\r\n this.strikeLineState.set(true);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected fontSizeHandler(e: 'medium' | 'small' | 'large' | 'huge') {\r\n const range = this.service.wysiwyg()?.quillObj().getSelection();\r\n if (!range?.length) return;\r\n\r\n if (e === 'medium') {\r\n this.service.wysiwyg().fontSize(false, range);\r\n this.selectedFont.set('medium');\r\n } else {\r\n this.service.wysiwyg().fontSize(e, range);\r\n this.selectedFont.set(e);\r\n }\r\n }\r\n}\r\n","<div class=\"ax-wysiwyg-font-style-container\">\n <ax-button (click)=\"bold()\" look=\"blank\" [selected]=\"boldState() ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-bold\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"italic()\" look=\"blank\" [selected]=\"italicState() ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-italic\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"underLine()\" look=\"blank\" [selected]=\"underLineState() ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-under-line\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"strike()\" look=\"blank\" [selected]=\"strikeLineState() ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-strike\"></ax-icon>\n </ax-button>\n\n <ax-select-box\n [look]=\"this.parent.look\"\n (ngModelChange)=\"fontSizeHandler($event)\"\n [ngModel]=\"selectedFont()\"\n [dataSource]=\"['small', 'medium', 'large', 'huge']\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n</div>\n","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXWysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-history',\n templateUrl: './wysiwyg-history.component.html',\n styleUrl: './wysiwyg-history.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXWysiwygHistoryComponent {\n /** @ignore */\n service = inject(AXWysiwygService);\n\n /** @ignore */\n protected undo() {\n this.service.wysiwyg().undo();\n }\n\n /** @ignore */\n protected redo() {\n this.service.wysiwyg().redo();\n }\n}\n","<ax-button class=\"\" (click)=\"undo()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n\n<ax-button class=\"\" (click)=\"redo()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-redo\"></ax-icon>\n</ax-button>\n","import { AXPlacement } from '@acorex/components/common';\nimport { AXPopoverCloseTrigger, AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { AXWysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-insert',\n templateUrl: './wysiwyg-insert.component.html',\n styleUrl: './wysiwyg-insert.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXWysiwygInsertComponent {\n /** @ignore */\n service = inject(AXWysiwygService);\n\n /** @ignore */\n textBoxOptions = {\n text: '',\n placeholder: 'Enter yor url ...',\n size: 'ax-sm',\n };\n\n /** @ignore */\n protected popoverOption: {\n openOn: AXPopoverOpenTrigger;\n closeOn: AXPopoverCloseTrigger;\n placement: AXPlacement;\n offsetX: number;\n offsetY: number;\n } = {\n openOn: 'click',\n closeOn: 'clickOut',\n placement: 'top',\n offsetX: 0,\n offsetY: 0,\n };\n\n /** @ignore */\n protected submitLink() {\n this.service.wysiwyg().addImage(this.textBoxOptions.text);\n }\n}\n","<ax-button #linkBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-image\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"linkBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane ax-insert-container\">\n <ax-text-box\n class=\"{{ textBoxOptions.size }}\"\n [(ngModel)]=\"textBoxOptions.text\"\n [placeholder]=\"textBoxOptions.placeholder\"\n >\n <ax-suffix>\n <ax-button (click)=\"submitLink()\" class=\"ax-sm\" color=\"secondary\" text=\"Add\"> </ax-button>\n </ax-suffix>\n </ax-text-box>\n </div>\n</ax-popover>\n","import { Component, effect, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXWysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-list',\n templateUrl: './wysiwyg-list.component.html',\n styleUrl: './wysiwyg-list.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXWysiwygListComponent {\n /** @ignore */\n service = inject(AXWysiwygService);\n\n /** @ignore */\n protected listState = signal('');\n\n /** @ignore */\n constructor() {\n effect(\n () => {\n if (!this.service.wysiwyg()) return;\n switch (this.service.currentSelectedElemList()) {\n case 'ordered':\n this.service.wysiwyg().list('ordered');\n this.listState.set('ordered');\n break;\n case 'bullet':\n this.service.wysiwyg().list('bullet');\n this.listState.set('bullet');\n break;\n default:\n this.service.wysiwyg().list('');\n this.listState.set('');\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n /** @ignore */\n protected orderList() {\n if (!this.listState() || this.listState() === 'bullet') {\n this.service.wysiwyg().list('ordered');\n this.listState.set('ordered');\n } else {\n this.service.wysiwyg().list('');\n this.listState.set('');\n }\n }\n\n /** @ignore */\n protected unOrderList() {\n if (!this.listState() || this.listState() === 'ordered') {\n this.service.wysiwyg().list('bullet');\n this.listState.set('bullet');\n } else {\n this.service.wysiwyg().list('');\n this.listState.set('');\n }\n }\n}\n","<ax-button (click)=\"orderList()\" look=\"blank\" [selected]=\"listState() === 'ordered' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-order-list\"></ax-icon>\n</ax-button>\n\n<ax-button (click)=\"unOrderList()\" look=\"blank\" [selected]=\"listState() === 'bullet' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-un-order-list\"></ax-icon>\n</ax-button>\n","import { Component, HostBinding, HostListener, inject, input, ViewEncapsulation } from '@angular/core';\nimport { AXWysiwygService } from '../wysiwyg.service';\n\n/**\n * @category Components\n * A component for viewing WYSIWYG content.\n */\n@Component({\n selector: 'ax-wysiwyg-view',\n templateUrl: './wysiwyg-view.component.html',\n styleUrl: './wysiwyg-view.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXWysiwygViewComponent {\n classes = input<string>('', { alias: 'class' });\n\n /** @ignore */\n protected wysiwygService = inject(AXWysiwygService);\n\n @HostBinding('class')\n get __hostClass(): string {\n return `${this.classes()}`;\n }\n\n @HostListener('keydown.Backspace', ['$event'])\n protected onKeydownHandler(e: any) {\n if (e.target.firstChild.nodeName === 'P') {\n this.wysiwygService.currentSelectedElemList.set('');\n }\n }\n\n @HostListener('click', ['$event'])\n protected editorStateHandler(e: any) {\n this.wysiwygService.currentSelectedElemAlign.set(e.target.classList.value);\n this.wysiwygService.currentSelectedElemList.set(e.target.dataset.list);\n this.wysiwygService.currentSelectedElemArray.set([\n e.target.nodeName,\n e.target.parentElement.nodeName,\n e.target.parentElement.parentElement.nodeName,\n e.target.parentElement.parentElement.parentElement.nodeName,\n e.target.classList.value,\n ]);\n }\n}\n","\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXWysiwygContainerComponent } from './wysiwyg/wysiwyg-container/wysiwyg-container.component';\n\nimport { AXColorPaletteModule } from '@acorex/components/color-palette';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXWysiwygToolbarComponent } from './wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component';\nimport { AXWysiwygAlignmentComponent } from './wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component';\nimport { AXWysiwygColorsComponent } from './wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component';\nimport { AXWysiwygFontStyleComponent } from './wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component';\nimport { AXWysiwygHistoryComponent } from './wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component';\nimport { AXWysiwygInsertComponent } from './wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component';\nimport { AXWysiwygListComponent } from './wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component';\nimport { AXWysiwygViewComponent } from './wysiwyg/wysiwyg-view/wysiwyg-view.component';\nimport { AXWysiwygService } from './wysiwyg/wysiwyg.service';\n\nconst COMPONENT = [\n AXWysiwygContainerComponent,\n AXWysiwygViewComponent,\n AXWysiwygToolbarComponent,\n AXWysiwygAlignmentComponent,\n AXWysiwygColorsComponent,\n AXWysiwygFontStyleComponent,\n AXWysiwygHistoryComponent,\n AXWysiwygInsertComponent,\n AXWysiwygListComponent,\n];\n\nconst MODULES = [AXButtonModule, AXDecoratorModule, AXSelectBoxModule, FormsModule, AXColorPaletteModule, AXPopoverModule, AXTextBoxModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [AXWysiwygService],\n})\nexport class AXWysiwygModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i5","i4"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-wysiwyg.mjs","sources":["../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg.service.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.ts","../../../../libs/components/wysiwyg/src/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.html","../../../../libs/components/wysiwyg/src/lib/wysiwyg.module.ts","../../../../libs/components/wysiwyg/src/acorex-components-wysiwyg.ts"],"sourcesContent":["import { AXWysiwyg } from '@acorex/cdk/wysiwyg';\nimport { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXWysiwygService {\n wysiwyg = signal<AXWysiwyg | null>(null);\n isEditorClean = signal(true);\n currentSelectedElemArray = signal<string[]>([]);\n currentSelectedElemList = signal<string>('');\n currentSelectedElemAlign = signal<string>('');\n}\n","import { AXWysiwyg } from '@acorex/cdk/wysiwyg';\r\nimport {\r\n AXClearableComponent,\r\n AXComponent,\r\n AXFocusableComponent,\r\n AXValuableComponent,\r\n MXInputBaseValueComponent,\r\n MXLookComponent,\r\n} from '@acorex/components/common';\r\nimport { isBrowser } from '@acorex/core/platform';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n NgZone,\r\n OnDestroy,\r\n ViewEncapsulation,\r\n afterNextRender,\r\n effect,\r\n forwardRef,\r\n inject,\r\n input,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { classes } from 'polytype';\r\nimport { QuillDeltaToHtmlConverter } from 'quill-delta-to-html';\r\nimport { AXWysiwygService } from '../wysiwyg.service';\r\n\r\n/**\r\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-wysiwyg-container',\r\n templateUrl: './wysiwyg-container.component.html',\r\n styleUrl: './wysiwyg-container.component.scss',\r\n inputs: ['look'],\r\n outputs: ['onValueChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n { provide: AXComponent, useExisting: AXWysiwygContainerComponent },\r\n { provide: AXFocusableComponent, useExisting: AXWysiwygContainerComponent },\r\n { provide: AXClearableComponent, useExisting: AXWysiwygContainerComponent },\r\n { provide: AXValuableComponent, useExisting: AXWysiwygContainerComponent },\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AXWysiwygContainerComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AXWysiwygContainerComponent\r\n extends classes(MXInputBaseValueComponent<string>, MXLookComponent)\r\n implements OnDestroy\r\n{\r\n /** @ignore */\r\n protected service = inject(AXWysiwygService);\r\n\r\n /** @ignore */\r\n protected setTimeOut;\r\n\r\n /** @ignore */\r\n private zone = inject(NgZone);\r\n\r\n /**\r\n * Specifies the placeholder text.\r\n *\r\n */\r\n placeHolder = input<string>();\r\n\r\n #init = afterNextRender(() => {\r\n const view = this.getHostElement().querySelector('ax-wysiwyg-view') as HTMLElement;\r\n\r\n this.zone.runOutsideAngular(async () => {\r\n if (isBrowser()) {\r\n const newWysiwyg = new AXWysiwyg();\r\n\r\n await newWysiwyg.init(view, {\r\n readOnly: true,\r\n });\r\n\r\n this.service.wysiwyg.set(newWysiwyg);\r\n }\r\n });\r\n });\r\n\r\n #effect1 = effect(() => {\r\n if (this.placeHolder() && this.service.wysiwyg()?.quillObj()) {\r\n this.service.wysiwyg().quillObj().root.setAttribute('data-placeholder', this.placeHolder());\r\n } else if (this.service.wysiwyg()?.quillObj()) {\r\n this.service.wysiwyg().quillObj().root.setAttribute('data-placeholder', 'Write Your Message ...');\r\n }\r\n });\r\n\r\n #effect2 = effect(() => {\r\n if (this.value && this.service.wysiwyg()?.quillObj()) {\r\n this.service.wysiwyg().quillObj().root.innerHTML = this.value;\r\n }\r\n });\r\n\r\n #effect3 = effect(() => {\r\n if (this.service.wysiwyg()?.quillObj()) {\r\n this.service.wysiwyg().quillObj().on('text-change', this.changeHandler.bind(this));\r\n\r\n this.setTimeOut = setTimeout(() => {\r\n this.service.wysiwyg()?.quillObj().enable();\r\n }, 1000);\r\n }\r\n });\r\n\r\n /** @ignore */\r\n protected changeHandler() {\r\n const value = this.service.wysiwyg()?.quillObj().root.innerHTML;\r\n if (value === '<p><br></p>' || !value) {\r\n this.commitValue(null);\r\n if (this.service.isEditorClean()) return;\r\n this.service.isEditorClean.set(true);\r\n } else {\r\n const delta = this.service.wysiwyg()?.quillObj().editor.delta.ops;\r\n const cfg = { inlineStyles: true };\r\n const converter = new QuillDeltaToHtmlConverter(delta, cfg);\r\n const html = converter.convert();\r\n this.commitValue(html);\r\n if (!this.service.isEditorClean()) return;\r\n this.service.isEditorClean.set(false);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n override ngOnDestroy(): void {\r\n this.service.wysiwyg()?.quillObj().off('text-change', this.changeHandler);\r\n clearTimeout(this.setTimeOut);\r\n }\r\n\r\n setContent(e: string) {\r\n this.service.wysiwyg().setContent(e);\r\n }\r\n}\r\n","<div class=\"ax-editor-container ax-look-{{ look }}\">\n <ng-content></ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n","import { Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n/**\n * A toolbar component for the WYSIWYG editor, providing various formatting options.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-toolbar',\n templateUrl: './wysiwyg-toolbar.component.html',\n styleUrl: './wysiwyg-toolbar.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXWysiwygToolbarComponent {\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-sm`;\n }\n}\n","<ng-content select=\"ax-prefix\"></ng-content>\r\n<div class=\"ax-wysiwyg-tools\"><ng-content></ng-content></div>\r\n<ng-content select=\"ax-suffix\"></ng-content>\r\n","import { AXPlacement } from '@acorex/components/common';\nimport { AXPopoverCloseTrigger, AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport { Component, effect, inject, signal } from '@angular/core';\nimport { AXWysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-alignment',\n templateUrl: './wysiwyg-alignment.component.html',\n styleUrl: './wysiwyg-alignment.component.scss',\n})\nexport class AXWysiwygAlignmentComponent {\n /** @ignore */\n service = inject(AXWysiwygService);\n\n /** @ignore */\n protected alignState = signal('');\n\n /** @ignore */\n protected popoverOption: {\n openOn: AXPopoverOpenTrigger;\n closeOn: AXPopoverCloseTrigger;\n placement: AXPlacement;\n offsetX: number;\n offsetY: number;\n } = {\n openOn: 'click',\n closeOn: 'clickOut',\n placement: 'top',\n offsetX: 0,\n offsetY: 0,\n };\n\n /** @ignore */\n constructor() {\n effect(\n () => {\n if (!this.service.wysiwyg()) return;\n switch (this.service.currentSelectedElemAlign()) {\n case 'ql-align-center':\n this.alignState.set('center');\n this.service.wysiwyg().align('center');\n break;\n case 'ql-align-right':\n this.alignState.set('right');\n this.service.wysiwyg().align('right');\n break;\n default:\n this.alignState.set('left');\n this.service.wysiwyg().align('left');\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n /** @ignore */\n protected alignStateHandler(e: any) {\n this.alignState.set(e);\n this.service.wysiwyg().align(e);\n }\n}\n","<ax-button look=\"blank\" #alignPop>\n <ax-icon class=\"ax-icon ax-icon-align-left\"></ax-icon>\n</ax-button>\n<ax-popover [openOn]=\"popoverOption.openOn\" [closeOn]=\"popoverOption.closeOn\" [target]=\"alignPop\" [placement]=\"popoverOption.placement\">\n <div class=\"ax-overlay-pane ax-alignment-cotainer ax-sm\">\n <ax-button (click)=\"alignStateHandler('left')\" look=\"blank\" [selected]=\"alignState() === 'left' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-align-left\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"alignStateHandler('center')\" look=\"blank\" [selected]=\"alignState() === 'center' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-align-center\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"alignStateHandler('right')\" look=\"blank\" [selected]=\"alignState() === 'right' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-align-right\"></ax-icon>\n </ax-button>\n </div>\n</ax-popover>\n","import { AXPlacement } from '@acorex/components/common';\nimport { AXPopoverCloseTrigger, AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport { Component, ViewEncapsulation, effect, inject, signal } from '@angular/core';\nimport { AXWysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-colors',\n templateUrl: './wysiwyg-colors.component.html',\n styleUrl: './wysiwyg-colors.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXWysiwygColorsComponent {\n /** @ignore */\n service = inject(AXWysiwygService);\n\n /** @ignore */\n protected selectedColor = signal('rgb(151, 148, 148)');\n\n /** @ignore */\n protected selectedHighlightColor = signal('rgba(223, 223, 24, 0.5)');\n\n /** @ignore */\n protected userInteractColor = signal(false);\n\n /** @ignore */\n protected userInteractHighligh = signal(false);\n\n /** @ignore */\n protected popoverOption: {\n openOn: AXPopoverOpenTrigger;\n closeOn: AXPopoverCloseTrigger;\n placement: AXPlacement;\n offsetX: number;\n offsetY: number;\n } = {\n openOn: 'click',\n closeOn: 'clickOut',\n placement: 'top',\n offsetX: 0,\n offsetY: 0,\n };\n\n /** @ignore */\n constructor() {\n effect(\n () => {\n if (this.service.isEditorClean()) {\n this.selectedHighlightColor.set('rgba(223, 223, 24, 0.5)');\n this.selectedColor.set('rgb(151, 148, 148)');\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n /** @ignore */\n protected changeColorHandler(e: string) {\n if (!this.userInteractColor()) return;\n this.selectedColor.set(e);\n this.service.wysiwyg().color(e);\n }\n\n /** @ignore */\n protected changeHighlightColorHandler(e: string) {\n if (!this.userInteractHighligh()) return;\n this.selectedHighlightColor.set(e);\n this.service.wysiwyg().background(e);\n }\n\n /** @ignore */\n protected initialHighlightHandler() {\n if (this.userInteractHighligh()) return;\n this.userInteractHighligh.set(true);\n this.service.wysiwyg().background('rgba(223, 223, 24, 0.5)');\n }\n\n /** @ignore */\n protected initialColorHandler() {\n if (this.userInteractColor()) return;\n this.userInteractColor.set(true);\n this.service.wysiwyg().color('rgb(151, 148, 148)');\n }\n}\n","<div class=\"ax-color-picker-wysiwyg-container\">\n <div (click)=\"initialColorHandler()\" class=\"ax-color-flex-wysiwyg-container\">\n <div [style]=\"{ backgroundColor: selectedColor() }\" class=\"ax-submit-color\"></div>\n <ax-button #colorBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>\n </ax-button>\n </div>\n\n <div (click)=\"initialHighlightHandler()\" class=\"ax-color-flex-wysiwyg-container\">\n <div [style]=\"{ backgroundColor: selectedHighlightColor() }\" class=\"ax-submit-color\"></div>\n <ax-button #highlightBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n </div>\n</div>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"colorBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-color-palette (ngModelChange)=\"changeColorHandler($event)\" [ngModel]=\"selectedColor()\">\n <ax-color-palette-preview></ax-color-palette-preview>\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </div>\n</ax-popover>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"highlightBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-color-palette\n (ngModelChange)=\"changeHighlightColorHandler($event)\"\n [ngModel]=\"selectedHighlightColor()\"\n >\n <ax-color-palette-preview></ax-color-palette-preview>\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </div>\n</ax-popover>\n","import { Component, effect, inject, signal } from '@angular/core';\r\nimport { AXWysiwygContainerComponent } from '../../wysiwyg-container/wysiwyg-container.component';\r\nimport { AXWysiwygService } from '../../wysiwyg.service';\r\n\r\n/**\r\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-wysiwyg-font-style',\r\n templateUrl: './wysiwyg-font-style.component.html',\r\n styleUrl: './wysiwyg-font-style.component.scss',\r\n})\r\nexport class AXWysiwygFontStyleComponent {\r\n /** @ignore */\r\n parent = inject(AXWysiwygContainerComponent);\r\n\r\n /** @ignore */\r\n protected boldState = signal(false);\r\n\r\n /** @ignore */\r\n protected italicState = signal(false);\r\n\r\n /** @ignore */\r\n protected underLineState = signal(false);\r\n\r\n /** @ignore */\r\n protected strikeLineState = signal(false);\r\n\r\n /** @ignore */\r\n protected selectedFont = signal('medium');\r\n\r\n /** @ignore */\r\n service = inject(AXWysiwygService);\r\n\r\n /** @ignore */\r\n constructor() {\r\n effect(\r\n () => {\r\n if (!this.service.wysiwyg()) return;\r\n this.service.currentSelectedElemArray().forEach((item) => {\r\n switch (item) {\r\n case 'U':\r\n this.service.wysiwyg().underLine(true);\r\n this.underLineState.set(true);\r\n break;\r\n case 'S':\r\n this.service.wysiwyg().strike(true);\r\n this.strikeLineState.set(true);\r\n break;\r\n case 'EM':\r\n this.service.wysiwyg().italic(true);\r\n this.italicState.set(true);\r\n break;\r\n case 'STRONG':\r\n this.service.wysiwyg().bold(true);\r\n this.boldState.set(true);\r\n break;\r\n\r\n default:\r\n if (this.boldState()) this.service.wysiwyg().bold(true);\r\n if (this.italicState()) this.service.wysiwyg().italic(true);\r\n if (this.strikeLineState()) this.service.wysiwyg().strike(true);\r\n if (this.underLineState()) this.service.wysiwyg().underLine(true);\r\n }\r\n });\r\n },\r\n { allowSignalWrites: true },\r\n );\r\n }\r\n\r\n /** @ignore */\r\n protected bold() {\r\n if (this.boldState()) {\r\n this.service.wysiwyg().bold(false);\r\n this.boldState.set(false);\r\n } else {\r\n this.service.wysiwyg().bold(true);\r\n this.boldState.set(true);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected italic() {\r\n if (this.italicState()) {\r\n this.service.wysiwyg().italic(false);\r\n this.italicState.set(false);\r\n } else {\r\n this.service.wysiwyg().italic(true);\r\n this.italicState.set(true);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected underLine() {\r\n if (this.underLineState()) {\r\n this.service.wysiwyg().underLine(false);\r\n this.underLineState.set(false);\r\n } else {\r\n this.service.wysiwyg().underLine(true);\r\n this.underLineState.set(true);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected strike() {\r\n if (this.strikeLineState()) {\r\n this.service.wysiwyg().strike(false);\r\n this.strikeLineState.set(false);\r\n } else {\r\n this.service.wysiwyg().strike(true);\r\n this.strikeLineState.set(true);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected fontSizeHandler(e: 'medium' | 'small' | 'large' | 'huge') {\r\n const range = this.service.wysiwyg()?.quillObj().getSelection();\r\n if (!range?.length) return;\r\n\r\n if (e === 'medium') {\r\n this.service.wysiwyg().fontSize(false, range);\r\n this.selectedFont.set('medium');\r\n } else {\r\n this.service.wysiwyg().fontSize(e, range);\r\n this.selectedFont.set(e);\r\n }\r\n }\r\n}\r\n","<div class=\"ax-wysiwyg-font-style-container\">\n <ax-button (click)=\"bold()\" look=\"blank\" [selected]=\"boldState() ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-bold\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"italic()\" look=\"blank\" [selected]=\"italicState() ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-italic\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"underLine()\" look=\"blank\" [selected]=\"underLineState() ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-under-line\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"strike()\" look=\"blank\" [selected]=\"strikeLineState() ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-strike\"></ax-icon>\n </ax-button>\n\n <ax-select-box\n [look]=\"this.parent.look\"\n (ngModelChange)=\"fontSizeHandler($event)\"\n [ngModel]=\"selectedFont()\"\n [dataSource]=\"['small', 'medium', 'large', 'huge']\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n</div>\n","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXWysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-history',\n templateUrl: './wysiwyg-history.component.html',\n styleUrl: './wysiwyg-history.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXWysiwygHistoryComponent {\n /** @ignore */\n service = inject(AXWysiwygService);\n\n /** @ignore */\n protected undo() {\n this.service.wysiwyg().undo();\n }\n\n /** @ignore */\n protected redo() {\n this.service.wysiwyg().redo();\n }\n}\n","<ax-button class=\"\" (click)=\"undo()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n\n<ax-button class=\"\" (click)=\"redo()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-redo\"></ax-icon>\n</ax-button>\n","import { AXPlacement } from '@acorex/components/common';\nimport { AXPopoverCloseTrigger, AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { AXWysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-insert',\n templateUrl: './wysiwyg-insert.component.html',\n styleUrl: './wysiwyg-insert.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXWysiwygInsertComponent {\n /** @ignore */\n service = inject(AXWysiwygService);\n\n /** @ignore */\n textBoxOptions = {\n text: '',\n placeholder: 'Enter yor url ...',\n size: 'ax-sm',\n };\n\n /** @ignore */\n protected popoverOption: {\n openOn: AXPopoverOpenTrigger;\n closeOn: AXPopoverCloseTrigger;\n placement: AXPlacement;\n offsetX: number;\n offsetY: number;\n } = {\n openOn: 'click',\n closeOn: 'clickOut',\n placement: 'top',\n offsetX: 0,\n offsetY: 0,\n };\n\n /** @ignore */\n protected submitLink() {\n this.service.wysiwyg().addImage(this.textBoxOptions.text);\n }\n}\n","<ax-button #linkBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-image\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"linkBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane ax-insert-container\">\n <ax-text-box\n class=\"{{ textBoxOptions.size }}\"\n [(ngModel)]=\"textBoxOptions.text\"\n [placeholder]=\"textBoxOptions.placeholder\"\n >\n <ax-suffix>\n <ax-button (click)=\"submitLink()\" class=\"ax-sm\" color=\"secondary\" text=\"Add\"> </ax-button>\n </ax-suffix>\n </ax-text-box>\n </div>\n</ax-popover>\n","import { Component, effect, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXWysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-list',\n templateUrl: './wysiwyg-list.component.html',\n styleUrl: './wysiwyg-list.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXWysiwygListComponent {\n /** @ignore */\n service = inject(AXWysiwygService);\n\n /** @ignore */\n protected listState = signal('');\n\n /** @ignore */\n constructor() {\n effect(\n () => {\n if (!this.service.wysiwyg()) return;\n switch (this.service.currentSelectedElemList()) {\n case 'ordered':\n this.service.wysiwyg().list('ordered');\n this.listState.set('ordered');\n break;\n case 'bullet':\n this.service.wysiwyg().list('bullet');\n this.listState.set('bullet');\n break;\n default:\n this.service.wysiwyg().list('');\n this.listState.set('');\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n /** @ignore */\n protected orderList() {\n if (!this.listState() || this.listState() === 'bullet') {\n this.service.wysiwyg().list('ordered');\n this.listState.set('ordered');\n } else {\n this.service.wysiwyg().list('');\n this.listState.set('');\n }\n }\n\n /** @ignore */\n protected unOrderList() {\n if (!this.listState() || this.listState() === 'ordered') {\n this.service.wysiwyg().list('bullet');\n this.listState.set('bullet');\n } else {\n this.service.wysiwyg().list('');\n this.listState.set('');\n }\n }\n}\n","<ax-button (click)=\"orderList()\" look=\"blank\" [selected]=\"listState() === 'ordered' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-order-list\"></ax-icon>\n</ax-button>\n\n<ax-button (click)=\"unOrderList()\" look=\"blank\" [selected]=\"listState() === 'bullet' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-un-order-list\"></ax-icon>\n</ax-button>\n","import { Component, HostBinding, HostListener, inject, input, ViewEncapsulation } from '@angular/core';\nimport { AXWysiwygService } from '../wysiwyg.service';\n\n/**\n * @category Components\n * A component for viewing WYSIWYG content.\n */\n@Component({\n selector: 'ax-wysiwyg-view',\n templateUrl: './wysiwyg-view.component.html',\n styleUrl: './wysiwyg-view.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXWysiwygViewComponent {\n classes = input<string>('', { alias: 'class' });\n\n /** @ignore */\n protected wysiwygService = inject(AXWysiwygService);\n\n @HostBinding('class')\n get __hostClass(): string {\n return `${this.classes()}`;\n }\n\n @HostListener('keydown.Backspace', ['$event'])\n protected onKeydownHandler(e: any) {\n if (e.target.firstChild.nodeName === 'P') {\n this.wysiwygService.currentSelectedElemList.set('');\n }\n }\n\n @HostListener('click', ['$event'])\n protected editorStateHandler(e: any) {\n this.wysiwygService.currentSelectedElemAlign.set(e.target.classList.value);\n this.wysiwygService.currentSelectedElemList.set(e.target.dataset.list);\n this.wysiwygService.currentSelectedElemArray.set([\n e.target.nodeName,\n e.target.parentElement.nodeName,\n e.target.parentElement.parentElement.nodeName,\n e.target.parentElement.parentElement.parentElement.nodeName,\n e.target.classList.value,\n ]);\n }\n}\n","\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXWysiwygContainerComponent } from './wysiwyg/wysiwyg-container/wysiwyg-container.component';\n\nimport { AXColorPaletteModule } from '@acorex/components/color-palette';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXWysiwygToolbarComponent } from './wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component';\nimport { AXWysiwygAlignmentComponent } from './wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component';\nimport { AXWysiwygColorsComponent } from './wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component';\nimport { AXWysiwygFontStyleComponent } from './wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component';\nimport { AXWysiwygHistoryComponent } from './wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component';\nimport { AXWysiwygInsertComponent } from './wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component';\nimport { AXWysiwygListComponent } from './wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component';\nimport { AXWysiwygViewComponent } from './wysiwyg/wysiwyg-view/wysiwyg-view.component';\nimport { AXWysiwygService } from './wysiwyg/wysiwyg.service';\n\nconst COMPONENT = [\n AXWysiwygContainerComponent,\n AXWysiwygViewComponent,\n AXWysiwygToolbarComponent,\n AXWysiwygAlignmentComponent,\n AXWysiwygColorsComponent,\n AXWysiwygFontStyleComponent,\n AXWysiwygHistoryComponent,\n AXWysiwygInsertComponent,\n AXWysiwygListComponent,\n];\n\nconst MODULES = [AXButtonModule, AXDecoratorModule, AXSelectBoxModule, FormsModule, AXColorPaletteModule, AXPopoverModule, AXTextBoxModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [AXWysiwygService],\n})\nexport class AXWysiwygModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i5","i4"],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@acorex/components",
|
3
|
-
"version": "18.12.
|
3
|
+
"version": "18.12.5",
|
4
4
|
"peerDependencies": {
|
5
5
|
"@angular/common": ">=18.2.0",
|
6
6
|
"@angular/core": ">=18.2.0",
|
@@ -38,36 +38,36 @@
|
|
38
38
|
"esm": "./esm2022/alert/acorex-components-alert.mjs",
|
39
39
|
"default": "./fesm2022/acorex-components-alert.mjs"
|
40
40
|
},
|
41
|
-
"./audio-wave": {
|
42
|
-
"types": "./audio-wave/index.d.ts",
|
43
|
-
"esm2022": "./esm2022/audio-wave/acorex-components-audio-wave.mjs",
|
44
|
-
"esm": "./esm2022/audio-wave/acorex-components-audio-wave.mjs",
|
45
|
-
"default": "./fesm2022/acorex-components-audio-wave.mjs"
|
46
|
-
},
|
47
41
|
"./avatar": {
|
48
42
|
"types": "./avatar/index.d.ts",
|
49
43
|
"esm2022": "./esm2022/avatar/acorex-components-avatar.mjs",
|
50
44
|
"esm": "./esm2022/avatar/acorex-components-avatar.mjs",
|
51
45
|
"default": "./fesm2022/acorex-components-avatar.mjs"
|
52
46
|
},
|
47
|
+
"./audio-wave": {
|
48
|
+
"types": "./audio-wave/index.d.ts",
|
49
|
+
"esm2022": "./esm2022/audio-wave/acorex-components-audio-wave.mjs",
|
50
|
+
"esm": "./esm2022/audio-wave/acorex-components-audio-wave.mjs",
|
51
|
+
"default": "./fesm2022/acorex-components-audio-wave.mjs"
|
52
|
+
},
|
53
53
|
"./badge": {
|
54
54
|
"types": "./badge/index.d.ts",
|
55
55
|
"esm2022": "./esm2022/badge/acorex-components-badge.mjs",
|
56
56
|
"esm": "./esm2022/badge/acorex-components-badge.mjs",
|
57
57
|
"default": "./fesm2022/acorex-components-badge.mjs"
|
58
58
|
},
|
59
|
-
"./breadcrumbs": {
|
60
|
-
"types": "./breadcrumbs/index.d.ts",
|
61
|
-
"esm2022": "./esm2022/breadcrumbs/acorex-components-breadcrumbs.mjs",
|
62
|
-
"esm": "./esm2022/breadcrumbs/acorex-components-breadcrumbs.mjs",
|
63
|
-
"default": "./fesm2022/acorex-components-breadcrumbs.mjs"
|
64
|
-
},
|
65
59
|
"./bottom-navigation": {
|
66
60
|
"types": "./bottom-navigation/index.d.ts",
|
67
61
|
"esm2022": "./esm2022/bottom-navigation/acorex-components-bottom-navigation.mjs",
|
68
62
|
"esm": "./esm2022/bottom-navigation/acorex-components-bottom-navigation.mjs",
|
69
63
|
"default": "./fesm2022/acorex-components-bottom-navigation.mjs"
|
70
64
|
},
|
65
|
+
"./breadcrumbs": {
|
66
|
+
"types": "./breadcrumbs/index.d.ts",
|
67
|
+
"esm2022": "./esm2022/breadcrumbs/acorex-components-breadcrumbs.mjs",
|
68
|
+
"esm": "./esm2022/breadcrumbs/acorex-components-breadcrumbs.mjs",
|
69
|
+
"default": "./fesm2022/acorex-components-breadcrumbs.mjs"
|
70
|
+
},
|
71
71
|
"./button": {
|
72
72
|
"types": "./button/index.d.ts",
|
73
73
|
"esm2022": "./esm2022/button/acorex-components-button.mjs",
|
@@ -218,12 +218,6 @@
|
|
218
218
|
"esm": "./esm2022/image-editor/acorex-components-image-editor.mjs",
|
219
219
|
"default": "./fesm2022/acorex-components-image-editor.mjs"
|
220
220
|
},
|
221
|
-
"./label": {
|
222
|
-
"types": "./label/index.d.ts",
|
223
|
-
"esm2022": "./esm2022/label/acorex-components-label.mjs",
|
224
|
-
"esm": "./esm2022/label/acorex-components-label.mjs",
|
225
|
-
"default": "./fesm2022/acorex-components-label.mjs"
|
226
|
-
},
|
227
221
|
"./list": {
|
228
222
|
"types": "./list/index.d.ts",
|
229
223
|
"esm2022": "./esm2022/list/acorex-components-list.mjs",
|
@@ -236,6 +230,12 @@
|
|
236
230
|
"esm": "./esm2022/loading/acorex-components-loading.mjs",
|
237
231
|
"default": "./fesm2022/acorex-components-loading.mjs"
|
238
232
|
},
|
233
|
+
"./label": {
|
234
|
+
"types": "./label/index.d.ts",
|
235
|
+
"esm2022": "./esm2022/label/acorex-components-label.mjs",
|
236
|
+
"esm": "./esm2022/label/acorex-components-label.mjs",
|
237
|
+
"default": "./fesm2022/acorex-components-label.mjs"
|
238
|
+
},
|
239
239
|
"./loading-dialog": {
|
240
240
|
"types": "./loading-dialog/index.d.ts",
|
241
241
|
"esm2022": "./esm2022/loading-dialog/acorex-components-loading-dialog.mjs",
|
@@ -458,18 +458,18 @@
|
|
458
458
|
"esm": "./esm2022/text-box/acorex-components-text-box.mjs",
|
459
459
|
"default": "./fesm2022/acorex-components-text-box.mjs"
|
460
460
|
},
|
461
|
-
"./time-line": {
|
462
|
-
"types": "./time-line/index.d.ts",
|
463
|
-
"esm2022": "./esm2022/time-line/acorex-components-time-line.mjs",
|
464
|
-
"esm": "./esm2022/time-line/acorex-components-time-line.mjs",
|
465
|
-
"default": "./fesm2022/acorex-components-time-line.mjs"
|
466
|
-
},
|
467
461
|
"./toast": {
|
468
462
|
"types": "./toast/index.d.ts",
|
469
463
|
"esm2022": "./esm2022/toast/acorex-components-toast.mjs",
|
470
464
|
"esm": "./esm2022/toast/acorex-components-toast.mjs",
|
471
465
|
"default": "./fesm2022/acorex-components-toast.mjs"
|
472
466
|
},
|
467
|
+
"./time-line": {
|
468
|
+
"types": "./time-line/index.d.ts",
|
469
|
+
"esm2022": "./esm2022/time-line/acorex-components-time-line.mjs",
|
470
|
+
"esm": "./esm2022/time-line/acorex-components-time-line.mjs",
|
471
|
+
"default": "./fesm2022/acorex-components-time-line.mjs"
|
472
|
+
},
|
473
473
|
"./tooltip": {
|
474
474
|
"types": "./tooltip/index.d.ts",
|
475
475
|
"esm2022": "./esm2022/tooltip/acorex-components-tooltip.mjs",
|
@@ -24,11 +24,11 @@ export declare class AXWysiwygContainerComponent extends AXWysiwygContainerCompo
|
|
24
24
|
*
|
25
25
|
*/
|
26
26
|
placeHolder: import("@angular/core").InputSignal<string>;
|
27
|
-
constructor();
|
28
27
|
/** @ignore */
|
29
28
|
protected changeHandler(): void;
|
30
29
|
/** @ignore */
|
31
30
|
ngOnDestroy(): void;
|
31
|
+
setContent(e: string): void;
|
32
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXWysiwygContainerComponent, never>;
|
33
33
|
static ɵcmp: i0.ɵɵComponentDeclaration<AXWysiwygContainerComponent, "ax-wysiwyg-container", never, { "look": { "alias": "look"; "required": false; }; "placeHolder": { "alias": "placeHolder"; "required": false; "isSignal": true; }; }, { "onValueChanged": "onValueChanged"; }, never, ["*", "ax-validation-rule"], false, never>;
|
34
34
|
}
|