diff --git a/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.js b/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.js index 31476373b..6e495b84d 100644 --- a/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.js +++ b/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.js @@ -44,5431 +44,5536 @@ }; } - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var TopToolbarComponent = /** @class */ (function () { - function TopToolbarComponent() { - } - TopToolbarComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-top-toolbar', - template: "
\n
\n \n
\n
\n", - styles: [".top-toolbar{width:100%;height:60px;z-index:999;display:flex;align-items:center}.tools{width:100%;height:100%;display:flex;align-items:center}@media (max-width:1037px){.top-toolbar{height:60px}.tools{height:100%;overflow-x:auto;overflow-scrolling:touch;display:flex;align-items:center;transition:.3s ease-in-out;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.tools::-webkit-scrollbar{width:0;height:0;background-color:#3e4e5a}}"] - }] } - ]; - /** @nocollapse */ - TopToolbarComponent.ctorParameters = function () { return []; }; - return TopToolbarComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TopToolbarComponent = /** @class */ (function () { + function TopToolbarComponent() { + } + TopToolbarComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-top-toolbar', + template: "
\r\n
\r\n \r\n
\r\n
\r\n", + styles: [".top-toolbar{width:100%;height:60px;z-index:999;display:flex;align-items:center}.tools{width:100%;height:100%;display:flex;align-items:center}@media (max-width:1037px){.top-toolbar{height:60px}.tools{height:100%;overflow-x:auto;overflow-scrolling:touch;display:flex;align-items:center;transition:.3s ease-in-out;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.tools::-webkit-scrollbar{width:0;height:0;background-color:#3e4e5a}}"] + }] } + ]; + /** @nocollapse */ + TopToolbarComponent.ctorParameters = function () { return []; }; + return TopToolbarComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var SidePanelComponent = /** @class */ (function () { - function SidePanelComponent() { - this.hideSidePanel = new core.EventEmitter(); - } - /** - * @return {?} - */ - SidePanelComponent.prototype.openSidePanel = /** - * @return {?} - */ - function () { - this.hideSidePanel.emit(true); - }; - SidePanelComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-side-panel', - template: "
\n
\n \n
{{title}}
\n
\n \n
\n
\n
\n \n
\n
\n", - styles: [".gd-side-panel-wrapper{margin-right:0;width:334px;z-index:999;background-color:#fff;transition:margin-right .2s;display:flex;flex-flow:column;height:100vh}.gd-side-panel-wrapper .gd-side-panel-header{height:60px;background-color:#222e35;display:flex;flex-direction:row;flex-wrap:nowrap}.gd-side-panel-wrapper .gd-side-panel-header .icon{font-size:24px;color:#959da5;margin:12px 9px 18px 14px}.gd-side-panel-wrapper .gd-side-panel-header .title{font-size:14px;font-weight:700;color:rgba(237,240,242,.57);margin-top:20px;width:100%}.gd-side-panel-wrapper .gd-side-panel-header .close{font-size:24px!important;margin-top:12px}.gd-side-panel-wrapper .gd-side-panel-body{display:flex;flex-flow:column;overflow:visible;overflow-y:auto;overflow-x:hidden;height:100%}@media (max-width:1037px){.gd-side-panel-wrapper{width:100%;position:absolute;left:0;right:0;top:0;bottom:0}}"] - }] } - ]; - /** @nocollapse */ - SidePanelComponent.ctorParameters = function () { return []; }; - SidePanelComponent.propDecorators = { - title: [{ type: core.Input }], - icon: [{ type: core.Input }], - hideSidePanel: [{ type: core.Output }] - }; - return SidePanelComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var SidePanelComponent = /** @class */ (function () { + function SidePanelComponent() { + this.hideSidePanel = new core.EventEmitter(); + } + /** + * @return {?} + */ + SidePanelComponent.prototype.openSidePanel = /** + * @return {?} + */ + function () { + this.hideSidePanel.emit(true); + }; + SidePanelComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-side-panel', + template: "
\r\n
\r\n \r\n
{{title}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n", + styles: [".gd-side-panel-wrapper{margin-right:0;width:334px;z-index:999;background-color:#fff;transition:margin-right .2s;display:flex;flex-flow:column;height:100vh}.gd-side-panel-wrapper .gd-side-panel-header{height:60px;background-color:#222e35;display:flex;flex-direction:row;flex-wrap:nowrap}.gd-side-panel-wrapper .gd-side-panel-header .icon{font-size:24px;color:#959da5;margin:12px 9px 18px 14px}.gd-side-panel-wrapper .gd-side-panel-header .title{font-size:14px;font-weight:700;color:rgba(237,240,242,.57);margin-top:20px;width:100%}.gd-side-panel-wrapper .gd-side-panel-header .close{font-size:24px!important;margin-top:12px}.gd-side-panel-wrapper .gd-side-panel-body{display:flex;flex-flow:column;overflow:visible;overflow-y:auto;overflow-x:hidden;height:100%}@media (max-width:1037px){.gd-side-panel-wrapper{width:100%;position:absolute;left:0;right:0;top:0;bottom:0}}"] + }] } + ]; + /** @nocollapse */ + SidePanelComponent.ctorParameters = function () { return []; }; + SidePanelComponent.propDecorators = { + title: [{ type: core.Input }], + icon: [{ type: core.Input }], + hideSidePanel: [{ type: core.Output }] + }; + return SidePanelComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var ButtonComponent = /** @class */ (function () { - function ButtonComponent() { - this.iconOnly = true; - this.intent = 'default'; - this.disabled = false; - this.toggle = false; - this.showToolTip = false; - } - /** - * @return {?} - */ - ButtonComponent.prototype.iconButtonClass = /** - * @return {?} - */ - function () { - return this.iconOnly ? 'icon-button' : ''; - }; - /** - * @return {?} - */ - ButtonComponent.prototype.onHovering = /** - * @return {?} - */ - function () { - if (!this.disabled) { - this.className += ' active'; - } - this.showToolTip = true; - }; - /** - * @return {?} - */ - ButtonComponent.prototype.onUnhovering = /** - * @return {?} - */ - function () { - if (!this.disabled) { - this.className = this.className.replace(' active', ''); - } - this.showToolTip = false; - }; - ButtonComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-button', - template: "
\n \n \n
\n
\n", - styles: [".icon-button{padding:0!important;margin:0 10px}.button{padding:0 10px;font-size:14px;color:#959da5;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:37px;height:37px;text-align:center;position:relative;white-space:nowrap}.button.inactive{cursor:not-allowed;opacity:.4}.button.active *{color:#ccd0d4}.button.primary{background-color:#3e4e5a;color:#fff}.button.primary.active{color:#fff;background-color:#688296}.button.brand{background-color:#25c2d4;color:#fff}.button.brand.active{color:#fff;background-color:#688296}.button .text{font-size:13px;padding-left:10px}@media (max-width:1037px){.button{font-size:22px}.arrow-button{margin:5px}}"] - }] } - ]; - ButtonComponent.propDecorators = { - iconOnly: [{ type: core.Input }], - intent: [{ type: core.Input }], - disabled: [{ type: core.Input }], - icon: [{ type: core.Input }], - iconClass: [{ type: core.Input }], - tooltip: [{ type: core.Input }], - className: [{ type: core.Input }], - toggle: [{ type: core.Input }] - }; - return ButtonComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ButtonComponent = /** @class */ (function () { + function ButtonComponent() { + this.iconOnly = true; + this.intent = 'default'; + this.disabled = false; + this.toggle = false; + this.showToolTip = false; + } + /** + * @return {?} + */ + ButtonComponent.prototype.iconButtonClass = /** + * @return {?} + */ + function () { + return this.iconOnly ? 'icon-button' : ''; + }; + /** + * @return {?} + */ + ButtonComponent.prototype.onHovering = /** + * @return {?} + */ + function () { + if (!this.disabled) { + this.className += ' active'; + } + this.showToolTip = true; + }; + /** + * @return {?} + */ + ButtonComponent.prototype.onUnhovering = /** + * @return {?} + */ + function () { + if (!this.disabled) { + this.className = this.className.replace(' active', ''); + } + this.showToolTip = false; + }; + ButtonComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-button', + template: "
\r\n \r\n \r\n
\r\n
\r\n", + styles: [".icon-button{padding:0!important;margin:0 10px}.button{padding:0 10px;font-size:14px;color:#959da5;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:37px;height:37px;text-align:center;position:relative;white-space:nowrap}.button.inactive{cursor:not-allowed;opacity:.4}.button.active *{color:#ccd0d4}.button.primary{background-color:#3e4e5a;color:#fff}.button.primary.active{color:#fff;background-color:#688296}.button.brand{background-color:#25c2d4;color:#fff}.button.brand.active{color:#fff;background-color:#688296}.button .text{font-size:13px;padding-left:10px}@media (max-width:1037px){.button{font-size:22px}.arrow-button{margin:5px}}"] + }] } + ]; + ButtonComponent.propDecorators = { + iconOnly: [{ type: core.Input }], + intent: [{ type: core.Input }], + disabled: [{ type: core.Input }], + icon: [{ type: core.Input }], + iconClass: [{ type: core.Input }], + tooltip: [{ type: core.Input }], + className: [{ type: core.Input }], + toggle: [{ type: core.Input }] + }; + return ButtonComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var LogoComponent = /** @class */ (function () { - function LogoComponent() { - } - /** - * @return {?} - */ - LogoComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - LogoComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-logo', - template: "
\n \n \n
\n\n", - styles: [".logo{background-color:#25c2d4;height:60px;display:flex;align-items:center;justify-content:center}.text{color:#fff;font-size:15px;text-transform:uppercase;margin:0 14px}.icon{display:none;font-size:32px;color:rgba(255,255,255,.5);margin:14px}@media (max-width:1037px){.logo{width:60px;height:60px}.logo .text{display:none}.logo .icon{display:block}}"] - }] } - ]; - /** @nocollapse */ - LogoComponent.ctorParameters = function () { return []; }; - LogoComponent.propDecorators = { - logo: [{ type: core.Input }], - icon: [{ type: core.Input }] - }; - return LogoComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LogoComponent = /** @class */ (function () { + function LogoComponent() { + } + /** + * @return {?} + */ + LogoComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + LogoComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-logo', + template: "
\r\n \r\n \r\n
\r\n\r\n", + styles: [".logo{background-color:#25c2d4;height:60px;display:flex;align-items:center;justify-content:center}.text{color:#fff;font-size:15px;text-transform:uppercase;margin:0 14px}.icon{display:none;font-size:32px;color:rgba(255,255,255,.5);margin:14px}@media (max-width:1037px){.logo{width:60px;height:60px}.logo .text{display:none}.logo .icon{display:block}}"] + }] } + ]; + /** @nocollapse */ + LogoComponent.ctorParameters = function () { return []; }; + LogoComponent.propDecorators = { + logo: [{ type: core.Input }], + icon: [{ type: core.Input }] + }; + return LogoComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var TooltipComponent = /** @class */ (function () { - function TooltipComponent() { - this.visibility = 'hidden'; - } - Object.defineProperty(TooltipComponent.prototype, "show", { - set: /** - * @param {?} value - * @return {?} - */ - function (value) { - this.visibility = value ? 'shown' : 'hidden'; - }, - enumerable: true, - configurable: true - }); - /** - * @return {?} - */ - TooltipComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - TooltipComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-tooltip', - template: "\n", - styles: [".tooltip{position:absolute;margin-top:37px;width:100px;background-color:#000;color:#fff;text-align:center;border-radius:0;padding:5px 0;z-index:1;margin-left:-66px;font-size:10px;height:11px;line-height:11px}.tooltip.hidden{visibility:hidden}.tooltip.shown{visibility:visible}.shown:after{content:\" \";position:absolute;bottom:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-bottom-color:#000}"] - }] } - ]; - /** @nocollapse */ - TooltipComponent.ctorParameters = function () { return []; }; - TooltipComponent.propDecorators = { - text: [{ type: core.Input }], - show: [{ type: core.Input }] - }; - return TooltipComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TooltipComponent = /** @class */ (function () { + function TooltipComponent() { + this.visibility = 'hidden'; + } + Object.defineProperty(TooltipComponent.prototype, "show", { + set: /** + * @param {?} value + * @return {?} + */ + function (value) { + this.visibility = value ? 'shown' : 'hidden'; + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + TooltipComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + TooltipComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-tooltip', + template: "\r\n", + styles: [".tooltip{position:absolute;margin-top:37px;width:100px;background-color:#000;color:#fff;text-align:center;border-radius:0;padding:5px 0;z-index:1;margin-left:-66px;font-size:10px;height:11px;line-height:11px}.tooltip.hidden{visibility:hidden}.tooltip.shown{visibility:visible}.shown:after{content:\" \";position:absolute;bottom:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-bottom-color:#000}"] + }] } + ]; + /** @nocollapse */ + TooltipComponent.ctorParameters = function () { return []; }; + TooltipComponent.propDecorators = { + text: [{ type: core.Input }], + show: [{ type: core.Input }] + }; + return TooltipComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var Api = /** @class */ (function () { - function Api() { - } - Api.VIEWER_APP = '/viewer'; - Api.EDITOR_APP = '/editor'; - Api.COMPARISON_APP = '/comparison'; - Api.CONVERSION_APP = '/conversion'; - Api.DEFAULT_API_ENDPOINT = window.location.href; - Api.LOAD_FILE_TREE = '/loadFileTree'; - Api.LOAD_CONFIG = '/loadConfig'; - Api.LOAD_DOCUMENT_DESCRIPTION = '/loadDocumentDescription'; - Api.LOAD_DOCUMENT_PAGE = '/loadDocumentPage'; - Api.ROTATE_DOCUMENT_PAGE = '/rotateDocumentPages'; - Api.UPLOAD_DOCUMENTS = '/uploadDocument'; - Api.DOWNLOAD_DOCUMENTS = '/downloadDocument'; - Api.LOAD_PRINT = '/loadPrint'; - Api.LOAD_PRINT_PDF = '/printPdf'; - Api.LOAD_THUMBNAILS = '/loadThumbnails'; - Api.LOAD_FORMATS = '/loadFormats'; - Api.SAVE_FILE = '/saveFile'; - Api.COMPARE_FILES = '/compare'; - Api.CONVERT_FILE = '/convert'; - Api.httpOptionsJson = { - headers: new http.HttpHeaders({ - 'Content-Type': 'application/json', - }) - }; - Api.httpOptionsJsonResponseTypeBlob = { - headers: new http.HttpHeaders({ - 'Content-Type': 'application/json', - }), - responseType: (/** @type {?} */ ('blob')) - }; - return Api; - }()); - var ConfigService = /** @class */ (function () { - function ConfigService() { - this.apiEndpoint = Api.DEFAULT_API_ENDPOINT; - } - Object.defineProperty(ConfigService.prototype, "apiEndpoint", { - get: /** - * @return {?} - */ - function () { - return this._apiEndpoint; - }, - set: /** - * @param {?} url - * @return {?} - */ - function (url) { - this._apiEndpoint = url && url.trim().endsWith('/') ? url.substring(0, url.length - 1) : url; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} app - * @return {?} - */ - ConfigService.prototype.getConfigEndpoint = /** - * @param {?} app - * @return {?} - */ - function (app) { - return (this.apiEndpoint.endsWith(app) ? this.apiEndpoint : this.apiEndpoint + app) + Api.LOAD_CONFIG; - }; - /** - * @return {?} - */ - ConfigService.prototype.getViewerApiEndpoint = /** - * @return {?} - */ - function () { - return this._apiEndpoint.endsWith(Api.VIEWER_APP) ? this._apiEndpoint : this._apiEndpoint + Api.VIEWER_APP; - }; - /** - * @return {?} - */ - ConfigService.prototype.getEditorApiEndpoint = /** - * @return {?} - */ - function () { - return this._apiEndpoint.trim().endsWith(Api.EDITOR_APP) ? this._apiEndpoint : this._apiEndpoint + Api.EDITOR_APP; - }; - /** - * @return {?} - */ - ConfigService.prototype.getComparisonApiEndpoint = /** - * @return {?} - */ - function () { - return this._apiEndpoint.trim().endsWith(Api.COMPARISON_APP) ? this._apiEndpoint : this._apiEndpoint + Api.COMPARISON_APP; - }; - /** - * @return {?} - */ - ConfigService.prototype.getConversionApiEndpoint = /** - * @return {?} - */ - function () { - return this._apiEndpoint.trim().endsWith(Api.CONVERSION_APP) ? this._apiEndpoint : this._apiEndpoint + Api.CONVERSION_APP; - }; - ConfigService.decorators = [ - { type: core.Injectable } - ]; - /** @nocollapse */ - ConfigService.ctorParameters = function () { return []; }; - return ConfigService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var Api = /** @class */ (function () { + function Api() { + } + Api.VIEWER_APP = '/viewer'; + Api.EDITOR_APP = '/editor'; + Api.COMPARISON_APP = '/comparison'; + Api.CONVERSION_APP = '/conversion'; + Api.DEFAULT_API_ENDPOINT = window.location.href; + Api.LOAD_FILE_TREE = '/loadFileTree'; + Api.LOAD_CONFIG = '/loadConfig'; + Api.LOAD_DOCUMENT_DESCRIPTION = '/loadDocumentDescription'; + Api.LOAD_DOCUMENT_PAGE = '/loadDocumentPage'; + Api.ROTATE_DOCUMENT_PAGE = '/rotateDocumentPages'; + Api.UPLOAD_DOCUMENTS = '/uploadDocument'; + Api.DOWNLOAD_DOCUMENTS = '/downloadDocument'; + Api.LOAD_PRINT = '/loadPrint'; + Api.LOAD_PRINT_PDF = '/printPdf'; + Api.LOAD_THUMBNAILS = '/loadThumbnails'; + Api.LOAD_FORMATS = '/loadFormats'; + Api.SAVE_FILE = '/saveFile'; + Api.COMPARE_FILES = '/compare'; + Api.CONVERT_FILE = '/convert'; + Api.httpOptionsJson = { + headers: new http.HttpHeaders({ + 'Content-Type': 'application/json', + }) + }; + Api.httpOptionsJsonResponseTypeBlob = { + headers: new http.HttpHeaders({ + 'Content-Type': 'application/json', + }), + responseType: (/** @type {?} */ ('blob')) + }; + return Api; + }()); + var ConfigService = /** @class */ (function () { + function ConfigService() { + this.apiEndpoint = Api.DEFAULT_API_ENDPOINT; + } + Object.defineProperty(ConfigService.prototype, "apiEndpoint", { + get: /** + * @return {?} + */ + function () { + return this._apiEndpoint; + }, + set: /** + * @param {?} url + * @return {?} + */ + function (url) { + this._apiEndpoint = url && url.trim().endsWith('/') ? url.substring(0, url.length - 1) : url; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} app + * @return {?} + */ + ConfigService.prototype.getConfigEndpoint = /** + * @param {?} app + * @return {?} + */ + function (app) { + return (this.apiEndpoint.endsWith(app) ? this.apiEndpoint : this.apiEndpoint + app) + Api.LOAD_CONFIG; + }; + /** + * @return {?} + */ + ConfigService.prototype.getViewerApiEndpoint = /** + * @return {?} + */ + function () { + return this._apiEndpoint.endsWith(Api.VIEWER_APP) ? this._apiEndpoint : this._apiEndpoint + Api.VIEWER_APP; + }; + /** + * @return {?} + */ + ConfigService.prototype.getEditorApiEndpoint = /** + * @return {?} + */ + function () { + return this._apiEndpoint.trim().endsWith(Api.EDITOR_APP) ? this._apiEndpoint : this._apiEndpoint + Api.EDITOR_APP; + }; + /** + * @return {?} + */ + ConfigService.prototype.getComparisonApiEndpoint = /** + * @return {?} + */ + function () { + return this._apiEndpoint.trim().endsWith(Api.COMPARISON_APP) ? this._apiEndpoint : this._apiEndpoint + Api.COMPARISON_APP; + }; + /** + * @return {?} + */ + ConfigService.prototype.getConversionApiEndpoint = /** + * @return {?} + */ + function () { + return this._apiEndpoint.trim().endsWith(Api.CONVERSION_APP) ? this._apiEndpoint : this._apiEndpoint + Api.CONVERSION_APP; + }; + ConfigService.decorators = [ + { type: core.Injectable } + ]; + /** @nocollapse */ + ConfigService.ctorParameters = function () { return []; }; + return ConfigService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var CommonModals = /** @class */ (function () { - function CommonModals() { - } - CommonModals.PasswordRequired = "gd-password-required"; - CommonModals.ErrorMessage = "gd-error-message"; - CommonModals.BrowseFiles = "gd-browse-files"; - CommonModals.CreateDocument = "gd-create-document"; - CommonModals.OperationSuccess = "gd-success-modal"; - return CommonModals; - }()); - var ModalService = /** @class */ (function () { - function ModalService() { - this.modals = []; - } - /** - * @param {?} modal - * @return {?} - */ - ModalService.prototype.add = /** - * @param {?} modal - * @return {?} - */ - function (modal) { - this.modals.push(modal); - }; - /** - * @param {?} id - * @return {?} - */ - ModalService.prototype.remove = /** - * @param {?} id - * @return {?} - */ - function (id) { - this.modals = this.modals.filter((/** - * @param {?} x - * @return {?} - */ - function (x) { return x.id !== id; })); - }; - /** - * @param {?} id - * @return {?} - */ - ModalService.prototype.open = /** - * @param {?} id - * @return {?} - */ - function (id) { - /** @type {?} */ - var modal = this.modals.filter((/** - * @param {?} x - * @return {?} - */ - function (x) { return x.id === id; }))[0]; - if (modal) { - modal.open(); - } - }; - /** - * @param {?} id - * @return {?} - */ - ModalService.prototype.close = /** - * @param {?} id - * @return {?} - */ - function (id) { - /** @type {?} */ - var modal = this.modals.filter((/** - * @param {?} x - * @return {?} - */ - function (x) { return x.id === id; }))[0]; - if (modal) { - modal.close(); - } - }; - return ModalService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var CommonModals = /** @class */ (function () { + function CommonModals() { + } + CommonModals.PasswordRequired = "gd-password-required"; + CommonModals.ErrorMessage = "gd-error-message"; + CommonModals.BrowseFiles = "gd-browse-files"; + CommonModals.CreateDocument = "gd-create-document"; + CommonModals.OperationSuccess = "gd-success-modal"; + return CommonModals; + }()); + var ModalService = /** @class */ (function () { + function ModalService() { + this.modals = []; + } + /** + * @param {?} modal + * @return {?} + */ + ModalService.prototype.add = /** + * @param {?} modal + * @return {?} + */ + function (modal) { + this.modals.push(modal); + }; + /** + * @param {?} id + * @return {?} + */ + ModalService.prototype.remove = /** + * @param {?} id + * @return {?} + */ + function (id) { + this.modals = this.modals.filter((/** + * @param {?} x + * @return {?} + */ + function (x) { return x.id !== id; })); + }; + /** + * @param {?} id + * @return {?} + */ + ModalService.prototype.open = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var modal = this.modals.filter((/** + * @param {?} x + * @return {?} + */ + function (x) { return x.id === id; }))[0]; + if (modal) { + modal.open(); + } + }; + /** + * @param {?} id + * @return {?} + */ + ModalService.prototype.close = /** + * @param {?} id + * @return {?} + */ + function (id) { + /** @type {?} */ + var modal = this.modals.filter((/** + * @param {?} x + * @return {?} + */ + function (x) { return x.id === id; }))[0]; + if (modal) { + modal.close(); + } + }; + return ModalService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var ModalComponent = /** @class */ (function () { - function ModalComponent(modalService, el) { - this.modalService = modalService; - this.visible = new core.EventEmitter(); - this.visibility = false; - this.element = el.nativeElement; - } - /** - * @return {?} - */ - ModalComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - if (!this.id) { - console.error('modal must have an id'); - return; - } - document.body.appendChild(this.element); - this.modalService.add(this); - }; - /** - * @return {?} - */ - ModalComponent.prototype.ngOnDestroy = /** - * @return {?} - */ - function () { - this.modalService.remove(this.id); - this.element.remove(); - }; - /** - * @return {?} - */ - ModalComponent.prototype.open = /** - * @return {?} - */ - function () { - this.visibility = true; - this.visible.emit(true); - }; - /** - * @return {?} - */ - ModalComponent.prototype.close = /** - * @return {?} - */ - function () { - event.preventDefault(); - event.stopPropagation(); - this.visibility = false; - this.visible.emit(false); - }; - /** - * @param {?} $event - * @return {?} - */ - ModalComponent.prototype.onClose = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - $event.stopPropagation(); - if ($event && $event.target && ((/** @type {?} */ ($event.target))).id === 'modalDialog') { - this.close(); - } - }; - ModalComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-modal', - template: "
\n
\n
\n
\n\n
\n
×
\n

{{title}}

\n
\n\n
\n \n
\n\n
\n\n
\n
\n
\n\n", - styles: ["@import url(https://fonts.googleapis.com/css?family=Montserrat&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.gd-modal{overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0;background-color:rgba(0,0,0,.5)}.gd-modal-dialog{box-shadow:#0005 0 0 10px;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1051}.gd-modal-content{background-color:#fff;height:100%;display:flex;flex-direction:column}.gd-modal-header{height:60px;padding:0 12px 0 24px;background-color:#3e4e5a}.gd-modal-close{position:absolute;right:12px;top:12px;cursor:pointer;color:#fff;width:37px;height:37px;text-align:center}.gd-modal-close span{font-size:18px;font-weight:900;height:19px;width:10px;line-height:36px}.gd-modal-title{font-size:16px;font-weight:400;padding-top:17px;padding-bottom:22px;margin:0;color:#fff}.gd-modal-body{background-color:#fff;overflow:hidden;overflow-y:auto;height:calc(100% - 75px)}.gd-modal-footer{height:auto}.gd-modal-footer>.btn{float:right;margin:20px 15px;padding:10px 20px;cursor:pointer;font-size:12px}@media (max-width:1037px){.gd-modal-dialog{width:100%;height:100%}.gd-modal-body{height:100%}}"] - }] } - ]; - /** @nocollapse */ - ModalComponent.ctorParameters = function () { return [ - { type: ModalService }, - { type: core.ElementRef } - ]; }; - ModalComponent.propDecorators = { - id: [{ type: core.Input }], - title: [{ type: core.Input }], - visible: [{ type: core.Output }] - }; - return ModalComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ModalComponent = /** @class */ (function () { + function ModalComponent(modalService, el) { + this.modalService = modalService; + this.visible = new core.EventEmitter(); + this.visibility = false; + this.element = el.nativeElement; + } + /** + * @return {?} + */ + ModalComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + if (!this.id) { + console.error('modal must have an id'); + return; + } + document.body.appendChild(this.element); + this.modalService.add(this); + }; + /** + * @return {?} + */ + ModalComponent.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { + this.modalService.remove(this.id); + this.element.remove(); + }; + /** + * @return {?} + */ + ModalComponent.prototype.open = /** + * @return {?} + */ + function () { + this.visibility = true; + this.visible.emit(true); + }; + /** + * @return {?} + */ + ModalComponent.prototype.close = /** + * @return {?} + */ + function () { + event.preventDefault(); + event.stopPropagation(); + this.visibility = false; + this.visible.emit(false); + }; + /** + * @param {?} $event + * @return {?} + */ + ModalComponent.prototype.onClose = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + $event.stopPropagation(); + if ($event && $event.target && ((/** @type {?} */ ($event.target))).id === 'modalDialog') { + this.close(); + } + }; + ModalComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-modal', + template: "
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
×
\r\n

{{title}}

\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n", + styles: ["@import url(https://fonts.googleapis.com/css?family=Montserrat&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.gd-modal{overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0;background-color:rgba(0,0,0,.5)}.gd-modal-dialog{box-shadow:#0005 0 0 10px;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1051}.gd-modal-content{background-color:#fff;height:100%;display:flex;flex-direction:column}.gd-modal-header{height:60px;padding:0 12px 0 24px;background-color:#3e4e5a}.gd-modal-close{position:absolute;right:12px;top:12px;cursor:pointer;color:#fff;width:37px;height:37px;text-align:center}.gd-modal-close span{font-size:18px;font-weight:900;height:19px;width:10px;line-height:36px}.gd-modal-title{font-size:16px;font-weight:400;padding-top:17px;padding-bottom:22px;margin:0;color:#fff}.gd-modal-body{background-color:#fff;overflow:hidden;overflow-y:auto;height:calc(100% - 75px)}.gd-modal-footer{height:auto}.gd-modal-footer>.btn{float:right;margin:20px 15px;padding:10px 20px;cursor:pointer;font-size:12px}@media (max-width:1037px){.gd-modal-dialog{width:100%;height:100%}.gd-modal-body{height:100%}}"] + }] } + ]; + /** @nocollapse */ + ModalComponent.ctorParameters = function () { return [ + { type: ModalService }, + { type: core.ElementRef } + ]; }; + ModalComponent.propDecorators = { + id: [{ type: core.Input }], + title: [{ type: core.Input }], + visible: [{ type: core.Output }] + }; + return ModalComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var PageModel = /** @class */ (function () { - function PageModel() { - } - return PageModel; - }()); - var RotatedPage = /** @class */ (function () { - function RotatedPage() { - } - return RotatedPage; - }()); - var FileCredentials = /** @class */ (function () { - function FileCredentials(guid, password) { - this.guid = guid; - this.password = password; - } - return FileCredentials; - }()); - var SaveFile = /** @class */ (function (_super) { - __extends(SaveFile, _super); - function SaveFile(guid, password, content) { - var _this = _super.call(this, guid, password) || this; - _this.content = content; - return _this; - } - return SaveFile; - }(FileCredentials)); - var FileDescription = /** @class */ (function () { - function FileDescription() { - this.printAllowed = true; - } - return FileDescription; - }()); - var FileModel = /** @class */ (function () { - function FileModel() { - } - return FileModel; - }()); - var HttpError = /** @class */ (function () { - function HttpError() { - } - HttpError.BadRequest = 400; - HttpError.Unauthorized = 401; - HttpError.Forbidden = 403; - HttpError.NotFound = 404; - HttpError.TimeOut = 408; - HttpError.Conflict = 409; - HttpError.InternalServerError = 500; - return HttpError; - }()); - var FileUtil = /** @class */ (function () { - function FileUtil() { - } - /** - * @param {?} filename - * @param {?} isDirectory - * @return {?} - */ - FileUtil.find = /** - * @param {?} filename - * @param {?} isDirectory - * @return {?} - */ - function (filename, isDirectory) { - if (filename && !isDirectory) { - /** @type {?} */ - var strings = filename.split('.'); - /** @type {?} */ - var name_1 = strings.pop().toLowerCase(); - if (typeof FileUtil.map[name_1] === "undefined") { - return strings.length > 0 ? FileUtil.map['unknown'] : FileUtil.map['folder']; - } - else { - return FileUtil.map[name_1]; - } - } - else { - return FileUtil.map['folder']; - } - }; - FileUtil.map = { - 'folder': { 'format': '', 'icon': 'folder' }, - 'pdf': { 'format': 'Portable Document Format', 'icon': 'file-pdf', 'unit': 'pt' }, - 'doc': { 'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt' }, - 'docx': { 'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt' }, - 'docm': { 'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt' }, - 'dot': { 'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt' }, - 'dotx': { 'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt' }, - 'dotm': { 'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt' }, - 'xls': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, - 'xlsx': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, - 'xlsm': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, - 'xlsb': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, - 'xls2003': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, - 'xltx': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, - 'xltm': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, - 'ppt': { 'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt' }, - 'pptx': { 'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt' }, - 'pps': { 'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt' }, - 'ppsx': { 'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt' }, - 'vsd': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, - 'vdx': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, - 'vss': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, - 'vsx': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, - 'vst': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, - 'vtx': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, - 'vsdx': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, - 'vdw': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, - 'vstx': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, - 'vssx': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, - 'mpp': { 'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt' }, - 'mpt': { 'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt' }, - 'msg': { 'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt' }, - 'eml': { 'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt' }, - 'emlx': { 'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt' }, - 'one': { 'format': 'Microsoft OneNote', 'icon': 'file-word', 'unit': 'pt' }, - 'odt': { 'format': 'Open Document Text', 'icon': 'file-word', 'unit': 'pt' }, - 'ott': { 'format': 'Open Document Text Template', 'icon': 'file-word', 'unit': 'pt' }, - 'ods': { 'format': 'Open Document Spreadsheet', 'icon': 'file-excel', 'unit': 'px' }, - 'odp': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, - 'otp': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, - 'ots': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, - 'potx': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, - 'potm': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, - 'pptm': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, - 'ppsm': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, - 'rtf': { 'format': 'Rich Text Format', 'icon': 'file-alt', 'unit': 'pt' }, - 'txt': { 'format': 'Plain Text File', 'icon': 'file-alt', 'unit': 'pt' }, - 'csv': { 'format': 'Comma-Separated Values', 'icon': 'file-excel', 'unit': 'px' }, - 'html': { 'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt' }, - 'mht': { 'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt' }, - 'mhtml': { 'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt' }, - 'xml': { 'format': 'Extensible Markup Language', 'icon': 'file-word', 'unit': 'pt' }, - 'xps': { 'format': 'XML Paper Specification', 'icon': 'file-word', 'unit': 'pt' }, - 'dxf': { 'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px' }, - 'dwg': { 'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px' }, - 'bmp': { 'format': 'Bitmap Picture', 'icon': 'file-image', 'unit': 'px' }, - 'gif': { 'format': 'Graphics Interchange Format', 'icon': 'file-image', 'unit': 'px' }, - 'jpg': { 'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px' }, - 'jpe': { 'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px' }, - 'jpeg': { 'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px' }, - 'jfif': { 'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px' }, - 'png': { 'format': 'Portable Network Graphics', 'icon': 'file-image', 'unit': 'px' }, - 'tiff': { 'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px' }, - 'tif': { 'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px' }, - 'psd': { 'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px' }, - 'svg': { 'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px' }, - 'jp2': { 'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px' }, - 'epub': { 'format': 'Electronic Publication', 'icon': 'file-pdf', 'unit': 'pt' }, - 'ico': { 'format': 'Windows Icon', 'icon': 'file-image', 'unit': 'px' }, - 'webp': { 'format': 'Compressed Image', 'icon': 'file-image', 'unit': 'px' }, - 'mobi': { 'format': 'Mobipocket eBook', 'icon': 'file-pdf', 'unit': 'pt' }, - 'tex': { 'format': 'LaTeX Source Document', 'icon': 'file-pdf', 'unit': 'pt' }, - 'djvu': { 'format': 'Multi-Layer Raster Image', 'icon': 'file-alt', 'unit': 'pt' }, - 'unknown': { 'format': 'This format is not supported', 'icon': 'file' }, - }; - return FileUtil; - }()); - var FileService = /** @class */ (function () { - function FileService() { - } - return FileService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PageModel = /** @class */ (function () { + function PageModel() { + } + return PageModel; + }()); + var RotatedPage = /** @class */ (function () { + function RotatedPage() { + } + return RotatedPage; + }()); + var FileCredentials = /** @class */ (function () { + function FileCredentials(guid, password) { + this.guid = guid; + this.password = password; + } + return FileCredentials; + }()); + var SaveFile = /** @class */ (function (_super) { + __extends(SaveFile, _super); + function SaveFile(guid, password, content) { + var _this = _super.call(this, guid, password) || this; + _this.content = content; + return _this; + } + return SaveFile; + }(FileCredentials)); + var FileDescription = /** @class */ (function () { + function FileDescription() { + this.printAllowed = true; + } + return FileDescription; + }()); + var FileModel = /** @class */ (function () { + function FileModel() { + } + return FileModel; + }()); + var HttpError = /** @class */ (function () { + function HttpError() { + } + HttpError.BadRequest = 400; + HttpError.Unauthorized = 401; + HttpError.Forbidden = 403; + HttpError.NotFound = 404; + HttpError.TimeOut = 408; + HttpError.Conflict = 409; + HttpError.InternalServerError = 500; + return HttpError; + }()); + var FileUtil = /** @class */ (function () { + function FileUtil() { + } + /** + * @param {?} filename + * @param {?} isDirectory + * @return {?} + */ + FileUtil.find = /** + * @param {?} filename + * @param {?} isDirectory + * @return {?} + */ + function (filename, isDirectory) { + if (filename && !isDirectory) { + /** @type {?} */ + var strings = filename.split('.'); + /** @type {?} */ + var name_1 = strings.pop().toLowerCase(); + if (typeof FileUtil.map[name_1] === "undefined") { + return strings.length > 0 ? FileUtil.map['unknown'] : FileUtil.map['folder']; + } + else { + return FileUtil.map[name_1]; + } + } + else { + return FileUtil.map['folder']; + } + }; + FileUtil.map = { + 'folder': { 'format': '', 'icon': 'folder' }, + 'pdf': { 'format': 'Portable Document Format', 'icon': 'file-pdf', 'unit': 'pt' }, + 'doc': { 'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt' }, + 'docx': { 'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt' }, + 'docm': { 'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt' }, + 'dot': { 'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt' }, + 'dotx': { 'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt' }, + 'dotm': { 'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt' }, + 'xls': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, + 'xlsx': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, + 'xlsm': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, + 'xlsb': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, + 'xls2003': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, + 'xltx': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, + 'xltm': { 'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px' }, + 'ppt': { 'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt' }, + 'pptx': { 'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt' }, + 'pps': { 'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt' }, + 'ppsx': { 'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt' }, + 'vsd': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, + 'vdx': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, + 'vss': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, + 'vsx': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, + 'vst': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, + 'vtx': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, + 'vsdx': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, + 'vdw': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, + 'vstx': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, + 'vssx': { 'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px' }, + 'mpp': { 'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt' }, + 'mpt': { 'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt' }, + 'msg': { 'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt' }, + 'eml': { 'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt' }, + 'emlx': { 'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt' }, + 'one': { 'format': 'Microsoft OneNote', 'icon': 'file-word', 'unit': 'pt' }, + 'odt': { 'format': 'Open Document Text', 'icon': 'file-word', 'unit': 'pt' }, + 'ott': { 'format': 'Open Document Text Template', 'icon': 'file-word', 'unit': 'pt' }, + 'ods': { 'format': 'Open Document Spreadsheet', 'icon': 'file-excel', 'unit': 'px' }, + 'odp': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, + 'otp': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, + 'ots': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, + 'potx': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, + 'potm': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, + 'pptm': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, + 'ppsm': { 'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt' }, + 'rtf': { 'format': 'Rich Text Format', 'icon': 'file-alt', 'unit': 'pt' }, + 'txt': { 'format': 'Plain Text File', 'icon': 'file-alt', 'unit': 'pt' }, + 'csv': { 'format': 'Comma-Separated Values', 'icon': 'file-excel', 'unit': 'px' }, + 'html': { 'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt' }, + 'mht': { 'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt' }, + 'mhtml': { 'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt' }, + 'xml': { 'format': 'Extensible Markup Language', 'icon': 'file-word', 'unit': 'pt' }, + 'xps': { 'format': 'XML Paper Specification', 'icon': 'file-word', 'unit': 'pt' }, + 'dxf': { 'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px' }, + 'dwg': { 'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px' }, + 'bmp': { 'format': 'Bitmap Picture', 'icon': 'file-image', 'unit': 'px' }, + 'gif': { 'format': 'Graphics Interchange Format', 'icon': 'file-image', 'unit': 'px' }, + 'jpg': { 'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px' }, + 'jpe': { 'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px' }, + 'jpeg': { 'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px' }, + 'jfif': { 'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px' }, + 'png': { 'format': 'Portable Network Graphics', 'icon': 'file-image', 'unit': 'px' }, + 'tiff': { 'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px' }, + 'tif': { 'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px' }, + 'psd': { 'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px' }, + 'svg': { 'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px' }, + 'jp2': { 'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px' }, + 'epub': { 'format': 'Electronic Publication', 'icon': 'file-pdf', 'unit': 'pt' }, + 'ico': { 'format': 'Windows Icon', 'icon': 'file-image', 'unit': 'px' }, + 'webp': { 'format': 'Compressed Image', 'icon': 'file-image', 'unit': 'px' }, + 'mobi': { 'format': 'Mobipocket eBook', 'icon': 'file-pdf', 'unit': 'pt' }, + 'tex': { 'format': 'LaTeX Source Document', 'icon': 'file-pdf', 'unit': 'pt' }, + 'djvu': { 'format': 'Multi-Layer Raster Image', 'icon': 'file-alt', 'unit': 'pt' }, + 'unknown': { 'format': 'This format is not supported', 'icon': 'file' }, + }; + return FileUtil; + }()); + var FileService = /** @class */ (function () { + function FileService() { + } + return FileService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var UploadFilesService = /** @class */ (function () { - function UploadFilesService() { - var _this = this; - this._uploadsChange = new rxjs.Observable((/** - * @param {?} observer - * @return {?} - */ - function (observer) { - return _this._observer = observer; - })); - } - Object.defineProperty(UploadFilesService.prototype, "uploadsChange", { - get: /** - * @return {?} - */ - function () { - return this._uploadsChange; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} filesList - * @return {?} - */ - UploadFilesService.prototype.changeFilesList = /** - * @param {?} filesList - * @return {?} - */ - function (filesList) { - this._observer.next(filesList); - }; - return UploadFilesService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var UploadFilesService = /** @class */ (function () { + function UploadFilesService() { + var _this = this; + this._uploadsChange = new rxjs.Observable((/** + * @param {?} observer + * @return {?} + */ + function (observer) { + return _this._observer = observer; + })); + } + Object.defineProperty(UploadFilesService.prototype, "uploadsChange", { + get: /** + * @return {?} + */ + function () { + return this._uploadsChange; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} filesList + * @return {?} + */ + UploadFilesService.prototype.changeFilesList = /** + * @param {?} filesList + * @return {?} + */ + function (filesList) { + this._observer.next(filesList); + }; + return UploadFilesService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var $ = jquery; - /** @type {?} */ - var upload_disc = 'Disc'; - /** @type {?} */ - var upload_url = 'URL'; - /** @type {?} */ - var uploads_choices = [{ name: upload_disc, icon: 'hdd' }, { name: upload_url, icon: 'link' }]; - var BrowseFilesModalComponent = /** @class */ (function () { - function BrowseFilesModalComponent(_uploadService) { - this._uploadService = _uploadService; - this.uploads = uploads_choices; - this.selectedFileGuid = new core.EventEmitter(); - this.selectedDirectory = new core.EventEmitter(); - this.urlForUpload = new core.EventEmitter(); - this.closing = new core.EventEmitter(); - this.showUploadUrl = false; - this.showUploadFile = false; - } - /** - * @return {?} - */ - BrowseFilesModalComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - /** - * @param {?} size - * @return {?} - */ - BrowseFilesModalComponent.prototype.getSize = /** - * @param {?} size - * @return {?} - */ - function (size) { - /** @type {?} */ - var mb = size / 1024 / 1024; - if (mb > 1) { - return (Math.round(mb * 100) / 100) + ' MB'; - } - else { - /** @type {?} */ - var kb = size / 1024; - if (kb > 1) { - return (Math.round(kb * 100) / 100) + ' KB'; - } - } - return size + ' Bytes'; - }; - /** - * @param {?} file - * @return {?} - */ - BrowseFilesModalComponent.prototype.getFormatName = /** - * @param {?} file - * @return {?} - */ - function (file) { - return FileUtil.find(file.name, file.directory).format; - }; - /** - * @param {?} file - * @return {?} - */ - BrowseFilesModalComponent.prototype.getFormatIcon = /** - * @param {?} file - * @return {?} - */ - function (file) { - return FileUtil.find(file.name, file.directory).icon; - }; - /** - * @param {?} file - * @return {?} - */ - BrowseFilesModalComponent.prototype.choose = /** - * @param {?} file - * @return {?} - */ - function (file) { - this.selectedFile = file; - if (file.directory || file.isDirectory) { - this.selectedDirectory.emit(file.name); - } - else { - this.selectedFileGuid.emit(file.guid); - } - }; - /** - * @return {?} - */ - BrowseFilesModalComponent.prototype.goUp = /** - * @return {?} - */ - function () { - if (this.selectedFile) { - /** @type {?} */ - var guid = this.selectedFile.guid; - if (guid.length > 0 && guid.indexOf('/') === -1) { - guid = ''; - } - else { - guid = guid.replace(/\/[^\/]+\/?$/, ''); - } - this.selectedDirectory.emit(guid); - } - }; - /** - * @param {?} $event - * @return {?} - */ - BrowseFilesModalComponent.prototype.selectUpload = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - if (upload_url === $event) { - this.showUploadUrl = true; - } - else { - this.showUploadUrl = false; - $("#gd-upload-input").trigger('click'); - } - }; - /** - * @param {?} $event - * @return {?} - */ - BrowseFilesModalComponent.prototype.refresh = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - if ($event) { - this.files = null; - this.selectedDirectory.emit(''); - this.showUploadUrl = false; - this.selectedFile = null; - } - else { - this.closing.emit(true); - } - }; - /** - * @return {?} - */ - BrowseFilesModalComponent.prototype.showSpinner = /** - * @return {?} - */ - function () { - return !this.files; - }; - /** - * @param {?} url - * @return {?} - */ - BrowseFilesModalComponent.prototype.uploadUrl = /** - * @param {?} url - * @return {?} - */ - function (url) { - if (url) { - this.urlForUpload.emit(url); - this.cleanUpload(); - } - }; - /** - * @param {?} files - * @return {?} - */ - BrowseFilesModalComponent.prototype.handleFileInput = /** - * @param {?} files - * @return {?} - */ - function (files) { - this._uploadService.changeFilesList(files); - }; - /** - * @return {?} - */ - BrowseFilesModalComponent.prototype.cleanUpload = /** - * @return {?} - */ - function () { - this.showUploadFile = false; - this.showUploadUrl = false; - }; - BrowseFilesModalComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-browse-files-modal', - template: "\n
\n
\n \n Drop file here to upload\n
\n
\n
\n \n
\n
\n \n \n \n Upload file\n \n \n \n \n \n
{{item.name}}
\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
FILE
\n
SIZE
\n
\n
\n
\n
\n
\n
\n \n
\n
..
\n
\n
\n
\n \n
\n
{{file?.name}}
\n
{{getFormatName(file)}}
\n
\n
\n
\n {{getSize(file?.size)}}\n
\n
\n
\n
\n
\n \n  Loading... Please wait.\n
\n
\n
\n", - styles: [".gd-modal-table{width:100%;text-align:left}#gd-browse-section{width:1036px;height:561px;overflow-y:auto}.list-files-header{height:60px;color:#6e6e6e;font-size:13px;font-weight:700;background-color:#f4f4f4;margin-top:24px}.list-files-header.upload-url{margin-top:20px}.header-name{padding-left:24px;width:90%;line-height:60px}.header-size{padding-right:27px;line-height:60px}.file-size,.header-size{width:10%;color:#777;text-align:right}.file-description{display:flex;width:90%;padding:18px 0 18px 24px;font-size:14px;flex:1;cursor:pointer;overflow:hidden}.file-size{font-size:12px;padding:0 27px 0 0;width:10%;line-height:79px}.list-files-header,.list-files-lines{display:flex;width:100%;justify-content:space-between}.gd-modal-spinner{background-color:#fff;width:100%;height:20px;text-align:center;font-size:16px}.gd-cancel-button{padding:7px;background:0 0;width:28px;overflow:hidden}.gd-cancel-button i{font-size:21px}.gd-file-name{white-space:nowrap;overflow:hidden;width:100%;text-overflow:ellipsis}.go-up{display:flex;font-size:26px;cursor:pointer;color:#4b566c;height:79px}.go-up-dots{margin-left:20px;margin-top:22px;font-size:16px}.go-up-icon{display:block;padding:18px 0 18px 24px}.upload-panel{display:flex;position:relative;width:100%}.upload-panel .context{display:flex;flex-direction:column;width:100%;margin-left:24px;margin-top:24px;margin-right:24px}.upload-panel .context .context-actions{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-actions :last-child{margin-right:0}.upload-panel .context .context-actions ::ng-deep .button{height:37px;width:96px;padding:0;justify-content:center}.upload-panel .context .context-actions ::ng-deep .button ::ng-deep .text{font-size:10px}.upload-panel .context .context-panel{display:flex;flex-direction:row;width:100%;margin-top:20px}.upload-panel .context .context-panel .upload-url{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-panel .upload-url .url-input{width:100%;height:27px;border:1px solid #25c2d4;font-size:14px;padding-left:6px}.upload-panel .context .context-panel .upload-url .url-check{width:31px;height:31px;color:#fff;font-size:15px;background-color:#25c2d4}.upload-panel .context .context-panel .upload-url .url-check .ng-fa-icon{display:block;padding:8px}.upload-panel gd-drop-down{margin-right:10px}.file-description .ng-fa-icon.fa-file-pdf{color:#e04e4e}.file-description .ng-fa-icon.fa-file-word{color:#539cf0}.file-description .ng-fa-icon.fa-file-powerpoint{color:#e29e1e}.file-description .ng-fa-icon.fa-file-excel{color:#7cbc46}.file-description .ng-fa-icon.fa-file-image{color:#c375ed}.file-description .ng-fa-icon.fa-file,.file-description .ng-fa-icon.fa-file-alt,.file-description .ng-fa-icon.fa-file-text .fa-folder{color:#4b566c}.file-description .ng-fa-icon{font-size:32px}.file-name{font-size:16px;color:#6e6e6e;overflow:hidden;text-overflow:ellipsis}.file-name-format{padding-left:11px;overflow:hidden}.file-format{font-size:10px;padding-top:3px;color:#acacac}.go-up,.list-files-lines{border-bottom:1px solid #e7e7e7}.list-files-lines:hover{background-color:#e5e5e5}.gd-dnd-wrap{background-color:#fff;cursor:default;position:absolute;width:100%;height:calc(100% - 60px);background:rgba(255,255,255,.7);z-index:1;display:flex;justify-content:center;align-items:center}.dnd-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;top:259px;position:absolute}.dnd-wrapper .text{color:#6e6e6e;font-size:14px}.dnd-wrapper .icon{display:flex;width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}@media (max-width:1037px){.file-size,.header-size{width:18%}.gd-dnd-wrap{width:95%}#gd-browse-section{width:100%;height:calc(100% - 146px)}}"] - }] } - ]; - /** @nocollapse */ - BrowseFilesModalComponent.ctorParameters = function () { return [ - { type: UploadFilesService } - ]; }; - BrowseFilesModalComponent.propDecorators = { - files: [{ type: core.Input }], - uploadConfig: [{ type: core.Input }], - selectedFileGuid: [{ type: core.Output }], - selectedDirectory: [{ type: core.Output }], - urlForUpload: [{ type: core.Output }], - closing: [{ type: core.Output }] - }; - return BrowseFilesModalComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var $ = jquery; + /** @type {?} */ + var upload_disc = 'Disc'; + /** @type {?} */ + var upload_url = 'URL'; + /** @type {?} */ + var uploads_choices = [{ name: upload_disc, icon: 'hdd' }, { name: upload_url, icon: 'link' }]; + var BrowseFilesModalComponent = /** @class */ (function () { + function BrowseFilesModalComponent(_uploadService) { + this._uploadService = _uploadService; + this.uploads = uploads_choices; + this.selectedFileGuid = new core.EventEmitter(); + this.selectedDirectory = new core.EventEmitter(); + this.urlForUpload = new core.EventEmitter(); + this.closing = new core.EventEmitter(); + this.showUploadUrl = false; + this.showUploadFile = false; + } + /** + * @return {?} + */ + BrowseFilesModalComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + /** + * @param {?} size + * @return {?} + */ + BrowseFilesModalComponent.prototype.getSize = /** + * @param {?} size + * @return {?} + */ + function (size) { + /** @type {?} */ + var mb = size / 1024 / 1024; + if (mb > 1) { + return (Math.round(mb * 100) / 100) + ' MB'; + } + else { + /** @type {?} */ + var kb = size / 1024; + if (kb > 1) { + return (Math.round(kb * 100) / 100) + ' KB'; + } + } + return size + ' Bytes'; + }; + /** + * @param {?} file + * @return {?} + */ + BrowseFilesModalComponent.prototype.getFormatName = /** + * @param {?} file + * @return {?} + */ + function (file) { + return FileUtil.find(file.name, file.directory).format; + }; + /** + * @param {?} file + * @return {?} + */ + BrowseFilesModalComponent.prototype.getFormatIcon = /** + * @param {?} file + * @return {?} + */ + function (file) { + return FileUtil.find(file.name, file.directory).icon; + }; + /** + * @param {?} file + * @return {?} + */ + BrowseFilesModalComponent.prototype.choose = /** + * @param {?} file + * @return {?} + */ + function (file) { + this.selectedFile = file; + if (file.directory || file.isDirectory) { + this.selectedDirectory.emit(file.name); + } + else { + this.selectedFileGuid.emit(file.guid); + } + }; + /** + * @return {?} + */ + BrowseFilesModalComponent.prototype.goUp = /** + * @return {?} + */ + function () { + if (this.selectedFile) { + /** @type {?} */ + var guid = this.selectedFile.guid; + if (guid.length > 0 && guid.indexOf('/') === -1) { + guid = ''; + } + else { + guid = guid.replace(/\/[^\/]+\/?$/, ''); + } + this.selectedDirectory.emit(guid); + } + }; + /** + * @param {?} $event + * @return {?} + */ + BrowseFilesModalComponent.prototype.selectUpload = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + if (upload_url === $event) { + this.showUploadUrl = true; + } + else { + this.showUploadUrl = false; + $("#gd-upload-input").trigger('click'); + } + }; + /** + * @param {?} $event + * @return {?} + */ + BrowseFilesModalComponent.prototype.refresh = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + if ($event) { + this.files = null; + this.selectedDirectory.emit(''); + this.showUploadUrl = false; + this.selectedFile = null; + } + else { + this.closing.emit(true); + } + }; + /** + * @return {?} + */ + BrowseFilesModalComponent.prototype.showSpinner = /** + * @return {?} + */ + function () { + return !this.files; + }; + /** + * @param {?} url + * @return {?} + */ + BrowseFilesModalComponent.prototype.uploadUrl = /** + * @param {?} url + * @return {?} + */ + function (url) { + if (url) { + this.urlForUpload.emit(url); + this.cleanUpload(); + } + }; + /** + * @param {?} files + * @return {?} + */ + BrowseFilesModalComponent.prototype.handleFileInput = /** + * @param {?} files + * @return {?} + */ + function (files) { + this._uploadService.changeFilesList(files); + }; + /** + * @return {?} + */ + BrowseFilesModalComponent.prototype.cleanUpload = /** + * @return {?} + */ + function () { + this.showUploadFile = false; + this.showUploadUrl = false; + }; + BrowseFilesModalComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-browse-files-modal', + template: "\r\n
\r\n
\r\n \r\n Drop file here to upload\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Upload file\r\n \r\n \r\n \r\n \r\n \r\n
{{item.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
FILE
\r\n
SIZE
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
..
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{file?.name}}
\r\n
{{getFormatName(file)}}
\r\n
\r\n
\r\n
\r\n {{getSize(file?.size)}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n  Loading... Please wait.\r\n
\r\n
\r\n
\r\n", + styles: [".gd-modal-table{width:100%;text-align:left}#gd-browse-section{width:1036px;height:561px;overflow-y:auto}.list-files-header{height:60px;color:#6e6e6e;font-size:13px;font-weight:700;background-color:#f4f4f4;margin-top:24px}.list-files-header.upload-url{margin-top:20px}.header-name{padding-left:24px;width:90%;line-height:60px}.header-size{padding-right:27px;line-height:60px}.file-size,.header-size{width:10%;color:#777;text-align:right}.file-description{display:flex;width:90%;padding:18px 0 18px 24px;font-size:14px;flex:1;cursor:pointer;overflow:hidden}.file-size{font-size:12px;padding:0 27px 0 0;width:10%;line-height:79px}.list-files-header,.list-files-lines{display:flex;width:100%;justify-content:space-between}.gd-modal-spinner{background-color:#fff;width:100%;height:20px;text-align:center;font-size:16px}.gd-cancel-button{padding:7px;background:0 0;width:28px;overflow:hidden}.gd-cancel-button i{font-size:21px}.gd-file-name{white-space:nowrap;overflow:hidden;width:100%;text-overflow:ellipsis}.go-up{display:flex;font-size:26px;cursor:pointer;color:#4b566c;height:79px}.go-up-dots{margin-left:20px;margin-top:22px;font-size:16px}.go-up-icon{display:block;padding:18px 0 18px 24px}.upload-panel{display:flex;position:relative;width:100%}.upload-panel .context{display:flex;flex-direction:column;width:100%;margin-left:24px;margin-top:24px;margin-right:24px}.upload-panel .context .context-actions{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-actions :last-child{margin-right:0}.upload-panel .context .context-actions ::ng-deep .button{height:37px;width:96px;padding:0;justify-content:center}.upload-panel .context .context-actions ::ng-deep .button ::ng-deep .text{font-size:10px}.upload-panel .context .context-panel{display:flex;flex-direction:row;width:100%;margin-top:20px}.upload-panel .context .context-panel .upload-url{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-panel .upload-url .url-input{width:100%;height:27px;border:1px solid #25c2d4;font-size:14px;padding-left:6px}.upload-panel .context .context-panel .upload-url .url-check{width:31px;height:31px;color:#fff;font-size:15px;background-color:#25c2d4}.upload-panel .context .context-panel .upload-url .url-check .ng-fa-icon{display:block;padding:8px}.upload-panel gd-drop-down{margin-right:10px}.file-description .ng-fa-icon.fa-file-pdf{color:#e04e4e}.file-description .ng-fa-icon.fa-file-word{color:#539cf0}.file-description .ng-fa-icon.fa-file-powerpoint{color:#e29e1e}.file-description .ng-fa-icon.fa-file-excel{color:#7cbc46}.file-description .ng-fa-icon.fa-file-image{color:#c375ed}.file-description .ng-fa-icon.fa-file,.file-description .ng-fa-icon.fa-file-alt,.file-description .ng-fa-icon.fa-file-text .fa-folder{color:#4b566c}.file-description .ng-fa-icon{font-size:32px}.file-name{font-size:16px;color:#6e6e6e;overflow:hidden;text-overflow:ellipsis}.file-name-format{padding-left:11px;overflow:hidden}.file-format{font-size:10px;padding-top:3px;color:#acacac}.go-up,.list-files-lines{border-bottom:1px solid #e7e7e7}.list-files-lines:hover{background-color:#e5e5e5}.gd-dnd-wrap{background-color:#fff;cursor:default;position:absolute;width:100%;height:calc(100% - 60px);background:rgba(255,255,255,.7);z-index:1;display:flex;justify-content:center;align-items:center}.dnd-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;top:259px;position:absolute}.dnd-wrapper .text{color:#6e6e6e;font-size:14px}.dnd-wrapper .icon{display:flex;width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}@media (max-width:1037px){.file-size,.header-size{width:18%}.gd-dnd-wrap{width:95%}#gd-browse-section{width:100%;height:calc(100% - 146px)}}"] + }] } + ]; + /** @nocollapse */ + BrowseFilesModalComponent.ctorParameters = function () { return [ + { type: UploadFilesService } + ]; }; + BrowseFilesModalComponent.propDecorators = { + files: [{ type: core.Input }], + uploadConfig: [{ type: core.Input }], + selectedFileGuid: [{ type: core.Output }], + selectedDirectory: [{ type: core.Output }], + urlForUpload: [{ type: core.Output }], + closing: [{ type: core.Output }] + }; + return BrowseFilesModalComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var ZoomService = /** @class */ (function () { - function ZoomService() { - this._observer = new rxjs.Subject(); - this._zoomChange = this._observer.asObservable(); - } - Object.defineProperty(ZoomService.prototype, "zoom", { - get: /** - * @return {?} - */ - function () { - return this._zoom; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ZoomService.prototype, "zoomChange", { - get: /** - * @return {?} - */ - function () { - return this._zoomChange; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} zoom - * @return {?} - */ - ZoomService.prototype.changeZoom = /** - * @param {?} zoom - * @return {?} - */ - function (zoom) { - this._zoom = zoom; - this._observer.next(zoom); - }; - /** - * @private - * @param {?} val - * @param {?} name - * @param {?=} sep - * @return {?} - */ - ZoomService.prototype.createZoomOption = /** - * @private - * @param {?} val - * @param {?} name - * @param {?=} sep - * @return {?} - */ - function (val, name, sep) { - if (sep === void 0) { sep = false; } - return { value: val, name: name, separator: sep }; - }; - /** - * @param {?} width - * @param {?} height - * @return {?} - */ - ZoomService.prototype.zoomOptions = /** - * @param {?} width - * @param {?} height - * @return {?} - */ - function (width, height) { - return [this.createZoomOption(25, '25%'), - this.createZoomOption(50, '50%'), - this.createZoomOption(100, '100%'), - this.createZoomOption(150, '150%'), - this.createZoomOption(200, '200%'), - this.createZoomOption(300, '300%'), - this.createZoomOption(0, '', true), - this.createZoomOption(width, 'Fit Width'), - this.createZoomOption(height, 'Fit Height')]; - }; - return ZoomService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ZoomService = /** @class */ (function () { + function ZoomService() { + this._observer = new rxjs.Subject(); + this._zoomChange = this._observer.asObservable(); + } + Object.defineProperty(ZoomService.prototype, "zoom", { + get: /** + * @return {?} + */ + function () { + return this._zoom; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ZoomService.prototype, "zoomChange", { + get: /** + * @return {?} + */ + function () { + return this._zoomChange; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} zoom + * @return {?} + */ + ZoomService.prototype.changeZoom = /** + * @param {?} zoom + * @return {?} + */ + function (zoom) { + this._zoom = zoom; + this._observer.next(zoom); + }; + /** + * @private + * @param {?} val + * @param {?} name + * @param {?=} sep + * @return {?} + */ + ZoomService.prototype.createZoomOption = /** + * @private + * @param {?} val + * @param {?} name + * @param {?=} sep + * @return {?} + */ + function (val, name, sep) { + if (sep === void 0) { sep = false; } + return { value: val, name: name, separator: sep }; + }; + /** + * @param {?} width + * @param {?} height + * @return {?} + */ + ZoomService.prototype.zoomOptions = /** + * @param {?} width + * @param {?} height + * @return {?} + */ + function (width, height) { + return [this.createZoomOption(25, '25%'), + this.createZoomOption(50, '50%'), + this.createZoomOption(100, '100%'), + this.createZoomOption(150, '150%'), + this.createZoomOption(200, '200%'), + this.createZoomOption(300, '300%'), + this.createZoomOption(0, '', true), + this.createZoomOption(width, 'Fit Width'), + this.createZoomOption(height, 'Fit Height')]; + }; + return ZoomService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var MOBILE_MAX_WIDTH = 425; - /** @type {?} */ - var TABLET_MAX_WIDTH = 1024; - var WindowService = /** @class */ (function () { - function WindowService() { - var _this = this; - this.resizeSubject = new rxjs.Subject(); - this.width = window.innerWidth; - this.height = window.innerHeight; - this._resize$ = rxjs.fromEvent(window, 'resize') - .pipe(operators.debounceTime(200), operators.distinctUntilChanged(), operators.startWith({ target: { innerWidth: window.innerWidth, innerHeight: window.innerHeight } }), operators.tap((/** - * @param {?} event - * @return {?} - */ - function (event) { - _this.resizeSubject.next((/** @type {?} */ (event.target))); - _this.width = ((/** @type {?} */ (event.target))).innerWidth; - _this.height = ((/** @type {?} */ (event.target))).innerHeight; - }))); - this._resize$.subscribe(); - } - Object.defineProperty(WindowService.prototype, "onResize", { - get: /** - * @return {?} - */ - function () { - return this.resizeSubject.asObservable(); - }, - enumerable: true, - configurable: true - }); - /** - * @return {?} - */ - WindowService.prototype.isMobile = /** - * @return {?} - */ - function () { - return this.width <= MOBILE_MAX_WIDTH; - }; - /** - * @return {?} - */ - WindowService.prototype.isTablet = /** - * @return {?} - */ - function () { - return this.width <= TABLET_MAX_WIDTH; - }; - /** - * @return {?} - */ - WindowService.prototype.isDesktop = /** - * @return {?} - */ - function () { - return !this.isMobile() && !this.isTablet(); - }; - /** - * @return {?} - */ - WindowService.prototype.isEdge = /** - * @return {?} - */ - function () { - return window.navigator.userAgent.toLowerCase().indexOf('edge') > -1; - }; - /** - * @return {?} - */ - WindowService.prototype.isFirefox = /** - * @return {?} - */ - function () { - return navigator.userAgent.toLowerCase().indexOf('firefox') > -1; - }; - return WindowService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var MOBILE_MAX_WIDTH = 425; + /** @type {?} */ + var TABLET_MAX_WIDTH = 1024; + var WindowService = /** @class */ (function () { + function WindowService() { + var _this = this; + this.resizeSubject = new rxjs.Subject(); + this.width = window.innerWidth; + this.height = window.innerHeight; + this._resize$ = rxjs.fromEvent(window, 'resize') + .pipe(operators.debounceTime(200), operators.distinctUntilChanged(), operators.startWith({ target: { innerWidth: window.innerWidth, innerHeight: window.innerHeight } }), operators.tap((/** + * @param {?} event + * @return {?} + */ + function (event) { + _this.resizeSubject.next((/** @type {?} */ (event.target))); + _this.width = ((/** @type {?} */ (event.target))).innerWidth; + _this.height = ((/** @type {?} */ (event.target))).innerHeight; + }))); + this._resize$.subscribe(); + } + Object.defineProperty(WindowService.prototype, "onResize", { + get: /** + * @return {?} + */ + function () { + return this.resizeSubject.asObservable(); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + WindowService.prototype.isMobile = /** + * @return {?} + */ + function () { + return this.width <= MOBILE_MAX_WIDTH; + }; + /** + * @return {?} + */ + WindowService.prototype.isTablet = /** + * @return {?} + */ + function () { + return this.width <= TABLET_MAX_WIDTH; + }; + /** + * @return {?} + */ + WindowService.prototype.isDesktop = /** + * @return {?} + */ + function () { + return !this.isMobile() && !this.isTablet(); + }; + /** + * @return {?} + */ + WindowService.prototype.isEdge = /** + * @return {?} + */ + function () { + return window.navigator.userAgent.toLowerCase().indexOf('edge') > -1; + }; + /** + * @return {?} + */ + WindowService.prototype.isFirefox = /** + * @return {?} + */ + function () { + return navigator.userAgent.toLowerCase().indexOf('firefox') > -1; + }; + return WindowService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var $$1 = jquery; - var DocumentComponent = /** @class */ (function () { - function DocumentComponent(_elementRef, _zoomService, _windowService) { - var _this = this; - this._elementRef = _elementRef; - this._zoomService = _zoomService; - this._windowService = _windowService; - this.wait = false; - this.docWidth = null; - this.docHeight = null; - this.viewportWidth = null; - this.viewportHeight = null; - this.scale = null; - this.lastScale = null; - this.container = null; - this.doc = null; - this.x = 0; - this.lastX = 0; - this.y = 0; - this.lastY = 0; - this.pinchCenter = null; - this.pinchCenterOffset = null; - this.curWidth = 0; - this.curHeight = 0; - _zoomService.zoomChange.subscribe((/** - * @param {?} val - * @return {?} - */ - function (val) { - _this.zoom = val; - })); - this.isDesktop = _windowService.isDesktop(); - } - /** - * @return {?} - */ - DocumentComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - /** - * @return {?} - */ - DocumentComponent.prototype.ngOnChanges = /** - * @return {?} - */ - function () { - /** @type {?} */ - var panzoom = this._elementRef.nativeElement.children.item(0).children.item(0); - ((/** @type {?} */ (panzoom))).style.transform = ''; - // TODO: this intersects with zooming by zoom directive, but still needed - // for flush previous settings before opening another file - //this._zoomService.changeZoom(100); - //this.scale = 1; - }; - /** - * @return {?} - */ - DocumentComponent.prototype.ngAfterViewInit = /** - * @return {?} - */ - function () { - // For current iteration we take .panzoom as a document - this.doc = this._elementRef.nativeElement.children.item(0).children.item(0); - // For current iteration we take .gd-document as a container - this.container = this._elementRef.nativeElement; - this.docWidth = this.doc.clientWidth; - this.docHeight = this.doc.clientHeight; - this.viewportWidth = this.doc.offsetWidth; - // For cases where we already have zoom defined we should include it - this.scale = (this.viewportWidth / this.docWidth) * this._zoomService.zoom / 100; - this.lastScale = this.scale; - this.viewportHeight = this.container.offsetHeight; - this.curWidth = this.docWidth * this.scale; - this.curHeight = this.docHeight * this.scale; - /** @type {?} */ - var hammer = new Hammer(this.container); - }; - // TODO: this temporary crutch for Excel files should be documented - // TODO: this temporary crutch for Excel files should be documented - /** - * @return {?} - */ - DocumentComponent.prototype.ifExcel = - // TODO: this temporary crutch for Excel files should be documented - /** - * @return {?} - */ - function () { - return FileUtil.find(this.file.guid, false).format === "Microsoft Excel"; - }; - /** - * @param {?} value - * @return {?} - */ - DocumentComponent.prototype.getDimensionWithUnit = /** - * @param {?} value - * @return {?} - */ - function (value) { - return value + FileUtil.find(this.file.guid, false).unit; - }; - /** - * @return {?} - */ - DocumentComponent.prototype.ngAfterViewChecked = /** - * @return {?} - */ - function () { - /** @type {?} */ - var elementNodeListOf = this._elementRef.nativeElement.querySelectorAll('.gd-wrapper'); - /** @type {?} */ - var element = elementNodeListOf.item(0); - if (element) { - $$1(element).trigger('focus'); - } - }; - /** - * @param {?} el - * @return {?} - */ - DocumentComponent.prototype.absolutePosition = /** - * @param {?} el - * @return {?} - */ - function (el) { - /** @type {?} */ - var x = 0; - /** @type {?} */ - var y = 0; - while (el !== null) { - x += el.offsetLeft; - y += el.offsetTop; - el = el.offsetParent; - } - return { x: x, y: y }; - }; - /** - * @param {?} pos - * @param {?} viewportDim - * @param {?} docDim - * @return {?} - */ - DocumentComponent.prototype.restrictRawPos = /** - * @param {?} pos - * @param {?} viewportDim - * @param {?} docDim - * @return {?} - */ - function (pos, viewportDim, docDim) { - if (pos < viewportDim / this.scale - docDim) { // too far left/up? - pos = viewportDim / this.scale - docDim; - } - else if (pos > 0) { // too far right/down? - pos = 0; - } - return pos; - }; - /** - * @return {?} - */ - DocumentComponent.prototype.updateLastPos = /** - * @return {?} - */ - function () { - this.lastX = this.x; - this.lastY = this.y; - }; - /** - * @param {?} deltaX - * @param {?} deltaY - * @return {?} - */ - DocumentComponent.prototype.translate = /** - * @param {?} deltaX - * @param {?} deltaY - * @return {?} - */ - function (deltaX, deltaY) { - // We restrict to the min of the viewport width/height or current width/height as the - // current width/height may be smaller than the viewport width/height - /** @type {?} */ - var newX = this.restrictRawPos(this.lastX + deltaX / this.scale, Math.min(this.viewportWidth, this.curWidth), this.docWidth); - this.x = newX; - // TODO: value here and in the similar line below changes to positive to take any effect - this.container.scrollLeft = -Math.ceil(newX * this.scale); - /** @type {?} */ - var newY = this.restrictRawPos(this.lastY + deltaY / this.scale, Math.min(this.viewportHeight, this.curHeight), this.docHeight); - this.y = newY; - this.container.scrollTop = -Math.ceil(newY * this.scale); - this.doc.style.transform = 'scale(' + this.scale + ')'; - }; - /** - * @param {?} scaleBy - * @return {?} - */ - DocumentComponent.prototype.startZoom = /** - * @param {?} scaleBy - * @return {?} - */ - function (scaleBy) { - this.scale = this.lastScale * scaleBy; - this.curWidth = this.docWidth * this.scale; - this.curHeight = this.docHeight * this.scale; - // Adjust margins to make sure that we aren't out of bounds - this.translate(0, 0); - }; - /** - * @param {?} $event - * @return {?} - */ - DocumentComponent.prototype.rawCenter = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - /** @type {?} */ - var pos = this.absolutePosition(this.container); - // We need to account for the scroll position - /** @type {?} */ - var scrollLeft = window.pageXOffset ? window.pageXOffset : document.body.scrollLeft; - /** @type {?} */ - var scrollTop = window.pageYOffset ? window.pageYOffset : document.body.scrollTop; - /** @type {?} */ - var zoomX = -this.x + ($event.center.x - pos.x + scrollLeft) / this.scale; - /** @type {?} */ - var zoomY = -this.y + ($event.center.y - pos.y + scrollTop) / this.scale; - return { x: zoomX, y: zoomY }; - }; - /** - * @return {?} - */ - DocumentComponent.prototype.updateLastScale = /** - * @return {?} - */ - function () { - this.lastScale = this.scale; - }; - /** - * @param {?} scaleBy - * @param {?} rawZoomX - * @param {?} rawZoomY - * @param {?} doNotUpdateLast - * @return {?} - */ - DocumentComponent.prototype.zoomAround = /** - * @param {?} scaleBy - * @param {?} rawZoomX - * @param {?} rawZoomY - * @param {?} doNotUpdateLast - * @return {?} - */ - function (scaleBy, rawZoomX, rawZoomY, doNotUpdateLast) { - // Zoom - this.startZoom(scaleBy); - // New raw center of viewport - /** @type {?} */ - var rawCenterX = -this.x + Math.min(this.viewportWidth, this.curWidth) / 2 / this.scale; - /** @type {?} */ - var rawCenterY = -this.y + Math.min(this.viewportHeight, this.curHeight) / 2 / this.scale; - // Delta - /** @type {?} */ - var deltaX = (rawCenterX - rawZoomX) * this.scale; - /** @type {?} */ - var deltaY = (rawCenterY - rawZoomY) * this.scale; - // Translate back to zoom center - this.translate(deltaX, deltaY); - if (!doNotUpdateLast) { - this.updateLastScale(); - this.updateLastPos(); - } - }; - /** - * @param {?} $event - * @return {?} - */ - DocumentComponent.prototype.onPinch = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - if (this.pinchCenter === null) { - this.pinchCenter = this.rawCenter($event); - /** @type {?} */ - var offsetX = this.pinchCenter.x * this.scale - (-this.x * this.scale + Math.min(this.viewportWidth, this.curWidth) / 2); - /** @type {?} */ - var offsetY = this.pinchCenter.y * this.scale - (-this.y * this.scale + Math.min(this.viewportHeight, this.curHeight) / 2); - this.pinchCenterOffset = { x: offsetX, y: offsetY }; - } - /** @type {?} */ - var newScale = this.scale * $event.scale; - /** @type {?} */ - var zoomX = this.pinchCenter.x * newScale - this.pinchCenterOffset.x; - /** @type {?} */ - var zoomY = this.pinchCenter.y * newScale - this.pinchCenterOffset.y; - /** @type {?} */ - var zoomCenter = { x: zoomX / newScale, y: zoomY / newScale }; - this.zoomAround($event.scale, zoomCenter.x, zoomCenter.y, true); - }; - /** - * @param {?} $event - * @return {?} - */ - DocumentComponent.prototype.onPinchEnd = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - this.updateLastScale(); - this.updateLastPos(); - this.pinchCenter = null; - }; - /** - * @param {?} $event - * @return {?} - */ - DocumentComponent.prototype.onPan = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - // TODO: looks like native pan works better - // if (!this.isDesktop) { - // this.translate($event.deltaX, $event.deltaY); - // } - }; - /** - * @param {?} $event - * @return {?} - */ - DocumentComponent.prototype.onPanEnd = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - // if (!this.isDesktop) { - // this.updateLastPos(); - // } - }; - /** - * @param {?} $event - * @return {?} - */ - DocumentComponent.prototype.onDoubleTap = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - if (!this.isDesktop) { - if ($event.tapCount === 2) { - /** @type {?} */ - var c = this.rawCenter($event); - this.zoomAround(2, c.x, c.y, false); - } - } - }; - DocumentComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-document', - template: "
Please wait...
\n
\n
\n
\n \n
\n
\n \n
\n", - styles: [":host{flex:1;transition:.4s;background-color:#e7e7e7;height:100%;overflow:scroll}.page{display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.page.excel{overflow:auto}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:flex-start}.panzoom.mobile{overflow:scroll}@media (max-width:1037px){.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] - }] } - ]; - /** @nocollapse */ - DocumentComponent.ctorParameters = function () { return [ - { type: core.ElementRef }, - { type: ZoomService }, - { type: WindowService } - ]; }; - DocumentComponent.propDecorators = { - mode: [{ type: core.Input }], - preloadPageCount: [{ type: core.Input }], - file: [{ type: core.Input }] - }; - return DocumentComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var RotationService = /** @class */ (function () { + function RotationService() { + this._observerRotationAngle = new rxjs.Subject(); + this._rotationAngleChange = this._observerRotationAngle.asObservable(); + } + Object.defineProperty(RotationService.prototype, "rotationAngleChange", { + get: /** + * @return {?} + */ + function () { + return this._rotationAngleChange; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} angle + * @return {?} + */ + RotationService.prototype.setRotationAngle = /** + * @param {?} angle + * @return {?} + */ + function (angle) { + this._observerRotationAngle.next(angle); + }; + return RotationService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var PageComponent = /** @class */ (function () { - function PageComponent() { - } - /** - * @return {?} - */ - PageComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - /** @type {?} */ - var isIE = /*@cc_on!@*/ !!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent); - if (isIE && this.number === 0) { - this.editable = false; - } - }; - /** - * @param {?} changes - * @return {?} - */ - PageComponent.prototype.ngOnChanges = /** - * @param {?} changes - * @return {?} - */ - function (changes) { - // TODO: this is temporary needed to remove unneeded spaces and BOM symbol - // which leads to undesired spaces on the top of the docs pages - this.data = this.data !== null ? this.data.replace(/>\s+<').replace(/\uFEFF/g, "") : null; - /** @type {?} */ - var dataImagePngBase64 = 'data:image/png;base64,'; - this.imgData = dataImagePngBase64; - if (!this.isHtml) { - this.imgData += this.data; - } - }; - PageComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-page', - template: "
\n
\n \"\"\n\n
\n \n  Loading... Please wait.\n
\n
\n", - styles: [".gd-page-spinner{margin-top:150px;text-align:center}.gd-wrapper{width:inherit;height:inherit}.gd-wrapper div{width:100%}/deep/ .gd-highlight{background-color:#ff0}/deep/ .gd-highlight-select{background-color:#ff9b00}.gd-page-image{height:100%!important;width:100%!important}"] - }] } - ]; - /** @nocollapse */ - PageComponent.ctorParameters = function () { return []; }; - PageComponent.propDecorators = { - angle: [{ type: core.Input }], - width: [{ type: core.Input }], - height: [{ type: core.Input }], - number: [{ type: core.Input }], - data: [{ type: core.Input }], - isHtml: [{ type: core.Input }], - editable: [{ type: core.Input }] - }; - return PageComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var $$1 = jquery; + var DocumentComponent = /** @class */ (function () { + function DocumentComponent(_elementRef, _zoomService, _windowService, _rotationServcie) { + var _this = this; + this._elementRef = _elementRef; + this._zoomService = _zoomService; + this._windowService = _windowService; + this._rotationServcie = _rotationServcie; + this.wait = false; + this.docWidth = null; + this.docHeight = null; + this.viewportWidth = null; + this.viewportHeight = null; + this.scale = null; + this.lastScale = null; + this.container = null; + this.doc = null; + this.x = 0; + this.lastX = 0; + this.y = 0; + this.lastY = 0; + this.pinchCenter = null; + this.pinchCenterOffset = null; + this.curWidth = 0; + this.curHeight = 0; + _zoomService.zoomChange.subscribe((/** + * @param {?} val + * @return {?} + */ + function (val) { + _this.zoom = val; + })); + this.isDesktop = _windowService.isDesktop(); + } + /** + * @return {?} + */ + DocumentComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + /** + * @return {?} + */ + DocumentComponent.prototype.ngOnChanges = /** + * @return {?} + */ + function () { + /** @type {?} */ + var panzoom = this._elementRef.nativeElement.children.item(0).children.item(0); + ((/** @type {?} */ (panzoom))).style.transform = ''; + // TODO: this intersects with zooming by zoom directive, but still needed + // for flush previous settings before opening another file + //this._zoomService.changeZoom(100); + //this.scale = 1; + }; + /** + * @return {?} + */ + DocumentComponent.prototype.ngAfterViewInit = /** + * @return {?} + */ + function () { + // For current iteration we take .panzoom as a document + this.doc = this._elementRef.nativeElement.children.item(0).children.item(0); + // For current iteration we take .gd-document as a container + this.container = this._elementRef.nativeElement; + this.docWidth = this.doc.clientWidth; + this.docHeight = this.doc.clientHeight; + this.viewportWidth = this.doc.offsetWidth; + // For cases where we already have zoom defined we should include it + this.scale = (this.viewportWidth / this.docWidth) * this._zoomService.zoom / 100; + this.lastScale = this.scale; + this.viewportHeight = this.container.offsetHeight; + this.curWidth = this.docWidth * this.scale; + this.curHeight = this.docHeight * this.scale; + /** @type {?} */ + var hammer = new Hammer(this.container); + }; + // TODO: this temporary crutch for Excel files should be documented + // TODO: this temporary crutch for Excel files should be documented + /** + * @return {?} + */ + DocumentComponent.prototype.ifExcel = + // TODO: this temporary crutch for Excel files should be documented + /** + * @return {?} + */ + function () { + return FileUtil.find(this.file.guid, false).format === "Microsoft Excel"; + }; + /** + * @param {?} value + * @return {?} + */ + DocumentComponent.prototype.getDimensionWithUnit = /** + * @param {?} value + * @return {?} + */ + function (value) { + return value + FileUtil.find(this.file.guid, false).unit; + }; + /** + * @return {?} + */ + DocumentComponent.prototype.ngAfterViewChecked = /** + * @return {?} + */ + function () { + /** @type {?} */ + var elementNodeListOf = this._elementRef.nativeElement.querySelectorAll('.gd-wrapper'); + /** @type {?} */ + var element = elementNodeListOf.item(0); + if (element) { + $$1(element).trigger('focus'); + } + }; + /** + * @param {?} el + * @return {?} + */ + DocumentComponent.prototype.absolutePosition = /** + * @param {?} el + * @return {?} + */ + function (el) { + /** @type {?} */ + var x = 0; + /** @type {?} */ + var y = 0; + while (el !== null) { + x += el.offsetLeft; + y += el.offsetTop; + el = el.offsetParent; + } + return { x: x, y: y }; + }; + /** + * @param {?} pos + * @param {?} viewportDim + * @param {?} docDim + * @return {?} + */ + DocumentComponent.prototype.restrictRawPos = /** + * @param {?} pos + * @param {?} viewportDim + * @param {?} docDim + * @return {?} + */ + function (pos, viewportDim, docDim) { + if (pos < viewportDim / this.scale - docDim) { // too far left/up? + pos = viewportDim / this.scale - docDim; + } + else if (pos > 0) { // too far right/down? + pos = 0; + } + return pos; + }; + /** + * @return {?} + */ + DocumentComponent.prototype.updateLastPos = /** + * @return {?} + */ + function () { + this.lastX = this.x; + this.lastY = this.y; + }; + /** + * @param {?} deltaX + * @param {?} deltaY + * @return {?} + */ + DocumentComponent.prototype.translate = /** + * @param {?} deltaX + * @param {?} deltaY + * @return {?} + */ + function (deltaX, deltaY) { + // We restrict to the min of the viewport width/height or current width/height as the + // current width/height may be smaller than the viewport width/height + /** @type {?} */ + var newX = this.restrictRawPos(this.lastX + deltaX / this.scale, Math.min(this.viewportWidth, this.curWidth), this.docWidth); + this.x = newX; + // TODO: value here and in the similar line below changes to positive to take any effect + this.container.scrollLeft = -Math.ceil(newX * this.scale); + /** @type {?} */ + var newY = this.restrictRawPos(this.lastY + deltaY / this.scale, Math.min(this.viewportHeight, this.curHeight), this.docHeight); + this.y = newY; + this.container.scrollTop = -Math.ceil(newY * this.scale); + this.doc.style.transform = 'scale(' + this.scale + ')'; + }; + /** + * @param {?} scaleBy + * @return {?} + */ + DocumentComponent.prototype.startZoom = /** + * @param {?} scaleBy + * @return {?} + */ + function (scaleBy) { + this.scale = this.lastScale * scaleBy; + this.curWidth = this.docWidth * this.scale; + this.curHeight = this.docHeight * this.scale; + // Adjust margins to make sure that we aren't out of bounds + this.translate(0, 0); + }; + /** + * @param {?} $event + * @return {?} + */ + DocumentComponent.prototype.rawCenter = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + /** @type {?} */ + var pos = this.absolutePosition(this.container); + // We need to account for the scroll position + /** @type {?} */ + var scrollLeft = window.pageXOffset ? window.pageXOffset : document.body.scrollLeft; + /** @type {?} */ + var scrollTop = window.pageYOffset ? window.pageYOffset : document.body.scrollTop; + /** @type {?} */ + var zoomX = -this.x + ($event.center.x - pos.x + scrollLeft) / this.scale; + /** @type {?} */ + var zoomY = -this.y + ($event.center.y - pos.y + scrollTop) / this.scale; + return { x: zoomX, y: zoomY }; + }; + /** + * @return {?} + */ + DocumentComponent.prototype.updateLastScale = /** + * @return {?} + */ + function () { + this.lastScale = this.scale; + }; + /** + * @param {?} scaleBy + * @param {?} rawZoomX + * @param {?} rawZoomY + * @param {?} doNotUpdateLast + * @return {?} + */ + DocumentComponent.prototype.zoomAround = /** + * @param {?} scaleBy + * @param {?} rawZoomX + * @param {?} rawZoomY + * @param {?} doNotUpdateLast + * @return {?} + */ + function (scaleBy, rawZoomX, rawZoomY, doNotUpdateLast) { + // Zoom + this.startZoom(scaleBy); + // New raw center of viewport + /** @type {?} */ + var rawCenterX = -this.x + Math.min(this.viewportWidth, this.curWidth) / 2 / this.scale; + /** @type {?} */ + var rawCenterY = -this.y + Math.min(this.viewportHeight, this.curHeight) / 2 / this.scale; + // Delta + /** @type {?} */ + var deltaX = (rawCenterX - rawZoomX) * this.scale; + /** @type {?} */ + var deltaY = (rawCenterY - rawZoomY) * this.scale; + // Translate back to zoom center + this.translate(deltaX, deltaY); + if (!doNotUpdateLast) { + this.updateLastScale(); + this.updateLastPos(); + } + }; + /** + * @param {?} $event + * @return {?} + */ + DocumentComponent.prototype.onPinch = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + console.log("pinch"); + if (this.pinchCenter === null) { + this.pinchCenter = this.rawCenter($event); + /** @type {?} */ + var offsetX = this.pinchCenter.x * this.scale - (-this.x * this.scale + Math.min(this.viewportWidth, this.curWidth) / 2); + /** @type {?} */ + var offsetY = this.pinchCenter.y * this.scale - (-this.y * this.scale + Math.min(this.viewportHeight, this.curHeight) / 2); + this.pinchCenterOffset = { x: offsetX, y: offsetY }; + } + /** @type {?} */ + var newScale = this.scale * $event.scale; + /** @type {?} */ + var zoomX = this.pinchCenter.x * newScale - this.pinchCenterOffset.x; + /** @type {?} */ + var zoomY = this.pinchCenter.y * newScale - this.pinchCenterOffset.y; + /** @type {?} */ + var zoomCenter = { x: zoomX / newScale, y: zoomY / newScale }; + this.zoomAround($event.scale, zoomCenter.x, zoomCenter.y, true); + }; + /** + * @param {?} $event + * @return {?} + */ + DocumentComponent.prototype.onPinchEnd = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + console.log("pinchEnd"); + this.updateLastScale(); + this.updateLastPos(); + this.pinchCenter = null; + }; + /** + * @param {?} $event + * @return {?} + */ + DocumentComponent.prototype.onPan = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + // TODO: looks like native pan works better + // if (!this.isDesktop) { + // this.translate($event.deltaX, $event.deltaY); + // } + }; + /** + * @param {?} $event + * @return {?} + */ + DocumentComponent.prototype.onPanEnd = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + // if (!this.isDesktop) { + // this.updateLastPos(); + // } + }; + /** + * @param {?} $event + * @return {?} + */ + DocumentComponent.prototype.onDoubleTap = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + if (!this.isDesktop) { + if ($event.tapCount === 2) { + /** @type {?} */ + var c = this.rawCenter($event); + this.zoomAround(2, c.x, c.y, false); + } + } + }; + /** + * @param {?} $event + * @return {?} + */ + DocumentComponent.prototype.onRotateStart = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + this.initialRotation = $event.rotation; + console.log("rotateStart: " + $event.rotation + ' ' + $event.angle); + }; + /** + * @param {?} $event + * @return {?} + */ + DocumentComponent.prototype.onRotateEnd = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + console.log("rotateEnd: " + $event.rotation + ' ' + $event.angle); + if ($event.rotation > 0 && this.initialRotation > 0) { + if ($event.rotation > this.initialRotation && ($event.rotation - this.initialRotation > 45)) { + this._rotationServcie.setRotationAngle(90); + } + else if ($event.rotation < this.initialRotation && (this.initialRotation - $event.rotation > 45)) { + this._rotationServcie.setRotationAngle(-90); + } + } + // case with negative values + else { + if (this.initialRotation > $event.rotation && ($event.rotation - this.initialRotation > 45)) { + this._rotationServcie.setRotationAngle(-90); + } + else if (this.initialRotation < $event.rotation && (this.initialRotation - $event.rotation > 45)) { + this._rotationServcie.setRotationAngle(90); + } + } + }; + DocumentComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-document', + template: "
Please wait...
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n", + styles: [":host{flex:1;transition:.4s;background-color:#e7e7e7;height:100%;overflow:scroll}.page{display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.page.excel{overflow:auto}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:flex-start}.panzoom.mobile{overflow:scroll}@media (max-width:1037px){.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] + }] } + ]; + /** @nocollapse */ + DocumentComponent.ctorParameters = function () { return [ + { type: core.ElementRef }, + { type: ZoomService }, + { type: WindowService }, + { type: RotationService } + ]; }; + DocumentComponent.propDecorators = { + mode: [{ type: core.Input }], + preloadPageCount: [{ type: core.Input }], + file: [{ type: core.Input }] + }; + return DocumentComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var SanitizeHtmlPipe = /** @class */ (function () { - function SanitizeHtmlPipe(sanitizer) { - this.sanitizer = sanitizer; - } - /** - * @param {?} html - * @return {?} - */ - SanitizeHtmlPipe.prototype.transform = /** - * @param {?} html - * @return {?} - */ - function (html) { - return this.sanitizer.bypassSecurityTrustHtml(html); - }; - SanitizeHtmlPipe.decorators = [ - { type: core.Pipe, args: [{ name: 'safeHtml' },] } - ]; - /** @nocollapse */ - SanitizeHtmlPipe.ctorParameters = function () { return [ - { type: platformBrowser.DomSanitizer } - ]; }; - return SanitizeHtmlPipe; - }()); - var SanitizeResourceHtmlPipe = /** @class */ (function () { - function SanitizeResourceHtmlPipe(sanitizer) { - this.sanitizer = sanitizer; - } - /** - * @param {?} html - * @return {?} - */ - SanitizeResourceHtmlPipe.prototype.transform = /** - * @param {?} html - * @return {?} - */ - function (html) { - return this.sanitizer.bypassSecurityTrustResourceUrl(html); - }; - SanitizeResourceHtmlPipe.decorators = [ - { type: core.Pipe, args: [{ name: 'safeResourceHtml' },] } - ]; - /** @nocollapse */ - SanitizeResourceHtmlPipe.ctorParameters = function () { return [ - { type: platformBrowser.DomSanitizer } - ]; }; - return SanitizeResourceHtmlPipe; - }()); - var SanitizeStylePipe = /** @class */ (function () { - function SanitizeStylePipe(sanitizer) { - this.sanitizer = sanitizer; - } - /** - * @param {?} html - * @return {?} - */ - SanitizeStylePipe.prototype.transform = /** - * @param {?} html - * @return {?} - */ - function (html) { - return this.sanitizer.bypassSecurityTrustStyle(html); - }; - SanitizeStylePipe.decorators = [ - { type: core.Pipe, args: [{ name: 'safeStyle' },] } - ]; - /** @nocollapse */ - SanitizeStylePipe.ctorParameters = function () { return [ - { type: platformBrowser.DomSanitizer } - ]; }; - return SanitizeStylePipe; - }()); - var HighlightSearchPipe = /** @class */ (function () { - function HighlightSearchPipe() { - } - /** - * @param {?} value - * @param {?} args - * @return {?} - */ - HighlightSearchPipe.prototype.transform = /** - * @param {?} value - * @param {?} args - * @return {?} - */ - function (value, args) { - if (!args) { - return value; - } - /** @type {?} */ - var re = new RegExp(args, 'gi'); - return value.replace(re, "$&"); - }; - HighlightSearchPipe.decorators = [ - { type: core.Pipe, args: [{ name: 'highlight' },] } - ]; - return HighlightSearchPipe; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PageComponent = /** @class */ (function () { + function PageComponent() { + } + /** + * @return {?} + */ + PageComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + /** @type {?} */ + var isIE = /*@cc_on!@*/ !!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent); + if (isIE && this.number === 0) { + this.editable = false; + } + }; + /** + * @param {?} changes + * @return {?} + */ + PageComponent.prototype.ngOnChanges = /** + * @param {?} changes + * @return {?} + */ + function (changes) { + // TODO: this is temporary needed to remove unneeded spaces and BOM symbol + // which leads to undesired spaces on the top of the docs pages + this.data = this.data !== null ? this.data.replace(/>\s+<').replace(/\uFEFF/g, "") : null; + /** @type {?} */ + var dataImagePngBase64 = 'data:image/png;base64,'; + this.imgData = dataImagePngBase64; + if (!this.isHtml) { + this.imgData += this.data; + } + }; + PageComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-page', + template: "
\r\n
\r\n \"\"\r\n\r\n
\r\n \r\n  Loading... Please wait.\r\n
\r\n
\r\n", + styles: [".gd-page-spinner{margin-top:150px;text-align:center}.gd-wrapper{width:inherit;height:inherit}.gd-wrapper div{width:100%}/deep/ .gd-highlight{background-color:#ff0}/deep/ .gd-highlight-select{background-color:#ff9b00}.gd-page-image{height:100%!important;width:100%!important}"] + }] } + ]; + /** @nocollapse */ + PageComponent.ctorParameters = function () { return []; }; + PageComponent.propDecorators = { + angle: [{ type: core.Input }], + width: [{ type: core.Input }], + height: [{ type: core.Input }], + number: [{ type: core.Input }], + data: [{ type: core.Input }], + isHtml: [{ type: core.Input }], + editable: [{ type: core.Input }] + }; + return PageComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var UploadFileZoneComponent = /** @class */ (function () { - function UploadFileZoneComponent(_uploadService) { - this._uploadService = _uploadService; - this.closeUpload = new core.EventEmitter(); - } - /** - * @return {?} - */ - UploadFileZoneComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - /** - * @param {?} files - * @return {?} - */ - UploadFileZoneComponent.prototype.handleFileInput = /** - * @param {?} files - * @return {?} - */ - function (files) { - this._uploadService.changeFilesList(files); - this.onCloseUpload(); - }; - /** - * @return {?} - */ - UploadFileZoneComponent.prototype.onCloseUpload = /** - * @return {?} - */ - function () { - this.closeUpload.emit(true); - }; - /** - * @param {?} $event - * @return {?} - */ - UploadFileZoneComponent.prototype.close = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - if ($event.target.id === 'gd-dropZone') { - this.onCloseUpload(); - } - }; - UploadFileZoneComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-upload-file-zone', - template: "
\n
\n \n
\n

Drag & Drop your files here

\n

OR

\n
\n \n
\n
\n", - styles: [".gd-drag-n-drop-wrap{border:2px dashed #ccc;background-color:#f8f8f8;text-align:center;cursor:default;position:absolute;width:-webkit-fill-available;left:1px;display:flex;align-content:center;flex-direction:column;justify-content:center;opacity:.9;z-index:1}.gd-drag-n-drop-wrap h2{color:#959da5;margin:5px 0;font-size:15px;font-weight:300}.gd-drag-n-drop-wrap h4{color:#cacaca;font-weight:300;font-size:12px;margin:10px 0 15px}.gd-drag-n-drop-icon .fa-cloud-download-alt{color:#d1d1d1;font-size:110px}.gd-drag-n-drop-buttons i{margin-right:5px}.gd-drag-n-drop-buttons .btn{width:134px;height:35px;margin:0 10px;font-size:12px;font-weight:400}.gd-drag-n-drop-wrap.hover{background:#ddd;border-color:#aaa}"] - }] } - ]; - /** @nocollapse */ - UploadFileZoneComponent.ctorParameters = function () { return [ - { type: UploadFilesService } - ]; }; - UploadFileZoneComponent.propDecorators = { - closeUpload: [{ type: core.Output }] - }; - return UploadFileZoneComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var SanitizeHtmlPipe = /** @class */ (function () { + function SanitizeHtmlPipe(sanitizer) { + this.sanitizer = sanitizer; + } + /** + * @param {?} html + * @return {?} + */ + SanitizeHtmlPipe.prototype.transform = /** + * @param {?} html + * @return {?} + */ + function (html) { + return this.sanitizer.bypassSecurityTrustHtml(html); + }; + SanitizeHtmlPipe.decorators = [ + { type: core.Pipe, args: [{ name: 'safeHtml' },] } + ]; + /** @nocollapse */ + SanitizeHtmlPipe.ctorParameters = function () { return [ + { type: platformBrowser.DomSanitizer } + ]; }; + return SanitizeHtmlPipe; + }()); + var SanitizeResourceHtmlPipe = /** @class */ (function () { + function SanitizeResourceHtmlPipe(sanitizer) { + this.sanitizer = sanitizer; + } + /** + * @param {?} html + * @return {?} + */ + SanitizeResourceHtmlPipe.prototype.transform = /** + * @param {?} html + * @return {?} + */ + function (html) { + return this.sanitizer.bypassSecurityTrustResourceUrl(html); + }; + SanitizeResourceHtmlPipe.decorators = [ + { type: core.Pipe, args: [{ name: 'safeResourceHtml' },] } + ]; + /** @nocollapse */ + SanitizeResourceHtmlPipe.ctorParameters = function () { return [ + { type: platformBrowser.DomSanitizer } + ]; }; + return SanitizeResourceHtmlPipe; + }()); + var SanitizeStylePipe = /** @class */ (function () { + function SanitizeStylePipe(sanitizer) { + this.sanitizer = sanitizer; + } + /** + * @param {?} html + * @return {?} + */ + SanitizeStylePipe.prototype.transform = /** + * @param {?} html + * @return {?} + */ + function (html) { + return this.sanitizer.bypassSecurityTrustStyle(html); + }; + SanitizeStylePipe.decorators = [ + { type: core.Pipe, args: [{ name: 'safeStyle' },] } + ]; + /** @nocollapse */ + SanitizeStylePipe.ctorParameters = function () { return [ + { type: platformBrowser.DomSanitizer } + ]; }; + return SanitizeStylePipe; + }()); + var HighlightSearchPipe = /** @class */ (function () { + function HighlightSearchPipe() { + } + /** + * @param {?} value + * @param {?} args + * @return {?} + */ + HighlightSearchPipe.prototype.transform = /** + * @param {?} value + * @param {?} args + * @return {?} + */ + function (value, args) { + if (!args) { + return value; + } + /** @type {?} */ + var re = new RegExp(args, 'gi'); + return value.replace(re, "$&"); + }; + HighlightSearchPipe.decorators = [ + { type: core.Pipe, args: [{ name: 'highlight' },] } + ]; + return HighlightSearchPipe; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var DndDirective = /** @class */ (function () { - function DndDirective(_uploadFilesService) { - this._uploadFilesService = _uploadFilesService; - this.closing = new core.EventEmitter(); - this.opening = new core.EventEmitter(); - this.dropped = new core.EventEmitter(); - this.active = false; - } - /** - * @param {?} evt - * @return {?} - */ - DndDirective.prototype.onDragOver = /** - * @param {?} evt - * @return {?} - */ - function (evt) { - evt.preventDefault(); - evt.stopPropagation(); - this.active = true; - this.opening.emit(true); - }; - /** - * @param {?} evt - * @return {?} - */ - DndDirective.prototype.onDragLeave = /** - * @param {?} evt - * @return {?} - */ - function (evt) { - evt.preventDefault(); - evt.stopPropagation(); - this.active = false; - this.closeArea(); - }; - /** - * @param {?} evt - * @return {?} - */ - DndDirective.prototype.onDrop = /** - * @param {?} evt - * @return {?} - */ - function (evt) { - evt.preventDefault(); - evt.stopPropagation(); - /** @type {?} */ - var files = evt.dataTransfer.files; - if (files.length > 0) { - this.active = false; - this.dropped.emit(true); - this._uploadFilesService.changeFilesList(files); - this.closeArea(); - } - }; - /** - * @param {?} event - * @return {?} - */ - DndDirective.prototype.onClick = /** - * @param {?} event - * @return {?} - */ - function (event) { - this.closeArea(); - }; - /** - * @private - * @return {?} - */ - DndDirective.prototype.closeArea = /** - * @private - * @return {?} - */ - function () { - this.closing.emit(true); - this.opening.emit(false); - }; - DndDirective.decorators = [ - { type: core.Directive, args: [{ - selector: '[gdDnd]' - },] } - ]; - /** @nocollapse */ - DndDirective.ctorParameters = function () { return [ - { type: UploadFilesService } - ]; }; - DndDirective.propDecorators = { - closing: [{ type: core.Output }], - opening: [{ type: core.Output }], - dropped: [{ type: core.Output }], - active: [{ type: core.HostBinding, args: ['class.active',] }], - onDragOver: [{ type: core.HostListener, args: ['dragover', ['$event'],] }], - onDragLeave: [{ type: core.HostListener, args: ['dragleave', ['$event'],] }], - onDrop: [{ type: core.HostListener, args: ['drop', ['$event'],] }], - onClick: [{ type: core.HostListener, args: ['click', ['$event'],] }] - }; - return DndDirective; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var UploadFileZoneComponent = /** @class */ (function () { + function UploadFileZoneComponent(_uploadService) { + this._uploadService = _uploadService; + this.closeUpload = new core.EventEmitter(); + } + /** + * @return {?} + */ + UploadFileZoneComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + /** + * @param {?} files + * @return {?} + */ + UploadFileZoneComponent.prototype.handleFileInput = /** + * @param {?} files + * @return {?} + */ + function (files) { + this._uploadService.changeFilesList(files); + this.onCloseUpload(); + }; + /** + * @return {?} + */ + UploadFileZoneComponent.prototype.onCloseUpload = /** + * @return {?} + */ + function () { + this.closeUpload.emit(true); + }; + /** + * @param {?} $event + * @return {?} + */ + UploadFileZoneComponent.prototype.close = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + if ($event.target.id === 'gd-dropZone') { + this.onCloseUpload(); + } + }; + UploadFileZoneComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-upload-file-zone', + template: "
\r\n
\r\n \r\n
\r\n

Drag & Drop your files here

\r\n

OR

\r\n
\r\n \r\n
\r\n
\r\n", + styles: [".gd-drag-n-drop-wrap{border:2px dashed #ccc;background-color:#f8f8f8;text-align:center;cursor:default;position:absolute;width:-webkit-fill-available;left:1px;display:flex;align-content:center;flex-direction:column;justify-content:center;opacity:.9;z-index:1}.gd-drag-n-drop-wrap h2{color:#959da5;margin:5px 0;font-size:15px;font-weight:300}.gd-drag-n-drop-wrap h4{color:#cacaca;font-weight:300;font-size:12px;margin:10px 0 15px}.gd-drag-n-drop-icon .fa-cloud-download-alt{color:#d1d1d1;font-size:110px}.gd-drag-n-drop-buttons i{margin-right:5px}.gd-drag-n-drop-buttons .btn{width:134px;height:35px;margin:0 10px;font-size:12px;font-weight:400}.gd-drag-n-drop-wrap.hover{background:#ddd;border-color:#aaa}"] + }] } + ]; + /** @nocollapse */ + UploadFileZoneComponent.ctorParameters = function () { return [ + { type: UploadFilesService } + ]; }; + UploadFileZoneComponent.propDecorators = { + closeUpload: [{ type: core.Output }] + }; + return UploadFileZoneComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var PagePreloadService = /** @class */ (function () { - function PagePreloadService() { - var _this = this; - this._checkPreload = new rxjs.Observable((/** - * @param {?} observer - * @return {?} - */ - function (observer) { - return _this._observer = observer; - })); - } - Object.defineProperty(PagePreloadService.prototype, "checkPreload", { - get: /** - * @return {?} - */ - function () { - return this._checkPreload; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} page - * @return {?} - */ - PagePreloadService.prototype.changeLastPageInView = /** - * @param {?} page - * @return {?} - */ - function (page) { - if (this._observer) { - this._observer.next(page); - } - }; - return PagePreloadService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var DndDirective = /** @class */ (function () { + function DndDirective(_uploadFilesService) { + this._uploadFilesService = _uploadFilesService; + this.closing = new core.EventEmitter(); + this.opening = new core.EventEmitter(); + this.dropped = new core.EventEmitter(); + this.active = false; + } + /** + * @param {?} evt + * @return {?} + */ + DndDirective.prototype.onDragOver = /** + * @param {?} evt + * @return {?} + */ + function (evt) { + evt.preventDefault(); + evt.stopPropagation(); + this.active = true; + this.opening.emit(true); + }; + /** + * @param {?} evt + * @return {?} + */ + DndDirective.prototype.onDragLeave = /** + * @param {?} evt + * @return {?} + */ + function (evt) { + evt.preventDefault(); + evt.stopPropagation(); + this.active = false; + this.closeArea(); + }; + /** + * @param {?} evt + * @return {?} + */ + DndDirective.prototype.onDrop = /** + * @param {?} evt + * @return {?} + */ + function (evt) { + evt.preventDefault(); + evt.stopPropagation(); + /** @type {?} */ + var files = evt.dataTransfer.files; + if (files.length > 0) { + this.active = false; + this.dropped.emit(true); + this._uploadFilesService.changeFilesList(files); + this.closeArea(); + } + }; + /** + * @param {?} event + * @return {?} + */ + DndDirective.prototype.onClick = /** + * @param {?} event + * @return {?} + */ + function (event) { + this.closeArea(); + }; + /** + * @private + * @return {?} + */ + DndDirective.prototype.closeArea = /** + * @private + * @return {?} + */ + function () { + this.closing.emit(true); + this.opening.emit(false); + }; + DndDirective.decorators = [ + { type: core.Directive, args: [{ + selector: '[gdDnd]' + },] } + ]; + /** @nocollapse */ + DndDirective.ctorParameters = function () { return [ + { type: UploadFilesService } + ]; }; + DndDirective.propDecorators = { + closing: [{ type: core.Output }], + opening: [{ type: core.Output }], + dropped: [{ type: core.Output }], + active: [{ type: core.HostBinding, args: ['class.active',] }], + onDragOver: [{ type: core.HostListener, args: ['dragover', ['$event'],] }], + onDragLeave: [{ type: core.HostListener, args: ['dragleave', ['$event'],] }], + onDrop: [{ type: core.HostListener, args: ['drop', ['$event'],] }], + onClick: [{ type: core.HostListener, args: ['click', ['$event'],] }] + }; + return DndDirective; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var NavigateService = /** @class */ (function () { - function NavigateService(_pagePreloadService) { - var _this = this; - this._pagePreloadService = _pagePreloadService; - this._currentPage = 0; - this._countPages = 0; - this._navigate = new rxjs.Observable((/** - * @param {?} observer - * @return {?} - */ - function (observer) { - return _this._observer = observer; - })); - } - Object.defineProperty(NavigateService.prototype, "navigate", { - get: /** - * @return {?} - */ - function () { - return this._navigate; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(NavigateService.prototype, "countPages", { - get: /** - * @return {?} - */ - function () { - return this._countPages; - }, - set: /** - * @param {?} value - * @return {?} - */ - function (value) { - this._countPages = value; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(NavigateService.prototype, "currentPage", { - get: /** - * @return {?} - */ - function () { - return this._currentPage; - }, - set: /** - * @param {?} value - * @return {?} - */ - function (value) { - this._currentPage = value; - }, - enumerable: true, - configurable: true - }); - /** - * @return {?} - */ - NavigateService.prototype.nextPage = /** - * @return {?} - */ - function () { - if (this._currentPage < this._countPages) { - this._currentPage++; - this.navigateTo(this._currentPage); - } - }; - /** - * @return {?} - */ - NavigateService.prototype.prevPage = /** - * @return {?} - */ - function () { - if (this._currentPage > 1) { - this._currentPage--; - this.navigateTo(this._currentPage); - } - }; - /** - * @return {?} - */ - NavigateService.prototype.toLastPage = /** - * @return {?} - */ - function () { - this._currentPage = this._countPages; - this.navigateTo(this._currentPage); - }; - /** - * @return {?} - */ - NavigateService.prototype.toFirstPage = /** - * @return {?} - */ - function () { - this._currentPage = 1; - this.navigateTo(this._currentPage); - }; - /** - * @param {?} page - * @return {?} - */ - NavigateService.prototype.navigateTo = /** - * @param {?} page - * @return {?} - */ - function (page) { - this.currentPage = page; - this._pagePreloadService.changeLastPageInView(page); - this._observer.next(page); - }; - NavigateService.decorators = [ - { type: core.Injectable, args: [{ - providedIn: 'root' - },] } - ]; - /** @nocollapse */ - NavigateService.ctorParameters = function () { return [ - { type: PagePreloadService } - ]; }; - /** @nocollapse */ NavigateService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function NavigateService_Factory() { return new NavigateService(core.ɵɵinject(PagePreloadService)); }, token: NavigateService, providedIn: "root" }); - return NavigateService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PagePreloadService = /** @class */ (function () { + function PagePreloadService() { + var _this = this; + this._checkPreload = new rxjs.Observable((/** + * @param {?} observer + * @return {?} + */ + function (observer) { + return _this._observer = observer; + })); + } + Object.defineProperty(PagePreloadService.prototype, "checkPreload", { + get: /** + * @return {?} + */ + function () { + return this._checkPreload; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} page + * @return {?} + */ + PagePreloadService.prototype.changeLastPageInView = /** + * @param {?} page + * @return {?} + */ + function (page) { + if (this._observer) { + this._observer.next(page); + } + }; + return PagePreloadService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var $$2 = jquery; - var ViewportService = /** @class */ (function () { - function ViewportService() { - } - /** - * @param {?} el - * @param {?=} zoom - * @param {?=} leftOffset - * @param {?=} deltaX - * @return {?} - */ - ViewportService.prototype.checkInViewport = /** - * @param {?} el - * @param {?=} zoom - * @param {?=} leftOffset - * @param {?=} deltaX - * @return {?} - */ - function (el, zoom, leftOffset, deltaX) { - if (zoom === void 0) { zoom = 100; } - if (leftOffset === void 0) { leftOffset = 0; } - if (deltaX === void 0) { deltaX = 0.5; } - if (!el) { - return false; - } - /** @type {?} */ - var x = deltaX; - /** @type {?} */ - var y = 0.5; - /** @type {?} */ - var win = $$2(window); - /** @type {?} */ - var viewport = { - top: win.scrollTop(), - left: win.scrollLeft() + leftOffset, - right: win.scrollLeft() + win.width() - 10, - bottom: win.scrollTop() + win.height() - }; - if (isNaN(zoom)) { - zoom = 100; - } - /** @type {?} */ - var zoomN = zoom / 100; - /** @type {?} */ - var height = $$2(el).outerHeight() * (zoomN); - /** @type {?} */ - var width = $$2(el).outerWidth() * (zoomN); - if (!width || !height) { - return false; - } - /** @type {?} */ - var bounds = $$2(el).offset(); - /** @type {?} */ - var right = (bounds.left * (zoomN)) + width; - /** @type {?} */ - var bottom = (bounds.top * (zoomN)) + height; - /** @type {?} */ - var visible = (!(viewport.right < (bounds.left * (zoomN)) || viewport.left > right || viewport.bottom < (bounds.top * (zoomN)) || viewport.top > bottom)); - if (!visible) { - return false; - } - /** @type {?} */ - var deltas = { - top: parseFloat(Math.min(1, (bottom - viewport.top) / height).toFixed(2)), - bottom: parseFloat(Math.min(1, (viewport.bottom - (bounds.top * (zoomN))) / height).toFixed(2)), - left: parseFloat(Math.min(1, (right - viewport.left) / width).toFixed(2)), - right: parseFloat(Math.min(1, (viewport.right - (bounds.left * (zoomN))) / width).toFixed(2)) - }; - return (deltas.left * deltas.right) >= x && (deltas.top * deltas.bottom) >= y; - }; - ViewportService.decorators = [ - { type: core.Injectable, args: [{ - providedIn: 'root' - },] } - ]; - /** @nocollapse */ - ViewportService.ctorParameters = function () { return []; }; - /** @nocollapse */ ViewportService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ViewportService_Factory() { return new ViewportService(); }, token: ViewportService, providedIn: "root" }); - return ViewportService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var NavigateService = /** @class */ (function () { + function NavigateService(_pagePreloadService) { + var _this = this; + this._pagePreloadService = _pagePreloadService; + this._currentPage = 0; + this._countPages = 0; + this._navigate = new rxjs.Observable((/** + * @param {?} observer + * @return {?} + */ + function (observer) { + return _this._observer = observer; + })); + } + Object.defineProperty(NavigateService.prototype, "navigate", { + get: /** + * @return {?} + */ + function () { + return this._navigate; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NavigateService.prototype, "countPages", { + get: /** + * @return {?} + */ + function () { + return this._countPages; + }, + set: /** + * @param {?} value + * @return {?} + */ + function (value) { + this._countPages = value; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NavigateService.prototype, "currentPage", { + get: /** + * @return {?} + */ + function () { + return this._currentPage; + }, + set: /** + * @param {?} value + * @return {?} + */ + function (value) { + this._currentPage = value; + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + NavigateService.prototype.nextPage = /** + * @return {?} + */ + function () { + if (this._currentPage < this._countPages) { + this._currentPage++; + this.navigateTo(this._currentPage); + } + }; + /** + * @return {?} + */ + NavigateService.prototype.prevPage = /** + * @return {?} + */ + function () { + if (this._currentPage > 1) { + this._currentPage--; + this.navigateTo(this._currentPage); + } + }; + /** + * @return {?} + */ + NavigateService.prototype.toLastPage = /** + * @return {?} + */ + function () { + this._currentPage = this._countPages; + this.navigateTo(this._currentPage); + }; + /** + * @return {?} + */ + NavigateService.prototype.toFirstPage = /** + * @return {?} + */ + function () { + this._currentPage = 1; + this.navigateTo(this._currentPage); + }; + /** + * @param {?} page + * @return {?} + */ + NavigateService.prototype.navigateTo = /** + * @param {?} page + * @return {?} + */ + function (page) { + this.currentPage = page; + this._pagePreloadService.changeLastPageInView(page); + this._observer.next(page); + }; + NavigateService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root' + },] } + ]; + /** @nocollapse */ + NavigateService.ctorParameters = function () { return [ + { type: PagePreloadService } + ]; }; + /** @nocollapse */ NavigateService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function NavigateService_Factory() { return new NavigateService(core.ɵɵinject(PagePreloadService)); }, token: NavigateService, providedIn: "root" }); + return NavigateService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var $$3 = jquery; - var ScrollableDirective = /** @class */ (function () { - function ScrollableDirective(_elementRef, _navigateService, _pagePreloadService, _zoomService, _windowService, _viewportService) { - var _this = this; - this._elementRef = _elementRef; - this._navigateService = _navigateService; - this._pagePreloadService = _pagePreloadService; - this._zoomService = _zoomService; - this._windowService = _windowService; - this._viewportService = _viewportService; - this.zoom = 100; - this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom; - _zoomService.zoomChange.subscribe((/** - * @param {?} val - * @return {?} - */ - function (val) { - _this.zoom = val ? val : _this.zoom; - _this.refresh(); - })); - } - /** - * @return {?} - */ - ScrollableDirective.prototype.ngAfterViewInit = /** - * @return {?} - */ - function () { - var _this = this; - this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom; - this._navigateService.navigate.subscribe(((/** - * @param {?} value - * @return {?} - */ - function (value) { - _this.currentPage = value; - _this.scrollToPage(value); - }))); - this.refresh(); - }; - /** - * @return {?} - */ - ScrollableDirective.prototype.scrolling = /** - * @return {?} - */ - function () { - this.refresh(); - }; - /** - * @return {?} - */ - ScrollableDirective.prototype.resizing = /** - * @return {?} - */ - function () { - this.refresh(); - }; - /** - * @param {?} pageNumber - * @return {?} - */ - ScrollableDirective.prototype.scrollToPage = /** - * @param {?} pageNumber - * @return {?} - */ - function (pageNumber) { - /** @type {?} */ - var el = this._elementRef.nativeElement; - /** @type {?} */ - var page = this.getPage(pageNumber); - /** @type {?} */ - var prev = pageNumber > 0 ? this.getPage(pageNumber - 1) : null; - /** @type {?} */ - var isSameTop = (prev && $$3(prev).offset().top === $$3(page).offset().top); - if (this._viewportService.checkInViewport(page, this.zoom) && isSameTop) { - return; - } - /** @type {?} */ - var pagesHeight = this.calculateOffset(pageNumber); - /** @type {?} */ - var options = { - left: 0, - top: pagesHeight - }; - if (el) { - // using polyfill - el.scroll(options); - } - }; - /** - * @private - * @return {?} - */ - ScrollableDirective.prototype.getChildren = /** - * @private - * @return {?} - */ - function () { - /** @type {?} */ - var el = this._elementRef ? this._elementRef.nativeElement : null; - if (el) { - // here and in the similar line below we getting the document pages - return el.children.item(0).children.item(0).children; - } - }; - /** - * @private - * @param {?} pageNumber - * @return {?} - */ - ScrollableDirective.prototype.getPage = /** - * @private - * @param {?} pageNumber - * @return {?} - */ - function (pageNumber) { - /** @type {?} */ - var el = this._elementRef ? this._elementRef.nativeElement : null; - if (el) { - return el.children.item(0).children.item(0).children.item(pageNumber - 1); - } - }; - /** - * @private - * @param {?} pageNumber - * @return {?} - */ - ScrollableDirective.prototype.calculateOffset = /** - * @private - * @param {?} pageNumber - * @return {?} - */ - function (pageNumber) { - /** @type {?} */ - var count = this._windowService.isFirefox() ? 1 : this.countPagesOnWidth(); - /** @type {?} */ - var margin = this._windowService.isDesktop() ? 40 : 10; - /** @type {?} */ - var pagesHeight = 0; - for (var i = 1; i < pageNumber / count; i++) { - /** @type {?} */ - var item = this.getPage(i); - /** @type {?} */ - var clientHeight = item ? item.clientHeight : 0; - pagesHeight += clientHeight > 0 ? clientHeight * this.getZoom() + margin : 0; - } - return pagesHeight; - }; - /** - * @private - * @return {?} - */ - ScrollableDirective.prototype.countPagesOnWidth = /** - * @private - * @return {?} - */ - function () { - /** @type {?} */ - var pageEl = this.getPage(1); - /** @type {?} */ - var offset = 150; - /** @type {?} */ - var count = Math.floor((this.getWidth() - offset) / (pageEl.getBoundingClientRect().width * this.getZoom())); - return count === 0 ? 1 : count; - }; - /** - * @return {?} - */ - ScrollableDirective.prototype.refresh = /** - * @return {?} - */ - function () { - /** @type {?} */ - var page; - /** @type {?} */ - var currentPageSet = false; - /** @type {?} */ - var pageElem = this.getPage(this.currentPage); - /** @type {?} */ - var currentPageRect = this.currentPage && pageElem ? pageElem.getBoundingClientRect() : null; - for (page = 1; page < this.getChildren().length + 1; page++) { - /** @type {?} */ - var element = this.getPage(page); - if (this._viewportService.checkInViewport(element, this.zoom)) { - if (!currentPageSet) { - if (!this.currentPage || !pageElem || (this.currentPage && currentPageRect && element.getBoundingClientRect().top !== currentPageRect.top)) { - this.currentPage = page; - this._navigateService.currentPage = page; - } - currentPageSet = true; - } - this._pagePreloadService.changeLastPageInView(page); - } - } - }; - /** - * @param {?} changes - * @return {?} - */ - ScrollableDirective.prototype.ngOnChanges = /** - * @param {?} changes - * @return {?} - */ - function (changes) { - this.refresh(); - }; - /** - * @return {?} - */ - ScrollableDirective.prototype.ngOnInit = /** - * @return {?} - */ - function () { - this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom; - }; - /** - * @private - * @return {?} - */ - ScrollableDirective.prototype.getWidth = /** - * @private - * @return {?} - */ - function () { - return this._elementRef ? this._elementRef.nativeElement.offsetWidth : window.innerWidth; - }; - /** - * @private - * @return {?} - */ - ScrollableDirective.prototype.getZoom = /** - * @private - * @return {?} - */ - function () { - return this.zoom / 100; - }; - ScrollableDirective.decorators = [ - { type: core.Directive, args: [{ - selector: '[gdScrollable]' - },] } - ]; - /** @nocollapse */ - ScrollableDirective.ctorParameters = function () { return [ - { type: core.ElementRef }, - { type: NavigateService }, - { type: PagePreloadService }, - { type: ZoomService }, - { type: WindowService }, - { type: ViewportService } - ]; }; - ScrollableDirective.propDecorators = { - scrolling: [{ type: core.HostListener, args: ['scroll',] }], - resizing: [{ type: core.HostListener, args: ['window:resize',] }] - }; - return ScrollableDirective; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var $$2 = jquery; + var ViewportService = /** @class */ (function () { + function ViewportService() { + } + /** + * @param {?} el + * @param {?=} zoom + * @param {?=} leftOffset + * @param {?=} deltaX + * @return {?} + */ + ViewportService.prototype.checkInViewport = /** + * @param {?} el + * @param {?=} zoom + * @param {?=} leftOffset + * @param {?=} deltaX + * @return {?} + */ + function (el, zoom, leftOffset, deltaX) { + if (zoom === void 0) { zoom = 100; } + if (leftOffset === void 0) { leftOffset = 0; } + if (deltaX === void 0) { deltaX = 0.5; } + if (!el) { + return false; + } + /** @type {?} */ + var x = deltaX; + /** @type {?} */ + var y = 0.5; + /** @type {?} */ + var win = $$2(window); + /** @type {?} */ + var viewport = { + top: win.scrollTop(), + left: win.scrollLeft() + leftOffset, + right: win.scrollLeft() + win.width() - 10, + bottom: win.scrollTop() + win.height() + }; + if (isNaN(zoom)) { + zoom = 100; + } + /** @type {?} */ + var zoomN = zoom / 100; + /** @type {?} */ + var height = $$2(el).outerHeight() * (zoomN); + /** @type {?} */ + var width = $$2(el).outerWidth() * (zoomN); + if (!width || !height) { + return false; + } + /** @type {?} */ + var bounds = $$2(el).offset(); + /** @type {?} */ + var right = (bounds.left * (zoomN)) + width; + /** @type {?} */ + var bottom = (bounds.top * (zoomN)) + height; + /** @type {?} */ + var visible = (!(viewport.right < (bounds.left * (zoomN)) || viewport.left > right || viewport.bottom < (bounds.top * (zoomN)) || viewport.top > bottom)); + if (!visible) { + return false; + } + /** @type {?} */ + var deltas = { + top: parseFloat(Math.min(1, (bottom - viewport.top) / height).toFixed(2)), + bottom: parseFloat(Math.min(1, (viewport.bottom - (bounds.top * (zoomN))) / height).toFixed(2)), + left: parseFloat(Math.min(1, (right - viewport.left) / width).toFixed(2)), + right: parseFloat(Math.min(1, (viewport.right - (bounds.left * (zoomN))) / width).toFixed(2)) + }; + return (deltas.left * deltas.right) >= x && (deltas.top * deltas.bottom) >= y; + }; + ViewportService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root' + },] } + ]; + /** @nocollapse */ + ViewportService.ctorParameters = function () { return []; }; + /** @nocollapse */ ViewportService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ViewportService_Factory() { return new ViewportService(); }, token: ViewportService, providedIn: "root" }); + return ViewportService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var ZoomDirective = /** @class */ (function () { - function ZoomDirective(_zoomService, _windowService, el) { - this._zoomService = _zoomService; - this._windowService = _windowService; - this.zoomActive = true; - this.el = el; - } - /** - * @return {?} - */ - ZoomDirective.prototype.ngOnDestroy = /** - * @return {?} - */ - function () { - }; - /** - * @return {?} - */ - ZoomDirective.prototype.ngOnChanges = /** - * @return {?} - */ - function () { - this.setStyles(this._zoomService.zoom); - this.resizePages(this._zoomService.zoom); - }; - /** - * @return {?} - */ - ZoomDirective.prototype.ngOnInit = /** - * @return {?} - */ - function () { - var _this = this; - if (!this.zoomActive) { - return; - } - this.setStyles(this._zoomService.zoom); - this._zoomService.zoomChange.subscribe((/** - * @param {?} zoom - * @return {?} - */ - function (zoom) { - _this.setStyles(zoom); - _this.resizePages(zoom); - })); - }; - /** - * @private - * @param {?} zoom - * @return {?} - */ - ZoomDirective.prototype.setStyles = /** - * @private - * @param {?} zoom - * @return {?} - */ - function (zoom) { - if (!this.zoomActive) { - return; - } - /** @type {?} */ - var zoomInt = zoom === 100 ? 1 : zoom / 100; - if (this._windowService.isEdge()) { - this.zoomInt = zoomInt; - } - else { - this.zoomInt = null; - } - if (!this._windowService.isEdge()) { - this.transform = 'scale(' + zoomInt + ')'; - this.transformOrigin = 'top left'; - } - else { - this.transform = ""; - this.transformOrigin = ""; - } - /** @type {?} */ - var maxWidth = 0; - this.file.pages.forEach((/** - * @param {?} page - * @return {?} - */ - function (page) { - { - if (page.width > maxWidth) { - maxWidth = page.width; - } - } - })); - // Images and Excel-related files receiving dimensions in px from server - this.minWidth = maxWidth + FileUtil.find(this.file.guid, false).unit; - }; - /** - * @private - * @param {?} elm - * @return {?} - */ - ZoomDirective.prototype.getScrollWidth = /** - * @private - * @param {?} elm - * @return {?} - */ - function (elm) { - return elm.offsetWidth - elm.clientWidth; - }; - /** - * @private - * @param {?} zoom - * @return {?} - */ - ZoomDirective.prototype.resizePages = /** - * @private - * @param {?} zoom - * @return {?} - */ - function (zoom) { - /** @type {?} */ - var zoomInt = zoom === 100 ? 1 : zoom / 100; - /** @type {?} */ - var viewPortWidth = this.el.nativeElement.parentElement.offsetWidth; - /** @type {?} */ - var scrollWidth = this.getScrollWidth(this.el.nativeElement.parentElement); - this.width = (viewPortWidth / zoomInt - scrollWidth / zoomInt) + 'px'; - }; - /** - * @return {?} - */ - ZoomDirective.prototype.ngAfterViewInit = /** - * @return {?} - */ - function () { - this.setStyles(this._zoomService.zoom); - }; - ZoomDirective.decorators = [ - { type: core.Directive, args: [{ - selector: '[gdZoom]' - },] } - ]; - /** @nocollapse */ - ZoomDirective.ctorParameters = function () { return [ - { type: ZoomService }, - { type: WindowService }, - { type: core.ElementRef } - ]; }; - ZoomDirective.propDecorators = { - zoomActive: [{ type: core.Input }], - file: [{ type: core.Input }], - zoomInt: [{ type: core.HostBinding, args: ['style.zoom',] }], - transform: [{ type: core.HostBinding, args: ['style.transform',] }], - transformOrigin: [{ type: core.HostBinding, args: ['style.transform-origin',] }], - width: [{ type: core.HostBinding, args: ['style.width',] }], - minWidth: [{ type: core.HostBinding, args: ['style.min-width',] }] - }; - return ZoomDirective; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var $$3 = jquery; + var ScrollableDirective = /** @class */ (function () { + function ScrollableDirective(_elementRef, _navigateService, _pagePreloadService, _zoomService, _windowService, _viewportService) { + var _this = this; + this._elementRef = _elementRef; + this._navigateService = _navigateService; + this._pagePreloadService = _pagePreloadService; + this._zoomService = _zoomService; + this._windowService = _windowService; + this._viewportService = _viewportService; + this.zoom = 100; + this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom; + _zoomService.zoomChange.subscribe((/** + * @param {?} val + * @return {?} + */ + function (val) { + _this.zoom = val ? val : _this.zoom; + _this.refresh(); + })); + } + /** + * @return {?} + */ + ScrollableDirective.prototype.ngAfterViewInit = /** + * @return {?} + */ + function () { + var _this = this; + this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom; + this._navigateService.navigate.subscribe(((/** + * @param {?} value + * @return {?} + */ + function (value) { + _this.currentPage = value; + _this.scrollToPage(value); + }))); + this.refresh(); + }; + /** + * @return {?} + */ + ScrollableDirective.prototype.scrolling = /** + * @return {?} + */ + function () { + this.refresh(); + }; + /** + * @return {?} + */ + ScrollableDirective.prototype.resizing = /** + * @return {?} + */ + function () { + this.refresh(); + }; + /** + * @param {?} pageNumber + * @return {?} + */ + ScrollableDirective.prototype.scrollToPage = /** + * @param {?} pageNumber + * @return {?} + */ + function (pageNumber) { + /** @type {?} */ + var el = this._elementRef.nativeElement; + /** @type {?} */ + var page = this.getPage(pageNumber); + /** @type {?} */ + var prev = pageNumber > 0 ? this.getPage(pageNumber - 1) : null; + /** @type {?} */ + var isSameTop = (prev && $$3(prev).offset().top === $$3(page).offset().top); + if (this._viewportService.checkInViewport(page, this.zoom) && isSameTop) { + return; + } + /** @type {?} */ + var pagesHeight = this.calculateOffset(pageNumber); + /** @type {?} */ + var options = { + left: 0, + top: pagesHeight + }; + if (el) { + // using polyfill + el.scroll(options); + } + }; + /** + * @private + * @return {?} + */ + ScrollableDirective.prototype.getChildren = /** + * @private + * @return {?} + */ + function () { + /** @type {?} */ + var el = this._elementRef ? this._elementRef.nativeElement : null; + if (el) { + // here and in the similar line below we getting the document pages + return el.children.item(0).children.item(0).children; + } + }; + /** + * @private + * @param {?} pageNumber + * @return {?} + */ + ScrollableDirective.prototype.getPage = /** + * @private + * @param {?} pageNumber + * @return {?} + */ + function (pageNumber) { + /** @type {?} */ + var el = this._elementRef ? this._elementRef.nativeElement : null; + if (el) { + return el.children.item(0).children.item(0).children.item(pageNumber - 1); + } + }; + /** + * @private + * @param {?} pageNumber + * @return {?} + */ + ScrollableDirective.prototype.calculateOffset = /** + * @private + * @param {?} pageNumber + * @return {?} + */ + function (pageNumber) { + /** @type {?} */ + var count = this._windowService.isFirefox() ? 1 : this.countPagesOnWidth(); + /** @type {?} */ + var margin = this._windowService.isDesktop() ? 40 : 10; + /** @type {?} */ + var pagesHeight = 0; + for (var i = 1; i < pageNumber / count; i++) { + /** @type {?} */ + var item = this.getPage(i); + /** @type {?} */ + var clientHeight = item ? item.clientHeight : 0; + pagesHeight += clientHeight > 0 ? clientHeight * this.getZoom() + margin : 0; + } + return pagesHeight; + }; + /** + * @private + * @return {?} + */ + ScrollableDirective.prototype.countPagesOnWidth = /** + * @private + * @return {?} + */ + function () { + /** @type {?} */ + var pageEl = this.getPage(1); + /** @type {?} */ + var offset = 150; + /** @type {?} */ + var count = Math.floor((this.getWidth() - offset) / (pageEl.getBoundingClientRect().width * this.getZoom())); + return count === 0 ? 1 : count; + }; + /** + * @return {?} + */ + ScrollableDirective.prototype.refresh = /** + * @return {?} + */ + function () { + /** @type {?} */ + var page; + /** @type {?} */ + var currentPageSet = false; + /** @type {?} */ + var pageElem = this.getPage(this.currentPage); + /** @type {?} */ + var currentPageRect = this.currentPage && pageElem ? pageElem.getBoundingClientRect() : null; + for (page = 1; page < this.getChildren().length + 1; page++) { + /** @type {?} */ + var element = this.getPage(page); + if (this._viewportService.checkInViewport(element, this.zoom)) { + if (!currentPageSet) { + if (!this.currentPage || !pageElem || (this.currentPage && currentPageRect && element.getBoundingClientRect().top !== currentPageRect.top)) { + this.currentPage = page; + this._navigateService.currentPage = page; + } + currentPageSet = true; + } + this._pagePreloadService.changeLastPageInView(page); + } + } + }; + /** + * @param {?} changes + * @return {?} + */ + ScrollableDirective.prototype.ngOnChanges = /** + * @param {?} changes + * @return {?} + */ + function (changes) { + this.refresh(); + }; + /** + * @return {?} + */ + ScrollableDirective.prototype.ngOnInit = /** + * @return {?} + */ + function () { + this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom; + }; + /** + * @private + * @return {?} + */ + ScrollableDirective.prototype.getWidth = /** + * @private + * @return {?} + */ + function () { + return this._elementRef ? this._elementRef.nativeElement.offsetWidth : window.innerWidth; + }; + /** + * @private + * @return {?} + */ + ScrollableDirective.prototype.getZoom = /** + * @private + * @return {?} + */ + function () { + return this.zoom / 100; + }; + ScrollableDirective.decorators = [ + { type: core.Directive, args: [{ + selector: '[gdScrollable]' + },] } + ]; + /** @nocollapse */ + ScrollableDirective.ctorParameters = function () { return [ + { type: core.ElementRef }, + { type: NavigateService }, + { type: PagePreloadService }, + { type: ZoomService }, + { type: WindowService }, + { type: ViewportService } + ]; }; + ScrollableDirective.propDecorators = { + scrolling: [{ type: core.HostListener, args: ['scroll',] }], + resizing: [{ type: core.HostListener, args: ['window:resize',] }] + }; + return ScrollableDirective; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var OnCloseService = /** @class */ (function () { - function OnCloseService() { - this._observer = new rxjs.Subject(); - this._onClose = this._observer.asObservable(); - } - Object.defineProperty(OnCloseService.prototype, "onClose", { - get: /** - * @return {?} - */ - function () { - return this._onClose; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} close - * @return {?} - */ - OnCloseService.prototype.close = /** - * @param {?} close - * @return {?} - */ - function (close) { - this._observer.next(close); - }; - OnCloseService.decorators = [ - { type: core.Injectable, args: [{ - providedIn: 'root' - },] } - ]; - /** @nocollapse */ - OnCloseService.ctorParameters = function () { return []; }; - /** @nocollapse */ OnCloseService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function OnCloseService_Factory() { return new OnCloseService(); }, token: OnCloseService, providedIn: "root" }); - return OnCloseService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ZoomDirective = /** @class */ (function () { + function ZoomDirective(_zoomService, _windowService, el) { + this._zoomService = _zoomService; + this._windowService = _windowService; + this.zoomActive = true; + this.el = el; + } + /** + * @return {?} + */ + ZoomDirective.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { + }; + /** + * @return {?} + */ + ZoomDirective.prototype.ngOnChanges = /** + * @return {?} + */ + function () { + this.setStyles(this._zoomService.zoom); + this.resizePages(this._zoomService.zoom); + }; + /** + * @return {?} + */ + ZoomDirective.prototype.ngOnInit = /** + * @return {?} + */ + function () { + var _this = this; + if (!this.zoomActive) { + return; + } + this.setStyles(this._zoomService.zoom); + this._zoomService.zoomChange.subscribe((/** + * @param {?} zoom + * @return {?} + */ + function (zoom) { + _this.setStyles(zoom); + _this.resizePages(zoom); + })); + }; + /** + * @private + * @param {?} zoom + * @return {?} + */ + ZoomDirective.prototype.setStyles = /** + * @private + * @param {?} zoom + * @return {?} + */ + function (zoom) { + if (!this.zoomActive) { + return; + } + /** @type {?} */ + var zoomInt = zoom === 100 ? 1 : zoom / 100; + if (this._windowService.isEdge()) { + this.zoomInt = zoomInt; + } + else { + this.zoomInt = null; + } + if (!this._windowService.isEdge()) { + this.transform = 'scale(' + zoomInt + ')'; + this.transformOrigin = 'top left'; + } + else { + this.transform = ""; + this.transformOrigin = ""; + } + /** @type {?} */ + var maxWidth = 0; + this.file.pages.forEach((/** + * @param {?} page + * @return {?} + */ + function (page) { + { + if (page.width > maxWidth) { + maxWidth = page.width; + } + } + })); + // Images and Excel-related files receiving dimensions in px from server + this.minWidth = maxWidth + FileUtil.find(this.file.guid, false).unit; + }; + /** + * @private + * @param {?} elm + * @return {?} + */ + ZoomDirective.prototype.getScrollWidth = /** + * @private + * @param {?} elm + * @return {?} + */ + function (elm) { + return elm.offsetWidth - elm.clientWidth; + }; + /** + * @private + * @param {?} zoom + * @return {?} + */ + ZoomDirective.prototype.resizePages = /** + * @private + * @param {?} zoom + * @return {?} + */ + function (zoom) { + /** @type {?} */ + var zoomInt = zoom === 100 ? 1 : zoom / 100; + /** @type {?} */ + var viewPortWidth = this.el.nativeElement.parentElement.offsetWidth; + /** @type {?} */ + var scrollWidth = this.getScrollWidth(this.el.nativeElement.parentElement); + this.width = (viewPortWidth / zoomInt - scrollWidth / zoomInt) + 'px'; + }; + /** + * @return {?} + */ + ZoomDirective.prototype.ngAfterViewInit = /** + * @return {?} + */ + function () { + this.setStyles(this._zoomService.zoom); + }; + ZoomDirective.decorators = [ + { type: core.Directive, args: [{ + selector: '[gdZoom]' + },] } + ]; + /** @nocollapse */ + ZoomDirective.ctorParameters = function () { return [ + { type: ZoomService }, + { type: WindowService }, + { type: core.ElementRef } + ]; }; + ZoomDirective.propDecorators = { + zoomActive: [{ type: core.Input }], + file: [{ type: core.Input }], + zoomInt: [{ type: core.HostBinding, args: ['style.zoom',] }], + transform: [{ type: core.HostBinding, args: ['style.transform',] }], + transformOrigin: [{ type: core.HostBinding, args: ['style.transform-origin',] }], + width: [{ type: core.HostBinding, args: ['style.width',] }], + minWidth: [{ type: core.HostBinding, args: ['style.min-width',] }] + }; + return ZoomDirective; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var SelectComponent = /** @class */ (function () { - function SelectComponent(_onCloseService) { - var _this = this; - this._onCloseService = _onCloseService; - this.disabled = false; - this.selected = new core.EventEmitter(); - this.isOpen = false; - _onCloseService.onClose.subscribe((/** - * @return {?} - */ - function () { - _this.close(); - })); - } - /** - * @return {?} - */ - SelectComponent.prototype.open = /** - * @return {?} - */ - function () { - if (!this.disabled) { - this.isOpen = true; - } - }; - /** - * @return {?} - */ - SelectComponent.prototype.close = /** - * @return {?} - */ - function () { - this.isOpen = false; - }; - /** - * @param {?} event - * @return {?} - */ - SelectComponent.prototype.onClickOutside = /** - * @param {?} event - * @return {?} - */ - function (event) { - this.close(); - }; - /** - * @param {?} $event - * @return {?} - */ - SelectComponent.prototype.toggle = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - $event.preventDefault(); - $event.stopPropagation(); - if (!this.disabled) { - this.isOpen = !this.isOpen; - } - }; - /** - * @param {?} $event - * @param {?} value - * @return {?} - */ - SelectComponent.prototype.select = /** - * @param {?} $event - * @param {?} value - * @return {?} - */ - function ($event, value) { - $event.preventDefault(); - $event.stopPropagation(); - this.selected.emit(value); - this.close(); - }; - SelectComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-select', - template: "
\n \n {{showSelected?.name}}\n \n \n
\n
\n
{{option.name}}
\n
\n
\n
\n
\n", - styles: [".select{min-width:50px;color:#959da5}.selected-value{font-size:14px;cursor:pointer;white-space:nowrap}.selected-value.inactive{cursor:not-allowed;color:#ccc}.nav-caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent;cursor:pointer}.nav-caret.inactive{cursor:not-allowed;color:#ccc}.dropdown-menu{position:absolute;top:49px;z-index:1000;float:left;min-width:96px;list-style:none;font-size:13px;text-align:left;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);background-clip:padding-box}.dropdown-menu .option{display:block;padding:7px 0 7px 7px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;cursor:pointer;font-size:10px}.dropdown-menu .option:hover{background-color:#25c2d4;color:#fff!important}.dropdown-menu-separator{height:1px;overflow:hidden;background-color:#f4f4f4;padding:0!important}"] - }] } - ]; - /** @nocollapse */ - SelectComponent.ctorParameters = function () { return [ - { type: OnCloseService } - ]; }; - SelectComponent.propDecorators = { - options: [{ type: core.Input }], - disabled: [{ type: core.Input }], - showSelected: [{ type: core.Input }], - selected: [{ type: core.Output }] - }; - return SelectComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var OnCloseService = /** @class */ (function () { + function OnCloseService() { + this._observer = new rxjs.Subject(); + this._onClose = this._observer.asObservable(); + } + Object.defineProperty(OnCloseService.prototype, "onClose", { + get: /** + * @return {?} + */ + function () { + return this._onClose; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} close + * @return {?} + */ + OnCloseService.prototype.close = /** + * @param {?} close + * @return {?} + */ + function (close) { + this._observer.next(close); + }; + OnCloseService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root' + },] } + ]; + /** @nocollapse */ + OnCloseService.ctorParameters = function () { return []; }; + /** @nocollapse */ OnCloseService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function OnCloseService_Factory() { return new OnCloseService(); }, token: OnCloseService, providedIn: "root" }); + return OnCloseService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var DisabledCursorDirective = /** @class */ (function () { - function DisabledCursorDirective() { - } - /** - * @private - * @return {?} - */ - DisabledCursorDirective.prototype.updateCursor = /** - * @private - * @return {?} - */ - function () { - this.cursor = this.dis ? true : false; - }; - /** - * @return {?} - */ - DisabledCursorDirective.prototype.ngOnInit = /** - * @return {?} - */ - function () { - this.updateCursor(); - }; - /** - * @param {?} changes - * @return {?} - */ - DisabledCursorDirective.prototype.ngOnChanges = /** - * @param {?} changes - * @return {?} - */ - function (changes) { - this.updateCursor(); - }; - DisabledCursorDirective.decorators = [ - { type: core.Directive, args: [{ - selector: '[gdDisabledCursor]' - },] } - ]; - /** @nocollapse */ - DisabledCursorDirective.ctorParameters = function () { return []; }; - DisabledCursorDirective.propDecorators = { - dis: [{ type: core.Input }], - cursor: [{ type: core.HostBinding, args: ['class.inactive',] }] - }; - return DisabledCursorDirective; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var SelectComponent = /** @class */ (function () { + function SelectComponent(_onCloseService) { + var _this = this; + this._onCloseService = _onCloseService; + this.disabled = false; + this.selected = new core.EventEmitter(); + this.isOpen = false; + _onCloseService.onClose.subscribe((/** + * @return {?} + */ + function () { + _this.close(); + })); + } + /** + * @return {?} + */ + SelectComponent.prototype.open = /** + * @return {?} + */ + function () { + if (!this.disabled) { + this.isOpen = true; + } + }; + /** + * @return {?} + */ + SelectComponent.prototype.close = /** + * @return {?} + */ + function () { + this.isOpen = false; + }; + /** + * @param {?} event + * @return {?} + */ + SelectComponent.prototype.onClickOutside = /** + * @param {?} event + * @return {?} + */ + function (event) { + this.close(); + }; + /** + * @param {?} $event + * @return {?} + */ + SelectComponent.prototype.toggle = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + $event.preventDefault(); + $event.stopPropagation(); + if (!this.disabled) { + this.isOpen = !this.isOpen; + } + }; + /** + * @param {?} $event + * @param {?} value + * @return {?} + */ + SelectComponent.prototype.select = /** + * @param {?} $event + * @param {?} value + * @return {?} + */ + function ($event, value) { + $event.preventDefault(); + $event.stopPropagation(); + this.selected.emit(value); + this.close(); + }; + SelectComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-select', + template: "
\r\n \r\n {{showSelected?.name}}\r\n \r\n \r\n
\r\n
\r\n
{{option.name}}
\r\n
\r\n
\r\n
\r\n
\r\n", + styles: [".select{min-width:50px;color:#959da5}.selected-value{font-size:14px;cursor:pointer;white-space:nowrap}.selected-value.inactive{cursor:not-allowed;color:#ccc}.nav-caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent;cursor:pointer}.nav-caret.inactive{cursor:not-allowed;color:#ccc}.dropdown-menu{position:absolute;top:49px;z-index:1000;float:left;min-width:96px;list-style:none;font-size:13px;text-align:left;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);background-clip:padding-box}.dropdown-menu .option{display:block;padding:7px 0 7px 7px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;cursor:pointer;font-size:10px}.dropdown-menu .option:hover{background-color:#25c2d4;color:#fff!important}.dropdown-menu-separator{height:1px;overflow:hidden;background-color:#f4f4f4;padding:0!important}"] + }] } + ]; + /** @nocollapse */ + SelectComponent.ctorParameters = function () { return [ + { type: OnCloseService } + ]; }; + SelectComponent.propDecorators = { + options: [{ type: core.Input }], + disabled: [{ type: core.Input }], + showSelected: [{ type: core.Input }], + selected: [{ type: core.Output }] + }; + return SelectComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var RotationDirective = /** @class */ (function () { - function RotationDirective() { - this.withMargin = true; - } - /** - * @private - * @return {?} - */ - RotationDirective.prototype.updateCursor = /** - * @private - * @return {?} - */ - function () { - if (typeof this.angle === "string") { - this.angle = parseInt(this.angle, 10); - } - if (this.angle) { - this.animation = 'none'; - this.transition = 'none'; - this.transform = 'rotate(' + this.angle + 'deg)'; - } - else if (this.angle === 0 && this.animation) { - this.animation = null; - this.transition = null; - this.transform = null; - } - if (this.withMargin) { - if (this.angle === 90 || this.angle === 270 || this.angle === -90 || this.angle === -270) { - if (this.isHtmlMode) { - if (this.isLandscape()) { - this.margin = '164px 254px'; - } - else { - this.margin = '-111px 254px'; - } - } - else { - if (this.isLandscape()) { - this.margin = '129px 100px -79px'; - } - else { - this.margin = '-72px 100px -79px'; - } - } - } - else if (this.angle === -180 || this.angle === 180) { - this.margin = '280px'; - } - else { - this.margin = null; - } - } - }; - /** - * @return {?} - */ - RotationDirective.prototype.isLandscape = /** - * @return {?} - */ - function () { - return this.width > this.height; - }; - /** - * @return {?} - */ - RotationDirective.prototype.ngOnInit = /** - * @return {?} - */ - function () { - this.updateCursor(); - }; - /** - * @param {?} changes - * @return {?} - */ - RotationDirective.prototype.ngOnChanges = /** - * @param {?} changes - * @return {?} - */ - function (changes) { - this.updateCursor(); - }; - RotationDirective.decorators = [ - { type: core.Directive, args: [{ - selector: '[gdRotation]' - },] } - ]; - /** @nocollapse */ - RotationDirective.ctorParameters = function () { return []; }; - RotationDirective.propDecorators = { - angle: [{ type: core.Input }], - isHtmlMode: [{ type: core.Input }], - width: [{ type: core.Input }], - height: [{ type: core.Input }], - withMargin: [{ type: core.Input }], - animation: [{ type: core.HostBinding, args: ['style.animation',] }], - transition: [{ type: core.HostBinding, args: ['style.transition-property',] }], - transform: [{ type: core.HostBinding, args: ['style.transform',] }], - margin: [{ type: core.HostBinding, args: ['style.margin',] }] - }; - return RotationDirective; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var DisabledCursorDirective = /** @class */ (function () { + function DisabledCursorDirective() { + } + /** + * @private + * @return {?} + */ + DisabledCursorDirective.prototype.updateCursor = /** + * @private + * @return {?} + */ + function () { + this.cursor = this.dis ? true : false; + }; + /** + * @return {?} + */ + DisabledCursorDirective.prototype.ngOnInit = /** + * @return {?} + */ + function () { + this.updateCursor(); + }; + /** + * @param {?} changes + * @return {?} + */ + DisabledCursorDirective.prototype.ngOnChanges = /** + * @param {?} changes + * @return {?} + */ + function (changes) { + this.updateCursor(); + }; + DisabledCursorDirective.decorators = [ + { type: core.Directive, args: [{ + selector: '[gdDisabledCursor]' + },] } + ]; + /** @nocollapse */ + DisabledCursorDirective.ctorParameters = function () { return []; }; + DisabledCursorDirective.propDecorators = { + dis: [{ type: core.Input }], + cursor: [{ type: core.HostBinding, args: ['class.inactive',] }] + }; + return DisabledCursorDirective; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var InitStateComponent = /** @class */ (function () { - function InitStateComponent() { - this.fileDropped = new core.EventEmitter(); - this.showUploadFile = false; - } - /** - * @return {?} - */ - InitStateComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - /** - * @param {?} $event - * @return {?} - */ - InitStateComponent.prototype.dropped = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - if ($event) { - this.fileDropped.emit($event); - this.showUploadFile = false; - } - }; - InitStateComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-init-state', - template: "
\n
\n \n \n \n \n
\n
\n \n {{text}}\n
\n
\n", - styles: [".wrapper{color:#959da5;background-color:#e7e7e7;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%}.icon{font-size:65px;margin-bottom:43px;display:flex;color:#959da5}.start{font-size:15px;text-align:center;color:#959da5}.gd-drag-n-drop-wrap.active{background-color:#fff;position:fixed;top:0;background:rgba(255,255,255,.8)}.gd-drag-n-drop-wrap.active .init-state-wrapper{position:absolute;opacity:.2;top:unset}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper{top:0;z-index:999}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper .icon{width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}.gd-drag-n-drop-wrap.active .text{color:#6e6e6e;font-size:14px}.init-state-dnd-wrapper,.init-state-wrapper{display:flex;flex-direction:column;width:250px;height:250px;align-items:center;justify-content:center}.init-state-wrapper{top:-60px;position:relative}"] - }] } - ]; - /** @nocollapse */ - InitStateComponent.ctorParameters = function () { return []; }; - InitStateComponent.propDecorators = { - icon: [{ type: core.Input }], - text: [{ type: core.Input }], - fileDropped: [{ type: core.Output }] - }; - return InitStateComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var RotationDirective = /** @class */ (function () { + function RotationDirective() { + this.withMargin = true; + } + /** + * @private + * @return {?} + */ + RotationDirective.prototype.updateCursor = /** + * @private + * @return {?} + */ + function () { + if (typeof this.angle === "string") { + this.angle = parseInt(this.angle, 10); + } + if (this.angle) { + this.animation = 'none'; + this.transition = 'none'; + this.transform = 'rotate(' + this.angle + 'deg)'; + } + else if (this.angle === 0 && this.animation) { + this.animation = null; + this.transition = null; + this.transform = null; + } + if (this.withMargin) { + if (this.angle === 90 || this.angle === 270 || this.angle === -90 || this.angle === -270) { + if (this.isHtmlMode) { + if (this.isLandscape()) { + this.margin = '164px 254px'; + } + else { + this.margin = '-111px 254px'; + } + } + else { + if (this.isLandscape()) { + this.margin = '129px 100px -79px'; + } + else { + this.margin = '-72px 100px -79px'; + } + } + } + else if (this.angle === -180 || this.angle === 180) { + this.margin = '280px'; + } + else { + this.margin = null; + } + } + }; + /** + * @return {?} + */ + RotationDirective.prototype.isLandscape = /** + * @return {?} + */ + function () { + return this.width > this.height; + }; + /** + * @return {?} + */ + RotationDirective.prototype.ngOnInit = /** + * @return {?} + */ + function () { + this.updateCursor(); + }; + /** + * @param {?} changes + * @return {?} + */ + RotationDirective.prototype.ngOnChanges = /** + * @param {?} changes + * @return {?} + */ + function (changes) { + this.updateCursor(); + }; + RotationDirective.decorators = [ + { type: core.Directive, args: [{ + selector: '[gdRotation]' + },] } + ]; + /** @nocollapse */ + RotationDirective.ctorParameters = function () { return []; }; + RotationDirective.propDecorators = { + angle: [{ type: core.Input }], + isHtmlMode: [{ type: core.Input }], + width: [{ type: core.Input }], + height: [{ type: core.Input }], + withMargin: [{ type: core.Input }], + animation: [{ type: core.HostBinding, args: ['style.animation',] }], + transition: [{ type: core.HostBinding, args: ['style.transition-property',] }], + transform: [{ type: core.HostBinding, args: ['style.transform',] }], + margin: [{ type: core.HostBinding, args: ['style.margin',] }] + }; + return RotationDirective; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var RenderPrintService = /** @class */ (function () { - function RenderPrintService() { - var _this = this; - this._render = new rxjs.Observable((/** - * @param {?} observer - * @return {?} - */ - function (observer) { - return _this._observer = observer; - })); - this._renderBlob = new rxjs.Observable((/** - * @param {?} observer - * @return {?} - */ - function (observer) { - return _this._observerBlob = observer; - })); - } - Object.defineProperty(RenderPrintService.prototype, "renderPrint", { - get: /** - * @return {?} - */ - function () { - return this._render; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} pages - * @return {?} - */ - RenderPrintService.prototype.changePages = /** - * @param {?} pages - * @return {?} - */ - function (pages) { - this._observer.next(pages); - }; - Object.defineProperty(RenderPrintService.prototype, "renderPrintBlob", { - get: /** - * @return {?} - */ - function () { - return this._renderBlob; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} file - * @return {?} - */ - RenderPrintService.prototype.changeBlob = /** - * @param {?} file - * @return {?} - */ - function (file) { - this._observerBlob.next(file); - }; - return RenderPrintService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var InitStateComponent = /** @class */ (function () { + function InitStateComponent() { + this.fileDropped = new core.EventEmitter(); + this.showUploadFile = false; + } + /** + * @return {?} + */ + InitStateComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + /** + * @param {?} $event + * @return {?} + */ + InitStateComponent.prototype.dropped = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + if ($event) { + this.fileDropped.emit($event); + this.showUploadFile = false; + } + }; + InitStateComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-init-state', + template: "
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{text}}\r\n
\r\n
\r\n", + styles: [".wrapper{color:#959da5;background-color:#e7e7e7;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%}.icon{font-size:65px;margin-bottom:43px;display:flex;color:#959da5}.start{font-size:15px;text-align:center;color:#959da5}.gd-drag-n-drop-wrap.active{background-color:#fff;position:fixed;top:0;background:rgba(255,255,255,.8)}.gd-drag-n-drop-wrap.active .init-state-wrapper{position:absolute;opacity:.2;top:unset}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper{top:0;z-index:999}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper .icon{width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}.gd-drag-n-drop-wrap.active .text{color:#6e6e6e;font-size:14px}.init-state-dnd-wrapper,.init-state-wrapper{display:flex;flex-direction:column;width:250px;height:250px;align-items:center;justify-content:center}.init-state-wrapper{top:-60px;position:relative}"] + }] } + ]; + /** @nocollapse */ + InitStateComponent.ctorParameters = function () { return []; }; + InitStateComponent.propDecorators = { + icon: [{ type: core.Input }], + text: [{ type: core.Input }], + fileDropped: [{ type: core.Output }] + }; + return InitStateComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var RenderPrintDirective = /** @class */ (function () { - function RenderPrintDirective(_renderService) { - var _this = this; - this._renderService = _renderService; - _renderService.renderPrint.subscribe((/** - * @param {?} pages - * @return {?} - */ - function (pages) { - _this.renderPrint(pages); - })); - _renderService.renderPrintBlob.subscribe((/** - * @param {?} file - * @return {?} - */ - function (file) { - _this.renderPrintBlob(file); - })); - } - /** - * @private - * @param {?} pages - * @return {?} - */ - RenderPrintDirective.prototype.renderPrint = /** - * @private - * @param {?} pages - * @return {?} - */ - function (pages) { - var e_1, _a, e_2, _b; - /** @type {?} */ - var pagesHtml = ''; - if (this.htmlMode) { - try { - for (var pages_1 = __values(pages), pages_1_1 = pages_1.next(); !pages_1_1.done; pages_1_1 = pages_1.next()) { - var page = pages_1_1.value; - pagesHtml += '
' + - '
' + page.data + '
' + - '
'; - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (pages_1_1 && !pages_1_1.done && (_a = pages_1.return)) _a.call(pages_1); - } - finally { if (e_1) throw e_1.error; } - } - } - else { - try { - for (var pages_2 = __values(pages), pages_2_1 = pages_2.next(); !pages_2_1.done; pages_2_1 = pages_2.next()) { - var page = pages_2_1.value; - pagesHtml += '
' + - '
' + - '
'; - } - } - catch (e_2_1) { e_2 = { error: e_2_1 }; } - finally { - try { - if (pages_2_1 && !pages_2_1.done && (_b = pages_2.return)) _b.call(pages_2); - } - finally { if (e_2) throw e_2.error; } - } - } - this.openWindow(pagesHtml, pages[0].width, pages[0].height); - }; - /** - * @private - * @param {?} pagesHtml - * @param {?} width - * @param {?} height - * @return {?} - */ - RenderPrintDirective.prototype.openWindow = /** - * @private - * @param {?} pagesHtml - * @param {?} width - * @param {?} height - * @return {?} - */ - function (pagesHtml, width, height) { - /** @type {?} */ - var a4Height = 842; - /** @type {?} */ - var a4Width = 595; - /** @type {?} */ - var imageA4Adjusted = ''; - if (width > a4Width && height > a4Height) { - /** @type {?} */ - var zoom = Math.round(height / a4Height) / 100; - imageA4Adjusted = '.gd-page img { width: 100%; margin: 0; padding: 0;}'; - if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) { - imageA4Adjusted = '.gd-page img { transform: scale(' + zoom + ');}'; - } - } - /** @type {?} */ - var cssPrint = ''; - /** @type {?} */ - var windowObject = window.open('', "PrintWindow", "width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes"); - windowObject.focus(); - windowObject.document.writeln(cssPrint); - windowObject.document.writeln(pagesHtml); - windowObject.document.close(); - windowObject.focus(); - windowObject.print(); - windowObject.close(); - }; - /** - * @private - * @param {?} file - * @return {?} - */ - RenderPrintDirective.prototype.renderPrintBlob = /** - * @private - * @param {?} file - * @return {?} - */ - function (file) { - /** @type {?} */ - var fileURL = URL.createObjectURL(file); - /** @type {?} */ - var windowObject = window.open(fileURL, "PrintWindow", "width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes"); - windowObject.focus(); - windowObject.print(); - windowObject.close(); - }; - RenderPrintDirective.decorators = [ - { type: core.Directive, args: [{ - selector: '[gdRenderPrint]' - },] } - ]; - /** @nocollapse */ - RenderPrintDirective.ctorParameters = function () { return [ - { type: RenderPrintService } - ]; }; - RenderPrintDirective.propDecorators = { - htmlMode: [{ type: core.Input }] - }; - return RenderPrintDirective; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var RenderPrintService = /** @class */ (function () { + function RenderPrintService() { + var _this = this; + this._render = new rxjs.Observable((/** + * @param {?} observer + * @return {?} + */ + function (observer) { + return _this._observer = observer; + })); + this._renderBlob = new rxjs.Observable((/** + * @param {?} observer + * @return {?} + */ + function (observer) { + return _this._observerBlob = observer; + })); + } + Object.defineProperty(RenderPrintService.prototype, "renderPrint", { + get: /** + * @return {?} + */ + function () { + return this._render; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} pages + * @return {?} + */ + RenderPrintService.prototype.changePages = /** + * @param {?} pages + * @return {?} + */ + function (pages) { + this._observer.next(pages); + }; + Object.defineProperty(RenderPrintService.prototype, "renderPrintBlob", { + get: /** + * @return {?} + */ + function () { + return this._renderBlob; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} file + * @return {?} + */ + RenderPrintService.prototype.changeBlob = /** + * @param {?} file + * @return {?} + */ + function (file) { + this._observerBlob.next(file); + }; + return RenderPrintService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var ExceptionMessageService = /** @class */ (function () { - function ExceptionMessageService() { - this._observer = new rxjs.BehaviorSubject('Server is not available'); - this._messageChange = this._observer.asObservable(); - } - Object.defineProperty(ExceptionMessageService.prototype, "messageChange", { - get: /** - * @return {?} - */ - function () { - return this._messageChange; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} message - * @return {?} - */ - ExceptionMessageService.prototype.changeMessage = /** - * @param {?} message - * @return {?} - */ - function (message) { - this._observer.next(message); - }; - return ExceptionMessageService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var RenderPrintDirective = /** @class */ (function () { + function RenderPrintDirective(_renderService) { + var _this = this; + this._renderService = _renderService; + _renderService.renderPrint.subscribe((/** + * @param {?} pages + * @return {?} + */ + function (pages) { + _this.renderPrint(pages); + })); + _renderService.renderPrintBlob.subscribe((/** + * @param {?} file + * @return {?} + */ + function (file) { + _this.renderPrintBlob(file); + })); + } + /** + * @private + * @param {?} pages + * @return {?} + */ + RenderPrintDirective.prototype.renderPrint = /** + * @private + * @param {?} pages + * @return {?} + */ + function (pages) { + var e_1, _a, e_2, _b; + /** @type {?} */ + var pagesHtml = ''; + if (this.htmlMode) { + try { + for (var pages_1 = __values(pages), pages_1_1 = pages_1.next(); !pages_1_1.done; pages_1_1 = pages_1.next()) { + var page = pages_1_1.value; + pagesHtml += '
' + + '
' + page.data + '
' + + '
'; + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (pages_1_1 && !pages_1_1.done && (_a = pages_1.return)) _a.call(pages_1); + } + finally { if (e_1) throw e_1.error; } + } + } + else { + try { + for (var pages_2 = __values(pages), pages_2_1 = pages_2.next(); !pages_2_1.done; pages_2_1 = pages_2.next()) { + var page = pages_2_1.value; + pagesHtml += '
' + + '
' + + '
'; + } + } + catch (e_2_1) { e_2 = { error: e_2_1 }; } + finally { + try { + if (pages_2_1 && !pages_2_1.done && (_b = pages_2.return)) _b.call(pages_2); + } + finally { if (e_2) throw e_2.error; } + } + } + this.openWindow(pagesHtml, pages[0].width, pages[0].height); + }; + /** + * @private + * @param {?} pagesHtml + * @param {?} width + * @param {?} height + * @return {?} + */ + RenderPrintDirective.prototype.openWindow = /** + * @private + * @param {?} pagesHtml + * @param {?} width + * @param {?} height + * @return {?} + */ + function (pagesHtml, width, height) { + /** @type {?} */ + var a4Height = 842; + /** @type {?} */ + var a4Width = 595; + /** @type {?} */ + var imageA4Adjusted = ''; + if (width > a4Width && height > a4Height) { + /** @type {?} */ + var zoom = Math.round(height / a4Height) / 100; + imageA4Adjusted = '.gd-page img { width: 100%; margin: 0; padding: 0;}'; + if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) { + imageA4Adjusted = '.gd-page img { transform: scale(' + zoom + ');}'; + } + } + /** @type {?} */ + var cssPrint = ''; + /** @type {?} */ + var windowObject = window.open('', "PrintWindow", "width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes"); + windowObject.focus(); + windowObject.document.writeln(cssPrint); + windowObject.document.writeln(pagesHtml); + windowObject.document.close(); + windowObject.focus(); + windowObject.print(); + windowObject.close(); + }; + /** + * @private + * @param {?} file + * @return {?} + */ + RenderPrintDirective.prototype.renderPrintBlob = /** + * @private + * @param {?} file + * @return {?} + */ + function (file) { + /** @type {?} */ + var fileURL = URL.createObjectURL(file); + /** @type {?} */ + var windowObject = window.open(fileURL, "PrintWindow", "width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes"); + windowObject.focus(); + windowObject.print(); + windowObject.close(); + }; + RenderPrintDirective.decorators = [ + { type: core.Directive, args: [{ + selector: '[gdRenderPrint]' + },] } + ]; + /** @nocollapse */ + RenderPrintDirective.ctorParameters = function () { return [ + { type: RenderPrintService } + ]; }; + RenderPrintDirective.propDecorators = { + htmlMode: [{ type: core.Input }] + }; + return RenderPrintDirective; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var ErrorModalComponent = /** @class */ (function () { - function ErrorModalComponent(messageService) { - var _this = this; - messageService.messageChange.subscribe((/** - * @param {?} message - * @return {?} - */ - function (message) { return _this.message = message; })); - } - /** - * @return {?} - */ - ErrorModalComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - ErrorModalComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-error-modal', - template: "\n
\n \n
\n
Something went wrong
\n
{{message ? message : 'Server is not available'}}
\n
\n
\n
\n", - styles: [".gd-modal-error{display:inline-flex;flex-direction:column;flex:1}.gd-modal-error .gd-modal-error-message{font-size:12px;margin:0 24px 24px 0}.gd-modal-error .gd-modal-error-title{font-size:16px;font-weight:700;margin:14px 0 10px}#gd-error-section{max-width:468px;max-height:204px;display:flex}#gd-error-section fa-icon{flex:1;color:#e04e4e;font-size:40px;margin:13px 23px 90px;text-align:center}"] - }] } - ]; - /** @nocollapse */ - ErrorModalComponent.ctorParameters = function () { return [ - { type: ExceptionMessageService } - ]; }; - return ErrorModalComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ExceptionMessageService = /** @class */ (function () { + function ExceptionMessageService() { + this._observer = new rxjs.BehaviorSubject('Server is not available'); + this._messageChange = this._observer.asObservable(); + } + Object.defineProperty(ExceptionMessageService.prototype, "messageChange", { + get: /** + * @return {?} + */ + function () { + return this._messageChange; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} message + * @return {?} + */ + ExceptionMessageService.prototype.changeMessage = /** + * @param {?} message + * @return {?} + */ + function (message) { + this._observer.next(message); + }; + return ExceptionMessageService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var PasswordService = /** @class */ (function () { - function PasswordService() { - this._observer = new rxjs.Subject(); - this._passChange = this._observer.asObservable(); - } - Object.defineProperty(PasswordService.prototype, "passChange", { - get: /** - * @return {?} - */ - function () { - return this._passChange; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} pass - * @return {?} - */ - PasswordService.prototype.setPassword = /** - * @param {?} pass - * @return {?} - */ - function (pass) { - this._observer.next(pass); - }; - return PasswordService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ErrorModalComponent = /** @class */ (function () { + function ErrorModalComponent(messageService) { + var _this = this; + messageService.messageChange.subscribe((/** + * @param {?} message + * @return {?} + */ + function (message) { return _this.message = message; })); + } + /** + * @return {?} + */ + ErrorModalComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + ErrorModalComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-error-modal', + template: "\r\n
\r\n \r\n
\r\n
Something went wrong
\r\n
{{message ? message : 'Server is not available'}}
\r\n
\r\n
\r\n
\r\n", + styles: [".gd-modal-error{display:inline-flex;flex-direction:column;flex:1}.gd-modal-error .gd-modal-error-message{font-size:12px;margin:0 24px 24px 0}.gd-modal-error .gd-modal-error-title{font-size:16px;font-weight:700;margin:14px 0 10px}#gd-error-section{max-width:468px;max-height:204px;display:flex}#gd-error-section fa-icon{flex:1;color:#e04e4e;font-size:40px;margin:13px 23px 90px;text-align:center}"] + }] } + ]; + /** @nocollapse */ + ErrorModalComponent.ctorParameters = function () { return [ + { type: ExceptionMessageService } + ]; }; + return ErrorModalComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var PasswordRequiredComponent = /** @class */ (function () { - function PasswordRequiredComponent(messageService, _passwordService) { - var _this = this; - this._passwordService = _passwordService; - messageService.messageChange.subscribe((/** - * @param {?} message - * @return {?} - */ - function (message) { return _this.message = message; })); - } - /** - * @return {?} - */ - PasswordRequiredComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - /** - * @param {?} value - * @return {?} - */ - PasswordRequiredComponent.prototype.setPassword = /** - * @param {?} value - * @return {?} - */ - function (value) { - this._passwordService.setPassword(value); - }; - PasswordRequiredComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-password-required', - template: "\n
\n
\n \n \n {{message}}\n \n Open\n \n
\n
\n
\n", - styles: ["#gd-password-section{width:468px;height:164px}.gd-password-wrap{display:flex;flex-direction:column;margin:24px}.gd-password-wrap label{font-size:14px;color:#acacac;padding-bottom:12px}.gd-password-wrap input{height:30px;border:1px solid #25c2d4}.gd-password-wrap input.error{border-color:#e04e4e}.gd-password-wrap gd-button{align-self:flex-end}.gd-password-wrap ::ng-deep .button{height:37px;width:72px;padding:0;justify-content:center}.gd-password-wrap ::ng-deep .button ::ng-deep .text{font-size:10px!important}.gd-password-error{color:#e04e4e;padding:10px 0 12px;height:12px;line-height:12px;font-size:12px}@media (max-width:1037px){#gd-password-section{min-width:375px}}"] - }] } - ]; - /** @nocollapse */ - PasswordRequiredComponent.ctorParameters = function () { return [ - { type: ExceptionMessageService }, - { type: PasswordService } - ]; }; - return PasswordRequiredComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PasswordService = /** @class */ (function () { + function PasswordService() { + this._observer = new rxjs.Subject(); + this._passChange = this._observer.asObservable(); + } + Object.defineProperty(PasswordService.prototype, "passChange", { + get: /** + * @return {?} + */ + function () { + return this._passChange; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} pass + * @return {?} + */ + PasswordService.prototype.setPassword = /** + * @param {?} pass + * @return {?} + */ + function (pass) { + this._observer.next(pass); + }; + return PasswordService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var ErrorInterceptorService = /** @class */ (function () { - function ErrorInterceptorService(_modalService, _messageService) { - this._modalService = _modalService; - this._messageService = _messageService; - } - /** - * @param {?} req - * @param {?} next - * @return {?} - */ - ErrorInterceptorService.prototype.intercept = /** - * @param {?} req - * @param {?} next - * @return {?} - */ - function (req, next) { - var _this = this; - /** @type {?} */ - var logFormat = 'background: maroon; color: white'; - return next.handle(req) - .pipe(operators.map((/** - * @param {?} data - * @return {?} - */ - function (data) { - return data; - })), operators.catchError((/** - * @param {?} exception - * @return {?} - */ - function (exception) { - if (exception instanceof http.HttpErrorResponse) { - switch (exception.status) { - case HttpError.BadRequest: - console.error('%c Bad Request 400', logFormat); - break; - case HttpError.Unauthorized: - console.error('%c Unauthorized 401', logFormat); - break; - case HttpError.NotFound: - console.error('%c Not Found 404', logFormat); - break; - case HttpError.TimeOut: - console.error('%c TimeOut 408', logFormat); - break; - case HttpError.InternalServerError: - console.error('%c big bad 500', logFormat); - _this._messageService.changeMessage(exception.error.message); - _this._modalService.open(CommonModals.ErrorMessage); - break; - case HttpError.Forbidden: - console.error('%c Forbidden 403', logFormat); - _this._messageService.changeMessage(exception.error.message); - _this._modalService.open(CommonModals.PasswordRequired); - break; - } - } - return rxjs.throwError(exception); - }))); - }; - ErrorInterceptorService.decorators = [ - { type: core.Injectable, args: [{ - providedIn: 'root' - },] } - ]; - /** @nocollapse */ - ErrorInterceptorService.ctorParameters = function () { return [ - { type: ModalService }, - { type: ExceptionMessageService } - ]; }; - /** @nocollapse */ ErrorInterceptorService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ErrorInterceptorService_Factory() { return new ErrorInterceptorService(core.ɵɵinject(ModalService), core.ɵɵinject(ExceptionMessageService)); }, token: ErrorInterceptorService, providedIn: "root" }); - return ErrorInterceptorService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var PasswordRequiredComponent = /** @class */ (function () { + function PasswordRequiredComponent(messageService, _passwordService) { + var _this = this; + this._passwordService = _passwordService; + messageService.messageChange.subscribe((/** + * @param {?} message + * @return {?} + */ + function (message) { return _this.message = message; })); + } + /** + * @return {?} + */ + PasswordRequiredComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + /** + * @param {?} value + * @return {?} + */ + PasswordRequiredComponent.prototype.setPassword = /** + * @param {?} value + * @return {?} + */ + function (value) { + this._passwordService.setPassword(value); + }; + PasswordRequiredComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-password-required', + template: "\r\n
\r\n
\r\n \r\n \r\n {{message}}\r\n \r\n Open\r\n \r\n
\r\n
\r\n
\r\n", + styles: ["#gd-password-section{width:468px;height:164px}.gd-password-wrap{display:flex;flex-direction:column;margin:24px}.gd-password-wrap label{font-size:14px;color:#acacac;padding-bottom:12px}.gd-password-wrap input{height:30px;border:1px solid #25c2d4}.gd-password-wrap input.error{border-color:#e04e4e}.gd-password-wrap gd-button{align-self:flex-end}.gd-password-wrap ::ng-deep .button{height:37px;width:72px;padding:0;justify-content:center}.gd-password-wrap ::ng-deep .button ::ng-deep .text{font-size:10px!important}.gd-password-error{color:#e04e4e;padding:10px 0 12px;height:12px;line-height:12px;font-size:12px}@media (max-width:1037px){#gd-password-section{min-width:375px}}"] + }] } + ]; + /** @nocollapse */ + PasswordRequiredComponent.ctorParameters = function () { return [ + { type: ExceptionMessageService }, + { type: PasswordService } + ]; }; + return PasswordRequiredComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var SearchService = /** @class */ (function () { - function SearchService() { - this._observer = new rxjs.Subject(); - this._textChange = this._observer.asObservable(); - this._observerCurrent = new rxjs.Subject(); - this._currentChange = this._observerCurrent.asObservable(); - this._observerTotal = new rxjs.Subject(); - this._totalChange = this._observerTotal.asObservable(); - } - Object.defineProperty(SearchService.prototype, "textChange", { - get: /** - * @return {?} - */ - function () { - return this._textChange; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} text - * @return {?} - */ - SearchService.prototype.setText = /** - * @param {?} text - * @return {?} - */ - function (text) { - this._observer.next(text); - }; - Object.defineProperty(SearchService.prototype, "currentChange", { - get: /** - * @return {?} - */ - function () { - return this._currentChange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SearchService.prototype, "totalChange", { - get: /** - * @return {?} - */ - function () { - return this._totalChange; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} current - * @return {?} - */ - SearchService.prototype.setCurrent = /** - * @param {?} current - * @return {?} - */ - function (current) { - this._observerCurrent.next(current); - }; - /** - * @param {?} total - * @return {?} - */ - SearchService.prototype.setTotal = /** - * @param {?} total - * @return {?} - */ - function (total) { - this._observerTotal.next(total); - }; - return SearchService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var ErrorInterceptorService = /** @class */ (function () { + function ErrorInterceptorService(_modalService, _messageService) { + this._modalService = _modalService; + this._messageService = _messageService; + } + /** + * @param {?} req + * @param {?} next + * @return {?} + */ + ErrorInterceptorService.prototype.intercept = /** + * @param {?} req + * @param {?} next + * @return {?} + */ + function (req, next) { + var _this = this; + /** @type {?} */ + var logFormat = 'background: maroon; color: white'; + return next.handle(req) + .pipe(operators.map((/** + * @param {?} data + * @return {?} + */ + function (data) { + return data; + })), operators.catchError((/** + * @param {?} exception + * @return {?} + */ + function (exception) { + if (exception instanceof http.HttpErrorResponse) { + switch (exception.status) { + case HttpError.BadRequest: + console.error('%c Bad Request 400', logFormat); + break; + case HttpError.Unauthorized: + console.error('%c Unauthorized 401', logFormat); + break; + case HttpError.NotFound: + console.error('%c Not Found 404', logFormat); + break; + case HttpError.TimeOut: + console.error('%c TimeOut 408', logFormat); + break; + case HttpError.InternalServerError: + console.error('%c big bad 500', logFormat); + _this._messageService.changeMessage(exception.error.message); + _this._modalService.open(CommonModals.ErrorMessage); + break; + case HttpError.Forbidden: + console.error('%c Forbidden 403', logFormat); + _this._messageService.changeMessage(exception.error.message); + _this._modalService.open(CommonModals.PasswordRequired); + break; + } + } + return rxjs.throwError(exception); + }))); + }; + ErrorInterceptorService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root' + },] } + ]; + /** @nocollapse */ + ErrorInterceptorService.ctorParameters = function () { return [ + { type: ModalService }, + { type: ExceptionMessageService } + ]; }; + /** @nocollapse */ ErrorInterceptorService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function ErrorInterceptorService_Factory() { return new ErrorInterceptorService(core.ɵɵinject(ModalService), core.ɵɵinject(ExceptionMessageService)); }, token: ErrorInterceptorService, providedIn: "root" }); + return ErrorInterceptorService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var SearchComponent = /** @class */ (function () { - function SearchComponent(_searchService) { - var _this = this; - this._searchService = _searchService; - this.hidePanel = new core.EventEmitter(false); - this.current = 0; - this.total = 0; - _searchService.totalChange.subscribe((/** - * @param {?} total - * @return {?} - */ - function (total) { - _this.total = total; - if (total !== 0) { - _this.current = 1; - } - else { - _this.current = 0; - } - _this._searchService.setCurrent(_this.current); - })); - } - /** - * @return {?} - */ - SearchComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - /** - * @param {?} text - * @return {?} - */ - SearchComponent.prototype.setText = /** - * @param {?} text - * @return {?} - */ - function (text) { - this._searchService.setText(text); - }; - /** - * @return {?} - */ - SearchComponent.prototype.hide = /** - * @return {?} - */ - function () { - this.setText(''); - this.hidePanel.emit(true); - }; - /** - * @return {?} - */ - SearchComponent.prototype.prev = /** - * @return {?} - */ - function () { - if (this.current > 1) { - this.current--; - this._searchService.setCurrent(this.current); - } - }; - /** - * @return {?} - */ - SearchComponent.prototype.next = /** - * @return {?} - */ - function () { - if (this.current < this.total) { - this.current++; - this._searchService.setCurrent(this.current); - } - }; - /** - * @return {?} - */ - SearchComponent.prototype.ngAfterViewInit = /** - * @return {?} - */ - function () { - this.textElement.nativeElement.focus(); - }; - SearchComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-search', - template: "
\n \n
{{current}} of {{total}}
\n \n \n \n \n \n \n
\n", - styles: [".gd-nav-search-btn{margin:3px 0 4px}.gd-nav-search-cancel{color:#fff;font-size:14px;width:37px}.gd-search-count{color:#959da5;font-size:12px;position:absolute;right:148px;top:14px}.gd-nav-search-container{background-color:#3e4e5a;width:410px;position:fixed;left:50%;top:60px;z-index:2;transform:translate(-50%,0);display:flex}.gd-search-input{float:left;height:30px;width:267px;font-size:14px;color:#6e6e6e;border:1px solid #25c2d4;margin:7px 0 7px 7px;box-sizing:border-box;padding:6px 0 5px 9px}input[type=text]::-ms-clear{display:none}@media (max-width:1037px){.gd-search-input{width:231px;height:30px;margin:7px 0 7px 5px}.gd-search-count{position:absolute;left:193px;top:15px}.gd-nav-search-container{width:100%}}"] - }] } - ]; - /** @nocollapse */ - SearchComponent.ctorParameters = function () { return [ - { type: SearchService } - ]; }; - SearchComponent.propDecorators = { - hidePanel: [{ type: core.Output }], - textElement: [{ type: core.ViewChild, args: ['text', { - static: true - },] }] - }; - return SearchComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var CustomHammerConfig = /** @class */ (function (_super) { + __extends(CustomHammerConfig, _super); + function CustomHammerConfig() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.overrides = (/** @type {?} */ ({ + // override default settings + 'pinch': { + direction: Hammer.DIRECTION_ALL, + enable: true, + dropRecognizeWith: 'rotate' + }, + 'rotate': { + direction: Hammer.DIRECTION_ALL, + enable: true, + requireFailure: 'pinch' + } + })); + return _this; + } + return CustomHammerConfig; + }(platformBrowser.HammerGestureConfig)); + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var SearchService = /** @class */ (function () { + function SearchService() { + this._observer = new rxjs.Subject(); + this._textChange = this._observer.asObservable(); + this._observerCurrent = new rxjs.Subject(); + this._currentChange = this._observerCurrent.asObservable(); + this._observerTotal = new rxjs.Subject(); + this._totalChange = this._observerTotal.asObservable(); + } + Object.defineProperty(SearchService.prototype, "textChange", { + get: /** + * @return {?} + */ + function () { + return this._textChange; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} text + * @return {?} + */ + SearchService.prototype.setText = /** + * @param {?} text + * @return {?} + */ + function (text) { + this._observer.next(text); + }; + Object.defineProperty(SearchService.prototype, "currentChange", { + get: /** + * @return {?} + */ + function () { + return this._currentChange; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SearchService.prototype, "totalChange", { + get: /** + * @return {?} + */ + function () { + return this._totalChange; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} current + * @return {?} + */ + SearchService.prototype.setCurrent = /** + * @param {?} current + * @return {?} + */ + function (current) { + this._observerCurrent.next(current); + }; + /** + * @param {?} total + * @return {?} + */ + SearchService.prototype.setTotal = /** + * @param {?} total + * @return {?} + */ + function (total) { + this._observerTotal.next(total); + }; + return SearchService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var $$4 = jquery; - var SearchableDirective = /** @class */ (function () { - function SearchableDirective(_elementRef, _searchService, _highlight, _zoomService) { - var _this = this; - this._elementRef = _elementRef; - this._searchService = _searchService; - this._highlight = _highlight; - this._zoomService = _zoomService; - this.current = 0; - this.total = 0; - this.zoom = 100; - _searchService.currentChange.subscribe((/** - * @param {?} current - * @return {?} - */ - function (current) { - _this.current = current; - if (_this.current !== 0) { - _this.moveToCurrent(); - } - })); - _searchService.textChange.subscribe((/** - * @param {?} text - * @return {?} - */ - function (text) { - _this.text = text; - _this.highlightSearch(); - })); - this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom; - _zoomService.zoomChange.subscribe((/** - * @param {?} val - * @return {?} - */ - function (val) { - _this.zoom = val ? val : _this.zoom; - })); - } - /** - * @private - * @return {?} - */ - SearchableDirective.prototype.highlightSearch = /** - * @private - * @return {?} - */ - function () { - /** @type {?} */ - var el = this._elementRef ? this._elementRef.nativeElement : null; - if (el) { - this.cleanHighlight(el); - if (this.text) { - this.highlightEl(el); - /** @type {?} */ - var count = el.querySelectorAll('.gd-highlight').length; - this.total = count; - } - else { - this.total = 0; - } - this._searchService.setTotal(this.total); - } - }; - /** - * @private - * @return {?} - */ - SearchableDirective.prototype.moveToCurrent = /** - * @private - * @return {?} - */ - function () { - if (this.current === 0) { - return; - } - /** @type {?} */ - var currentZoom = this.getZoom(); - /** @type {?} */ - var el = this._elementRef ? this._elementRef.nativeElement : null; - if (el) { - el.querySelectorAll('.gd-highlight-select').forEach((/** - * @param {?} value - * @return {?} - */ - function (value) { - $$4(value).removeClass('gd-highlight-select'); - })); - /** @type {?} */ - var currentEl = el.querySelectorAll('.gd-highlight')[this.current - 1]; - $$4(currentEl).addClass('gd-highlight-select'); - if (currentEl) { - /** @type {?} */ - var options = { - left: 0, - top: ($$4(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150, - }; - // using polyfill - el.parentElement.parentElement.scroll(options); - } - } - }; - /** - * @private - * @param {?} el - * @return {?} - */ - SearchableDirective.prototype.highlightEl = /** - * @private - * @param {?} el - * @return {?} - */ - function (el) { - /** @type {?} */ - var textNodes = $$4(el).find('*').contents().filter((/** - * @return {?} - */ - function () { - /** @type {?} */ - var nodeName = this.parentElement.nodeName.toLowerCase(); - /** @type {?} */ - var checkClass = ((/** @type {?} */ (this))).classList ? !((/** @type {?} */ (this))).classList.contains('gd-highlight') : true; - return this.nodeType === 3 && - this.textContent.trim().length !== 0 && - nodeName !== 'style' && - nodeName !== 'title' && - nodeName !== 'body' && - nodeName !== 'script' && - checkClass; - })); - /** @type {?} */ - var text = this.text; - /** @type {?} */ - var highlight = this._highlight; - textNodes.each((/** - * @return {?} - */ - function () { - /** @type {?} */ - var $this = $$4(this); - /** @type {?} */ - var content = $this.text(); - content = highlight.transform(content, text); - $this.replaceWith(content); - })); - el.normalize(); - }; - /** - * @private - * @param {?} el - * @return {?} - */ - SearchableDirective.prototype.cleanHighlight = /** - * @private - * @param {?} el - * @return {?} - */ - function (el) { - /** @type {?} */ - var nodeListOf = el.querySelectorAll('.gd-highlight'); - for (var i = 0; i < nodeListOf.length; i++) { - /** @type {?} */ - var element = nodeListOf.item(i); - element.replaceWith(((/** @type {?} */ (element))).innerText); - } - el.normalize(); - }; - /** - * @private - * @return {?} - */ - SearchableDirective.prototype.getZoom = /** - * @private - * @return {?} - */ - function () { - return this.zoom / 100; - }; - SearchableDirective.decorators = [ - { type: core.Directive, args: [{ - selector: '[gdSearchable]' - },] } - ]; - /** @nocollapse */ - SearchableDirective.ctorParameters = function () { return [ - { type: core.ElementRef }, - { type: SearchService }, - { type: HighlightSearchPipe }, - { type: ZoomService } - ]; }; - return SearchableDirective; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var SearchComponent = /** @class */ (function () { + function SearchComponent(_searchService) { + var _this = this; + this._searchService = _searchService; + this.hidePanel = new core.EventEmitter(false); + this.current = 0; + this.total = 0; + _searchService.totalChange.subscribe((/** + * @param {?} total + * @return {?} + */ + function (total) { + _this.total = total; + if (total !== 0) { + _this.current = 1; + } + else { + _this.current = 0; + } + _this._searchService.setCurrent(_this.current); + })); + } + /** + * @return {?} + */ + SearchComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + /** + * @param {?} text + * @return {?} + */ + SearchComponent.prototype.setText = /** + * @param {?} text + * @return {?} + */ + function (text) { + this._searchService.setText(text); + }; + /** + * @return {?} + */ + SearchComponent.prototype.hide = /** + * @return {?} + */ + function () { + this.setText(''); + this.hidePanel.emit(true); + }; + /** + * @return {?} + */ + SearchComponent.prototype.prev = /** + * @return {?} + */ + function () { + if (this.current > 1) { + this.current--; + this._searchService.setCurrent(this.current); + } + }; + /** + * @return {?} + */ + SearchComponent.prototype.next = /** + * @return {?} + */ + function () { + if (this.current < this.total) { + this.current++; + this._searchService.setCurrent(this.current); + } + }; + /** + * @return {?} + */ + SearchComponent.prototype.ngAfterViewInit = /** + * @return {?} + */ + function () { + this.textElement.nativeElement.focus(); + }; + SearchComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-search', + template: "
\r\n \r\n
{{current}} of {{total}}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n", + styles: [".gd-nav-search-btn{margin:3px 0 4px}.gd-nav-search-cancel{color:#fff;font-size:14px;width:37px}.gd-search-count{color:#959da5;font-size:12px;position:absolute;right:148px;top:14px}.gd-nav-search-container{background-color:#3e4e5a;width:410px;position:fixed;left:50%;top:60px;z-index:2;transform:translate(-50%,0);display:flex}.gd-search-input{float:left;height:30px;width:267px;font-size:14px;color:#6e6e6e;border:1px solid #25c2d4;margin:7px 0 7px 7px;box-sizing:border-box;padding:6px 0 5px 9px}input[type=text]::-ms-clear{display:none}@media (max-width:1037px){.gd-search-input{width:231px;height:30px;margin:7px 0 7px 5px}.gd-search-count{position:absolute;left:193px;top:15px}.gd-nav-search-container{width:100%}}"] + }] } + ]; + /** @nocollapse */ + SearchComponent.ctorParameters = function () { return [ + { type: SearchService } + ]; }; + SearchComponent.propDecorators = { + hidePanel: [{ type: core.Output }], + textElement: [{ type: core.ViewChild, args: ['text', { + static: true + },] }] + }; + return SearchComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var TabbedToolbarsComponent = /** @class */ (function () { - function TabbedToolbarsComponent() { - } - /** - * @return {?} - */ - TabbedToolbarsComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - TabbedToolbarsComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-tabbed-toolbars', - template: "
\n \n \n
\n", - styles: [".top-panel{background:#3e4e5a;display:flex;width:100%;height:90px}.top-panel ::ng-deep .logo{height:30px;font-size:16px}@media (max-width:1037px){.top-panel{height:60px}.top-panel ::ng-deep .logo{height:60px}}"] - }] } - ]; - /** @nocollapse */ - TabbedToolbarsComponent.ctorParameters = function () { return []; }; - return TabbedToolbarsComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var $$4 = jquery; + var SearchableDirective = /** @class */ (function () { + function SearchableDirective(_elementRef, _searchService, _highlight, _zoomService) { + var _this = this; + this._elementRef = _elementRef; + this._searchService = _searchService; + this._highlight = _highlight; + this._zoomService = _zoomService; + this.current = 0; + this.total = 0; + this.zoom = 100; + _searchService.currentChange.subscribe((/** + * @param {?} current + * @return {?} + */ + function (current) { + _this.current = current; + if (_this.current !== 0) { + _this.moveToCurrent(); + } + })); + _searchService.textChange.subscribe((/** + * @param {?} text + * @return {?} + */ + function (text) { + _this.text = text; + _this.highlightSearch(); + })); + this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom; + _zoomService.zoomChange.subscribe((/** + * @param {?} val + * @return {?} + */ + function (val) { + _this.zoom = val ? val : _this.zoom; + })); + } + /** + * @private + * @return {?} + */ + SearchableDirective.prototype.highlightSearch = /** + * @private + * @return {?} + */ + function () { + /** @type {?} */ + var el = this._elementRef ? this._elementRef.nativeElement : null; + if (el) { + this.cleanHighlight(el); + if (this.text) { + this.highlightEl(el); + /** @type {?} */ + var count = el.querySelectorAll('.gd-highlight').length; + this.total = count; + } + else { + this.total = 0; + } + this._searchService.setTotal(this.total); + } + }; + /** + * @private + * @return {?} + */ + SearchableDirective.prototype.moveToCurrent = /** + * @private + * @return {?} + */ + function () { + if (this.current === 0) { + return; + } + /** @type {?} */ + var currentZoom = this.getZoom(); + /** @type {?} */ + var el = this._elementRef ? this._elementRef.nativeElement : null; + if (el) { + el.querySelectorAll('.gd-highlight-select').forEach((/** + * @param {?} value + * @return {?} + */ + function (value) { + $$4(value).removeClass('gd-highlight-select'); + })); + /** @type {?} */ + var currentEl = el.querySelectorAll('.gd-highlight')[this.current - 1]; + $$4(currentEl).addClass('gd-highlight-select'); + if (currentEl) { + /** @type {?} */ + var options = { + left: 0, + top: ($$4(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150, + }; + // using polyfill + el.parentElement.parentElement.scroll(options); + } + } + }; + /** + * @private + * @param {?} el + * @return {?} + */ + SearchableDirective.prototype.highlightEl = /** + * @private + * @param {?} el + * @return {?} + */ + function (el) { + /** @type {?} */ + var textNodes = $$4(el).find('*').contents().filter((/** + * @return {?} + */ + function () { + /** @type {?} */ + var nodeName = this.parentElement.nodeName.toLowerCase(); + /** @type {?} */ + var checkClass = ((/** @type {?} */ (this))).classList ? !((/** @type {?} */ (this))).classList.contains('gd-highlight') : true; + return this.nodeType === 3 && + this.textContent.trim().length !== 0 && + nodeName !== 'style' && + nodeName !== 'title' && + nodeName !== 'body' && + nodeName !== 'script' && + checkClass; + })); + /** @type {?} */ + var text = this.text; + /** @type {?} */ + var highlight = this._highlight; + textNodes.each((/** + * @return {?} + */ + function () { + /** @type {?} */ + var $this = $$4(this); + /** @type {?} */ + var content = $this.text(); + content = highlight.transform(content, text); + $this.replaceWith(content); + })); + el.normalize(); + }; + /** + * @private + * @param {?} el + * @return {?} + */ + SearchableDirective.prototype.cleanHighlight = /** + * @private + * @param {?} el + * @return {?} + */ + function (el) { + /** @type {?} */ + var nodeListOf = el.querySelectorAll('.gd-highlight'); + for (var i = 0; i < nodeListOf.length; i++) { + /** @type {?} */ + var element = nodeListOf.item(i); + element.replaceWith(((/** @type {?} */ (element))).innerText); + } + el.normalize(); + }; + /** + * @private + * @return {?} + */ + SearchableDirective.prototype.getZoom = /** + * @private + * @return {?} + */ + function () { + return this.zoom / 100; + }; + SearchableDirective.decorators = [ + { type: core.Directive, args: [{ + selector: '[gdSearchable]' + },] } + ]; + /** @nocollapse */ + SearchableDirective.ctorParameters = function () { return [ + { type: core.ElementRef }, + { type: SearchService }, + { type: HighlightSearchPipe }, + { type: ZoomService } + ]; }; + return SearchableDirective; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var TabActivatorService = /** @class */ (function () { - function TabActivatorService() { - this._observer = new rxjs.Subject(); - this._activeTabChange = this._observer.asObservable(); - } - Object.defineProperty(TabActivatorService.prototype, "activeTabChange", { - get: /** - * @return {?} - */ - function () { - return this._activeTabChange; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} tabId - * @return {?} - */ - TabActivatorService.prototype.changeActiveTab = /** - * @param {?} tabId - * @return {?} - */ - function (tabId) { - this._observer.next(tabId); - }; - return TabActivatorService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TabbedToolbarsComponent = /** @class */ (function () { + function TabbedToolbarsComponent() { + } + /** + * @return {?} + */ + TabbedToolbarsComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + TabbedToolbarsComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-tabbed-toolbars', + template: "
\r\n \r\n \r\n
\r\n", + styles: [".top-panel{background:#3e4e5a;display:flex;width:100%;height:90px}.top-panel ::ng-deep .logo{height:30px;font-size:16px}@media (max-width:1037px){.top-panel{height:60px}.top-panel ::ng-deep .logo{height:60px}}"] + }] } + ]; + /** @nocollapse */ + TabbedToolbarsComponent.ctorParameters = function () { return []; }; + return TabbedToolbarsComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var TabComponent = /** @class */ (function () { - function TabComponent(_tabActivatorService) { - var _this = this; - this._tabActivatorService = _tabActivatorService; - this.disabled = false; - this.active = false; - this.content = true; - this._tabActivatorService.activeTabChange.subscribe((/** - * @param {?} tabId - * @return {?} - */ - function (tabId) { - _this.activation(tabId); - })); - } - /** - * @private - * @param {?} tabId - * @return {?} - */ - TabComponent.prototype.activation = /** - * @private - * @param {?} tabId - * @return {?} - */ - function (tabId) { - if (this.id === tabId) { - this.active = true; - } - else { - this.active = false; - } - }; - /** - * @return {?} - */ - TabComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - /** - * @return {?} - */ - TabComponent.prototype.selectTab = /** - * @return {?} - */ - function () { - if (this.disabled) { - return; - } - this._tabActivatorService.changeActiveTab(this.id); - }; - TabComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-tab', - template: "
\n
{{tabTitle}}
\n \n
\n
\n \n
\n", - styles: [".gd-editor-buttons{height:60px;position:absolute;background-color:#fff;width:100%;left:0;line-height:60px;display:none;z-index:9}.gd-editor-buttons ::ng-deep .toolbar-panel{height:60px}.gd-editor-buttons.active{display:flex}.gd-tab{text-align:center;font-size:11px;color:#e5e5e5;height:30px;line-height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center}.gd-tab .icon{display:none;font-size:14px;margin:auto 23px}.gd-tab .title{margin:auto 23px}.gd-tab.active{background-color:#fff;color:#3e4e5a;font-weight:700}@media (max-width:1037px){.gd-tab{height:60px;line-height:60px}.gd-tab .title{display:none}.gd-tab .icon{display:block}}"] - }] } - ]; - /** @nocollapse */ - TabComponent.ctorParameters = function () { return [ - { type: TabActivatorService } - ]; }; - TabComponent.propDecorators = { - id: [{ type: core.Input }], - tabTitle: [{ type: core.Input }], - icon: [{ type: core.Input }], - disabled: [{ type: core.Input }], - active: [{ type: core.Input }], - content: [{ type: core.Input }] - }; - return TabComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TabActivatorService = /** @class */ (function () { + function TabActivatorService() { + this._observer = new rxjs.Subject(); + this._activeTabChange = this._observer.asObservable(); + } + Object.defineProperty(TabActivatorService.prototype, "activeTabChange", { + get: /** + * @return {?} + */ + function () { + return this._activeTabChange; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} tabId + * @return {?} + */ + TabActivatorService.prototype.changeActiveTab = /** + * @param {?} tabId + * @return {?} + */ + function (tabId) { + this._observer.next(tabId); + }; + return TabActivatorService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var TabsComponent = /** @class */ (function () { - function TabsComponent() { - } - TabsComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-tabs', - template: "
\n \n
\n", - styles: [".gd-tabs{display:flex}"] - }] } - ]; - /** @nocollapse */ - TabsComponent.ctorParameters = function () { return []; }; - return TabsComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TabComponent = /** @class */ (function () { + function TabComponent(_tabActivatorService) { + var _this = this; + this._tabActivatorService = _tabActivatorService; + this.disabled = false; + this.active = false; + this.content = true; + this._tabActivatorService.activeTabChange.subscribe((/** + * @param {?} tabId + * @return {?} + */ + function (tabId) { + _this.activation(tabId); + })); + } + /** + * @private + * @param {?} tabId + * @return {?} + */ + TabComponent.prototype.activation = /** + * @private + * @param {?} tabId + * @return {?} + */ + function (tabId) { + if (this.id === tabId) { + this.active = true; + } + else { + this.active = false; + } + }; + /** + * @return {?} + */ + TabComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + /** + * @return {?} + */ + TabComponent.prototype.selectTab = /** + * @return {?} + */ + function () { + if (this.disabled) { + return; + } + this._tabActivatorService.changeActiveTab(this.id); + }; + TabComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-tab', + template: "
\r\n
{{tabTitle}}
\r\n \r\n
\r\n
\r\n \r\n
\r\n", + styles: [".gd-editor-buttons{height:60px;position:absolute;background-color:#fff;width:100%;left:0;line-height:60px;display:none;z-index:9}.gd-editor-buttons ::ng-deep .toolbar-panel{height:60px}.gd-editor-buttons.active{display:flex}.gd-tab{text-align:center;font-size:11px;color:#e5e5e5;height:30px;line-height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center}.gd-tab .icon{display:none;font-size:14px;margin:auto 23px}.gd-tab .title{margin:auto 23px}.gd-tab.active{background-color:#fff;color:#3e4e5a;font-weight:700}@media (max-width:1037px){.gd-tab{height:60px;line-height:60px}.gd-tab .title{display:none}.gd-tab .icon{display:block}}"] + }] } + ]; + /** @nocollapse */ + TabComponent.ctorParameters = function () { return [ + { type: TabActivatorService } + ]; }; + TabComponent.propDecorators = { + id: [{ type: core.Input }], + tabTitle: [{ type: core.Input }], + icon: [{ type: core.Input }], + disabled: [{ type: core.Input }], + active: [{ type: core.Input }], + content: [{ type: core.Input }] + }; + return TabComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var Formatting = /** @class */ (function () { - function Formatting(fontSize, color, bgColor, bold, italic, underline, font, strikeout, align, list) { - this.fontSize = fontSize; - this.color = color; - this.bgColor = bgColor; - this.bold = bold; - this.italic = italic; - this.underline = underline; - this.font = font; - this.strikeout = strikeout; - this.align = align; - this.list = list; - } - Formatting.DEFAULT = new Formatting(10, '#000000', '#FFFFFF', false, false, false, 'Arial', false, "", ""); - return Formatting; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var TabsComponent = /** @class */ (function () { + function TabsComponent() { + } + TabsComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-tabs', + template: "
\r\n \r\n
\r\n", + styles: [".gd-tabs{display:flex}"] + }] } + ]; + /** @nocollapse */ + TabsComponent.ctorParameters = function () { return []; }; + return TabsComponent; }()); - var FormattingService = /** @class */ (function () { - function FormattingService() { - this._observerBold = new rxjs.Subject(); - this._formatBoldChange = this._observerBold.asObservable(); - this._observerUnderline = new rxjs.Subject(); - this._formatUnderlineChange = this._observerUnderline.asObservable(); - this._observerUndo = new rxjs.Subject(); - this._undo = this._observerUndo.asObservable(); - this._observerRedo = new rxjs.Subject(); - this._redo = this._observerRedo.asObservable(); - this._observerItalic = new rxjs.Subject(); - this._formatItalicChange = this._observerItalic.asObservable(); - this._observerColor = new rxjs.Subject(); - this._formatColorChange = this._observerColor.asObservable(); - this._observerBgColor = new rxjs.Subject(); - this._formatBgColorChange = this._observerBgColor.asObservable(); - this._observerFontSize = new rxjs.Subject(); - this._formatFontSizeChange = this._observerFontSize.asObservable(); - this._observerFont = new rxjs.Subject(); - this._formatFontChange = this._observerFont.asObservable(); - this._observerStrikeout = new rxjs.Subject(); - this._formatStrikeoutChange = this._observerStrikeout.asObservable(); - this._observerAlign = new rxjs.Subject(); - this._formatAlignChange = this._observerAlign.asObservable(); - this._observerList = new rxjs.Subject(); - this._formatListChange = this._observerList.asObservable(); - } - Object.defineProperty(FormattingService.prototype, "formatBoldChange", { - get: /** - * @return {?} - */ - function () { - return this._formatBoldChange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FormattingService.prototype, "formatUnderlineChange", { - get: /** - * @return {?} - */ - function () { - return this._formatUnderlineChange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FormattingService.prototype, "formatColorChange", { - get: /** - * @return {?} - */ - function () { - return this._formatColorChange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FormattingService.prototype, "formatBgColorChange", { - get: /** - * @return {?} - */ - function () { - return this._formatBgColorChange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FormattingService.prototype, "formatFontSizeChange", { - get: /** - * @return {?} - */ - function () { - return this._formatFontSizeChange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FormattingService.prototype, "formatFontChange", { - get: /** - * @return {?} - */ - function () { - return this._formatFontChange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FormattingService.prototype, "undo", { - get: /** - * @return {?} - */ - function () { - return this._undo; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FormattingService.prototype, "redo", { - get: /** - * @return {?} - */ - function () { - return this._redo; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FormattingService.prototype, "formatItalicChange", { - get: /** - * @return {?} - */ - function () { - return this._formatItalicChange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FormattingService.prototype, "formatStrikeoutChange", { - get: /** - * @return {?} - */ - function () { - return this._formatStrikeoutChange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FormattingService.prototype, "formatAlignChange", { - get: /** - * @return {?} - */ - function () { - return this._formatAlignChange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FormattingService.prototype, "formatListChange", { - get: /** - * @return {?} - */ - function () { - return this._formatListChange; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} val - * @return {?} - */ - FormattingService.createFontSizeOption = /** - * @param {?} val - * @return {?} - */ - function (val) { - return { value: val, name: val + 'px', separator: false }; - }; - /** - * @return {?} - */ - FormattingService.getFontSizeOptions = /** - * @return {?} - */ - function () { - return [ - FormattingService.createFontSizeOption(8), - FormattingService.createFontSizeOption(10), - FormattingService.createFontSizeOption(12), - FormattingService.createFontSizeOption(14), - FormattingService.createFontSizeOption(16), - FormattingService.createFontSizeOption(18), - FormattingService.createFontSizeOption(20), - FormattingService.createFontSizeOption(22), - FormattingService.createFontSizeOption(24), - ]; - }; - /** - * @param {?} val - * @return {?} - */ - FormattingService.createFontOption = /** - * @param {?} val - * @return {?} - */ - function (val) { - return { value: val, name: val, separator: false }; - }; - /** - * @return {?} - */ - FormattingService.getFontOptions = /** - * @return {?} - */ - function () { - var _this = this; - /** @type {?} */ - var fonts = ["Arial", "Calibri", "Century Gothic", "Comic Sans", "Consolas", "Courier", "Dejavu Sans", "Dejavu Serif", "Georgia", "Gill Sans", "Helvetica", "Impact", "Lucida Sans", - "Myriad Pro", "Open Sans", "Palatino", "Tahoma", "Times New Roman", "Trebuchet"]; - /** @type {?} */ - var fontOptions = []; - fonts.forEach((/** - * @param {?} font - * @return {?} - */ - function (font) { - fontOptions.push(_this.createFontOption(font)); - })); - return fontOptions; - }; - /** - * @param {?} $event - * @return {?} - */ - FormattingService.prototype.changeFormatFontSize = /** - * @param {?} $event - * @return {?} - */ - function ($event) { - this._observerFontSize.next($event); - }; - /** - * @param {?} bold - * @return {?} - */ - FormattingService.prototype.changeFormatBold = /** - * @param {?} bold - * @return {?} - */ - function (bold) { - this._observerBold.next(bold); - }; - /** - * @param {?} underline - * @return {?} - */ - FormattingService.prototype.changeFormatUnderline = /** - * @param {?} underline - * @return {?} - */ - function (underline) { - this._observerUnderline.next(underline); - }; - /** - * @return {?} - */ - FormattingService.prototype.Undo = /** - * @return {?} - */ - function () { - this._observerUndo.next(); - }; - /** - * @return {?} - */ - FormattingService.prototype.Redo = /** - * @return {?} - */ - function () { - this._observerRedo.next(); - }; - /** - * @param {?} italic - * @return {?} - */ - FormattingService.prototype.changeFormatItalic = /** - * @param {?} italic - * @return {?} - */ - function (italic) { - this._observerItalic.next(italic); - }; - /** - * @param {?} color - * @return {?} - */ - FormattingService.prototype.changeFormatColor = /** - * @param {?} color - * @return {?} - */ - function (color) { - this._observerColor.next(color); - }; - /** - * @param {?} bgcolor - * @return {?} - */ - FormattingService.prototype.changeFormatBgColor = /** - * @param {?} bgcolor - * @return {?} - */ - function (bgcolor) { - this._observerBgColor.next(bgcolor); - }; - /** - * @param {?} font - * @return {?} - */ - FormattingService.prototype.changeFormatFont = /** - * @param {?} font - * @return {?} - */ - function (font) { - this._observerFont.next(font); - }; - /** - * @param {?} strikeout - * @return {?} - */ - FormattingService.prototype.changeFormatStrikeout = /** - * @param {?} strikeout - * @return {?} - */ - function (strikeout) { - this._observerStrikeout.next(strikeout); - }; - /** - * @param {?} align - * @return {?} - */ - FormattingService.prototype.changeFormatAlign = /** - * @param {?} align - * @return {?} - */ - function (align) { - this._observerAlign.next(align); - }; - /** - * @param {?} list - * @return {?} - */ - FormattingService.prototype.changeFormatList = /** - * @param {?} list - * @return {?} - */ - function (list) { - this._observerList.next(list); - }; - return FormattingService; + + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var Formatting = /** @class */ (function () { + function Formatting(fontSize, color, bgColor, bold, italic, underline, font, strikeout, align, list) { + this.fontSize = fontSize; + this.color = color; + this.bgColor = bgColor; + this.bold = bold; + this.italic = italic; + this.underline = underline; + this.font = font; + this.strikeout = strikeout; + this.align = align; + this.list = list; + } + Formatting.DEFAULT = new Formatting(10, '#000000', '#FFFFFF', false, false, false, 'Arial', false, "", ""); + return Formatting; + }()); + var FormattingService = /** @class */ (function () { + function FormattingService() { + this._observerBold = new rxjs.Subject(); + this._formatBoldChange = this._observerBold.asObservable(); + this._observerUnderline = new rxjs.Subject(); + this._formatUnderlineChange = this._observerUnderline.asObservable(); + this._observerUndo = new rxjs.Subject(); + this._undo = this._observerUndo.asObservable(); + this._observerRedo = new rxjs.Subject(); + this._redo = this._observerRedo.asObservable(); + this._observerItalic = new rxjs.Subject(); + this._formatItalicChange = this._observerItalic.asObservable(); + this._observerColor = new rxjs.Subject(); + this._formatColorChange = this._observerColor.asObservable(); + this._observerBgColor = new rxjs.Subject(); + this._formatBgColorChange = this._observerBgColor.asObservable(); + this._observerFontSize = new rxjs.Subject(); + this._formatFontSizeChange = this._observerFontSize.asObservable(); + this._observerFont = new rxjs.Subject(); + this._formatFontChange = this._observerFont.asObservable(); + this._observerStrikeout = new rxjs.Subject(); + this._formatStrikeoutChange = this._observerStrikeout.asObservable(); + this._observerAlign = new rxjs.Subject(); + this._formatAlignChange = this._observerAlign.asObservable(); + this._observerList = new rxjs.Subject(); + this._formatListChange = this._observerList.asObservable(); + } + Object.defineProperty(FormattingService.prototype, "formatBoldChange", { + get: /** + * @return {?} + */ + function () { + return this._formatBoldChange; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FormattingService.prototype, "formatUnderlineChange", { + get: /** + * @return {?} + */ + function () { + return this._formatUnderlineChange; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FormattingService.prototype, "formatColorChange", { + get: /** + * @return {?} + */ + function () { + return this._formatColorChange; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FormattingService.prototype, "formatBgColorChange", { + get: /** + * @return {?} + */ + function () { + return this._formatBgColorChange; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FormattingService.prototype, "formatFontSizeChange", { + get: /** + * @return {?} + */ + function () { + return this._formatFontSizeChange; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FormattingService.prototype, "formatFontChange", { + get: /** + * @return {?} + */ + function () { + return this._formatFontChange; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FormattingService.prototype, "undo", { + get: /** + * @return {?} + */ + function () { + return this._undo; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FormattingService.prototype, "redo", { + get: /** + * @return {?} + */ + function () { + return this._redo; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FormattingService.prototype, "formatItalicChange", { + get: /** + * @return {?} + */ + function () { + return this._formatItalicChange; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FormattingService.prototype, "formatStrikeoutChange", { + get: /** + * @return {?} + */ + function () { + return this._formatStrikeoutChange; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FormattingService.prototype, "formatAlignChange", { + get: /** + * @return {?} + */ + function () { + return this._formatAlignChange; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FormattingService.prototype, "formatListChange", { + get: /** + * @return {?} + */ + function () { + return this._formatListChange; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} val + * @return {?} + */ + FormattingService.createFontSizeOption = /** + * @param {?} val + * @return {?} + */ + function (val) { + return { value: val, name: val + 'px', separator: false }; + }; + /** + * @return {?} + */ + FormattingService.getFontSizeOptions = /** + * @return {?} + */ + function () { + return [ + FormattingService.createFontSizeOption(8), + FormattingService.createFontSizeOption(10), + FormattingService.createFontSizeOption(12), + FormattingService.createFontSizeOption(14), + FormattingService.createFontSizeOption(16), + FormattingService.createFontSizeOption(18), + FormattingService.createFontSizeOption(20), + FormattingService.createFontSizeOption(22), + FormattingService.createFontSizeOption(24), + ]; + }; + /** + * @param {?} val + * @return {?} + */ + FormattingService.createFontOption = /** + * @param {?} val + * @return {?} + */ + function (val) { + return { value: val, name: val, separator: false }; + }; + /** + * @return {?} + */ + FormattingService.getFontOptions = /** + * @return {?} + */ + function () { + var _this = this; + /** @type {?} */ + var fonts = ["Arial", "Calibri", "Century Gothic", "Comic Sans", "Consolas", "Courier", "Dejavu Sans", "Dejavu Serif", "Georgia", "Gill Sans", "Helvetica", "Impact", "Lucida Sans", + "Myriad Pro", "Open Sans", "Palatino", "Tahoma", "Times New Roman", "Trebuchet"]; + /** @type {?} */ + var fontOptions = []; + fonts.forEach((/** + * @param {?} font + * @return {?} + */ + function (font) { + fontOptions.push(_this.createFontOption(font)); + })); + return fontOptions; + }; + /** + * @param {?} $event + * @return {?} + */ + FormattingService.prototype.changeFormatFontSize = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + this._observerFontSize.next($event); + }; + /** + * @param {?} bold + * @return {?} + */ + FormattingService.prototype.changeFormatBold = /** + * @param {?} bold + * @return {?} + */ + function (bold) { + this._observerBold.next(bold); + }; + /** + * @param {?} underline + * @return {?} + */ + FormattingService.prototype.changeFormatUnderline = /** + * @param {?} underline + * @return {?} + */ + function (underline) { + this._observerUnderline.next(underline); + }; + /** + * @return {?} + */ + FormattingService.prototype.Undo = /** + * @return {?} + */ + function () { + this._observerUndo.next(); + }; + /** + * @return {?} + */ + FormattingService.prototype.Redo = /** + * @return {?} + */ + function () { + this._observerRedo.next(); + }; + /** + * @param {?} italic + * @return {?} + */ + FormattingService.prototype.changeFormatItalic = /** + * @param {?} italic + * @return {?} + */ + function (italic) { + this._observerItalic.next(italic); + }; + /** + * @param {?} color + * @return {?} + */ + FormattingService.prototype.changeFormatColor = /** + * @param {?} color + * @return {?} + */ + function (color) { + this._observerColor.next(color); + }; + /** + * @param {?} bgcolor + * @return {?} + */ + FormattingService.prototype.changeFormatBgColor = /** + * @param {?} bgcolor + * @return {?} + */ + function (bgcolor) { + this._observerBgColor.next(bgcolor); + }; + /** + * @param {?} font + * @return {?} + */ + FormattingService.prototype.changeFormatFont = /** + * @param {?} font + * @return {?} + */ + function (font) { + this._observerFont.next(font); + }; + /** + * @param {?} strikeout + * @return {?} + */ + FormattingService.prototype.changeFormatStrikeout = /** + * @param {?} strikeout + * @return {?} + */ + function (strikeout) { + this._observerStrikeout.next(strikeout); + }; + /** + * @param {?} align + * @return {?} + */ + FormattingService.prototype.changeFormatAlign = /** + * @param {?} align + * @return {?} + */ + function (align) { + this._observerAlign.next(align); + }; + /** + * @param {?} list + * @return {?} + */ + FormattingService.prototype.changeFormatList = /** + * @param {?} list + * @return {?} + */ + function (list) { + this._observerList.next(list); + }; + return FormattingService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var DEFAULT_COLORS = ['#000000', '#993300', '#333300', '#000080', '#333399', '#333333', - '#800000', '#FF6600', '#808000', '#008000', '#008080', '#0000FF', - '#666699', '#808080', '#FF0000', '#FF9900', '#99CC00', '#339966', - '#33CCCC', '#3366FF', '#800080', '#999999', '#FF00FF', '#FFCC00', - '#FFFF00', '#00FF00', '#00FFFF', '#00CCFF', '#993366', '#C0C0C0', - '#FF99CC', '#FFCC99', '#FFFF99', '#CCFFFF', '#99CCFF', '#FFFFFF']; - var ColorPickerComponent = /** @class */ (function () { - function ColorPickerComponent() { - this.selectedColor = new core.EventEmitter(); - this.colors = DEFAULT_COLORS; - } - /** - * @return {?} - */ - ColorPickerComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - /** - * @param {?} $event - * @param {?} color - * @return {?} - */ - ColorPickerComponent.prototype.select = /** - * @param {?} $event - * @param {?} color - * @return {?} - */ - function ($event, color) { - $event.preventDefault(); - $event.stopPropagation(); - this.selectedColor.emit(color); - }; - ColorPickerComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-color-picker', - template: "
\n
\n
\n
\n
\n", - styles: [".bcPicker-picker{border:1px;border-radius:100%}.bcPicker-palette{width:232px;padding:5px;border:1px solid #efefef;background-color:#fdfdfd;z-index:999}.bcPicker-palette>.bcPicker-color{width:14px;height:14px;margin:2px;display:inline-block;border:1px solid #efefef;background-color:#9da97b;cursor:pointer}"] - }] } - ]; - /** @nocollapse */ - ColorPickerComponent.ctorParameters = function () { return []; }; - ColorPickerComponent.propDecorators = { - selectedColor: [{ type: core.Output }] - }; - return ColorPickerComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var DEFAULT_COLORS = ['#000000', '#993300', '#333300', '#000080', '#333399', '#333333', + '#800000', '#FF6600', '#808000', '#008000', '#008080', '#0000FF', + '#666699', '#808080', '#FF0000', '#FF9900', '#99CC00', '#339966', + '#33CCCC', '#3366FF', '#800080', '#999999', '#FF00FF', '#FFCC00', + '#FFFF00', '#00FF00', '#00FFFF', '#00CCFF', '#993366', '#C0C0C0', + '#FF99CC', '#FFCC99', '#FFFF99', '#CCFFFF', '#99CCFF', '#FFFFFF']; + var ColorPickerComponent = /** @class */ (function () { + function ColorPickerComponent() { + this.selectedColor = new core.EventEmitter(); + this.colors = DEFAULT_COLORS; + } + /** + * @return {?} + */ + ColorPickerComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + /** + * @param {?} $event + * @param {?} color + * @return {?} + */ + ColorPickerComponent.prototype.select = /** + * @param {?} $event + * @param {?} color + * @return {?} + */ + function ($event, color) { + $event.preventDefault(); + $event.stopPropagation(); + this.selectedColor.emit(color); + }; + ColorPickerComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-color-picker', + template: "
\r\n
\r\n
\r\n
\r\n
\r\n", + styles: [".bcPicker-picker{border:1px;border-radius:100%}.bcPicker-palette{width:232px;padding:5px;border:1px solid #efefef;background-color:#fdfdfd;z-index:999}.bcPicker-palette>.bcPicker-color{width:14px;height:14px;margin:2px;display:inline-block;border:1px solid #efefef;background-color:#9da97b;cursor:pointer}"] + }] } + ]; + /** @nocollapse */ + ColorPickerComponent.ctorParameters = function () { return []; }; + ColorPickerComponent.propDecorators = { + selectedColor: [{ type: core.Output }] + }; + return ColorPickerComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var BackFormattingService = /** @class */ (function (_super) { - __extends(BackFormattingService, _super); - function BackFormattingService() { - return _super.call(this) || this; - } - BackFormattingService.decorators = [ - { type: core.Injectable, args: [{ - providedIn: 'root' - },] } - ]; - /** @nocollapse */ - BackFormattingService.ctorParameters = function () { return []; }; - /** @nocollapse */ BackFormattingService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function BackFormattingService_Factory() { return new BackFormattingService(); }, token: BackFormattingService, providedIn: "root" }); - return BackFormattingService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var BackFormattingService = /** @class */ (function (_super) { + __extends(BackFormattingService, _super); + function BackFormattingService() { + return _super.call(this) || this; + } + BackFormattingService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root' + },] } + ]; + /** @nocollapse */ + BackFormattingService.ctorParameters = function () { return []; }; + /** @nocollapse */ BackFormattingService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function BackFormattingService_Factory() { return new BackFormattingService(); }, token: BackFormattingService, providedIn: "root" }); + return BackFormattingService; }(FormattingService)); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var SelectionService = /** @class */ (function () { - function SelectionService() { - this.isIE = !!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent); - } - /** - * @return {?} - */ - SelectionService.prototype.restoreSelection = /** - * @return {?} - */ - function () { - if (this.selection && !this.selection.collapsed || this.isIE) { - this.putSelection(this.selection); - } - }; - /** - * @return {?} - */ - SelectionService.prototype.captureSelection = /** - * @return {?} - */ - function () { - /** @type {?} */ - var selection = window.getSelection(); - if (selection.rangeCount > 0) { - this.selection = selection.getRangeAt(0); - } - }; - /** - * @private - * @param {?} selection - * @return {?} - */ - SelectionService.prototype.putSelection = /** - * @private - * @param {?} selection - * @return {?} - */ - function (selection) { - /** @type {?} */ - var sel = window.getSelection(); - sel.removeAllRanges(); - sel.addRange(selection.cloneRange()); - }; - /** - * @return {?} - */ - SelectionService.prototype.refreshSelection = /** - * @return {?} - */ - function () { - this.captureSelection(); - this.restoreSelection(); - }; - SelectionService.decorators = [ - { type: core.Injectable, args: [{ - providedIn: 'root' - },] } - ]; - /** @nocollapse */ SelectionService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function SelectionService_Factory() { return new SelectionService(); }, token: SelectionService, providedIn: "root" }); - return SelectionService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var SelectionService = /** @class */ (function () { + function SelectionService() { + this.isIE = !!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent); + } + /** + * @return {?} + */ + SelectionService.prototype.restoreSelection = /** + * @return {?} + */ + function () { + if (this.selection && !this.selection.collapsed || this.isIE) { + this.putSelection(this.selection); + } + }; + /** + * @return {?} + */ + SelectionService.prototype.captureSelection = /** + * @return {?} + */ + function () { + /** @type {?} */ + var selection = window.getSelection(); + if (selection.rangeCount > 0) { + this.selection = selection.getRangeAt(0); + } + }; + /** + * @private + * @param {?} selection + * @return {?} + */ + SelectionService.prototype.putSelection = /** + * @private + * @param {?} selection + * @return {?} + */ + function (selection) { + /** @type {?} */ + var sel = window.getSelection(); + sel.removeAllRanges(); + sel.addRange(selection.cloneRange()); + }; + /** + * @return {?} + */ + SelectionService.prototype.refreshSelection = /** + * @return {?} + */ + function () { + this.captureSelection(); + this.restoreSelection(); + }; + SelectionService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root' + },] } + ]; + /** @nocollapse */ SelectionService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function SelectionService_Factory() { return new SelectionService(); }, token: SelectionService, providedIn: "root" }); + return SelectionService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var $$5 = jquery; - var FormattingDirective = /** @class */ (function () { - function FormattingDirective(_formattingService, _backFormattingService, _selectionService) { - this._formattingService = _formattingService; - this._backFormattingService = _backFormattingService; - this._selectionService = _selectionService; - this.bold = false; - this.italic = false; - this.underline = false; - this.strikeout = false; - this.isIE = false; - this.isIE = /*@cc_on!@*/ !!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent); - } - /** - * @return {?} - */ - FormattingDirective.prototype.mouseup = /** - * @return {?} - */ - function () { - this.bold = document.queryCommandState("bold"); - this.strikeout = document.queryCommandState("strikeThrough"); - this.italic = document.queryCommandState("italic"); - this.bgColor = document.queryCommandValue("backColor"); - this.underline = document.queryCommandState("underline"); - this.align = this.checkJustify(); - this.list = this.checkList(); - //fix required by FireFox to get correct background color - if (this.bgColor === "transparent") { - this.bgColor = $$5(window.getSelection().focusNode.parentNode).css('background-color').toString(); - } - this.font = document.queryCommandValue("FontName").replace(/"/g, ''); - if (this.font.split(",").length > 1) { - this.font = this.font.split(",")[0]; - } - this.color = document.queryCommandValue("foreColor"); - this._backFormattingService.changeFormatBold(this.bold); - this._backFormattingService.changeFormatUnderline(this.underline); - this._backFormattingService.changeFormatItalic(this.italic); - this._backFormattingService.changeFormatColor(this.color); - this._backFormattingService.changeFormatBgColor(this.bgColor); - this._backFormattingService.changeFormatFontSize(this.reportFontSize()); - this._backFormattingService.changeFormatFont(this.font); - this._backFormattingService.changeFormatStrikeout(this.strikeout); - this._backFormattingService.changeFormatAlign(this.align); - this._backFormattingService.changeFormatList(this.list); - }; - /** - * @private - * @return {?} - */ - FormattingDirective.prototype.checkJustify = /** - * @private - * @return {?} - */ - function () { - /** @type {?} */ - var align = ""; - align = document.queryCommandState("justifyCenter") ? "center" : align; - align = document.queryCommandState("justifyFull") ? "full" : align; - align = document.queryCommandState("justifyLeft") ? "left" : align; - align = document.queryCommandState("justifyRight") ? "right" : align; - return align; - }; - /** - * @private - * @return {?} - */ - FormattingDirective.prototype.checkList = /** - * @private - * @return {?} - */ - function () { - /** @type {?} */ - var list = ""; - list = document.queryCommandState("insertUnorderedList") ? "unordered" : list; - list = document.queryCommandState("insertOrderedList") ? "ordered" : list; - return list; - }; - /** - * @return {?} - */ - FormattingDirective.prototype.reportFontSize = /** - * @return {?} - */ - function () { - /** @type {?} */ - var containerEl; - /** @type {?} */ - var sel; - if (window.getSelection) { - sel = window.getSelection(); - if (sel.rangeCount) { - containerEl = sel.getRangeAt(0).commonAncestorContainer; - // Make sure we have an element rather than a text node - if (containerEl.nodeType === 3) { - containerEl = containerEl.parentNode; - } - } - } - else if ((sel = document.getSelection()) && sel.type !== "Control") { - containerEl = sel.createRange().parentElement(); - } - if (containerEl) { - return parseInt(this.getComputedStyleProperty(containerEl, "fontSize").replace("px", ""), 10); - } - }; - /** - * @param {?} el - * @param {?} propName - * @return {?} - */ - FormattingDirective.prototype.getComputedStyleProperty = /** - * @param {?} el - * @param {?} propName - * @return {?} - */ - function (el, propName) { - if (window.getComputedStyle) { - return window.getComputedStyle(el, null)[propName]; - } - else if (el.currentStyle) { - return el.currentStyle[propName]; - } - }; - /** - * @return {?} - */ - FormattingDirective.prototype.ngOnInit = /** - * @return {?} - */ - function () { - var _this = this; - this._formattingService.undo.subscribe((/** - * @return {?} - */ - function () { - _this.toggleUndo(); - })); - this._formattingService.redo.subscribe((/** - * @return {?} - */ - function () { - _this.toggleRedo(); - })); - this._formattingService.formatBoldChange.subscribe((/** - * @param {?} bold - * @return {?} - */ - function (bold) { - _this.bold = bold; - _this.toggleBold(); - })); - this._formattingService.formatUnderlineChange.subscribe((/** - * @param {?} underline - * @return {?} - */ - function (underline) { - _this.underline = underline; - _this.toggleUnderline(); - })); - this._formattingService.formatItalicChange.subscribe((/** - * @param {?} italic - * @return {?} - */ - function (italic) { - _this.italic = italic; - _this.toggleItalic(); - })); - this._formattingService.formatColorChange.subscribe(((/** - * @param {?} color - * @return {?} - */ - function (color) { - _this.color = color; - _this.setColor(color); - }))); - this._formattingService.formatBgColorChange.subscribe(((/** - * @param {?} bgcolor - * @return {?} - */ - function (bgcolor) { - _this.bgColor = bgcolor; - _this.setBgColor(bgcolor); - }))); - this._formattingService.formatFontSizeChange.subscribe(((/** - * @param {?} fontSize - * @return {?} - */ - function (fontSize) { - _this.setFontSize(fontSize); - }))); - this._formattingService.formatFontChange.subscribe(((/** - * @param {?} font - * @return {?} - */ - function (font) { - _this.font = font; - _this.setFont(font); - }))); - this._formattingService.formatStrikeoutChange.subscribe((/** - * @param {?} strikeout - * @return {?} - */ - function (strikeout) { - _this.strikeout = strikeout; - _this.toggleStrikeout(); - })); - this._formattingService.formatAlignChange.subscribe((/** - * @param {?} align - * @return {?} - */ - function (align) { - _this.align = align; - _this.toggleAlign(_this.align); - })); - this._formattingService.formatListChange.subscribe((/** - * @param {?} list - * @return {?} - */ - function (list) { - _this.list = list; - _this.toggleList(_this.list); - })); - }; - /** - * @private - * @return {?} - */ - FormattingDirective.prototype.toggleBold = /** - * @private - * @return {?} - */ - function () { - document.execCommand("bold"); - this._selectionService.refreshSelection(); - }; - /** - * @private - * @return {?} - */ - FormattingDirective.prototype.toggleUnderline = /** - * @private - * @return {?} - */ - function () { - document.execCommand("underline"); - this._selectionService.refreshSelection(); - }; - /** - * @private - * @return {?} - */ - FormattingDirective.prototype.toggleItalic = /** - * @private - * @return {?} - */ - function () { - document.execCommand("italic"); - this._selectionService.refreshSelection(); - }; - /** - * @private - * @param {?} bgColor - * @return {?} - */ - FormattingDirective.prototype.setBgColor = /** - * @private - * @param {?} bgColor - * @return {?} - */ - function (bgColor) { - document.execCommand("backColor", false, bgColor); - this._selectionService.refreshSelection(); - }; - /** - * @private - * @param {?} color - * @return {?} - */ - FormattingDirective.prototype.setColor = /** - * @private - * @param {?} color - * @return {?} - */ - function (color) { - document.execCommand("foreColor", false, color); - this._selectionService.refreshSelection(); - }; - /** - * @private - * @param {?} fontSize - * @return {?} - */ - FormattingDirective.prototype.setFontSize = /** - * @private - * @param {?} fontSize - * @return {?} - */ - function (fontSize) { - if (document.getSelection().toString()) { - /** @type {?} */ - var spanString = "" + - document.getSelection() + ""; - if (this.bold) { - spanString = "" + spanString + ""; - } - if (this.italic) { - spanString = "" + spanString + ""; - } - if (this.underline) { - spanString = "" + spanString + ""; - } - if (this.strikeout) { - spanString = "" + spanString + ""; - } - document.execCommand('insertHTML', false, spanString); - } - else { - document.execCommand("fontsize", false, "7"); - } - this._selectionService.refreshSelection(); - }; - /** - * @private - * @return {?} - */ - FormattingDirective.prototype.toggleUndo = /** - * @private - * @return {?} - */ - function () { - document.execCommand("undo"); - }; - /** - * @private - * @return {?} - */ - FormattingDirective.prototype.toggleRedo = /** - * @private - * @return {?} - */ - function () { - document.execCommand("redo"); - }; - /** - * @private - * @param {?} font - * @return {?} - */ - FormattingDirective.prototype.setFont = /** - * @private - * @param {?} font - * @return {?} - */ - function (font) { - document.execCommand("fontName", false, font); - this._selectionService.refreshSelection(); - }; - /** - * @private - * @return {?} - */ - FormattingDirective.prototype.toggleStrikeout = /** - * @private - * @return {?} - */ - function () { - document.execCommand("strikeThrough"); - this._selectionService.refreshSelection(); - }; - /** - * @private - * @param {?} align - * @return {?} - */ - FormattingDirective.prototype.toggleAlign = /** - * @private - * @param {?} align - * @return {?} - */ - function (align) { - if (this.isIE) { - this.toggleAlignIE(align); - return; - } - document.execCommand("styleWithCSS", false, 'true'); - switch (align) { - case 'center': - document.execCommand('justifyCenter'); - break; - case 'full': - document.execCommand('justifyFull'); - break; - case 'left': - document.execCommand('justifyLeft'); - break; - case 'right': - document.execCommand('justifyRight'); - break; - } - this._selectionService.refreshSelection(); - }; - /** - * @private - * @param {?} align - * @return {?} - */ - FormattingDirective.prototype.toggleAlignIE = /** - * @private - * @param {?} align - * @return {?} - */ - function (align) { - this._selectionService.restoreSelection(); - this._selectionService.captureSelection(); - /** @type {?} */ - var selection = window.getSelection().focusNode.parentNode.parentNode; - if (align === "full") { - align = "justify"; - } - $$5(selection).css("text-align", align); - this._selectionService.refreshSelection(); - }; - /** - * @private - * @param {?} list - * @return {?} - */ - FormattingDirective.prototype.toggleList = /** - * @private - * @param {?} list - * @return {?} - */ - function (list) { - switch (list) { - case 'unordered': - document.execCommand('insertUnorderedList'); - break; - case 'ordered': - document.execCommand('insertOrderedList'); - break; - } - this._selectionService.refreshSelection(); - }; - FormattingDirective.decorators = [ - { type: core.Directive, args: [{ - selector: '[gdFormatting]' - },] } - ]; - /** @nocollapse */ - FormattingDirective.ctorParameters = function () { return [ - { type: FormattingService }, - { type: BackFormattingService }, - { type: SelectionService } - ]; }; - FormattingDirective.propDecorators = { - mouseup: [{ type: core.HostListener, args: ['mouseup',] }] - }; - return FormattingDirective; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var $$5 = jquery; + var FormattingDirective = /** @class */ (function () { + function FormattingDirective(_formattingService, _backFormattingService, _selectionService) { + this._formattingService = _formattingService; + this._backFormattingService = _backFormattingService; + this._selectionService = _selectionService; + this.bold = false; + this.italic = false; + this.underline = false; + this.strikeout = false; + this.isIE = false; + this.isIE = /*@cc_on!@*/ !!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent); + } + /** + * @return {?} + */ + FormattingDirective.prototype.mouseup = /** + * @return {?} + */ + function () { + this.bold = document.queryCommandState("bold"); + this.strikeout = document.queryCommandState("strikeThrough"); + this.italic = document.queryCommandState("italic"); + this.bgColor = document.queryCommandValue("backColor"); + this.underline = document.queryCommandState("underline"); + this.align = this.checkJustify(); + this.list = this.checkList(); + //fix required by FireFox to get correct background color + if (this.bgColor === "transparent") { + this.bgColor = $$5(window.getSelection().focusNode.parentNode).css('background-color').toString(); + } + this.font = document.queryCommandValue("FontName").replace(/"/g, ''); + if (this.font.split(",").length > 1) { + this.font = this.font.split(",")[0]; + } + this.color = document.queryCommandValue("foreColor"); + this._backFormattingService.changeFormatBold(this.bold); + this._backFormattingService.changeFormatUnderline(this.underline); + this._backFormattingService.changeFormatItalic(this.italic); + this._backFormattingService.changeFormatColor(this.color); + this._backFormattingService.changeFormatBgColor(this.bgColor); + this._backFormattingService.changeFormatFontSize(this.reportFontSize()); + this._backFormattingService.changeFormatFont(this.font); + this._backFormattingService.changeFormatStrikeout(this.strikeout); + this._backFormattingService.changeFormatAlign(this.align); + this._backFormattingService.changeFormatList(this.list); + }; + /** + * @private + * @return {?} + */ + FormattingDirective.prototype.checkJustify = /** + * @private + * @return {?} + */ + function () { + /** @type {?} */ + var align = ""; + align = document.queryCommandState("justifyCenter") ? "center" : align; + align = document.queryCommandState("justifyFull") ? "full" : align; + align = document.queryCommandState("justifyLeft") ? "left" : align; + align = document.queryCommandState("justifyRight") ? "right" : align; + return align; + }; + /** + * @private + * @return {?} + */ + FormattingDirective.prototype.checkList = /** + * @private + * @return {?} + */ + function () { + /** @type {?} */ + var list = ""; + list = document.queryCommandState("insertUnorderedList") ? "unordered" : list; + list = document.queryCommandState("insertOrderedList") ? "ordered" : list; + return list; + }; + /** + * @return {?} + */ + FormattingDirective.prototype.reportFontSize = /** + * @return {?} + */ + function () { + /** @type {?} */ + var containerEl; + /** @type {?} */ + var sel; + if (window.getSelection) { + sel = window.getSelection(); + if (sel.rangeCount) { + containerEl = sel.getRangeAt(0).commonAncestorContainer; + // Make sure we have an element rather than a text node + if (containerEl.nodeType === 3) { + containerEl = containerEl.parentNode; + } + } + } + else if ((sel = document.getSelection()) && sel.type !== "Control") { + containerEl = sel.createRange().parentElement(); + } + if (containerEl) { + return parseInt(this.getComputedStyleProperty(containerEl, "fontSize").replace("px", ""), 10); + } + }; + /** + * @param {?} el + * @param {?} propName + * @return {?} + */ + FormattingDirective.prototype.getComputedStyleProperty = /** + * @param {?} el + * @param {?} propName + * @return {?} + */ + function (el, propName) { + if (window.getComputedStyle) { + return window.getComputedStyle(el, null)[propName]; + } + else if (el.currentStyle) { + return el.currentStyle[propName]; + } + }; + /** + * @return {?} + */ + FormattingDirective.prototype.ngOnInit = /** + * @return {?} + */ + function () { + var _this = this; + this._formattingService.undo.subscribe((/** + * @return {?} + */ + function () { + _this.toggleUndo(); + })); + this._formattingService.redo.subscribe((/** + * @return {?} + */ + function () { + _this.toggleRedo(); + })); + this._formattingService.formatBoldChange.subscribe((/** + * @param {?} bold + * @return {?} + */ + function (bold) { + _this.bold = bold; + _this.toggleBold(); + })); + this._formattingService.formatUnderlineChange.subscribe((/** + * @param {?} underline + * @return {?} + */ + function (underline) { + _this.underline = underline; + _this.toggleUnderline(); + })); + this._formattingService.formatItalicChange.subscribe((/** + * @param {?} italic + * @return {?} + */ + function (italic) { + _this.italic = italic; + _this.toggleItalic(); + })); + this._formattingService.formatColorChange.subscribe(((/** + * @param {?} color + * @return {?} + */ + function (color) { + _this.color = color; + _this.setColor(color); + }))); + this._formattingService.formatBgColorChange.subscribe(((/** + * @param {?} bgcolor + * @return {?} + */ + function (bgcolor) { + _this.bgColor = bgcolor; + _this.setBgColor(bgcolor); + }))); + this._formattingService.formatFontSizeChange.subscribe(((/** + * @param {?} fontSize + * @return {?} + */ + function (fontSize) { + _this.setFontSize(fontSize); + }))); + this._formattingService.formatFontChange.subscribe(((/** + * @param {?} font + * @return {?} + */ + function (font) { + _this.font = font; + _this.setFont(font); + }))); + this._formattingService.formatStrikeoutChange.subscribe((/** + * @param {?} strikeout + * @return {?} + */ + function (strikeout) { + _this.strikeout = strikeout; + _this.toggleStrikeout(); + })); + this._formattingService.formatAlignChange.subscribe((/** + * @param {?} align + * @return {?} + */ + function (align) { + _this.align = align; + _this.toggleAlign(_this.align); + })); + this._formattingService.formatListChange.subscribe((/** + * @param {?} list + * @return {?} + */ + function (list) { + _this.list = list; + _this.toggleList(_this.list); + })); + }; + /** + * @private + * @return {?} + */ + FormattingDirective.prototype.toggleBold = /** + * @private + * @return {?} + */ + function () { + document.execCommand("bold"); + this._selectionService.refreshSelection(); + }; + /** + * @private + * @return {?} + */ + FormattingDirective.prototype.toggleUnderline = /** + * @private + * @return {?} + */ + function () { + document.execCommand("underline"); + this._selectionService.refreshSelection(); + }; + /** + * @private + * @return {?} + */ + FormattingDirective.prototype.toggleItalic = /** + * @private + * @return {?} + */ + function () { + document.execCommand("italic"); + this._selectionService.refreshSelection(); + }; + /** + * @private + * @param {?} bgColor + * @return {?} + */ + FormattingDirective.prototype.setBgColor = /** + * @private + * @param {?} bgColor + * @return {?} + */ + function (bgColor) { + document.execCommand("backColor", false, bgColor); + this._selectionService.refreshSelection(); + }; + /** + * @private + * @param {?} color + * @return {?} + */ + FormattingDirective.prototype.setColor = /** + * @private + * @param {?} color + * @return {?} + */ + function (color) { + document.execCommand("foreColor", false, color); + this._selectionService.refreshSelection(); + }; + /** + * @private + * @param {?} fontSize + * @return {?} + */ + FormattingDirective.prototype.setFontSize = /** + * @private + * @param {?} fontSize + * @return {?} + */ + function (fontSize) { + if (document.getSelection().toString()) { + /** @type {?} */ + var spanString = "" + + document.getSelection() + ""; + if (this.bold) { + spanString = "" + spanString + ""; + } + if (this.italic) { + spanString = "" + spanString + ""; + } + if (this.underline) { + spanString = "" + spanString + ""; + } + if (this.strikeout) { + spanString = "" + spanString + ""; + } + document.execCommand('insertHTML', false, spanString); + } + else { + document.execCommand("fontsize", false, "7"); + } + this._selectionService.refreshSelection(); + }; + /** + * @private + * @return {?} + */ + FormattingDirective.prototype.toggleUndo = /** + * @private + * @return {?} + */ + function () { + document.execCommand("undo"); + }; + /** + * @private + * @return {?} + */ + FormattingDirective.prototype.toggleRedo = /** + * @private + * @return {?} + */ + function () { + document.execCommand("redo"); + }; + /** + * @private + * @param {?} font + * @return {?} + */ + FormattingDirective.prototype.setFont = /** + * @private + * @param {?} font + * @return {?} + */ + function (font) { + document.execCommand("fontName", false, font); + this._selectionService.refreshSelection(); + }; + /** + * @private + * @return {?} + */ + FormattingDirective.prototype.toggleStrikeout = /** + * @private + * @return {?} + */ + function () { + document.execCommand("strikeThrough"); + this._selectionService.refreshSelection(); + }; + /** + * @private + * @param {?} align + * @return {?} + */ + FormattingDirective.prototype.toggleAlign = /** + * @private + * @param {?} align + * @return {?} + */ + function (align) { + if (this.isIE) { + this.toggleAlignIE(align); + return; + } + document.execCommand("styleWithCSS", false, 'true'); + switch (align) { + case 'center': + document.execCommand('justifyCenter'); + break; + case 'full': + document.execCommand('justifyFull'); + break; + case 'left': + document.execCommand('justifyLeft'); + break; + case 'right': + document.execCommand('justifyRight'); + break; + } + this._selectionService.refreshSelection(); + }; + /** + * @private + * @param {?} align + * @return {?} + */ + FormattingDirective.prototype.toggleAlignIE = /** + * @private + * @param {?} align + * @return {?} + */ + function (align) { + this._selectionService.restoreSelection(); + this._selectionService.captureSelection(); + /** @type {?} */ + var selection = window.getSelection().focusNode.parentNode.parentNode; + if (align === "full") { + align = "justify"; + } + $$5(selection).css("text-align", align); + this._selectionService.refreshSelection(); + }; + /** + * @private + * @param {?} list + * @return {?} + */ + FormattingDirective.prototype.toggleList = /** + * @private + * @param {?} list + * @return {?} + */ + function (list) { + switch (list) { + case 'unordered': + document.execCommand('insertUnorderedList'); + break; + case 'ordered': + document.execCommand('insertOrderedList'); + break; + } + this._selectionService.refreshSelection(); + }; + FormattingDirective.decorators = [ + { type: core.Directive, args: [{ + selector: '[gdFormatting]' + },] } + ]; + /** @nocollapse */ + FormattingDirective.ctorParameters = function () { return [ + { type: FormattingService }, + { type: BackFormattingService }, + { type: SelectionService } + ]; }; + FormattingDirective.propDecorators = { + mouseup: [{ type: core.HostListener, args: ['mouseup',] }] + }; + return FormattingDirective; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var SuccessModalComponent = /** @class */ (function () { - function SuccessModalComponent() { - } - /** - * @return {?} - */ - SuccessModalComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - SuccessModalComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-success-modal', - template: "\n
\n
\n \n \n
\n
\n
\n
\n
\n", - styles: [".check_mark{margin:47px auto}.sa-icon{width:80px;height:80px;border:4px solid gray;border-radius:50%;padding:0;position:relative;box-sizing:content-box}#gd-modal-success{display:flex;overflow:hidden;width:469px;height:183px}.sa-icon.sa-success{border-color:#4caf50;transform:scale(1.18)}.sa-icon.sa-success::after,.sa-icon.sa-success::before{content:'';position:absolute;width:60px;height:120px;background:#fff}.sa-icon.sa-success::before{border-radius:120px 0 0 120px;top:-7px;left:-33px;transform:rotate(-45deg);transform-origin:60px 60px}.sa-icon.sa-success::after{border-radius:0 120px 120px 0;top:-11px;left:30px;transform:rotate(-45deg);transform-origin:0 60px}.sa-icon.sa-success .sa-placeholder{width:80px;height:80px;border:4px solid rgba(76,175,80,.5);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.sa-icon.sa-success .sa-fix{width:5px;height:90px;background-color:#fff;position:absolute;left:28px;top:8px;z-index:1;transform:rotate(-45deg)}.sa-icon.sa-success.animate::after{-webkit-animation:4.25s ease-in rotatePlaceholder;animation:4.25s ease-in rotatePlaceholder}.animateSuccessTip{-webkit-animation:.75s animateSuccessTip;animation:.75s animateSuccessTip}.animateSuccessLong{-webkit-animation:.75s animateSuccessLong;animation:.75s animateSuccessLong}@-webkit-keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}.sa-icon.sa-success .sa-line{height:5px;background-color:#4caf50;display:block;border-radius:2px;position:absolute;z-index:2}.sa-icon.sa-success .sa-line.sa-tip{width:25px;left:14px;top:46px;transform:rotate(45deg)}.sa-icon.sa-success .sa-line.sa-long{width:47px;right:8px;top:38px;transform:rotate(-45deg)}@-webkit-keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@media (max-width:1037px){#gd-modal-success{left:50%;top:50%;position:relative;transform:translate(-50%,-50%)}}"] - }] } - ]; - /** @nocollapse */ - SuccessModalComponent.ctorParameters = function () { return []; }; - return SuccessModalComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var SuccessModalComponent = /** @class */ (function () { + function SuccessModalComponent() { + } + /** + * @return {?} + */ + SuccessModalComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + SuccessModalComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-success-modal', + template: "\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n", + styles: [".check_mark{margin:47px auto}.sa-icon{width:80px;height:80px;border:4px solid gray;border-radius:50%;padding:0;position:relative;box-sizing:content-box}#gd-modal-success{display:flex;overflow:hidden;width:469px;height:183px}.sa-icon.sa-success{border-color:#4caf50;transform:scale(1.18)}.sa-icon.sa-success::after,.sa-icon.sa-success::before{content:'';position:absolute;width:60px;height:120px;background:#fff}.sa-icon.sa-success::before{border-radius:120px 0 0 120px;top:-7px;left:-33px;transform:rotate(-45deg);transform-origin:60px 60px}.sa-icon.sa-success::after{border-radius:0 120px 120px 0;top:-11px;left:30px;transform:rotate(-45deg);transform-origin:0 60px}.sa-icon.sa-success .sa-placeholder{width:80px;height:80px;border:4px solid rgba(76,175,80,.5);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.sa-icon.sa-success .sa-fix{width:5px;height:90px;background-color:#fff;position:absolute;left:28px;top:8px;z-index:1;transform:rotate(-45deg)}.sa-icon.sa-success.animate::after{-webkit-animation:4.25s ease-in rotatePlaceholder;animation:4.25s ease-in rotatePlaceholder}.animateSuccessTip{-webkit-animation:.75s animateSuccessTip;animation:.75s animateSuccessTip}.animateSuccessLong{-webkit-animation:.75s animateSuccessLong;animation:.75s animateSuccessLong}@-webkit-keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}.sa-icon.sa-success .sa-line{height:5px;background-color:#4caf50;display:block;border-radius:2px;position:absolute;z-index:2}.sa-icon.sa-success .sa-line.sa-tip{width:25px;left:14px;top:46px;transform:rotate(45deg)}.sa-icon.sa-success .sa-line.sa-long{width:47px;right:8px;top:38px;transform:rotate(-45deg)}@-webkit-keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@media (max-width:1037px){#gd-modal-success{left:50%;top:50%;position:relative;transform:translate(-50%,-50%)}}"] + }] } + ]; + /** @nocollapse */ + SuccessModalComponent.ctorParameters = function () { return []; }; + return SuccessModalComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var EditHtmlService = /** @class */ (function () { - function EditHtmlService() { - this._observer = new rxjs.Subject(); - this._htmlContent = this._observer.asObservable(); - } - Object.defineProperty(EditHtmlService.prototype, "observer", { - get: /** - * @return {?} - */ - function () { - return this._observer; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EditHtmlService.prototype, "htmlContent", { - get: /** - * @return {?} - */ - function () { - return this._htmlContent; - }, - enumerable: true, - configurable: true - }); - EditHtmlService.decorators = [ - { type: core.Injectable, args: [{ - providedIn: 'root' - },] } - ]; - /** @nocollapse */ - EditHtmlService.ctorParameters = function () { return []; }; - /** @nocollapse */ EditHtmlService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function EditHtmlService_Factory() { return new EditHtmlService(); }, token: EditHtmlService, providedIn: "root" }); - return EditHtmlService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var EditHtmlService = /** @class */ (function () { + function EditHtmlService() { + this._observer = new rxjs.Subject(); + this._htmlContent = this._observer.asObservable(); + } + Object.defineProperty(EditHtmlService.prototype, "observer", { + get: /** + * @return {?} + */ + function () { + return this._observer; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(EditHtmlService.prototype, "htmlContent", { + get: /** + * @return {?} + */ + function () { + return this._htmlContent; + }, + enumerable: true, + configurable: true + }); + EditHtmlService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root' + },] } + ]; + /** @nocollapse */ + EditHtmlService.ctorParameters = function () { return []; }; + /** @nocollapse */ EditHtmlService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function EditHtmlService_Factory() { return new EditHtmlService(); }, token: EditHtmlService, providedIn: "root" }); + return EditHtmlService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var EditorDirective = /** @class */ (function () { - function EditorDirective(_selectionService, _htmlService) { - this._selectionService = _selectionService; - this._htmlService = _htmlService; - this.isIE = !!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent); - } - /** - * @param {?} event - * @return {?} - */ - EditorDirective.prototype.onInput = /** - * @param {?} event - * @return {?} - */ - function (event) { - this.text = event.target; - if (this.isIE) { - if (this.text.innerHTML) { - /** @type {?} */ - var html = this.text.innerHTML.toString(); - this._htmlService.observer.next(html); - } - } - }; - /** - * @param {?} event - * @return {?} - */ - EditorDirective.prototype.onMouseleave = /** - * @param {?} event - * @return {?} - */ - function (event) { - this._selectionService.captureSelection(); - // this code is required to fix IE11 issue - it doesn't trigger blur event, since that we need to save updated HTML here - if (this.isIE) { - this._htmlService.observer.next(event.target.innerHTML.toString()); - } - }; - /** - * @param {?} event - * @return {?} - */ - EditorDirective.prototype.onBlur = /** - * @param {?} event - * @return {?} - */ - function (event) { - event.preventDefault(); - this._selectionService.restoreSelection(); - if (this.text.innerHTML) { - /** @type {?} */ - var html = this.text.innerHTML.toString(); - this._htmlService.observer.next(html); - } - else { - this._htmlService.observer.next(event.target.innerHTML.toString()); - } - }; - EditorDirective.decorators = [ - { type: core.Directive, args: [{ - selector: '[gdEditor]' - },] } - ]; - /** @nocollapse */ - EditorDirective.ctorParameters = function () { return [ - { type: SelectionService }, - { type: EditHtmlService } - ]; }; - EditorDirective.propDecorators = { - text: [{ type: core.Input }], - onInput: [{ type: core.HostListener, args: ['keyup', ['$event'],] }], - onMouseleave: [{ type: core.HostListener, args: ['mouseleave', ['$event'],] }], - onBlur: [{ type: core.HostListener, args: ['blur', ['$event'],] }] - }; - return EditorDirective; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var EditorDirective = /** @class */ (function () { + function EditorDirective(_selectionService, _htmlService) { + this._selectionService = _selectionService; + this._htmlService = _htmlService; + this.isIE = !!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent); + } + /** + * @param {?} event + * @return {?} + */ + EditorDirective.prototype.onInput = /** + * @param {?} event + * @return {?} + */ + function (event) { + this.text = event.target; + if (this.isIE) { + if (this.text.innerHTML) { + /** @type {?} */ + var html = this.text.innerHTML.toString(); + this._htmlService.observer.next(html); + } + } + }; + /** + * @param {?} event + * @return {?} + */ + EditorDirective.prototype.onMouseleave = /** + * @param {?} event + * @return {?} + */ + function (event) { + this._selectionService.captureSelection(); + // this code is required to fix IE11 issue - it doesn't trigger blur event, since that we need to save updated HTML here + if (this.isIE) { + this._htmlService.observer.next(event.target.innerHTML.toString()); + } + }; + /** + * @param {?} event + * @return {?} + */ + EditorDirective.prototype.onBlur = /** + * @param {?} event + * @return {?} + */ + function (event) { + event.preventDefault(); + this._selectionService.restoreSelection(); + if (this.text.innerHTML) { + /** @type {?} */ + var html = this.text.innerHTML.toString(); + this._htmlService.observer.next(html); + } + else { + this._htmlService.observer.next(event.target.innerHTML.toString()); + } + }; + EditorDirective.decorators = [ + { type: core.Directive, args: [{ + selector: '[gdEditor]' + },] } + ]; + /** @nocollapse */ + EditorDirective.ctorParameters = function () { return [ + { type: SelectionService }, + { type: EditHtmlService } + ]; }; + EditorDirective.propDecorators = { + text: [{ type: core.Input }], + onInput: [{ type: core.HostListener, args: ['keyup', ['$event'],] }], + onMouseleave: [{ type: core.HostListener, args: ['mouseleave', ['$event'],] }], + onBlur: [{ type: core.HostListener, args: ['blur', ['$event'],] }] + }; + return EditorDirective; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var LoadingMaskService = /** @class */ (function () { - function LoadingMaskService() { - this.onLoadingChanged = new core.EventEmitter(); - this.requests = []; - } - /** - * @param {?} req - * @return {?} - */ - LoadingMaskService.prototype.onRequestStart = /** - * @param {?} req - * @return {?} - */ - function (req) { - this.requests.push(req); - this.notify(); - }; - /** - * @param {?} req - * @return {?} - */ - LoadingMaskService.prototype.onRequestFinish = /** - * @param {?} req - * @return {?} - */ - function (req) { - /** @type {?} */ - var index = this.requests.indexOf(req); - if (index !== -1) { - this.requests.splice(index, 1); - } - this.notify(); - }; - /** - * @private - * @return {?} - */ - LoadingMaskService.prototype.notify = /** - * @private - * @return {?} - */ - function () { - this.onLoadingChanged.emit(this.requests.length !== 0); - }; - LoadingMaskService.decorators = [ - { type: core.Injectable } - ]; - /** @nocollapse */ - LoadingMaskService.ctorParameters = function () { return []; }; - return LoadingMaskService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LoadingMaskService = /** @class */ (function () { + function LoadingMaskService() { + this.onLoadingChanged = new core.EventEmitter(); + this.requests = []; + } + /** + * @param {?} req + * @return {?} + */ + LoadingMaskService.prototype.onRequestStart = /** + * @param {?} req + * @return {?} + */ + function (req) { + this.requests.push(req); + this.notify(); + }; + /** + * @param {?} req + * @return {?} + */ + LoadingMaskService.prototype.onRequestFinish = /** + * @param {?} req + * @return {?} + */ + function (req) { + /** @type {?} */ + var index = this.requests.indexOf(req); + if (index !== -1) { + this.requests.splice(index, 1); + } + this.notify(); + }; + /** + * @private + * @return {?} + */ + LoadingMaskService.prototype.notify = /** + * @private + * @return {?} + */ + function () { + this.onLoadingChanged.emit(this.requests.length !== 0); + }; + LoadingMaskService.decorators = [ + { type: core.Injectable } + ]; + /** @nocollapse */ + LoadingMaskService.ctorParameters = function () { return []; }; + return LoadingMaskService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var LoadingMaskComponent = /** @class */ (function () { - function LoadingMaskComponent(_loadingMaskService) { - this._loadingMaskService = _loadingMaskService; - this.loadingMask = false; - } - /** - * @return {?} - */ - LoadingMaskComponent.prototype.ngOnInit = /** - * @return {?} - */ - function () { - }; - /** - * @return {?} - */ - LoadingMaskComponent.prototype.ngAfterViewInit = /** - * @return {?} - */ - function () { - var _this = this; - this._loadingMaskService - .onLoadingChanged - .subscribe((/** - * @param {?} loading - * @return {?} - */ - function (loading) { return _this.loadingMask = loading; })); - }; - LoadingMaskComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-loading-mask', - template: "
\n
\n  Loading... Please wait.\n
\n
\n", - styles: [".loading-wrapper{background:rgba(0,0,0,.5);width:100%;height:100%;font-size:14px;color:#fff;position:fixed;top:0;left:0;z-index:99999}.loading-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"] - }] } - ]; - /** @nocollapse */ - LoadingMaskComponent.ctorParameters = function () { return [ - { type: LoadingMaskService } - ]; }; - LoadingMaskComponent.propDecorators = { - loadingMask: [{ type: core.Input }] - }; - return LoadingMaskComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LoadingMaskComponent = /** @class */ (function () { + function LoadingMaskComponent(_loadingMaskService) { + this._loadingMaskService = _loadingMaskService; + this.loadingMask = false; + } + /** + * @return {?} + */ + LoadingMaskComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + }; + /** + * @return {?} + */ + LoadingMaskComponent.prototype.ngAfterViewInit = /** + * @return {?} + */ + function () { + var _this = this; + this._loadingMaskService + .onLoadingChanged + .subscribe((/** + * @param {?} loading + * @return {?} + */ + function (loading) { return _this.loadingMask = loading; })); + }; + LoadingMaskComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-loading-mask', + template: "
\r\n
\r\n  Loading... Please wait.\r\n
\r\n
\r\n", + styles: [".loading-wrapper{background:rgba(0,0,0,.5);width:100%;height:100%;font-size:14px;color:#fff;position:fixed;top:0;left:0;z-index:99999}.loading-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"] + }] } + ]; + /** @nocollapse */ + LoadingMaskComponent.ctorParameters = function () { return [ + { type: LoadingMaskService } + ]; }; + LoadingMaskComponent.propDecorators = { + loadingMask: [{ type: core.Input }] + }; + return LoadingMaskComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - var LoadingMaskInterceptorService = /** @class */ (function () { - function LoadingMaskInterceptorService(_loadingMaskService) { - this._loadingMaskService = _loadingMaskService; - } - /** - * @param {?} req - * @param {?} next - * @return {?} - */ - LoadingMaskInterceptorService.prototype.intercept = /** - * @param {?} req - * @param {?} next - * @return {?} - */ - function (req, next) { - var _this = this; - this._loadingMaskService.onRequestStart(req); - /** @type {?} */ - var callback = (/** - * @return {?} - */ - function () { return _this._loadingMaskService.onRequestFinish(req); }); - return next.handle(req).pipe(operators.finalize(callback)); - }; - LoadingMaskInterceptorService.decorators = [ - { type: core.Injectable, args: [{ - providedIn: 'root' - },] } - ]; - /** @nocollapse */ - LoadingMaskInterceptorService.ctorParameters = function () { return [ - { type: LoadingMaskService } - ]; }; - /** @nocollapse */ LoadingMaskInterceptorService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function LoadingMaskInterceptorService_Factory() { return new LoadingMaskInterceptorService(core.ɵɵinject(LoadingMaskService)); }, token: LoadingMaskInterceptorService, providedIn: "root" }); - return LoadingMaskInterceptorService; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + var LoadingMaskInterceptorService = /** @class */ (function () { + function LoadingMaskInterceptorService(_loadingMaskService) { + this._loadingMaskService = _loadingMaskService; + } + /** + * @param {?} req + * @param {?} next + * @return {?} + */ + LoadingMaskInterceptorService.prototype.intercept = /** + * @param {?} req + * @param {?} next + * @return {?} + */ + function (req, next) { + var _this = this; + this._loadingMaskService.onRequestStart(req); + /** @type {?} */ + var callback = (/** + * @return {?} + */ + function () { return _this._loadingMaskService.onRequestFinish(req); }); + return next.handle(req).pipe(operators.finalize(callback)); + }; + LoadingMaskInterceptorService.decorators = [ + { type: core.Injectable, args: [{ + providedIn: 'root' + },] } + ]; + /** @nocollapse */ + LoadingMaskInterceptorService.ctorParameters = function () { return [ + { type: LoadingMaskService } + ]; }; + /** @nocollapse */ LoadingMaskInterceptorService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function LoadingMaskInterceptorService_Factory() { return new LoadingMaskInterceptorService(core.ɵɵinject(LoadingMaskService)); }, token: LoadingMaskInterceptorService, providedIn: "root" }); + return LoadingMaskInterceptorService; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var horizontalAlignment = { - center: { - right: 'auto' - }, - left: { - right: '100%' - }, - right: { - right: '-100%' - } - }; - /** @type {?} */ - var verticalAlignment = { - center: { - top: '0px', - }, - top: { - top: '-100%', - right: '100%' - }, - bottom: { - top: 'autos' - } - }; - /** - * DropDownToggleComponent - */ - var DropDownToggleComponent = /** @class */ (function () { - function DropDownToggleComponent(dropdown) { - var _this = this; - this.dropdown = dropdown; - this.click = (/** - * @param {?} event - * @return {?} - */ - function (event) { return _this.dropdown.toggle(event); }); - } - DropDownToggleComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-drop-down-toggle', - template: '', - encapsulation: core.ViewEncapsulation.None, - styles: [".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"] - }] } - ]; - /** @nocollapse */ - DropDownToggleComponent.ctorParameters = function () { return [ - { type: undefined, decorators: [{ type: core.Inject, args: [core.forwardRef((/** - * @return {?} - */ - function () { return DropDownComponent; })),] }] } - ]; }; - DropDownToggleComponent.propDecorators = { - click: [{ type: core.HostListener, args: ['click', ['$event'],] }] - }; - return DropDownToggleComponent; - }()); - /** - * DropDownItemsComponent - */ - var DropDownItemsComponent = /** @class */ (function () { - function DropDownItemsComponent(dropdown) { - this.dropdown = dropdown; - } - Object.defineProperty(DropDownItemsComponent.prototype, "horizontalAlign", { - get: /** - * @return {?} - */ - function () { - return horizontalAlignment[this.dropdown.getPlacement().h].right; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DropDownItemsComponent.prototype, "verticalAlign", { - get: /** - * @return {?} - */ - function () { - return verticalAlignment[this.dropdown.getPlacement().v].top; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DropDownItemsComponent.prototype, "isOpen", { - get: /** - * @return {?} - */ - function () { - return this.dropdown.open; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} event - * @return {?} - */ - DropDownItemsComponent.prototype.onClickOutside = /** - * @param {?} event - * @return {?} - */ - function (event) { - this.dropdown.close(); - }; - DropDownItemsComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-drop-down-items', - template: '', - encapsulation: core.ViewEncapsulation.None, - styles: [".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"] - }] } - ]; - /** @nocollapse */ - DropDownItemsComponent.ctorParameters = function () { return [ - { type: undefined, decorators: [{ type: core.Inject, args: [core.forwardRef((/** - * @return {?} - */ - function () { return DropDownComponent; })),] }] } - ]; }; - return DropDownItemsComponent; - }()); - /** - * DropDownItemComponent - */ - var DropDownItemComponent = /** @class */ (function () { - function DropDownItemComponent(dropdown) { - var _this = this; - this.dropdown = dropdown; - this.class = 'drop-down-item'; - this.selected = new core.EventEmitter(); - this.click = (/** - * @return {?} - */ - function () { return _this.selectEntry(); }); - } - /** - * @return {?} - */ - DropDownItemComponent.prototype.selectEntry = /** - * @return {?} - */ - function () { - this.selected.next(); - this.dropdown.close(); - }; - DropDownItemComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-drop-down-item', - template: '', - styles: [".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"] - }] } - ]; - /** @nocollapse */ - DropDownItemComponent.ctorParameters = function () { return [ - { type: undefined, decorators: [{ type: core.Inject, args: [core.forwardRef((/** - * @return {?} - */ - function () { return DropDownComponent; })),] }] } - ]; }; - DropDownItemComponent.propDecorators = { - class: [{ type: core.HostBinding, args: ['class',] }], - selected: [{ type: core.Output }], - click: [{ type: core.HostListener, args: ['click',] }] - }; - return DropDownItemComponent; - }()); - /** - * DropDownComponent - */ - var DropDownComponent = /** @class */ (function () { - function DropDownComponent() { - this.placement = { - h: "center", - v: "bottom" - }; - this.open = false; - this.class = 'drop-down'; - } - /** - * @return {?} - */ - DropDownComponent.prototype.close = /** - * @return {?} - */ - function () { - this.open = false; - }; - /** - * @param {?} event - * @return {?} - */ - DropDownComponent.prototype.toggle = /** - * @param {?} event - * @return {?} - */ - function (event) { - event.stopPropagation(); - this.open = !this.open; - document.body.click(); - }; - /** - * @return {?} - */ - DropDownComponent.prototype.getPlacement = /** - * @return {?} - */ - function () { - return this.placement; - }; - DropDownComponent.decorators = [ - { type: core.Component, args: [{ - selector: 'gd-drop-down', - template: '', - encapsulation: core.ViewEncapsulation.None, - styles: [".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"] - }] } - ]; - DropDownComponent.propDecorators = { - placement: [{ type: core.Input }], - open: [{ type: core.Input }, { type: core.HostBinding, args: ['class.show',] }], - class: [{ type: core.HostBinding, args: ['class',] }] - }; - return DropDownComponent; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var horizontalAlignment = { + center: { + right: 'auto' + }, + left: { + right: '100%' + }, + right: { + right: '-100%' + } + }; + /** @type {?} */ + var verticalAlignment = { + center: { + top: '0px', + }, + top: { + top: '-100%', + right: '100%' + }, + bottom: { + top: 'autos' + } + }; + /** + * DropDownToggleComponent + */ + var DropDownToggleComponent = /** @class */ (function () { + function DropDownToggleComponent(dropdown) { + var _this = this; + this.dropdown = dropdown; + this.click = (/** + * @param {?} event + * @return {?} + */ + function (event) { return _this.dropdown.toggle(event); }); + } + DropDownToggleComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-drop-down-toggle', + template: '', + encapsulation: core.ViewEncapsulation.None, + styles: [".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"] + }] } + ]; + /** @nocollapse */ + DropDownToggleComponent.ctorParameters = function () { return [ + { type: undefined, decorators: [{ type: core.Inject, args: [core.forwardRef((/** + * @return {?} + */ + function () { return DropDownComponent; })),] }] } + ]; }; + DropDownToggleComponent.propDecorators = { + click: [{ type: core.HostListener, args: ['click', ['$event'],] }] + }; + return DropDownToggleComponent; + }()); + /** + * DropDownItemsComponent + */ + var DropDownItemsComponent = /** @class */ (function () { + function DropDownItemsComponent(dropdown) { + this.dropdown = dropdown; + } + Object.defineProperty(DropDownItemsComponent.prototype, "horizontalAlign", { + get: /** + * @return {?} + */ + function () { + return horizontalAlignment[this.dropdown.getPlacement().h].right; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DropDownItemsComponent.prototype, "verticalAlign", { + get: /** + * @return {?} + */ + function () { + return verticalAlignment[this.dropdown.getPlacement().v].top; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DropDownItemsComponent.prototype, "isOpen", { + get: /** + * @return {?} + */ + function () { + return this.dropdown.open; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} event + * @return {?} + */ + DropDownItemsComponent.prototype.onClickOutside = /** + * @param {?} event + * @return {?} + */ + function (event) { + this.dropdown.close(); + }; + DropDownItemsComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-drop-down-items', + template: '', + encapsulation: core.ViewEncapsulation.None, + styles: [".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"] + }] } + ]; + /** @nocollapse */ + DropDownItemsComponent.ctorParameters = function () { return [ + { type: undefined, decorators: [{ type: core.Inject, args: [core.forwardRef((/** + * @return {?} + */ + function () { return DropDownComponent; })),] }] } + ]; }; + return DropDownItemsComponent; + }()); + /** + * DropDownItemComponent + */ + var DropDownItemComponent = /** @class */ (function () { + function DropDownItemComponent(dropdown) { + var _this = this; + this.dropdown = dropdown; + this.class = 'drop-down-item'; + this.selected = new core.EventEmitter(); + this.click = (/** + * @return {?} + */ + function () { return _this.selectEntry(); }); + } + /** + * @return {?} + */ + DropDownItemComponent.prototype.selectEntry = /** + * @return {?} + */ + function () { + this.selected.next(); + this.dropdown.close(); + }; + DropDownItemComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-drop-down-item', + template: '', + styles: [".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"] + }] } + ]; + /** @nocollapse */ + DropDownItemComponent.ctorParameters = function () { return [ + { type: undefined, decorators: [{ type: core.Inject, args: [core.forwardRef((/** + * @return {?} + */ + function () { return DropDownComponent; })),] }] } + ]; }; + DropDownItemComponent.propDecorators = { + class: [{ type: core.HostBinding, args: ['class',] }], + selected: [{ type: core.Output }], + click: [{ type: core.HostListener, args: ['click',] }] + }; + return DropDownItemComponent; + }()); + /** + * DropDownComponent + */ + var DropDownComponent = /** @class */ (function () { + function DropDownComponent() { + this.placement = { + h: "center", + v: "bottom" + }; + this.open = false; + this.class = 'drop-down'; + } + /** + * @return {?} + */ + DropDownComponent.prototype.close = /** + * @return {?} + */ + function () { + this.open = false; + }; + /** + * @param {?} event + * @return {?} + */ + DropDownComponent.prototype.toggle = /** + * @param {?} event + * @return {?} + */ + function (event) { + event.stopPropagation(); + this.open = !this.open; + document.body.click(); + }; + /** + * @return {?} + */ + DropDownComponent.prototype.getPlacement = /** + * @return {?} + */ + function () { + return this.placement; + }; + DropDownComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'gd-drop-down', + template: '', + encapsulation: core.ViewEncapsulation.None, + styles: [".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"] + }] } + ]; + DropDownComponent.propDecorators = { + placement: [{ type: core.Input }], + open: [{ type: core.Input }, { type: core.HostBinding, args: ['class.show',] }], + class: [{ type: core.HostBinding, args: ['class',] }] + }; + return DropDownComponent; }()); - /** - * @fileoverview added by tsickle - * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc - */ - /** @type {?} */ - var providers = [ConfigService, - Api, - ModalService, - FileService, - FileModel, - FileUtil, - SanitizeHtmlPipe, - SanitizeResourceHtmlPipe, - SanitizeStylePipe, - HighlightSearchPipe, - UploadFilesService, - RenderPrintService, - NavigateService, - PagePreloadService, - ZoomService, - ExceptionMessageService, - PasswordService, - ErrorInterceptorService, - SearchService, - WindowService, - ViewportService, - FormattingService, - BackFormattingService, - OnCloseService, - LoadingMaskInterceptorService, - LoadingMaskService, - TabActivatorService]; - var CommonComponentsModule = /** @class */ (function () { - function CommonComponentsModule() { - fontawesomeSvgCore.library.add(freeSolidSvgIcons.fas, freeRegularSvgIcons.far); - } - CommonComponentsModule.decorators = [ - { type: core.NgModule, args: [{ - imports: [common.CommonModule, angularFontawesome.FontAwesomeModule, ngClickOutside.ClickOutsideModule], - declarations: [ - TopToolbarComponent, - SidePanelComponent, - ButtonComponent, - LogoComponent, - TooltipComponent, - ModalComponent, - BrowseFilesModalComponent, - DocumentComponent, - PageComponent, - SanitizeHtmlPipe, - SanitizeResourceHtmlPipe, - SanitizeStylePipe, - HighlightSearchPipe, - UploadFileZoneComponent, - DndDirective, - ScrollableDirective, - ZoomDirective, - SelectComponent, - DisabledCursorDirective, - RotationDirective, - InitStateComponent, - RenderPrintDirective, - ErrorModalComponent, - PasswordRequiredComponent, - SearchComponent, - SearchableDirective, - TabbedToolbarsComponent, - TabComponent, - TabsComponent, - ColorPickerComponent, - FormattingDirective, - SuccessModalComponent, - EditorDirective, - LoadingMaskComponent, - DropDownComponent, - DropDownItemComponent, - DropDownItemsComponent, - DropDownToggleComponent - ], - exports: [ - TopToolbarComponent, - SidePanelComponent, - ButtonComponent, - LogoComponent, - TooltipComponent, - ModalComponent, - BrowseFilesModalComponent, - DocumentComponent, - PageComponent, - SanitizeResourceHtmlPipe, - SanitizeStylePipe, - HighlightSearchPipe, - SanitizeHtmlPipe, - UploadFileZoneComponent, - ScrollableDirective, - SelectComponent, - RotationDirective, - InitStateComponent, - RenderPrintDirective, - ErrorModalComponent, - PasswordRequiredComponent, - SearchComponent, - SearchableDirective, - TabbedToolbarsComponent, - TabComponent, - TabsComponent, - ColorPickerComponent, - FormattingDirective, - SuccessModalComponent, - LoadingMaskComponent, - DndDirective, - DropDownComponent, - DropDownItemComponent, - DropDownItemsComponent, - DropDownToggleComponent - ], - providers: providers - },] } - ]; - /** @nocollapse */ - CommonComponentsModule.ctorParameters = function () { return []; }; - return CommonComponentsModule; + /** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ + /** @type {?} */ + var providers = [ConfigService, + Api, + ModalService, + FileService, + FileModel, + FileUtil, + SanitizeHtmlPipe, + SanitizeResourceHtmlPipe, + SanitizeStylePipe, + HighlightSearchPipe, + UploadFilesService, + RenderPrintService, + NavigateService, + PagePreloadService, + ZoomService, + ExceptionMessageService, + PasswordService, + RotationService, + ErrorInterceptorService, + CustomHammerConfig, + SearchService, + WindowService, + ViewportService, + FormattingService, + BackFormattingService, + OnCloseService, + LoadingMaskInterceptorService, + LoadingMaskService, + TabActivatorService]; + var CommonComponentsModule = /** @class */ (function () { + function CommonComponentsModule() { + fontawesomeSvgCore.library.add(freeSolidSvgIcons.fas, freeRegularSvgIcons.far); + } + CommonComponentsModule.decorators = [ + { type: core.NgModule, args: [{ + imports: [common.CommonModule, angularFontawesome.FontAwesomeModule, ngClickOutside.ClickOutsideModule], + declarations: [ + TopToolbarComponent, + SidePanelComponent, + ButtonComponent, + LogoComponent, + TooltipComponent, + ModalComponent, + BrowseFilesModalComponent, + DocumentComponent, + PageComponent, + SanitizeHtmlPipe, + SanitizeResourceHtmlPipe, + SanitizeStylePipe, + HighlightSearchPipe, + UploadFileZoneComponent, + DndDirective, + ScrollableDirective, + ZoomDirective, + SelectComponent, + DisabledCursorDirective, + RotationDirective, + InitStateComponent, + RenderPrintDirective, + ErrorModalComponent, + PasswordRequiredComponent, + SearchComponent, + SearchableDirective, + TabbedToolbarsComponent, + TabComponent, + TabsComponent, + ColorPickerComponent, + FormattingDirective, + SuccessModalComponent, + EditorDirective, + LoadingMaskComponent, + DropDownComponent, + DropDownItemComponent, + DropDownItemsComponent, + DropDownToggleComponent + ], + exports: [ + TopToolbarComponent, + SidePanelComponent, + ButtonComponent, + LogoComponent, + TooltipComponent, + ModalComponent, + BrowseFilesModalComponent, + DocumentComponent, + PageComponent, + SanitizeResourceHtmlPipe, + SanitizeStylePipe, + HighlightSearchPipe, + SanitizeHtmlPipe, + UploadFileZoneComponent, + ScrollableDirective, + SelectComponent, + RotationDirective, + InitStateComponent, + RenderPrintDirective, + ErrorModalComponent, + PasswordRequiredComponent, + SearchComponent, + SearchableDirective, + TabbedToolbarsComponent, + TabComponent, + TabsComponent, + ColorPickerComponent, + FormattingDirective, + SuccessModalComponent, + LoadingMaskComponent, + DndDirective, + DropDownComponent, + DropDownItemComponent, + DropDownItemsComponent, + DropDownToggleComponent + ], + providers: providers + },] } + ]; + /** @nocollapse */ + CommonComponentsModule.ctorParameters = function () { return []; }; + return CommonComponentsModule; }()); exports.Api = Api; @@ -5479,6 +5584,7 @@ exports.CommonComponentsModule = CommonComponentsModule; exports.CommonModals = CommonModals; exports.ConfigService = ConfigService; + exports.CustomHammerConfig = CustomHammerConfig; exports.DisabledCursorDirective = DisabledCursorDirective; exports.DndDirective = DndDirective; exports.DocumentComponent = DocumentComponent; @@ -5519,6 +5625,7 @@ exports.RenderPrintService = RenderPrintService; exports.RotatedPage = RotatedPage; exports.RotationDirective = RotationDirective; + exports.RotationService = RotationService; exports.SanitizeHtmlPipe = SanitizeHtmlPipe; exports.SanitizeResourceHtmlPipe = SanitizeResourceHtmlPipe; exports.SanitizeStylePipe = SanitizeStylePipe; diff --git a/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.js.map b/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.js.map index 4f121dbf2..3ca2209bc 100644 --- a/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.js.map +++ b/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"groupdocs.examples.angular-common-components.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/common-components/lib/top-toolbar/top-toolbar.component.ts","ng://@groupdocs.examples.angular/common-components/lib/side-panel/side-panel.component.ts","ng://@groupdocs.examples.angular/common-components/lib/button/button.component.ts","ng://@groupdocs.examples.angular/common-components/lib/logo/logo.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tooltip/tooltip.component.ts","ng://@groupdocs.examples.angular/common-components/lib/config.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal/modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/file.service.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-files.service.ts","ng://@groupdocs.examples.angular/common-components/lib/browse-files-modal/browse-files-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.service.ts","ng://@groupdocs.examples.angular/common-components/lib/window.service.ts","ng://@groupdocs.examples.angular/common-components/lib/document/document.component.ts","ng://@groupdocs.examples.angular/common-components/lib/page/page.component.ts","ng://@groupdocs.examples.angular/common-components/lib/pipes.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-file-zone/upload-file-zone.component.ts","ng://@groupdocs.examples.angular/common-components/lib/dnd.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/page-preload.service.ts","ng://@groupdocs.examples.angular/common-components/lib/navigate.service.ts","ng://@groupdocs.examples.angular/common-components/lib/viewport.service.ts","ng://@groupdocs.examples.angular/common-components/lib/scrollable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/on-close.service.ts","ng://@groupdocs.examples.angular/common-components/lib/select/select.component.ts","ng://@groupdocs.examples.angular/common-components/lib/disabled-cursor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/rotation.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/init-state/init-state.component.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.service.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/exception-message.service.ts","ng://@groupdocs.examples.angular/common-components/lib/error-modal/error-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/password.service.ts","ng://@groupdocs.examples.angular/common-components/lib/password-required/password-required.component.ts","ng://@groupdocs.examples.angular/common-components/lib/error-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/search.service.ts","ng://@groupdocs.examples.angular/common-components/lib/search/search.component.ts","ng://@groupdocs.examples.angular/common-components/lib/searchable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/tabbed-toolbars/tabbed-toolbars.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tab-activator.service.ts","ng://@groupdocs.examples.angular/common-components/lib/tab/tab.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tabs/tabs.component.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/color-picker/color-picker.component.ts","ng://@groupdocs.examples.angular/common-components/lib/back-formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/selection.service.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/success-modal/success-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/edit-html.service.ts","ng://@groupdocs.examples.angular/common-components/lib/editor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask.service.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask/loading-mask.component.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/drop-down/drop-down.component.ts","ng://@groupdocs.examples.angular/common-components/lib/common-components.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'gd-top-toolbar',\n templateUrl: './top-toolbar.component.html',\n styleUrls: ['./top-toolbar.component.less']\n})\nexport class TopToolbarComponent {\n\n constructor() {\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'gd-side-panel',\n templateUrl: './side-panel.component.html',\n styleUrls: ['./side-panel.component.less']\n})\n\nexport class SidePanelComponent {\n @Input() title: string;\n @Input() icon: string;\n @Output() hideSidePanel = new EventEmitter();\n\n constructor() {\n }\n\n openSidePanel() {\n this.hideSidePanel.emit(true);\n }\n}\n","import { Component, ContentChild, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'gd-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.less']\n})\nexport class ButtonComponent {\n @Input()\n iconOnly = true;\n\n @Input()\n intent = 'default';\n\n @Input()\n disabled = false;\n\n @Input()\n icon : string;\n\n @Input()\n iconClass : string;\n\n @Input()\n tooltip : string;\n\n @Input()\n className: string;\n\n @Input()\n toggle = false;\n\n showToolTip = false;\n\n iconButtonClass(){\n return this.iconOnly ? 'icon-button' : '';\n }\n\n onHovering() {\n if (!this.disabled) {\n this.className += ' active';\n }\n this.showToolTip = true;\n }\n\n onUnhovering() {\n if (!this.disabled) {\n this.className = this.className.replace(' active', '');\n }\n this.showToolTip = false;\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'gd-logo',\n templateUrl: './logo.component.html',\n styleUrls: ['./logo.component.less']\n})\nexport class LogoComponent implements OnInit {\n\n @Input() logo;\n @Input() icon;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'gd-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.less']\n})\nexport class TooltipComponent implements OnInit {\n\n @Input() text:string;\n visibility = 'hidden';\n\n constructor() {\n }\n\n @Input()\n set show(value: boolean) {\n this.visibility = value ? 'shown' : 'hidden';\n }\n\n ngOnInit() {\n }\n\n}\n","import {HttpHeaders} from \"@angular/common/http\";\nimport {Injectable} from \"@angular/core\";\n\nexport class Api {\n public static VIEWER_APP = '/viewer';\n public static EDITOR_APP = '/editor';\n public static COMPARISON_APP = '/comparison';\n public static CONVERSION_APP = '/conversion';\n public static DEFAULT_API_ENDPOINT = window.location.href;\n public static LOAD_FILE_TREE = '/loadFileTree';\n public static LOAD_CONFIG = '/loadConfig';\n public static LOAD_DOCUMENT_DESCRIPTION = '/loadDocumentDescription';\n public static LOAD_DOCUMENT_PAGE = '/loadDocumentPage';\n public static ROTATE_DOCUMENT_PAGE = '/rotateDocumentPages';\n public static UPLOAD_DOCUMENTS = '/uploadDocument';\n public static DOWNLOAD_DOCUMENTS = '/downloadDocument';\n public static LOAD_PRINT = '/loadPrint';\n public static LOAD_PRINT_PDF = '/printPdf';\n public static LOAD_THUMBNAILS = '/loadThumbnails';\n public static LOAD_FORMATS = '/loadFormats';\n public static SAVE_FILE = '/saveFile';\n public static COMPARE_FILES = '/compare';\n public static CONVERT_FILE = '/convert';\n\n public static httpOptionsJson = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n public static httpOptionsJsonResponseTypeBlob = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n responseType: 'blob' as 'blob'\n };\n}\n\n@Injectable()\nexport class ConfigService {\n\n private _apiEndpoint: string;\n\n constructor() {\n this.apiEndpoint = Api.DEFAULT_API_ENDPOINT;\n }\n\n set apiEndpoint(url: string) {\n this._apiEndpoint = url && url.trim().endsWith('/') ? url.substring(0, url.length - 1) : url;\n }\n\n getConfigEndpoint(app) {\n return (this.apiEndpoint.endsWith(app) ? this.apiEndpoint : this.apiEndpoint + app) + Api.LOAD_CONFIG;\n }\n\n getViewerApiEndpoint() {\n return this._apiEndpoint.endsWith(Api.VIEWER_APP) ? this._apiEndpoint : this._apiEndpoint + Api.VIEWER_APP;\n }\n\n getEditorApiEndpoint() {\n return this._apiEndpoint.trim().endsWith(Api.EDITOR_APP) ? this._apiEndpoint : this._apiEndpoint + Api.EDITOR_APP;\n }\n\n getComparisonApiEndpoint() {\n return this._apiEndpoint.trim().endsWith(Api.COMPARISON_APP) ? this._apiEndpoint : this._apiEndpoint + Api.COMPARISON_APP;\n }\n\n getConversionApiEndpoint() {\n return this._apiEndpoint.trim().endsWith(Api.CONVERSION_APP) ? this._apiEndpoint : this._apiEndpoint + Api.CONVERSION_APP;\n }\n\n get apiEndpoint() {\n return this._apiEndpoint;\n }\n}\n","export class CommonModals {\n static PasswordRequired = \"gd-password-required\";\n static ErrorMessage = \"gd-error-message\";\n static BrowseFiles = \"gd-browse-files\";\n static CreateDocument = \"gd-create-document\";\n static OperationSuccess = \"gd-success-modal\";\n}\n\nexport class ModalService {\n private modals: any[] = [];\n\n add(modal: any) {\n this.modals.push(modal);\n }\n\n remove(id: string) {\n this.modals = this.modals.filter(x => x.id !== id);\n }\n\n open(id: string) {\n const modal: any = this.modals.filter(x => x.id === id)[0];\n if (modal) {\n modal.open();\n }\n }\n\n close(id: string) {\n const modal: any = this.modals.filter(x => x.id === id)[0];\n if (modal) {\n modal.close();\n }\n }\n}\n","import {Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {ModalService} from \"../modal.service\";\n\n@Component({\n selector: 'gd-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.less']\n})\nexport class ModalComponent implements OnInit, OnDestroy {\n @Input() id: string;\n @Input() title: string;\n @Output() visible = new EventEmitter();\n visibility = false;\n private element: any;\n\n constructor(private modalService: ModalService, el: ElementRef) {\n this.element = el.nativeElement;\n }\n\n ngOnInit(): void {\n if (!this.id) {\n console.error('modal must have an id');\n return;\n }\n\n document.body.appendChild(this.element);\n\n this.modalService.add(this);\n }\n\n ngOnDestroy(): void {\n this.modalService.remove(this.id);\n this.element.remove();\n }\n\n open(): void {\n this.visibility = true;\n this.visible.emit(true);\n }\n\n close(): void {\n event.preventDefault();\n event.stopPropagation();\n this.visibility = false;\n this.visible.emit(false);\n }\n\n onClose($event: MouseEvent) {\n $event.stopPropagation();\n if ($event && $event.target && ($event.target).id === 'modalDialog') {\n this.close();\n }\n }\n}\n","export class PageModel {\n data: string;\n angle: number;\n width: number;\n height: number;\n number: number;\n editable: boolean;\n}\n\nexport class RotatedPage {\n pageNumber: number;\n angle: number;\n}\n\nexport class FileCredentials {\n guid: string;\n password: string;\n\n constructor(guid: string, password: string) {\n this.guid = guid;\n this.password = password;\n }\n}\n\nexport class SaveFile extends FileCredentials {\n content: string;\n\n constructor(guid: string, password: string, content: string) {\n super(guid, password);\n this.content = content;\n }\n}\n\nexport class FileDescription {\n guid: string;\n pages: PageModel[];\n printAllowed = true;\n}\n\nexport class FileModel {\n guid: string;\n name: string;\n directory: boolean;\n size: number;\n isDirectory: boolean;\n}\n\nexport class HttpError {\n static BadRequest = 400;\n static Unauthorized = 401;\n static Forbidden = 403;\n static NotFound = 404;\n static TimeOut = 408;\n static Conflict = 409;\n static InternalServerError = 500;\n}\n\nexport class FileUtil {\n public static map = {\n 'folder': {'format': '', 'icon': 'folder'},\n 'pdf': {'format': 'Portable Document Format', 'icon': 'file-pdf', 'unit': 'pt'},\n 'doc': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'docx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'docm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'dot': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'dotx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'dotm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'xls': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xlsx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xlsm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xlsb': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xls2003': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xltx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xltm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'ppt': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'pptx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'pps': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'ppsx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'vsd': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vss': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vsx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vst': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vtx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vsdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vdw': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vstx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vssx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'mpp': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\n 'mpt': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\n 'msg': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\n 'eml': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\n 'emlx': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\n 'one': {'format': 'Microsoft OneNote', 'icon': 'file-word', 'unit': 'pt'},\n 'odt': {'format': 'Open Document Text', 'icon': 'file-word', 'unit': 'pt'},\n 'ott': {'format': 'Open Document Text Template', 'icon': 'file-word', 'unit': 'pt'},\n 'ods': {'format': 'Open Document Spreadsheet', 'icon': 'file-excel', 'unit': 'px'},\n 'odp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'otp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'ots': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'potx': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'potm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'pptm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'ppsm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'rtf': {'format': 'Rich Text Format', 'icon': 'file-alt', 'unit': 'pt'},\n 'txt': {'format': 'Plain Text File', 'icon': 'file-alt', 'unit': 'pt'},\n 'csv': {'format': 'Comma-Separated Values', 'icon': 'file-excel', 'unit': 'px'},\n 'html': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'mht': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'mhtml': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'xml': {'format': 'Extensible Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'xps': {'format': 'XML Paper Specification', 'icon': 'file-word', 'unit': 'pt'},\n 'dxf': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\n 'dwg': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\n 'bmp': {'format': 'Bitmap Picture', 'icon': 'file-image', 'unit': 'px'},\n 'gif': {'format': 'Graphics Interchange Format', 'icon': 'file-image', 'unit': 'px'},\n 'jpg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'jpe': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'jpeg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'jfif': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'png': {'format': 'Portable Network Graphics', 'icon': 'file-image', 'unit': 'px'},\n 'tiff': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'tif': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'psd': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'svg': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'jp2': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'epub': {'format': 'Electronic Publication', 'icon': 'file-pdf', 'unit': 'pt'},\n 'ico': {'format': 'Windows Icon', 'icon': 'file-image', 'unit': 'px'},\n 'webp': {'format': 'Compressed Image', 'icon': 'file-image', 'unit': 'px'},\n 'mobi': {'format': 'Mobipocket eBook', 'icon': 'file-pdf', 'unit': 'pt'},\n 'tex': {'format': 'LaTeX Source Document', 'icon': 'file-pdf', 'unit': 'pt'},\n 'djvu': {'format': 'Multi-Layer Raster Image', 'icon': 'file-alt', 'unit': 'pt'},\n 'unknown': {'format': 'This format is not supported', 'icon': 'file'},\n };\n\n public static find(filename: string, isDirectory: boolean) {\n if (filename && !isDirectory) {\n const strings = filename.split('.');\n const name = strings.pop().toLowerCase();\n if (typeof FileUtil.map[name] === \"undefined\") {\n return strings.length > 0 ? FileUtil.map['unknown'] : FileUtil.map['folder'];\n } else {\n return FileUtil.map[name];\n }\n } else {\n return FileUtil.map['folder'];\n }\n }\n}\n\nexport class FileService {\n\n constructor() {\n }\n}\n","import {Observable, Observer} from \"rxjs\";\n\nexport class UploadFilesService {\n private _uploadsChange: Observable;\n private _observer: Observer;\n\n constructor() {\n this._uploadsChange = new Observable(observer =>\n this._observer = observer);\n }\n\n get uploadsChange(): Observable {\n return this._uploadsChange;\n }\n\n changeFilesList(filesList: FileList) {\n this._observer.next(filesList);\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {FileModel, FileUtil} from \"../file.service\";\nimport {UploadFilesService} from \"../upload-files.service\";\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\nconst upload_disc = 'Disc';\n\nconst upload_url = 'URL';\n\nconst uploads_choices = [{name: upload_disc, icon: 'hdd'}, {name: upload_url, icon: 'link'}];\n\n@Component({\n selector: 'gd-browse-files-modal',\n templateUrl: './browse-files-modal.component.html',\n styleUrls: ['./browse-files-modal.component.less']\n})\nexport class BrowseFilesModalComponent implements OnInit {\n uploads = uploads_choices;\n\n @Input() files;\n @Input() uploadConfig;\n @Output() selectedFileGuid = new EventEmitter();\n @Output() selectedDirectory = new EventEmitter();\n @Output() urlForUpload = new EventEmitter();\n @Output() closing = new EventEmitter();\n private selectedFile: FileModel;\n showUploadUrl = false;\n showUploadFile = false;\n\n constructor(private _uploadService: UploadFilesService) {\n }\n\n ngOnInit() {\n }\n\n getSize(size: number) {\n const mb = size / 1024 / 1024;\n if (mb > 1) {\n return (Math.round(mb * 100) / 100) + ' MB';\n } else {\n const kb = size / 1024;\n if (kb > 1) {\n return (Math.round(kb * 100) / 100) + ' KB';\n }\n }\n return size + ' Bytes';\n }\n\n getFormatName(file: FileModel) {\n return FileUtil.find(file.name, file.directory).format;\n }\n\n getFormatIcon(file: FileModel) {\n return FileUtil.find(file.name, file.directory).icon;\n }\n\n choose(file: FileModel) {\n this.selectedFile = file;\n if (file.directory || file.isDirectory) {\n this.selectedDirectory.emit(file.name);\n } else {\n this.selectedFileGuid.emit(file.guid);\n }\n }\n\n goUp() {\n if (this.selectedFile) {\n let guid = this.selectedFile.guid;\n if (guid.length > 0 && guid.indexOf('/') === -1) {\n guid = '';\n } else {\n guid = guid.replace(/\\/[^\\/]+\\/?$/, '');\n }\n this.selectedDirectory.emit(guid);\n }\n }\n\n selectUpload($event: string) {\n if (upload_url === $event) {\n this.showUploadUrl = true;\n } else {\n this.showUploadUrl = false;\n $(\"#gd-upload-input\").trigger('click');\n }\n }\n\n refresh($event) {\n\n if ($event) {\n this.files = null;\n this.selectedDirectory.emit('');\n this.showUploadUrl = false;\n this.selectedFile = null;\n } else {\n this.closing.emit(true);\n }\n }\n\n showSpinner() {\n return !this.files;\n }\n\n uploadUrl(url: string) {\n if (url) {\n this.urlForUpload.emit(url);\n this.cleanUpload();\n }\n }\n\n handleFileInput(files: FileList) {\n this._uploadService.changeFilesList(files);\n }\n\n cleanUpload() {\n this.showUploadFile = false;\n this.showUploadUrl = false;\n }\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class ZoomService {\n private _observer: Subject = new Subject();\n private readonly _zoomChange: Observable = this._observer.asObservable();\n private _zoom: number;\n\n constructor() {\n }\n\n get zoom(): number {\n return this._zoom;\n }\n\n get zoomChange(): Observable {\n return this._zoomChange;\n }\n\n changeZoom(zoom: number) {\n this._zoom = zoom;\n this._observer.next(zoom);\n }\n\n private createZoomOption(val: any, name: string, sep: boolean = false) {\n return {value: val, name: name, separator: sep}\n }\n\n zoomOptions(width, height) {\n return [this.createZoomOption(25, '25%'),\n this.createZoomOption(50, '50%'),\n this.createZoomOption(100,'100%'),\n this.createZoomOption(150, '150%'),\n this.createZoomOption(200, '200%'),\n this.createZoomOption(300, '300%'),\n this.createZoomOption(0, '', true),\n this.createZoomOption(width, 'Fit Width'),\n this.createZoomOption(height, 'Fit Height')];\n }\n}\n","import {fromEvent, Observable, Subject} from \"rxjs\";\nimport {debounceTime, distinctUntilChanged, startWith, tap} from \"rxjs/operators\";\n\nconst MOBILE_MAX_WIDTH = 425;\nconst TABLET_MAX_WIDTH = 1024;\n\nexport class WindowService {\n\n private resizeSubject: Subject = new Subject();\n private _resize$;\n private width: number;\n private height: number;\n\n constructor() {\n this.width = window.innerWidth;\n this.height = window.innerHeight;\n\n this._resize$ = fromEvent(window, 'resize')\n .pipe(\n debounceTime(200),\n distinctUntilChanged(),\n startWith({target: {innerWidth: window.innerWidth, innerHeight: window.innerHeight}}),\n tap(event => {\n this.resizeSubject.next(event.target);\n this.width = (event.target as Window).innerWidth;\n this.height = (event.target as Window).innerHeight;\n }),\n );\n this._resize$.subscribe();\n }\n\n get onResize(): Observable {\n return this.resizeSubject.asObservable();\n }\n\n isMobile() {\n return this.width <= MOBILE_MAX_WIDTH;\n }\n\n isTablet() {\n return this.width <= TABLET_MAX_WIDTH;\n }\n\n isDesktop() {\n return !this.isMobile() && !this.isTablet();\n }\n\n isEdge() {\n return window.navigator.userAgent.toLowerCase().indexOf('edge') > -1;\n }\n\n isFirefox() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n }\n}\n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n Input,\n OnInit,\n AfterViewInit,\n OnChanges} from '@angular/core';\nimport {FileDescription, FileUtil} from \"../file.service\";\nimport {ZoomService} from \"../zoom.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\nimport * as Hammer from 'hammerjs';\nimport { WindowService } from '../window.service';\n\n@Component({\n selector: 'gd-document',\n templateUrl: './document.component.html',\n styleUrls: ['./document.component.less']\n})\nexport class DocumentComponent implements OnInit, AfterViewChecked, AfterViewInit, OnChanges {\n\n @Input() mode: boolean;\n @Input() preloadPageCount: number;\n @Input() file: FileDescription;\n wait = false;\n zoom: number;\n\n docWidth = null;\n docHeight = null;\n viewportWidth = null;\n viewportHeight = null;\n scale = null;\n lastScale = null;\n container = null;\n doc = null;\n x = 0;\n lastX = 0;\n y = 0;\n lastY = 0;\n pinchCenter = null;\n pinchCenterOffset = null;\n curWidth = 0;\n curHeight = 0;\n isDesktop: boolean;\n\n constructor(private _elementRef: ElementRef,\n private _zoomService: ZoomService,\n private _windowService: WindowService) {\n\n _zoomService.zoomChange.subscribe((val: number) => {\n this.zoom = val;\n });\n\n this.isDesktop = _windowService.isDesktop();\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n const panzoom = this._elementRef.nativeElement.children.item(0).children.item(0);\n (panzoom as any).style.transform = '';\n // TODO: this intersects with zooming by zoom directive, but still needed\n // for flush previous settings before opening another file\n //this._zoomService.changeZoom(100);\n //this.scale = 1;\n }\n \n ngAfterViewInit() {\n // For current iteration we take .panzoom as a document\n this.doc = this._elementRef.nativeElement.children.item(0).children.item(0);\n // For current iteration we take .gd-document as a container\n this.container = this._elementRef.nativeElement;\n\n this.docWidth = this.doc.clientWidth;\n this.docHeight = this.doc.clientHeight;\n this.viewportWidth = this.doc.offsetWidth;\n\n // For cases where we already have zoom defined we should include it\n this.scale = (this.viewportWidth/this.docWidth) * this._zoomService.zoom/100;\n \n this.lastScale = this.scale;\n this.viewportHeight = this.container.offsetHeight;\n this.curWidth = this.docWidth*this.scale;\n this.curHeight = this.docHeight*this.scale;\n\n const hammer = new Hammer(this.container);\n }\n\n // TODO: this temporary crutch for Excel files should be documented\n ifExcel() {\n return FileUtil.find(this.file.guid, false).format === \"Microsoft Excel\";\n }\n\n getDimensionWithUnit(value: number) {\n return value + FileUtil.find(this.file.guid, false).unit;\n }\n\n ngAfterViewChecked(): void {\n const elementNodeListOf = this._elementRef.nativeElement.querySelectorAll('.gd-wrapper');\n const element = elementNodeListOf.item(0);\n if (element) {\n $(element).trigger('focus');\n }\n }\n\n absolutePosition(el) {\n let x = 0, y = 0;\n\n while (el !== null) {\n x += el.offsetLeft;\n y += el.offsetTop;\n el = el.offsetParent;\n }\n\n return { x: x, y: y };\n };\n\n restrictRawPos(pos, viewportDim, docDim) {\n if (pos < viewportDim/this.scale - docDim) { // too far left/up?\n pos = viewportDim/this.scale - docDim;\n } else if (pos > 0) { // too far right/down?\n pos = 0;\n }\n return pos;\n };\n\n updateLastPos() {\n this.lastX = this.x;\n this.lastY = this.y;\n };\n\n translate(deltaX, deltaY) {\n // We restrict to the min of the viewport width/height or current width/height as the\n // current width/height may be smaller than the viewport width/height\n const newX = this.restrictRawPos(this.lastX + deltaX/this.scale,\n Math.min(this.viewportWidth, this.curWidth), this.docWidth);\n this.x = newX;\n // TODO: value here and in the similar line below changes to positive to take any effect\n this.container.scrollLeft = -Math.ceil(newX*this.scale);\n\n const newY = this.restrictRawPos(this.lastY + deltaY/this.scale,\n Math.min(this.viewportHeight, this.curHeight), this.docHeight);\n this.y = newY;\n this.container.scrollTop = -Math.ceil(newY*this.scale);\n \n this.doc.style.transform = 'scale(' + this.scale + ')';\n };\n\n startZoom(scaleBy) {\n this.scale = this.lastScale*scaleBy;\n\n this.curWidth = this.docWidth*this.scale;\n this.curHeight = this.docHeight*this.scale;\n\n // Adjust margins to make sure that we aren't out of bounds\n this.translate(0, 0);\n };\n\n rawCenter($event) {\n const pos = this.absolutePosition(this.container);\n\n // We need to account for the scroll position\n const scrollLeft = window.pageXOffset ? window.pageXOffset : document.body.scrollLeft;\n const scrollTop = window.pageYOffset ? window.pageYOffset : document.body.scrollTop;\n\n const zoomX = -this.x + ($event.center.x - pos.x + scrollLeft)/this.scale;\n const zoomY = -this.y + ($event.center.y - pos.y + scrollTop)/this.scale;\n\n return { x: zoomX, y: zoomY };\n };\n\n updateLastScale() {\n this.lastScale = this.scale;\n };\n\n zoomAround(scaleBy, rawZoomX, rawZoomY, doNotUpdateLast) {\n // Zoom\n this.startZoom(scaleBy);\n\n // New raw center of viewport\n const rawCenterX = -this.x + Math.min(this.viewportWidth, this.curWidth)/2/this.scale;\n const rawCenterY = -this.y + Math.min(this.viewportHeight, this.curHeight)/2/this.scale;\n\n // Delta\n const deltaX = (rawCenterX - rawZoomX)*this.scale;\n const deltaY = (rawCenterY - rawZoomY)*this.scale;\n\n // Translate back to zoom center\n this.translate(deltaX, deltaY);\n\n if (!doNotUpdateLast) {\n this.updateLastScale();\n this.updateLastPos();\n }\n };\n\n onPinch($event){\n if (this.pinchCenter === null) {\n this.pinchCenter = this.rawCenter($event);\n const offsetX = this.pinchCenter.x*this.scale - (-this.x*this.scale + Math.min(this.viewportWidth, this.curWidth)/2);\n const offsetY = this.pinchCenter.y*this.scale - (-this.y*this.scale + Math.min(this.viewportHeight, this.curHeight)/2);\n this.pinchCenterOffset = { x: offsetX, y: offsetY };\n }\n\n const newScale = this.scale*$event.scale;\n\n const zoomX = this.pinchCenter.x*newScale - this.pinchCenterOffset.x;\n const zoomY = this.pinchCenter.y*newScale - this.pinchCenterOffset.y;\n const zoomCenter = { x: zoomX/newScale, y: zoomY/newScale };\n \n this.zoomAround($event.scale, zoomCenter.x, zoomCenter.y, true);\n }\n\n onPinchEnd($event){\n this.updateLastScale();\n this.updateLastPos();\n this.pinchCenter = null;\n }\n\n onPan($event){\n // TODO: looks like native pan works better\n // if (!this.isDesktop) {\n // this.translate($event.deltaX, $event.deltaY);\n // }\n }\n\n onPanEnd($event){\n // if (!this.isDesktop) {\n // this.updateLastPos();\n // }\n }\n\n onDoubleTap($event){\n if (!this.isDesktop) {\n if ($event.tapCount === 2) {\n const c = this.rawCenter($event);\n this.zoomAround(2, c.x, c.y, false);\n }\n }\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\n\n@Component({\n selector: 'gd-page',\n templateUrl: './page.component.html',\n styleUrls: ['./page.component.less']\n})\nexport class PageComponent implements OnInit, OnChanges {\n\n @Input() angle: number;\n @Input() width: number;\n @Input() height: number;\n @Input() number: number;\n @Input() data: string;\n @Input() isHtml: boolean;\n @Input() editable: boolean;\n imgData: string;\n\n constructor() {\n }\n\n ngOnInit() {\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n if(isIE && this.number === 0){\n this.editable = false;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // TODO: this is temporary needed to remove unneeded spaces and BOM symbol \n // which leads to undesired spaces on the top of the docs pages\n this.data = this.data !== null ? this.data.replace(/>\\s+<').replace(/\\uFEFF/g,\"\") : null;\n const dataImagePngBase64 = 'data:image/png;base64,';\n this.imgData = dataImagePngBase64;\n if (!this.isHtml) {\n this.imgData += this.data;\n }\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\n\n@Pipe({name: 'safeHtml'})\nexport class SanitizeHtmlPipe implements PipeTransform{\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n\n@Pipe({name: 'safeResourceHtml'})\nexport class SanitizeResourceHtmlPipe implements PipeTransform{\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustResourceUrl(html);\n }\n}\n\n@Pipe({name: 'safeStyle'})\nexport class SanitizeStylePipe implements PipeTransform{\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustStyle(html);\n }\n}\n\n@Pipe({name: 'highlight'})\nexport class HighlightSearchPipe implements PipeTransform {\n\n transform(value: string, args: string): any {\n if (!args) {\n return value;\n }\n const re = new RegExp(args, 'gi'); //'gi' for case insensitive and can use 'g' if you want the search to be case sensitive.\n return value.replace(re, \"$&\");\n }\n}\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {UploadFilesService} from \"../upload-files.service\";\n\n@Component({\n selector: 'gd-upload-file-zone',\n templateUrl: './upload-file-zone.component.html',\n styleUrls: ['./upload-file-zone.component.less']\n})\nexport class UploadFileZoneComponent implements OnInit {\n\n @Output() closeUpload = new EventEmitter();\n\n constructor(private _uploadService: UploadFilesService) { }\n\n ngOnInit() {\n }\n\n handleFileInput(files: FileList) {\n this._uploadService.changeFilesList(files);\n this.onCloseUpload();\n }\n\n onCloseUpload() {\n this.closeUpload.emit(true);\n }\n\n close($event) {\n if ($event.target.id === 'gd-dropZone') {\n this.onCloseUpload();\n }\n }\n}\n","import {Directive, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\nimport {UploadFilesService} from \"./upload-files.service\";\n\n@Directive({\n selector: '[gdDnd]'\n})\nexport class DndDirective {\n\n @Output() closing = new EventEmitter();\n @Output() opening = new EventEmitter();\n @Output() dropped = new EventEmitter();\n\n @HostBinding('class.active') active = false;\n\n constructor(private _uploadFilesService: UploadFilesService) {\n }\n\n @HostListener('dragover', ['$event'])\n public onDragOver(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.active = true;\n this.opening.emit(true);\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.active = false;\n this.closeArea();\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n const files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.active = false;\n this.dropped.emit(true);\n this._uploadFilesService.changeFilesList(files);\n this.closeArea();\n }\n }\n\n @HostListener('click', ['$event'])\n public onClick(event) {\n this.closeArea();\n }\n\n private closeArea() {\n this.closing.emit(true);\n this.opening.emit(false);\n }\n}\n","import {Observable, Observer} from \"rxjs\";\n\nexport class PagePreloadService {\n private readonly _checkPreload: Observable;\n private _observer: Observer;\n\n constructor() {\n this._checkPreload = new Observable(observer =>\n this._observer = observer);\n }\n\n get checkPreload(): Observable {\n return this._checkPreload;\n }\n\n changeLastPageInView(page: number) {\n if(this._observer) {\n this._observer.next(page);\n }\n }\n}\n","import {Observable, Observer} from \"rxjs\";\nimport {PagePreloadService} from \"./page-preload.service\";\nimport {Injectable} from \"@angular/core\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigateService {\n private _currentPage = 0;\n private _countPages = 0;\n private readonly _navigate: Observable;\n private _observer: Observer;\n\n constructor(private _pagePreloadService: PagePreloadService) {\n this._navigate = new Observable(observer =>\n this._observer = observer);\n }\n\n get navigate(): Observable {\n return this._navigate;\n }\n\n get countPages(): number {\n return this._countPages;\n }\n\n set countPages(value: number) {\n this._countPages = value;\n }\n\n get currentPage(): number {\n return this._currentPage;\n }\n\n set currentPage(value: number) {\n this._currentPage = value;\n }\n\n nextPage() {\n if (this._currentPage < this._countPages) {\n this._currentPage++;\n this.navigateTo(this._currentPage);\n }\n }\n\n prevPage() {\n if (this._currentPage > 1) {\n this._currentPage--;\n this.navigateTo(this._currentPage);\n }\n }\n\n toLastPage() {\n this._currentPage = this._countPages;\n this.navigateTo(this._currentPage);\n }\n\n toFirstPage() {\n this._currentPage = 1;\n this.navigateTo(this._currentPage);\n }\n\n navigateTo(page: number) {\n this.currentPage = page;\n this._pagePreloadService.changeLastPageInView(page);\n this._observer.next(page);\n }\n}\n","import {Injectable} from '@angular/core';\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewportService {\n\n constructor() {\n }\n\n checkInViewport(el, zoom: number = 100, leftOffset: number = 0, deltaX: number = 0.5) {\n if (!el) {\n return false;\n }\n const x = deltaX;\n const y = 0.5;\n\n const win = $(window);\n\n const viewport = {\n top: win.scrollTop(),\n left: win.scrollLeft() + leftOffset,\n right: win.scrollLeft() + win.width() - 10,\n bottom: win.scrollTop() + win.height()\n };\n\n\n if (isNaN(zoom)) {\n zoom = 100;\n }\n\n const zoomN = zoom / 100;\n const height = $(el).outerHeight() * (zoomN);\n const width = $(el).outerWidth() * (zoomN);\n\n if (!width || !height) {\n return false;\n }\n\n const bounds = $(el).offset();\n const right = (bounds.left * (zoomN)) + width;\n const bottom = (bounds.top * (zoomN)) + height;\n\n const visible = (!(viewport.right < (bounds.left * (zoomN)) || viewport.left > right || viewport.bottom < (bounds.top * (zoomN)) || viewport.top > bottom));\n\n if (!visible) {\n return false;\n }\n\n const deltas = {\n top: parseFloat(Math.min(1, (bottom - viewport.top) / height).toFixed(2)),\n bottom: parseFloat(Math.min(1, (viewport.bottom - (bounds.top * (zoomN))) / height).toFixed(2)),\n left: parseFloat(Math.min(1, (right - viewport.left) / width).toFixed(2)),\n right: parseFloat(Math.min(1, (viewport.right - (bounds.left * (zoomN))) / width).toFixed(2))\n };\n\n return (deltas.left * deltas.right) >= x && (deltas.top * deltas.bottom) >= y;\n }\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges\n} from '@angular/core';\nimport {NavigateService} from \"./navigate.service\";\nimport {PagePreloadService} from \"./page-preload.service\";\nimport {ZoomService} from \"./zoom.service\";\nimport {WindowService} from \"./window.service\";\nimport {ViewportService} from \"./viewport.service\";\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Directive({\n selector: '[gdScrollable]'\n})\nexport class ScrollableDirective implements AfterViewInit, OnChanges, OnInit {\n\n private currentPage: number;\n private zoom = 100;\n\n constructor(private _elementRef: ElementRef,\n private _navigateService: NavigateService,\n private _pagePreloadService: PagePreloadService,\n private _zoomService: ZoomService,\n private _windowService: WindowService,\n private _viewportService: ViewportService) {\n\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\n _zoomService.zoomChange.subscribe((val: number) => {\n this.zoom = val ? val : this.zoom;\n this.refresh();\n });\n }\n\n ngAfterViewInit() {\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\n this._navigateService.navigate.subscribe((value => {\n this.currentPage = value;\n this.scrollToPage(value);\n }));\n this.refresh();\n }\n\n @HostListener('scroll') scrolling() {\n this.refresh();\n }\n\n @HostListener('window:resize') resizing() {\n this.refresh();\n }\n\n scrollToPage(pageNumber: number) {\n const el = this._elementRef.nativeElement;\n const page = this.getPage(pageNumber);\n const prev = pageNumber > 0 ? this.getPage(pageNumber - 1) : null;\n const isSameTop = (prev && $(prev).offset().top === $(page).offset().top);\n if (this._viewportService.checkInViewport(page, this.zoom) && isSameTop) {\n return;\n }\n const pagesHeight = this.calculateOffset(pageNumber);\n const options = {\n left: 0,\n top: pagesHeight\n };\n if(el){\n // using polyfill\n el.scroll(options);\n }\n }\n\n private getChildren() {\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n // here and in the similar line below we getting the document pages\n return el.children.item(0).children.item(0).children;\n }\n }\n\n private getPage(pageNumber: number) {\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n return el.children.item(0).children.item(0).children.item(pageNumber - 1);\n }\n }\n\n private calculateOffset(pageNumber: number) {\n const count = this._windowService.isFirefox() ? 1 : this.countPagesOnWidth();\n const margin = this._windowService.isDesktop() ? 40 : 10;\n let pagesHeight = 0;\n for (let i = 1; i < pageNumber / count; i++) {\n const item = this.getPage(i);\n const clientHeight = item ? item.clientHeight : 0;\n pagesHeight += clientHeight > 0 ? clientHeight * this.getZoom() + margin : 0;\n }\n return pagesHeight;\n }\n\n private countPagesOnWidth() {\n const pageEl = this.getPage(1);\n const offset = 150;\n const count = Math.floor((this.getWidth() - offset) / (pageEl.getBoundingClientRect().width * this.getZoom()));\n return count === 0 ? 1 : count;\n }\n\n refresh() {\n let page;\n let currentPageSet = false;\n const pageElem = this.getPage(this.currentPage);\n const currentPageRect = this.currentPage && pageElem ? pageElem.getBoundingClientRect() : null;\n for (page = 1; page < this.getChildren().length + 1; page++) {\n const element = this.getPage(page);\n if (this._viewportService.checkInViewport(element, this.zoom)) {\n if (!currentPageSet) {\n if (!this.currentPage || !pageElem || (this.currentPage && currentPageRect && element.getBoundingClientRect().top !== currentPageRect.top)) {\n this.currentPage = page;\n this._navigateService.currentPage = page;\n }\n currentPageSet = true;\n }\n this._pagePreloadService.changeLastPageInView(page);\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.refresh();\n }\n\n ngOnInit(): void {\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\n }\n\n\n private getWidth() {\n return this._elementRef ? this._elementRef.nativeElement.offsetWidth : window.innerWidth;\n }\n\n private getZoom() {\n return this.zoom / 100;\n }\n}\n","import {AfterViewInit, Directive, HostBinding, Input, OnDestroy, OnInit, ElementRef, OnChanges} from '@angular/core';\nimport {ZoomService} from \"./zoom.service\";\nimport {FileUtil} from \"./file.service\";\nimport { WindowService } from './window.service';\n\n@Directive({\n selector: '[gdZoom]'\n})\nexport class ZoomDirective implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Input() zoomActive = true;\n @Input() file;\n\n @HostBinding('style.zoom') zoomInt: number;\n @HostBinding('style.transform') transform: string;\n @HostBinding('style.transform-origin') transformOrigin: string;\n @HostBinding('style.width') width: string;\n @HostBinding('style.min-width') minWidth: string;\n el: ElementRef;\n\n constructor(private _zoomService: ZoomService, private _windowService: WindowService, el: ElementRef) {\n this.el = el;\n }\n\n ngOnDestroy(): void {\n }\n\n ngOnChanges(): void {\n this.setStyles(this._zoomService.zoom);\n this.resizePages(this._zoomService.zoom);\n }\n\n ngOnInit(): void {\n if (! this.zoomActive) {\n return;\n }\n\n this.setStyles(this._zoomService.zoom);\n this._zoomService.zoomChange.subscribe((zoom) => {\n this.setStyles(zoom);\n this.resizePages(zoom);\n });\n }\n\n private setStyles(zoom) {\n if (! this.zoomActive) {\n return;\n }\n\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\n \n if (this._windowService.isEdge()) {\n this.zoomInt = zoomInt;\n }\n else {\n this.zoomInt = null;\n }\n \n if (!this._windowService.isEdge()) {\n this.transform = 'scale(' + zoomInt + ')';\n this.transformOrigin = 'top left';\n }\n else {\n this.transform = \"\";\n this.transformOrigin = \"\";\n }\n\n let maxWidth = 0;\n this.file.pages.forEach(page => {\n {\n if (page.width > maxWidth){\n maxWidth = page.width;\n }\n }\n });\n\n // Images and Excel-related files receiving dimensions in px from server\n this.minWidth = maxWidth + FileUtil.find(this.file.guid, false).unit;\n }\n\n private getScrollWidth(elm){\n return elm.offsetWidth - elm.clientWidth;\n }\n\n private resizePages(zoom){\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\n\n const viewPortWidth = this.el.nativeElement.parentElement.offsetWidth;\n const scrollWidth = this.getScrollWidth(this.el.nativeElement.parentElement);\n this.width = (viewPortWidth/zoomInt - scrollWidth/zoomInt) + 'px';\n }\n\n ngAfterViewInit(): void {\n this.setStyles(this._zoomService.zoom);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Subject} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnCloseService {\n private _observer: Subject = new Subject();\n private readonly _onClose: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get onClose() {\n return this._onClose;\n }\n\n close(close: boolean) {\n this._observer.next(close)\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {OnCloseService} from \"../on-close.service\";\n\nexport interface Option {\n name: string;\n value: any;\n separator: boolean;\n}\n\n@Component({\n selector: 'gd-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.less']\n})\nexport class SelectComponent {\n\n @Input() options: Option[];\n @Input() disabled = false;\n @Input() showSelected: Option;\n @Output() selected: EventEmitter = new EventEmitter();\n isOpen = false;\n\n constructor(private _onCloseService: OnCloseService) {\n _onCloseService.onClose.subscribe(() => {\n this.close();\n });\n }\n\n open() {\n if (!this.disabled) {\n this.isOpen = true;\n }\n }\n\n close() {\n this.isOpen = false;\n }\n\n onClickOutside(event : Event){\n this.close();\n }\n\n toggle($event) {\n $event.preventDefault();\n $event.stopPropagation();\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n select($event, value: Option) {\n $event.preventDefault();\n $event.stopPropagation();\n this.selected.emit(value);\n this.close();\n }\n\n}\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\n\n@Directive({\n selector: '[gdDisabledCursor]'\n})\nexport class DisabledCursorDirective implements OnInit, OnChanges {\n\n @Input() dis: boolean;\n\n constructor() {\n }\n\n @HostBinding('class.inactive') cursor: boolean;\n\n private updateCursor() {\n this.cursor = this.dis ? true : false;\n }\n\n ngOnInit(): void {\n this.updateCursor();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateCursor()\n }\n}\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\n\n@Directive({\n selector: '[gdRotation]'\n})\nexport class RotationDirective implements OnInit, OnChanges {\n\n @Input() angle: number;\n @Input() isHtmlMode: boolean;\n @Input() width: number;\n @Input() height: number;\n @Input() withMargin = true;\n\n @HostBinding('style.animation') animation: string;\n @HostBinding('style.transition-property') transition: string;\n @HostBinding('style.transform') transform: string;\n\n @HostBinding('style.margin') margin: string;\n\n constructor() {\n }\n\n private updateCursor() {\n if (typeof this.angle === \"string\"){\n this.angle = parseInt(this.angle, 10);\n }\n\n if (this.angle) {\n this.animation = 'none';\n this.transition = 'none';\n this.transform = 'rotate(' + this.angle + 'deg)';\n } else if (this.angle === 0 && this.animation) {\n this.animation = null;\n this.transition = null;\n this.transform = null;\n }\n\n if (this.withMargin) {\n if (this.angle === 90 || this.angle === 270 || this.angle === -90 || this.angle === -270) {\n if (this.isHtmlMode) {\n if (this.isLandscape()) {\n this.margin = '164px 254px';\n } else {\n this.margin = '-111px 254px';\n }\n } else {\n if (this.isLandscape()) {\n this.margin = '129px 100px -79px';\n } else {\n this.margin = '-72px 100px -79px';\n }\n }\n } else if (this.angle === -180 || this.angle === 180) {\n this.margin = '280px';\n } else {\n this.margin = null;\n }\n }\n\n }\n\n isLandscape() {\n return this.width > this.height;\n }\n\n ngOnInit(): void {\n this.updateCursor();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateCursor()\n }\n\n}\n","import {Component, Input, Output, EventEmitter, OnInit} from '@angular/core';\n\n@Component({\n selector: 'gd-init-state',\n templateUrl: './init-state.component.html',\n styleUrls: ['./init-state.component.less']\n})\nexport class InitStateComponent implements OnInit {\n @Input() icon: string;\n @Input() text: string;\n @Output() fileDropped = new EventEmitter();\n showUploadFile = false;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n dropped($event) {\n if ($event) {\n this.fileDropped.emit($event);\n this.showUploadFile = false;\n }\n }\n}\n","import {Observable, Observer} from \"rxjs\";\nimport {PageModel} from \"./file.service\";\n\nexport class RenderPrintService {\n private _render: Observable;\n private _observer: Observer;\n private _renderBlob: Observable;\n private _observerBlob: Observer;\n\n constructor() {\n this._render = new Observable(observer =>\n this._observer = observer);\n this._renderBlob = new Observable(observer =>\n this._observerBlob = observer);\n }\n\n get renderPrint(): Observable {\n return this._render;\n }\n\n changePages(pages: PageModel[]) {\n this._observer.next(pages);\n }\n\n get renderPrintBlob(): Observable {\n return this._renderBlob;\n }\n\n changeBlob(file: Blob) {\n this._observerBlob.next(file);\n }\n}\n","import {Directive, Input} from '@angular/core';\nimport {PageModel} from \"./file.service\";\nimport {RenderPrintService} from \"./render-print.service\";\n\n@Directive({\n selector: '[gdRenderPrint]'\n})\nexport class RenderPrintDirective {\n @Input() htmlMode: boolean;\n\n constructor(private _renderService: RenderPrintService) {\n _renderService.renderPrint.subscribe(pages => {\n this.renderPrint(pages);\n });\n _renderService.renderPrintBlob.subscribe(file => {\n this.renderPrintBlob(file);\n });\n }\n\n private renderPrint(pages: PageModel[]) {\n let pagesHtml = '';\n if (this.htmlMode) {\n for (const page of pages) {\n pagesHtml += '
' +\n '
' + page.data + '
' +\n '
';\n }\n } else {\n for (const page of pages) {\n pagesHtml += '
' +\n '
' +\n '
';\n }\n }\n this.openWindow(pagesHtml, pages[0].width, pages[0].height);\n }\n\n private openWindow(pagesHtml, width, height) {\n const a4Height = 842;\n const a4Width = 595;\n let imageA4Adjusted = '';\n if(width > a4Width && height > a4Height){\n const zoom = Math.round(height / a4Height) / 100;\n imageA4Adjusted = '.gd-page img { width: 100%; margin: 0; padding: 0;}';\n if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1){\n imageA4Adjusted = '.gd-page img { transform: scale(' + zoom + ');}';\n }\n }\n let cssPrint = '';\n\n const windowObject = window.open('', \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\n windowObject.focus();\n windowObject.document.writeln(cssPrint);\n windowObject.document.writeln(pagesHtml);\n windowObject.document.close();\n windowObject.focus();\n windowObject.print();\n windowObject.close();\n }\n\n private renderPrintBlob(file: Blob) {\n const fileURL = URL.createObjectURL(file);\n const windowObject = window.open(fileURL, \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\n windowObject.focus();\n windowObject.print();\n windowObject.close();\n }\n}\n","import {BehaviorSubject, Observable} from \"rxjs\";\n\nexport class ExceptionMessageService {\n private _observer: BehaviorSubject = new BehaviorSubject('Server is not available');\n private _messageChange: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get messageChange(): Observable {\n return this._messageChange;\n }\n\n changeMessage(message: string) {\n this._observer.next(message);\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {ExceptionMessageService} from \"../exception-message.service\";\n\n@Component({\n selector: 'gd-error-modal',\n templateUrl: './error-modal.component.html',\n styleUrls: ['./error-modal.component.less']\n})\nexport class ErrorModalComponent implements OnInit {\n\n message: string;\n\n constructor(messageService: ExceptionMessageService) {\n messageService.messageChange.subscribe(message => this.message = message);\n }\n\n ngOnInit() {\n }\n\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class PasswordService {\n private _observer: Subject = new Subject();\n private readonly _passChange: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get passChange(): Observable {\n return this._passChange;\n }\n\n setPassword(pass: string) {\n this._observer.next(pass);\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {ExceptionMessageService} from \"../exception-message.service\";\nimport {PasswordService} from \"../password.service\";\n\n@Component({\n selector: 'gd-password-required',\n templateUrl: './password-required.component.html',\n styleUrls: ['./password-required.component.less']\n})\nexport class PasswordRequiredComponent implements OnInit {\n message: string;\n\n constructor(messageService: ExceptionMessageService, private _passwordService: PasswordService) {\n messageService.messageChange.subscribe(message => this.message = message);\n }\n\n ngOnInit() {\n }\n\n setPassword(value: string) {\n this._passwordService.setPassword(value);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\nimport {Observable, throwError} from \"rxjs\";\nimport {catchError, map} from \"rxjs/operators\";\nimport {ExceptionMessageService} from \"./exception-message.service\";\nimport {HttpError} from \"./file.service\";\nimport {CommonModals, ModalService} from \"./modal.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorInterceptorService implements HttpInterceptor {\n\n constructor(private _modalService: ModalService, private _messageService: ExceptionMessageService) {\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n const logFormat = 'background: maroon; color: white';\n\n return next.handle(req)\n .pipe(map(data => {\n return data;\n }),\n catchError((exception: HttpEvent) => {\n if (exception instanceof HttpErrorResponse) {\n switch (exception.status) {\n\n case HttpError.BadRequest:\n console.error('%c Bad Request 400', logFormat);\n break;\n case HttpError.Unauthorized:\n console.error('%c Unauthorized 401', logFormat);\n break;\n case HttpError.NotFound:\n console.error('%c Not Found 404', logFormat);\n break;\n case HttpError.TimeOut:\n console.error('%c TimeOut 408', logFormat);\n break;\n case HttpError.InternalServerError:\n console.error('%c big bad 500', logFormat);\n this._messageService.changeMessage(exception.error.message);\n this._modalService.open(CommonModals.ErrorMessage);\n break;\n\n case HttpError.Forbidden:\n console.error('%c Forbidden 403', logFormat);\n this._messageService.changeMessage(exception.error.message);\n this._modalService.open(CommonModals.PasswordRequired);\n break;\n }\n }\n return throwError(exception);\n }));\n }\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class SearchService {\n private _observer: Subject = new Subject();\n private readonly _textChange: Observable = this._observer.asObservable();\n\n private _observerCurrent: Subject = new Subject();\n private readonly _currentChange: Observable = this._observerCurrent.asObservable();\n\n private _observerTotal: Subject = new Subject();\n private readonly _totalChange: Observable = this._observerTotal.asObservable();\n\n constructor() {\n }\n\n get textChange(): Observable {\n return this._textChange;\n }\n\n setText(text: string) {\n this._observer.next(text);\n }\n\n get currentChange(): Observable {\n return this._currentChange;\n }\n\n get totalChange(): Observable {\n return this._totalChange;\n }\n\n setCurrent(current: number) {\n this._observerCurrent.next(current);\n }\n\n setTotal(total: number) {\n this._observerTotal.next(total);\n }\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\nimport {SearchService} from \"../search.service\";\n\n@Component({\n selector: 'gd-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.less']\n})\nexport class SearchComponent implements OnInit, AfterViewInit {\n\n @Output() hidePanel = new EventEmitter(false);\n\n current = 0;\n total = 0;\n\n @ViewChild('text',{\n static : true\n }) textElement: ElementRef;\n\n constructor(private _searchService: SearchService) {\n _searchService.totalChange.subscribe((total: number) => {\n this.total = total;\n if (total !== 0) {\n this.current = 1;\n } else {\n this.current = 0;\n }\n this._searchService.setCurrent(this.current);\n });\n }\n\n ngOnInit() {\n }\n\n setText(text: string) {\n this._searchService.setText(text);\n }\n\n hide() {\n this.setText('');\n this.hidePanel.emit(true);\n }\n\n prev() {\n if (this.current > 1) {\n this.current--;\n this._searchService.setCurrent(this.current);\n }\n }\n\n next() {\n if (this.current < this.total) {\n this.current++;\n this._searchService.setCurrent(this.current);\n }\n }\n\n ngAfterViewInit(): void {\n this.textElement.nativeElement.focus();\n }\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {SearchService} from \"./search.service\";\nimport {HighlightSearchPipe} from \"./pipes\";\nimport {ZoomService} from \"./zoom.service\";\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Directive({\n selector: '[gdSearchable]'\n})\nexport class SearchableDirective {\n\n text: string;\n current = 0;\n total = 0;\n private zoom = 100;\n\n constructor(private _elementRef: ElementRef,\n private _searchService: SearchService,\n private _highlight: HighlightSearchPipe,\n private _zoomService: ZoomService) {\n _searchService.currentChange.subscribe((current: number) => {\n this.current = current;\n if (this.current !== 0) {\n this.moveToCurrent();\n }\n });\n\n _searchService.textChange.subscribe((text: string) => {\n this.text = text;\n this.highlightSearch();\n });\n\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\n _zoomService.zoomChange.subscribe((val: number) => {\n this.zoom = val ? val : this.zoom;\n });\n }\n\n private highlightSearch() {\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n this.cleanHighlight(el);\n if (this.text) {\n this.highlightEl(el);\n const count = el.querySelectorAll('.gd-highlight').length;\n this.total = count;\n } else {\n this.total = 0;\n }\n this._searchService.setTotal(this.total);\n }\n }\n\n private moveToCurrent() {\n if (this.current === 0) {\n return;\n }\n const currentZoom = this.getZoom();\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n el.querySelectorAll('.gd-highlight-select').forEach(function (value) {\n $(value).removeClass('gd-highlight-select');\n });\n const currentEl = el.querySelectorAll('.gd-highlight')[this.current - 1];\n $(currentEl).addClass('gd-highlight-select');\n if (currentEl) {\n const options = {\n left: 0,\n top: ($(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150,\n };\n // using polyfill\n el.parentElement.parentElement.scroll(options);\n }\n }\n }\n\n private highlightEl(el: Element) {\n const textNodes = $(el).find('*').contents().filter(function () {\n const nodeName = this.parentElement.nodeName.toLowerCase();\n const checkClass = (this).classList ? !(this).classList.contains('gd-highlight') : true;\n return this.nodeType === 3 &&\n this.textContent.trim().length !== 0 &&\n nodeName !== 'style' &&\n nodeName !== 'title' &&\n nodeName !== 'body' &&\n nodeName !== 'script' &&\n checkClass;\n });\n const text = this.text;\n const highlight = this._highlight;\n textNodes.each(function () {\n const $this = $(this);\n let content = $this.text();\n content = highlight.transform(content, text);\n $this.replaceWith(content);\n });\n el.normalize();\n }\n\n private cleanHighlight(el: HTMLElement) {\n const nodeListOf = el.querySelectorAll('.gd-highlight');\n for (let i = 0; i < nodeListOf.length; i++) {\n const element = nodeListOf.item(i);\n element.replaceWith((element).innerText);\n }\n el.normalize();\n }\n\n private getZoom() {\n return this.zoom / 100;\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'gd-tabbed-toolbars',\n templateUrl: './tabbed-toolbars.component.html',\n styleUrls: ['./tabbed-toolbars.component.less']\n})\nexport class TabbedToolbarsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class TabActivatorService {\n private _observer: Subject = new Subject();\n private readonly _activeTabChange: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get activeTabChange(): Observable {\n return this._activeTabChange;\n }\n\n changeActiveTab(tabId: string) {\n this._observer.next(tabId);\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {TabActivatorService} from \"../tab-activator.service\";\n\n@Component({\n selector: 'gd-tab',\n templateUrl: './tab.component.html',\n styleUrls: ['./tab.component.less']\n})\nexport class TabComponent implements OnInit {\n @Input() id: string;\n @Input() tabTitle: string;\n @Input() icon: string;\n @Input() disabled = false;\n @Input() active = false;\n @Input() content = true;\n\n constructor(private _tabActivatorService: TabActivatorService) {\n this._tabActivatorService.activeTabChange.subscribe((tabId: string) => {\n this.activation(tabId);\n });\n }\n\n private activation(tabId: string) {\n if (this.id === tabId) {\n this.active = true;\n } else {\n this.active = false;\n }\n }\n\n ngOnInit() {\n }\n\n selectTab() {\n if (this.disabled) {\n return;\n }\n this._tabActivatorService.changeActiveTab(this.id);\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'gd-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.less']\n})\nexport class TabsComponent {\n constructor() {\n }\n\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class Formatting {\n static DEFAULT: Formatting = new Formatting(10, '#000000', '#FFFFFF', false, false, false, 'Arial', false, \"\", \"\");\n\n constructor(fontSize: number, color: string, bgColor: string, bold: boolean, italic: boolean, underline: boolean, font: string, strikeout: boolean, align: string, list: string) {\n this.fontSize = fontSize;\n this.color = color;\n this.bgColor = bgColor;\n this.bold = bold;\n this.italic = italic;\n this.underline = underline;\n this.font = font;\n this.strikeout = strikeout;\n this.align = align;\n this.list = list;\n }\n\n bold: boolean;\n italic: boolean;\n underline: boolean;\n fontSize: number;\n color: string;\n bgColor: string;\n font: string;\n strikeout: boolean;\n align: string;\n list: string;\n}\n\nexport class FormattingService {\n private _observerBold: Subject = new Subject();\n private readonly _formatBoldChange: Observable = this._observerBold.asObservable();\n private _observerUnderline: Subject = new Subject();\n private readonly _formatUnderlineChange: Observable = this._observerUnderline.asObservable();\n private _observerUndo: Subject = new Subject();\n private readonly _undo: Observable = this._observerUndo.asObservable();\n private _observerRedo: Subject = new Subject();\n private readonly _redo: Observable = this._observerRedo.asObservable();\n private _observerItalic: Subject = new Subject();\n private readonly _formatItalicChange: Observable = this._observerItalic.asObservable();\n private _observerColor: Subject = new Subject();\n private readonly _formatColorChange: Observable = this._observerColor.asObservable();\n private _observerBgColor: Subject = new Subject();\n private readonly _formatBgColorChange: Observable = this._observerBgColor.asObservable();\n private _observerFontSize: Subject = new Subject();\n private readonly _formatFontSizeChange: Observable = this._observerFontSize.asObservable();\n private _observerFont: Subject = new Subject();\n private readonly _formatFontChange: Observable = this._observerFont.asObservable();\n private _observerStrikeout: Subject = new Subject();\n private readonly _formatStrikeoutChange: Observable = this._observerStrikeout.asObservable();\n private _observerAlign: Subject = new Subject();\n private readonly _formatAlignChange: Observable = this._observerAlign.asObservable();\n private _observerList: Subject = new Subject();\n private readonly _formatListChange: Observable = this._observerList.asObservable();\n\n constructor() {\n }\n\n get formatBoldChange() {\n return this._formatBoldChange;\n }\n\n get formatUnderlineChange() {\n return this._formatUnderlineChange;\n }\n\n get formatColorChange() {\n return this._formatColorChange;\n }\n\n get formatBgColorChange() {\n return this._formatBgColorChange;\n }\n\n get formatFontSizeChange() {\n return this._formatFontSizeChange;\n }\n\n get formatFontChange() {\n return this._formatFontChange;\n }\n\n get undo() {\n return this._undo;\n }\n\n get redo() {\n return this._redo;\n }\n\n get formatItalicChange() {\n return this._formatItalicChange;\n }\n\n get formatStrikeoutChange() {\n return this._formatStrikeoutChange;\n }\n\n get formatAlignChange() {\n return this._formatAlignChange;\n }\n\n get formatListChange() {\n return this._formatListChange;\n }\n\n static createFontSizeOption(val: number) {\n return {value: val, name: val + 'px', separator: false}\n }\n\n static getFontSizeOptions() {\n return [\n FormattingService.createFontSizeOption(8),\n FormattingService.createFontSizeOption(10),\n FormattingService.createFontSizeOption(12),\n FormattingService.createFontSizeOption(14),\n FormattingService.createFontSizeOption(16),\n FormattingService.createFontSizeOption(18),\n FormattingService.createFontSizeOption(20),\n FormattingService.createFontSizeOption(22),\n FormattingService.createFontSizeOption(24),\n ];\n }\n\n static createFontOption(val: string) {\n return {value: val, name: val, separator: false}\n }\n\n static getFontOptions() {\n const fonts = [\"Arial\", \"Calibri\", \"Century Gothic\", \"Comic Sans\", \"Consolas\", \"Courier\", \"Dejavu Sans\", \"Dejavu Serif\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Lucida Sans\",\n \"Myriad Pro\", \"Open Sans\", \"Palatino\", \"Tahoma\", \"Times New Roman\", \"Trebuchet\"];\n const fontOptions = [];\n fonts.forEach(font=> {\n fontOptions.push(this.createFontOption(font));\n })\n\n return fontOptions;\n }\n\n changeFormatFontSize($event: number) {\n this._observerFontSize.next($event);\n }\n\n changeFormatBold(bold: boolean) {\n this._observerBold.next(bold);\n }\n\n changeFormatUnderline(underline: boolean) {\n this._observerUnderline.next(underline);\n }\n\n Undo() {\n this._observerUndo.next();\n }\n\n Redo() {\n this._observerRedo.next();\n }\n\n changeFormatItalic(italic: boolean) {\n this._observerItalic.next(italic);\n }\n\n changeFormatColor(color: string) {\n this._observerColor.next(color);\n }\n\n changeFormatBgColor(bgcolor: string) {\n this._observerBgColor.next(bgcolor);\n }\n\n changeFormatFont(font: string) {\n this._observerFont.next(font);\n }\n\n changeFormatStrikeout(strikeout: boolean) {\n this._observerStrikeout.next(strikeout);\n }\n\n changeFormatAlign(align: string) {\n this._observerAlign.next(align);\n }\n\n changeFormatList(list: string) {\n this._observerList.next(list);\n }\n}\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\n\nconst DEFAULT_COLORS = ['#000000', '#993300', '#333300', '#000080', '#333399', '#333333',\n '#800000', '#FF6600', '#808000', '#008000', '#008080', '#0000FF',\n '#666699', '#808080', '#FF0000', '#FF9900', '#99CC00', '#339966',\n '#33CCCC', '#3366FF', '#800080', '#999999', '#FF00FF', '#FFCC00',\n '#FFFF00', '#00FF00', '#00FFFF', '#00CCFF', '#993366', '#C0C0C0',\n '#FF99CC', '#FFCC99', '#FFFF99', '#CCFFFF', '#99CCFF', '#FFFFFF'];\n\n\n@Component({\n selector: 'gd-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.less']\n})\nexport class ColorPickerComponent implements OnInit {\n @Output() selectedColor = new EventEmitter();\n colors: any = DEFAULT_COLORS;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n select($event, color: string) {\n $event.preventDefault();\n $event.stopPropagation();\n this.selectedColor.emit(color);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {FormattingService} from \"./formatting.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BackFormattingService extends FormattingService {\n\n constructor() {\n super();\n }\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SelectionService {\n selection: Range;\n isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n\n restoreSelection() {\n if(this.selection && !this.selection.collapsed || this.isIE){\n this.putSelection(this.selection );\n }\n }\n\n captureSelection() {\n const selection = window.getSelection();\n if (selection.rangeCount > 0) {\n this.selection = selection.getRangeAt(0);\n }\n }\n\n private putSelection(selection) {\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(selection.cloneRange());\n }\n\n refreshSelection() {\n this.captureSelection();\n this.restoreSelection();\n }\n}\n","import {Directive, HostListener, OnInit} from '@angular/core';\nimport {FormattingService} from \"./formatting.service\";\nimport {BackFormattingService} from \"./back-formatting.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\nimport {SelectionService} from './selection.service';\n\n@Directive({\n selector: '[gdFormatting]'\n})\nexport class FormattingDirective implements OnInit {\n\n private bold = false;\n private italic = false;\n private underline = false;\n private color: string;\n private bgColor: string;\n private font: string;\n private strikeout = false;\n private align: string;\n private list: string;\n private isIE = false;\n\n constructor(private _formattingService: FormattingService,\n private _backFormattingService: BackFormattingService,\n private _selectionService: SelectionService) {\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n }\n\n @HostListener('mouseup') mouseup() {\n\n this.bold = document.queryCommandState(\"bold\");\n this.strikeout = document.queryCommandState(\"strikeThrough\");\n this.italic = document.queryCommandState(\"italic\");\n this.bgColor = document.queryCommandValue(\"backColor\");\n this.underline = document.queryCommandState(\"underline\");\n this.align = this.checkJustify();\n this.list = this.checkList();\n\n //fix required by FireFox to get correct background color\n if (this.bgColor === \"transparent\") {\n this.bgColor = $(window.getSelection().focusNode.parentNode).css('background-color').toString();\n }\n this.font = document.queryCommandValue(\"FontName\").replace(/\"/g, '');\n if(this.font.split(\",\").length > 1){\n this.font = this.font.split(\",\")[0];\n }\n this.color = document.queryCommandValue(\"foreColor\");\n this._backFormattingService.changeFormatBold(this.bold);\n this._backFormattingService.changeFormatUnderline(this.underline);\n this._backFormattingService.changeFormatItalic(this.italic);\n this._backFormattingService.changeFormatColor(this.color);\n this._backFormattingService.changeFormatBgColor(this.bgColor);\n this._backFormattingService.changeFormatFontSize(this.reportFontSize());\n this._backFormattingService.changeFormatFont(this.font);\n this._backFormattingService.changeFormatStrikeout(this.strikeout);\n this._backFormattingService.changeFormatAlign(this.align);\n this._backFormattingService.changeFormatList(this.list);\n }\n\n private checkJustify() {\n let align = \"\";\n align = document.queryCommandState(\"justifyCenter\") ? \"center\" : align;\n align = document.queryCommandState(\"justifyFull\") ? \"full\" : align;\n align = document.queryCommandState(\"justifyLeft\") ? \"left\" : align;\n align = document.queryCommandState(\"justifyRight\") ? \"right\" : align;\n return align;\n }\n\n private checkList() {\n let list = \"\";\n list = document.queryCommandState(\"insertUnorderedList\") ? \"unordered\" : list;\n list = document.queryCommandState(\"insertOrderedList\") ? \"ordered\" : list;\n return list;\n }\n\n reportFontSize(): number {\n let containerEl, sel;\n if (window.getSelection) {\n sel = window.getSelection();\n if (sel.rangeCount) {\n containerEl = sel.getRangeAt(0).commonAncestorContainer;\n // Make sure we have an element rather than a text node\n if (containerEl.nodeType === 3) {\n containerEl = containerEl.parentNode;\n }\n }\n } else if ((sel = document.getSelection()) && sel.type !== \"Control\") {\n containerEl = sel.createRange().parentElement();\n }\n\n if (containerEl) {\n return parseInt(this.getComputedStyleProperty(containerEl, \"fontSize\").replace(\"px\", \"\"), 10);\n }\n }\n\n getComputedStyleProperty(el, propName) {\n if (window.getComputedStyle) {\n return window.getComputedStyle(el, null)[propName];\n } else if (el.currentStyle) {\n return el.currentStyle[propName];\n }\n }\n\n ngOnInit(): void {\n this._formattingService.undo.subscribe(() => {\n this.toggleUndo();\n });\n this._formattingService.redo.subscribe(() => {\n this.toggleRedo();\n });\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.bold = bold;\n this.toggleBold();\n });\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.underline = underline;\n this.toggleUnderline();\n });\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.italic = italic;\n this.toggleItalic();\n });\n this._formattingService.formatColorChange.subscribe(((color: string) => {\n this.color = color;\n this.setColor(color);\n }));\n this._formattingService.formatBgColorChange.subscribe(((bgcolor: string) => {\n this.bgColor = bgcolor;\n this.setBgColor(bgcolor);\n }));\n this._formattingService.formatFontSizeChange.subscribe(((fontSize: number) => {\n this.setFontSize(fontSize);\n }));\n\n this._formattingService.formatFontChange.subscribe(((font: string) => {\n this.font = font;\n this.setFont(font);\n }));\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.strikeout = strikeout;\n this.toggleStrikeout();\n });\n this._formattingService.formatAlignChange.subscribe((align: string) => {\n this.align = align;\n this.toggleAlign(this.align);\n });\n this._formattingService.formatListChange.subscribe((list: string) => {\n this.list = list;\n this.toggleList(this.list);\n });\n }\n\n private toggleBold() {\n document.execCommand(\"bold\");\n this._selectionService.refreshSelection();\n }\n\n private toggleUnderline() {\n document.execCommand(\"underline\");\n this._selectionService.refreshSelection();\n }\n\n private toggleItalic() {\n document.execCommand(\"italic\");\n this._selectionService.refreshSelection();\n }\n\n private setBgColor(bgColor: string) {\n document.execCommand(\"backColor\", false, bgColor);\n this._selectionService.refreshSelection();\n }\n\n private setColor(color: string) {\n document.execCommand(\"foreColor\", false, color);\n this._selectionService.refreshSelection();\n }\n\n private setFontSize(fontSize: number) {\n if (document.getSelection().toString()) {\n let spanString = \"\" +\n document.getSelection() + \"\";\n if (this.bold) {\n spanString = \"\" + spanString + \"\";\n }\n if (this.italic) {\n spanString = \"\" + spanString + \"\";\n }\n if (this.underline) {\n spanString = \"\" + spanString + \"\";\n }\n if (this.strikeout) {\n spanString = \"\" + spanString + \"\";\n }\n document.execCommand('insertHTML', false, spanString);\n } else {\n document.execCommand(\"fontsize\", false, \"7\");\n }\n this._selectionService.refreshSelection();\n }\n\n private toggleUndo() {\n document.execCommand(\"undo\");\n }\n\n private toggleRedo() {\n document.execCommand(\"redo\");\n }\n\n private setFont(font: string) {\n document.execCommand(\"fontName\", false, font);\n this._selectionService.refreshSelection();\n }\n\n private toggleStrikeout() {\n document.execCommand(\"strikeThrough\");\n this._selectionService.refreshSelection();\n }\n\n private toggleAlign(align: string) {\n if(this.isIE) {\n this.toggleAlignIE(align);\n return;\n }\n document.execCommand(\"styleWithCSS\", false, 'true');\n switch (align) {\n case 'center':\n document.execCommand('justifyCenter');\n break;\n case 'full':\n document.execCommand('justifyFull');\n break;\n case 'left':\n document.execCommand('justifyLeft');\n break;\n case 'right':\n document.execCommand('justifyRight');\n break;\n }\n this._selectionService.refreshSelection();\n }\n\n private toggleAlignIE(align: string) {\n this._selectionService.restoreSelection()\n this._selectionService.captureSelection()\n const selection = window.getSelection().focusNode.parentNode.parentNode;\n if(align === \"full\"){\n align = \"justify\";\n }\n $(selection).css(\"text-align\", align);\n this._selectionService.refreshSelection()\n }\n\n private toggleList(list: string) {\n switch (list) {\n case 'unordered':\n document.execCommand('insertUnorderedList');\n break;\n case 'ordered':\n document.execCommand('insertOrderedList');\n break;\n }\n this._selectionService.refreshSelection();\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'gd-success-modal',\n templateUrl: './success-modal.component.html',\n styleUrls: ['./success-modal.component.less']\n})\nexport class SuccessModalComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Subject} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditHtmlService {\n private _observer: Subject = new Subject();\n private readonly _htmlContent: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get observer(): Subject {\n return this._observer;\n }\n\n get htmlContent(): Observable {\n return this._htmlContent;\n }\n\n}\n","import {Directive, HostListener, Input} from '@angular/core';\nimport {SelectionService} from './selection.service';\nimport {EditHtmlService} from \"./edit-html.service\";\n\n@Directive({\n selector: '[gdEditor]'\n})\nexport class EditorDirective {\n @Input() text: any;\n\n private isIE: boolean = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n\n constructor(private _selectionService: SelectionService, private _htmlService: EditHtmlService) {\n }\n\n @HostListener('keyup', ['$event'])\n public onInput(event) {\n this.text = event.target;\n if(this.isIE){\n if (this.text.innerHTML) {\n const html = this.text.innerHTML.toString();\n this._htmlService.observer.next(html);\n }\n }\n }\n\n @HostListener('mouseleave', ['$event'])\n public onMouseleave(event) {\n this._selectionService.captureSelection();\n // this code is required to fix IE11 issue - it doesn't trigger blur event, since that we need to save updated HTML here\n if(this.isIE){\n this._htmlService.observer.next(event.target.innerHTML.toString());\n }\n }\n\n @HostListener('blur', ['$event'])\n public onBlur(event) {\n event.preventDefault();\n this._selectionService.restoreSelection();\n if (this.text.innerHTML) {\n const html = this.text.innerHTML.toString();\n this._htmlService.observer.next(html);\n } else {\n this._htmlService.observer.next(event.target.innerHTML.toString());\n }\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core'\nimport { HttpRequest } from '@angular/common/http';\n\n@Injectable()\nexport class LoadingMaskService {\n onLoadingChanged: EventEmitter = new EventEmitter();\n\n private requests: HttpRequest[] = [];\n\n constructor() {\n }\n\n onRequestStart(req: HttpRequest): void {\n this.requests.push(req);\n this.notify();\n }\n\n onRequestFinish(req: HttpRequest): void {\n const index = this.requests.indexOf(req);\n if (index !== -1) {\n this.requests.splice(index, 1);\n }\n this.notify();\n }\n\n private notify(): void {\n this.onLoadingChanged.emit(this.requests.length !== 0);\n }\n}\n","import {AfterViewInit, Component, Input, OnInit} from '@angular/core';\nimport {LoadingMaskService} from \"../loading-mask.service\";\n\n@Component({\n selector: 'gd-loading-mask',\n templateUrl: './loading-mask.component.html',\n styleUrls: ['./loading-mask.component.less']\n})\n\nexport class LoadingMaskComponent implements OnInit, AfterViewInit {\n @Input() loadingMask = false;\n\n constructor(private _loadingMaskService: LoadingMaskService) {\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.loadingMask = loading);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\nimport {Observable} from \"rxjs\";\nimport {finalize} from 'rxjs/operators'\nimport {LoadingMaskService} from \"./loading-mask.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoadingMaskInterceptorService implements HttpInterceptor {\n\n constructor(private _loadingMaskService: LoadingMaskService) {\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n this._loadingMaskService.onRequestStart(req);\n const callback = () => this._loadingMaskService.onRequestFinish(req);\n return next.handle(req).pipe( finalize( callback));\n }\n}\n","import {\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\n\n\nconst horizontalAlignment = {\n center : {\n right: 'auto'\n },\n left : {\n right: '100%'\n },\n right : {\n right: '-100%'\n }\n};\n\nconst verticalAlignment = {\n center : {\n top : '0px',\n },\n top : {\n top : '-100%',\n right: '100%'\n },\n bottom : {\n top: 'autos'\n }\n};\n\n/**\n * DropDownToggleComponent\n */\n@Component({\n selector: 'gd-drop-down-toggle',\n template: '',\n styleUrls: ['./drop-down.component.less'],\n encapsulation : ViewEncapsulation.None\n})\nexport class DropDownToggleComponent{\n @HostListener('click',['$event'])\n click = (event: any) => this.dropdown.toggle(event);\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\n}\n\n/**\n * DropDownItemsComponent\n */\n@Component({\n selector: 'gd-drop-down-items',\n template: '
',\n styleUrls: ['./drop-down.component.less'],\n encapsulation : ViewEncapsulation.None\n})\nexport class DropDownItemsComponent{\n\n get horizontalAlign(){\n return horizontalAlignment[this.dropdown.getPlacement().h].right;\n }\n\n get verticalAlign(){\n return verticalAlignment[this.dropdown.getPlacement().v].top;\n }\n\n get isOpen(){\n return this.dropdown.open;\n }\n\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\n\n onClickOutside(event : Event ){\n this.dropdown.close();\n }\n}\n\n/**\n * DropDownItemComponent\n */\n@Component({\n selector: 'gd-drop-down-item',\n template: '
',\n styleUrls: ['./drop-down.component.less'],\n})\nexport class DropDownItemComponent{\n @HostBinding('class')\n class = 'drop-down-item';\n\n @Output()\n selected = new EventEmitter();\n\n @HostListener('click')\n click = () => this.selectEntry();\n\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\n\n selectEntry(){\n this.selected.next();\n this.dropdown.close();\n }\n}\n\n/**\n * DropDownComponent\n */\n@Component({\n selector: 'gd-drop-down',\n template: '
',\n styleUrls: ['./drop-down.component.less'],\n encapsulation : ViewEncapsulation.None\n})\nexport class DropDownComponent{\n @Input()\n placement = {\n h: \"center\",\n v: \"bottom\"\n };\n\n\n @Input()\n @HostBinding('class.show')\n open = false;\n\n @HostBinding('class')\n class = 'drop-down';\n\n close(){\n this.open = false;\n }\n\n toggle(event : MouseEvent){\n event.stopPropagation();\n this.open = !this.open;\n document.body.click();\n }\n\n getPlacement(){\n return this.placement;\n }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TopToolbarComponent} from './top-toolbar/top-toolbar.component';\nimport {SidePanelComponent} from './side-panel/side-panel.component';\nimport {ButtonComponent} from './button/button.component';\nimport {LogoComponent} from './logo/logo.component';\nimport {TooltipComponent} from './tooltip/tooltip.component';\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport {fas} from '@fortawesome/free-solid-svg-icons';\nimport {far} from '@fortawesome/free-regular-svg-icons';\nimport {Api, ConfigService,} from \"./config.service\";\nimport {ModalService} from \"./modal.service\";\nimport {ModalComponent} from './modal/modal.component';\nimport {BrowseFilesModalComponent} from './browse-files-modal/browse-files-modal.component';\nimport {FileModel, FileService, FileUtil} from \"./file.service\";\nimport {DocumentComponent} from './document/document.component';\nimport {PageComponent} from './page/page.component';\nimport {HighlightSearchPipe, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe} from \"./pipes\";\nimport {UploadFileZoneComponent} from './upload-file-zone/upload-file-zone.component';\nimport {UploadFilesService} from \"./upload-files.service\";\nimport {DndDirective} from './dnd.directive';\nimport {ScrollableDirective} from './scrollable.directive';\nimport {NavigateService} from \"./navigate.service\";\nimport {PagePreloadService} from \"./page-preload.service\";\nimport {ZoomDirective} from './zoom.directive';\nimport {ZoomService} from \"./zoom.service\";\nimport {SelectComponent} from './select/select.component';\nimport {DisabledCursorDirective} from './disabled-cursor.directive';\nimport {RotationDirective} from './rotation.directive';\nimport {InitStateComponent} from './init-state/init-state.component';\nimport {RenderPrintService} from \"./render-print.service\";\nimport {RenderPrintDirective} from './render-print.directive';\nimport {ErrorModalComponent} from './error-modal/error-modal.component';\nimport {PasswordRequiredComponent} from './password-required/password-required.component';\nimport {ExceptionMessageService} from \"./exception-message.service\";\nimport {PasswordService} from \"./password.service\";\nimport {ErrorInterceptorService} from \"./error-interceptor.service\";\nimport {SearchComponent} from './search/search.component';\nimport {SearchableDirective} from './searchable.directive';\nimport {SearchService} from \"./search.service\";\nimport {WindowService} from \"./window.service\";\nimport {ViewportService} from \"./viewport.service\";\nimport {TabbedToolbarsComponent} from './tabbed-toolbars/tabbed-toolbars.component';\nimport {TabComponent} from \"./tab/tab.component\";\nimport {TabsComponent} from \"./tabs/tabs.component\";\nimport {FormattingService} from \"./formatting.service\";\nimport {ColorPickerComponent} from './color-picker/color-picker.component';\nimport {FormattingDirective} from './formatting.directive';\nimport {BackFormattingService} from \"./back-formatting.service\";\nimport {OnCloseService} from \"./on-close.service\";\nimport {SuccessModalComponent} from './success-modal/success-modal.component';\nimport {EditorDirective} from './editor.directive';\nimport {LoadingMaskComponent} from './loading-mask/loading-mask.component';\nimport {LoadingMaskService} from './loading-mask.service';\nimport {LoadingMaskInterceptorService} from \"./loading-mask-interceptor.service\";\nimport {TabActivatorService} from \"./tab-activator.service\";\nimport { DropDownComponent,DropDownItemComponent,DropDownItemsComponent,DropDownToggleComponent } from './drop-down/drop-down.component';\nimport { ClickOutsideModule } from 'ng-click-outside';\n\nconst providers = [ConfigService,\n Api,\n ModalService,\n FileService,\n FileModel,\n FileUtil,\n SanitizeHtmlPipe,\n SanitizeResourceHtmlPipe,\n SanitizeStylePipe,\n HighlightSearchPipe,\n UploadFilesService,\n RenderPrintService,\n NavigateService,\n PagePreloadService,\n ZoomService,\n ExceptionMessageService,\n PasswordService,\n ErrorInterceptorService,\n SearchService,\n WindowService,\n ViewportService,\n FormattingService,\n BackFormattingService,\n OnCloseService,\n LoadingMaskInterceptorService,\n LoadingMaskService,\n TabActivatorService];\n\n@NgModule({\n imports: [CommonModule, FontAwesomeModule, ClickOutsideModule],\n declarations: [\n TopToolbarComponent,\n SidePanelComponent,\n ButtonComponent,\n LogoComponent,\n TooltipComponent,\n ModalComponent,\n BrowseFilesModalComponent,\n DocumentComponent,\n PageComponent,\n SanitizeHtmlPipe,\n SanitizeResourceHtmlPipe,\n SanitizeStylePipe,\n HighlightSearchPipe,\n UploadFileZoneComponent,\n DndDirective,\n ScrollableDirective,\n ZoomDirective,\n SelectComponent,\n DisabledCursorDirective,\n RotationDirective,\n InitStateComponent,\n RenderPrintDirective,\n ErrorModalComponent,\n PasswordRequiredComponent,\n SearchComponent,\n SearchableDirective,\n TabbedToolbarsComponent,\n TabComponent,\n TabsComponent,\n ColorPickerComponent,\n FormattingDirective,\n SuccessModalComponent,\n EditorDirective,\n LoadingMaskComponent,\n DropDownComponent,\n DropDownItemComponent,\n DropDownItemsComponent,\n DropDownToggleComponent\n ],\n exports: [\n TopToolbarComponent,\n SidePanelComponent,\n ButtonComponent,\n LogoComponent,\n TooltipComponent,\n ModalComponent,\n BrowseFilesModalComponent,\n DocumentComponent,\n PageComponent,\n SanitizeResourceHtmlPipe,\n SanitizeStylePipe,\n HighlightSearchPipe,\n SanitizeHtmlPipe,\n UploadFileZoneComponent,\n ScrollableDirective,\n SelectComponent,\n RotationDirective,\n InitStateComponent,\n RenderPrintDirective,\n ErrorModalComponent,\n PasswordRequiredComponent,\n SearchComponent,\n SearchableDirective,\n TabbedToolbarsComponent,\n TabComponent,\n TabsComponent,\n ColorPickerComponent,\n FormattingDirective,\n SuccessModalComponent,\n LoadingMaskComponent,\n DndDirective,\n DropDownComponent,\n DropDownItemComponent,\n DropDownItemsComponent,\n DropDownToggleComponent\n ],\n providers: providers\n})\nexport class CommonComponentsModule {\n constructor() {\n library.add(fas, far);\n }\n}\n"],"names":["Component","EventEmitter","Input","Output","HttpHeaders","Injectable","ElementRef","tslib_1.__extends","Observable","Subject","fromEvent","debounceTime","distinctUntilChanged","startWith","tap","$","Pipe","DomSanitizer","Directive","HostBinding","HostListener","tslib_1.__values","BehaviorSubject","map","catchError","HttpErrorResponse","throwError","ViewChild","finalize","ViewEncapsulation","Inject","forwardRef","library","fas","far","NgModule","CommonModule","FontAwesomeModule","ClickOutsideModule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"groupdocs.examples.angular-common-components.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/common-components/lib/top-toolbar/top-toolbar.component.ts","ng://@groupdocs.examples.angular/common-components/lib/side-panel/side-panel.component.ts","ng://@groupdocs.examples.angular/common-components/lib/button/button.component.ts","ng://@groupdocs.examples.angular/common-components/lib/logo/logo.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tooltip/tooltip.component.ts","ng://@groupdocs.examples.angular/common-components/lib/config.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal/modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/file.service.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-files.service.ts","ng://@groupdocs.examples.angular/common-components/lib/browse-files-modal/browse-files-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.service.ts","ng://@groupdocs.examples.angular/common-components/lib/window.service.ts","ng://@groupdocs.examples.angular/common-components/lib/rotation.service.ts","ng://@groupdocs.examples.angular/common-components/lib/document/document.component.ts","ng://@groupdocs.examples.angular/common-components/lib/page/page.component.ts","ng://@groupdocs.examples.angular/common-components/lib/pipes.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-file-zone/upload-file-zone.component.ts","ng://@groupdocs.examples.angular/common-components/lib/dnd.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/page-preload.service.ts","ng://@groupdocs.examples.angular/common-components/lib/navigate.service.ts","ng://@groupdocs.examples.angular/common-components/lib/viewport.service.ts","ng://@groupdocs.examples.angular/common-components/lib/scrollable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/on-close.service.ts","ng://@groupdocs.examples.angular/common-components/lib/select/select.component.ts","ng://@groupdocs.examples.angular/common-components/lib/disabled-cursor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/rotation.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/init-state/init-state.component.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.service.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/exception-message.service.ts","ng://@groupdocs.examples.angular/common-components/lib/error-modal/error-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/password.service.ts","ng://@groupdocs.examples.angular/common-components/lib/password-required/password-required.component.ts","ng://@groupdocs.examples.angular/common-components/lib/error-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/custom-hammer-config.ts","ng://@groupdocs.examples.angular/common-components/lib/search.service.ts","ng://@groupdocs.examples.angular/common-components/lib/search/search.component.ts","ng://@groupdocs.examples.angular/common-components/lib/searchable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/tabbed-toolbars/tabbed-toolbars.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tab-activator.service.ts","ng://@groupdocs.examples.angular/common-components/lib/tab/tab.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tabs/tabs.component.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/color-picker/color-picker.component.ts","ng://@groupdocs.examples.angular/common-components/lib/back-formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/selection.service.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/success-modal/success-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/edit-html.service.ts","ng://@groupdocs.examples.angular/common-components/lib/editor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask.service.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask/loading-mask.component.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/drop-down/drop-down.component.ts","ng://@groupdocs.examples.angular/common-components/lib/common-components.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-top-toolbar',\r\n templateUrl: './top-toolbar.component.html',\r\n styleUrls: ['./top-toolbar.component.less']\r\n})\r\nexport class TopToolbarComponent {\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-side-panel',\r\n templateUrl: './side-panel.component.html',\r\n styleUrls: ['./side-panel.component.less']\r\n})\r\n\r\nexport class SidePanelComponent {\r\n @Input() title: string;\r\n @Input() icon: string;\r\n @Output() hideSidePanel = new EventEmitter();\r\n\r\n constructor() {\r\n }\r\n\r\n openSidePanel() {\r\n this.hideSidePanel.emit(true);\r\n }\r\n}\r\n","import { Component, ContentChild, ElementRef, HostBinding, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.less']\r\n})\r\nexport class ButtonComponent {\r\n @Input()\r\n iconOnly = true;\r\n\r\n @Input()\r\n intent = 'default';\r\n\r\n @Input()\r\n disabled = false;\r\n\r\n @Input()\r\n icon : string;\r\n\r\n @Input()\r\n iconClass : string;\r\n\r\n @Input()\r\n tooltip : string;\r\n\r\n @Input()\r\n className: string;\r\n\r\n @Input()\r\n toggle = false;\r\n\r\n showToolTip = false;\r\n\r\n iconButtonClass(){\r\n return this.iconOnly ? 'icon-button' : '';\r\n }\r\n\r\n onHovering() {\r\n if (!this.disabled) {\r\n this.className += ' active';\r\n }\r\n this.showToolTip = true;\r\n }\r\n\r\n onUnhovering() {\r\n if (!this.disabled) {\r\n this.className = this.className.replace(' active', '');\r\n }\r\n this.showToolTip = false;\r\n }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-logo',\r\n templateUrl: './logo.component.html',\r\n styleUrls: ['./logo.component.less']\r\n})\r\nexport class LogoComponent implements OnInit {\r\n\r\n @Input() logo;\r\n @Input() icon;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-tooltip',\r\n templateUrl: './tooltip.component.html',\r\n styleUrls: ['./tooltip.component.less']\r\n})\r\nexport class TooltipComponent implements OnInit {\r\n\r\n @Input() text:string;\r\n visibility = 'hidden';\r\n\r\n constructor() {\r\n }\r\n\r\n @Input()\r\n set show(value: boolean) {\r\n this.visibility = value ? 'shown' : 'hidden';\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {HttpHeaders} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\n\r\nexport class Api {\r\n public static VIEWER_APP = '/viewer';\r\n public static EDITOR_APP = '/editor';\r\n public static COMPARISON_APP = '/comparison';\r\n public static CONVERSION_APP = '/conversion';\r\n public static DEFAULT_API_ENDPOINT = window.location.href;\r\n public static LOAD_FILE_TREE = '/loadFileTree';\r\n public static LOAD_CONFIG = '/loadConfig';\r\n public static LOAD_DOCUMENT_DESCRIPTION = '/loadDocumentDescription';\r\n public static LOAD_DOCUMENT_PAGE = '/loadDocumentPage';\r\n public static ROTATE_DOCUMENT_PAGE = '/rotateDocumentPages';\r\n public static UPLOAD_DOCUMENTS = '/uploadDocument';\r\n public static DOWNLOAD_DOCUMENTS = '/downloadDocument';\r\n public static LOAD_PRINT = '/loadPrint';\r\n public static LOAD_PRINT_PDF = '/printPdf';\r\n public static LOAD_THUMBNAILS = '/loadThumbnails';\r\n public static LOAD_FORMATS = '/loadFormats';\r\n public static SAVE_FILE = '/saveFile';\r\n public static COMPARE_FILES = '/compare';\r\n public static CONVERT_FILE = '/convert';\r\n\r\n public static httpOptionsJson = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n };\r\n public static httpOptionsJsonResponseTypeBlob = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n }),\r\n responseType: 'blob' as 'blob'\r\n };\r\n}\r\n\r\n@Injectable()\r\nexport class ConfigService {\r\n\r\n private _apiEndpoint: string;\r\n\r\n constructor() {\r\n this.apiEndpoint = Api.DEFAULT_API_ENDPOINT;\r\n }\r\n\r\n set apiEndpoint(url: string) {\r\n this._apiEndpoint = url && url.trim().endsWith('/') ? url.substring(0, url.length - 1) : url;\r\n }\r\n\r\n getConfigEndpoint(app) {\r\n return (this.apiEndpoint.endsWith(app) ? this.apiEndpoint : this.apiEndpoint + app) + Api.LOAD_CONFIG;\r\n }\r\n\r\n getViewerApiEndpoint() {\r\n return this._apiEndpoint.endsWith(Api.VIEWER_APP) ? this._apiEndpoint : this._apiEndpoint + Api.VIEWER_APP;\r\n }\r\n\r\n getEditorApiEndpoint() {\r\n return this._apiEndpoint.trim().endsWith(Api.EDITOR_APP) ? this._apiEndpoint : this._apiEndpoint + Api.EDITOR_APP;\r\n }\r\n\r\n getComparisonApiEndpoint() {\r\n return this._apiEndpoint.trim().endsWith(Api.COMPARISON_APP) ? this._apiEndpoint : this._apiEndpoint + Api.COMPARISON_APP;\r\n }\r\n\r\n getConversionApiEndpoint() {\r\n return this._apiEndpoint.trim().endsWith(Api.CONVERSION_APP) ? this._apiEndpoint : this._apiEndpoint + Api.CONVERSION_APP;\r\n }\r\n\r\n get apiEndpoint() {\r\n return this._apiEndpoint;\r\n }\r\n}\r\n","export class CommonModals {\r\n static PasswordRequired = \"gd-password-required\";\r\n static ErrorMessage = \"gd-error-message\";\r\n static BrowseFiles = \"gd-browse-files\";\r\n static CreateDocument = \"gd-create-document\";\r\n static OperationSuccess = \"gd-success-modal\";\r\n}\r\n\r\nexport class ModalService {\r\n private modals: any[] = [];\r\n\r\n add(modal: any) {\r\n this.modals.push(modal);\r\n }\r\n\r\n remove(id: string) {\r\n this.modals = this.modals.filter(x => x.id !== id);\r\n }\r\n\r\n open(id: string) {\r\n const modal: any = this.modals.filter(x => x.id === id)[0];\r\n if (modal) {\r\n modal.open();\r\n }\r\n }\r\n\r\n close(id: string) {\r\n const modal: any = this.modals.filter(x => x.id === id)[0];\r\n if (modal) {\r\n modal.close();\r\n }\r\n }\r\n}\r\n","import {Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {ModalService} from \"../modal.service\";\r\n\r\n@Component({\r\n selector: 'gd-modal',\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.less']\r\n})\r\nexport class ModalComponent implements OnInit, OnDestroy {\r\n @Input() id: string;\r\n @Input() title: string;\r\n @Output() visible = new EventEmitter();\r\n visibility = false;\r\n private element: any;\r\n\r\n constructor(private modalService: ModalService, el: ElementRef) {\r\n this.element = el.nativeElement;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.id) {\r\n console.error('modal must have an id');\r\n return;\r\n }\r\n\r\n document.body.appendChild(this.element);\r\n\r\n this.modalService.add(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.modalService.remove(this.id);\r\n this.element.remove();\r\n }\r\n\r\n open(): void {\r\n this.visibility = true;\r\n this.visible.emit(true);\r\n }\r\n\r\n close(): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.visibility = false;\r\n this.visible.emit(false);\r\n }\r\n\r\n onClose($event: MouseEvent) {\r\n $event.stopPropagation();\r\n if ($event && $event.target && ($event.target).id === 'modalDialog') {\r\n this.close();\r\n }\r\n }\r\n}\r\n","export class PageModel {\r\n data: string;\r\n angle: number;\r\n width: number;\r\n height: number;\r\n number: number;\r\n editable: boolean;\r\n}\r\n\r\nexport class RotatedPage {\r\n pageNumber: number;\r\n angle: number;\r\n}\r\n\r\nexport class FileCredentials {\r\n guid: string;\r\n password: string;\r\n\r\n constructor(guid: string, password: string) {\r\n this.guid = guid;\r\n this.password = password;\r\n }\r\n}\r\n\r\nexport class SaveFile extends FileCredentials {\r\n content: string;\r\n\r\n constructor(guid: string, password: string, content: string) {\r\n super(guid, password);\r\n this.content = content;\r\n }\r\n}\r\n\r\nexport class FileDescription {\r\n guid: string;\r\n pages: PageModel[];\r\n printAllowed = true;\r\n}\r\n\r\nexport class FileModel {\r\n guid: string;\r\n name: string;\r\n directory: boolean;\r\n size: number;\r\n isDirectory: boolean;\r\n}\r\n\r\nexport class HttpError {\r\n static BadRequest = 400;\r\n static Unauthorized = 401;\r\n static Forbidden = 403;\r\n static NotFound = 404;\r\n static TimeOut = 408;\r\n static Conflict = 409;\r\n static InternalServerError = 500;\r\n}\r\n\r\nexport class FileUtil {\r\n public static map = {\r\n 'folder': {'format': '', 'icon': 'folder'},\r\n 'pdf': {'format': 'Portable Document Format', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'doc': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'docx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'docm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dot': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dotx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dotm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'xls': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xlsx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xlsm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xlsb': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xls2003': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xltx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xltm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'ppt': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'pptx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'pps': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'ppsx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'vsd': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vss': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vsx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vst': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vtx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vsdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vdw': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vstx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vssx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'mpp': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'mpt': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'msg': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'eml': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'emlx': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'one': {'format': 'Microsoft OneNote', 'icon': 'file-word', 'unit': 'pt'},\r\n 'odt': {'format': 'Open Document Text', 'icon': 'file-word', 'unit': 'pt'},\r\n 'ott': {'format': 'Open Document Text Template', 'icon': 'file-word', 'unit': 'pt'},\r\n 'ods': {'format': 'Open Document Spreadsheet', 'icon': 'file-excel', 'unit': 'px'},\r\n 'odp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'otp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'ots': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'potx': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'potm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'pptm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'ppsm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'rtf': {'format': 'Rich Text Format', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'txt': {'format': 'Plain Text File', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'csv': {'format': 'Comma-Separated Values', 'icon': 'file-excel', 'unit': 'px'},\r\n 'html': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'mht': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'mhtml': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'xml': {'format': 'Extensible Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'xps': {'format': 'XML Paper Specification', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dxf': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'dwg': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'bmp': {'format': 'Bitmap Picture', 'icon': 'file-image', 'unit': 'px'},\r\n 'gif': {'format': 'Graphics Interchange Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'jpg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'jpe': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'jpeg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'jfif': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'png': {'format': 'Portable Network Graphics', 'icon': 'file-image', 'unit': 'px'},\r\n 'tiff': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'tif': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'psd': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'svg': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'jp2': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'epub': {'format': 'Electronic Publication', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'ico': {'format': 'Windows Icon', 'icon': 'file-image', 'unit': 'px'},\r\n 'webp': {'format': 'Compressed Image', 'icon': 'file-image', 'unit': 'px'},\r\n 'mobi': {'format': 'Mobipocket eBook', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'tex': {'format': 'LaTeX Source Document', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'djvu': {'format': 'Multi-Layer Raster Image', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'unknown': {'format': 'This format is not supported', 'icon': 'file'},\r\n };\r\n\r\n public static find(filename: string, isDirectory: boolean) {\r\n if (filename && !isDirectory) {\r\n const strings = filename.split('.');\r\n const name = strings.pop().toLowerCase();\r\n if (typeof FileUtil.map[name] === \"undefined\") {\r\n return strings.length > 0 ? FileUtil.map['unknown'] : FileUtil.map['folder'];\r\n } else {\r\n return FileUtil.map[name];\r\n }\r\n } else {\r\n return FileUtil.map['folder'];\r\n }\r\n }\r\n}\r\n\r\nexport class FileService {\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\n\r\nexport class UploadFilesService {\r\n private _uploadsChange: Observable;\r\n private _observer: Observer;\r\n\r\n constructor() {\r\n this._uploadsChange = new Observable(observer =>\r\n this._observer = observer);\r\n }\r\n\r\n get uploadsChange(): Observable {\r\n return this._uploadsChange;\r\n }\r\n\r\n changeFilesList(filesList: FileList) {\r\n this._observer.next(filesList);\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {FileModel, FileUtil} from \"../file.service\";\r\nimport {UploadFilesService} from \"../upload-files.service\";\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\nconst upload_disc = 'Disc';\r\n\r\nconst upload_url = 'URL';\r\n\r\nconst uploads_choices = [{name: upload_disc, icon: 'hdd'}, {name: upload_url, icon: 'link'}];\r\n\r\n@Component({\r\n selector: 'gd-browse-files-modal',\r\n templateUrl: './browse-files-modal.component.html',\r\n styleUrls: ['./browse-files-modal.component.less']\r\n})\r\nexport class BrowseFilesModalComponent implements OnInit {\r\n uploads = uploads_choices;\r\n\r\n @Input() files;\r\n @Input() uploadConfig;\r\n @Output() selectedFileGuid = new EventEmitter();\r\n @Output() selectedDirectory = new EventEmitter();\r\n @Output() urlForUpload = new EventEmitter();\r\n @Output() closing = new EventEmitter();\r\n private selectedFile: FileModel;\r\n showUploadUrl = false;\r\n showUploadFile = false;\r\n\r\n constructor(private _uploadService: UploadFilesService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getSize(size: number) {\r\n const mb = size / 1024 / 1024;\r\n if (mb > 1) {\r\n return (Math.round(mb * 100) / 100) + ' MB';\r\n } else {\r\n const kb = size / 1024;\r\n if (kb > 1) {\r\n return (Math.round(kb * 100) / 100) + ' KB';\r\n }\r\n }\r\n return size + ' Bytes';\r\n }\r\n\r\n getFormatName(file: FileModel) {\r\n return FileUtil.find(file.name, file.directory).format;\r\n }\r\n\r\n getFormatIcon(file: FileModel) {\r\n return FileUtil.find(file.name, file.directory).icon;\r\n }\r\n\r\n choose(file: FileModel) {\r\n this.selectedFile = file;\r\n if (file.directory || file.isDirectory) {\r\n this.selectedDirectory.emit(file.name);\r\n } else {\r\n this.selectedFileGuid.emit(file.guid);\r\n }\r\n }\r\n\r\n goUp() {\r\n if (this.selectedFile) {\r\n let guid = this.selectedFile.guid;\r\n if (guid.length > 0 && guid.indexOf('/') === -1) {\r\n guid = '';\r\n } else {\r\n guid = guid.replace(/\\/[^\\/]+\\/?$/, '');\r\n }\r\n this.selectedDirectory.emit(guid);\r\n }\r\n }\r\n\r\n selectUpload($event: string) {\r\n if (upload_url === $event) {\r\n this.showUploadUrl = true;\r\n } else {\r\n this.showUploadUrl = false;\r\n $(\"#gd-upload-input\").trigger('click');\r\n }\r\n }\r\n\r\n refresh($event) {\r\n\r\n if ($event) {\r\n this.files = null;\r\n this.selectedDirectory.emit('');\r\n this.showUploadUrl = false;\r\n this.selectedFile = null;\r\n } else {\r\n this.closing.emit(true);\r\n }\r\n }\r\n\r\n showSpinner() {\r\n return !this.files;\r\n }\r\n\r\n uploadUrl(url: string) {\r\n if (url) {\r\n this.urlForUpload.emit(url);\r\n this.cleanUpload();\r\n }\r\n }\r\n\r\n handleFileInput(files: FileList) {\r\n this._uploadService.changeFilesList(files);\r\n }\r\n\r\n cleanUpload() {\r\n this.showUploadFile = false;\r\n this.showUploadUrl = false;\r\n }\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class ZoomService {\r\n private _observer: Subject = new Subject();\r\n private readonly _zoomChange: Observable = this._observer.asObservable();\r\n private _zoom: number;\r\n\r\n constructor() {\r\n }\r\n\r\n get zoom(): number {\r\n return this._zoom;\r\n }\r\n\r\n get zoomChange(): Observable {\r\n return this._zoomChange;\r\n }\r\n\r\n changeZoom(zoom: number) {\r\n this._zoom = zoom;\r\n this._observer.next(zoom);\r\n }\r\n\r\n private createZoomOption(val: any, name: string, sep: boolean = false) {\r\n return {value: val, name: name, separator: sep}\r\n }\r\n\r\n zoomOptions(width, height) {\r\n return [this.createZoomOption(25, '25%'),\r\n this.createZoomOption(50, '50%'),\r\n this.createZoomOption(100,'100%'),\r\n this.createZoomOption(150, '150%'),\r\n this.createZoomOption(200, '200%'),\r\n this.createZoomOption(300, '300%'),\r\n this.createZoomOption(0, '', true),\r\n this.createZoomOption(width, 'Fit Width'),\r\n this.createZoomOption(height, 'Fit Height')];\r\n }\r\n}\r\n","import {fromEvent, Observable, Subject} from \"rxjs\";\r\nimport {debounceTime, distinctUntilChanged, startWith, tap} from \"rxjs/operators\";\r\n\r\nconst MOBILE_MAX_WIDTH = 425;\r\nconst TABLET_MAX_WIDTH = 1024;\r\n\r\nexport class WindowService {\r\n\r\n private resizeSubject: Subject = new Subject();\r\n private _resize$;\r\n private width: number;\r\n private height: number;\r\n\r\n constructor() {\r\n this.width = window.innerWidth;\r\n this.height = window.innerHeight;\r\n\r\n this._resize$ = fromEvent(window, 'resize')\r\n .pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n startWith({target: {innerWidth: window.innerWidth, innerHeight: window.innerHeight}}),\r\n tap(event => {\r\n this.resizeSubject.next(event.target);\r\n this.width = (event.target as Window).innerWidth;\r\n this.height = (event.target as Window).innerHeight;\r\n }),\r\n );\r\n this._resize$.subscribe();\r\n }\r\n\r\n get onResize(): Observable {\r\n return this.resizeSubject.asObservable();\r\n }\r\n\r\n isMobile() {\r\n return this.width <= MOBILE_MAX_WIDTH;\r\n }\r\n\r\n isTablet() {\r\n return this.width <= TABLET_MAX_WIDTH;\r\n }\r\n\r\n isDesktop() {\r\n return !this.isMobile() && !this.isTablet();\r\n }\r\n\r\n isEdge() {\r\n return window.navigator.userAgent.toLowerCase().indexOf('edge') > -1;\r\n }\r\n\r\n isFirefox() {\r\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\r\n }\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class RotationService {\r\n private _observerRotationAngle: Subject = new Subject();\r\n private readonly _rotationAngleChange: Observable = this._observerRotationAngle.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get rotationAngleChange(): Observable {\r\n return this._rotationAngleChange;\r\n }\r\n\r\n setRotationAngle(angle: number) {\r\n this._observerRotationAngle.next(angle);\r\n }\r\n}\r\n","import {\r\n AfterViewChecked,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n AfterViewInit,\r\n OnChanges} from '@angular/core';\r\nimport {FileDescription, FileUtil} from \"../file.service\";\r\nimport {ZoomService} from \"../zoom.service\";\r\nimport * as jquery from 'jquery';\r\nconst $ = jquery;\r\nimport * as Hammer from 'hammerjs';\r\nimport { WindowService } from '../window.service';\r\nimport { RotationService } from '../rotation.service';\r\n\r\n@Component({\r\n selector: 'gd-document',\r\n templateUrl: './document.component.html',\r\n styleUrls: ['./document.component.less']\r\n})\r\nexport class DocumentComponent implements OnInit, AfterViewChecked, AfterViewInit, OnChanges {\r\n\r\n @Input() mode: boolean;\r\n @Input() preloadPageCount: number;\r\n @Input() file: FileDescription;\r\n wait = false;\r\n zoom: number;\r\n\r\n docWidth = null;\r\n docHeight = null;\r\n viewportWidth = null;\r\n viewportHeight = null;\r\n scale = null;\r\n lastScale = null;\r\n container = null;\r\n doc = null;\r\n x = 0;\r\n lastX = 0;\r\n y = 0;\r\n lastY = 0;\r\n pinchCenter = null;\r\n pinchCenterOffset = null;\r\n curWidth = 0;\r\n curHeight = 0;\r\n isDesktop: boolean;\r\n initialRotation: any;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _zoomService: ZoomService,\r\n private _windowService: WindowService,\r\n private _rotationServcie: RotationService) {\r\n\r\n _zoomService.zoomChange.subscribe((val: number) => {\r\n this.zoom = val;\r\n });\r\n\r\n this.isDesktop = _windowService.isDesktop();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges() {\r\n const panzoom = this._elementRef.nativeElement.children.item(0).children.item(0);\r\n (panzoom as any).style.transform = '';\r\n // TODO: this intersects with zooming by zoom directive, but still needed\r\n // for flush previous settings before opening another file\r\n //this._zoomService.changeZoom(100);\r\n //this.scale = 1;\r\n }\r\n \r\n ngAfterViewInit() {\r\n // For current iteration we take .panzoom as a document\r\n this.doc = this._elementRef.nativeElement.children.item(0).children.item(0);\r\n // For current iteration we take .gd-document as a container\r\n this.container = this._elementRef.nativeElement;\r\n\r\n this.docWidth = this.doc.clientWidth;\r\n this.docHeight = this.doc.clientHeight;\r\n this.viewportWidth = this.doc.offsetWidth;\r\n\r\n // For cases where we already have zoom defined we should include it\r\n this.scale = (this.viewportWidth/this.docWidth) * this._zoomService.zoom/100;\r\n \r\n this.lastScale = this.scale;\r\n this.viewportHeight = this.container.offsetHeight;\r\n this.curWidth = this.docWidth*this.scale;\r\n this.curHeight = this.docHeight*this.scale;\r\n\r\n const hammer = new Hammer(this.container);\r\n }\r\n\r\n // TODO: this temporary crutch for Excel files should be documented\r\n ifExcel() {\r\n return FileUtil.find(this.file.guid, false).format === \"Microsoft Excel\";\r\n }\r\n\r\n getDimensionWithUnit(value: number) {\r\n return value + FileUtil.find(this.file.guid, false).unit;\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n const elementNodeListOf = this._elementRef.nativeElement.querySelectorAll('.gd-wrapper');\r\n const element = elementNodeListOf.item(0);\r\n if (element) {\r\n $(element).trigger('focus');\r\n }\r\n }\r\n\r\n absolutePosition(el) {\r\n let x = 0, y = 0;\r\n\r\n while (el !== null) {\r\n x += el.offsetLeft;\r\n y += el.offsetTop;\r\n el = el.offsetParent;\r\n }\r\n\r\n return { x: x, y: y };\r\n };\r\n\r\n restrictRawPos(pos, viewportDim, docDim) {\r\n if (pos < viewportDim/this.scale - docDim) { // too far left/up?\r\n pos = viewportDim/this.scale - docDim;\r\n } else if (pos > 0) { // too far right/down?\r\n pos = 0;\r\n }\r\n return pos;\r\n };\r\n\r\n updateLastPos() {\r\n this.lastX = this.x;\r\n this.lastY = this.y;\r\n };\r\n\r\n translate(deltaX, deltaY) {\r\n // We restrict to the min of the viewport width/height or current width/height as the\r\n // current width/height may be smaller than the viewport width/height\r\n const newX = this.restrictRawPos(this.lastX + deltaX/this.scale,\r\n Math.min(this.viewportWidth, this.curWidth), this.docWidth);\r\n this.x = newX;\r\n // TODO: value here and in the similar line below changes to positive to take any effect\r\n this.container.scrollLeft = -Math.ceil(newX*this.scale);\r\n\r\n const newY = this.restrictRawPos(this.lastY + deltaY/this.scale,\r\n Math.min(this.viewportHeight, this.curHeight), this.docHeight);\r\n this.y = newY;\r\n this.container.scrollTop = -Math.ceil(newY*this.scale);\r\n \r\n this.doc.style.transform = 'scale(' + this.scale + ')';\r\n };\r\n\r\n startZoom(scaleBy) {\r\n this.scale = this.lastScale*scaleBy;\r\n\r\n this.curWidth = this.docWidth*this.scale;\r\n this.curHeight = this.docHeight*this.scale;\r\n\r\n // Adjust margins to make sure that we aren't out of bounds\r\n this.translate(0, 0);\r\n };\r\n\r\n rawCenter($event) {\r\n const pos = this.absolutePosition(this.container);\r\n\r\n // We need to account for the scroll position\r\n const scrollLeft = window.pageXOffset ? window.pageXOffset : document.body.scrollLeft;\r\n const scrollTop = window.pageYOffset ? window.pageYOffset : document.body.scrollTop;\r\n\r\n const zoomX = -this.x + ($event.center.x - pos.x + scrollLeft)/this.scale;\r\n const zoomY = -this.y + ($event.center.y - pos.y + scrollTop)/this.scale;\r\n\r\n return { x: zoomX, y: zoomY };\r\n };\r\n\r\n updateLastScale() {\r\n this.lastScale = this.scale;\r\n };\r\n\r\n zoomAround(scaleBy, rawZoomX, rawZoomY, doNotUpdateLast) {\r\n // Zoom\r\n this.startZoom(scaleBy);\r\n\r\n // New raw center of viewport\r\n const rawCenterX = -this.x + Math.min(this.viewportWidth, this.curWidth)/2/this.scale;\r\n const rawCenterY = -this.y + Math.min(this.viewportHeight, this.curHeight)/2/this.scale;\r\n\r\n // Delta\r\n const deltaX = (rawCenterX - rawZoomX)*this.scale;\r\n const deltaY = (rawCenterY - rawZoomY)*this.scale;\r\n\r\n // Translate back to zoom center\r\n this.translate(deltaX, deltaY);\r\n\r\n if (!doNotUpdateLast) {\r\n this.updateLastScale();\r\n this.updateLastPos();\r\n }\r\n };\r\n\r\n onPinch($event){\r\n console.log(\"pinch\");\r\n if (this.pinchCenter === null) {\r\n this.pinchCenter = this.rawCenter($event);\r\n const offsetX = this.pinchCenter.x*this.scale - (-this.x*this.scale + Math.min(this.viewportWidth, this.curWidth)/2);\r\n const offsetY = this.pinchCenter.y*this.scale - (-this.y*this.scale + Math.min(this.viewportHeight, this.curHeight)/2);\r\n this.pinchCenterOffset = { x: offsetX, y: offsetY };\r\n }\r\n\r\n const newScale = this.scale*$event.scale;\r\n\r\n const zoomX = this.pinchCenter.x*newScale - this.pinchCenterOffset.x;\r\n const zoomY = this.pinchCenter.y*newScale - this.pinchCenterOffset.y;\r\n const zoomCenter = { x: zoomX/newScale, y: zoomY/newScale };\r\n \r\n this.zoomAround($event.scale, zoomCenter.x, zoomCenter.y, true);\r\n }\r\n\r\n onPinchEnd($event){\r\n console.log(\"pinchEnd\");\r\n this.updateLastScale();\r\n this.updateLastPos();\r\n this.pinchCenter = null;\r\n }\r\n\r\n onPan($event){\r\n // TODO: looks like native pan works better\r\n // if (!this.isDesktop) {\r\n // this.translate($event.deltaX, $event.deltaY);\r\n // }\r\n }\r\n\r\n onPanEnd($event){\r\n // if (!this.isDesktop) {\r\n // this.updateLastPos();\r\n // }\r\n }\r\n\r\n onDoubleTap($event){\r\n if (!this.isDesktop) {\r\n if ($event.tapCount === 2) {\r\n const c = this.rawCenter($event);\r\n this.zoomAround(2, c.x, c.y, false);\r\n }\r\n }\r\n }\r\n\r\n onRotateStart($event){\r\n this.initialRotation = $event.rotation;\r\n console.log(\"rotateStart: \" + $event.rotation + ' ' + $event.angle);\r\n }\r\n\r\n onRotateEnd($event){\r\n console.log(\"rotateEnd: \" + $event.rotation + ' ' + $event.angle);\r\n if ($event.rotation > 0 && this.initialRotation > 0) {\r\n if ($event.rotation > this.initialRotation && ($event.rotation - this.initialRotation > 45)) {\r\n this._rotationServcie.setRotationAngle(90);\r\n }\r\n else if ($event.rotation < this.initialRotation && (this.initialRotation - $event.rotation > 45)) {\r\n this._rotationServcie.setRotationAngle(-90);\r\n }\r\n }\r\n // case with negative values\r\n else {\r\n if (this.initialRotation > $event.rotation && ($event.rotation - this.initialRotation > 45)) {\r\n this._rotationServcie.setRotationAngle(-90);\r\n }\r\n else if (this.initialRotation < $event.rotation && (this.initialRotation - $event.rotation > 45)) {\r\n this._rotationServcie.setRotationAngle(90);\r\n }\r\n }\r\n }\r\n}\r\n","import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-page',\r\n templateUrl: './page.component.html',\r\n styleUrls: ['./page.component.less']\r\n})\r\nexport class PageComponent implements OnInit, OnChanges {\r\n\r\n @Input() angle: number;\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() number: number;\r\n @Input() data: string;\r\n @Input() isHtml: boolean;\r\n @Input() editable: boolean;\r\n imgData: string;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n if(isIE && this.number === 0){\r\n this.editable = false;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // TODO: this is temporary needed to remove unneeded spaces and BOM symbol \r\n // which leads to undesired spaces on the top of the docs pages\r\n this.data = this.data !== null ? this.data.replace(/>\\s+<').replace(/\\uFEFF/g,\"\") : null;\r\n const dataImagePngBase64 = 'data:image/png;base64,';\r\n this.imgData = dataImagePngBase64;\r\n if (!this.isHtml) {\r\n this.imgData += this.data;\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\r\n\r\n@Pipe({name: 'safeHtml'})\r\nexport class SanitizeHtmlPipe implements PipeTransform{\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n}\r\n\r\n@Pipe({name: 'safeResourceHtml'})\r\nexport class SanitizeResourceHtmlPipe implements PipeTransform{\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(html);\r\n }\r\n}\r\n\r\n@Pipe({name: 'safeStyle'})\r\nexport class SanitizeStylePipe implements PipeTransform{\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustStyle(html);\r\n }\r\n}\r\n\r\n@Pipe({name: 'highlight'})\r\nexport class HighlightSearchPipe implements PipeTransform {\r\n\r\n transform(value: string, args: string): any {\r\n if (!args) {\r\n return value;\r\n }\r\n const re = new RegExp(args, 'gi'); //'gi' for case insensitive and can use 'g' if you want the search to be case sensitive.\r\n return value.replace(re, \"$&\");\r\n }\r\n}\r\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\r\nimport {UploadFilesService} from \"../upload-files.service\";\r\n\r\n@Component({\r\n selector: 'gd-upload-file-zone',\r\n templateUrl: './upload-file-zone.component.html',\r\n styleUrls: ['./upload-file-zone.component.less']\r\n})\r\nexport class UploadFileZoneComponent implements OnInit {\r\n\r\n @Output() closeUpload = new EventEmitter();\r\n\r\n constructor(private _uploadService: UploadFilesService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n handleFileInput(files: FileList) {\r\n this._uploadService.changeFilesList(files);\r\n this.onCloseUpload();\r\n }\r\n\r\n onCloseUpload() {\r\n this.closeUpload.emit(true);\r\n }\r\n\r\n close($event) {\r\n if ($event.target.id === 'gd-dropZone') {\r\n this.onCloseUpload();\r\n }\r\n }\r\n}\r\n","import {Directive, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\r\nimport {UploadFilesService} from \"./upload-files.service\";\r\n\r\n@Directive({\r\n selector: '[gdDnd]'\r\n})\r\nexport class DndDirective {\r\n\r\n @Output() closing = new EventEmitter();\r\n @Output() opening = new EventEmitter();\r\n @Output() dropped = new EventEmitter();\r\n\r\n @HostBinding('class.active') active = false;\r\n\r\n constructor(private _uploadFilesService: UploadFilesService) {\r\n }\r\n\r\n @HostListener('dragover', ['$event'])\r\n public onDragOver(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = true;\r\n this.opening.emit(true);\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n public onDragLeave(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = false;\r\n this.closeArea();\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n public onDrop(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n const files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.active = false;\r\n this.dropped.emit(true);\r\n this._uploadFilesService.changeFilesList(files);\r\n this.closeArea();\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public onClick(event) {\r\n this.closeArea();\r\n }\r\n\r\n private closeArea() {\r\n this.closing.emit(true);\r\n this.opening.emit(false);\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\n\r\nexport class PagePreloadService {\r\n private readonly _checkPreload: Observable;\r\n private _observer: Observer;\r\n\r\n constructor() {\r\n this._checkPreload = new Observable(observer =>\r\n this._observer = observer);\r\n }\r\n\r\n get checkPreload(): Observable {\r\n return this._checkPreload;\r\n }\r\n\r\n changeLastPageInView(page: number) {\r\n if(this._observer) {\r\n this._observer.next(page);\r\n }\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\nimport {PagePreloadService} from \"./page-preload.service\";\r\nimport {Injectable} from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigateService {\r\n private _currentPage = 0;\r\n private _countPages = 0;\r\n private readonly _navigate: Observable;\r\n private _observer: Observer;\r\n\r\n constructor(private _pagePreloadService: PagePreloadService) {\r\n this._navigate = new Observable(observer =>\r\n this._observer = observer);\r\n }\r\n\r\n get navigate(): Observable {\r\n return this._navigate;\r\n }\r\n\r\n get countPages(): number {\r\n return this._countPages;\r\n }\r\n\r\n set countPages(value: number) {\r\n this._countPages = value;\r\n }\r\n\r\n get currentPage(): number {\r\n return this._currentPage;\r\n }\r\n\r\n set currentPage(value: number) {\r\n this._currentPage = value;\r\n }\r\n\r\n nextPage() {\r\n if (this._currentPage < this._countPages) {\r\n this._currentPage++;\r\n this.navigateTo(this._currentPage);\r\n }\r\n }\r\n\r\n prevPage() {\r\n if (this._currentPage > 1) {\r\n this._currentPage--;\r\n this.navigateTo(this._currentPage);\r\n }\r\n }\r\n\r\n toLastPage() {\r\n this._currentPage = this._countPages;\r\n this.navigateTo(this._currentPage);\r\n }\r\n\r\n toFirstPage() {\r\n this._currentPage = 1;\r\n this.navigateTo(this._currentPage);\r\n }\r\n\r\n navigateTo(page: number) {\r\n this.currentPage = page;\r\n this._pagePreloadService.changeLastPageInView(page);\r\n this._observer.next(page);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ViewportService {\r\n\r\n constructor() {\r\n }\r\n\r\n checkInViewport(el, zoom: number = 100, leftOffset: number = 0, deltaX: number = 0.5) {\r\n if (!el) {\r\n return false;\r\n }\r\n const x = deltaX;\r\n const y = 0.5;\r\n\r\n const win = $(window);\r\n\r\n const viewport = {\r\n top: win.scrollTop(),\r\n left: win.scrollLeft() + leftOffset,\r\n right: win.scrollLeft() + win.width() - 10,\r\n bottom: win.scrollTop() + win.height()\r\n };\r\n\r\n\r\n if (isNaN(zoom)) {\r\n zoom = 100;\r\n }\r\n\r\n const zoomN = zoom / 100;\r\n const height = $(el).outerHeight() * (zoomN);\r\n const width = $(el).outerWidth() * (zoomN);\r\n\r\n if (!width || !height) {\r\n return false;\r\n }\r\n\r\n const bounds = $(el).offset();\r\n const right = (bounds.left * (zoomN)) + width;\r\n const bottom = (bounds.top * (zoomN)) + height;\r\n\r\n const visible = (!(viewport.right < (bounds.left * (zoomN)) || viewport.left > right || viewport.bottom < (bounds.top * (zoomN)) || viewport.top > bottom));\r\n\r\n if (!visible) {\r\n return false;\r\n }\r\n\r\n const deltas = {\r\n top: parseFloat(Math.min(1, (bottom - viewport.top) / height).toFixed(2)),\r\n bottom: parseFloat(Math.min(1, (viewport.bottom - (bounds.top * (zoomN))) / height).toFixed(2)),\r\n left: parseFloat(Math.min(1, (right - viewport.left) / width).toFixed(2)),\r\n right: parseFloat(Math.min(1, (viewport.right - (bounds.left * (zoomN))) / width).toFixed(2))\r\n };\r\n\r\n return (deltas.left * deltas.right) >= x && (deltas.top * deltas.bottom) >= y;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport {NavigateService} from \"./navigate.service\";\r\nimport {PagePreloadService} from \"./page-preload.service\";\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport {WindowService} from \"./window.service\";\r\nimport {ViewportService} from \"./viewport.service\";\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\n@Directive({\r\n selector: '[gdScrollable]'\r\n})\r\nexport class ScrollableDirective implements AfterViewInit, OnChanges, OnInit {\r\n\r\n private currentPage: number;\r\n private zoom = 100;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _navigateService: NavigateService,\r\n private _pagePreloadService: PagePreloadService,\r\n private _zoomService: ZoomService,\r\n private _windowService: WindowService,\r\n private _viewportService: ViewportService) {\r\n\r\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\r\n _zoomService.zoomChange.subscribe((val: number) => {\r\n this.zoom = val ? val : this.zoom;\r\n this.refresh();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\r\n this._navigateService.navigate.subscribe((value => {\r\n this.currentPage = value;\r\n this.scrollToPage(value);\r\n }));\r\n this.refresh();\r\n }\r\n\r\n @HostListener('scroll') scrolling() {\r\n this.refresh();\r\n }\r\n\r\n @HostListener('window:resize') resizing() {\r\n this.refresh();\r\n }\r\n\r\n scrollToPage(pageNumber: number) {\r\n const el = this._elementRef.nativeElement;\r\n const page = this.getPage(pageNumber);\r\n const prev = pageNumber > 0 ? this.getPage(pageNumber - 1) : null;\r\n const isSameTop = (prev && $(prev).offset().top === $(page).offset().top);\r\n if (this._viewportService.checkInViewport(page, this.zoom) && isSameTop) {\r\n return;\r\n }\r\n const pagesHeight = this.calculateOffset(pageNumber);\r\n const options = {\r\n left: 0,\r\n top: pagesHeight\r\n };\r\n if(el){\r\n // using polyfill\r\n el.scroll(options);\r\n }\r\n }\r\n\r\n private getChildren() {\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n // here and in the similar line below we getting the document pages\r\n return el.children.item(0).children.item(0).children;\r\n }\r\n }\r\n\r\n private getPage(pageNumber: number) {\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n return el.children.item(0).children.item(0).children.item(pageNumber - 1);\r\n }\r\n }\r\n\r\n private calculateOffset(pageNumber: number) {\r\n const count = this._windowService.isFirefox() ? 1 : this.countPagesOnWidth();\r\n const margin = this._windowService.isDesktop() ? 40 : 10;\r\n let pagesHeight = 0;\r\n for (let i = 1; i < pageNumber / count; i++) {\r\n const item = this.getPage(i);\r\n const clientHeight = item ? item.clientHeight : 0;\r\n pagesHeight += clientHeight > 0 ? clientHeight * this.getZoom() + margin : 0;\r\n }\r\n return pagesHeight;\r\n }\r\n\r\n private countPagesOnWidth() {\r\n const pageEl = this.getPage(1);\r\n const offset = 150;\r\n const count = Math.floor((this.getWidth() - offset) / (pageEl.getBoundingClientRect().width * this.getZoom()));\r\n return count === 0 ? 1 : count;\r\n }\r\n\r\n refresh() {\r\n let page;\r\n let currentPageSet = false;\r\n const pageElem = this.getPage(this.currentPage);\r\n const currentPageRect = this.currentPage && pageElem ? pageElem.getBoundingClientRect() : null;\r\n for (page = 1; page < this.getChildren().length + 1; page++) {\r\n const element = this.getPage(page);\r\n if (this._viewportService.checkInViewport(element, this.zoom)) {\r\n if (!currentPageSet) {\r\n if (!this.currentPage || !pageElem || (this.currentPage && currentPageRect && element.getBoundingClientRect().top !== currentPageRect.top)) {\r\n this.currentPage = page;\r\n this._navigateService.currentPage = page;\r\n }\r\n currentPageSet = true;\r\n }\r\n this._pagePreloadService.changeLastPageInView(page);\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.refresh();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\r\n }\r\n\r\n\r\n private getWidth() {\r\n return this._elementRef ? this._elementRef.nativeElement.offsetWidth : window.innerWidth;\r\n }\r\n\r\n private getZoom() {\r\n return this.zoom / 100;\r\n }\r\n}\r\n","import {AfterViewInit, Directive, HostBinding, Input, OnDestroy, OnInit, ElementRef, OnChanges} from '@angular/core';\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport {FileUtil} from \"./file.service\";\r\nimport { WindowService } from './window.service';\r\n\r\n@Directive({\r\n selector: '[gdZoom]'\r\n})\r\nexport class ZoomDirective implements OnInit, OnDestroy, AfterViewInit, OnChanges {\r\n\r\n @Input() zoomActive = true;\r\n @Input() file;\r\n\r\n @HostBinding('style.zoom') zoomInt: number;\r\n @HostBinding('style.transform') transform: string;\r\n @HostBinding('style.transform-origin') transformOrigin: string;\r\n @HostBinding('style.width') width: string;\r\n @HostBinding('style.min-width') minWidth: string;\r\n el: ElementRef;\r\n\r\n constructor(private _zoomService: ZoomService, private _windowService: WindowService, el: ElementRef) {\r\n this.el = el;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.setStyles(this._zoomService.zoom);\r\n this.resizePages(this._zoomService.zoom);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (! this.zoomActive) {\r\n return;\r\n }\r\n\r\n this.setStyles(this._zoomService.zoom);\r\n this._zoomService.zoomChange.subscribe((zoom) => {\r\n this.setStyles(zoom);\r\n this.resizePages(zoom);\r\n });\r\n }\r\n\r\n private setStyles(zoom) {\r\n if (! this.zoomActive) {\r\n return;\r\n }\r\n\r\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\r\n \r\n if (this._windowService.isEdge()) {\r\n this.zoomInt = zoomInt;\r\n }\r\n else {\r\n this.zoomInt = null;\r\n }\r\n \r\n if (!this._windowService.isEdge()) {\r\n this.transform = 'scale(' + zoomInt + ')';\r\n this.transformOrigin = 'top left';\r\n }\r\n else {\r\n this.transform = \"\";\r\n this.transformOrigin = \"\";\r\n }\r\n\r\n let maxWidth = 0;\r\n this.file.pages.forEach(page => {\r\n {\r\n if (page.width > maxWidth){\r\n maxWidth = page.width;\r\n }\r\n }\r\n });\r\n\r\n // Images and Excel-related files receiving dimensions in px from server\r\n this.minWidth = maxWidth + FileUtil.find(this.file.guid, false).unit;\r\n }\r\n\r\n private getScrollWidth(elm){\r\n return elm.offsetWidth - elm.clientWidth;\r\n }\r\n\r\n private resizePages(zoom){\r\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\r\n\r\n const viewPortWidth = this.el.nativeElement.parentElement.offsetWidth;\r\n const scrollWidth = this.getScrollWidth(this.el.nativeElement.parentElement);\r\n this.width = (viewPortWidth/zoomInt - scrollWidth/zoomInt) + 'px';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setStyles(this._zoomService.zoom);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OnCloseService {\r\n private _observer: Subject = new Subject();\r\n private readonly _onClose: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get onClose() {\r\n return this._onClose;\r\n }\r\n\r\n close(close: boolean) {\r\n this._observer.next(close)\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {OnCloseService} from \"../on-close.service\";\r\n\r\nexport interface Option {\r\n name: string;\r\n value: any;\r\n separator: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'gd-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.less']\r\n})\r\nexport class SelectComponent {\r\n\r\n @Input() options: Option[];\r\n @Input() disabled = false;\r\n @Input() showSelected: Option;\r\n @Output() selected: EventEmitter = new EventEmitter();\r\n isOpen = false;\r\n\r\n constructor(private _onCloseService: OnCloseService) {\r\n _onCloseService.onClose.subscribe(() => {\r\n this.close();\r\n });\r\n }\r\n\r\n open() {\r\n if (!this.disabled) {\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n close() {\r\n this.isOpen = false;\r\n }\r\n\r\n onClickOutside(event : Event){\r\n this.close();\r\n }\r\n\r\n toggle($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n if (!this.disabled) {\r\n this.isOpen = !this.isOpen;\r\n }\r\n }\r\n\r\n select($event, value: Option) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.selected.emit(value);\r\n this.close();\r\n }\r\n\r\n}\r\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[gdDisabledCursor]'\r\n})\r\nexport class DisabledCursorDirective implements OnInit, OnChanges {\r\n\r\n @Input() dis: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n @HostBinding('class.inactive') cursor: boolean;\r\n\r\n private updateCursor() {\r\n this.cursor = this.dis ? true : false;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateCursor();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.updateCursor()\r\n }\r\n}\r\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[gdRotation]'\r\n})\r\nexport class RotationDirective implements OnInit, OnChanges {\r\n\r\n @Input() angle: number;\r\n @Input() isHtmlMode: boolean;\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() withMargin = true;\r\n\r\n @HostBinding('style.animation') animation: string;\r\n @HostBinding('style.transition-property') transition: string;\r\n @HostBinding('style.transform') transform: string;\r\n\r\n @HostBinding('style.margin') margin: string;\r\n\r\n constructor() {\r\n }\r\n\r\n private updateCursor() {\r\n if (typeof this.angle === \"string\"){\r\n this.angle = parseInt(this.angle, 10);\r\n }\r\n\r\n if (this.angle) {\r\n this.animation = 'none';\r\n this.transition = 'none';\r\n this.transform = 'rotate(' + this.angle + 'deg)';\r\n } else if (this.angle === 0 && this.animation) {\r\n this.animation = null;\r\n this.transition = null;\r\n this.transform = null;\r\n }\r\n\r\n if (this.withMargin) {\r\n if (this.angle === 90 || this.angle === 270 || this.angle === -90 || this.angle === -270) {\r\n if (this.isHtmlMode) {\r\n if (this.isLandscape()) {\r\n this.margin = '164px 254px';\r\n } else {\r\n this.margin = '-111px 254px';\r\n }\r\n } else {\r\n if (this.isLandscape()) {\r\n this.margin = '129px 100px -79px';\r\n } else {\r\n this.margin = '-72px 100px -79px';\r\n }\r\n }\r\n } else if (this.angle === -180 || this.angle === 180) {\r\n this.margin = '280px';\r\n } else {\r\n this.margin = null;\r\n }\r\n }\r\n\r\n }\r\n\r\n isLandscape() {\r\n return this.width > this.height;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateCursor();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.updateCursor()\r\n }\r\n\r\n}\r\n","import {Component, Input, Output, EventEmitter, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-init-state',\r\n templateUrl: './init-state.component.html',\r\n styleUrls: ['./init-state.component.less']\r\n})\r\nexport class InitStateComponent implements OnInit {\r\n @Input() icon: string;\r\n @Input() text: string;\r\n @Output() fileDropped = new EventEmitter();\r\n showUploadFile = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n dropped($event) {\r\n if ($event) {\r\n this.fileDropped.emit($event);\r\n this.showUploadFile = false;\r\n }\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\nimport {PageModel} from \"./file.service\";\r\n\r\nexport class RenderPrintService {\r\n private _render: Observable;\r\n private _observer: Observer;\r\n private _renderBlob: Observable;\r\n private _observerBlob: Observer;\r\n\r\n constructor() {\r\n this._render = new Observable(observer =>\r\n this._observer = observer);\r\n this._renderBlob = new Observable(observer =>\r\n this._observerBlob = observer);\r\n }\r\n\r\n get renderPrint(): Observable {\r\n return this._render;\r\n }\r\n\r\n changePages(pages: PageModel[]) {\r\n this._observer.next(pages);\r\n }\r\n\r\n get renderPrintBlob(): Observable {\r\n return this._renderBlob;\r\n }\r\n\r\n changeBlob(file: Blob) {\r\n this._observerBlob.next(file);\r\n }\r\n}\r\n","import {Directive, Input} from '@angular/core';\r\nimport {PageModel} from \"./file.service\";\r\nimport {RenderPrintService} from \"./render-print.service\";\r\n\r\n@Directive({\r\n selector: '[gdRenderPrint]'\r\n})\r\nexport class RenderPrintDirective {\r\n @Input() htmlMode: boolean;\r\n\r\n constructor(private _renderService: RenderPrintService) {\r\n _renderService.renderPrint.subscribe(pages => {\r\n this.renderPrint(pages);\r\n });\r\n _renderService.renderPrintBlob.subscribe(file => {\r\n this.renderPrintBlob(file);\r\n });\r\n }\r\n\r\n private renderPrint(pages: PageModel[]) {\r\n let pagesHtml = '';\r\n if (this.htmlMode) {\r\n for (const page of pages) {\r\n pagesHtml += '
' +\r\n '
' + page.data + '
' +\r\n '
';\r\n }\r\n } else {\r\n for (const page of pages) {\r\n pagesHtml += '
' +\r\n '
' +\r\n '
';\r\n }\r\n }\r\n this.openWindow(pagesHtml, pages[0].width, pages[0].height);\r\n }\r\n\r\n private openWindow(pagesHtml, width, height) {\r\n const a4Height = 842;\r\n const a4Width = 595;\r\n let imageA4Adjusted = '';\r\n if(width > a4Width && height > a4Height){\r\n const zoom = Math.round(height / a4Height) / 100;\r\n imageA4Adjusted = '.gd-page img { width: 100%; margin: 0; padding: 0;}';\r\n if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1){\r\n imageA4Adjusted = '.gd-page img { transform: scale(' + zoom + ');}';\r\n }\r\n }\r\n let cssPrint = '';\r\n\r\n const windowObject = window.open('', \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\r\n windowObject.focus();\r\n windowObject.document.writeln(cssPrint);\r\n windowObject.document.writeln(pagesHtml);\r\n windowObject.document.close();\r\n windowObject.focus();\r\n windowObject.print();\r\n windowObject.close();\r\n }\r\n\r\n private renderPrintBlob(file: Blob) {\r\n const fileURL = URL.createObjectURL(file);\r\n const windowObject = window.open(fileURL, \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\r\n windowObject.focus();\r\n windowObject.print();\r\n windowObject.close();\r\n }\r\n}\r\n","import {BehaviorSubject, Observable} from \"rxjs\";\r\n\r\nexport class ExceptionMessageService {\r\n private _observer: BehaviorSubject = new BehaviorSubject('Server is not available');\r\n private _messageChange: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get messageChange(): Observable {\r\n return this._messageChange;\r\n }\r\n\r\n changeMessage(message: string) {\r\n this._observer.next(message);\r\n }\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {ExceptionMessageService} from \"../exception-message.service\";\r\n\r\n@Component({\r\n selector: 'gd-error-modal',\r\n templateUrl: './error-modal.component.html',\r\n styleUrls: ['./error-modal.component.less']\r\n})\r\nexport class ErrorModalComponent implements OnInit {\r\n\r\n message: string;\r\n\r\n constructor(messageService: ExceptionMessageService) {\r\n messageService.messageChange.subscribe(message => this.message = message);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class PasswordService {\r\n private _observer: Subject = new Subject();\r\n private readonly _passChange: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get passChange(): Observable {\r\n return this._passChange;\r\n }\r\n\r\n setPassword(pass: string) {\r\n this._observer.next(pass);\r\n }\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {ExceptionMessageService} from \"../exception-message.service\";\r\nimport {PasswordService} from \"../password.service\";\r\n\r\n@Component({\r\n selector: 'gd-password-required',\r\n templateUrl: './password-required.component.html',\r\n styleUrls: ['./password-required.component.less']\r\n})\r\nexport class PasswordRequiredComponent implements OnInit {\r\n message: string;\r\n\r\n constructor(messageService: ExceptionMessageService, private _passwordService: PasswordService) {\r\n messageService.messageChange.subscribe(message => this.message = message);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n setPassword(value: string) {\r\n this._passwordService.setPassword(value);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\r\nimport {Observable, throwError} from \"rxjs\";\r\nimport {catchError, map} from \"rxjs/operators\";\r\nimport {ExceptionMessageService} from \"./exception-message.service\";\r\nimport {HttpError} from \"./file.service\";\r\nimport {CommonModals, ModalService} from \"./modal.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptorService implements HttpInterceptor {\r\n\r\n constructor(private _modalService: ModalService, private _messageService: ExceptionMessageService) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n const logFormat = 'background: maroon; color: white';\r\n\r\n return next.handle(req)\r\n .pipe(map(data => {\r\n return data;\r\n }),\r\n catchError((exception: HttpEvent) => {\r\n if (exception instanceof HttpErrorResponse) {\r\n switch (exception.status) {\r\n\r\n case HttpError.BadRequest:\r\n console.error('%c Bad Request 400', logFormat);\r\n break;\r\n case HttpError.Unauthorized:\r\n console.error('%c Unauthorized 401', logFormat);\r\n break;\r\n case HttpError.NotFound:\r\n console.error('%c Not Found 404', logFormat);\r\n break;\r\n case HttpError.TimeOut:\r\n console.error('%c TimeOut 408', logFormat);\r\n break;\r\n case HttpError.InternalServerError:\r\n console.error('%c big bad 500', logFormat);\r\n this._messageService.changeMessage(exception.error.message);\r\n this._modalService.open(CommonModals.ErrorMessage);\r\n break;\r\n\r\n case HttpError.Forbidden:\r\n console.error('%c Forbidden 403', logFormat);\r\n this._messageService.changeMessage(exception.error.message);\r\n this._modalService.open(CommonModals.PasswordRequired);\r\n break;\r\n }\r\n }\r\n return throwError(exception);\r\n }));\r\n }\r\n}\r\n","import { HammerGestureConfig } from '@angular/platform-browser';\r\nimport * as Hammer from 'hammerjs';\r\n\r\nexport class CustomHammerConfig extends HammerGestureConfig {\r\n overrides = {\r\n // override default settings\r\n 'pinch': {\r\n direction: Hammer.DIRECTION_ALL,\r\n enable: true,\r\n dropRecognizeWith: 'rotate'\r\n },\r\n 'rotate': {\r\n direction: Hammer.DIRECTION_ALL,\r\n enable: true,\r\n requireFailure: 'pinch'\r\n }\r\n };\r\n}","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class SearchService {\r\n private _observer: Subject = new Subject();\r\n private readonly _textChange: Observable = this._observer.asObservable();\r\n\r\n private _observerCurrent: Subject = new Subject();\r\n private readonly _currentChange: Observable = this._observerCurrent.asObservable();\r\n\r\n private _observerTotal: Subject = new Subject();\r\n private readonly _totalChange: Observable = this._observerTotal.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get textChange(): Observable {\r\n return this._textChange;\r\n }\r\n\r\n setText(text: string) {\r\n this._observer.next(text);\r\n }\r\n\r\n get currentChange(): Observable {\r\n return this._currentChange;\r\n }\r\n\r\n get totalChange(): Observable {\r\n return this._totalChange;\r\n }\r\n\r\n setCurrent(current: number) {\r\n this._observerCurrent.next(current);\r\n }\r\n\r\n setTotal(total: number) {\r\n this._observerTotal.next(total);\r\n }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {SearchService} from \"../search.service\";\r\n\r\n@Component({\r\n selector: 'gd-search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.less']\r\n})\r\nexport class SearchComponent implements OnInit, AfterViewInit {\r\n\r\n @Output() hidePanel = new EventEmitter(false);\r\n\r\n current = 0;\r\n total = 0;\r\n\r\n @ViewChild('text',{\r\n static : true\r\n }) textElement: ElementRef;\r\n\r\n constructor(private _searchService: SearchService) {\r\n _searchService.totalChange.subscribe((total: number) => {\r\n this.total = total;\r\n if (total !== 0) {\r\n this.current = 1;\r\n } else {\r\n this.current = 0;\r\n }\r\n this._searchService.setCurrent(this.current);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n setText(text: string) {\r\n this._searchService.setText(text);\r\n }\r\n\r\n hide() {\r\n this.setText('');\r\n this.hidePanel.emit(true);\r\n }\r\n\r\n prev() {\r\n if (this.current > 1) {\r\n this.current--;\r\n this._searchService.setCurrent(this.current);\r\n }\r\n }\r\n\r\n next() {\r\n if (this.current < this.total) {\r\n this.current++;\r\n this._searchService.setCurrent(this.current);\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.textElement.nativeElement.focus();\r\n }\r\n}\r\n","import {Directive, ElementRef} from '@angular/core';\r\nimport {SearchService} from \"./search.service\";\r\nimport {HighlightSearchPipe} from \"./pipes\";\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\n@Directive({\r\n selector: '[gdSearchable]'\r\n})\r\nexport class SearchableDirective {\r\n\r\n text: string;\r\n current = 0;\r\n total = 0;\r\n private zoom = 100;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _searchService: SearchService,\r\n private _highlight: HighlightSearchPipe,\r\n private _zoomService: ZoomService) {\r\n _searchService.currentChange.subscribe((current: number) => {\r\n this.current = current;\r\n if (this.current !== 0) {\r\n this.moveToCurrent();\r\n }\r\n });\r\n\r\n _searchService.textChange.subscribe((text: string) => {\r\n this.text = text;\r\n this.highlightSearch();\r\n });\r\n\r\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\r\n _zoomService.zoomChange.subscribe((val: number) => {\r\n this.zoom = val ? val : this.zoom;\r\n });\r\n }\r\n\r\n private highlightSearch() {\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n this.cleanHighlight(el);\r\n if (this.text) {\r\n this.highlightEl(el);\r\n const count = el.querySelectorAll('.gd-highlight').length;\r\n this.total = count;\r\n } else {\r\n this.total = 0;\r\n }\r\n this._searchService.setTotal(this.total);\r\n }\r\n }\r\n\r\n private moveToCurrent() {\r\n if (this.current === 0) {\r\n return;\r\n }\r\n const currentZoom = this.getZoom();\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n el.querySelectorAll('.gd-highlight-select').forEach(function (value) {\r\n $(value).removeClass('gd-highlight-select');\r\n });\r\n const currentEl = el.querySelectorAll('.gd-highlight')[this.current - 1];\r\n $(currentEl).addClass('gd-highlight-select');\r\n if (currentEl) {\r\n const options = {\r\n left: 0,\r\n top: ($(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150,\r\n };\r\n // using polyfill\r\n el.parentElement.parentElement.scroll(options);\r\n }\r\n }\r\n }\r\n\r\n private highlightEl(el: Element) {\r\n const textNodes = $(el).find('*').contents().filter(function () {\r\n const nodeName = this.parentElement.nodeName.toLowerCase();\r\n const checkClass = (this).classList ? !(this).classList.contains('gd-highlight') : true;\r\n return this.nodeType === 3 &&\r\n this.textContent.trim().length !== 0 &&\r\n nodeName !== 'style' &&\r\n nodeName !== 'title' &&\r\n nodeName !== 'body' &&\r\n nodeName !== 'script' &&\r\n checkClass;\r\n });\r\n const text = this.text;\r\n const highlight = this._highlight;\r\n textNodes.each(function () {\r\n const $this = $(this);\r\n let content = $this.text();\r\n content = highlight.transform(content, text);\r\n $this.replaceWith(content);\r\n });\r\n el.normalize();\r\n }\r\n\r\n private cleanHighlight(el: HTMLElement) {\r\n const nodeListOf = el.querySelectorAll('.gd-highlight');\r\n for (let i = 0; i < nodeListOf.length; i++) {\r\n const element = nodeListOf.item(i);\r\n element.replaceWith((element).innerText);\r\n }\r\n el.normalize();\r\n }\r\n\r\n private getZoom() {\r\n return this.zoom / 100;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-tabbed-toolbars',\r\n templateUrl: './tabbed-toolbars.component.html',\r\n styleUrls: ['./tabbed-toolbars.component.less']\r\n})\r\nexport class TabbedToolbarsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class TabActivatorService {\r\n private _observer: Subject = new Subject();\r\n private readonly _activeTabChange: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get activeTabChange(): Observable {\r\n return this._activeTabChange;\r\n }\r\n\r\n changeActiveTab(tabId: string) {\r\n this._observer.next(tabId);\r\n }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {TabActivatorService} from \"../tab-activator.service\";\r\n\r\n@Component({\r\n selector: 'gd-tab',\r\n templateUrl: './tab.component.html',\r\n styleUrls: ['./tab.component.less']\r\n})\r\nexport class TabComponent implements OnInit {\r\n @Input() id: string;\r\n @Input() tabTitle: string;\r\n @Input() icon: string;\r\n @Input() disabled = false;\r\n @Input() active = false;\r\n @Input() content = true;\r\n\r\n constructor(private _tabActivatorService: TabActivatorService) {\r\n this._tabActivatorService.activeTabChange.subscribe((tabId: string) => {\r\n this.activation(tabId);\r\n });\r\n }\r\n\r\n private activation(tabId: string) {\r\n if (this.id === tabId) {\r\n this.active = true;\r\n } else {\r\n this.active = false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n selectTab() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this._tabActivatorService.changeActiveTab(this.id);\r\n }\r\n}\r\n","import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.less']\r\n})\r\nexport class TabsComponent {\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class Formatting {\r\n static DEFAULT: Formatting = new Formatting(10, '#000000', '#FFFFFF', false, false, false, 'Arial', false, \"\", \"\");\r\n\r\n constructor(fontSize: number, color: string, bgColor: string, bold: boolean, italic: boolean, underline: boolean, font: string, strikeout: boolean, align: string, list: string) {\r\n this.fontSize = fontSize;\r\n this.color = color;\r\n this.bgColor = bgColor;\r\n this.bold = bold;\r\n this.italic = italic;\r\n this.underline = underline;\r\n this.font = font;\r\n this.strikeout = strikeout;\r\n this.align = align;\r\n this.list = list;\r\n }\r\n\r\n bold: boolean;\r\n italic: boolean;\r\n underline: boolean;\r\n fontSize: number;\r\n color: string;\r\n bgColor: string;\r\n font: string;\r\n strikeout: boolean;\r\n align: string;\r\n list: string;\r\n}\r\n\r\nexport class FormattingService {\r\n private _observerBold: Subject = new Subject();\r\n private readonly _formatBoldChange: Observable = this._observerBold.asObservable();\r\n private _observerUnderline: Subject = new Subject();\r\n private readonly _formatUnderlineChange: Observable = this._observerUnderline.asObservable();\r\n private _observerUndo: Subject = new Subject();\r\n private readonly _undo: Observable = this._observerUndo.asObservable();\r\n private _observerRedo: Subject = new Subject();\r\n private readonly _redo: Observable = this._observerRedo.asObservable();\r\n private _observerItalic: Subject = new Subject();\r\n private readonly _formatItalicChange: Observable = this._observerItalic.asObservable();\r\n private _observerColor: Subject = new Subject();\r\n private readonly _formatColorChange: Observable = this._observerColor.asObservable();\r\n private _observerBgColor: Subject = new Subject();\r\n private readonly _formatBgColorChange: Observable = this._observerBgColor.asObservable();\r\n private _observerFontSize: Subject = new Subject();\r\n private readonly _formatFontSizeChange: Observable = this._observerFontSize.asObservable();\r\n private _observerFont: Subject = new Subject();\r\n private readonly _formatFontChange: Observable = this._observerFont.asObservable();\r\n private _observerStrikeout: Subject = new Subject();\r\n private readonly _formatStrikeoutChange: Observable = this._observerStrikeout.asObservable();\r\n private _observerAlign: Subject = new Subject();\r\n private readonly _formatAlignChange: Observable = this._observerAlign.asObservable();\r\n private _observerList: Subject = new Subject();\r\n private readonly _formatListChange: Observable = this._observerList.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get formatBoldChange() {\r\n return this._formatBoldChange;\r\n }\r\n\r\n get formatUnderlineChange() {\r\n return this._formatUnderlineChange;\r\n }\r\n\r\n get formatColorChange() {\r\n return this._formatColorChange;\r\n }\r\n\r\n get formatBgColorChange() {\r\n return this._formatBgColorChange;\r\n }\r\n\r\n get formatFontSizeChange() {\r\n return this._formatFontSizeChange;\r\n }\r\n\r\n get formatFontChange() {\r\n return this._formatFontChange;\r\n }\r\n\r\n get undo() {\r\n return this._undo;\r\n }\r\n\r\n get redo() {\r\n return this._redo;\r\n }\r\n\r\n get formatItalicChange() {\r\n return this._formatItalicChange;\r\n }\r\n\r\n get formatStrikeoutChange() {\r\n return this._formatStrikeoutChange;\r\n }\r\n\r\n get formatAlignChange() {\r\n return this._formatAlignChange;\r\n }\r\n\r\n get formatListChange() {\r\n return this._formatListChange;\r\n }\r\n\r\n static createFontSizeOption(val: number) {\r\n return {value: val, name: val + 'px', separator: false}\r\n }\r\n\r\n static getFontSizeOptions() {\r\n return [\r\n FormattingService.createFontSizeOption(8),\r\n FormattingService.createFontSizeOption(10),\r\n FormattingService.createFontSizeOption(12),\r\n FormattingService.createFontSizeOption(14),\r\n FormattingService.createFontSizeOption(16),\r\n FormattingService.createFontSizeOption(18),\r\n FormattingService.createFontSizeOption(20),\r\n FormattingService.createFontSizeOption(22),\r\n FormattingService.createFontSizeOption(24),\r\n ];\r\n }\r\n\r\n static createFontOption(val: string) {\r\n return {value: val, name: val, separator: false}\r\n }\r\n\r\n static getFontOptions() {\r\n const fonts = [\"Arial\", \"Calibri\", \"Century Gothic\", \"Comic Sans\", \"Consolas\", \"Courier\", \"Dejavu Sans\", \"Dejavu Serif\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Lucida Sans\",\r\n \"Myriad Pro\", \"Open Sans\", \"Palatino\", \"Tahoma\", \"Times New Roman\", \"Trebuchet\"];\r\n const fontOptions = [];\r\n fonts.forEach(font=> {\r\n fontOptions.push(this.createFontOption(font));\r\n })\r\n\r\n return fontOptions;\r\n }\r\n\r\n changeFormatFontSize($event: number) {\r\n this._observerFontSize.next($event);\r\n }\r\n\r\n changeFormatBold(bold: boolean) {\r\n this._observerBold.next(bold);\r\n }\r\n\r\n changeFormatUnderline(underline: boolean) {\r\n this._observerUnderline.next(underline);\r\n }\r\n\r\n Undo() {\r\n this._observerUndo.next();\r\n }\r\n\r\n Redo() {\r\n this._observerRedo.next();\r\n }\r\n\r\n changeFormatItalic(italic: boolean) {\r\n this._observerItalic.next(italic);\r\n }\r\n\r\n changeFormatColor(color: string) {\r\n this._observerColor.next(color);\r\n }\r\n\r\n changeFormatBgColor(bgcolor: string) {\r\n this._observerBgColor.next(bgcolor);\r\n }\r\n\r\n changeFormatFont(font: string) {\r\n this._observerFont.next(font);\r\n }\r\n\r\n changeFormatStrikeout(strikeout: boolean) {\r\n this._observerStrikeout.next(strikeout);\r\n }\r\n\r\n changeFormatAlign(align: string) {\r\n this._observerAlign.next(align);\r\n }\r\n\r\n changeFormatList(list: string) {\r\n this._observerList.next(list);\r\n }\r\n}\r\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\r\n\r\nconst DEFAULT_COLORS = ['#000000', '#993300', '#333300', '#000080', '#333399', '#333333',\r\n '#800000', '#FF6600', '#808000', '#008000', '#008080', '#0000FF',\r\n '#666699', '#808080', '#FF0000', '#FF9900', '#99CC00', '#339966',\r\n '#33CCCC', '#3366FF', '#800080', '#999999', '#FF00FF', '#FFCC00',\r\n '#FFFF00', '#00FF00', '#00FFFF', '#00CCFF', '#993366', '#C0C0C0',\r\n '#FF99CC', '#FFCC99', '#FFFF99', '#CCFFFF', '#99CCFF', '#FFFFFF'];\r\n\r\n\r\n@Component({\r\n selector: 'gd-color-picker',\r\n templateUrl: './color-picker.component.html',\r\n styleUrls: ['./color-picker.component.less']\r\n})\r\nexport class ColorPickerComponent implements OnInit {\r\n @Output() selectedColor = new EventEmitter();\r\n colors: any = DEFAULT_COLORS;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n select($event, color: string) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.selectedColor.emit(color);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {FormattingService} from \"./formatting.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BackFormattingService extends FormattingService {\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SelectionService {\r\n selection: Range;\r\n isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n\r\n restoreSelection() {\r\n if(this.selection && !this.selection.collapsed || this.isIE){\r\n this.putSelection(this.selection );\r\n }\r\n }\r\n\r\n captureSelection() {\r\n const selection = window.getSelection();\r\n if (selection.rangeCount > 0) {\r\n this.selection = selection.getRangeAt(0);\r\n }\r\n }\r\n\r\n private putSelection(selection) {\r\n const sel = window.getSelection();\r\n sel.removeAllRanges();\r\n sel.addRange(selection.cloneRange());\r\n }\r\n\r\n refreshSelection() {\r\n this.captureSelection();\r\n this.restoreSelection();\r\n }\r\n}\r\n","import {Directive, HostListener, OnInit} from '@angular/core';\r\nimport {FormattingService} from \"./formatting.service\";\r\nimport {BackFormattingService} from \"./back-formatting.service\";\r\nimport * as jquery from 'jquery';\r\nconst $ = jquery;\r\nimport {SelectionService} from './selection.service';\r\n\r\n@Directive({\r\n selector: '[gdFormatting]'\r\n})\r\nexport class FormattingDirective implements OnInit {\r\n\r\n private bold = false;\r\n private italic = false;\r\n private underline = false;\r\n private color: string;\r\n private bgColor: string;\r\n private font: string;\r\n private strikeout = false;\r\n private align: string;\r\n private list: string;\r\n private isIE = false;\r\n\r\n constructor(private _formattingService: FormattingService,\r\n private _backFormattingService: BackFormattingService,\r\n private _selectionService: SelectionService) {\r\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n }\r\n\r\n @HostListener('mouseup') mouseup() {\r\n\r\n this.bold = document.queryCommandState(\"bold\");\r\n this.strikeout = document.queryCommandState(\"strikeThrough\");\r\n this.italic = document.queryCommandState(\"italic\");\r\n this.bgColor = document.queryCommandValue(\"backColor\");\r\n this.underline = document.queryCommandState(\"underline\");\r\n this.align = this.checkJustify();\r\n this.list = this.checkList();\r\n\r\n //fix required by FireFox to get correct background color\r\n if (this.bgColor === \"transparent\") {\r\n this.bgColor = $(window.getSelection().focusNode.parentNode).css('background-color').toString();\r\n }\r\n this.font = document.queryCommandValue(\"FontName\").replace(/\"/g, '');\r\n if(this.font.split(\",\").length > 1){\r\n this.font = this.font.split(\",\")[0];\r\n }\r\n this.color = document.queryCommandValue(\"foreColor\");\r\n this._backFormattingService.changeFormatBold(this.bold);\r\n this._backFormattingService.changeFormatUnderline(this.underline);\r\n this._backFormattingService.changeFormatItalic(this.italic);\r\n this._backFormattingService.changeFormatColor(this.color);\r\n this._backFormattingService.changeFormatBgColor(this.bgColor);\r\n this._backFormattingService.changeFormatFontSize(this.reportFontSize());\r\n this._backFormattingService.changeFormatFont(this.font);\r\n this._backFormattingService.changeFormatStrikeout(this.strikeout);\r\n this._backFormattingService.changeFormatAlign(this.align);\r\n this._backFormattingService.changeFormatList(this.list);\r\n }\r\n\r\n private checkJustify() {\r\n let align = \"\";\r\n align = document.queryCommandState(\"justifyCenter\") ? \"center\" : align;\r\n align = document.queryCommandState(\"justifyFull\") ? \"full\" : align;\r\n align = document.queryCommandState(\"justifyLeft\") ? \"left\" : align;\r\n align = document.queryCommandState(\"justifyRight\") ? \"right\" : align;\r\n return align;\r\n }\r\n\r\n private checkList() {\r\n let list = \"\";\r\n list = document.queryCommandState(\"insertUnorderedList\") ? \"unordered\" : list;\r\n list = document.queryCommandState(\"insertOrderedList\") ? \"ordered\" : list;\r\n return list;\r\n }\r\n\r\n reportFontSize(): number {\r\n let containerEl, sel;\r\n if (window.getSelection) {\r\n sel = window.getSelection();\r\n if (sel.rangeCount) {\r\n containerEl = sel.getRangeAt(0).commonAncestorContainer;\r\n // Make sure we have an element rather than a text node\r\n if (containerEl.nodeType === 3) {\r\n containerEl = containerEl.parentNode;\r\n }\r\n }\r\n } else if ((sel = document.getSelection()) && sel.type !== \"Control\") {\r\n containerEl = sel.createRange().parentElement();\r\n }\r\n\r\n if (containerEl) {\r\n return parseInt(this.getComputedStyleProperty(containerEl, \"fontSize\").replace(\"px\", \"\"), 10);\r\n }\r\n }\r\n\r\n getComputedStyleProperty(el, propName) {\r\n if (window.getComputedStyle) {\r\n return window.getComputedStyle(el, null)[propName];\r\n } else if (el.currentStyle) {\r\n return el.currentStyle[propName];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._formattingService.undo.subscribe(() => {\r\n this.toggleUndo();\r\n });\r\n this._formattingService.redo.subscribe(() => {\r\n this.toggleRedo();\r\n });\r\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\r\n this.bold = bold;\r\n this.toggleBold();\r\n });\r\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\r\n this.underline = underline;\r\n this.toggleUnderline();\r\n });\r\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\r\n this.italic = italic;\r\n this.toggleItalic();\r\n });\r\n this._formattingService.formatColorChange.subscribe(((color: string) => {\r\n this.color = color;\r\n this.setColor(color);\r\n }));\r\n this._formattingService.formatBgColorChange.subscribe(((bgcolor: string) => {\r\n this.bgColor = bgcolor;\r\n this.setBgColor(bgcolor);\r\n }));\r\n this._formattingService.formatFontSizeChange.subscribe(((fontSize: number) => {\r\n this.setFontSize(fontSize);\r\n }));\r\n\r\n this._formattingService.formatFontChange.subscribe(((font: string) => {\r\n this.font = font;\r\n this.setFont(font);\r\n }));\r\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\r\n this.strikeout = strikeout;\r\n this.toggleStrikeout();\r\n });\r\n this._formattingService.formatAlignChange.subscribe((align: string) => {\r\n this.align = align;\r\n this.toggleAlign(this.align);\r\n });\r\n this._formattingService.formatListChange.subscribe((list: string) => {\r\n this.list = list;\r\n this.toggleList(this.list);\r\n });\r\n }\r\n\r\n private toggleBold() {\r\n document.execCommand(\"bold\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleUnderline() {\r\n document.execCommand(\"underline\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleItalic() {\r\n document.execCommand(\"italic\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private setBgColor(bgColor: string) {\r\n document.execCommand(\"backColor\", false, bgColor);\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private setColor(color: string) {\r\n document.execCommand(\"foreColor\", false, color);\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private setFontSize(fontSize: number) {\r\n if (document.getSelection().toString()) {\r\n let spanString = \"\" +\r\n document.getSelection() + \"\";\r\n if (this.bold) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n if (this.italic) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n if (this.underline) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n if (this.strikeout) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n document.execCommand('insertHTML', false, spanString);\r\n } else {\r\n document.execCommand(\"fontsize\", false, \"7\");\r\n }\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleUndo() {\r\n document.execCommand(\"undo\");\r\n }\r\n\r\n private toggleRedo() {\r\n document.execCommand(\"redo\");\r\n }\r\n\r\n private setFont(font: string) {\r\n document.execCommand(\"fontName\", false, font);\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleStrikeout() {\r\n document.execCommand(\"strikeThrough\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleAlign(align: string) {\r\n if(this.isIE) {\r\n this.toggleAlignIE(align);\r\n return;\r\n }\r\n document.execCommand(\"styleWithCSS\", false, 'true');\r\n switch (align) {\r\n case 'center':\r\n document.execCommand('justifyCenter');\r\n break;\r\n case 'full':\r\n document.execCommand('justifyFull');\r\n break;\r\n case 'left':\r\n document.execCommand('justifyLeft');\r\n break;\r\n case 'right':\r\n document.execCommand('justifyRight');\r\n break;\r\n }\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleAlignIE(align: string) {\r\n this._selectionService.restoreSelection()\r\n this._selectionService.captureSelection()\r\n const selection = window.getSelection().focusNode.parentNode.parentNode;\r\n if(align === \"full\"){\r\n align = \"justify\";\r\n }\r\n $(selection).css(\"text-align\", align);\r\n this._selectionService.refreshSelection()\r\n }\r\n\r\n private toggleList(list: string) {\r\n switch (list) {\r\n case 'unordered':\r\n document.execCommand('insertUnorderedList');\r\n break;\r\n case 'ordered':\r\n document.execCommand('insertOrderedList');\r\n break;\r\n }\r\n this._selectionService.refreshSelection();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-success-modal',\r\n templateUrl: './success-modal.component.html',\r\n styleUrls: ['./success-modal.component.less']\r\n})\r\nexport class SuccessModalComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EditHtmlService {\r\n private _observer: Subject = new Subject();\r\n private readonly _htmlContent: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get observer(): Subject {\r\n return this._observer;\r\n }\r\n\r\n get htmlContent(): Observable {\r\n return this._htmlContent;\r\n }\r\n\r\n}\r\n","import {Directive, HostListener, Input} from '@angular/core';\r\nimport {SelectionService} from './selection.service';\r\nimport {EditHtmlService} from \"./edit-html.service\";\r\n\r\n@Directive({\r\n selector: '[gdEditor]'\r\n})\r\nexport class EditorDirective {\r\n @Input() text: any;\r\n\r\n private isIE: boolean = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n\r\n constructor(private _selectionService: SelectionService, private _htmlService: EditHtmlService) {\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n public onInput(event) {\r\n this.text = event.target;\r\n if(this.isIE){\r\n if (this.text.innerHTML) {\r\n const html = this.text.innerHTML.toString();\r\n this._htmlService.observer.next(html);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('mouseleave', ['$event'])\r\n public onMouseleave(event) {\r\n this._selectionService.captureSelection();\r\n // this code is required to fix IE11 issue - it doesn't trigger blur event, since that we need to save updated HTML here\r\n if(this.isIE){\r\n this._htmlService.observer.next(event.target.innerHTML.toString());\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n public onBlur(event) {\r\n event.preventDefault();\r\n this._selectionService.restoreSelection();\r\n if (this.text.innerHTML) {\r\n const html = this.text.innerHTML.toString();\r\n this._htmlService.observer.next(html);\r\n } else {\r\n this._htmlService.observer.next(event.target.innerHTML.toString());\r\n }\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core'\r\nimport { HttpRequest } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class LoadingMaskService {\r\n onLoadingChanged: EventEmitter = new EventEmitter();\r\n\r\n private requests: HttpRequest[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n onRequestStart(req: HttpRequest): void {\r\n this.requests.push(req);\r\n this.notify();\r\n }\r\n\r\n onRequestFinish(req: HttpRequest): void {\r\n const index = this.requests.indexOf(req);\r\n if (index !== -1) {\r\n this.requests.splice(index, 1);\r\n }\r\n this.notify();\r\n }\r\n\r\n private notify(): void {\r\n this.onLoadingChanged.emit(this.requests.length !== 0);\r\n }\r\n}\r\n","import {AfterViewInit, Component, Input, OnInit} from '@angular/core';\r\nimport {LoadingMaskService} from \"../loading-mask.service\";\r\n\r\n@Component({\r\n selector: 'gd-loading-mask',\r\n templateUrl: './loading-mask.component.html',\r\n styleUrls: ['./loading-mask.component.less']\r\n})\r\n\r\nexport class LoadingMaskComponent implements OnInit, AfterViewInit {\r\n @Input() loadingMask = false;\r\n\r\n constructor(private _loadingMaskService: LoadingMaskService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._loadingMaskService\r\n .onLoadingChanged\r\n .subscribe((loading: boolean) => this.loadingMask = loading);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\r\nimport {Observable} from \"rxjs\";\r\nimport {finalize} from 'rxjs/operators'\r\nimport {LoadingMaskService} from \"./loading-mask.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadingMaskInterceptorService implements HttpInterceptor {\r\n\r\n constructor(private _loadingMaskService: LoadingMaskService) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n this._loadingMaskService.onRequestStart(req);\r\n const callback = () => this._loadingMaskService.onRequestFinish(req);\r\n return next.handle(req).pipe( finalize( callback));\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n HostListener,\r\n Inject,\r\n Input,\r\n Output,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\n\r\n\r\nconst horizontalAlignment = {\r\n center : {\r\n right: 'auto'\r\n },\r\n left : {\r\n right: '100%'\r\n },\r\n right : {\r\n right: '-100%'\r\n }\r\n};\r\n\r\nconst verticalAlignment = {\r\n center : {\r\n top : '0px',\r\n },\r\n top : {\r\n top : '-100%',\r\n right: '100%'\r\n },\r\n bottom : {\r\n top: 'autos'\r\n }\r\n};\r\n\r\n/**\r\n * DropDownToggleComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down-toggle',\r\n template: '',\r\n styleUrls: ['./drop-down.component.less'],\r\n encapsulation : ViewEncapsulation.None\r\n})\r\nexport class DropDownToggleComponent{\r\n @HostListener('click',['$event'])\r\n click = (event: any) => this.dropdown.toggle(event);\r\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\r\n}\r\n\r\n/**\r\n * DropDownItemsComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down-items',\r\n template: '
',\r\n styleUrls: ['./drop-down.component.less'],\r\n encapsulation : ViewEncapsulation.None\r\n})\r\nexport class DropDownItemsComponent{\r\n\r\n get horizontalAlign(){\r\n return horizontalAlignment[this.dropdown.getPlacement().h].right;\r\n }\r\n\r\n get verticalAlign(){\r\n return verticalAlignment[this.dropdown.getPlacement().v].top;\r\n }\r\n\r\n get isOpen(){\r\n return this.dropdown.open;\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\r\n\r\n onClickOutside(event : Event ){\r\n this.dropdown.close();\r\n }\r\n}\r\n\r\n/**\r\n * DropDownItemComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down-item',\r\n template: '
',\r\n styleUrls: ['./drop-down.component.less'],\r\n})\r\nexport class DropDownItemComponent{\r\n @HostBinding('class')\r\n class = 'drop-down-item';\r\n\r\n @Output()\r\n selected = new EventEmitter();\r\n\r\n @HostListener('click')\r\n click = () => this.selectEntry();\r\n\r\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\r\n\r\n selectEntry(){\r\n this.selected.next();\r\n this.dropdown.close();\r\n }\r\n}\r\n\r\n/**\r\n * DropDownComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down',\r\n template: '
',\r\n styleUrls: ['./drop-down.component.less'],\r\n encapsulation : ViewEncapsulation.None\r\n})\r\nexport class DropDownComponent{\r\n @Input()\r\n placement = {\r\n h: \"center\",\r\n v: \"bottom\"\r\n };\r\n\r\n\r\n @Input()\r\n @HostBinding('class.show')\r\n open = false;\r\n\r\n @HostBinding('class')\r\n class = 'drop-down';\r\n\r\n close(){\r\n this.open = false;\r\n }\r\n\r\n toggle(event : MouseEvent){\r\n event.stopPropagation();\r\n this.open = !this.open;\r\n document.body.click();\r\n }\r\n\r\n getPlacement(){\r\n return this.placement;\r\n }\r\n}\r\n","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {TopToolbarComponent} from './top-toolbar/top-toolbar.component';\r\nimport {SidePanelComponent} from './side-panel/side-panel.component';\r\nimport {ButtonComponent} from './button/button.component';\r\nimport {LogoComponent} from './logo/logo.component';\r\nimport {TooltipComponent} from './tooltip/tooltip.component';\r\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\r\nimport {library} from '@fortawesome/fontawesome-svg-core';\r\nimport {fas} from '@fortawesome/free-solid-svg-icons';\r\nimport {far} from '@fortawesome/free-regular-svg-icons';\r\nimport {Api, ConfigService,} from \"./config.service\";\r\nimport {ModalService} from \"./modal.service\";\r\nimport {ModalComponent} from './modal/modal.component';\r\nimport {BrowseFilesModalComponent} from './browse-files-modal/browse-files-modal.component';\r\nimport {FileModel, FileService, FileUtil} from \"./file.service\";\r\nimport {DocumentComponent} from './document/document.component';\r\nimport {PageComponent} from './page/page.component';\r\nimport {HighlightSearchPipe, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe} from \"./pipes\";\r\nimport {UploadFileZoneComponent} from './upload-file-zone/upload-file-zone.component';\r\nimport {UploadFilesService} from \"./upload-files.service\";\r\nimport {DndDirective} from './dnd.directive';\r\nimport {ScrollableDirective} from './scrollable.directive';\r\nimport {NavigateService} from \"./navigate.service\";\r\nimport {PagePreloadService} from \"./page-preload.service\";\r\nimport {ZoomDirective} from './zoom.directive';\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport {SelectComponent} from './select/select.component';\r\nimport {DisabledCursorDirective} from './disabled-cursor.directive';\r\nimport {RotationDirective} from './rotation.directive';\r\nimport {InitStateComponent} from './init-state/init-state.component';\r\nimport {RenderPrintService} from \"./render-print.service\";\r\nimport {RenderPrintDirective} from './render-print.directive';\r\nimport {ErrorModalComponent} from './error-modal/error-modal.component';\r\nimport {PasswordRequiredComponent} from './password-required/password-required.component';\r\nimport {ExceptionMessageService} from \"./exception-message.service\";\r\nimport {PasswordService} from \"./password.service\";\r\nimport {RotationService} from \"./rotation.service\";\r\nimport {ErrorInterceptorService} from \"./error-interceptor.service\";\r\nimport {CustomHammerConfig} from \"./custom-hammer-config\";\r\nimport {SearchComponent} from './search/search.component';\r\nimport {SearchableDirective} from './searchable.directive';\r\nimport {SearchService} from \"./search.service\";\r\nimport {WindowService} from \"./window.service\";\r\nimport {ViewportService} from \"./viewport.service\";\r\nimport {TabbedToolbarsComponent} from './tabbed-toolbars/tabbed-toolbars.component';\r\nimport {TabComponent} from \"./tab/tab.component\";\r\nimport {TabsComponent} from \"./tabs/tabs.component\";\r\nimport {FormattingService} from \"./formatting.service\";\r\nimport {ColorPickerComponent} from './color-picker/color-picker.component';\r\nimport {FormattingDirective} from './formatting.directive';\r\nimport {BackFormattingService} from \"./back-formatting.service\";\r\nimport {OnCloseService} from \"./on-close.service\";\r\nimport {SuccessModalComponent} from './success-modal/success-modal.component';\r\nimport {EditorDirective} from './editor.directive';\r\nimport {LoadingMaskComponent} from './loading-mask/loading-mask.component';\r\nimport {LoadingMaskService} from './loading-mask.service';\r\nimport {LoadingMaskInterceptorService} from \"./loading-mask-interceptor.service\";\r\nimport {TabActivatorService} from \"./tab-activator.service\";\r\nimport { DropDownComponent,DropDownItemComponent,DropDownItemsComponent,DropDownToggleComponent } from './drop-down/drop-down.component';\r\nimport { ClickOutsideModule } from 'ng-click-outside';\r\n\r\nconst providers = [ConfigService,\r\n Api,\r\n ModalService,\r\n FileService,\r\n FileModel,\r\n FileUtil,\r\n SanitizeHtmlPipe,\r\n SanitizeResourceHtmlPipe,\r\n SanitizeStylePipe,\r\n HighlightSearchPipe,\r\n UploadFilesService,\r\n RenderPrintService,\r\n NavigateService,\r\n PagePreloadService,\r\n ZoomService,\r\n ExceptionMessageService,\r\n PasswordService,\r\n RotationService,\r\n ErrorInterceptorService,\r\n CustomHammerConfig,\r\n SearchService,\r\n WindowService,\r\n ViewportService,\r\n FormattingService,\r\n BackFormattingService,\r\n OnCloseService,\r\n LoadingMaskInterceptorService,\r\n LoadingMaskService,\r\n TabActivatorService];\r\n\r\n@NgModule({\r\n imports: [CommonModule, FontAwesomeModule, ClickOutsideModule],\r\n declarations: [\r\n TopToolbarComponent,\r\n SidePanelComponent,\r\n ButtonComponent,\r\n LogoComponent,\r\n TooltipComponent,\r\n ModalComponent,\r\n BrowseFilesModalComponent,\r\n DocumentComponent,\r\n PageComponent,\r\n SanitizeHtmlPipe,\r\n SanitizeResourceHtmlPipe,\r\n SanitizeStylePipe,\r\n HighlightSearchPipe,\r\n UploadFileZoneComponent,\r\n DndDirective,\r\n ScrollableDirective,\r\n ZoomDirective,\r\n SelectComponent,\r\n DisabledCursorDirective,\r\n RotationDirective,\r\n InitStateComponent,\r\n RenderPrintDirective,\r\n ErrorModalComponent,\r\n PasswordRequiredComponent,\r\n SearchComponent,\r\n SearchableDirective,\r\n TabbedToolbarsComponent,\r\n TabComponent,\r\n TabsComponent,\r\n ColorPickerComponent,\r\n FormattingDirective,\r\n SuccessModalComponent,\r\n EditorDirective,\r\n LoadingMaskComponent,\r\n DropDownComponent,\r\n DropDownItemComponent,\r\n DropDownItemsComponent,\r\n DropDownToggleComponent\r\n ],\r\n exports: [\r\n TopToolbarComponent,\r\n SidePanelComponent,\r\n ButtonComponent,\r\n LogoComponent,\r\n TooltipComponent,\r\n ModalComponent,\r\n BrowseFilesModalComponent,\r\n DocumentComponent,\r\n PageComponent,\r\n SanitizeResourceHtmlPipe,\r\n SanitizeStylePipe,\r\n HighlightSearchPipe,\r\n SanitizeHtmlPipe,\r\n UploadFileZoneComponent,\r\n ScrollableDirective,\r\n SelectComponent,\r\n RotationDirective,\r\n InitStateComponent,\r\n RenderPrintDirective,\r\n ErrorModalComponent,\r\n PasswordRequiredComponent,\r\n SearchComponent,\r\n SearchableDirective,\r\n TabbedToolbarsComponent,\r\n TabComponent,\r\n TabsComponent,\r\n ColorPickerComponent,\r\n FormattingDirective,\r\n SuccessModalComponent,\r\n LoadingMaskComponent,\r\n DndDirective,\r\n DropDownComponent,\r\n DropDownItemComponent,\r\n DropDownItemsComponent,\r\n DropDownToggleComponent\r\n ],\r\n providers: providers\r\n})\r\nexport class CommonComponentsModule {\r\n constructor() {\r\n library.add(fas, far);\r\n }\r\n}\r\n"],"names":["Component","EventEmitter","Input","Output","HttpHeaders","Injectable","ElementRef","tslib_1.__extends","Observable","Subject","fromEvent","debounceTime","distinctUntilChanged","startWith","tap","$","Pipe","DomSanitizer","Directive","HostBinding","HostListener","tslib_1.__values","BehaviorSubject","map","catchError","HttpErrorResponse","throwError","Hammer.DIRECTION_ALL","HammerGestureConfig","ViewChild","finalize","ViewEncapsulation","Inject","forwardRef","library","fas","far","NgModule","CommonModule","FontAwesomeModule","ClickOutsideModule"],"mappings":"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"} \ No newline at end of file diff --git a/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.min.js b/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.min.js index 8b2ca28bd..68b50dfc9 100644 --- a/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.min.js +++ b/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common"),require("@fortawesome/angular-fontawesome"),require("@fortawesome/fontawesome-svg-core"),require("@fortawesome/free-solid-svg-icons"),require("@fortawesome/free-regular-svg-icons"),require("@angular/common/http"),require("rxjs"),require("jquery"),require("hammerjs"),require("rxjs/operators"),require("@angular/platform-browser"),require("ng-click-outside")):"function"==typeof define&&define.amd?define("@groupdocs.examples.angular/common-components",["exports","@angular/core","@angular/common","@fortawesome/angular-fontawesome","@fortawesome/fontawesome-svg-core","@fortawesome/free-solid-svg-icons","@fortawesome/free-regular-svg-icons","@angular/common/http","rxjs","jquery","hammerjs","rxjs/operators","@angular/platform-browser","ng-click-outside"],e):e(((t=t||self).groupdocs=t.groupdocs||{},t.groupdocs.examples=t.groupdocs.examples||{},t.groupdocs.examples.angular=t.groupdocs.examples.angular||{},t.groupdocs.examples.angular["common-components"]={}),t.ng.core,t.ng.common,t.angularFontawesome,t.fontawesomeSvgCore,t.freeSolidSvgIcons,t.freeRegularSvgIcons,t.ng.common.http,t.rxjs,t.jquery,t.Hammer,t.rxjs.operators,t.ng.platformBrowser,t.ngClickOutside)}(this,function(t,e,o,n,i,r,s,a,c,p,l,d,u,h){"use strict";var g=function(t,e){return(g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o])})(t,e)};function f(t,e){function o(){this.constructor=t}g(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}function m(t){var e="function"==typeof Symbol&&t[Symbol.iterator],o=0;return e?e.call(t):{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}}}var v=function(){function t(){}return t.decorators=[{type:e.Component,args:[{selector:"gd-top-toolbar",template:'
\n
\n \n
\n
\n',styles:[".top-toolbar{width:100%;height:60px;z-index:999;display:flex;align-items:center}.tools{width:100%;height:100%;display:flex;align-items:center}@media (max-width:1037px){.top-toolbar{height:60px}.tools{height:100%;overflow-x:auto;overflow-scrolling:touch;display:flex;align-items:center;transition:.3s ease-in-out;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.tools::-webkit-scrollbar{width:0;height:0;background-color:#3e4e5a}}"]}]}],t.ctorParameters=function(){return[]},t}(),b=function(){function t(){this.hideSidePanel=new e.EventEmitter}return t.prototype.openSidePanel=function(){this.hideSidePanel.emit(!0)},t.decorators=[{type:e.Component,args:[{selector:"gd-side-panel",template:'
\n
\n \n
{{title}}
\n
\n \n
\n
\n
\n \n
\n
\n',styles:[".gd-side-panel-wrapper{margin-right:0;width:334px;z-index:999;background-color:#fff;transition:margin-right .2s;display:flex;flex-flow:column;height:100vh}.gd-side-panel-wrapper .gd-side-panel-header{height:60px;background-color:#222e35;display:flex;flex-direction:row;flex-wrap:nowrap}.gd-side-panel-wrapper .gd-side-panel-header .icon{font-size:24px;color:#959da5;margin:12px 9px 18px 14px}.gd-side-panel-wrapper .gd-side-panel-header .title{font-size:14px;font-weight:700;color:rgba(237,240,242,.57);margin-top:20px;width:100%}.gd-side-panel-wrapper .gd-side-panel-header .close{font-size:24px!important;margin-top:12px}.gd-side-panel-wrapper .gd-side-panel-body{display:flex;flex-flow:column;overflow:visible;overflow-y:auto;overflow-x:hidden;height:100%}@media (max-width:1037px){.gd-side-panel-wrapper{width:100%;position:absolute;left:0;right:0;top:0;bottom:0}}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={title:[{type:e.Input}],icon:[{type:e.Input}],hideSidePanel:[{type:e.Output}]},t}(),x=function(){function t(){this.iconOnly=!0,this.intent="default",this.disabled=!1,this.toggle=!1,this.showToolTip=!1}return t.prototype.iconButtonClass=function(){return this.iconOnly?"icon-button":""},t.prototype.onHovering=function(){this.disabled||(this.className+=" active"),this.showToolTip=!0},t.prototype.onUnhovering=function(){this.disabled||(this.className=this.className.replace(" active","")),this.showToolTip=!1},t.decorators=[{type:e.Component,args:[{selector:"gd-button",template:'
\n \n \n
\n
\n',styles:[".icon-button{padding:0!important;margin:0 10px}.button{padding:0 10px;font-size:14px;color:#959da5;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:37px;height:37px;text-align:center;position:relative;white-space:nowrap}.button.inactive{cursor:not-allowed;opacity:.4}.button.active *{color:#ccd0d4}.button.primary{background-color:#3e4e5a;color:#fff}.button.primary.active{color:#fff;background-color:#688296}.button.brand{background-color:#25c2d4;color:#fff}.button.brand.active{color:#fff;background-color:#688296}.button .text{font-size:13px;padding-left:10px}@media (max-width:1037px){.button{font-size:22px}.arrow-button{margin:5px}}"]}]}],t.propDecorators={iconOnly:[{type:e.Input}],intent:[{type:e.Input}],disabled:[{type:e.Input}],icon:[{type:e.Input}],iconClass:[{type:e.Input}],tooltip:[{type:e.Input}],className:[{type:e.Input}],toggle:[{type:e.Input}]},t}(),y=function(){function t(){}return t.prototype.ngOnInit=function(){},t.decorators=[{type:e.Component,args:[{selector:"gd-logo",template:'\n\n',styles:[".logo{background-color:#25c2d4;height:60px;display:flex;align-items:center;justify-content:center}.text{color:#fff;font-size:15px;text-transform:uppercase;margin:0 14px}.icon{display:none;font-size:32px;color:rgba(255,255,255,.5);margin:14px}@media (max-width:1037px){.logo{width:60px;height:60px}.logo .text{display:none}.logo .icon{display:block}}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={logo:[{type:e.Input}],icon:[{type:e.Input}]},t}(),w=function(){function t(){this.visibility="hidden"}return Object.defineProperty(t.prototype,"show",{set:function(t){this.visibility=t?"shown":"hidden"},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){},t.decorators=[{type:e.Component,args:[{selector:"gd-tooltip",template:'\n',styles:['.tooltip{position:absolute;margin-top:37px;width:100px;background-color:#000;color:#fff;text-align:center;border-radius:0;padding:5px 0;z-index:1;margin-left:-66px;font-size:10px;height:11px;line-height:11px}.tooltip.hidden{visibility:hidden}.tooltip.shown{visibility:visible}.shown:after{content:" ";position:absolute;bottom:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-bottom-color:#000}']}]}],t.ctorParameters=function(){return[]},t.propDecorators={text:[{type:e.Input}],show:[{type:e.Input}]},t}(),C=function(){function t(){}return t.VIEWER_APP="/viewer",t.EDITOR_APP="/editor",t.COMPARISON_APP="/comparison",t.CONVERSION_APP="/conversion",t.DEFAULT_API_ENDPOINT=window.location.href,t.LOAD_FILE_TREE="/loadFileTree",t.LOAD_CONFIG="/loadConfig",t.LOAD_DOCUMENT_DESCRIPTION="/loadDocumentDescription",t.LOAD_DOCUMENT_PAGE="/loadDocumentPage",t.ROTATE_DOCUMENT_PAGE="/rotateDocumentPages",t.UPLOAD_DOCUMENTS="/uploadDocument",t.DOWNLOAD_DOCUMENTS="/downloadDocument",t.LOAD_PRINT="/loadPrint",t.LOAD_PRINT_PDF="/printPdf",t.LOAD_THUMBNAILS="/loadThumbnails",t.LOAD_FORMATS="/loadFormats",t.SAVE_FILE="/saveFile",t.COMPARE_FILES="/compare",t.CONVERT_FILE="/convert",t.httpOptionsJson={headers:new a.HttpHeaders({"Content-Type":"application/json"})},t.httpOptionsJsonResponseTypeBlob={headers:new a.HttpHeaders({"Content-Type":"application/json"}),responseType:"blob"},t}(),S=function(){function t(){this.apiEndpoint=C.DEFAULT_API_ENDPOINT}return Object.defineProperty(t.prototype,"apiEndpoint",{get:function(){return this._apiEndpoint},set:function(t){this._apiEndpoint=t&&t.trim().endsWith("/")?t.substring(0,t.length-1):t},enumerable:!0,configurable:!0}),t.prototype.getConfigEndpoint=function(t){return(this.apiEndpoint.endsWith(t)?this.apiEndpoint:this.apiEndpoint+t)+C.LOAD_CONFIG},t.prototype.getViewerApiEndpoint=function(){return this._apiEndpoint.endsWith(C.VIEWER_APP)?this._apiEndpoint:this._apiEndpoint+C.VIEWER_APP},t.prototype.getEditorApiEndpoint=function(){return this._apiEndpoint.trim().endsWith(C.EDITOR_APP)?this._apiEndpoint:this._apiEndpoint+C.EDITOR_APP},t.prototype.getComparisonApiEndpoint=function(){return this._apiEndpoint.trim().endsWith(C.COMPARISON_APP)?this._apiEndpoint:this._apiEndpoint+C.COMPARISON_APP},t.prototype.getConversionApiEndpoint=function(){return this._apiEndpoint.trim().endsWith(C.CONVERSION_APP)?this._apiEndpoint:this._apiEndpoint+C.CONVERSION_APP},t.decorators=[{type:e.Injectable}],t.ctorParameters=function(){return[]},t}(),_=function(){function t(){}return t.PasswordRequired="gd-password-required",t.ErrorMessage="gd-error-message",t.BrowseFiles="gd-browse-files",t.CreateDocument="gd-create-document",t.OperationSuccess="gd-success-modal",t}(),P=function(){function t(){this.modals=[]}return t.prototype.add=function(t){this.modals.push(t)},t.prototype.remove=function(t){this.modals=this.modals.filter(function(e){return e.id!==t})},t.prototype.open=function(t){var e=this.modals.filter(function(e){return e.id===t})[0];e&&e.open()},t.prototype.close=function(t){var e=this.modals.filter(function(e){return e.id===t})[0];e&&e.close()},t}(),O=function(){function t(t,o){this.modalService=t,this.visible=new e.EventEmitter,this.visibility=!1,this.element=o.nativeElement}return t.prototype.ngOnInit=function(){this.id?(document.body.appendChild(this.element),this.modalService.add(this)):console.error("modal must have an id")},t.prototype.ngOnDestroy=function(){this.modalService.remove(this.id),this.element.remove()},t.prototype.open=function(){this.visibility=!0,this.visible.emit(!0)},t.prototype.close=function(){event.preventDefault(),event.stopPropagation(),this.visibility=!1,this.visible.emit(!1)},t.prototype.onClose=function(t){t.stopPropagation(),t&&t.target&&"modalDialog"===t.target.id&&this.close()},t.decorators=[{type:e.Component,args:[{selector:"gd-modal",template:'
\n
\n
\n
\n\n
\n
×
\n

{{title}}

\n
\n\n
\n \n
\n\n \n
\x3c!-- /.modal-content --\x3e\n
\x3c!-- /.modal-dialog --\x3e \n\n',styles:["@import url(https://fonts.googleapis.com/css?family=Montserrat&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.gd-modal{overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0;background-color:rgba(0,0,0,.5)}.gd-modal-dialog{box-shadow:#0005 0 0 10px;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1051}.gd-modal-content{background-color:#fff;height:100%;display:flex;flex-direction:column}.gd-modal-header{height:60px;padding:0 12px 0 24px;background-color:#3e4e5a}.gd-modal-close{position:absolute;right:12px;top:12px;cursor:pointer;color:#fff;width:37px;height:37px;text-align:center}.gd-modal-close span{font-size:18px;font-weight:900;height:19px;width:10px;line-height:36px}.gd-modal-title{font-size:16px;font-weight:400;padding-top:17px;padding-bottom:22px;margin:0;color:#fff}.gd-modal-body{background-color:#fff;overflow:hidden;overflow-y:auto;height:calc(100% - 75px)}.gd-modal-footer{height:auto}.gd-modal-footer>.btn{float:right;margin:20px 15px;padding:10px 20px;cursor:pointer;font-size:12px}@media (max-width:1037px){.gd-modal-dialog{width:100%;height:100%}.gd-modal-body{height:100%}}"]}]}],t.ctorParameters=function(){return[{type:P},{type:e.ElementRef}]},t.propDecorators={id:[{type:e.Input}],title:[{type:e.Input}],visible:[{type:e.Output}]},t}(),k=function(){},F=function(){},I=function(t,e){this.guid=t,this.password=e},z=function(t){function e(e,o,n){var i=t.call(this,e,o)||this;return i.content=n,i}return f(e,t),e}(I),E=function(){this.printAllowed=!0},D=function(){},j=function(){function t(){}return t.BadRequest=400,t.Unauthorized=401,t.Forbidden=403,t.NotFound=404,t.TimeOut=408,t.Conflict=409,t.InternalServerError=500,t}(),T=function(){function t(){}return t.find=function(e,o){if(e&&!o){var n=e.split("."),i=n.pop().toLowerCase();return void 0===t.map[i]?n.length>0?t.map.unknown:t.map.folder:t.map[i]}return t.map.folder},t.map={folder:{format:"",icon:"folder"},pdf:{format:"Portable Document Format",icon:"file-pdf",unit:"pt"},doc:{format:"Microsoft Word",icon:"file-word",unit:"pt"},docx:{format:"Microsoft Word",icon:"file-word",unit:"pt"},docm:{format:"Microsoft Word",icon:"file-word",unit:"pt"},dot:{format:"Microsoft Word",icon:"file-word",unit:"pt"},dotx:{format:"Microsoft Word",icon:"file-word",unit:"pt"},dotm:{format:"Microsoft Word",icon:"file-word",unit:"pt"},xls:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},xlsx:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},xlsm:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},xlsb:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},xls2003:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},xltx:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},xltm:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},ppt:{format:"Microsoft PowerPoint",icon:"file-powerpoint",unit:"pt"},pptx:{format:"Microsoft PowerPoint",icon:"file-powerpoint",unit:"pt"},pps:{format:"Microsoft PowerPoint",icon:"file-powerpoint",unit:"pt"},ppsx:{format:"Microsoft PowerPoint",icon:"file-powerpoint",unit:"pt"},vsd:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vdx:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vss:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vsx:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vst:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vtx:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vsdx:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vdw:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vstx:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vssx:{format:"Microsoft Visio",icon:"file-code",unit:"px"},mpp:{format:"Microsoft Project",icon:"file-alt",unit:"pt"},mpt:{format:"Microsoft Project",icon:"file-alt",unit:"pt"},msg:{format:"Microsoft Outlook",icon:"file-alt",unit:"pt"},eml:{format:"Microsoft Outlook",icon:"file-alt",unit:"pt"},emlx:{format:"Microsoft Outlook",icon:"file-alt",unit:"pt"},one:{format:"Microsoft OneNote",icon:"file-word",unit:"pt"},odt:{format:"Open Document Text",icon:"file-word",unit:"pt"},ott:{format:"Open Document Text Template",icon:"file-word",unit:"pt"},ods:{format:"Open Document Spreadsheet",icon:"file-excel",unit:"px"},odp:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},otp:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},ots:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},potx:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},potm:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},pptm:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},ppsm:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},rtf:{format:"Rich Text Format",icon:"file-alt",unit:"pt"},txt:{format:"Plain Text File",icon:"file-alt",unit:"pt"},csv:{format:"Comma-Separated Values",icon:"file-excel",unit:"px"},html:{format:"HyperText Markup Language",icon:"file-word",unit:"pt"},mht:{format:"HyperText Markup Language",icon:"file-word",unit:"pt"},mhtml:{format:"HyperText Markup Language",icon:"file-word",unit:"pt"},xml:{format:"Extensible Markup Language",icon:"file-word",unit:"pt"},xps:{format:"XML Paper Specification",icon:"file-word",unit:"pt"},dxf:{format:"AutoCAD Drawing File Format",icon:"file-image",unit:"px"},dwg:{format:"AutoCAD Drawing File Format",icon:"file-image",unit:"px"},bmp:{format:"Bitmap Picture",icon:"file-image",unit:"px"},gif:{format:"Graphics Interchange Format",icon:"file-image",unit:"px"},jpg:{format:"Joint Photographic Experts Group",icon:"file-image",unit:"px"},jpe:{format:"Joint Photographic Experts Group",icon:"file-image",unit:"px"},jpeg:{format:"Joint Photographic Experts Group",icon:"file-image",unit:"px"},jfif:{format:"Joint Photographic Experts Group",icon:"file-image",unit:"px"},png:{format:"Portable Network Graphics",icon:"file-image",unit:"px"},tiff:{format:"Tagged Image File Format",icon:"file-image",unit:"px"},tif:{format:"Tagged Image File Format",icon:"file-image",unit:"px"},psd:{format:"Tagged Image File Format",icon:"file-image",unit:"px"},svg:{format:"Tagged Image File Format",icon:"file-image",unit:"px"},jp2:{format:"Tagged Image File Format",icon:"file-image",unit:"px"},epub:{format:"Electronic Publication",icon:"file-pdf",unit:"pt"},ico:{format:"Windows Icon",icon:"file-image",unit:"px"},webp:{format:"Compressed Image",icon:"file-image",unit:"px"},mobi:{format:"Mobipocket eBook",icon:"file-pdf",unit:"pt"},tex:{format:"LaTeX Source Document",icon:"file-pdf",unit:"pt"},djvu:{format:"Multi-Layer Raster Image",icon:"file-alt",unit:"pt"},unknown:{format:"This format is not supported",icon:"file"}},t}(),M=function(){},L=function(){function t(){var t=this;this._uploadsChange=new c.Observable(function(e){return t._observer=e})}return Object.defineProperty(t.prototype,"uploadsChange",{get:function(){return this._uploadsChange},enumerable:!0,configurable:!0}),t.prototype.changeFilesList=function(t){this._observer.next(t)},t}(),A=p,R=[{name:"Disc",icon:"hdd"},{name:"URL",icon:"link"}],H=function(){function t(t){this._uploadService=t,this.uploads=R,this.selectedFileGuid=new e.EventEmitter,this.selectedDirectory=new e.EventEmitter,this.urlForUpload=new e.EventEmitter,this.closing=new e.EventEmitter,this.showUploadUrl=!1,this.showUploadFile=!1}return t.prototype.ngOnInit=function(){},t.prototype.getSize=function(t){var e=t/1024/1024;if(e>1)return Math.round(100*e)/100+" MB";var o=t/1024;return o>1?Math.round(100*o)/100+" KB":t+" Bytes"},t.prototype.getFormatName=function(t){return T.find(t.name,t.directory).format},t.prototype.getFormatIcon=function(t){return T.find(t.name,t.directory).icon},t.prototype.choose=function(t){this.selectedFile=t,t.directory||t.isDirectory?this.selectedDirectory.emit(t.name):this.selectedFileGuid.emit(t.guid)},t.prototype.goUp=function(){if(this.selectedFile){var t=this.selectedFile.guid;t=t.length>0&&-1===t.indexOf("/")?"":t.replace(/\/[^\/]+\/?$/,""),this.selectedDirectory.emit(t)}},t.prototype.selectUpload=function(t){"URL"===t?this.showUploadUrl=!0:(this.showUploadUrl=!1,A("#gd-upload-input").trigger("click"))},t.prototype.refresh=function(t){t?(this.files=null,this.selectedDirectory.emit(""),this.showUploadUrl=!1,this.selectedFile=null):this.closing.emit(!0)},t.prototype.showSpinner=function(){return!this.files},t.prototype.uploadUrl=function(t){t&&(this.urlForUpload.emit(t),this.cleanUpload())},t.prototype.handleFileInput=function(t){this._uploadService.changeFilesList(t)},t.prototype.cleanUpload=function(){this.showUploadFile=!1,this.showUploadUrl=!1},t.decorators=[{type:e.Component,args:[{selector:"gd-browse-files-modal",template:'\n
\n
\n \n Drop file here to upload\n
\n
\n
\n \n
\n
\n \n \n \n Upload file\n \n \n \n \n \n
{{item.name}}
\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
FILE
\n
SIZE
\n
\n
\n
\n
\n
\n
\n \n
\n
..
\n
\n
\n
\n \n
\n
{{file?.name}}
\n
{{getFormatName(file)}}
\n
\n
\n
\n {{getSize(file?.size)}}\n
\n
\n
\n
\n
\n \n  Loading... Please wait.\n
\n
\n
\n',styles:[".gd-modal-table{width:100%;text-align:left}#gd-browse-section{width:1036px;height:561px;overflow-y:auto}.list-files-header{height:60px;color:#6e6e6e;font-size:13px;font-weight:700;background-color:#f4f4f4;margin-top:24px}.list-files-header.upload-url{margin-top:20px}.header-name{padding-left:24px;width:90%;line-height:60px}.header-size{padding-right:27px;line-height:60px}.file-size,.header-size{width:10%;color:#777;text-align:right}.file-description{display:flex;width:90%;padding:18px 0 18px 24px;font-size:14px;flex:1;cursor:pointer;overflow:hidden}.file-size{font-size:12px;padding:0 27px 0 0;width:10%;line-height:79px}.list-files-header,.list-files-lines{display:flex;width:100%;justify-content:space-between}.gd-modal-spinner{background-color:#fff;width:100%;height:20px;text-align:center;font-size:16px}.gd-cancel-button{padding:7px;background:0 0;width:28px;overflow:hidden}.gd-cancel-button i{font-size:21px}.gd-file-name{white-space:nowrap;overflow:hidden;width:100%;text-overflow:ellipsis}.go-up{display:flex;font-size:26px;cursor:pointer;color:#4b566c;height:79px}.go-up-dots{margin-left:20px;margin-top:22px;font-size:16px}.go-up-icon{display:block;padding:18px 0 18px 24px}.upload-panel{display:flex;position:relative;width:100%}.upload-panel .context{display:flex;flex-direction:column;width:100%;margin-left:24px;margin-top:24px;margin-right:24px}.upload-panel .context .context-actions{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-actions :last-child{margin-right:0}.upload-panel .context .context-actions ::ng-deep .button{height:37px;width:96px;padding:0;justify-content:center}.upload-panel .context .context-actions ::ng-deep .button ::ng-deep .text{font-size:10px}.upload-panel .context .context-panel{display:flex;flex-direction:row;width:100%;margin-top:20px}.upload-panel .context .context-panel .upload-url{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-panel .upload-url .url-input{width:100%;height:27px;border:1px solid #25c2d4;font-size:14px;padding-left:6px}.upload-panel .context .context-panel .upload-url .url-check{width:31px;height:31px;color:#fff;font-size:15px;background-color:#25c2d4}.upload-panel .context .context-panel .upload-url .url-check .ng-fa-icon{display:block;padding:8px}.upload-panel gd-drop-down{margin-right:10px}.file-description .ng-fa-icon.fa-file-pdf{color:#e04e4e}.file-description .ng-fa-icon.fa-file-word{color:#539cf0}.file-description .ng-fa-icon.fa-file-powerpoint{color:#e29e1e}.file-description .ng-fa-icon.fa-file-excel{color:#7cbc46}.file-description .ng-fa-icon.fa-file-image{color:#c375ed}.file-description .ng-fa-icon.fa-file,.file-description .ng-fa-icon.fa-file-alt,.file-description .ng-fa-icon.fa-file-text .fa-folder{color:#4b566c}.file-description .ng-fa-icon{font-size:32px}.file-name{font-size:16px;color:#6e6e6e;overflow:hidden;text-overflow:ellipsis}.file-name-format{padding-left:11px;overflow:hidden}.file-format{font-size:10px;padding-top:3px;color:#acacac}.go-up,.list-files-lines{border-bottom:1px solid #e7e7e7}.list-files-lines:hover{background-color:#e5e5e5}.gd-dnd-wrap{background-color:#fff;cursor:default;position:absolute;width:100%;height:calc(100% - 60px);background:rgba(255,255,255,.7);z-index:1;display:flex;justify-content:center;align-items:center}.dnd-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;top:259px;position:absolute}.dnd-wrapper .text{color:#6e6e6e;font-size:14px}.dnd-wrapper .icon{display:flex;width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}@media (max-width:1037px){.file-size,.header-size{width:18%}.gd-dnd-wrap{width:95%}#gd-browse-section{width:100%;height:calc(100% - 146px)}}"]}]}],t.ctorParameters=function(){return[{type:L}]},t.propDecorators={files:[{type:e.Input}],uploadConfig:[{type:e.Input}],selectedFileGuid:[{type:e.Output}],selectedDirectory:[{type:e.Output}],urlForUpload:[{type:e.Output}],closing:[{type:e.Output}]},t}(),U=function(){function t(){this._observer=new c.Subject,this._zoomChange=this._observer.asObservable()}return Object.defineProperty(t.prototype,"zoom",{get:function(){return this._zoom},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"zoomChange",{get:function(){return this._zoomChange},enumerable:!0,configurable:!0}),t.prototype.changeZoom=function(t){this._zoom=t,this._observer.next(t)},t.prototype.createZoomOption=function(t,e,o){return void 0===o&&(o=!1),{value:t,name:e,separator:o}},t.prototype.zoomOptions=function(t,e){return[this.createZoomOption(25,"25%"),this.createZoomOption(50,"50%"),this.createZoomOption(100,"100%"),this.createZoomOption(150,"150%"),this.createZoomOption(200,"200%"),this.createZoomOption(300,"300%"),this.createZoomOption(0,"",!0),this.createZoomOption(t,"Fit Width"),this.createZoomOption(e,"Fit Height")]},t}(),B=function(){function t(){var t=this;this.resizeSubject=new c.Subject,this.width=window.innerWidth,this.height=window.innerHeight,this._resize$=c.fromEvent(window,"resize").pipe(d.debounceTime(200),d.distinctUntilChanged(),d.startWith({target:{innerWidth:window.innerWidth,innerHeight:window.innerHeight}}),d.tap(function(e){t.resizeSubject.next(e.target),t.width=e.target.innerWidth,t.height=e.target.innerHeight})),this._resize$.subscribe()}return Object.defineProperty(t.prototype,"onResize",{get:function(){return this.resizeSubject.asObservable()},enumerable:!0,configurable:!0}),t.prototype.isMobile=function(){return this.width<=425},t.prototype.isTablet=function(){return this.width<=1024},t.prototype.isDesktop=function(){return!this.isMobile()&&!this.isTablet()},t.prototype.isEdge=function(){return window.navigator.userAgent.toLowerCase().indexOf("edge")>-1},t.prototype.isFirefox=function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1},t}(),W=p,N=function(){function t(t,e,o){var n=this;this._elementRef=t,this._zoomService=e,this._windowService=o,this.wait=!1,this.docWidth=null,this.docHeight=null,this.viewportWidth=null,this.viewportHeight=null,this.scale=null,this.lastScale=null,this.container=null,this.doc=null,this.x=0,this.lastX=0,this.y=0,this.lastY=0,this.pinchCenter=null,this.pinchCenterOffset=null,this.curWidth=0,this.curHeight=0,e.zoomChange.subscribe(function(t){n.zoom=t}),this.isDesktop=o.isDesktop()}return t.prototype.ngOnInit=function(){},t.prototype.ngOnChanges=function(){this._elementRef.nativeElement.children.item(0).children.item(0).style.transform=""},t.prototype.ngAfterViewInit=function(){this.doc=this._elementRef.nativeElement.children.item(0).children.item(0),this.container=this._elementRef.nativeElement,this.docWidth=this.doc.clientWidth,this.docHeight=this.doc.clientHeight,this.viewportWidth=this.doc.offsetWidth,this.scale=this.viewportWidth/this.docWidth*this._zoomService.zoom/100,this.lastScale=this.scale,this.viewportHeight=this.container.offsetHeight,this.curWidth=this.docWidth*this.scale,this.curHeight=this.docHeight*this.scale;new l(this.container)},t.prototype.ifExcel=function(){return"Microsoft Excel"===T.find(this.file.guid,!1).format},t.prototype.getDimensionWithUnit=function(t){return t+T.find(this.file.guid,!1).unit},t.prototype.ngAfterViewChecked=function(){var t=this._elementRef.nativeElement.querySelectorAll(".gd-wrapper").item(0);t&&W(t).trigger("focus")},t.prototype.absolutePosition=function(t){for(var e=0,o=0;null!==t;)e+=t.offsetLeft,o+=t.offsetTop,t=t.offsetParent;return{x:e,y:o}},t.prototype.restrictRawPos=function(t,e,o){return t0&&(t=0),t},t.prototype.updateLastPos=function(){this.lastX=this.x,this.lastY=this.y},t.prototype.translate=function(t,e){var o=this.restrictRawPos(this.lastX+t/this.scale,Math.min(this.viewportWidth,this.curWidth),this.docWidth);this.x=o,this.container.scrollLeft=-Math.ceil(o*this.scale);var n=this.restrictRawPos(this.lastY+e/this.scale,Math.min(this.viewportHeight,this.curHeight),this.docHeight);this.y=n,this.container.scrollTop=-Math.ceil(n*this.scale),this.doc.style.transform="scale("+this.scale+")"},t.prototype.startZoom=function(t){this.scale=this.lastScale*t,this.curWidth=this.docWidth*this.scale,this.curHeight=this.docHeight*this.scale,this.translate(0,0)},t.prototype.rawCenter=function(t){var e=this.absolutePosition(this.container),o=window.pageXOffset?window.pageXOffset:document.body.scrollLeft,n=window.pageYOffset?window.pageYOffset:document.body.scrollTop;return{x:-this.x+(t.center.x-e.x+o)/this.scale,y:-this.y+(t.center.y-e.y+n)/this.scale}},t.prototype.updateLastScale=function(){this.lastScale=this.scale},t.prototype.zoomAround=function(t,e,o,n){this.startZoom(t);var i=-this.x+Math.min(this.viewportWidth,this.curWidth)/2/this.scale,r=-this.y+Math.min(this.viewportHeight,this.curHeight)/2/this.scale,s=(i-e)*this.scale,a=(r-o)*this.scale;this.translate(s,a),n||(this.updateLastScale(),this.updateLastPos())},t.prototype.onPinch=function(t){if(null===this.pinchCenter){this.pinchCenter=this.rawCenter(t);var e=this.pinchCenter.x*this.scale-(-this.x*this.scale+Math.min(this.viewportWidth,this.curWidth)/2),o=this.pinchCenter.y*this.scale-(-this.y*this.scale+Math.min(this.viewportHeight,this.curHeight)/2);this.pinchCenterOffset={x:e,y:o}}var n=this.scale*t.scale,i={x:(this.pinchCenter.x*n-this.pinchCenterOffset.x)/n,y:(this.pinchCenter.y*n-this.pinchCenterOffset.y)/n};this.zoomAround(t.scale,i.x,i.y,!0)},t.prototype.onPinchEnd=function(t){this.updateLastScale(),this.updateLastPos(),this.pinchCenter=null},t.prototype.onPan=function(t){},t.prototype.onPanEnd=function(t){},t.prototype.onDoubleTap=function(t){if(!this.isDesktop&&2===t.tapCount){var e=this.rawCenter(t);this.zoomAround(2,e.x,e.y,!1)}},t.decorators=[{type:e.Component,args:[{selector:"gd-document",template:'
Please wait...
\n
\n
\n
\n \n
\n
\n \n
\n',styles:[":host{flex:1;transition:.4s;background-color:#e7e7e7;height:100%;overflow:scroll}.page{display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.page.excel{overflow:auto}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:flex-start}.panzoom.mobile{overflow:scroll}@media (max-width:1037px){.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"]}]}],t.ctorParameters=function(){return[{type:e.ElementRef},{type:U},{type:B}]},t.propDecorators={mode:[{type:e.Input}],preloadPageCount:[{type:e.Input}],file:[{type:e.Input}]},t}(),q=function(){function t(){}return t.prototype.ngOnInit=function(){/*@cc_on!@*/!!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent)&&0===this.number&&(this.editable=!1)},t.prototype.ngOnChanges=function(t){this.data=null!==this.data?this.data.replace(/>\s+<").replace(/\uFEFF/g,""):null;this.imgData="data:image/png;base64,",this.isHtml||(this.imgData+=this.data)},t.decorators=[{type:e.Component,args:[{selector:"gd-page",template:'
\n
\n \n
\n \n  Loading... Please wait.\n
\n
\n',styles:[".gd-page-spinner{margin-top:150px;text-align:center}.gd-wrapper{width:inherit;height:inherit}.gd-wrapper div{width:100%}/deep/ .gd-highlight{background-color:#ff0}/deep/ .gd-highlight-select{background-color:#ff9b00}.gd-page-image{height:100%!important;width:100%!important}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={angle:[{type:e.Input}],width:[{type:e.Input}],height:[{type:e.Input}],number:[{type:e.Input}],data:[{type:e.Input}],isHtml:[{type:e.Input}],editable:[{type:e.Input}]},t}(),V=function(){function t(t){this.sanitizer=t}return t.prototype.transform=function(t){return this.sanitizer.bypassSecurityTrustHtml(t)},t.decorators=[{type:e.Pipe,args:[{name:"safeHtml"}]}],t.ctorParameters=function(){return[{type:u.DomSanitizer}]},t}(),$=function(){function t(t){this.sanitizer=t}return t.prototype.transform=function(t){return this.sanitizer.bypassSecurityTrustResourceUrl(t)},t.decorators=[{type:e.Pipe,args:[{name:"safeResourceHtml"}]}],t.ctorParameters=function(){return[{type:u.DomSanitizer}]},t}(),Z=function(){function t(t){this.sanitizer=t}return t.prototype.transform=function(t){return this.sanitizer.bypassSecurityTrustStyle(t)},t.decorators=[{type:e.Pipe,args:[{name:"safeStyle"}]}],t.ctorParameters=function(){return[{type:u.DomSanitizer}]},t}(),G=function(){function t(){}return t.prototype.transform=function(t,e){if(!e)return t;var o=new RegExp(e,"gi");return t.replace(o,"$&")},t.decorators=[{type:e.Pipe,args:[{name:"highlight"}]}],t}(),J=function(){function t(t){this._uploadService=t,this.closeUpload=new e.EventEmitter}return t.prototype.ngOnInit=function(){},t.prototype.handleFileInput=function(t){this._uploadService.changeFilesList(t),this.onCloseUpload()},t.prototype.onCloseUpload=function(){this.closeUpload.emit(!0)},t.prototype.close=function(t){"gd-dropZone"===t.target.id&&this.onCloseUpload()},t.decorators=[{type:e.Component,args:[{selector:"gd-upload-file-zone",template:'
\n
\n \n
\n

Drag & Drop your files here

\n

OR

\n
\n \n
\n
\n',styles:[".gd-drag-n-drop-wrap{border:2px dashed #ccc;background-color:#f8f8f8;text-align:center;cursor:default;position:absolute;width:-webkit-fill-available;left:1px;display:flex;align-content:center;flex-direction:column;justify-content:center;opacity:.9;z-index:1}.gd-drag-n-drop-wrap h2{color:#959da5;margin:5px 0;font-size:15px;font-weight:300}.gd-drag-n-drop-wrap h4{color:#cacaca;font-weight:300;font-size:12px;margin:10px 0 15px}.gd-drag-n-drop-icon .fa-cloud-download-alt{color:#d1d1d1;font-size:110px}.gd-drag-n-drop-buttons i{margin-right:5px}.gd-drag-n-drop-buttons .btn{width:134px;height:35px;margin:0 10px;font-size:12px;font-weight:400}.gd-drag-n-drop-wrap.hover{background:#ddd;border-color:#aaa}"]}]}],t.ctorParameters=function(){return[{type:L}]},t.propDecorators={closeUpload:[{type:e.Output}]},t}(),X=function(){function t(t){this._uploadFilesService=t,this.closing=new e.EventEmitter,this.opening=new e.EventEmitter,this.dropped=new e.EventEmitter,this.active=!1}return t.prototype.onDragOver=function(t){t.preventDefault(),t.stopPropagation(),this.active=!0,this.opening.emit(!0)},t.prototype.onDragLeave=function(t){t.preventDefault(),t.stopPropagation(),this.active=!1,this.closeArea()},t.prototype.onDrop=function(t){t.preventDefault(),t.stopPropagation();var e=t.dataTransfer.files;e.length>0&&(this.active=!1,this.dropped.emit(!0),this._uploadFilesService.changeFilesList(e),this.closeArea())},t.prototype.onClick=function(t){this.closeArea()},t.prototype.closeArea=function(){this.closing.emit(!0),this.opening.emit(!1)},t.decorators=[{type:e.Directive,args:[{selector:"[gdDnd]"}]}],t.ctorParameters=function(){return[{type:L}]},t.propDecorators={closing:[{type:e.Output}],opening:[{type:e.Output}],dropped:[{type:e.Output}],active:[{type:e.HostBinding,args:["class.active"]}],onDragOver:[{type:e.HostListener,args:["dragover",["$event"]]}],onDragLeave:[{type:e.HostListener,args:["dragleave",["$event"]]}],onDrop:[{type:e.HostListener,args:["drop",["$event"]]}],onClick:[{type:e.HostListener,args:["click",["$event"]]}]},t}(),Y=function(){function t(){var t=this;this._checkPreload=new c.Observable(function(e){return t._observer=e})}return Object.defineProperty(t.prototype,"checkPreload",{get:function(){return this._checkPreload},enumerable:!0,configurable:!0}),t.prototype.changeLastPageInView=function(t){this._observer&&this._observer.next(t)},t}(),K=function(){function t(t){var e=this;this._pagePreloadService=t,this._currentPage=0,this._countPages=0,this._navigate=new c.Observable(function(t){return e._observer=t})}return Object.defineProperty(t.prototype,"navigate",{get:function(){return this._navigate},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"countPages",{get:function(){return this._countPages},set:function(t){this._countPages=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentPage",{get:function(){return this._currentPage},set:function(t){this._currentPage=t},enumerable:!0,configurable:!0}),t.prototype.nextPage=function(){this._currentPage1&&(this._currentPage--,this.navigateTo(this._currentPage))},t.prototype.toLastPage=function(){this._currentPage=this._countPages,this.navigateTo(this._currentPage)},t.prototype.toFirstPage=function(){this._currentPage=1,this.navigateTo(this._currentPage)},t.prototype.navigateTo=function(t){this.currentPage=t,this._pagePreloadService.changeLastPageInView(t),this._observer.next(t)},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:Y}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(Y))},token:t,providedIn:"root"}),t}(),Q=p,tt=function(){function t(){}return t.prototype.checkInViewport=function(t,e,o,n){if(void 0===e&&(e=100),void 0===o&&(o=0),void 0===n&&(n=.5),!t)return!1;var i=n,r=Q(window),s=r.scrollTop(),a=r.scrollLeft()+o,c=r.scrollLeft()+r.width()-10,p=r.scrollTop()+r.height();isNaN(e)&&(e=100);var l=e/100,d=Q(t).outerHeight()*l,u=Q(t).outerWidth()*l;if(!u||!d)return!1;var h=Q(t).offset(),g=h.left*l+u,f=h.top*l+d;if(!!(cg||pf))return!1;var m=parseFloat(Math.min(1,(f-s)/d).toFixed(2)),v=parseFloat(Math.min(1,(p-h.top*l)/d).toFixed(2));return parseFloat(Math.min(1,(g-a)/u).toFixed(2))*parseFloat(Math.min(1,(c-h.left*l)/u).toFixed(2))>=i&&m*v>=.5},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),et=p,ot=function(){function t(t,e,o,n,i,r){var s=this;this._elementRef=t,this._navigateService=e,this._pagePreloadService=o,this._zoomService=n,this._windowService=i,this._viewportService=r,this.zoom=100,this.zoom=n.zoom?n.zoom:this.zoom,n.zoomChange.subscribe(function(t){s.zoom=t||s.zoom,s.refresh()})}return t.prototype.ngAfterViewInit=function(){var t=this;this.zoom=this._zoomService.zoom?this._zoomService.zoom:this.zoom,this._navigateService.navigate.subscribe(function(e){t.currentPage=e,t.scrollToPage(e)}),this.refresh()},t.prototype.scrolling=function(){this.refresh()},t.prototype.resizing=function(){this.refresh()},t.prototype.scrollToPage=function(t){var e=this._elementRef.nativeElement,o=this.getPage(t),n=t>0?this.getPage(t-1):null,i=n&&et(n).offset().top===et(o).offset().top;if(!this._viewportService.checkInViewport(o,this.zoom)||!i){var r={left:0,top:this.calculateOffset(t)};e&&e.scroll(r)}},t.prototype.getChildren=function(){var t=this._elementRef?this._elementRef.nativeElement:null;if(t)return t.children.item(0).children.item(0).children},t.prototype.getPage=function(t){var e=this._elementRef?this._elementRef.nativeElement:null;if(e)return e.children.item(0).children.item(0).children.item(t-1)},t.prototype.calculateOffset=function(t){for(var e=this._windowService.isFirefox()?1:this.countPagesOnWidth(),o=this._windowService.isDesktop()?40:10,n=0,i=1;i0?s*this.getZoom()+o:0}return n},t.prototype.countPagesOnWidth=function(){var t=this.getPage(1),e=Math.floor((this.getWidth()-150)/(t.getBoundingClientRect().width*this.getZoom()));return 0===e?1:e},t.prototype.refresh=function(){var t,e=!1,o=this.getPage(this.currentPage),n=this.currentPage&&o?o.getBoundingClientRect():null;for(t=1;to&&(o=t.width)}),this.minWidth=o+T.find(this.file.guid,!1).unit}},t.prototype.getScrollWidth=function(t){return t.offsetWidth-t.clientWidth},t.prototype.resizePages=function(t){var e=100===t?1:t/100,o=this.el.nativeElement.parentElement.offsetWidth,n=this.getScrollWidth(this.el.nativeElement.parentElement);this.width=o/e-n/e+"px"},t.prototype.ngAfterViewInit=function(){this.setStyles(this._zoomService.zoom)},t.decorators=[{type:e.Directive,args:[{selector:"[gdZoom]"}]}],t.ctorParameters=function(){return[{type:U},{type:B},{type:e.ElementRef}]},t.propDecorators={zoomActive:[{type:e.Input}],file:[{type:e.Input}],zoomInt:[{type:e.HostBinding,args:["style.zoom"]}],transform:[{type:e.HostBinding,args:["style.transform"]}],transformOrigin:[{type:e.HostBinding,args:["style.transform-origin"]}],width:[{type:e.HostBinding,args:["style.width"]}],minWidth:[{type:e.HostBinding,args:["style.min-width"]}]},t}(),it=function(){function t(){this._observer=new c.Subject,this._onClose=this._observer.asObservable()}return Object.defineProperty(t.prototype,"onClose",{get:function(){return this._onClose},enumerable:!0,configurable:!0}),t.prototype.close=function(t){this._observer.next(t)},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),rt=function(){function t(t){var o=this;this._onCloseService=t,this.disabled=!1,this.selected=new e.EventEmitter,this.isOpen=!1,t.onClose.subscribe(function(){o.close()})}return t.prototype.open=function(){this.disabled||(this.isOpen=!0)},t.prototype.close=function(){this.isOpen=!1},t.prototype.onClickOutside=function(t){this.close()},t.prototype.toggle=function(t){t.preventDefault(),t.stopPropagation(),this.disabled||(this.isOpen=!this.isOpen)},t.prototype.select=function(t,e){t.preventDefault(),t.stopPropagation(),this.selected.emit(e),this.close()},t.decorators=[{type:e.Component,args:[{selector:"gd-select",template:'
\n \n {{showSelected?.name}}\n \n \n \n
\n',styles:[".select{min-width:50px;color:#959da5}.selected-value{font-size:14px;cursor:pointer;white-space:nowrap}.selected-value.inactive{cursor:not-allowed;color:#ccc}.nav-caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent;cursor:pointer}.nav-caret.inactive{cursor:not-allowed;color:#ccc}.dropdown-menu{position:absolute;top:49px;z-index:1000;float:left;min-width:96px;list-style:none;font-size:13px;text-align:left;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);background-clip:padding-box}.dropdown-menu .option{display:block;padding:7px 0 7px 7px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;cursor:pointer;font-size:10px}.dropdown-menu .option:hover{background-color:#25c2d4;color:#fff!important}.dropdown-menu-separator{height:1px;overflow:hidden;background-color:#f4f4f4;padding:0!important}"]}]}],t.ctorParameters=function(){return[{type:it}]},t.propDecorators={options:[{type:e.Input}],disabled:[{type:e.Input}],showSelected:[{type:e.Input}],selected:[{type:e.Output}]},t}(),st=function(){function t(){}return t.prototype.updateCursor=function(){this.cursor=!!this.dis},t.prototype.ngOnInit=function(){this.updateCursor()},t.prototype.ngOnChanges=function(t){this.updateCursor()},t.decorators=[{type:e.Directive,args:[{selector:"[gdDisabledCursor]"}]}],t.ctorParameters=function(){return[]},t.propDecorators={dis:[{type:e.Input}],cursor:[{type:e.HostBinding,args:["class.inactive"]}]},t}(),at=function(){function t(){this.withMargin=!0}return t.prototype.updateCursor=function(){"string"==typeof this.angle&&(this.angle=parseInt(this.angle,10)),this.angle?(this.animation="none",this.transition="none",this.transform="rotate("+this.angle+"deg)"):0===this.angle&&this.animation&&(this.animation=null,this.transition=null,this.transform=null),this.withMargin&&(90===this.angle||270===this.angle||-90===this.angle||-270===this.angle?this.isHtmlMode?this.isLandscape()?this.margin="164px 254px":this.margin="-111px 254px":this.isLandscape()?this.margin="129px 100px -79px":this.margin="-72px 100px -79px":-180===this.angle||180===this.angle?this.margin="280px":this.margin=null)},t.prototype.isLandscape=function(){return this.width>this.height},t.prototype.ngOnInit=function(){this.updateCursor()},t.prototype.ngOnChanges=function(t){this.updateCursor()},t.decorators=[{type:e.Directive,args:[{selector:"[gdRotation]"}]}],t.ctorParameters=function(){return[]},t.propDecorators={angle:[{type:e.Input}],isHtmlMode:[{type:e.Input}],width:[{type:e.Input}],height:[{type:e.Input}],withMargin:[{type:e.Input}],animation:[{type:e.HostBinding,args:["style.animation"]}],transition:[{type:e.HostBinding,args:["style.transition-property"]}],transform:[{type:e.HostBinding,args:["style.transform"]}],margin:[{type:e.HostBinding,args:["style.margin"]}]},t}(),ct=function(){function t(){this.fileDropped=new e.EventEmitter,this.showUploadFile=!1}return t.prototype.ngOnInit=function(){},t.prototype.dropped=function(t){t&&(this.fileDropped.emit(t),this.showUploadFile=!1)},t.decorators=[{type:e.Component,args:[{selector:"gd-init-state",template:'
\n
\n \n \n \n \n
\n
\n \n {{text}}\n
\n
\n',styles:[".wrapper{color:#959da5;background-color:#e7e7e7;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%}.icon{font-size:65px;margin-bottom:43px;display:flex;color:#959da5}.start{font-size:15px;text-align:center;color:#959da5}.gd-drag-n-drop-wrap.active{background-color:#fff;position:fixed;top:0;background:rgba(255,255,255,.8)}.gd-drag-n-drop-wrap.active .init-state-wrapper{position:absolute;opacity:.2;top:unset}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper{top:0;z-index:999}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper .icon{width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}.gd-drag-n-drop-wrap.active .text{color:#6e6e6e;font-size:14px}.init-state-dnd-wrapper,.init-state-wrapper{display:flex;flex-direction:column;width:250px;height:250px;align-items:center;justify-content:center}.init-state-wrapper{top:-60px;position:relative}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={icon:[{type:e.Input}],text:[{type:e.Input}],fileDropped:[{type:e.Output}]},t}(),pt=function(){function t(){var t=this;this._render=new c.Observable(function(e){return t._observer=e}),this._renderBlob=new c.Observable(function(e){return t._observerBlob=e})}return Object.defineProperty(t.prototype,"renderPrint",{get:function(){return this._render},enumerable:!0,configurable:!0}),t.prototype.changePages=function(t){this._observer.next(t)},Object.defineProperty(t.prototype,"renderPrintBlob",{get:function(){return this._renderBlob},enumerable:!0,configurable:!0}),t.prototype.changeBlob=function(t){this._observerBlob.next(t)},t}(),lt=function(){function t(t){var e=this;this._renderService=t,t.renderPrint.subscribe(function(t){e.renderPrint(t)}),t.renderPrintBlob.subscribe(function(t){e.renderPrintBlob(t)})}return t.prototype.renderPrint=function(t){var e,o,n,i,r="";if(this.htmlMode)try{for(var s=m(t),a=s.next();!a.done;a=s.next()){r+='
'+l.data+"
"}}catch(t){e={error:t}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(e)throw e.error}}else try{for(var c=m(t),p=c.next();!p.done;p=c.next()){var l;r+='
'}}catch(t){n={error:t}}finally{try{p&&!p.done&&(i=c.return)&&i.call(c)}finally{if(n)throw n.error}}this.openWindow(r,t[0].width,t[0].height)},t.prototype.openWindow=function(t,e,o){var n="";if(e>595&&o>842){var i=Math.round(o/842)/100;n=".gd-page img { width: 100%; margin: 0; padding: 0;}",navigator.userAgent.toLowerCase().indexOf("firefox")>-1&&(n=".gd-page img { transform: scale("+i+");}")}var r="";var s=window.open("","PrintWindow","width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes");s.focus(),s.document.writeln(r),s.document.writeln(t),s.document.close(),s.focus(),s.print(),s.close()},t.prototype.renderPrintBlob=function(t){var e=URL.createObjectURL(t),o=window.open(e,"PrintWindow","width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes");o.focus(),o.print(),o.close()},t.decorators=[{type:e.Directive,args:[{selector:"[gdRenderPrint]"}]}],t.ctorParameters=function(){return[{type:pt}]},t.propDecorators={htmlMode:[{type:e.Input}]},t}(),dt=function(){function t(){this._observer=new c.BehaviorSubject("Server is not available"),this._messageChange=this._observer.asObservable()}return Object.defineProperty(t.prototype,"messageChange",{get:function(){return this._messageChange},enumerable:!0,configurable:!0}),t.prototype.changeMessage=function(t){this._observer.next(t)},t}(),ut=function(){function t(t){var e=this;t.messageChange.subscribe(function(t){return e.message=t})}return t.prototype.ngOnInit=function(){},t.decorators=[{type:e.Component,args:[{selector:"gd-error-modal",template:'\n
\n \n
\n
Something went wrong
\n
{{message ? message : \'Server is not available\'}}
\n
\n
\n
\n',styles:[".gd-modal-error{display:inline-flex;flex-direction:column;flex:1}.gd-modal-error .gd-modal-error-message{font-size:12px;margin:0 24px 24px 0}.gd-modal-error .gd-modal-error-title{font-size:16px;font-weight:700;margin:14px 0 10px}#gd-error-section{max-width:468px;max-height:204px;display:flex}#gd-error-section fa-icon{flex:1;color:#e04e4e;font-size:40px;margin:13px 23px 90px;text-align:center}"]}]}],t.ctorParameters=function(){return[{type:dt}]},t}(),ht=function(){function t(){this._observer=new c.Subject,this._passChange=this._observer.asObservable()}return Object.defineProperty(t.prototype,"passChange",{get:function(){return this._passChange},enumerable:!0,configurable:!0}),t.prototype.setPassword=function(t){this._observer.next(t)},t}(),gt=function(){function t(t,e){var o=this;this._passwordService=e,t.messageChange.subscribe(function(t){return o.message=t})}return t.prototype.ngOnInit=function(){},t.prototype.setPassword=function(t){this._passwordService.setPassword(t)},t.decorators=[{type:e.Component,args:[{selector:"gd-password-required",template:'\n
\n
\n \n \n {{message}}\n \n Open\n \n
\n
\n
\n',styles:["#gd-password-section{width:468px;height:164px}.gd-password-wrap{display:flex;flex-direction:column;margin:24px}.gd-password-wrap label{font-size:14px;color:#acacac;padding-bottom:12px}.gd-password-wrap input{height:30px;border:1px solid #25c2d4}.gd-password-wrap input.error{border-color:#e04e4e}.gd-password-wrap gd-button{align-self:flex-end}.gd-password-wrap ::ng-deep .button{height:37px;width:72px;padding:0;justify-content:center}.gd-password-wrap ::ng-deep .button ::ng-deep .text{font-size:10px!important}.gd-password-error{color:#e04e4e;padding:10px 0 12px;height:12px;line-height:12px;font-size:12px}@media (max-width:1037px){#gd-password-section{min-width:375px}}"]}]}],t.ctorParameters=function(){return[{type:dt},{type:ht}]},t}(),ft=function(){function t(t,e){this._modalService=t,this._messageService=e}return t.prototype.intercept=function(t,e){var o=this,n="background: maroon; color: white";return e.handle(t).pipe(d.map(function(t){return t}),d.catchError(function(t){if(t instanceof a.HttpErrorResponse)switch(t.status){case j.BadRequest:console.error("%c Bad Request 400",n);break;case j.Unauthorized:console.error("%c Unauthorized 401",n);break;case j.NotFound:console.error("%c Not Found 404",n);break;case j.TimeOut:console.error("%c TimeOut 408",n);break;case j.InternalServerError:console.error("%c big bad 500",n),o._messageService.changeMessage(t.error.message),o._modalService.open(_.ErrorMessage);break;case j.Forbidden:console.error("%c Forbidden 403",n),o._messageService.changeMessage(t.error.message),o._modalService.open(_.PasswordRequired)}return c.throwError(t)}))},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:P},{type:dt}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(P),e.ɵɵinject(dt))},token:t,providedIn:"root"}),t}(),mt=function(){function t(){this._observer=new c.Subject,this._textChange=this._observer.asObservable(),this._observerCurrent=new c.Subject,this._currentChange=this._observerCurrent.asObservable(),this._observerTotal=new c.Subject,this._totalChange=this._observerTotal.asObservable()}return Object.defineProperty(t.prototype,"textChange",{get:function(){return this._textChange},enumerable:!0,configurable:!0}),t.prototype.setText=function(t){this._observer.next(t)},Object.defineProperty(t.prototype,"currentChange",{get:function(){return this._currentChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"totalChange",{get:function(){return this._totalChange},enumerable:!0,configurable:!0}),t.prototype.setCurrent=function(t){this._observerCurrent.next(t)},t.prototype.setTotal=function(t){this._observerTotal.next(t)},t}(),vt=function(){function t(t){var o=this;this._searchService=t,this.hidePanel=new e.EventEmitter(!1),this.current=0,this.total=0,t.totalChange.subscribe(function(t){o.total=t,o.current=0!==t?1:0,o._searchService.setCurrent(o.current)})}return t.prototype.ngOnInit=function(){},t.prototype.setText=function(t){this._searchService.setText(t)},t.prototype.hide=function(){this.setText(""),this.hidePanel.emit(!0)},t.prototype.prev=function(){this.current>1&&(this.current--,this._searchService.setCurrent(this.current))},t.prototype.next=function(){this.current\n \n
{{current}} of {{total}}
\n \n \n \n \n \n \n\n',styles:[".gd-nav-search-btn{margin:3px 0 4px}.gd-nav-search-cancel{color:#fff;font-size:14px;width:37px}.gd-search-count{color:#959da5;font-size:12px;position:absolute;right:148px;top:14px}.gd-nav-search-container{background-color:#3e4e5a;width:410px;position:fixed;left:50%;top:60px;z-index:2;transform:translate(-50%,0);display:flex}.gd-search-input{float:left;height:30px;width:267px;font-size:14px;color:#6e6e6e;border:1px solid #25c2d4;margin:7px 0 7px 7px;box-sizing:border-box;padding:6px 0 5px 9px}input[type=text]::-ms-clear{display:none}@media (max-width:1037px){.gd-search-input{width:231px;height:30px;margin:7px 0 7px 5px}.gd-search-count{position:absolute;left:193px;top:15px}.gd-nav-search-container{width:100%}}"]}]}],t.ctorParameters=function(){return[{type:mt}]},t.propDecorators={hidePanel:[{type:e.Output}],textElement:[{type:e.ViewChild,args:["text",{static:!0}]}]},t}(),bt=p,xt=function(){function t(t,e,o,n){var i=this;this._elementRef=t,this._searchService=e,this._highlight=o,this._zoomService=n,this.current=0,this.total=0,this.zoom=100,e.currentChange.subscribe(function(t){i.current=t,0!==i.current&&i.moveToCurrent()}),e.textChange.subscribe(function(t){i.text=t,i.highlightSearch()}),this.zoom=n.zoom?n.zoom:this.zoom,n.zoomChange.subscribe(function(t){i.zoom=t||i.zoom})}return t.prototype.highlightSearch=function(){var t=this._elementRef?this._elementRef.nativeElement:null;if(t){if(this.cleanHighlight(t),this.text){this.highlightEl(t);var e=t.querySelectorAll(".gd-highlight").length;this.total=e}else this.total=0;this._searchService.setTotal(this.total)}},t.prototype.moveToCurrent=function(){if(0!==this.current){this.getZoom();var t=this._elementRef?this._elementRef.nativeElement:null;if(t){t.querySelectorAll(".gd-highlight-select").forEach(function(t){bt(t).removeClass("gd-highlight-select")});var e=t.querySelectorAll(".gd-highlight")[this.current-1];if(bt(e).addClass("gd-highlight-select"),e){var o={left:0,top:bt(e).offset().top+t.parentElement.parentElement.scrollTop-150};t.parentElement.parentElement.scroll(o)}}}},t.prototype.highlightEl=function(t){var e=bt(t).find("*").contents().filter(function(){var t=this.parentElement.nodeName.toLowerCase(),e=!this.classList||!this.classList.contains("gd-highlight");return 3===this.nodeType&&0!==this.textContent.trim().length&&"style"!==t&&"title"!==t&&"body"!==t&&"script"!==t&&e}),o=this.text,n=this._highlight;e.each(function(){var t=bt(this),e=t.text();e=n.transform(e,o),t.replaceWith(e)}),t.normalize()},t.prototype.cleanHighlight=function(t){for(var e=t.querySelectorAll(".gd-highlight"),o=0;o\n \n \n\n',styles:[".top-panel{background:#3e4e5a;display:flex;width:100%;height:90px}.top-panel ::ng-deep .logo{height:30px;font-size:16px}@media (max-width:1037px){.top-panel{height:60px}.top-panel ::ng-deep .logo{height:60px}}"]}]}],t.ctorParameters=function(){return[]},t}(),wt=function(){function t(){this._observer=new c.Subject,this._activeTabChange=this._observer.asObservable()}return Object.defineProperty(t.prototype,"activeTabChange",{get:function(){return this._activeTabChange},enumerable:!0,configurable:!0}),t.prototype.changeActiveTab=function(t){this._observer.next(t)},t}(),Ct=function(){function t(t){var e=this;this._tabActivatorService=t,this.disabled=!1,this.active=!1,this.content=!0,this._tabActivatorService.activeTabChange.subscribe(function(t){e.activation(t)})}return t.prototype.activation=function(t){this.id===t?this.active=!0:this.active=!1},t.prototype.ngOnInit=function(){},t.prototype.selectTab=function(){this.disabled||this._tabActivatorService.changeActiveTab(this.id)},t.decorators=[{type:e.Component,args:[{selector:"gd-tab",template:'
\n
{{tabTitle}}
\n \n
\n
\n \n
\n',styles:[".gd-editor-buttons{height:60px;position:absolute;background-color:#fff;width:100%;left:0;line-height:60px;display:none;z-index:9}.gd-editor-buttons ::ng-deep .toolbar-panel{height:60px}.gd-editor-buttons.active{display:flex}.gd-tab{text-align:center;font-size:11px;color:#e5e5e5;height:30px;line-height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center}.gd-tab .icon{display:none;font-size:14px;margin:auto 23px}.gd-tab .title{margin:auto 23px}.gd-tab.active{background-color:#fff;color:#3e4e5a;font-weight:700}@media (max-width:1037px){.gd-tab{height:60px;line-height:60px}.gd-tab .title{display:none}.gd-tab .icon{display:block}}"]}]}],t.ctorParameters=function(){return[{type:wt}]},t.propDecorators={id:[{type:e.Input}],tabTitle:[{type:e.Input}],icon:[{type:e.Input}],disabled:[{type:e.Input}],active:[{type:e.Input}],content:[{type:e.Input}]},t}(),St=function(){function t(){}return t.decorators=[{type:e.Component,args:[{selector:"gd-tabs",template:'
\n \n
\n',styles:[".gd-tabs{display:flex}"]}]}],t.ctorParameters=function(){return[]},t}(),_t=function(){function t(t,e,o,n,i,r,s,a,c,p){this.fontSize=t,this.color=e,this.bgColor=o,this.bold=n,this.italic=i,this.underline=r,this.font=s,this.strikeout=a,this.align=c,this.list=p}return t.DEFAULT=new t(10,"#000000","#FFFFFF",!1,!1,!1,"Arial",!1,"",""),t}(),Pt=function(){function t(){this._observerBold=new c.Subject,this._formatBoldChange=this._observerBold.asObservable(),this._observerUnderline=new c.Subject,this._formatUnderlineChange=this._observerUnderline.asObservable(),this._observerUndo=new c.Subject,this._undo=this._observerUndo.asObservable(),this._observerRedo=new c.Subject,this._redo=this._observerRedo.asObservable(),this._observerItalic=new c.Subject,this._formatItalicChange=this._observerItalic.asObservable(),this._observerColor=new c.Subject,this._formatColorChange=this._observerColor.asObservable(),this._observerBgColor=new c.Subject,this._formatBgColorChange=this._observerBgColor.asObservable(),this._observerFontSize=new c.Subject,this._formatFontSizeChange=this._observerFontSize.asObservable(),this._observerFont=new c.Subject,this._formatFontChange=this._observerFont.asObservable(),this._observerStrikeout=new c.Subject,this._formatStrikeoutChange=this._observerStrikeout.asObservable(),this._observerAlign=new c.Subject,this._formatAlignChange=this._observerAlign.asObservable(),this._observerList=new c.Subject,this._formatListChange=this._observerList.asObservable()}return Object.defineProperty(t.prototype,"formatBoldChange",{get:function(){return this._formatBoldChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatUnderlineChange",{get:function(){return this._formatUnderlineChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatColorChange",{get:function(){return this._formatColorChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatBgColorChange",{get:function(){return this._formatBgColorChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatFontSizeChange",{get:function(){return this._formatFontSizeChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatFontChange",{get:function(){return this._formatFontChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"undo",{get:function(){return this._undo},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"redo",{get:function(){return this._redo},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatItalicChange",{get:function(){return this._formatItalicChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatStrikeoutChange",{get:function(){return this._formatStrikeoutChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatAlignChange",{get:function(){return this._formatAlignChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatListChange",{get:function(){return this._formatListChange},enumerable:!0,configurable:!0}),t.createFontSizeOption=function(t){return{value:t,name:t+"px",separator:!1}},t.getFontSizeOptions=function(){return[t.createFontSizeOption(8),t.createFontSizeOption(10),t.createFontSizeOption(12),t.createFontSizeOption(14),t.createFontSizeOption(16),t.createFontSizeOption(18),t.createFontSizeOption(20),t.createFontSizeOption(22),t.createFontSizeOption(24)]},t.createFontOption=function(t){return{value:t,name:t,separator:!1}},t.getFontOptions=function(){var t=this,e=[];return["Arial","Calibri","Century Gothic","Comic Sans","Consolas","Courier","Dejavu Sans","Dejavu Serif","Georgia","Gill Sans","Helvetica","Impact","Lucida Sans","Myriad Pro","Open Sans","Palatino","Tahoma","Times New Roman","Trebuchet"].forEach(function(o){e.push(t.createFontOption(o))}),e},t.prototype.changeFormatFontSize=function(t){this._observerFontSize.next(t)},t.prototype.changeFormatBold=function(t){this._observerBold.next(t)},t.prototype.changeFormatUnderline=function(t){this._observerUnderline.next(t)},t.prototype.Undo=function(){this._observerUndo.next()},t.prototype.Redo=function(){this._observerRedo.next()},t.prototype.changeFormatItalic=function(t){this._observerItalic.next(t)},t.prototype.changeFormatColor=function(t){this._observerColor.next(t)},t.prototype.changeFormatBgColor=function(t){this._observerBgColor.next(t)},t.prototype.changeFormatFont=function(t){this._observerFont.next(t)},t.prototype.changeFormatStrikeout=function(t){this._observerStrikeout.next(t)},t.prototype.changeFormatAlign=function(t){this._observerAlign.next(t)},t.prototype.changeFormatList=function(t){this._observerList.next(t)},t}(),Ot=["#000000","#993300","#333300","#000080","#333399","#333333","#800000","#FF6600","#808000","#008000","#008080","#0000FF","#666699","#808080","#FF0000","#FF9900","#99CC00","#339966","#33CCCC","#3366FF","#800080","#999999","#FF00FF","#FFCC00","#FFFF00","#00FF00","#00FFFF","#00CCFF","#993366","#C0C0C0","#FF99CC","#FFCC99","#FFFF99","#CCFFFF","#99CCFF","#FFFFFF"],kt=function(){function t(){this.selectedColor=new e.EventEmitter,this.colors=Ot}return t.prototype.ngOnInit=function(){},t.prototype.select=function(t,e){t.preventDefault(),t.stopPropagation(),this.selectedColor.emit(e)},t.decorators=[{type:e.Component,args:[{selector:"gd-color-picker",template:'
\n
\n
\n
\n
\n',styles:[".bcPicker-picker{border:1px;border-radius:100%}.bcPicker-palette{width:232px;padding:5px;border:1px solid #efefef;background-color:#fdfdfd;z-index:999}.bcPicker-palette>.bcPicker-color{width:14px;height:14px;margin:2px;display:inline-block;border:1px solid #efefef;background-color:#9da97b;cursor:pointer}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={selectedColor:[{type:e.Output}]},t}(),Ft=function(t){function o(){return t.call(this)||this}return f(o,t),o.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],o.ctorParameters=function(){return[]},o.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new o},token:o,providedIn:"root"}),o}(Pt),It=function(){function t(){this.isIE=!!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent)}return t.prototype.restoreSelection=function(){(this.selection&&!this.selection.collapsed||this.isIE)&&this.putSelection(this.selection)},t.prototype.captureSelection=function(){var t=window.getSelection();t.rangeCount>0&&(this.selection=t.getRangeAt(0))},t.prototype.putSelection=function(t){var e=window.getSelection();e.removeAllRanges(),e.addRange(t.cloneRange())},t.prototype.refreshSelection=function(){this.captureSelection(),this.restoreSelection()},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),zt=p,Et=function(){function t(t,e,o){this._formattingService=t,this._backFormattingService=e,this._selectionService=o,this.bold=!1,this.italic=!1,this.underline=!1,this.strikeout=!1,this.isIE=!1,this.isIE=/*@cc_on!@*/!!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent)}return t.prototype.mouseup=function(){this.bold=document.queryCommandState("bold"),this.strikeout=document.queryCommandState("strikeThrough"),this.italic=document.queryCommandState("italic"),this.bgColor=document.queryCommandValue("backColor"),this.underline=document.queryCommandState("underline"),this.align=this.checkJustify(),this.list=this.checkList(),"transparent"===this.bgColor&&(this.bgColor=zt(window.getSelection().focusNode.parentNode).css("background-color").toString()),this.font=document.queryCommandValue("FontName").replace(/"/g,""),this.font.split(",").length>1&&(this.font=this.font.split(",")[0]),this.color=document.queryCommandValue("foreColor"),this._backFormattingService.changeFormatBold(this.bold),this._backFormattingService.changeFormatUnderline(this.underline),this._backFormattingService.changeFormatItalic(this.italic),this._backFormattingService.changeFormatColor(this.color),this._backFormattingService.changeFormatBgColor(this.bgColor),this._backFormattingService.changeFormatFontSize(this.reportFontSize()),this._backFormattingService.changeFormatFont(this.font),this._backFormattingService.changeFormatStrikeout(this.strikeout),this._backFormattingService.changeFormatAlign(this.align),this._backFormattingService.changeFormatList(this.list)},t.prototype.checkJustify=function(){var t="";return t=document.queryCommandState("justifyCenter")?"center":t,t=document.queryCommandState("justifyFull")?"full":t,t=document.queryCommandState("justifyLeft")?"left":t,t=document.queryCommandState("justifyRight")?"right":t},t.prototype.checkList=function(){var t="";return t=document.queryCommandState("insertUnorderedList")?"unordered":t,t=document.queryCommandState("insertOrderedList")?"ordered":t},t.prototype.reportFontSize=function(){var t,e;if(window.getSelection?(e=window.getSelection()).rangeCount&&3===(t=e.getRangeAt(0).commonAncestorContainer).nodeType&&(t=t.parentNode):(e=document.getSelection())&&"Control"!==e.type&&(t=e.createRange().parentElement()),t)return parseInt(this.getComputedStyleProperty(t,"fontSize").replace("px",""),10)},t.prototype.getComputedStyleProperty=function(t,e){return window.getComputedStyle?window.getComputedStyle(t,null)[e]:t.currentStyle?t.currentStyle[e]:void 0},t.prototype.ngOnInit=function(){var t=this;this._formattingService.undo.subscribe(function(){t.toggleUndo()}),this._formattingService.redo.subscribe(function(){t.toggleRedo()}),this._formattingService.formatBoldChange.subscribe(function(e){t.bold=e,t.toggleBold()}),this._formattingService.formatUnderlineChange.subscribe(function(e){t.underline=e,t.toggleUnderline()}),this._formattingService.formatItalicChange.subscribe(function(e){t.italic=e,t.toggleItalic()}),this._formattingService.formatColorChange.subscribe(function(e){t.color=e,t.setColor(e)}),this._formattingService.formatBgColorChange.subscribe(function(e){t.bgColor=e,t.setBgColor(e)}),this._formattingService.formatFontSizeChange.subscribe(function(e){t.setFontSize(e)}),this._formattingService.formatFontChange.subscribe(function(e){t.font=e,t.setFont(e)}),this._formattingService.formatStrikeoutChange.subscribe(function(e){t.strikeout=e,t.toggleStrikeout()}),this._formattingService.formatAlignChange.subscribe(function(e){t.align=e,t.toggleAlign(t.align)}),this._formattingService.formatListChange.subscribe(function(e){t.list=e,t.toggleList(t.list)})},t.prototype.toggleBold=function(){document.execCommand("bold"),this._selectionService.refreshSelection()},t.prototype.toggleUnderline=function(){document.execCommand("underline"),this._selectionService.refreshSelection()},t.prototype.toggleItalic=function(){document.execCommand("italic"),this._selectionService.refreshSelection()},t.prototype.setBgColor=function(t){document.execCommand("backColor",!1,t),this._selectionService.refreshSelection()},t.prototype.setColor=function(t){document.execCommand("foreColor",!1,t),this._selectionService.refreshSelection()},t.prototype.setFontSize=function(t){if(document.getSelection().toString()){var e=""+document.getSelection()+"";this.bold&&(e=""+e+""),this.italic&&(e=""+e+""),this.underline&&(e=""+e+""),this.strikeout&&(e=""+e+""),document.execCommand("insertHTML",!1,e)}else document.execCommand("fontsize",!1,"7");this._selectionService.refreshSelection()},t.prototype.toggleUndo=function(){document.execCommand("undo")},t.prototype.toggleRedo=function(){document.execCommand("redo")},t.prototype.setFont=function(t){document.execCommand("fontName",!1,t),this._selectionService.refreshSelection()},t.prototype.toggleStrikeout=function(){document.execCommand("strikeThrough"),this._selectionService.refreshSelection()},t.prototype.toggleAlign=function(t){if(this.isIE)this.toggleAlignIE(t);else{switch(document.execCommand("styleWithCSS",!1,"true"),t){case"center":document.execCommand("justifyCenter");break;case"full":document.execCommand("justifyFull");break;case"left":document.execCommand("justifyLeft");break;case"right":document.execCommand("justifyRight")}this._selectionService.refreshSelection()}},t.prototype.toggleAlignIE=function(t){this._selectionService.restoreSelection(),this._selectionService.captureSelection();var e=window.getSelection().focusNode.parentNode.parentNode;"full"===t&&(t="justify"),zt(e).css("text-align",t),this._selectionService.refreshSelection()},t.prototype.toggleList=function(t){switch(t){case"unordered":document.execCommand("insertUnorderedList");break;case"ordered":document.execCommand("insertOrderedList")}this._selectionService.refreshSelection()},t.decorators=[{type:e.Directive,args:[{selector:"[gdFormatting]"}]}],t.ctorParameters=function(){return[{type:Pt},{type:Ft},{type:It}]},t.propDecorators={mouseup:[{type:e.HostListener,args:["mouseup"]}]},t}(),Dt=function(){function t(){}return t.prototype.ngOnInit=function(){},t.decorators=[{type:e.Component,args:[{selector:"gd-success-modal",template:'\n
\n
\n \n \n
\n
\n
\n
\n
\n',styles:[".check_mark{margin:47px auto}.sa-icon{width:80px;height:80px;border:4px solid gray;border-radius:50%;padding:0;position:relative;box-sizing:content-box}#gd-modal-success{display:flex;overflow:hidden;width:469px;height:183px}.sa-icon.sa-success{border-color:#4caf50;transform:scale(1.18)}.sa-icon.sa-success::after,.sa-icon.sa-success::before{content:'';position:absolute;width:60px;height:120px;background:#fff}.sa-icon.sa-success::before{border-radius:120px 0 0 120px;top:-7px;left:-33px;transform:rotate(-45deg);transform-origin:60px 60px}.sa-icon.sa-success::after{border-radius:0 120px 120px 0;top:-11px;left:30px;transform:rotate(-45deg);transform-origin:0 60px}.sa-icon.sa-success .sa-placeholder{width:80px;height:80px;border:4px solid rgba(76,175,80,.5);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.sa-icon.sa-success .sa-fix{width:5px;height:90px;background-color:#fff;position:absolute;left:28px;top:8px;z-index:1;transform:rotate(-45deg)}.sa-icon.sa-success.animate::after{-webkit-animation:4.25s ease-in rotatePlaceholder;animation:4.25s ease-in rotatePlaceholder}.animateSuccessTip{-webkit-animation:.75s animateSuccessTip;animation:.75s animateSuccessTip}.animateSuccessLong{-webkit-animation:.75s animateSuccessLong;animation:.75s animateSuccessLong}@-webkit-keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}.sa-icon.sa-success .sa-line{height:5px;background-color:#4caf50;display:block;border-radius:2px;position:absolute;z-index:2}.sa-icon.sa-success .sa-line.sa-tip{width:25px;left:14px;top:46px;transform:rotate(45deg)}.sa-icon.sa-success .sa-line.sa-long{width:47px;right:8px;top:38px;transform:rotate(-45deg)}@-webkit-keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@media (max-width:1037px){#gd-modal-success{left:50%;top:50%;position:relative;transform:translate(-50%,-50%)}}"]}]}],t.ctorParameters=function(){return[]},t}(),jt=function(){function t(){this._observer=new c.Subject,this._htmlContent=this._observer.asObservable()}return Object.defineProperty(t.prototype,"observer",{get:function(){return this._observer},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"htmlContent",{get:function(){return this._htmlContent},enumerable:!0,configurable:!0}),t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),Tt=function(){function t(t,e){this._selectionService=t,this._htmlService=e,this.isIE=!!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent)}return t.prototype.onInput=function(t){if(this.text=t.target,this.isIE&&this.text.innerHTML){var e=this.text.innerHTML.toString();this._htmlService.observer.next(e)}},t.prototype.onMouseleave=function(t){this._selectionService.captureSelection(),this.isIE&&this._htmlService.observer.next(t.target.innerHTML.toString())},t.prototype.onBlur=function(t){if(t.preventDefault(),this._selectionService.restoreSelection(),this.text.innerHTML){var e=this.text.innerHTML.toString();this._htmlService.observer.next(e)}else this._htmlService.observer.next(t.target.innerHTML.toString())},t.decorators=[{type:e.Directive,args:[{selector:"[gdEditor]"}]}],t.ctorParameters=function(){return[{type:It},{type:jt}]},t.propDecorators={text:[{type:e.Input}],onInput:[{type:e.HostListener,args:["keyup",["$event"]]}],onMouseleave:[{type:e.HostListener,args:["mouseleave",["$event"]]}],onBlur:[{type:e.HostListener,args:["blur",["$event"]]}]},t}(),Mt=function(){function t(){this.onLoadingChanged=new e.EventEmitter,this.requests=[]}return t.prototype.onRequestStart=function(t){this.requests.push(t),this.notify()},t.prototype.onRequestFinish=function(t){var e=this.requests.indexOf(t);-1!==e&&this.requests.splice(e,1),this.notify()},t.prototype.notify=function(){this.onLoadingChanged.emit(0!==this.requests.length)},t.decorators=[{type:e.Injectable}],t.ctorParameters=function(){return[]},t}(),Lt=function(){function t(t){this._loadingMaskService=t,this.loadingMask=!1}return t.prototype.ngOnInit=function(){},t.prototype.ngAfterViewInit=function(){var t=this;this._loadingMaskService.onLoadingChanged.subscribe(function(e){return t.loadingMask=e})},t.decorators=[{type:e.Component,args:[{selector:"gd-loading-mask",template:'
\n
\n  Loading... Please wait.\n
\n
\n',styles:[".loading-wrapper{background:rgba(0,0,0,.5);width:100%;height:100%;font-size:14px;color:#fff;position:fixed;top:0;left:0;z-index:99999}.loading-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"]}]}],t.ctorParameters=function(){return[{type:Mt}]},t.propDecorators={loadingMask:[{type:e.Input}]},t}(),At=function(){function t(t){this._loadingMaskService=t}return t.prototype.intercept=function(t,e){var o=this;this._loadingMaskService.onRequestStart(t);return e.handle(t).pipe(d.finalize(function(){return o._loadingMaskService.onRequestFinish(t)}))},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:Mt}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(Mt))},token:t,providedIn:"root"}),t}(),Rt={center:{right:"auto"},left:{right:"100%"},right:{right:"-100%"}},Ht={center:{top:"0px"},top:{top:"-100%",right:"100%"},bottom:{top:"autos"}},Ut=function(){function t(t){var e=this;this.dropdown=t,this.click=function(t){return e.dropdown.toggle(t)}}return t.decorators=[{type:e.Component,args:[{selector:"gd-drop-down-toggle",template:"",encapsulation:e.ViewEncapsulation.None,styles:[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],t.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef(function(){return Nt})]}]}]},t.propDecorators={click:[{type:e.HostListener,args:["click",["$event"]]}]},t}(),Bt=function(){function t(t){this.dropdown=t}return Object.defineProperty(t.prototype,"horizontalAlign",{get:function(){return Rt[this.dropdown.getPlacement().h].right},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"verticalAlign",{get:function(){return Ht[this.dropdown.getPlacement().v].top},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isOpen",{get:function(){return this.dropdown.open},enumerable:!0,configurable:!0}),t.prototype.onClickOutside=function(t){this.dropdown.close()},t.decorators=[{type:e.Component,args:[{selector:"gd-drop-down-items",template:'',encapsulation:e.ViewEncapsulation.None,styles:[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],t.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef(function(){return Nt})]}]}]},t}(),Wt=function(){function t(t){var o=this;this.dropdown=t,this.class="drop-down-item",this.selected=new e.EventEmitter,this.click=function(){return o.selectEntry()}}return t.prototype.selectEntry=function(){this.selected.next(),this.dropdown.close()},t.decorators=[{type:e.Component,args:[{selector:"gd-drop-down-item",template:'',styles:[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],t.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef(function(){return Nt})]}]}]},t.propDecorators={class:[{type:e.HostBinding,args:["class"]}],selected:[{type:e.Output}],click:[{type:e.HostListener,args:["click"]}]},t}(),Nt=function(){function t(){this.placement={h:"center",v:"bottom"},this.open=!1,this.class="drop-down"}return t.prototype.close=function(){this.open=!1},t.prototype.toggle=function(t){t.stopPropagation(),this.open=!this.open,document.body.click()},t.prototype.getPlacement=function(){return this.placement},t.decorators=[{type:e.Component,args:[{selector:"gd-drop-down",template:'',encapsulation:e.ViewEncapsulation.None,styles:[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],t.propDecorators={placement:[{type:e.Input}],open:[{type:e.Input},{type:e.HostBinding,args:["class.show"]}],class:[{type:e.HostBinding,args:["class"]}]},t}(),qt=[S,C,P,M,D,T,V,$,Z,G,L,pt,K,Y,U,dt,ht,ft,mt,B,tt,Pt,Ft,it,At,Mt,wt],Vt=function(){function t(){i.library.add(r.fas,s.far)}return t.decorators=[{type:e.NgModule,args:[{imports:[o.CommonModule,n.FontAwesomeModule,h.ClickOutsideModule],declarations:[v,b,x,y,w,O,H,N,q,V,$,Z,G,J,X,ot,nt,rt,st,at,ct,lt,ut,gt,vt,xt,yt,Ct,St,kt,Et,Dt,Tt,Lt,Nt,Wt,Bt,Ut],exports:[v,b,x,y,w,O,H,N,q,$,Z,G,V,J,ot,rt,at,ct,lt,ut,gt,vt,xt,yt,Ct,St,kt,Et,Dt,Lt,X,Nt,Wt,Bt,Ut],providers:qt}]}],t.ctorParameters=function(){return[]},t}();t.Api=C,t.BackFormattingService=Ft,t.BrowseFilesModalComponent=H,t.ButtonComponent=x,t.ColorPickerComponent=kt,t.CommonComponentsModule=Vt,t.CommonModals=_,t.ConfigService=S,t.DisabledCursorDirective=st,t.DndDirective=X,t.DocumentComponent=N,t.DropDownComponent=Nt,t.DropDownItemComponent=Wt,t.DropDownItemsComponent=Bt,t.DropDownToggleComponent=Ut,t.EditHtmlService=jt,t.EditorDirective=Tt,t.ErrorInterceptorService=ft,t.ErrorModalComponent=ut,t.ExceptionMessageService=dt,t.FileCredentials=I,t.FileDescription=E,t.FileModel=D,t.FileService=M,t.FileUtil=T,t.Formatting=_t,t.FormattingDirective=Et,t.FormattingService=Pt,t.HighlightSearchPipe=G,t.HttpError=j,t.InitStateComponent=ct,t.LoadingMaskComponent=Lt,t.LoadingMaskInterceptorService=At,t.LoadingMaskService=Mt,t.LogoComponent=y,t.ModalComponent=O,t.ModalService=P,t.NavigateService=K,t.OnCloseService=it,t.PageComponent=q,t.PageModel=k,t.PagePreloadService=Y,t.PasswordRequiredComponent=gt,t.PasswordService=ht,t.RenderPrintDirective=lt,t.RenderPrintService=pt,t.RotatedPage=F,t.RotationDirective=at,t.SanitizeHtmlPipe=V,t.SanitizeResourceHtmlPipe=$,t.SanitizeStylePipe=Z,t.SaveFile=z,t.ScrollableDirective=ot,t.SearchComponent=vt,t.SearchService=mt,t.SearchableDirective=xt,t.SelectComponent=rt,t.SelectionService=It,t.SidePanelComponent=b,t.SuccessModalComponent=Dt,t.TabActivatorService=wt,t.TabComponent=Ct,t.TabbedToolbarsComponent=yt,t.TooltipComponent=w,t.TopToolbarComponent=v,t.UploadFileZoneComponent=J,t.UploadFilesService=L,t.ViewportService=tt,t.WindowService=B,t.ZoomDirective=nt,t.ZoomService=U,t.ɵa=St,Object.defineProperty(t,"__esModule",{value:!0})}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common"),require("@fortawesome/angular-fontawesome"),require("@fortawesome/fontawesome-svg-core"),require("@fortawesome/free-solid-svg-icons"),require("@fortawesome/free-regular-svg-icons"),require("@angular/common/http"),require("rxjs"),require("jquery"),require("hammerjs"),require("rxjs/operators"),require("@angular/platform-browser"),require("ng-click-outside")):"function"==typeof define&&define.amd?define("@groupdocs.examples.angular/common-components",["exports","@angular/core","@angular/common","@fortawesome/angular-fontawesome","@fortawesome/fontawesome-svg-core","@fortawesome/free-solid-svg-icons","@fortawesome/free-regular-svg-icons","@angular/common/http","rxjs","jquery","hammerjs","rxjs/operators","@angular/platform-browser","ng-click-outside"],e):e(((t=t||self).groupdocs=t.groupdocs||{},t.groupdocs.examples=t.groupdocs.examples||{},t.groupdocs.examples.angular=t.groupdocs.examples.angular||{},t.groupdocs.examples.angular["common-components"]={}),t.ng.core,t.ng.common,t.angularFontawesome,t.fontawesomeSvgCore,t.freeSolidSvgIcons,t.freeRegularSvgIcons,t.ng.common.http,t.rxjs,t.jquery,t.Hammer,t.rxjs.operators,t.ng.platformBrowser,t.ngClickOutside)}(this,function(t,e,o,n,i,r,s,a,c,p,l,d,u,h){"use strict";var g=function(t,e){return(g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o])})(t,e)};function f(t,e){function o(){this.constructor=t}g(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}function m(t){var e="function"==typeof Symbol&&t[Symbol.iterator],o=0;return e?e.call(t):{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}}}var v=function(){function t(){}return t.decorators=[{type:e.Component,args:[{selector:"gd-top-toolbar",template:'
\r\n
\r\n \r\n
\r\n
\r\n',styles:[".top-toolbar{width:100%;height:60px;z-index:999;display:flex;align-items:center}.tools{width:100%;height:100%;display:flex;align-items:center}@media (max-width:1037px){.top-toolbar{height:60px}.tools{height:100%;overflow-x:auto;overflow-scrolling:touch;display:flex;align-items:center;transition:.3s ease-in-out;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.tools::-webkit-scrollbar{width:0;height:0;background-color:#3e4e5a}}"]}]}],t.ctorParameters=function(){return[]},t}(),b=function(){function t(){this.hideSidePanel=new e.EventEmitter}return t.prototype.openSidePanel=function(){this.hideSidePanel.emit(!0)},t.decorators=[{type:e.Component,args:[{selector:"gd-side-panel",template:'
\r\n
\r\n \r\n
{{title}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n',styles:[".gd-side-panel-wrapper{margin-right:0;width:334px;z-index:999;background-color:#fff;transition:margin-right .2s;display:flex;flex-flow:column;height:100vh}.gd-side-panel-wrapper .gd-side-panel-header{height:60px;background-color:#222e35;display:flex;flex-direction:row;flex-wrap:nowrap}.gd-side-panel-wrapper .gd-side-panel-header .icon{font-size:24px;color:#959da5;margin:12px 9px 18px 14px}.gd-side-panel-wrapper .gd-side-panel-header .title{font-size:14px;font-weight:700;color:rgba(237,240,242,.57);margin-top:20px;width:100%}.gd-side-panel-wrapper .gd-side-panel-header .close{font-size:24px!important;margin-top:12px}.gd-side-panel-wrapper .gd-side-panel-body{display:flex;flex-flow:column;overflow:visible;overflow-y:auto;overflow-x:hidden;height:100%}@media (max-width:1037px){.gd-side-panel-wrapper{width:100%;position:absolute;left:0;right:0;top:0;bottom:0}}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={title:[{type:e.Input}],icon:[{type:e.Input}],hideSidePanel:[{type:e.Output}]},t}(),x=function(){function t(){this.iconOnly=!0,this.intent="default",this.disabled=!1,this.toggle=!1,this.showToolTip=!1}return t.prototype.iconButtonClass=function(){return this.iconOnly?"icon-button":""},t.prototype.onHovering=function(){this.disabled||(this.className+=" active"),this.showToolTip=!0},t.prototype.onUnhovering=function(){this.disabled||(this.className=this.className.replace(" active","")),this.showToolTip=!1},t.decorators=[{type:e.Component,args:[{selector:"gd-button",template:'
\r\n \r\n \r\n
\r\n
\r\n',styles:[".icon-button{padding:0!important;margin:0 10px}.button{padding:0 10px;font-size:14px;color:#959da5;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:37px;height:37px;text-align:center;position:relative;white-space:nowrap}.button.inactive{cursor:not-allowed;opacity:.4}.button.active *{color:#ccd0d4}.button.primary{background-color:#3e4e5a;color:#fff}.button.primary.active{color:#fff;background-color:#688296}.button.brand{background-color:#25c2d4;color:#fff}.button.brand.active{color:#fff;background-color:#688296}.button .text{font-size:13px;padding-left:10px}@media (max-width:1037px){.button{font-size:22px}.arrow-button{margin:5px}}"]}]}],t.propDecorators={iconOnly:[{type:e.Input}],intent:[{type:e.Input}],disabled:[{type:e.Input}],icon:[{type:e.Input}],iconClass:[{type:e.Input}],tooltip:[{type:e.Input}],className:[{type:e.Input}],toggle:[{type:e.Input}]},t}(),y=function(){function t(){}return t.prototype.ngOnInit=function(){},t.decorators=[{type:e.Component,args:[{selector:"gd-logo",template:'\r\n\r\n',styles:[".logo{background-color:#25c2d4;height:60px;display:flex;align-items:center;justify-content:center}.text{color:#fff;font-size:15px;text-transform:uppercase;margin:0 14px}.icon{display:none;font-size:32px;color:rgba(255,255,255,.5);margin:14px}@media (max-width:1037px){.logo{width:60px;height:60px}.logo .text{display:none}.logo .icon{display:block}}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={logo:[{type:e.Input}],icon:[{type:e.Input}]},t}(),w=function(){function t(){this.visibility="hidden"}return Object.defineProperty(t.prototype,"show",{set:function(t){this.visibility=t?"shown":"hidden"},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){},t.decorators=[{type:e.Component,args:[{selector:"gd-tooltip",template:'\r\n',styles:['.tooltip{position:absolute;margin-top:37px;width:100px;background-color:#000;color:#fff;text-align:center;border-radius:0;padding:5px 0;z-index:1;margin-left:-66px;font-size:10px;height:11px;line-height:11px}.tooltip.hidden{visibility:hidden}.tooltip.shown{visibility:visible}.shown:after{content:" ";position:absolute;bottom:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-bottom-color:#000}']}]}],t.ctorParameters=function(){return[]},t.propDecorators={text:[{type:e.Input}],show:[{type:e.Input}]},t}(),S=function(){function t(){}return t.VIEWER_APP="/viewer",t.EDITOR_APP="/editor",t.COMPARISON_APP="/comparison",t.CONVERSION_APP="/conversion",t.DEFAULT_API_ENDPOINT=window.location.href,t.LOAD_FILE_TREE="/loadFileTree",t.LOAD_CONFIG="/loadConfig",t.LOAD_DOCUMENT_DESCRIPTION="/loadDocumentDescription",t.LOAD_DOCUMENT_PAGE="/loadDocumentPage",t.ROTATE_DOCUMENT_PAGE="/rotateDocumentPages",t.UPLOAD_DOCUMENTS="/uploadDocument",t.DOWNLOAD_DOCUMENTS="/downloadDocument",t.LOAD_PRINT="/loadPrint",t.LOAD_PRINT_PDF="/printPdf",t.LOAD_THUMBNAILS="/loadThumbnails",t.LOAD_FORMATS="/loadFormats",t.SAVE_FILE="/saveFile",t.COMPARE_FILES="/compare",t.CONVERT_FILE="/convert",t.httpOptionsJson={headers:new a.HttpHeaders({"Content-Type":"application/json"})},t.httpOptionsJsonResponseTypeBlob={headers:new a.HttpHeaders({"Content-Type":"application/json"}),responseType:"blob"},t}(),C=function(){function t(){this.apiEndpoint=S.DEFAULT_API_ENDPOINT}return Object.defineProperty(t.prototype,"apiEndpoint",{get:function(){return this._apiEndpoint},set:function(t){this._apiEndpoint=t&&t.trim().endsWith("/")?t.substring(0,t.length-1):t},enumerable:!0,configurable:!0}),t.prototype.getConfigEndpoint=function(t){return(this.apiEndpoint.endsWith(t)?this.apiEndpoint:this.apiEndpoint+t)+S.LOAD_CONFIG},t.prototype.getViewerApiEndpoint=function(){return this._apiEndpoint.endsWith(S.VIEWER_APP)?this._apiEndpoint:this._apiEndpoint+S.VIEWER_APP},t.prototype.getEditorApiEndpoint=function(){return this._apiEndpoint.trim().endsWith(S.EDITOR_APP)?this._apiEndpoint:this._apiEndpoint+S.EDITOR_APP},t.prototype.getComparisonApiEndpoint=function(){return this._apiEndpoint.trim().endsWith(S.COMPARISON_APP)?this._apiEndpoint:this._apiEndpoint+S.COMPARISON_APP},t.prototype.getConversionApiEndpoint=function(){return this._apiEndpoint.trim().endsWith(S.CONVERSION_APP)?this._apiEndpoint:this._apiEndpoint+S.CONVERSION_APP},t.decorators=[{type:e.Injectable}],t.ctorParameters=function(){return[]},t}(),_=function(){function t(){}return t.PasswordRequired="gd-password-required",t.ErrorMessage="gd-error-message",t.BrowseFiles="gd-browse-files",t.CreateDocument="gd-create-document",t.OperationSuccess="gd-success-modal",t}(),P=function(){function t(){this.modals=[]}return t.prototype.add=function(t){this.modals.push(t)},t.prototype.remove=function(t){this.modals=this.modals.filter(function(e){return e.id!==t})},t.prototype.open=function(t){var e=this.modals.filter(function(e){return e.id===t})[0];e&&e.open()},t.prototype.close=function(t){var e=this.modals.filter(function(e){return e.id===t})[0];e&&e.close()},t}(),O=function(){function t(t,o){this.modalService=t,this.visible=new e.EventEmitter,this.visibility=!1,this.element=o.nativeElement}return t.prototype.ngOnInit=function(){this.id?(document.body.appendChild(this.element),this.modalService.add(this)):console.error("modal must have an id")},t.prototype.ngOnDestroy=function(){this.modalService.remove(this.id),this.element.remove()},t.prototype.open=function(){this.visibility=!0,this.visible.emit(!0)},t.prototype.close=function(){event.preventDefault(),event.stopPropagation(),this.visibility=!1,this.visible.emit(!1)},t.prototype.onClose=function(t){t.stopPropagation(),t&&t.target&&"modalDialog"===t.target.id&&this.close()},t.decorators=[{type:e.Component,args:[{selector:"gd-modal",template:'
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
×
\r\n

{{title}}

\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\x3c!-- /.modal-content --\x3e\r\n
\x3c!-- /.modal-dialog --\x3e \r\n\r\n',styles:["@import url(https://fonts.googleapis.com/css?family=Montserrat&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.gd-modal{overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0;background-color:rgba(0,0,0,.5)}.gd-modal-dialog{box-shadow:#0005 0 0 10px;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1051}.gd-modal-content{background-color:#fff;height:100%;display:flex;flex-direction:column}.gd-modal-header{height:60px;padding:0 12px 0 24px;background-color:#3e4e5a}.gd-modal-close{position:absolute;right:12px;top:12px;cursor:pointer;color:#fff;width:37px;height:37px;text-align:center}.gd-modal-close span{font-size:18px;font-weight:900;height:19px;width:10px;line-height:36px}.gd-modal-title{font-size:16px;font-weight:400;padding-top:17px;padding-bottom:22px;margin:0;color:#fff}.gd-modal-body{background-color:#fff;overflow:hidden;overflow-y:auto;height:calc(100% - 75px)}.gd-modal-footer{height:auto}.gd-modal-footer>.btn{float:right;margin:20px 15px;padding:10px 20px;cursor:pointer;font-size:12px}@media (max-width:1037px){.gd-modal-dialog{width:100%;height:100%}.gd-modal-body{height:100%}}"]}]}],t.ctorParameters=function(){return[{type:P},{type:e.ElementRef}]},t.propDecorators={id:[{type:e.Input}],title:[{type:e.Input}],visible:[{type:e.Output}]},t}(),k=function(){},F=function(){},I=function(t,e){this.guid=t,this.password=e},z=function(t){function e(e,o,n){var i=t.call(this,e,o)||this;return i.content=n,i}return f(e,t),e}(I),E=function(){this.printAllowed=!0},D=function(){},j=function(){function t(){}return t.BadRequest=400,t.Unauthorized=401,t.Forbidden=403,t.NotFound=404,t.TimeOut=408,t.Conflict=409,t.InternalServerError=500,t}(),T=function(){function t(){}return t.find=function(e,o){if(e&&!o){var n=e.split("."),i=n.pop().toLowerCase();return void 0===t.map[i]?n.length>0?t.map.unknown:t.map.folder:t.map[i]}return t.map.folder},t.map={folder:{format:"",icon:"folder"},pdf:{format:"Portable Document Format",icon:"file-pdf",unit:"pt"},doc:{format:"Microsoft Word",icon:"file-word",unit:"pt"},docx:{format:"Microsoft Word",icon:"file-word",unit:"pt"},docm:{format:"Microsoft Word",icon:"file-word",unit:"pt"},dot:{format:"Microsoft Word",icon:"file-word",unit:"pt"},dotx:{format:"Microsoft Word",icon:"file-word",unit:"pt"},dotm:{format:"Microsoft Word",icon:"file-word",unit:"pt"},xls:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},xlsx:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},xlsm:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},xlsb:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},xls2003:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},xltx:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},xltm:{format:"Microsoft Excel",icon:"file-excel",unit:"px"},ppt:{format:"Microsoft PowerPoint",icon:"file-powerpoint",unit:"pt"},pptx:{format:"Microsoft PowerPoint",icon:"file-powerpoint",unit:"pt"},pps:{format:"Microsoft PowerPoint",icon:"file-powerpoint",unit:"pt"},ppsx:{format:"Microsoft PowerPoint",icon:"file-powerpoint",unit:"pt"},vsd:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vdx:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vss:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vsx:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vst:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vtx:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vsdx:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vdw:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vstx:{format:"Microsoft Visio",icon:"file-code",unit:"px"},vssx:{format:"Microsoft Visio",icon:"file-code",unit:"px"},mpp:{format:"Microsoft Project",icon:"file-alt",unit:"pt"},mpt:{format:"Microsoft Project",icon:"file-alt",unit:"pt"},msg:{format:"Microsoft Outlook",icon:"file-alt",unit:"pt"},eml:{format:"Microsoft Outlook",icon:"file-alt",unit:"pt"},emlx:{format:"Microsoft Outlook",icon:"file-alt",unit:"pt"},one:{format:"Microsoft OneNote",icon:"file-word",unit:"pt"},odt:{format:"Open Document Text",icon:"file-word",unit:"pt"},ott:{format:"Open Document Text Template",icon:"file-word",unit:"pt"},ods:{format:"Open Document Spreadsheet",icon:"file-excel",unit:"px"},odp:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},otp:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},ots:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},potx:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},potm:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},pptm:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},ppsm:{format:"Open Document Presentation",icon:"file-powerpoint",unit:"pt"},rtf:{format:"Rich Text Format",icon:"file-alt",unit:"pt"},txt:{format:"Plain Text File",icon:"file-alt",unit:"pt"},csv:{format:"Comma-Separated Values",icon:"file-excel",unit:"px"},html:{format:"HyperText Markup Language",icon:"file-word",unit:"pt"},mht:{format:"HyperText Markup Language",icon:"file-word",unit:"pt"},mhtml:{format:"HyperText Markup Language",icon:"file-word",unit:"pt"},xml:{format:"Extensible Markup Language",icon:"file-word",unit:"pt"},xps:{format:"XML Paper Specification",icon:"file-word",unit:"pt"},dxf:{format:"AutoCAD Drawing File Format",icon:"file-image",unit:"px"},dwg:{format:"AutoCAD Drawing File Format",icon:"file-image",unit:"px"},bmp:{format:"Bitmap Picture",icon:"file-image",unit:"px"},gif:{format:"Graphics Interchange Format",icon:"file-image",unit:"px"},jpg:{format:"Joint Photographic Experts Group",icon:"file-image",unit:"px"},jpe:{format:"Joint Photographic Experts Group",icon:"file-image",unit:"px"},jpeg:{format:"Joint Photographic Experts Group",icon:"file-image",unit:"px"},jfif:{format:"Joint Photographic Experts Group",icon:"file-image",unit:"px"},png:{format:"Portable Network Graphics",icon:"file-image",unit:"px"},tiff:{format:"Tagged Image File Format",icon:"file-image",unit:"px"},tif:{format:"Tagged Image File Format",icon:"file-image",unit:"px"},psd:{format:"Tagged Image File Format",icon:"file-image",unit:"px"},svg:{format:"Tagged Image File Format",icon:"file-image",unit:"px"},jp2:{format:"Tagged Image File Format",icon:"file-image",unit:"px"},epub:{format:"Electronic Publication",icon:"file-pdf",unit:"pt"},ico:{format:"Windows Icon",icon:"file-image",unit:"px"},webp:{format:"Compressed Image",icon:"file-image",unit:"px"},mobi:{format:"Mobipocket eBook",icon:"file-pdf",unit:"pt"},tex:{format:"LaTeX Source Document",icon:"file-pdf",unit:"pt"},djvu:{format:"Multi-Layer Raster Image",icon:"file-alt",unit:"pt"},unknown:{format:"This format is not supported",icon:"file"}},t}(),M=function(){},L=function(){function t(){var t=this;this._uploadsChange=new c.Observable(function(e){return t._observer=e})}return Object.defineProperty(t.prototype,"uploadsChange",{get:function(){return this._uploadsChange},enumerable:!0,configurable:!0}),t.prototype.changeFilesList=function(t){this._observer.next(t)},t}(),R=p,A=[{name:"Disc",icon:"hdd"},{name:"URL",icon:"link"}],H=function(){function t(t){this._uploadService=t,this.uploads=A,this.selectedFileGuid=new e.EventEmitter,this.selectedDirectory=new e.EventEmitter,this.urlForUpload=new e.EventEmitter,this.closing=new e.EventEmitter,this.showUploadUrl=!1,this.showUploadFile=!1}return t.prototype.ngOnInit=function(){},t.prototype.getSize=function(t){var e=t/1024/1024;if(e>1)return Math.round(100*e)/100+" MB";var o=t/1024;return o>1?Math.round(100*o)/100+" KB":t+" Bytes"},t.prototype.getFormatName=function(t){return T.find(t.name,t.directory).format},t.prototype.getFormatIcon=function(t){return T.find(t.name,t.directory).icon},t.prototype.choose=function(t){this.selectedFile=t,t.directory||t.isDirectory?this.selectedDirectory.emit(t.name):this.selectedFileGuid.emit(t.guid)},t.prototype.goUp=function(){if(this.selectedFile){var t=this.selectedFile.guid;t=t.length>0&&-1===t.indexOf("/")?"":t.replace(/\/[^\/]+\/?$/,""),this.selectedDirectory.emit(t)}},t.prototype.selectUpload=function(t){"URL"===t?this.showUploadUrl=!0:(this.showUploadUrl=!1,R("#gd-upload-input").trigger("click"))},t.prototype.refresh=function(t){t?(this.files=null,this.selectedDirectory.emit(""),this.showUploadUrl=!1,this.selectedFile=null):this.closing.emit(!0)},t.prototype.showSpinner=function(){return!this.files},t.prototype.uploadUrl=function(t){t&&(this.urlForUpload.emit(t),this.cleanUpload())},t.prototype.handleFileInput=function(t){this._uploadService.changeFilesList(t)},t.prototype.cleanUpload=function(){this.showUploadFile=!1,this.showUploadUrl=!1},t.decorators=[{type:e.Component,args:[{selector:"gd-browse-files-modal",template:'\r\n
\r\n
\r\n \r\n Drop file here to upload\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Upload file\r\n \r\n \r\n \r\n \r\n \r\n
{{item.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
FILE
\r\n
SIZE
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
..
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{file?.name}}
\r\n
{{getFormatName(file)}}
\r\n
\r\n
\r\n
\r\n {{getSize(file?.size)}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n  Loading... Please wait.\r\n
\r\n
\r\n
\r\n',styles:[".gd-modal-table{width:100%;text-align:left}#gd-browse-section{width:1036px;height:561px;overflow-y:auto}.list-files-header{height:60px;color:#6e6e6e;font-size:13px;font-weight:700;background-color:#f4f4f4;margin-top:24px}.list-files-header.upload-url{margin-top:20px}.header-name{padding-left:24px;width:90%;line-height:60px}.header-size{padding-right:27px;line-height:60px}.file-size,.header-size{width:10%;color:#777;text-align:right}.file-description{display:flex;width:90%;padding:18px 0 18px 24px;font-size:14px;flex:1;cursor:pointer;overflow:hidden}.file-size{font-size:12px;padding:0 27px 0 0;width:10%;line-height:79px}.list-files-header,.list-files-lines{display:flex;width:100%;justify-content:space-between}.gd-modal-spinner{background-color:#fff;width:100%;height:20px;text-align:center;font-size:16px}.gd-cancel-button{padding:7px;background:0 0;width:28px;overflow:hidden}.gd-cancel-button i{font-size:21px}.gd-file-name{white-space:nowrap;overflow:hidden;width:100%;text-overflow:ellipsis}.go-up{display:flex;font-size:26px;cursor:pointer;color:#4b566c;height:79px}.go-up-dots{margin-left:20px;margin-top:22px;font-size:16px}.go-up-icon{display:block;padding:18px 0 18px 24px}.upload-panel{display:flex;position:relative;width:100%}.upload-panel .context{display:flex;flex-direction:column;width:100%;margin-left:24px;margin-top:24px;margin-right:24px}.upload-panel .context .context-actions{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-actions :last-child{margin-right:0}.upload-panel .context .context-actions ::ng-deep .button{height:37px;width:96px;padding:0;justify-content:center}.upload-panel .context .context-actions ::ng-deep .button ::ng-deep .text{font-size:10px}.upload-panel .context .context-panel{display:flex;flex-direction:row;width:100%;margin-top:20px}.upload-panel .context .context-panel .upload-url{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-panel .upload-url .url-input{width:100%;height:27px;border:1px solid #25c2d4;font-size:14px;padding-left:6px}.upload-panel .context .context-panel .upload-url .url-check{width:31px;height:31px;color:#fff;font-size:15px;background-color:#25c2d4}.upload-panel .context .context-panel .upload-url .url-check .ng-fa-icon{display:block;padding:8px}.upload-panel gd-drop-down{margin-right:10px}.file-description .ng-fa-icon.fa-file-pdf{color:#e04e4e}.file-description .ng-fa-icon.fa-file-word{color:#539cf0}.file-description .ng-fa-icon.fa-file-powerpoint{color:#e29e1e}.file-description .ng-fa-icon.fa-file-excel{color:#7cbc46}.file-description .ng-fa-icon.fa-file-image{color:#c375ed}.file-description .ng-fa-icon.fa-file,.file-description .ng-fa-icon.fa-file-alt,.file-description .ng-fa-icon.fa-file-text .fa-folder{color:#4b566c}.file-description .ng-fa-icon{font-size:32px}.file-name{font-size:16px;color:#6e6e6e;overflow:hidden;text-overflow:ellipsis}.file-name-format{padding-left:11px;overflow:hidden}.file-format{font-size:10px;padding-top:3px;color:#acacac}.go-up,.list-files-lines{border-bottom:1px solid #e7e7e7}.list-files-lines:hover{background-color:#e5e5e5}.gd-dnd-wrap{background-color:#fff;cursor:default;position:absolute;width:100%;height:calc(100% - 60px);background:rgba(255,255,255,.7);z-index:1;display:flex;justify-content:center;align-items:center}.dnd-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;top:259px;position:absolute}.dnd-wrapper .text{color:#6e6e6e;font-size:14px}.dnd-wrapper .icon{display:flex;width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}@media (max-width:1037px){.file-size,.header-size{width:18%}.gd-dnd-wrap{width:95%}#gd-browse-section{width:100%;height:calc(100% - 146px)}}"]}]}],t.ctorParameters=function(){return[{type:L}]},t.propDecorators={files:[{type:e.Input}],uploadConfig:[{type:e.Input}],selectedFileGuid:[{type:e.Output}],selectedDirectory:[{type:e.Output}],urlForUpload:[{type:e.Output}],closing:[{type:e.Output}]},t}(),U=function(){function t(){this._observer=new c.Subject,this._zoomChange=this._observer.asObservable()}return Object.defineProperty(t.prototype,"zoom",{get:function(){return this._zoom},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"zoomChange",{get:function(){return this._zoomChange},enumerable:!0,configurable:!0}),t.prototype.changeZoom=function(t){this._zoom=t,this._observer.next(t)},t.prototype.createZoomOption=function(t,e,o){return void 0===o&&(o=!1),{value:t,name:e,separator:o}},t.prototype.zoomOptions=function(t,e){return[this.createZoomOption(25,"25%"),this.createZoomOption(50,"50%"),this.createZoomOption(100,"100%"),this.createZoomOption(150,"150%"),this.createZoomOption(200,"200%"),this.createZoomOption(300,"300%"),this.createZoomOption(0,"",!0),this.createZoomOption(t,"Fit Width"),this.createZoomOption(e,"Fit Height")]},t}(),W=function(){function t(){var t=this;this.resizeSubject=new c.Subject,this.width=window.innerWidth,this.height=window.innerHeight,this._resize$=c.fromEvent(window,"resize").pipe(d.debounceTime(200),d.distinctUntilChanged(),d.startWith({target:{innerWidth:window.innerWidth,innerHeight:window.innerHeight}}),d.tap(function(e){t.resizeSubject.next(e.target),t.width=e.target.innerWidth,t.height=e.target.innerHeight})),this._resize$.subscribe()}return Object.defineProperty(t.prototype,"onResize",{get:function(){return this.resizeSubject.asObservable()},enumerable:!0,configurable:!0}),t.prototype.isMobile=function(){return this.width<=425},t.prototype.isTablet=function(){return this.width<=1024},t.prototype.isDesktop=function(){return!this.isMobile()&&!this.isTablet()},t.prototype.isEdge=function(){return window.navigator.userAgent.toLowerCase().indexOf("edge")>-1},t.prototype.isFirefox=function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1},t}(),B=function(){function t(){this._observerRotationAngle=new c.Subject,this._rotationAngleChange=this._observerRotationAngle.asObservable()}return Object.defineProperty(t.prototype,"rotationAngleChange",{get:function(){return this._rotationAngleChange},enumerable:!0,configurable:!0}),t.prototype.setRotationAngle=function(t){this._observerRotationAngle.next(t)},t}(),N=p,q=function(){function t(t,e,o,n){var i=this;this._elementRef=t,this._zoomService=e,this._windowService=o,this._rotationServcie=n,this.wait=!1,this.docWidth=null,this.docHeight=null,this.viewportWidth=null,this.viewportHeight=null,this.scale=null,this.lastScale=null,this.container=null,this.doc=null,this.x=0,this.lastX=0,this.y=0,this.lastY=0,this.pinchCenter=null,this.pinchCenterOffset=null,this.curWidth=0,this.curHeight=0,e.zoomChange.subscribe(function(t){i.zoom=t}),this.isDesktop=o.isDesktop()}return t.prototype.ngOnInit=function(){},t.prototype.ngOnChanges=function(){this._elementRef.nativeElement.children.item(0).children.item(0).style.transform=""},t.prototype.ngAfterViewInit=function(){this.doc=this._elementRef.nativeElement.children.item(0).children.item(0),this.container=this._elementRef.nativeElement,this.docWidth=this.doc.clientWidth,this.docHeight=this.doc.clientHeight,this.viewportWidth=this.doc.offsetWidth,this.scale=this.viewportWidth/this.docWidth*this._zoomService.zoom/100,this.lastScale=this.scale,this.viewportHeight=this.container.offsetHeight,this.curWidth=this.docWidth*this.scale,this.curHeight=this.docHeight*this.scale;new l(this.container)},t.prototype.ifExcel=function(){return"Microsoft Excel"===T.find(this.file.guid,!1).format},t.prototype.getDimensionWithUnit=function(t){return t+T.find(this.file.guid,!1).unit},t.prototype.ngAfterViewChecked=function(){var t=this._elementRef.nativeElement.querySelectorAll(".gd-wrapper").item(0);t&&N(t).trigger("focus")},t.prototype.absolutePosition=function(t){for(var e=0,o=0;null!==t;)e+=t.offsetLeft,o+=t.offsetTop,t=t.offsetParent;return{x:e,y:o}},t.prototype.restrictRawPos=function(t,e,o){return t0&&(t=0),t},t.prototype.updateLastPos=function(){this.lastX=this.x,this.lastY=this.y},t.prototype.translate=function(t,e){var o=this.restrictRawPos(this.lastX+t/this.scale,Math.min(this.viewportWidth,this.curWidth),this.docWidth);this.x=o,this.container.scrollLeft=-Math.ceil(o*this.scale);var n=this.restrictRawPos(this.lastY+e/this.scale,Math.min(this.viewportHeight,this.curHeight),this.docHeight);this.y=n,this.container.scrollTop=-Math.ceil(n*this.scale),this.doc.style.transform="scale("+this.scale+")"},t.prototype.startZoom=function(t){this.scale=this.lastScale*t,this.curWidth=this.docWidth*this.scale,this.curHeight=this.docHeight*this.scale,this.translate(0,0)},t.prototype.rawCenter=function(t){var e=this.absolutePosition(this.container),o=window.pageXOffset?window.pageXOffset:document.body.scrollLeft,n=window.pageYOffset?window.pageYOffset:document.body.scrollTop;return{x:-this.x+(t.center.x-e.x+o)/this.scale,y:-this.y+(t.center.y-e.y+n)/this.scale}},t.prototype.updateLastScale=function(){this.lastScale=this.scale},t.prototype.zoomAround=function(t,e,o,n){this.startZoom(t);var i=-this.x+Math.min(this.viewportWidth,this.curWidth)/2/this.scale,r=-this.y+Math.min(this.viewportHeight,this.curHeight)/2/this.scale,s=(i-e)*this.scale,a=(r-o)*this.scale;this.translate(s,a),n||(this.updateLastScale(),this.updateLastPos())},t.prototype.onPinch=function(t){if(console.log("pinch"),null===this.pinchCenter){this.pinchCenter=this.rawCenter(t);var e=this.pinchCenter.x*this.scale-(-this.x*this.scale+Math.min(this.viewportWidth,this.curWidth)/2),o=this.pinchCenter.y*this.scale-(-this.y*this.scale+Math.min(this.viewportHeight,this.curHeight)/2);this.pinchCenterOffset={x:e,y:o}}var n=this.scale*t.scale,i={x:(this.pinchCenter.x*n-this.pinchCenterOffset.x)/n,y:(this.pinchCenter.y*n-this.pinchCenterOffset.y)/n};this.zoomAround(t.scale,i.x,i.y,!0)},t.prototype.onPinchEnd=function(t){console.log("pinchEnd"),this.updateLastScale(),this.updateLastPos(),this.pinchCenter=null},t.prototype.onPan=function(t){},t.prototype.onPanEnd=function(t){},t.prototype.onDoubleTap=function(t){if(!this.isDesktop&&2===t.tapCount){var e=this.rawCenter(t);this.zoomAround(2,e.x,e.y,!1)}},t.prototype.onRotateStart=function(t){this.initialRotation=t.rotation,console.log("rotateStart: "+t.rotation+" "+t.angle)},t.prototype.onRotateEnd=function(t){console.log("rotateEnd: "+t.rotation+" "+t.angle),t.rotation>0&&this.initialRotation>0?t.rotation>this.initialRotation&&t.rotation-this.initialRotation>45?this._rotationServcie.setRotationAngle(90):t.rotation45&&this._rotationServcie.setRotationAngle(-90):this.initialRotation>t.rotation&&t.rotation-this.initialRotation>45?this._rotationServcie.setRotationAngle(-90):this.initialRotation45&&this._rotationServcie.setRotationAngle(90)},t.decorators=[{type:e.Component,args:[{selector:"gd-document",template:'
Please wait...
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n',styles:[":host{flex:1;transition:.4s;background-color:#e7e7e7;height:100%;overflow:scroll}.page{display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.page.excel{overflow:auto}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:flex-start}.panzoom.mobile{overflow:scroll}@media (max-width:1037px){.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"]}]}],t.ctorParameters=function(){return[{type:e.ElementRef},{type:U},{type:W},{type:B}]},t.propDecorators={mode:[{type:e.Input}],preloadPageCount:[{type:e.Input}],file:[{type:e.Input}]},t}(),V=function(){function t(){}return t.prototype.ngOnInit=function(){/*@cc_on!@*/!!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent)&&0===this.number&&(this.editable=!1)},t.prototype.ngOnChanges=function(t){this.data=null!==this.data?this.data.replace(/>\s+<").replace(/\uFEFF/g,""):null;this.imgData="data:image/png;base64,",this.isHtml||(this.imgData+=this.data)},t.decorators=[{type:e.Component,args:[{selector:"gd-page",template:'
\r\n
\r\n \r\n
\r\n \r\n  Loading... Please wait.\r\n
\r\n
\r\n',styles:[".gd-page-spinner{margin-top:150px;text-align:center}.gd-wrapper{width:inherit;height:inherit}.gd-wrapper div{width:100%}/deep/ .gd-highlight{background-color:#ff0}/deep/ .gd-highlight-select{background-color:#ff9b00}.gd-page-image{height:100%!important;width:100%!important}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={angle:[{type:e.Input}],width:[{type:e.Input}],height:[{type:e.Input}],number:[{type:e.Input}],data:[{type:e.Input}],isHtml:[{type:e.Input}],editable:[{type:e.Input}]},t}(),$=function(){function t(t){this.sanitizer=t}return t.prototype.transform=function(t){return this.sanitizer.bypassSecurityTrustHtml(t)},t.decorators=[{type:e.Pipe,args:[{name:"safeHtml"}]}],t.ctorParameters=function(){return[{type:u.DomSanitizer}]},t}(),Z=function(){function t(t){this.sanitizer=t}return t.prototype.transform=function(t){return this.sanitizer.bypassSecurityTrustResourceUrl(t)},t.decorators=[{type:e.Pipe,args:[{name:"safeResourceHtml"}]}],t.ctorParameters=function(){return[{type:u.DomSanitizer}]},t}(),G=function(){function t(t){this.sanitizer=t}return t.prototype.transform=function(t){return this.sanitizer.bypassSecurityTrustStyle(t)},t.decorators=[{type:e.Pipe,args:[{name:"safeStyle"}]}],t.ctorParameters=function(){return[{type:u.DomSanitizer}]},t}(),J=function(){function t(){}return t.prototype.transform=function(t,e){if(!e)return t;var o=new RegExp(e,"gi");return t.replace(o,"$&")},t.decorators=[{type:e.Pipe,args:[{name:"highlight"}]}],t}(),X=function(){function t(t){this._uploadService=t,this.closeUpload=new e.EventEmitter}return t.prototype.ngOnInit=function(){},t.prototype.handleFileInput=function(t){this._uploadService.changeFilesList(t),this.onCloseUpload()},t.prototype.onCloseUpload=function(){this.closeUpload.emit(!0)},t.prototype.close=function(t){"gd-dropZone"===t.target.id&&this.onCloseUpload()},t.decorators=[{type:e.Component,args:[{selector:"gd-upload-file-zone",template:'
\r\n
\r\n \r\n
\r\n

Drag & Drop your files here

\r\n

OR

\r\n
\r\n \r\n
\r\n
\r\n',styles:[".gd-drag-n-drop-wrap{border:2px dashed #ccc;background-color:#f8f8f8;text-align:center;cursor:default;position:absolute;width:-webkit-fill-available;left:1px;display:flex;align-content:center;flex-direction:column;justify-content:center;opacity:.9;z-index:1}.gd-drag-n-drop-wrap h2{color:#959da5;margin:5px 0;font-size:15px;font-weight:300}.gd-drag-n-drop-wrap h4{color:#cacaca;font-weight:300;font-size:12px;margin:10px 0 15px}.gd-drag-n-drop-icon .fa-cloud-download-alt{color:#d1d1d1;font-size:110px}.gd-drag-n-drop-buttons i{margin-right:5px}.gd-drag-n-drop-buttons .btn{width:134px;height:35px;margin:0 10px;font-size:12px;font-weight:400}.gd-drag-n-drop-wrap.hover{background:#ddd;border-color:#aaa}"]}]}],t.ctorParameters=function(){return[{type:L}]},t.propDecorators={closeUpload:[{type:e.Output}]},t}(),Y=function(){function t(t){this._uploadFilesService=t,this.closing=new e.EventEmitter,this.opening=new e.EventEmitter,this.dropped=new e.EventEmitter,this.active=!1}return t.prototype.onDragOver=function(t){t.preventDefault(),t.stopPropagation(),this.active=!0,this.opening.emit(!0)},t.prototype.onDragLeave=function(t){t.preventDefault(),t.stopPropagation(),this.active=!1,this.closeArea()},t.prototype.onDrop=function(t){t.preventDefault(),t.stopPropagation();var e=t.dataTransfer.files;e.length>0&&(this.active=!1,this.dropped.emit(!0),this._uploadFilesService.changeFilesList(e),this.closeArea())},t.prototype.onClick=function(t){this.closeArea()},t.prototype.closeArea=function(){this.closing.emit(!0),this.opening.emit(!1)},t.decorators=[{type:e.Directive,args:[{selector:"[gdDnd]"}]}],t.ctorParameters=function(){return[{type:L}]},t.propDecorators={closing:[{type:e.Output}],opening:[{type:e.Output}],dropped:[{type:e.Output}],active:[{type:e.HostBinding,args:["class.active"]}],onDragOver:[{type:e.HostListener,args:["dragover",["$event"]]}],onDragLeave:[{type:e.HostListener,args:["dragleave",["$event"]]}],onDrop:[{type:e.HostListener,args:["drop",["$event"]]}],onClick:[{type:e.HostListener,args:["click",["$event"]]}]},t}(),K=function(){function t(){var t=this;this._checkPreload=new c.Observable(function(e){return t._observer=e})}return Object.defineProperty(t.prototype,"checkPreload",{get:function(){return this._checkPreload},enumerable:!0,configurable:!0}),t.prototype.changeLastPageInView=function(t){this._observer&&this._observer.next(t)},t}(),Q=function(){function t(t){var e=this;this._pagePreloadService=t,this._currentPage=0,this._countPages=0,this._navigate=new c.Observable(function(t){return e._observer=t})}return Object.defineProperty(t.prototype,"navigate",{get:function(){return this._navigate},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"countPages",{get:function(){return this._countPages},set:function(t){this._countPages=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentPage",{get:function(){return this._currentPage},set:function(t){this._currentPage=t},enumerable:!0,configurable:!0}),t.prototype.nextPage=function(){this._currentPage1&&(this._currentPage--,this.navigateTo(this._currentPage))},t.prototype.toLastPage=function(){this._currentPage=this._countPages,this.navigateTo(this._currentPage)},t.prototype.toFirstPage=function(){this._currentPage=1,this.navigateTo(this._currentPage)},t.prototype.navigateTo=function(t){this.currentPage=t,this._pagePreloadService.changeLastPageInView(t),this._observer.next(t)},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:K}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(K))},token:t,providedIn:"root"}),t}(),tt=p,et=function(){function t(){}return t.prototype.checkInViewport=function(t,e,o,n){if(void 0===e&&(e=100),void 0===o&&(o=0),void 0===n&&(n=.5),!t)return!1;var i=n,r=tt(window),s=r.scrollTop(),a=r.scrollLeft()+o,c=r.scrollLeft()+r.width()-10,p=r.scrollTop()+r.height();isNaN(e)&&(e=100);var l=e/100,d=tt(t).outerHeight()*l,u=tt(t).outerWidth()*l;if(!u||!d)return!1;var h=tt(t).offset(),g=h.left*l+u,f=h.top*l+d;if(!!(cg||pf))return!1;var m=parseFloat(Math.min(1,(f-s)/d).toFixed(2)),v=parseFloat(Math.min(1,(p-h.top*l)/d).toFixed(2));return parseFloat(Math.min(1,(g-a)/u).toFixed(2))*parseFloat(Math.min(1,(c-h.left*l)/u).toFixed(2))>=i&&m*v>=.5},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),ot=p,nt=function(){function t(t,e,o,n,i,r){var s=this;this._elementRef=t,this._navigateService=e,this._pagePreloadService=o,this._zoomService=n,this._windowService=i,this._viewportService=r,this.zoom=100,this.zoom=n.zoom?n.zoom:this.zoom,n.zoomChange.subscribe(function(t){s.zoom=t||s.zoom,s.refresh()})}return t.prototype.ngAfterViewInit=function(){var t=this;this.zoom=this._zoomService.zoom?this._zoomService.zoom:this.zoom,this._navigateService.navigate.subscribe(function(e){t.currentPage=e,t.scrollToPage(e)}),this.refresh()},t.prototype.scrolling=function(){this.refresh()},t.prototype.resizing=function(){this.refresh()},t.prototype.scrollToPage=function(t){var e=this._elementRef.nativeElement,o=this.getPage(t),n=t>0?this.getPage(t-1):null,i=n&&ot(n).offset().top===ot(o).offset().top;if(!this._viewportService.checkInViewport(o,this.zoom)||!i){var r={left:0,top:this.calculateOffset(t)};e&&e.scroll(r)}},t.prototype.getChildren=function(){var t=this._elementRef?this._elementRef.nativeElement:null;if(t)return t.children.item(0).children.item(0).children},t.prototype.getPage=function(t){var e=this._elementRef?this._elementRef.nativeElement:null;if(e)return e.children.item(0).children.item(0).children.item(t-1)},t.prototype.calculateOffset=function(t){for(var e=this._windowService.isFirefox()?1:this.countPagesOnWidth(),o=this._windowService.isDesktop()?40:10,n=0,i=1;i0?s*this.getZoom()+o:0}return n},t.prototype.countPagesOnWidth=function(){var t=this.getPage(1),e=Math.floor((this.getWidth()-150)/(t.getBoundingClientRect().width*this.getZoom()));return 0===e?1:e},t.prototype.refresh=function(){var t,e=!1,o=this.getPage(this.currentPage),n=this.currentPage&&o?o.getBoundingClientRect():null;for(t=1;to&&(o=t.width)}),this.minWidth=o+T.find(this.file.guid,!1).unit}},t.prototype.getScrollWidth=function(t){return t.offsetWidth-t.clientWidth},t.prototype.resizePages=function(t){var e=100===t?1:t/100,o=this.el.nativeElement.parentElement.offsetWidth,n=this.getScrollWidth(this.el.nativeElement.parentElement);this.width=o/e-n/e+"px"},t.prototype.ngAfterViewInit=function(){this.setStyles(this._zoomService.zoom)},t.decorators=[{type:e.Directive,args:[{selector:"[gdZoom]"}]}],t.ctorParameters=function(){return[{type:U},{type:W},{type:e.ElementRef}]},t.propDecorators={zoomActive:[{type:e.Input}],file:[{type:e.Input}],zoomInt:[{type:e.HostBinding,args:["style.zoom"]}],transform:[{type:e.HostBinding,args:["style.transform"]}],transformOrigin:[{type:e.HostBinding,args:["style.transform-origin"]}],width:[{type:e.HostBinding,args:["style.width"]}],minWidth:[{type:e.HostBinding,args:["style.min-width"]}]},t}(),rt=function(){function t(){this._observer=new c.Subject,this._onClose=this._observer.asObservable()}return Object.defineProperty(t.prototype,"onClose",{get:function(){return this._onClose},enumerable:!0,configurable:!0}),t.prototype.close=function(t){this._observer.next(t)},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),st=function(){function t(t){var o=this;this._onCloseService=t,this.disabled=!1,this.selected=new e.EventEmitter,this.isOpen=!1,t.onClose.subscribe(function(){o.close()})}return t.prototype.open=function(){this.disabled||(this.isOpen=!0)},t.prototype.close=function(){this.isOpen=!1},t.prototype.onClickOutside=function(t){this.close()},t.prototype.toggle=function(t){t.preventDefault(),t.stopPropagation(),this.disabled||(this.isOpen=!this.isOpen)},t.prototype.select=function(t,e){t.preventDefault(),t.stopPropagation(),this.selected.emit(e),this.close()},t.decorators=[{type:e.Component,args:[{selector:"gd-select",template:'
\r\n \r\n {{showSelected?.name}}\r\n \r\n \r\n \r\n
\r\n',styles:[".select{min-width:50px;color:#959da5}.selected-value{font-size:14px;cursor:pointer;white-space:nowrap}.selected-value.inactive{cursor:not-allowed;color:#ccc}.nav-caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent;cursor:pointer}.nav-caret.inactive{cursor:not-allowed;color:#ccc}.dropdown-menu{position:absolute;top:49px;z-index:1000;float:left;min-width:96px;list-style:none;font-size:13px;text-align:left;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);background-clip:padding-box}.dropdown-menu .option{display:block;padding:7px 0 7px 7px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;cursor:pointer;font-size:10px}.dropdown-menu .option:hover{background-color:#25c2d4;color:#fff!important}.dropdown-menu-separator{height:1px;overflow:hidden;background-color:#f4f4f4;padding:0!important}"]}]}],t.ctorParameters=function(){return[{type:rt}]},t.propDecorators={options:[{type:e.Input}],disabled:[{type:e.Input}],showSelected:[{type:e.Input}],selected:[{type:e.Output}]},t}(),at=function(){function t(){}return t.prototype.updateCursor=function(){this.cursor=!!this.dis},t.prototype.ngOnInit=function(){this.updateCursor()},t.prototype.ngOnChanges=function(t){this.updateCursor()},t.decorators=[{type:e.Directive,args:[{selector:"[gdDisabledCursor]"}]}],t.ctorParameters=function(){return[]},t.propDecorators={dis:[{type:e.Input}],cursor:[{type:e.HostBinding,args:["class.inactive"]}]},t}(),ct=function(){function t(){this.withMargin=!0}return t.prototype.updateCursor=function(){"string"==typeof this.angle&&(this.angle=parseInt(this.angle,10)),this.angle?(this.animation="none",this.transition="none",this.transform="rotate("+this.angle+"deg)"):0===this.angle&&this.animation&&(this.animation=null,this.transition=null,this.transform=null),this.withMargin&&(90===this.angle||270===this.angle||-90===this.angle||-270===this.angle?this.isHtmlMode?this.isLandscape()?this.margin="164px 254px":this.margin="-111px 254px":this.isLandscape()?this.margin="129px 100px -79px":this.margin="-72px 100px -79px":-180===this.angle||180===this.angle?this.margin="280px":this.margin=null)},t.prototype.isLandscape=function(){return this.width>this.height},t.prototype.ngOnInit=function(){this.updateCursor()},t.prototype.ngOnChanges=function(t){this.updateCursor()},t.decorators=[{type:e.Directive,args:[{selector:"[gdRotation]"}]}],t.ctorParameters=function(){return[]},t.propDecorators={angle:[{type:e.Input}],isHtmlMode:[{type:e.Input}],width:[{type:e.Input}],height:[{type:e.Input}],withMargin:[{type:e.Input}],animation:[{type:e.HostBinding,args:["style.animation"]}],transition:[{type:e.HostBinding,args:["style.transition-property"]}],transform:[{type:e.HostBinding,args:["style.transform"]}],margin:[{type:e.HostBinding,args:["style.margin"]}]},t}(),pt=function(){function t(){this.fileDropped=new e.EventEmitter,this.showUploadFile=!1}return t.prototype.ngOnInit=function(){},t.prototype.dropped=function(t){t&&(this.fileDropped.emit(t),this.showUploadFile=!1)},t.decorators=[{type:e.Component,args:[{selector:"gd-init-state",template:'
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{text}}\r\n
\r\n
\r\n',styles:[".wrapper{color:#959da5;background-color:#e7e7e7;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%}.icon{font-size:65px;margin-bottom:43px;display:flex;color:#959da5}.start{font-size:15px;text-align:center;color:#959da5}.gd-drag-n-drop-wrap.active{background-color:#fff;position:fixed;top:0;background:rgba(255,255,255,.8)}.gd-drag-n-drop-wrap.active .init-state-wrapper{position:absolute;opacity:.2;top:unset}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper{top:0;z-index:999}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper .icon{width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}.gd-drag-n-drop-wrap.active .text{color:#6e6e6e;font-size:14px}.init-state-dnd-wrapper,.init-state-wrapper{display:flex;flex-direction:column;width:250px;height:250px;align-items:center;justify-content:center}.init-state-wrapper{top:-60px;position:relative}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={icon:[{type:e.Input}],text:[{type:e.Input}],fileDropped:[{type:e.Output}]},t}(),lt=function(){function t(){var t=this;this._render=new c.Observable(function(e){return t._observer=e}),this._renderBlob=new c.Observable(function(e){return t._observerBlob=e})}return Object.defineProperty(t.prototype,"renderPrint",{get:function(){return this._render},enumerable:!0,configurable:!0}),t.prototype.changePages=function(t){this._observer.next(t)},Object.defineProperty(t.prototype,"renderPrintBlob",{get:function(){return this._renderBlob},enumerable:!0,configurable:!0}),t.prototype.changeBlob=function(t){this._observerBlob.next(t)},t}(),dt=function(){function t(t){var e=this;this._renderService=t,t.renderPrint.subscribe(function(t){e.renderPrint(t)}),t.renderPrintBlob.subscribe(function(t){e.renderPrintBlob(t)})}return t.prototype.renderPrint=function(t){var e,o,n,i,r="";if(this.htmlMode)try{for(var s=m(t),a=s.next();!a.done;a=s.next()){r+='
'+l.data+"
"}}catch(t){e={error:t}}finally{try{a&&!a.done&&(o=s.return)&&o.call(s)}finally{if(e)throw e.error}}else try{for(var c=m(t),p=c.next();!p.done;p=c.next()){var l;r+='
'}}catch(t){n={error:t}}finally{try{p&&!p.done&&(i=c.return)&&i.call(c)}finally{if(n)throw n.error}}this.openWindow(r,t[0].width,t[0].height)},t.prototype.openWindow=function(t,e,o){var n="";if(e>595&&o>842){var i=Math.round(o/842)/100;n=".gd-page img { width: 100%; margin: 0; padding: 0;}",navigator.userAgent.toLowerCase().indexOf("firefox")>-1&&(n=".gd-page img { transform: scale("+i+");}")}var r="";var s=window.open("","PrintWindow","width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes");s.focus(),s.document.writeln(r),s.document.writeln(t),s.document.close(),s.focus(),s.print(),s.close()},t.prototype.renderPrintBlob=function(t){var e=URL.createObjectURL(t),o=window.open(e,"PrintWindow","width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes");o.focus(),o.print(),o.close()},t.decorators=[{type:e.Directive,args:[{selector:"[gdRenderPrint]"}]}],t.ctorParameters=function(){return[{type:lt}]},t.propDecorators={htmlMode:[{type:e.Input}]},t}(),ut=function(){function t(){this._observer=new c.BehaviorSubject("Server is not available"),this._messageChange=this._observer.asObservable()}return Object.defineProperty(t.prototype,"messageChange",{get:function(){return this._messageChange},enumerable:!0,configurable:!0}),t.prototype.changeMessage=function(t){this._observer.next(t)},t}(),ht=function(){function t(t){var e=this;t.messageChange.subscribe(function(t){return e.message=t})}return t.prototype.ngOnInit=function(){},t.decorators=[{type:e.Component,args:[{selector:"gd-error-modal",template:'\r\n
\r\n \r\n
\r\n
Something went wrong
\r\n
{{message ? message : \'Server is not available\'}}
\r\n
\r\n
\r\n
\r\n',styles:[".gd-modal-error{display:inline-flex;flex-direction:column;flex:1}.gd-modal-error .gd-modal-error-message{font-size:12px;margin:0 24px 24px 0}.gd-modal-error .gd-modal-error-title{font-size:16px;font-weight:700;margin:14px 0 10px}#gd-error-section{max-width:468px;max-height:204px;display:flex}#gd-error-section fa-icon{flex:1;color:#e04e4e;font-size:40px;margin:13px 23px 90px;text-align:center}"]}]}],t.ctorParameters=function(){return[{type:ut}]},t}(),gt=function(){function t(){this._observer=new c.Subject,this._passChange=this._observer.asObservable()}return Object.defineProperty(t.prototype,"passChange",{get:function(){return this._passChange},enumerable:!0,configurable:!0}),t.prototype.setPassword=function(t){this._observer.next(t)},t}(),ft=function(){function t(t,e){var o=this;this._passwordService=e,t.messageChange.subscribe(function(t){return o.message=t})}return t.prototype.ngOnInit=function(){},t.prototype.setPassword=function(t){this._passwordService.setPassword(t)},t.decorators=[{type:e.Component,args:[{selector:"gd-password-required",template:'\r\n
\r\n
\r\n \r\n \r\n {{message}}\r\n \r\n Open\r\n \r\n
\r\n
\r\n
\r\n',styles:["#gd-password-section{width:468px;height:164px}.gd-password-wrap{display:flex;flex-direction:column;margin:24px}.gd-password-wrap label{font-size:14px;color:#acacac;padding-bottom:12px}.gd-password-wrap input{height:30px;border:1px solid #25c2d4}.gd-password-wrap input.error{border-color:#e04e4e}.gd-password-wrap gd-button{align-self:flex-end}.gd-password-wrap ::ng-deep .button{height:37px;width:72px;padding:0;justify-content:center}.gd-password-wrap ::ng-deep .button ::ng-deep .text{font-size:10px!important}.gd-password-error{color:#e04e4e;padding:10px 0 12px;height:12px;line-height:12px;font-size:12px}@media (max-width:1037px){#gd-password-section{min-width:375px}}"]}]}],t.ctorParameters=function(){return[{type:ut},{type:gt}]},t}(),mt=function(){function t(t,e){this._modalService=t,this._messageService=e}return t.prototype.intercept=function(t,e){var o=this,n="background: maroon; color: white";return e.handle(t).pipe(d.map(function(t){return t}),d.catchError(function(t){if(t instanceof a.HttpErrorResponse)switch(t.status){case j.BadRequest:console.error("%c Bad Request 400",n);break;case j.Unauthorized:console.error("%c Unauthorized 401",n);break;case j.NotFound:console.error("%c Not Found 404",n);break;case j.TimeOut:console.error("%c TimeOut 408",n);break;case j.InternalServerError:console.error("%c big bad 500",n),o._messageService.changeMessage(t.error.message),o._modalService.open(_.ErrorMessage);break;case j.Forbidden:console.error("%c Forbidden 403",n),o._messageService.changeMessage(t.error.message),o._modalService.open(_.PasswordRequired)}return c.throwError(t)}))},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:P},{type:ut}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(P),e.ɵɵinject(ut))},token:t,providedIn:"root"}),t}(),vt=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.overrides={pinch:{direction:l.DIRECTION_ALL,enable:!0,dropRecognizeWith:"rotate"},rotate:{direction:l.DIRECTION_ALL,enable:!0,requireFailure:"pinch"}},e}return f(e,t),e}(u.HammerGestureConfig),bt=function(){function t(){this._observer=new c.Subject,this._textChange=this._observer.asObservable(),this._observerCurrent=new c.Subject,this._currentChange=this._observerCurrent.asObservable(),this._observerTotal=new c.Subject,this._totalChange=this._observerTotal.asObservable()}return Object.defineProperty(t.prototype,"textChange",{get:function(){return this._textChange},enumerable:!0,configurable:!0}),t.prototype.setText=function(t){this._observer.next(t)},Object.defineProperty(t.prototype,"currentChange",{get:function(){return this._currentChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"totalChange",{get:function(){return this._totalChange},enumerable:!0,configurable:!0}),t.prototype.setCurrent=function(t){this._observerCurrent.next(t)},t.prototype.setTotal=function(t){this._observerTotal.next(t)},t}(),xt=function(){function t(t){var o=this;this._searchService=t,this.hidePanel=new e.EventEmitter(!1),this.current=0,this.total=0,t.totalChange.subscribe(function(t){o.total=t,o.current=0!==t?1:0,o._searchService.setCurrent(o.current)})}return t.prototype.ngOnInit=function(){},t.prototype.setText=function(t){this._searchService.setText(t)},t.prototype.hide=function(){this.setText(""),this.hidePanel.emit(!0)},t.prototype.prev=function(){this.current>1&&(this.current--,this._searchService.setCurrent(this.current))},t.prototype.next=function(){this.current\r\n \r\n
{{current}} of {{total}}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n',styles:[".gd-nav-search-btn{margin:3px 0 4px}.gd-nav-search-cancel{color:#fff;font-size:14px;width:37px}.gd-search-count{color:#959da5;font-size:12px;position:absolute;right:148px;top:14px}.gd-nav-search-container{background-color:#3e4e5a;width:410px;position:fixed;left:50%;top:60px;z-index:2;transform:translate(-50%,0);display:flex}.gd-search-input{float:left;height:30px;width:267px;font-size:14px;color:#6e6e6e;border:1px solid #25c2d4;margin:7px 0 7px 7px;box-sizing:border-box;padding:6px 0 5px 9px}input[type=text]::-ms-clear{display:none}@media (max-width:1037px){.gd-search-input{width:231px;height:30px;margin:7px 0 7px 5px}.gd-search-count{position:absolute;left:193px;top:15px}.gd-nav-search-container{width:100%}}"]}]}],t.ctorParameters=function(){return[{type:bt}]},t.propDecorators={hidePanel:[{type:e.Output}],textElement:[{type:e.ViewChild,args:["text",{static:!0}]}]},t}(),yt=p,wt=function(){function t(t,e,o,n){var i=this;this._elementRef=t,this._searchService=e,this._highlight=o,this._zoomService=n,this.current=0,this.total=0,this.zoom=100,e.currentChange.subscribe(function(t){i.current=t,0!==i.current&&i.moveToCurrent()}),e.textChange.subscribe(function(t){i.text=t,i.highlightSearch()}),this.zoom=n.zoom?n.zoom:this.zoom,n.zoomChange.subscribe(function(t){i.zoom=t||i.zoom})}return t.prototype.highlightSearch=function(){var t=this._elementRef?this._elementRef.nativeElement:null;if(t){if(this.cleanHighlight(t),this.text){this.highlightEl(t);var e=t.querySelectorAll(".gd-highlight").length;this.total=e}else this.total=0;this._searchService.setTotal(this.total)}},t.prototype.moveToCurrent=function(){if(0!==this.current){this.getZoom();var t=this._elementRef?this._elementRef.nativeElement:null;if(t){t.querySelectorAll(".gd-highlight-select").forEach(function(t){yt(t).removeClass("gd-highlight-select")});var e=t.querySelectorAll(".gd-highlight")[this.current-1];if(yt(e).addClass("gd-highlight-select"),e){var o={left:0,top:yt(e).offset().top+t.parentElement.parentElement.scrollTop-150};t.parentElement.parentElement.scroll(o)}}}},t.prototype.highlightEl=function(t){var e=yt(t).find("*").contents().filter(function(){var t=this.parentElement.nodeName.toLowerCase(),e=!this.classList||!this.classList.contains("gd-highlight");return 3===this.nodeType&&0!==this.textContent.trim().length&&"style"!==t&&"title"!==t&&"body"!==t&&"script"!==t&&e}),o=this.text,n=this._highlight;e.each(function(){var t=yt(this),e=t.text();e=n.transform(e,o),t.replaceWith(e)}),t.normalize()},t.prototype.cleanHighlight=function(t){for(var e=t.querySelectorAll(".gd-highlight"),o=0;o\r\n \r\n \r\n\r\n',styles:[".top-panel{background:#3e4e5a;display:flex;width:100%;height:90px}.top-panel ::ng-deep .logo{height:30px;font-size:16px}@media (max-width:1037px){.top-panel{height:60px}.top-panel ::ng-deep .logo{height:60px}}"]}]}],t.ctorParameters=function(){return[]},t}(),Ct=function(){function t(){this._observer=new c.Subject,this._activeTabChange=this._observer.asObservable()}return Object.defineProperty(t.prototype,"activeTabChange",{get:function(){return this._activeTabChange},enumerable:!0,configurable:!0}),t.prototype.changeActiveTab=function(t){this._observer.next(t)},t}(),_t=function(){function t(t){var e=this;this._tabActivatorService=t,this.disabled=!1,this.active=!1,this.content=!0,this._tabActivatorService.activeTabChange.subscribe(function(t){e.activation(t)})}return t.prototype.activation=function(t){this.id===t?this.active=!0:this.active=!1},t.prototype.ngOnInit=function(){},t.prototype.selectTab=function(){this.disabled||this._tabActivatorService.changeActiveTab(this.id)},t.decorators=[{type:e.Component,args:[{selector:"gd-tab",template:'
\r\n
{{tabTitle}}
\r\n \r\n
\r\n
\r\n \r\n
\r\n',styles:[".gd-editor-buttons{height:60px;position:absolute;background-color:#fff;width:100%;left:0;line-height:60px;display:none;z-index:9}.gd-editor-buttons ::ng-deep .toolbar-panel{height:60px}.gd-editor-buttons.active{display:flex}.gd-tab{text-align:center;font-size:11px;color:#e5e5e5;height:30px;line-height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center}.gd-tab .icon{display:none;font-size:14px;margin:auto 23px}.gd-tab .title{margin:auto 23px}.gd-tab.active{background-color:#fff;color:#3e4e5a;font-weight:700}@media (max-width:1037px){.gd-tab{height:60px;line-height:60px}.gd-tab .title{display:none}.gd-tab .icon{display:block}}"]}]}],t.ctorParameters=function(){return[{type:Ct}]},t.propDecorators={id:[{type:e.Input}],tabTitle:[{type:e.Input}],icon:[{type:e.Input}],disabled:[{type:e.Input}],active:[{type:e.Input}],content:[{type:e.Input}]},t}(),Pt=function(){function t(){}return t.decorators=[{type:e.Component,args:[{selector:"gd-tabs",template:'
\r\n \r\n
\r\n',styles:[".gd-tabs{display:flex}"]}]}],t.ctorParameters=function(){return[]},t}(),Ot=function(){function t(t,e,o,n,i,r,s,a,c,p){this.fontSize=t,this.color=e,this.bgColor=o,this.bold=n,this.italic=i,this.underline=r,this.font=s,this.strikeout=a,this.align=c,this.list=p}return t.DEFAULT=new t(10,"#000000","#FFFFFF",!1,!1,!1,"Arial",!1,"",""),t}(),kt=function(){function t(){this._observerBold=new c.Subject,this._formatBoldChange=this._observerBold.asObservable(),this._observerUnderline=new c.Subject,this._formatUnderlineChange=this._observerUnderline.asObservable(),this._observerUndo=new c.Subject,this._undo=this._observerUndo.asObservable(),this._observerRedo=new c.Subject,this._redo=this._observerRedo.asObservable(),this._observerItalic=new c.Subject,this._formatItalicChange=this._observerItalic.asObservable(),this._observerColor=new c.Subject,this._formatColorChange=this._observerColor.asObservable(),this._observerBgColor=new c.Subject,this._formatBgColorChange=this._observerBgColor.asObservable(),this._observerFontSize=new c.Subject,this._formatFontSizeChange=this._observerFontSize.asObservable(),this._observerFont=new c.Subject,this._formatFontChange=this._observerFont.asObservable(),this._observerStrikeout=new c.Subject,this._formatStrikeoutChange=this._observerStrikeout.asObservable(),this._observerAlign=new c.Subject,this._formatAlignChange=this._observerAlign.asObservable(),this._observerList=new c.Subject,this._formatListChange=this._observerList.asObservable()}return Object.defineProperty(t.prototype,"formatBoldChange",{get:function(){return this._formatBoldChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatUnderlineChange",{get:function(){return this._formatUnderlineChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatColorChange",{get:function(){return this._formatColorChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatBgColorChange",{get:function(){return this._formatBgColorChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatFontSizeChange",{get:function(){return this._formatFontSizeChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatFontChange",{get:function(){return this._formatFontChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"undo",{get:function(){return this._undo},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"redo",{get:function(){return this._redo},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatItalicChange",{get:function(){return this._formatItalicChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatStrikeoutChange",{get:function(){return this._formatStrikeoutChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatAlignChange",{get:function(){return this._formatAlignChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formatListChange",{get:function(){return this._formatListChange},enumerable:!0,configurable:!0}),t.createFontSizeOption=function(t){return{value:t,name:t+"px",separator:!1}},t.getFontSizeOptions=function(){return[t.createFontSizeOption(8),t.createFontSizeOption(10),t.createFontSizeOption(12),t.createFontSizeOption(14),t.createFontSizeOption(16),t.createFontSizeOption(18),t.createFontSizeOption(20),t.createFontSizeOption(22),t.createFontSizeOption(24)]},t.createFontOption=function(t){return{value:t,name:t,separator:!1}},t.getFontOptions=function(){var t=this,e=[];return["Arial","Calibri","Century Gothic","Comic Sans","Consolas","Courier","Dejavu Sans","Dejavu Serif","Georgia","Gill Sans","Helvetica","Impact","Lucida Sans","Myriad Pro","Open Sans","Palatino","Tahoma","Times New Roman","Trebuchet"].forEach(function(o){e.push(t.createFontOption(o))}),e},t.prototype.changeFormatFontSize=function(t){this._observerFontSize.next(t)},t.prototype.changeFormatBold=function(t){this._observerBold.next(t)},t.prototype.changeFormatUnderline=function(t){this._observerUnderline.next(t)},t.prototype.Undo=function(){this._observerUndo.next()},t.prototype.Redo=function(){this._observerRedo.next()},t.prototype.changeFormatItalic=function(t){this._observerItalic.next(t)},t.prototype.changeFormatColor=function(t){this._observerColor.next(t)},t.prototype.changeFormatBgColor=function(t){this._observerBgColor.next(t)},t.prototype.changeFormatFont=function(t){this._observerFont.next(t)},t.prototype.changeFormatStrikeout=function(t){this._observerStrikeout.next(t)},t.prototype.changeFormatAlign=function(t){this._observerAlign.next(t)},t.prototype.changeFormatList=function(t){this._observerList.next(t)},t}(),Ft=["#000000","#993300","#333300","#000080","#333399","#333333","#800000","#FF6600","#808000","#008000","#008080","#0000FF","#666699","#808080","#FF0000","#FF9900","#99CC00","#339966","#33CCCC","#3366FF","#800080","#999999","#FF00FF","#FFCC00","#FFFF00","#00FF00","#00FFFF","#00CCFF","#993366","#C0C0C0","#FF99CC","#FFCC99","#FFFF99","#CCFFFF","#99CCFF","#FFFFFF"],It=function(){function t(){this.selectedColor=new e.EventEmitter,this.colors=Ft}return t.prototype.ngOnInit=function(){},t.prototype.select=function(t,e){t.preventDefault(),t.stopPropagation(),this.selectedColor.emit(e)},t.decorators=[{type:e.Component,args:[{selector:"gd-color-picker",template:'
\r\n
\r\n
\r\n
\r\n
\r\n',styles:[".bcPicker-picker{border:1px;border-radius:100%}.bcPicker-palette{width:232px;padding:5px;border:1px solid #efefef;background-color:#fdfdfd;z-index:999}.bcPicker-palette>.bcPicker-color{width:14px;height:14px;margin:2px;display:inline-block;border:1px solid #efefef;background-color:#9da97b;cursor:pointer}"]}]}],t.ctorParameters=function(){return[]},t.propDecorators={selectedColor:[{type:e.Output}]},t}(),zt=function(t){function o(){return t.call(this)||this}return f(o,t),o.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],o.ctorParameters=function(){return[]},o.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new o},token:o,providedIn:"root"}),o}(kt),Et=function(){function t(){this.isIE=!!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent)}return t.prototype.restoreSelection=function(){(this.selection&&!this.selection.collapsed||this.isIE)&&this.putSelection(this.selection)},t.prototype.captureSelection=function(){var t=window.getSelection();t.rangeCount>0&&(this.selection=t.getRangeAt(0))},t.prototype.putSelection=function(t){var e=window.getSelection();e.removeAllRanges(),e.addRange(t.cloneRange())},t.prototype.refreshSelection=function(){this.captureSelection(),this.restoreSelection()},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),Dt=p,jt=function(){function t(t,e,o){this._formattingService=t,this._backFormattingService=e,this._selectionService=o,this.bold=!1,this.italic=!1,this.underline=!1,this.strikeout=!1,this.isIE=!1,this.isIE=/*@cc_on!@*/!!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent)}return t.prototype.mouseup=function(){this.bold=document.queryCommandState("bold"),this.strikeout=document.queryCommandState("strikeThrough"),this.italic=document.queryCommandState("italic"),this.bgColor=document.queryCommandValue("backColor"),this.underline=document.queryCommandState("underline"),this.align=this.checkJustify(),this.list=this.checkList(),"transparent"===this.bgColor&&(this.bgColor=Dt(window.getSelection().focusNode.parentNode).css("background-color").toString()),this.font=document.queryCommandValue("FontName").replace(/"/g,""),this.font.split(",").length>1&&(this.font=this.font.split(",")[0]),this.color=document.queryCommandValue("foreColor"),this._backFormattingService.changeFormatBold(this.bold),this._backFormattingService.changeFormatUnderline(this.underline),this._backFormattingService.changeFormatItalic(this.italic),this._backFormattingService.changeFormatColor(this.color),this._backFormattingService.changeFormatBgColor(this.bgColor),this._backFormattingService.changeFormatFontSize(this.reportFontSize()),this._backFormattingService.changeFormatFont(this.font),this._backFormattingService.changeFormatStrikeout(this.strikeout),this._backFormattingService.changeFormatAlign(this.align),this._backFormattingService.changeFormatList(this.list)},t.prototype.checkJustify=function(){var t="";return t=document.queryCommandState("justifyCenter")?"center":t,t=document.queryCommandState("justifyFull")?"full":t,t=document.queryCommandState("justifyLeft")?"left":t,t=document.queryCommandState("justifyRight")?"right":t},t.prototype.checkList=function(){var t="";return t=document.queryCommandState("insertUnorderedList")?"unordered":t,t=document.queryCommandState("insertOrderedList")?"ordered":t},t.prototype.reportFontSize=function(){var t,e;if(window.getSelection?(e=window.getSelection()).rangeCount&&3===(t=e.getRangeAt(0).commonAncestorContainer).nodeType&&(t=t.parentNode):(e=document.getSelection())&&"Control"!==e.type&&(t=e.createRange().parentElement()),t)return parseInt(this.getComputedStyleProperty(t,"fontSize").replace("px",""),10)},t.prototype.getComputedStyleProperty=function(t,e){return window.getComputedStyle?window.getComputedStyle(t,null)[e]:t.currentStyle?t.currentStyle[e]:void 0},t.prototype.ngOnInit=function(){var t=this;this._formattingService.undo.subscribe(function(){t.toggleUndo()}),this._formattingService.redo.subscribe(function(){t.toggleRedo()}),this._formattingService.formatBoldChange.subscribe(function(e){t.bold=e,t.toggleBold()}),this._formattingService.formatUnderlineChange.subscribe(function(e){t.underline=e,t.toggleUnderline()}),this._formattingService.formatItalicChange.subscribe(function(e){t.italic=e,t.toggleItalic()}),this._formattingService.formatColorChange.subscribe(function(e){t.color=e,t.setColor(e)}),this._formattingService.formatBgColorChange.subscribe(function(e){t.bgColor=e,t.setBgColor(e)}),this._formattingService.formatFontSizeChange.subscribe(function(e){t.setFontSize(e)}),this._formattingService.formatFontChange.subscribe(function(e){t.font=e,t.setFont(e)}),this._formattingService.formatStrikeoutChange.subscribe(function(e){t.strikeout=e,t.toggleStrikeout()}),this._formattingService.formatAlignChange.subscribe(function(e){t.align=e,t.toggleAlign(t.align)}),this._formattingService.formatListChange.subscribe(function(e){t.list=e,t.toggleList(t.list)})},t.prototype.toggleBold=function(){document.execCommand("bold"),this._selectionService.refreshSelection()},t.prototype.toggleUnderline=function(){document.execCommand("underline"),this._selectionService.refreshSelection()},t.prototype.toggleItalic=function(){document.execCommand("italic"),this._selectionService.refreshSelection()},t.prototype.setBgColor=function(t){document.execCommand("backColor",!1,t),this._selectionService.refreshSelection()},t.prototype.setColor=function(t){document.execCommand("foreColor",!1,t),this._selectionService.refreshSelection()},t.prototype.setFontSize=function(t){if(document.getSelection().toString()){var e=""+document.getSelection()+"";this.bold&&(e=""+e+""),this.italic&&(e=""+e+""),this.underline&&(e=""+e+""),this.strikeout&&(e=""+e+""),document.execCommand("insertHTML",!1,e)}else document.execCommand("fontsize",!1,"7");this._selectionService.refreshSelection()},t.prototype.toggleUndo=function(){document.execCommand("undo")},t.prototype.toggleRedo=function(){document.execCommand("redo")},t.prototype.setFont=function(t){document.execCommand("fontName",!1,t),this._selectionService.refreshSelection()},t.prototype.toggleStrikeout=function(){document.execCommand("strikeThrough"),this._selectionService.refreshSelection()},t.prototype.toggleAlign=function(t){if(this.isIE)this.toggleAlignIE(t);else{switch(document.execCommand("styleWithCSS",!1,"true"),t){case"center":document.execCommand("justifyCenter");break;case"full":document.execCommand("justifyFull");break;case"left":document.execCommand("justifyLeft");break;case"right":document.execCommand("justifyRight")}this._selectionService.refreshSelection()}},t.prototype.toggleAlignIE=function(t){this._selectionService.restoreSelection(),this._selectionService.captureSelection();var e=window.getSelection().focusNode.parentNode.parentNode;"full"===t&&(t="justify"),Dt(e).css("text-align",t),this._selectionService.refreshSelection()},t.prototype.toggleList=function(t){switch(t){case"unordered":document.execCommand("insertUnorderedList");break;case"ordered":document.execCommand("insertOrderedList")}this._selectionService.refreshSelection()},t.decorators=[{type:e.Directive,args:[{selector:"[gdFormatting]"}]}],t.ctorParameters=function(){return[{type:kt},{type:zt},{type:Et}]},t.propDecorators={mouseup:[{type:e.HostListener,args:["mouseup"]}]},t}(),Tt=function(){function t(){}return t.prototype.ngOnInit=function(){},t.decorators=[{type:e.Component,args:[{selector:"gd-success-modal",template:'\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n',styles:[".check_mark{margin:47px auto}.sa-icon{width:80px;height:80px;border:4px solid gray;border-radius:50%;padding:0;position:relative;box-sizing:content-box}#gd-modal-success{display:flex;overflow:hidden;width:469px;height:183px}.sa-icon.sa-success{border-color:#4caf50;transform:scale(1.18)}.sa-icon.sa-success::after,.sa-icon.sa-success::before{content:'';position:absolute;width:60px;height:120px;background:#fff}.sa-icon.sa-success::before{border-radius:120px 0 0 120px;top:-7px;left:-33px;transform:rotate(-45deg);transform-origin:60px 60px}.sa-icon.sa-success::after{border-radius:0 120px 120px 0;top:-11px;left:30px;transform:rotate(-45deg);transform-origin:0 60px}.sa-icon.sa-success .sa-placeholder{width:80px;height:80px;border:4px solid rgba(76,175,80,.5);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.sa-icon.sa-success .sa-fix{width:5px;height:90px;background-color:#fff;position:absolute;left:28px;top:8px;z-index:1;transform:rotate(-45deg)}.sa-icon.sa-success.animate::after{-webkit-animation:4.25s ease-in rotatePlaceholder;animation:4.25s ease-in rotatePlaceholder}.animateSuccessTip{-webkit-animation:.75s animateSuccessTip;animation:.75s animateSuccessTip}.animateSuccessLong{-webkit-animation:.75s animateSuccessLong;animation:.75s animateSuccessLong}@-webkit-keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}.sa-icon.sa-success .sa-line{height:5px;background-color:#4caf50;display:block;border-radius:2px;position:absolute;z-index:2}.sa-icon.sa-success .sa-line.sa-tip{width:25px;left:14px;top:46px;transform:rotate(45deg)}.sa-icon.sa-success .sa-line.sa-long{width:47px;right:8px;top:38px;transform:rotate(-45deg)}@-webkit-keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@media (max-width:1037px){#gd-modal-success{left:50%;top:50%;position:relative;transform:translate(-50%,-50%)}}"]}]}],t.ctorParameters=function(){return[]},t}(),Mt=function(){function t(){this._observer=new c.Subject,this._htmlContent=this._observer.asObservable()}return Object.defineProperty(t.prototype,"observer",{get:function(){return this._observer},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"htmlContent",{get:function(){return this._htmlContent},enumerable:!0,configurable:!0}),t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),Lt=function(){function t(t,e){this._selectionService=t,this._htmlService=e,this.isIE=!!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent)}return t.prototype.onInput=function(t){if(this.text=t.target,this.isIE&&this.text.innerHTML){var e=this.text.innerHTML.toString();this._htmlService.observer.next(e)}},t.prototype.onMouseleave=function(t){this._selectionService.captureSelection(),this.isIE&&this._htmlService.observer.next(t.target.innerHTML.toString())},t.prototype.onBlur=function(t){if(t.preventDefault(),this._selectionService.restoreSelection(),this.text.innerHTML){var e=this.text.innerHTML.toString();this._htmlService.observer.next(e)}else this._htmlService.observer.next(t.target.innerHTML.toString())},t.decorators=[{type:e.Directive,args:[{selector:"[gdEditor]"}]}],t.ctorParameters=function(){return[{type:Et},{type:Mt}]},t.propDecorators={text:[{type:e.Input}],onInput:[{type:e.HostListener,args:["keyup",["$event"]]}],onMouseleave:[{type:e.HostListener,args:["mouseleave",["$event"]]}],onBlur:[{type:e.HostListener,args:["blur",["$event"]]}]},t}(),Rt=function(){function t(){this.onLoadingChanged=new e.EventEmitter,this.requests=[]}return t.prototype.onRequestStart=function(t){this.requests.push(t),this.notify()},t.prototype.onRequestFinish=function(t){var e=this.requests.indexOf(t);-1!==e&&this.requests.splice(e,1),this.notify()},t.prototype.notify=function(){this.onLoadingChanged.emit(0!==this.requests.length)},t.decorators=[{type:e.Injectable}],t.ctorParameters=function(){return[]},t}(),At=function(){function t(t){this._loadingMaskService=t,this.loadingMask=!1}return t.prototype.ngOnInit=function(){},t.prototype.ngAfterViewInit=function(){var t=this;this._loadingMaskService.onLoadingChanged.subscribe(function(e){return t.loadingMask=e})},t.decorators=[{type:e.Component,args:[{selector:"gd-loading-mask",template:'
\r\n
\r\n  Loading... Please wait.\r\n
\r\n
\r\n',styles:[".loading-wrapper{background:rgba(0,0,0,.5);width:100%;height:100%;font-size:14px;color:#fff;position:fixed;top:0;left:0;z-index:99999}.loading-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"]}]}],t.ctorParameters=function(){return[{type:Rt}]},t.propDecorators={loadingMask:[{type:e.Input}]},t}(),Ht=function(){function t(t){this._loadingMaskService=t}return t.prototype.intercept=function(t,e){var o=this;this._loadingMaskService.onRequestStart(t);return e.handle(t).pipe(d.finalize(function(){return o._loadingMaskService.onRequestFinish(t)}))},t.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[{type:Rt}]},t.ngInjectableDef=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(Rt))},token:t,providedIn:"root"}),t}(),Ut={center:{right:"auto"},left:{right:"100%"},right:{right:"-100%"}},Wt={center:{top:"0px"},top:{top:"-100%",right:"100%"},bottom:{top:"autos"}},Bt=function(){function t(t){var e=this;this.dropdown=t,this.click=function(t){return e.dropdown.toggle(t)}}return t.decorators=[{type:e.Component,args:[{selector:"gd-drop-down-toggle",template:"",encapsulation:e.ViewEncapsulation.None,styles:[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],t.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef(function(){return Vt})]}]}]},t.propDecorators={click:[{type:e.HostListener,args:["click",["$event"]]}]},t}(),Nt=function(){function t(t){this.dropdown=t}return Object.defineProperty(t.prototype,"horizontalAlign",{get:function(){return Ut[this.dropdown.getPlacement().h].right},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"verticalAlign",{get:function(){return Wt[this.dropdown.getPlacement().v].top},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isOpen",{get:function(){return this.dropdown.open},enumerable:!0,configurable:!0}),t.prototype.onClickOutside=function(t){this.dropdown.close()},t.decorators=[{type:e.Component,args:[{selector:"gd-drop-down-items",template:'',encapsulation:e.ViewEncapsulation.None,styles:[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],t.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef(function(){return Vt})]}]}]},t}(),qt=function(){function t(t){var o=this;this.dropdown=t,this.class="drop-down-item",this.selected=new e.EventEmitter,this.click=function(){return o.selectEntry()}}return t.prototype.selectEntry=function(){this.selected.next(),this.dropdown.close()},t.decorators=[{type:e.Component,args:[{selector:"gd-drop-down-item",template:'',styles:[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],t.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.forwardRef(function(){return Vt})]}]}]},t.propDecorators={class:[{type:e.HostBinding,args:["class"]}],selected:[{type:e.Output}],click:[{type:e.HostListener,args:["click"]}]},t}(),Vt=function(){function t(){this.placement={h:"center",v:"bottom"},this.open=!1,this.class="drop-down"}return t.prototype.close=function(){this.open=!1},t.prototype.toggle=function(t){t.stopPropagation(),this.open=!this.open,document.body.click()},t.prototype.getPlacement=function(){return this.placement},t.decorators=[{type:e.Component,args:[{selector:"gd-drop-down",template:'',encapsulation:e.ViewEncapsulation.None,styles:[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],t.propDecorators={placement:[{type:e.Input}],open:[{type:e.Input},{type:e.HostBinding,args:["class.show"]}],class:[{type:e.HostBinding,args:["class"]}]},t}(),$t=[C,S,P,M,D,T,$,Z,G,J,L,lt,Q,K,U,ut,gt,B,mt,vt,bt,W,et,kt,zt,rt,Ht,Rt,Ct],Zt=function(){function t(){i.library.add(r.fas,s.far)}return t.decorators=[{type:e.NgModule,args:[{imports:[o.CommonModule,n.FontAwesomeModule,h.ClickOutsideModule],declarations:[v,b,x,y,w,O,H,q,V,$,Z,G,J,X,Y,nt,it,st,at,ct,pt,dt,ht,ft,xt,wt,St,_t,Pt,It,jt,Tt,Lt,At,Vt,qt,Nt,Bt],exports:[v,b,x,y,w,O,H,q,V,Z,G,J,$,X,nt,st,ct,pt,dt,ht,ft,xt,wt,St,_t,Pt,It,jt,Tt,At,Y,Vt,qt,Nt,Bt],providers:$t}]}],t.ctorParameters=function(){return[]},t}();t.Api=S,t.BackFormattingService=zt,t.BrowseFilesModalComponent=H,t.ButtonComponent=x,t.ColorPickerComponent=It,t.CommonComponentsModule=Zt,t.CommonModals=_,t.ConfigService=C,t.CustomHammerConfig=vt,t.DisabledCursorDirective=at,t.DndDirective=Y,t.DocumentComponent=q,t.DropDownComponent=Vt,t.DropDownItemComponent=qt,t.DropDownItemsComponent=Nt,t.DropDownToggleComponent=Bt,t.EditHtmlService=Mt,t.EditorDirective=Lt,t.ErrorInterceptorService=mt,t.ErrorModalComponent=ht,t.ExceptionMessageService=ut,t.FileCredentials=I,t.FileDescription=E,t.FileModel=D,t.FileService=M,t.FileUtil=T,t.Formatting=Ot,t.FormattingDirective=jt,t.FormattingService=kt,t.HighlightSearchPipe=J,t.HttpError=j,t.InitStateComponent=pt,t.LoadingMaskComponent=At,t.LoadingMaskInterceptorService=Ht,t.LoadingMaskService=Rt,t.LogoComponent=y,t.ModalComponent=O,t.ModalService=P,t.NavigateService=Q,t.OnCloseService=rt,t.PageComponent=V,t.PageModel=k,t.PagePreloadService=K,t.PasswordRequiredComponent=ft,t.PasswordService=gt,t.RenderPrintDirective=dt,t.RenderPrintService=lt,t.RotatedPage=F,t.RotationDirective=ct,t.RotationService=B,t.SanitizeHtmlPipe=$,t.SanitizeResourceHtmlPipe=Z,t.SanitizeStylePipe=G,t.SaveFile=z,t.ScrollableDirective=nt,t.SearchComponent=xt,t.SearchService=bt,t.SearchableDirective=wt,t.SelectComponent=st,t.SelectionService=Et,t.SidePanelComponent=b,t.SuccessModalComponent=Tt,t.TabActivatorService=Ct,t.TabComponent=_t,t.TabbedToolbarsComponent=St,t.TooltipComponent=w,t.TopToolbarComponent=v,t.UploadFileZoneComponent=X,t.UploadFilesService=L,t.ViewportService=et,t.WindowService=W,t.ZoomDirective=it,t.ZoomService=U,t.ɵa=Pt,Object.defineProperty(t,"__esModule",{value:!0})}); //# sourceMappingURL=groupdocs.examples.angular-common-components.umd.min.js.map \ No newline at end of file diff --git a/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.min.js.map b/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.min.js.map index 9d5a92756..97e6096ac 100644 --- a/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.min.js.map +++ b/dist/libs/common-components/bundles/groupdocs.examples.angular-common-components.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/common-components/lib/top-toolbar/top-toolbar.component.ts","ng://@groupdocs.examples.angular/common-components/lib/side-panel/side-panel.component.ts","ng://@groupdocs.examples.angular/common-components/lib/button/button.component.ts","ng://@groupdocs.examples.angular/common-components/lib/logo/logo.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tooltip/tooltip.component.ts","ng://@groupdocs.examples.angular/common-components/lib/config.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal/modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/file.service.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-files.service.ts","ng://@groupdocs.examples.angular/common-components/lib/browse-files-modal/browse-files-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.service.ts","ng://@groupdocs.examples.angular/common-components/lib/window.service.ts","ng://@groupdocs.examples.angular/common-components/lib/document/document.component.ts","ng://@groupdocs.examples.angular/common-components/lib/page/page.component.ts","ng://@groupdocs.examples.angular/common-components/lib/pipes.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-file-zone/upload-file-zone.component.ts","ng://@groupdocs.examples.angular/common-components/lib/dnd.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/page-preload.service.ts","ng://@groupdocs.examples.angular/common-components/lib/navigate.service.ts","ng://@groupdocs.examples.angular/common-components/lib/viewport.service.ts","ng://@groupdocs.examples.angular/common-components/lib/scrollable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/on-close.service.ts","ng://@groupdocs.examples.angular/common-components/lib/select/select.component.ts","ng://@groupdocs.examples.angular/common-components/lib/disabled-cursor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/rotation.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/init-state/init-state.component.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.service.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/exception-message.service.ts","ng://@groupdocs.examples.angular/common-components/lib/error-modal/error-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/password.service.ts","ng://@groupdocs.examples.angular/common-components/lib/password-required/password-required.component.ts","ng://@groupdocs.examples.angular/common-components/lib/error-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/search.service.ts","ng://@groupdocs.examples.angular/common-components/lib/search/search.component.ts","ng://@groupdocs.examples.angular/common-components/lib/searchable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/tabbed-toolbars/tabbed-toolbars.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tab-activator.service.ts","ng://@groupdocs.examples.angular/common-components/lib/tab/tab.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tabs/tabs.component.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/color-picker/color-picker.component.ts","ng://@groupdocs.examples.angular/common-components/lib/back-formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/selection.service.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/success-modal/success-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/edit-html.service.ts","ng://@groupdocs.examples.angular/common-components/lib/editor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask.service.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask/loading-mask.component.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/drop-down/drop-down.component.ts","ng://@groupdocs.examples.angular/common-components/lib/common-components.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__values","o","m","Symbol","iterator","i","call","next","length","value","done","TopToolbarComponent","Component","args","selector","template","SidePanelComponent","hideSidePanel","EventEmitter","openSidePanel","emit","Input","Output","ButtonComponent","iconOnly","intent","disabled","toggle","showToolTip","iconButtonClass","onHovering","className","onUnhovering","replace","LogoComponent","ngOnInit","TooltipComponent","visibility","defineProperty","Api","VIEWER_APP","EDITOR_APP","COMPARISON_APP","CONVERSION_APP","DEFAULT_API_ENDPOINT","window","location","href","LOAD_FILE_TREE","LOAD_CONFIG","LOAD_DOCUMENT_DESCRIPTION","LOAD_DOCUMENT_PAGE","ROTATE_DOCUMENT_PAGE","UPLOAD_DOCUMENTS","DOWNLOAD_DOCUMENTS","LOAD_PRINT","LOAD_PRINT_PDF","LOAD_THUMBNAILS","LOAD_FORMATS","SAVE_FILE","COMPARE_FILES","CONVERT_FILE","httpOptionsJson","headers","HttpHeaders","Content-Type","httpOptionsJsonResponseTypeBlob","responseType","ConfigService","apiEndpoint","_apiEndpoint","url","trim","endsWith","substring","getConfigEndpoint","app","getViewerApiEndpoint","getEditorApiEndpoint","getComparisonApiEndpoint","getConversionApiEndpoint","Injectable","CommonModals","PasswordRequired","ErrorMessage","BrowseFiles","CreateDocument","OperationSuccess","ModalService","modals","add","modal","push","remove","id","filter","x","open","close","ModalComponent","modalService","el","visible","element","nativeElement","document","body","appendChild","console","error","ngOnDestroy","event","preventDefault","stopPropagation","onClose","$event","target","ElementRef","guid","password","SaveFile","content","_this","_super","tslib_1.__extends","FileCredentials","printAllowed","HttpError","BadRequest","Unauthorized","Forbidden","NotFound","TimeOut","Conflict","InternalServerError","FileUtil","find","filename","isDirectory","strings","split","name_1","pop","toLowerCase","map","folder","format","icon","pdf","unit","doc","docx","docm","dot","dotx","dotm","xls","xlsx","xlsm","xlsb","xls2003","xltx","xltm","ppt","pptx","pps","ppsx","vsd","vdx","vss","vsx","vst","vtx","vsdx","vdw","vstx","vssx","mpp","mpt","msg","eml","emlx","one","odt","ott","ods","odp","otp","ots","potx","potm","pptm","ppsm","rtf","txt","csv","html","mht","mhtml","xml","xps","dxf","dwg","bmp","gif","jpg","jpe","jpeg","jfif","png","tiff","tif","psd","svg","jp2","epub","ico","webp","mobi","tex","djvu","unknown","UploadFilesService","_uploadsChange","Observable","observer","_observer","changeFilesList","filesList","$","jquery","uploads_choices","name","BrowseFilesModalComponent","_uploadService","uploads","selectedFileGuid","selectedDirectory","urlForUpload","closing","showUploadUrl","showUploadFile","getSize","size","mb","Math","round","kb","getFormatName","file","directory","getFormatIcon","choose","selectedFile","goUp","indexOf","selectUpload","trigger","refresh","files","showSpinner","uploadUrl","cleanUpload","handleFileInput","ZoomService","Subject","_zoomChange","asObservable","_zoom","changeZoom","zoom","createZoomOption","val","sep","separator","zoomOptions","width","height","WindowService","resizeSubject","innerWidth","innerHeight","_resize$","fromEvent","pipe","debounceTime","distinctUntilChanged","startWith","tap","subscribe","isMobile","isTablet","isDesktop","isEdge","navigator","userAgent","isFirefox","DocumentComponent","_elementRef","_zoomService","_windowService","wait","docWidth","docHeight","viewportWidth","viewportHeight","scale","lastScale","container","lastX","y","lastY","pinchCenter","pinchCenterOffset","curWidth","curHeight","zoomChange","ngOnChanges","children","item","style","transform","ngAfterViewInit","clientWidth","clientHeight","offsetWidth","offsetHeight","Hammer","ifExcel","getDimensionWithUnit","ngAfterViewChecked","querySelectorAll","absolutePosition","offsetLeft","offsetTop","offsetParent","restrictRawPos","pos","viewportDim","docDim","updateLastPos","translate","deltaX","deltaY","newX","min","scrollLeft","ceil","newY","scrollTop","startZoom","scaleBy","rawCenter","pageXOffset","pageYOffset","center","updateLastScale","zoomAround","rawZoomX","rawZoomY","doNotUpdateLast","rawCenterX","rawCenterY","onPinch","offsetX","offsetY","newScale","zoomCenter","onPinchEnd","onPan","onPanEnd","onDoubleTap","tapCount","c","PageComponent","test","number","editable","changes","data","imgData","isHtml","SanitizeHtmlPipe","sanitizer","bypassSecurityTrustHtml","Pipe","DomSanitizer","SanitizeResourceHtmlPipe","bypassSecurityTrustResourceUrl","SanitizeStylePipe","bypassSecurityTrustStyle","HighlightSearchPipe","re","RegExp","UploadFileZoneComponent","closeUpload","onCloseUpload","DndDirective","_uploadFilesService","opening","dropped","active","onDragOver","evt","onDragLeave","closeArea","onDrop","dataTransfer","onClick","Directive","HostBinding","HostListener","PagePreloadService","_checkPreload","changeLastPageInView","page","NavigateService","_pagePreloadService","_currentPage","_countPages","_navigate","nextPage","navigateTo","prevPage","toLastPage","toFirstPage","currentPage","providedIn","ViewportService","checkInViewport","leftOffset","win","viewport","isNaN","zoomN","outerHeight","outerWidth","bounds","offset","right","left","bottom","top","deltas","parseFloat","toFixed","ScrollableDirective","_navigateService","_viewportService","navigate","scrollToPage","scrolling","resizing","pageNumber","getPage","prev","isSameTop","options","calculateOffset","scroll","getChildren","count","countPagesOnWidth","margin","pagesHeight","getZoom","pageEl","floor","getWidth","getBoundingClientRect","currentPageSet","pageElem","currentPageRect","ZoomDirective","zoomActive","setStyles","resizePages","zoomInt","transformOrigin","maxWidth","pages","forEach","minWidth","getScrollWidth","elm","viewPortWidth","parentElement","scrollWidth","OnCloseService","_onClose","SelectComponent","_onCloseService","selected","isOpen","onClickOutside","select","DisabledCursorDirective","updateCursor","cursor","dis","RotationDirective","withMargin","angle","parseInt","animation","transition","isHtmlMode","isLandscape","InitStateComponent","fileDropped","RenderPrintService","_render","_renderBlob","_observerBlob","changePages","changeBlob","RenderPrintDirective","_renderService","renderPrint","renderPrintBlob","pagesHtml","htmlMode","pages_1","tslib_1.__values","pages_1_1","pages_2","pages_2_1","openWindow","imageA4Adjusted","cssPrint","windowObject","focus","writeln","print","fileURL","URL","createObjectURL","ExceptionMessageService","BehaviorSubject","_messageChange","changeMessage","message","ErrorModalComponent","messageService","messageChange","PasswordService","_passChange","setPassword","pass","PasswordRequiredComponent","_passwordService","ErrorInterceptorService","_modalService","_messageService","intercept","req","logFormat","handle","catchError","exception","HttpErrorResponse","status","throwError","SearchService","_textChange","_observerCurrent","_currentChange","_observerTotal","_totalChange","setText","text","setCurrent","current","setTotal","total","SearchComponent","_searchService","hidePanel","totalChange","hide","textElement","ViewChild","static","SearchableDirective","_highlight","currentChange","moveToCurrent","textChange","highlightSearch","cleanHighlight","highlightEl","removeClass","currentEl","addClass","textNodes","contents","nodeName","checkClass","classList","contains","nodeType","textContent","highlight","each","$this","replaceWith","normalize","nodeListOf","innerText","TabbedToolbarsComponent","TabActivatorService","_activeTabChange","changeActiveTab","tabId","TabComponent","_tabActivatorService","activeTabChange","activation","selectTab","TabsComponent","Formatting","fontSize","color","bgColor","bold","italic","underline","font","strikeout","align","list","DEFAULT","FormattingService","_observerBold","_formatBoldChange","_observerUnderline","_formatUnderlineChange","_observerUndo","_undo","_observerRedo","_redo","_observerItalic","_formatItalicChange","_observerColor","_formatColorChange","_observerBgColor","_formatBgColorChange","_observerFontSize","_formatFontSizeChange","_observerFont","_formatFontChange","_observerStrikeout","_formatStrikeoutChange","_observerAlign","_formatAlignChange","_observerList","_formatListChange","createFontSizeOption","getFontSizeOptions","createFontOption","getFontOptions","fontOptions","changeFormatFontSize","changeFormatBold","changeFormatUnderline","Undo","Redo","changeFormatItalic","changeFormatColor","changeFormatBgColor","bgcolor","changeFormatFont","changeFormatStrikeout","changeFormatAlign","changeFormatList","DEFAULT_COLORS","ColorPickerComponent","selectedColor","colors","BackFormattingService","SelectionService","isIE","restoreSelection","selection","collapsed","putSelection","captureSelection","getSelection","rangeCount","getRangeAt","sel","removeAllRanges","addRange","cloneRange","refreshSelection","FormattingDirective","_formattingService","_backFormattingService","_selectionService","mouseup","queryCommandState","queryCommandValue","checkJustify","checkList","focusNode","parentNode","css","toString","reportFontSize","containerEl","commonAncestorContainer","type","createRange","getComputedStyleProperty","propName","getComputedStyle","currentStyle","undo","toggleUndo","redo","toggleRedo","formatBoldChange","toggleBold","formatUnderlineChange","toggleUnderline","formatItalicChange","toggleItalic","formatColorChange","setColor","formatBgColorChange","setBgColor","formatFontSizeChange","setFontSize","formatFontChange","setFont","formatStrikeoutChange","toggleStrikeout","formatAlignChange","toggleAlign","formatListChange","toggleList","execCommand","spanString","toggleAlignIE","SuccessModalComponent","EditHtmlService","_htmlContent","EditorDirective","_htmlService","onInput","innerHTML","onMouseleave","onBlur","LoadingMaskService","onLoadingChanged","requests","onRequestStart","notify","onRequestFinish","index","splice","LoadingMaskComponent","_loadingMaskService","loadingMask","loading","LoadingMaskInterceptorService","finalize","horizontalAlignment","verticalAlignment","DropDownToggleComponent","dropdown","click","encapsulation","ViewEncapsulation","None","Inject","forwardRef","DropDownComponent","DropDownItemsComponent","getPlacement","h","v","DropDownItemComponent","class","selectEntry","placement","providers","FileService","FileModel","CommonComponentsModule","library","fas","far","NgModule","imports","CommonModule","FontAwesomeModule","ClickOutsideModule","declarations","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'gd-top-toolbar',\n templateUrl: './top-toolbar.component.html',\n styleUrls: ['./top-toolbar.component.less']\n})\nexport class TopToolbarComponent {\n\n constructor() {\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'gd-side-panel',\n templateUrl: './side-panel.component.html',\n styleUrls: ['./side-panel.component.less']\n})\n\nexport class SidePanelComponent {\n @Input() title: string;\n @Input() icon: string;\n @Output() hideSidePanel = new EventEmitter();\n\n constructor() {\n }\n\n openSidePanel() {\n this.hideSidePanel.emit(true);\n }\n}\n","import { Component, ContentChild, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'gd-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.less']\n})\nexport class ButtonComponent {\n @Input()\n iconOnly = true;\n\n @Input()\n intent = 'default';\n\n @Input()\n disabled = false;\n\n @Input()\n icon : string;\n\n @Input()\n iconClass : string;\n\n @Input()\n tooltip : string;\n\n @Input()\n className: string;\n\n @Input()\n toggle = false;\n\n showToolTip = false;\n\n iconButtonClass(){\n return this.iconOnly ? 'icon-button' : '';\n }\n\n onHovering() {\n if (!this.disabled) {\n this.className += ' active';\n }\n this.showToolTip = true;\n }\n\n onUnhovering() {\n if (!this.disabled) {\n this.className = this.className.replace(' active', '');\n }\n this.showToolTip = false;\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'gd-logo',\n templateUrl: './logo.component.html',\n styleUrls: ['./logo.component.less']\n})\nexport class LogoComponent implements OnInit {\n\n @Input() logo;\n @Input() icon;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'gd-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.less']\n})\nexport class TooltipComponent implements OnInit {\n\n @Input() text:string;\n visibility = 'hidden';\n\n constructor() {\n }\n\n @Input()\n set show(value: boolean) {\n this.visibility = value ? 'shown' : 'hidden';\n }\n\n ngOnInit() {\n }\n\n}\n","import {HttpHeaders} from \"@angular/common/http\";\nimport {Injectable} from \"@angular/core\";\n\nexport class Api {\n public static VIEWER_APP = '/viewer';\n public static EDITOR_APP = '/editor';\n public static COMPARISON_APP = '/comparison';\n public static CONVERSION_APP = '/conversion';\n public static DEFAULT_API_ENDPOINT = window.location.href;\n public static LOAD_FILE_TREE = '/loadFileTree';\n public static LOAD_CONFIG = '/loadConfig';\n public static LOAD_DOCUMENT_DESCRIPTION = '/loadDocumentDescription';\n public static LOAD_DOCUMENT_PAGE = '/loadDocumentPage';\n public static ROTATE_DOCUMENT_PAGE = '/rotateDocumentPages';\n public static UPLOAD_DOCUMENTS = '/uploadDocument';\n public static DOWNLOAD_DOCUMENTS = '/downloadDocument';\n public static LOAD_PRINT = '/loadPrint';\n public static LOAD_PRINT_PDF = '/printPdf';\n public static LOAD_THUMBNAILS = '/loadThumbnails';\n public static LOAD_FORMATS = '/loadFormats';\n public static SAVE_FILE = '/saveFile';\n public static COMPARE_FILES = '/compare';\n public static CONVERT_FILE = '/convert';\n\n public static httpOptionsJson = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n public static httpOptionsJsonResponseTypeBlob = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n responseType: 'blob' as 'blob'\n };\n}\n\n@Injectable()\nexport class ConfigService {\n\n private _apiEndpoint: string;\n\n constructor() {\n this.apiEndpoint = Api.DEFAULT_API_ENDPOINT;\n }\n\n set apiEndpoint(url: string) {\n this._apiEndpoint = url && url.trim().endsWith('/') ? url.substring(0, url.length - 1) : url;\n }\n\n getConfigEndpoint(app) {\n return (this.apiEndpoint.endsWith(app) ? this.apiEndpoint : this.apiEndpoint + app) + Api.LOAD_CONFIG;\n }\n\n getViewerApiEndpoint() {\n return this._apiEndpoint.endsWith(Api.VIEWER_APP) ? this._apiEndpoint : this._apiEndpoint + Api.VIEWER_APP;\n }\n\n getEditorApiEndpoint() {\n return this._apiEndpoint.trim().endsWith(Api.EDITOR_APP) ? this._apiEndpoint : this._apiEndpoint + Api.EDITOR_APP;\n }\n\n getComparisonApiEndpoint() {\n return this._apiEndpoint.trim().endsWith(Api.COMPARISON_APP) ? this._apiEndpoint : this._apiEndpoint + Api.COMPARISON_APP;\n }\n\n getConversionApiEndpoint() {\n return this._apiEndpoint.trim().endsWith(Api.CONVERSION_APP) ? this._apiEndpoint : this._apiEndpoint + Api.CONVERSION_APP;\n }\n\n get apiEndpoint() {\n return this._apiEndpoint;\n }\n}\n","export class CommonModals {\n static PasswordRequired = \"gd-password-required\";\n static ErrorMessage = \"gd-error-message\";\n static BrowseFiles = \"gd-browse-files\";\n static CreateDocument = \"gd-create-document\";\n static OperationSuccess = \"gd-success-modal\";\n}\n\nexport class ModalService {\n private modals: any[] = [];\n\n add(modal: any) {\n this.modals.push(modal);\n }\n\n remove(id: string) {\n this.modals = this.modals.filter(x => x.id !== id);\n }\n\n open(id: string) {\n const modal: any = this.modals.filter(x => x.id === id)[0];\n if (modal) {\n modal.open();\n }\n }\n\n close(id: string) {\n const modal: any = this.modals.filter(x => x.id === id)[0];\n if (modal) {\n modal.close();\n }\n }\n}\n","import {Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {ModalService} from \"../modal.service\";\n\n@Component({\n selector: 'gd-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.less']\n})\nexport class ModalComponent implements OnInit, OnDestroy {\n @Input() id: string;\n @Input() title: string;\n @Output() visible = new EventEmitter();\n visibility = false;\n private element: any;\n\n constructor(private modalService: ModalService, el: ElementRef) {\n this.element = el.nativeElement;\n }\n\n ngOnInit(): void {\n if (!this.id) {\n console.error('modal must have an id');\n return;\n }\n\n document.body.appendChild(this.element);\n\n this.modalService.add(this);\n }\n\n ngOnDestroy(): void {\n this.modalService.remove(this.id);\n this.element.remove();\n }\n\n open(): void {\n this.visibility = true;\n this.visible.emit(true);\n }\n\n close(): void {\n event.preventDefault();\n event.stopPropagation();\n this.visibility = false;\n this.visible.emit(false);\n }\n\n onClose($event: MouseEvent) {\n $event.stopPropagation();\n if ($event && $event.target && ($event.target).id === 'modalDialog') {\n this.close();\n }\n }\n}\n","export class PageModel {\n data: string;\n angle: number;\n width: number;\n height: number;\n number: number;\n editable: boolean;\n}\n\nexport class RotatedPage {\n pageNumber: number;\n angle: number;\n}\n\nexport class FileCredentials {\n guid: string;\n password: string;\n\n constructor(guid: string, password: string) {\n this.guid = guid;\n this.password = password;\n }\n}\n\nexport class SaveFile extends FileCredentials {\n content: string;\n\n constructor(guid: string, password: string, content: string) {\n super(guid, password);\n this.content = content;\n }\n}\n\nexport class FileDescription {\n guid: string;\n pages: PageModel[];\n printAllowed = true;\n}\n\nexport class FileModel {\n guid: string;\n name: string;\n directory: boolean;\n size: number;\n isDirectory: boolean;\n}\n\nexport class HttpError {\n static BadRequest = 400;\n static Unauthorized = 401;\n static Forbidden = 403;\n static NotFound = 404;\n static TimeOut = 408;\n static Conflict = 409;\n static InternalServerError = 500;\n}\n\nexport class FileUtil {\n public static map = {\n 'folder': {'format': '', 'icon': 'folder'},\n 'pdf': {'format': 'Portable Document Format', 'icon': 'file-pdf', 'unit': 'pt'},\n 'doc': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'docx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'docm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'dot': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'dotx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'dotm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'xls': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xlsx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xlsm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xlsb': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xls2003': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xltx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xltm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'ppt': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'pptx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'pps': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'ppsx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'vsd': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vss': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vsx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vst': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vtx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vsdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vdw': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vstx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vssx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'mpp': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\n 'mpt': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\n 'msg': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\n 'eml': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\n 'emlx': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\n 'one': {'format': 'Microsoft OneNote', 'icon': 'file-word', 'unit': 'pt'},\n 'odt': {'format': 'Open Document Text', 'icon': 'file-word', 'unit': 'pt'},\n 'ott': {'format': 'Open Document Text Template', 'icon': 'file-word', 'unit': 'pt'},\n 'ods': {'format': 'Open Document Spreadsheet', 'icon': 'file-excel', 'unit': 'px'},\n 'odp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'otp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'ots': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'potx': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'potm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'pptm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'ppsm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'rtf': {'format': 'Rich Text Format', 'icon': 'file-alt', 'unit': 'pt'},\n 'txt': {'format': 'Plain Text File', 'icon': 'file-alt', 'unit': 'pt'},\n 'csv': {'format': 'Comma-Separated Values', 'icon': 'file-excel', 'unit': 'px'},\n 'html': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'mht': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'mhtml': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'xml': {'format': 'Extensible Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'xps': {'format': 'XML Paper Specification', 'icon': 'file-word', 'unit': 'pt'},\n 'dxf': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\n 'dwg': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\n 'bmp': {'format': 'Bitmap Picture', 'icon': 'file-image', 'unit': 'px'},\n 'gif': {'format': 'Graphics Interchange Format', 'icon': 'file-image', 'unit': 'px'},\n 'jpg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'jpe': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'jpeg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'jfif': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'png': {'format': 'Portable Network Graphics', 'icon': 'file-image', 'unit': 'px'},\n 'tiff': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'tif': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'psd': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'svg': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'jp2': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'epub': {'format': 'Electronic Publication', 'icon': 'file-pdf', 'unit': 'pt'},\n 'ico': {'format': 'Windows Icon', 'icon': 'file-image', 'unit': 'px'},\n 'webp': {'format': 'Compressed Image', 'icon': 'file-image', 'unit': 'px'},\n 'mobi': {'format': 'Mobipocket eBook', 'icon': 'file-pdf', 'unit': 'pt'},\n 'tex': {'format': 'LaTeX Source Document', 'icon': 'file-pdf', 'unit': 'pt'},\n 'djvu': {'format': 'Multi-Layer Raster Image', 'icon': 'file-alt', 'unit': 'pt'},\n 'unknown': {'format': 'This format is not supported', 'icon': 'file'},\n };\n\n public static find(filename: string, isDirectory: boolean) {\n if (filename && !isDirectory) {\n const strings = filename.split('.');\n const name = strings.pop().toLowerCase();\n if (typeof FileUtil.map[name] === \"undefined\") {\n return strings.length > 0 ? FileUtil.map['unknown'] : FileUtil.map['folder'];\n } else {\n return FileUtil.map[name];\n }\n } else {\n return FileUtil.map['folder'];\n }\n }\n}\n\nexport class FileService {\n\n constructor() {\n }\n}\n","import {Observable, Observer} from \"rxjs\";\n\nexport class UploadFilesService {\n private _uploadsChange: Observable;\n private _observer: Observer;\n\n constructor() {\n this._uploadsChange = new Observable(observer =>\n this._observer = observer);\n }\n\n get uploadsChange(): Observable {\n return this._uploadsChange;\n }\n\n changeFilesList(filesList: FileList) {\n this._observer.next(filesList);\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {FileModel, FileUtil} from \"../file.service\";\nimport {UploadFilesService} from \"../upload-files.service\";\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\nconst upload_disc = 'Disc';\n\nconst upload_url = 'URL';\n\nconst uploads_choices = [{name: upload_disc, icon: 'hdd'}, {name: upload_url, icon: 'link'}];\n\n@Component({\n selector: 'gd-browse-files-modal',\n templateUrl: './browse-files-modal.component.html',\n styleUrls: ['./browse-files-modal.component.less']\n})\nexport class BrowseFilesModalComponent implements OnInit {\n uploads = uploads_choices;\n\n @Input() files;\n @Input() uploadConfig;\n @Output() selectedFileGuid = new EventEmitter();\n @Output() selectedDirectory = new EventEmitter();\n @Output() urlForUpload = new EventEmitter();\n @Output() closing = new EventEmitter();\n private selectedFile: FileModel;\n showUploadUrl = false;\n showUploadFile = false;\n\n constructor(private _uploadService: UploadFilesService) {\n }\n\n ngOnInit() {\n }\n\n getSize(size: number) {\n const mb = size / 1024 / 1024;\n if (mb > 1) {\n return (Math.round(mb * 100) / 100) + ' MB';\n } else {\n const kb = size / 1024;\n if (kb > 1) {\n return (Math.round(kb * 100) / 100) + ' KB';\n }\n }\n return size + ' Bytes';\n }\n\n getFormatName(file: FileModel) {\n return FileUtil.find(file.name, file.directory).format;\n }\n\n getFormatIcon(file: FileModel) {\n return FileUtil.find(file.name, file.directory).icon;\n }\n\n choose(file: FileModel) {\n this.selectedFile = file;\n if (file.directory || file.isDirectory) {\n this.selectedDirectory.emit(file.name);\n } else {\n this.selectedFileGuid.emit(file.guid);\n }\n }\n\n goUp() {\n if (this.selectedFile) {\n let guid = this.selectedFile.guid;\n if (guid.length > 0 && guid.indexOf('/') === -1) {\n guid = '';\n } else {\n guid = guid.replace(/\\/[^\\/]+\\/?$/, '');\n }\n this.selectedDirectory.emit(guid);\n }\n }\n\n selectUpload($event: string) {\n if (upload_url === $event) {\n this.showUploadUrl = true;\n } else {\n this.showUploadUrl = false;\n $(\"#gd-upload-input\").trigger('click');\n }\n }\n\n refresh($event) {\n\n if ($event) {\n this.files = null;\n this.selectedDirectory.emit('');\n this.showUploadUrl = false;\n this.selectedFile = null;\n } else {\n this.closing.emit(true);\n }\n }\n\n showSpinner() {\n return !this.files;\n }\n\n uploadUrl(url: string) {\n if (url) {\n this.urlForUpload.emit(url);\n this.cleanUpload();\n }\n }\n\n handleFileInput(files: FileList) {\n this._uploadService.changeFilesList(files);\n }\n\n cleanUpload() {\n this.showUploadFile = false;\n this.showUploadUrl = false;\n }\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class ZoomService {\n private _observer: Subject = new Subject();\n private readonly _zoomChange: Observable = this._observer.asObservable();\n private _zoom: number;\n\n constructor() {\n }\n\n get zoom(): number {\n return this._zoom;\n }\n\n get zoomChange(): Observable {\n return this._zoomChange;\n }\n\n changeZoom(zoom: number) {\n this._zoom = zoom;\n this._observer.next(zoom);\n }\n\n private createZoomOption(val: any, name: string, sep: boolean = false) {\n return {value: val, name: name, separator: sep}\n }\n\n zoomOptions(width, height) {\n return [this.createZoomOption(25, '25%'),\n this.createZoomOption(50, '50%'),\n this.createZoomOption(100,'100%'),\n this.createZoomOption(150, '150%'),\n this.createZoomOption(200, '200%'),\n this.createZoomOption(300, '300%'),\n this.createZoomOption(0, '', true),\n this.createZoomOption(width, 'Fit Width'),\n this.createZoomOption(height, 'Fit Height')];\n }\n}\n","import {fromEvent, Observable, Subject} from \"rxjs\";\nimport {debounceTime, distinctUntilChanged, startWith, tap} from \"rxjs/operators\";\n\nconst MOBILE_MAX_WIDTH = 425;\nconst TABLET_MAX_WIDTH = 1024;\n\nexport class WindowService {\n\n private resizeSubject: Subject = new Subject();\n private _resize$;\n private width: number;\n private height: number;\n\n constructor() {\n this.width = window.innerWidth;\n this.height = window.innerHeight;\n\n this._resize$ = fromEvent(window, 'resize')\n .pipe(\n debounceTime(200),\n distinctUntilChanged(),\n startWith({target: {innerWidth: window.innerWidth, innerHeight: window.innerHeight}}),\n tap(event => {\n this.resizeSubject.next(event.target);\n this.width = (event.target as Window).innerWidth;\n this.height = (event.target as Window).innerHeight;\n }),\n );\n this._resize$.subscribe();\n }\n\n get onResize(): Observable {\n return this.resizeSubject.asObservable();\n }\n\n isMobile() {\n return this.width <= MOBILE_MAX_WIDTH;\n }\n\n isTablet() {\n return this.width <= TABLET_MAX_WIDTH;\n }\n\n isDesktop() {\n return !this.isMobile() && !this.isTablet();\n }\n\n isEdge() {\n return window.navigator.userAgent.toLowerCase().indexOf('edge') > -1;\n }\n\n isFirefox() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n }\n}\n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n Input,\n OnInit,\n AfterViewInit,\n OnChanges} from '@angular/core';\nimport {FileDescription, FileUtil} from \"../file.service\";\nimport {ZoomService} from \"../zoom.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\nimport * as Hammer from 'hammerjs';\nimport { WindowService } from '../window.service';\n\n@Component({\n selector: 'gd-document',\n templateUrl: './document.component.html',\n styleUrls: ['./document.component.less']\n})\nexport class DocumentComponent implements OnInit, AfterViewChecked, AfterViewInit, OnChanges {\n\n @Input() mode: boolean;\n @Input() preloadPageCount: number;\n @Input() file: FileDescription;\n wait = false;\n zoom: number;\n\n docWidth = null;\n docHeight = null;\n viewportWidth = null;\n viewportHeight = null;\n scale = null;\n lastScale = null;\n container = null;\n doc = null;\n x = 0;\n lastX = 0;\n y = 0;\n lastY = 0;\n pinchCenter = null;\n pinchCenterOffset = null;\n curWidth = 0;\n curHeight = 0;\n isDesktop: boolean;\n\n constructor(private _elementRef: ElementRef,\n private _zoomService: ZoomService,\n private _windowService: WindowService) {\n\n _zoomService.zoomChange.subscribe((val: number) => {\n this.zoom = val;\n });\n\n this.isDesktop = _windowService.isDesktop();\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n const panzoom = this._elementRef.nativeElement.children.item(0).children.item(0);\n (panzoom as any).style.transform = '';\n // TODO: this intersects with zooming by zoom directive, but still needed\n // for flush previous settings before opening another file\n //this._zoomService.changeZoom(100);\n //this.scale = 1;\n }\n \n ngAfterViewInit() {\n // For current iteration we take .panzoom as a document\n this.doc = this._elementRef.nativeElement.children.item(0).children.item(0);\n // For current iteration we take .gd-document as a container\n this.container = this._elementRef.nativeElement;\n\n this.docWidth = this.doc.clientWidth;\n this.docHeight = this.doc.clientHeight;\n this.viewportWidth = this.doc.offsetWidth;\n\n // For cases where we already have zoom defined we should include it\n this.scale = (this.viewportWidth/this.docWidth) * this._zoomService.zoom/100;\n \n this.lastScale = this.scale;\n this.viewportHeight = this.container.offsetHeight;\n this.curWidth = this.docWidth*this.scale;\n this.curHeight = this.docHeight*this.scale;\n\n const hammer = new Hammer(this.container);\n }\n\n // TODO: this temporary crutch for Excel files should be documented\n ifExcel() {\n return FileUtil.find(this.file.guid, false).format === \"Microsoft Excel\";\n }\n\n getDimensionWithUnit(value: number) {\n return value + FileUtil.find(this.file.guid, false).unit;\n }\n\n ngAfterViewChecked(): void {\n const elementNodeListOf = this._elementRef.nativeElement.querySelectorAll('.gd-wrapper');\n const element = elementNodeListOf.item(0);\n if (element) {\n $(element).trigger('focus');\n }\n }\n\n absolutePosition(el) {\n let x = 0, y = 0;\n\n while (el !== null) {\n x += el.offsetLeft;\n y += el.offsetTop;\n el = el.offsetParent;\n }\n\n return { x: x, y: y };\n };\n\n restrictRawPos(pos, viewportDim, docDim) {\n if (pos < viewportDim/this.scale - docDim) { // too far left/up?\n pos = viewportDim/this.scale - docDim;\n } else if (pos > 0) { // too far right/down?\n pos = 0;\n }\n return pos;\n };\n\n updateLastPos() {\n this.lastX = this.x;\n this.lastY = this.y;\n };\n\n translate(deltaX, deltaY) {\n // We restrict to the min of the viewport width/height or current width/height as the\n // current width/height may be smaller than the viewport width/height\n const newX = this.restrictRawPos(this.lastX + deltaX/this.scale,\n Math.min(this.viewportWidth, this.curWidth), this.docWidth);\n this.x = newX;\n // TODO: value here and in the similar line below changes to positive to take any effect\n this.container.scrollLeft = -Math.ceil(newX*this.scale);\n\n const newY = this.restrictRawPos(this.lastY + deltaY/this.scale,\n Math.min(this.viewportHeight, this.curHeight), this.docHeight);\n this.y = newY;\n this.container.scrollTop = -Math.ceil(newY*this.scale);\n \n this.doc.style.transform = 'scale(' + this.scale + ')';\n };\n\n startZoom(scaleBy) {\n this.scale = this.lastScale*scaleBy;\n\n this.curWidth = this.docWidth*this.scale;\n this.curHeight = this.docHeight*this.scale;\n\n // Adjust margins to make sure that we aren't out of bounds\n this.translate(0, 0);\n };\n\n rawCenter($event) {\n const pos = this.absolutePosition(this.container);\n\n // We need to account for the scroll position\n const scrollLeft = window.pageXOffset ? window.pageXOffset : document.body.scrollLeft;\n const scrollTop = window.pageYOffset ? window.pageYOffset : document.body.scrollTop;\n\n const zoomX = -this.x + ($event.center.x - pos.x + scrollLeft)/this.scale;\n const zoomY = -this.y + ($event.center.y - pos.y + scrollTop)/this.scale;\n\n return { x: zoomX, y: zoomY };\n };\n\n updateLastScale() {\n this.lastScale = this.scale;\n };\n\n zoomAround(scaleBy, rawZoomX, rawZoomY, doNotUpdateLast) {\n // Zoom\n this.startZoom(scaleBy);\n\n // New raw center of viewport\n const rawCenterX = -this.x + Math.min(this.viewportWidth, this.curWidth)/2/this.scale;\n const rawCenterY = -this.y + Math.min(this.viewportHeight, this.curHeight)/2/this.scale;\n\n // Delta\n const deltaX = (rawCenterX - rawZoomX)*this.scale;\n const deltaY = (rawCenterY - rawZoomY)*this.scale;\n\n // Translate back to zoom center\n this.translate(deltaX, deltaY);\n\n if (!doNotUpdateLast) {\n this.updateLastScale();\n this.updateLastPos();\n }\n };\n\n onPinch($event){\n if (this.pinchCenter === null) {\n this.pinchCenter = this.rawCenter($event);\n const offsetX = this.pinchCenter.x*this.scale - (-this.x*this.scale + Math.min(this.viewportWidth, this.curWidth)/2);\n const offsetY = this.pinchCenter.y*this.scale - (-this.y*this.scale + Math.min(this.viewportHeight, this.curHeight)/2);\n this.pinchCenterOffset = { x: offsetX, y: offsetY };\n }\n\n const newScale = this.scale*$event.scale;\n\n const zoomX = this.pinchCenter.x*newScale - this.pinchCenterOffset.x;\n const zoomY = this.pinchCenter.y*newScale - this.pinchCenterOffset.y;\n const zoomCenter = { x: zoomX/newScale, y: zoomY/newScale };\n \n this.zoomAround($event.scale, zoomCenter.x, zoomCenter.y, true);\n }\n\n onPinchEnd($event){\n this.updateLastScale();\n this.updateLastPos();\n this.pinchCenter = null;\n }\n\n onPan($event){\n // TODO: looks like native pan works better\n // if (!this.isDesktop) {\n // this.translate($event.deltaX, $event.deltaY);\n // }\n }\n\n onPanEnd($event){\n // if (!this.isDesktop) {\n // this.updateLastPos();\n // }\n }\n\n onDoubleTap($event){\n if (!this.isDesktop) {\n if ($event.tapCount === 2) {\n const c = this.rawCenter($event);\n this.zoomAround(2, c.x, c.y, false);\n }\n }\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\n\n@Component({\n selector: 'gd-page',\n templateUrl: './page.component.html',\n styleUrls: ['./page.component.less']\n})\nexport class PageComponent implements OnInit, OnChanges {\n\n @Input() angle: number;\n @Input() width: number;\n @Input() height: number;\n @Input() number: number;\n @Input() data: string;\n @Input() isHtml: boolean;\n @Input() editable: boolean;\n imgData: string;\n\n constructor() {\n }\n\n ngOnInit() {\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n if(isIE && this.number === 0){\n this.editable = false;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // TODO: this is temporary needed to remove unneeded spaces and BOM symbol \n // which leads to undesired spaces on the top of the docs pages\n this.data = this.data !== null ? this.data.replace(/>\\s+<').replace(/\\uFEFF/g,\"\") : null;\n const dataImagePngBase64 = 'data:image/png;base64,';\n this.imgData = dataImagePngBase64;\n if (!this.isHtml) {\n this.imgData += this.data;\n }\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\n\n@Pipe({name: 'safeHtml'})\nexport class SanitizeHtmlPipe implements PipeTransform{\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n\n@Pipe({name: 'safeResourceHtml'})\nexport class SanitizeResourceHtmlPipe implements PipeTransform{\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustResourceUrl(html);\n }\n}\n\n@Pipe({name: 'safeStyle'})\nexport class SanitizeStylePipe implements PipeTransform{\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustStyle(html);\n }\n}\n\n@Pipe({name: 'highlight'})\nexport class HighlightSearchPipe implements PipeTransform {\n\n transform(value: string, args: string): any {\n if (!args) {\n return value;\n }\n const re = new RegExp(args, 'gi'); //'gi' for case insensitive and can use 'g' if you want the search to be case sensitive.\n return value.replace(re, \"$&\");\n }\n}\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {UploadFilesService} from \"../upload-files.service\";\n\n@Component({\n selector: 'gd-upload-file-zone',\n templateUrl: './upload-file-zone.component.html',\n styleUrls: ['./upload-file-zone.component.less']\n})\nexport class UploadFileZoneComponent implements OnInit {\n\n @Output() closeUpload = new EventEmitter();\n\n constructor(private _uploadService: UploadFilesService) { }\n\n ngOnInit() {\n }\n\n handleFileInput(files: FileList) {\n this._uploadService.changeFilesList(files);\n this.onCloseUpload();\n }\n\n onCloseUpload() {\n this.closeUpload.emit(true);\n }\n\n close($event) {\n if ($event.target.id === 'gd-dropZone') {\n this.onCloseUpload();\n }\n }\n}\n","import {Directive, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\nimport {UploadFilesService} from \"./upload-files.service\";\n\n@Directive({\n selector: '[gdDnd]'\n})\nexport class DndDirective {\n\n @Output() closing = new EventEmitter();\n @Output() opening = new EventEmitter();\n @Output() dropped = new EventEmitter();\n\n @HostBinding('class.active') active = false;\n\n constructor(private _uploadFilesService: UploadFilesService) {\n }\n\n @HostListener('dragover', ['$event'])\n public onDragOver(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.active = true;\n this.opening.emit(true);\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.active = false;\n this.closeArea();\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n const files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.active = false;\n this.dropped.emit(true);\n this._uploadFilesService.changeFilesList(files);\n this.closeArea();\n }\n }\n\n @HostListener('click', ['$event'])\n public onClick(event) {\n this.closeArea();\n }\n\n private closeArea() {\n this.closing.emit(true);\n this.opening.emit(false);\n }\n}\n","import {Observable, Observer} from \"rxjs\";\n\nexport class PagePreloadService {\n private readonly _checkPreload: Observable;\n private _observer: Observer;\n\n constructor() {\n this._checkPreload = new Observable(observer =>\n this._observer = observer);\n }\n\n get checkPreload(): Observable {\n return this._checkPreload;\n }\n\n changeLastPageInView(page: number) {\n if(this._observer) {\n this._observer.next(page);\n }\n }\n}\n","import {Observable, Observer} from \"rxjs\";\nimport {PagePreloadService} from \"./page-preload.service\";\nimport {Injectable} from \"@angular/core\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigateService {\n private _currentPage = 0;\n private _countPages = 0;\n private readonly _navigate: Observable;\n private _observer: Observer;\n\n constructor(private _pagePreloadService: PagePreloadService) {\n this._navigate = new Observable(observer =>\n this._observer = observer);\n }\n\n get navigate(): Observable {\n return this._navigate;\n }\n\n get countPages(): number {\n return this._countPages;\n }\n\n set countPages(value: number) {\n this._countPages = value;\n }\n\n get currentPage(): number {\n return this._currentPage;\n }\n\n set currentPage(value: number) {\n this._currentPage = value;\n }\n\n nextPage() {\n if (this._currentPage < this._countPages) {\n this._currentPage++;\n this.navigateTo(this._currentPage);\n }\n }\n\n prevPage() {\n if (this._currentPage > 1) {\n this._currentPage--;\n this.navigateTo(this._currentPage);\n }\n }\n\n toLastPage() {\n this._currentPage = this._countPages;\n this.navigateTo(this._currentPage);\n }\n\n toFirstPage() {\n this._currentPage = 1;\n this.navigateTo(this._currentPage);\n }\n\n navigateTo(page: number) {\n this.currentPage = page;\n this._pagePreloadService.changeLastPageInView(page);\n this._observer.next(page);\n }\n}\n","import {Injectable} from '@angular/core';\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewportService {\n\n constructor() {\n }\n\n checkInViewport(el, zoom: number = 100, leftOffset: number = 0, deltaX: number = 0.5) {\n if (!el) {\n return false;\n }\n const x = deltaX;\n const y = 0.5;\n\n const win = $(window);\n\n const viewport = {\n top: win.scrollTop(),\n left: win.scrollLeft() + leftOffset,\n right: win.scrollLeft() + win.width() - 10,\n bottom: win.scrollTop() + win.height()\n };\n\n\n if (isNaN(zoom)) {\n zoom = 100;\n }\n\n const zoomN = zoom / 100;\n const height = $(el).outerHeight() * (zoomN);\n const width = $(el).outerWidth() * (zoomN);\n\n if (!width || !height) {\n return false;\n }\n\n const bounds = $(el).offset();\n const right = (bounds.left * (zoomN)) + width;\n const bottom = (bounds.top * (zoomN)) + height;\n\n const visible = (!(viewport.right < (bounds.left * (zoomN)) || viewport.left > right || viewport.bottom < (bounds.top * (zoomN)) || viewport.top > bottom));\n\n if (!visible) {\n return false;\n }\n\n const deltas = {\n top: parseFloat(Math.min(1, (bottom - viewport.top) / height).toFixed(2)),\n bottom: parseFloat(Math.min(1, (viewport.bottom - (bounds.top * (zoomN))) / height).toFixed(2)),\n left: parseFloat(Math.min(1, (right - viewport.left) / width).toFixed(2)),\n right: parseFloat(Math.min(1, (viewport.right - (bounds.left * (zoomN))) / width).toFixed(2))\n };\n\n return (deltas.left * deltas.right) >= x && (deltas.top * deltas.bottom) >= y;\n }\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges\n} from '@angular/core';\nimport {NavigateService} from \"./navigate.service\";\nimport {PagePreloadService} from \"./page-preload.service\";\nimport {ZoomService} from \"./zoom.service\";\nimport {WindowService} from \"./window.service\";\nimport {ViewportService} from \"./viewport.service\";\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Directive({\n selector: '[gdScrollable]'\n})\nexport class ScrollableDirective implements AfterViewInit, OnChanges, OnInit {\n\n private currentPage: number;\n private zoom = 100;\n\n constructor(private _elementRef: ElementRef,\n private _navigateService: NavigateService,\n private _pagePreloadService: PagePreloadService,\n private _zoomService: ZoomService,\n private _windowService: WindowService,\n private _viewportService: ViewportService) {\n\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\n _zoomService.zoomChange.subscribe((val: number) => {\n this.zoom = val ? val : this.zoom;\n this.refresh();\n });\n }\n\n ngAfterViewInit() {\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\n this._navigateService.navigate.subscribe((value => {\n this.currentPage = value;\n this.scrollToPage(value);\n }));\n this.refresh();\n }\n\n @HostListener('scroll') scrolling() {\n this.refresh();\n }\n\n @HostListener('window:resize') resizing() {\n this.refresh();\n }\n\n scrollToPage(pageNumber: number) {\n const el = this._elementRef.nativeElement;\n const page = this.getPage(pageNumber);\n const prev = pageNumber > 0 ? this.getPage(pageNumber - 1) : null;\n const isSameTop = (prev && $(prev).offset().top === $(page).offset().top);\n if (this._viewportService.checkInViewport(page, this.zoom) && isSameTop) {\n return;\n }\n const pagesHeight = this.calculateOffset(pageNumber);\n const options = {\n left: 0,\n top: pagesHeight\n };\n if(el){\n // using polyfill\n el.scroll(options);\n }\n }\n\n private getChildren() {\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n // here and in the similar line below we getting the document pages\n return el.children.item(0).children.item(0).children;\n }\n }\n\n private getPage(pageNumber: number) {\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n return el.children.item(0).children.item(0).children.item(pageNumber - 1);\n }\n }\n\n private calculateOffset(pageNumber: number) {\n const count = this._windowService.isFirefox() ? 1 : this.countPagesOnWidth();\n const margin = this._windowService.isDesktop() ? 40 : 10;\n let pagesHeight = 0;\n for (let i = 1; i < pageNumber / count; i++) {\n const item = this.getPage(i);\n const clientHeight = item ? item.clientHeight : 0;\n pagesHeight += clientHeight > 0 ? clientHeight * this.getZoom() + margin : 0;\n }\n return pagesHeight;\n }\n\n private countPagesOnWidth() {\n const pageEl = this.getPage(1);\n const offset = 150;\n const count = Math.floor((this.getWidth() - offset) / (pageEl.getBoundingClientRect().width * this.getZoom()));\n return count === 0 ? 1 : count;\n }\n\n refresh() {\n let page;\n let currentPageSet = false;\n const pageElem = this.getPage(this.currentPage);\n const currentPageRect = this.currentPage && pageElem ? pageElem.getBoundingClientRect() : null;\n for (page = 1; page < this.getChildren().length + 1; page++) {\n const element = this.getPage(page);\n if (this._viewportService.checkInViewport(element, this.zoom)) {\n if (!currentPageSet) {\n if (!this.currentPage || !pageElem || (this.currentPage && currentPageRect && element.getBoundingClientRect().top !== currentPageRect.top)) {\n this.currentPage = page;\n this._navigateService.currentPage = page;\n }\n currentPageSet = true;\n }\n this._pagePreloadService.changeLastPageInView(page);\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.refresh();\n }\n\n ngOnInit(): void {\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\n }\n\n\n private getWidth() {\n return this._elementRef ? this._elementRef.nativeElement.offsetWidth : window.innerWidth;\n }\n\n private getZoom() {\n return this.zoom / 100;\n }\n}\n","import {AfterViewInit, Directive, HostBinding, Input, OnDestroy, OnInit, ElementRef, OnChanges} from '@angular/core';\nimport {ZoomService} from \"./zoom.service\";\nimport {FileUtil} from \"./file.service\";\nimport { WindowService } from './window.service';\n\n@Directive({\n selector: '[gdZoom]'\n})\nexport class ZoomDirective implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Input() zoomActive = true;\n @Input() file;\n\n @HostBinding('style.zoom') zoomInt: number;\n @HostBinding('style.transform') transform: string;\n @HostBinding('style.transform-origin') transformOrigin: string;\n @HostBinding('style.width') width: string;\n @HostBinding('style.min-width') minWidth: string;\n el: ElementRef;\n\n constructor(private _zoomService: ZoomService, private _windowService: WindowService, el: ElementRef) {\n this.el = el;\n }\n\n ngOnDestroy(): void {\n }\n\n ngOnChanges(): void {\n this.setStyles(this._zoomService.zoom);\n this.resizePages(this._zoomService.zoom);\n }\n\n ngOnInit(): void {\n if (! this.zoomActive) {\n return;\n }\n\n this.setStyles(this._zoomService.zoom);\n this._zoomService.zoomChange.subscribe((zoom) => {\n this.setStyles(zoom);\n this.resizePages(zoom);\n });\n }\n\n private setStyles(zoom) {\n if (! this.zoomActive) {\n return;\n }\n\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\n \n if (this._windowService.isEdge()) {\n this.zoomInt = zoomInt;\n }\n else {\n this.zoomInt = null;\n }\n \n if (!this._windowService.isEdge()) {\n this.transform = 'scale(' + zoomInt + ')';\n this.transformOrigin = 'top left';\n }\n else {\n this.transform = \"\";\n this.transformOrigin = \"\";\n }\n\n let maxWidth = 0;\n this.file.pages.forEach(page => {\n {\n if (page.width > maxWidth){\n maxWidth = page.width;\n }\n }\n });\n\n // Images and Excel-related files receiving dimensions in px from server\n this.minWidth = maxWidth + FileUtil.find(this.file.guid, false).unit;\n }\n\n private getScrollWidth(elm){\n return elm.offsetWidth - elm.clientWidth;\n }\n\n private resizePages(zoom){\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\n\n const viewPortWidth = this.el.nativeElement.parentElement.offsetWidth;\n const scrollWidth = this.getScrollWidth(this.el.nativeElement.parentElement);\n this.width = (viewPortWidth/zoomInt - scrollWidth/zoomInt) + 'px';\n }\n\n ngAfterViewInit(): void {\n this.setStyles(this._zoomService.zoom);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Subject} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnCloseService {\n private _observer: Subject = new Subject();\n private readonly _onClose: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get onClose() {\n return this._onClose;\n }\n\n close(close: boolean) {\n this._observer.next(close)\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {OnCloseService} from \"../on-close.service\";\n\nexport interface Option {\n name: string;\n value: any;\n separator: boolean;\n}\n\n@Component({\n selector: 'gd-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.less']\n})\nexport class SelectComponent {\n\n @Input() options: Option[];\n @Input() disabled = false;\n @Input() showSelected: Option;\n @Output() selected: EventEmitter = new EventEmitter();\n isOpen = false;\n\n constructor(private _onCloseService: OnCloseService) {\n _onCloseService.onClose.subscribe(() => {\n this.close();\n });\n }\n\n open() {\n if (!this.disabled) {\n this.isOpen = true;\n }\n }\n\n close() {\n this.isOpen = false;\n }\n\n onClickOutside(event : Event){\n this.close();\n }\n\n toggle($event) {\n $event.preventDefault();\n $event.stopPropagation();\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n select($event, value: Option) {\n $event.preventDefault();\n $event.stopPropagation();\n this.selected.emit(value);\n this.close();\n }\n\n}\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\n\n@Directive({\n selector: '[gdDisabledCursor]'\n})\nexport class DisabledCursorDirective implements OnInit, OnChanges {\n\n @Input() dis: boolean;\n\n constructor() {\n }\n\n @HostBinding('class.inactive') cursor: boolean;\n\n private updateCursor() {\n this.cursor = this.dis ? true : false;\n }\n\n ngOnInit(): void {\n this.updateCursor();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateCursor()\n }\n}\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\n\n@Directive({\n selector: '[gdRotation]'\n})\nexport class RotationDirective implements OnInit, OnChanges {\n\n @Input() angle: number;\n @Input() isHtmlMode: boolean;\n @Input() width: number;\n @Input() height: number;\n @Input() withMargin = true;\n\n @HostBinding('style.animation') animation: string;\n @HostBinding('style.transition-property') transition: string;\n @HostBinding('style.transform') transform: string;\n\n @HostBinding('style.margin') margin: string;\n\n constructor() {\n }\n\n private updateCursor() {\n if (typeof this.angle === \"string\"){\n this.angle = parseInt(this.angle, 10);\n }\n\n if (this.angle) {\n this.animation = 'none';\n this.transition = 'none';\n this.transform = 'rotate(' + this.angle + 'deg)';\n } else if (this.angle === 0 && this.animation) {\n this.animation = null;\n this.transition = null;\n this.transform = null;\n }\n\n if (this.withMargin) {\n if (this.angle === 90 || this.angle === 270 || this.angle === -90 || this.angle === -270) {\n if (this.isHtmlMode) {\n if (this.isLandscape()) {\n this.margin = '164px 254px';\n } else {\n this.margin = '-111px 254px';\n }\n } else {\n if (this.isLandscape()) {\n this.margin = '129px 100px -79px';\n } else {\n this.margin = '-72px 100px -79px';\n }\n }\n } else if (this.angle === -180 || this.angle === 180) {\n this.margin = '280px';\n } else {\n this.margin = null;\n }\n }\n\n }\n\n isLandscape() {\n return this.width > this.height;\n }\n\n ngOnInit(): void {\n this.updateCursor();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateCursor()\n }\n\n}\n","import {Component, Input, Output, EventEmitter, OnInit} from '@angular/core';\n\n@Component({\n selector: 'gd-init-state',\n templateUrl: './init-state.component.html',\n styleUrls: ['./init-state.component.less']\n})\nexport class InitStateComponent implements OnInit {\n @Input() icon: string;\n @Input() text: string;\n @Output() fileDropped = new EventEmitter();\n showUploadFile = false;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n dropped($event) {\n if ($event) {\n this.fileDropped.emit($event);\n this.showUploadFile = false;\n }\n }\n}\n","import {Observable, Observer} from \"rxjs\";\nimport {PageModel} from \"./file.service\";\n\nexport class RenderPrintService {\n private _render: Observable;\n private _observer: Observer;\n private _renderBlob: Observable;\n private _observerBlob: Observer;\n\n constructor() {\n this._render = new Observable(observer =>\n this._observer = observer);\n this._renderBlob = new Observable(observer =>\n this._observerBlob = observer);\n }\n\n get renderPrint(): Observable {\n return this._render;\n }\n\n changePages(pages: PageModel[]) {\n this._observer.next(pages);\n }\n\n get renderPrintBlob(): Observable {\n return this._renderBlob;\n }\n\n changeBlob(file: Blob) {\n this._observerBlob.next(file);\n }\n}\n","import {Directive, Input} from '@angular/core';\nimport {PageModel} from \"./file.service\";\nimport {RenderPrintService} from \"./render-print.service\";\n\n@Directive({\n selector: '[gdRenderPrint]'\n})\nexport class RenderPrintDirective {\n @Input() htmlMode: boolean;\n\n constructor(private _renderService: RenderPrintService) {\n _renderService.renderPrint.subscribe(pages => {\n this.renderPrint(pages);\n });\n _renderService.renderPrintBlob.subscribe(file => {\n this.renderPrintBlob(file);\n });\n }\n\n private renderPrint(pages: PageModel[]) {\n let pagesHtml = '';\n if (this.htmlMode) {\n for (const page of pages) {\n pagesHtml += '
' +\n '
' + page.data + '
' +\n '
';\n }\n } else {\n for (const page of pages) {\n pagesHtml += '
' +\n '
' +\n '
';\n }\n }\n this.openWindow(pagesHtml, pages[0].width, pages[0].height);\n }\n\n private openWindow(pagesHtml, width, height) {\n const a4Height = 842;\n const a4Width = 595;\n let imageA4Adjusted = '';\n if(width > a4Width && height > a4Height){\n const zoom = Math.round(height / a4Height) / 100;\n imageA4Adjusted = '.gd-page img { width: 100%; margin: 0; padding: 0;}';\n if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1){\n imageA4Adjusted = '.gd-page img { transform: scale(' + zoom + ');}';\n }\n }\n let cssPrint = '';\n\n const windowObject = window.open('', \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\n windowObject.focus();\n windowObject.document.writeln(cssPrint);\n windowObject.document.writeln(pagesHtml);\n windowObject.document.close();\n windowObject.focus();\n windowObject.print();\n windowObject.close();\n }\n\n private renderPrintBlob(file: Blob) {\n const fileURL = URL.createObjectURL(file);\n const windowObject = window.open(fileURL, \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\n windowObject.focus();\n windowObject.print();\n windowObject.close();\n }\n}\n","import {BehaviorSubject, Observable} from \"rxjs\";\n\nexport class ExceptionMessageService {\n private _observer: BehaviorSubject = new BehaviorSubject('Server is not available');\n private _messageChange: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get messageChange(): Observable {\n return this._messageChange;\n }\n\n changeMessage(message: string) {\n this._observer.next(message);\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {ExceptionMessageService} from \"../exception-message.service\";\n\n@Component({\n selector: 'gd-error-modal',\n templateUrl: './error-modal.component.html',\n styleUrls: ['./error-modal.component.less']\n})\nexport class ErrorModalComponent implements OnInit {\n\n message: string;\n\n constructor(messageService: ExceptionMessageService) {\n messageService.messageChange.subscribe(message => this.message = message);\n }\n\n ngOnInit() {\n }\n\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class PasswordService {\n private _observer: Subject = new Subject();\n private readonly _passChange: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get passChange(): Observable {\n return this._passChange;\n }\n\n setPassword(pass: string) {\n this._observer.next(pass);\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {ExceptionMessageService} from \"../exception-message.service\";\nimport {PasswordService} from \"../password.service\";\n\n@Component({\n selector: 'gd-password-required',\n templateUrl: './password-required.component.html',\n styleUrls: ['./password-required.component.less']\n})\nexport class PasswordRequiredComponent implements OnInit {\n message: string;\n\n constructor(messageService: ExceptionMessageService, private _passwordService: PasswordService) {\n messageService.messageChange.subscribe(message => this.message = message);\n }\n\n ngOnInit() {\n }\n\n setPassword(value: string) {\n this._passwordService.setPassword(value);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\nimport {Observable, throwError} from \"rxjs\";\nimport {catchError, map} from \"rxjs/operators\";\nimport {ExceptionMessageService} from \"./exception-message.service\";\nimport {HttpError} from \"./file.service\";\nimport {CommonModals, ModalService} from \"./modal.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorInterceptorService implements HttpInterceptor {\n\n constructor(private _modalService: ModalService, private _messageService: ExceptionMessageService) {\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n const logFormat = 'background: maroon; color: white';\n\n return next.handle(req)\n .pipe(map(data => {\n return data;\n }),\n catchError((exception: HttpEvent) => {\n if (exception instanceof HttpErrorResponse) {\n switch (exception.status) {\n\n case HttpError.BadRequest:\n console.error('%c Bad Request 400', logFormat);\n break;\n case HttpError.Unauthorized:\n console.error('%c Unauthorized 401', logFormat);\n break;\n case HttpError.NotFound:\n console.error('%c Not Found 404', logFormat);\n break;\n case HttpError.TimeOut:\n console.error('%c TimeOut 408', logFormat);\n break;\n case HttpError.InternalServerError:\n console.error('%c big bad 500', logFormat);\n this._messageService.changeMessage(exception.error.message);\n this._modalService.open(CommonModals.ErrorMessage);\n break;\n\n case HttpError.Forbidden:\n console.error('%c Forbidden 403', logFormat);\n this._messageService.changeMessage(exception.error.message);\n this._modalService.open(CommonModals.PasswordRequired);\n break;\n }\n }\n return throwError(exception);\n }));\n }\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class SearchService {\n private _observer: Subject = new Subject();\n private readonly _textChange: Observable = this._observer.asObservable();\n\n private _observerCurrent: Subject = new Subject();\n private readonly _currentChange: Observable = this._observerCurrent.asObservable();\n\n private _observerTotal: Subject = new Subject();\n private readonly _totalChange: Observable = this._observerTotal.asObservable();\n\n constructor() {\n }\n\n get textChange(): Observable {\n return this._textChange;\n }\n\n setText(text: string) {\n this._observer.next(text);\n }\n\n get currentChange(): Observable {\n return this._currentChange;\n }\n\n get totalChange(): Observable {\n return this._totalChange;\n }\n\n setCurrent(current: number) {\n this._observerCurrent.next(current);\n }\n\n setTotal(total: number) {\n this._observerTotal.next(total);\n }\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\nimport {SearchService} from \"../search.service\";\n\n@Component({\n selector: 'gd-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.less']\n})\nexport class SearchComponent implements OnInit, AfterViewInit {\n\n @Output() hidePanel = new EventEmitter(false);\n\n current = 0;\n total = 0;\n\n @ViewChild('text',{\n static : true\n }) textElement: ElementRef;\n\n constructor(private _searchService: SearchService) {\n _searchService.totalChange.subscribe((total: number) => {\n this.total = total;\n if (total !== 0) {\n this.current = 1;\n } else {\n this.current = 0;\n }\n this._searchService.setCurrent(this.current);\n });\n }\n\n ngOnInit() {\n }\n\n setText(text: string) {\n this._searchService.setText(text);\n }\n\n hide() {\n this.setText('');\n this.hidePanel.emit(true);\n }\n\n prev() {\n if (this.current > 1) {\n this.current--;\n this._searchService.setCurrent(this.current);\n }\n }\n\n next() {\n if (this.current < this.total) {\n this.current++;\n this._searchService.setCurrent(this.current);\n }\n }\n\n ngAfterViewInit(): void {\n this.textElement.nativeElement.focus();\n }\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {SearchService} from \"./search.service\";\nimport {HighlightSearchPipe} from \"./pipes\";\nimport {ZoomService} from \"./zoom.service\";\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Directive({\n selector: '[gdSearchable]'\n})\nexport class SearchableDirective {\n\n text: string;\n current = 0;\n total = 0;\n private zoom = 100;\n\n constructor(private _elementRef: ElementRef,\n private _searchService: SearchService,\n private _highlight: HighlightSearchPipe,\n private _zoomService: ZoomService) {\n _searchService.currentChange.subscribe((current: number) => {\n this.current = current;\n if (this.current !== 0) {\n this.moveToCurrent();\n }\n });\n\n _searchService.textChange.subscribe((text: string) => {\n this.text = text;\n this.highlightSearch();\n });\n\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\n _zoomService.zoomChange.subscribe((val: number) => {\n this.zoom = val ? val : this.zoom;\n });\n }\n\n private highlightSearch() {\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n this.cleanHighlight(el);\n if (this.text) {\n this.highlightEl(el);\n const count = el.querySelectorAll('.gd-highlight').length;\n this.total = count;\n } else {\n this.total = 0;\n }\n this._searchService.setTotal(this.total);\n }\n }\n\n private moveToCurrent() {\n if (this.current === 0) {\n return;\n }\n const currentZoom = this.getZoom();\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n el.querySelectorAll('.gd-highlight-select').forEach(function (value) {\n $(value).removeClass('gd-highlight-select');\n });\n const currentEl = el.querySelectorAll('.gd-highlight')[this.current - 1];\n $(currentEl).addClass('gd-highlight-select');\n if (currentEl) {\n const options = {\n left: 0,\n top: ($(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150,\n };\n // using polyfill\n el.parentElement.parentElement.scroll(options);\n }\n }\n }\n\n private highlightEl(el: Element) {\n const textNodes = $(el).find('*').contents().filter(function () {\n const nodeName = this.parentElement.nodeName.toLowerCase();\n const checkClass = (this).classList ? !(this).classList.contains('gd-highlight') : true;\n return this.nodeType === 3 &&\n this.textContent.trim().length !== 0 &&\n nodeName !== 'style' &&\n nodeName !== 'title' &&\n nodeName !== 'body' &&\n nodeName !== 'script' &&\n checkClass;\n });\n const text = this.text;\n const highlight = this._highlight;\n textNodes.each(function () {\n const $this = $(this);\n let content = $this.text();\n content = highlight.transform(content, text);\n $this.replaceWith(content);\n });\n el.normalize();\n }\n\n private cleanHighlight(el: HTMLElement) {\n const nodeListOf = el.querySelectorAll('.gd-highlight');\n for (let i = 0; i < nodeListOf.length; i++) {\n const element = nodeListOf.item(i);\n element.replaceWith((element).innerText);\n }\n el.normalize();\n }\n\n private getZoom() {\n return this.zoom / 100;\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'gd-tabbed-toolbars',\n templateUrl: './tabbed-toolbars.component.html',\n styleUrls: ['./tabbed-toolbars.component.less']\n})\nexport class TabbedToolbarsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class TabActivatorService {\n private _observer: Subject = new Subject();\n private readonly _activeTabChange: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get activeTabChange(): Observable {\n return this._activeTabChange;\n }\n\n changeActiveTab(tabId: string) {\n this._observer.next(tabId);\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {TabActivatorService} from \"../tab-activator.service\";\n\n@Component({\n selector: 'gd-tab',\n templateUrl: './tab.component.html',\n styleUrls: ['./tab.component.less']\n})\nexport class TabComponent implements OnInit {\n @Input() id: string;\n @Input() tabTitle: string;\n @Input() icon: string;\n @Input() disabled = false;\n @Input() active = false;\n @Input() content = true;\n\n constructor(private _tabActivatorService: TabActivatorService) {\n this._tabActivatorService.activeTabChange.subscribe((tabId: string) => {\n this.activation(tabId);\n });\n }\n\n private activation(tabId: string) {\n if (this.id === tabId) {\n this.active = true;\n } else {\n this.active = false;\n }\n }\n\n ngOnInit() {\n }\n\n selectTab() {\n if (this.disabled) {\n return;\n }\n this._tabActivatorService.changeActiveTab(this.id);\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'gd-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.less']\n})\nexport class TabsComponent {\n constructor() {\n }\n\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class Formatting {\n static DEFAULT: Formatting = new Formatting(10, '#000000', '#FFFFFF', false, false, false, 'Arial', false, \"\", \"\");\n\n constructor(fontSize: number, color: string, bgColor: string, bold: boolean, italic: boolean, underline: boolean, font: string, strikeout: boolean, align: string, list: string) {\n this.fontSize = fontSize;\n this.color = color;\n this.bgColor = bgColor;\n this.bold = bold;\n this.italic = italic;\n this.underline = underline;\n this.font = font;\n this.strikeout = strikeout;\n this.align = align;\n this.list = list;\n }\n\n bold: boolean;\n italic: boolean;\n underline: boolean;\n fontSize: number;\n color: string;\n bgColor: string;\n font: string;\n strikeout: boolean;\n align: string;\n list: string;\n}\n\nexport class FormattingService {\n private _observerBold: Subject = new Subject();\n private readonly _formatBoldChange: Observable = this._observerBold.asObservable();\n private _observerUnderline: Subject = new Subject();\n private readonly _formatUnderlineChange: Observable = this._observerUnderline.asObservable();\n private _observerUndo: Subject = new Subject();\n private readonly _undo: Observable = this._observerUndo.asObservable();\n private _observerRedo: Subject = new Subject();\n private readonly _redo: Observable = this._observerRedo.asObservable();\n private _observerItalic: Subject = new Subject();\n private readonly _formatItalicChange: Observable = this._observerItalic.asObservable();\n private _observerColor: Subject = new Subject();\n private readonly _formatColorChange: Observable = this._observerColor.asObservable();\n private _observerBgColor: Subject = new Subject();\n private readonly _formatBgColorChange: Observable = this._observerBgColor.asObservable();\n private _observerFontSize: Subject = new Subject();\n private readonly _formatFontSizeChange: Observable = this._observerFontSize.asObservable();\n private _observerFont: Subject = new Subject();\n private readonly _formatFontChange: Observable = this._observerFont.asObservable();\n private _observerStrikeout: Subject = new Subject();\n private readonly _formatStrikeoutChange: Observable = this._observerStrikeout.asObservable();\n private _observerAlign: Subject = new Subject();\n private readonly _formatAlignChange: Observable = this._observerAlign.asObservable();\n private _observerList: Subject = new Subject();\n private readonly _formatListChange: Observable = this._observerList.asObservable();\n\n constructor() {\n }\n\n get formatBoldChange() {\n return this._formatBoldChange;\n }\n\n get formatUnderlineChange() {\n return this._formatUnderlineChange;\n }\n\n get formatColorChange() {\n return this._formatColorChange;\n }\n\n get formatBgColorChange() {\n return this._formatBgColorChange;\n }\n\n get formatFontSizeChange() {\n return this._formatFontSizeChange;\n }\n\n get formatFontChange() {\n return this._formatFontChange;\n }\n\n get undo() {\n return this._undo;\n }\n\n get redo() {\n return this._redo;\n }\n\n get formatItalicChange() {\n return this._formatItalicChange;\n }\n\n get formatStrikeoutChange() {\n return this._formatStrikeoutChange;\n }\n\n get formatAlignChange() {\n return this._formatAlignChange;\n }\n\n get formatListChange() {\n return this._formatListChange;\n }\n\n static createFontSizeOption(val: number) {\n return {value: val, name: val + 'px', separator: false}\n }\n\n static getFontSizeOptions() {\n return [\n FormattingService.createFontSizeOption(8),\n FormattingService.createFontSizeOption(10),\n FormattingService.createFontSizeOption(12),\n FormattingService.createFontSizeOption(14),\n FormattingService.createFontSizeOption(16),\n FormattingService.createFontSizeOption(18),\n FormattingService.createFontSizeOption(20),\n FormattingService.createFontSizeOption(22),\n FormattingService.createFontSizeOption(24),\n ];\n }\n\n static createFontOption(val: string) {\n return {value: val, name: val, separator: false}\n }\n\n static getFontOptions() {\n const fonts = [\"Arial\", \"Calibri\", \"Century Gothic\", \"Comic Sans\", \"Consolas\", \"Courier\", \"Dejavu Sans\", \"Dejavu Serif\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Lucida Sans\",\n \"Myriad Pro\", \"Open Sans\", \"Palatino\", \"Tahoma\", \"Times New Roman\", \"Trebuchet\"];\n const fontOptions = [];\n fonts.forEach(font=> {\n fontOptions.push(this.createFontOption(font));\n })\n\n return fontOptions;\n }\n\n changeFormatFontSize($event: number) {\n this._observerFontSize.next($event);\n }\n\n changeFormatBold(bold: boolean) {\n this._observerBold.next(bold);\n }\n\n changeFormatUnderline(underline: boolean) {\n this._observerUnderline.next(underline);\n }\n\n Undo() {\n this._observerUndo.next();\n }\n\n Redo() {\n this._observerRedo.next();\n }\n\n changeFormatItalic(italic: boolean) {\n this._observerItalic.next(italic);\n }\n\n changeFormatColor(color: string) {\n this._observerColor.next(color);\n }\n\n changeFormatBgColor(bgcolor: string) {\n this._observerBgColor.next(bgcolor);\n }\n\n changeFormatFont(font: string) {\n this._observerFont.next(font);\n }\n\n changeFormatStrikeout(strikeout: boolean) {\n this._observerStrikeout.next(strikeout);\n }\n\n changeFormatAlign(align: string) {\n this._observerAlign.next(align);\n }\n\n changeFormatList(list: string) {\n this._observerList.next(list);\n }\n}\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\n\nconst DEFAULT_COLORS = ['#000000', '#993300', '#333300', '#000080', '#333399', '#333333',\n '#800000', '#FF6600', '#808000', '#008000', '#008080', '#0000FF',\n '#666699', '#808080', '#FF0000', '#FF9900', '#99CC00', '#339966',\n '#33CCCC', '#3366FF', '#800080', '#999999', '#FF00FF', '#FFCC00',\n '#FFFF00', '#00FF00', '#00FFFF', '#00CCFF', '#993366', '#C0C0C0',\n '#FF99CC', '#FFCC99', '#FFFF99', '#CCFFFF', '#99CCFF', '#FFFFFF'];\n\n\n@Component({\n selector: 'gd-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.less']\n})\nexport class ColorPickerComponent implements OnInit {\n @Output() selectedColor = new EventEmitter();\n colors: any = DEFAULT_COLORS;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n select($event, color: string) {\n $event.preventDefault();\n $event.stopPropagation();\n this.selectedColor.emit(color);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {FormattingService} from \"./formatting.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BackFormattingService extends FormattingService {\n\n constructor() {\n super();\n }\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SelectionService {\n selection: Range;\n isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n\n restoreSelection() {\n if(this.selection && !this.selection.collapsed || this.isIE){\n this.putSelection(this.selection );\n }\n }\n\n captureSelection() {\n const selection = window.getSelection();\n if (selection.rangeCount > 0) {\n this.selection = selection.getRangeAt(0);\n }\n }\n\n private putSelection(selection) {\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(selection.cloneRange());\n }\n\n refreshSelection() {\n this.captureSelection();\n this.restoreSelection();\n }\n}\n","import {Directive, HostListener, OnInit} from '@angular/core';\nimport {FormattingService} from \"./formatting.service\";\nimport {BackFormattingService} from \"./back-formatting.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\nimport {SelectionService} from './selection.service';\n\n@Directive({\n selector: '[gdFormatting]'\n})\nexport class FormattingDirective implements OnInit {\n\n private bold = false;\n private italic = false;\n private underline = false;\n private color: string;\n private bgColor: string;\n private font: string;\n private strikeout = false;\n private align: string;\n private list: string;\n private isIE = false;\n\n constructor(private _formattingService: FormattingService,\n private _backFormattingService: BackFormattingService,\n private _selectionService: SelectionService) {\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n }\n\n @HostListener('mouseup') mouseup() {\n\n this.bold = document.queryCommandState(\"bold\");\n this.strikeout = document.queryCommandState(\"strikeThrough\");\n this.italic = document.queryCommandState(\"italic\");\n this.bgColor = document.queryCommandValue(\"backColor\");\n this.underline = document.queryCommandState(\"underline\");\n this.align = this.checkJustify();\n this.list = this.checkList();\n\n //fix required by FireFox to get correct background color\n if (this.bgColor === \"transparent\") {\n this.bgColor = $(window.getSelection().focusNode.parentNode).css('background-color').toString();\n }\n this.font = document.queryCommandValue(\"FontName\").replace(/\"/g, '');\n if(this.font.split(\",\").length > 1){\n this.font = this.font.split(\",\")[0];\n }\n this.color = document.queryCommandValue(\"foreColor\");\n this._backFormattingService.changeFormatBold(this.bold);\n this._backFormattingService.changeFormatUnderline(this.underline);\n this._backFormattingService.changeFormatItalic(this.italic);\n this._backFormattingService.changeFormatColor(this.color);\n this._backFormattingService.changeFormatBgColor(this.bgColor);\n this._backFormattingService.changeFormatFontSize(this.reportFontSize());\n this._backFormattingService.changeFormatFont(this.font);\n this._backFormattingService.changeFormatStrikeout(this.strikeout);\n this._backFormattingService.changeFormatAlign(this.align);\n this._backFormattingService.changeFormatList(this.list);\n }\n\n private checkJustify() {\n let align = \"\";\n align = document.queryCommandState(\"justifyCenter\") ? \"center\" : align;\n align = document.queryCommandState(\"justifyFull\") ? \"full\" : align;\n align = document.queryCommandState(\"justifyLeft\") ? \"left\" : align;\n align = document.queryCommandState(\"justifyRight\") ? \"right\" : align;\n return align;\n }\n\n private checkList() {\n let list = \"\";\n list = document.queryCommandState(\"insertUnorderedList\") ? \"unordered\" : list;\n list = document.queryCommandState(\"insertOrderedList\") ? \"ordered\" : list;\n return list;\n }\n\n reportFontSize(): number {\n let containerEl, sel;\n if (window.getSelection) {\n sel = window.getSelection();\n if (sel.rangeCount) {\n containerEl = sel.getRangeAt(0).commonAncestorContainer;\n // Make sure we have an element rather than a text node\n if (containerEl.nodeType === 3) {\n containerEl = containerEl.parentNode;\n }\n }\n } else if ((sel = document.getSelection()) && sel.type !== \"Control\") {\n containerEl = sel.createRange().parentElement();\n }\n\n if (containerEl) {\n return parseInt(this.getComputedStyleProperty(containerEl, \"fontSize\").replace(\"px\", \"\"), 10);\n }\n }\n\n getComputedStyleProperty(el, propName) {\n if (window.getComputedStyle) {\n return window.getComputedStyle(el, null)[propName];\n } else if (el.currentStyle) {\n return el.currentStyle[propName];\n }\n }\n\n ngOnInit(): void {\n this._formattingService.undo.subscribe(() => {\n this.toggleUndo();\n });\n this._formattingService.redo.subscribe(() => {\n this.toggleRedo();\n });\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.bold = bold;\n this.toggleBold();\n });\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.underline = underline;\n this.toggleUnderline();\n });\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.italic = italic;\n this.toggleItalic();\n });\n this._formattingService.formatColorChange.subscribe(((color: string) => {\n this.color = color;\n this.setColor(color);\n }));\n this._formattingService.formatBgColorChange.subscribe(((bgcolor: string) => {\n this.bgColor = bgcolor;\n this.setBgColor(bgcolor);\n }));\n this._formattingService.formatFontSizeChange.subscribe(((fontSize: number) => {\n this.setFontSize(fontSize);\n }));\n\n this._formattingService.formatFontChange.subscribe(((font: string) => {\n this.font = font;\n this.setFont(font);\n }));\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.strikeout = strikeout;\n this.toggleStrikeout();\n });\n this._formattingService.formatAlignChange.subscribe((align: string) => {\n this.align = align;\n this.toggleAlign(this.align);\n });\n this._formattingService.formatListChange.subscribe((list: string) => {\n this.list = list;\n this.toggleList(this.list);\n });\n }\n\n private toggleBold() {\n document.execCommand(\"bold\");\n this._selectionService.refreshSelection();\n }\n\n private toggleUnderline() {\n document.execCommand(\"underline\");\n this._selectionService.refreshSelection();\n }\n\n private toggleItalic() {\n document.execCommand(\"italic\");\n this._selectionService.refreshSelection();\n }\n\n private setBgColor(bgColor: string) {\n document.execCommand(\"backColor\", false, bgColor);\n this._selectionService.refreshSelection();\n }\n\n private setColor(color: string) {\n document.execCommand(\"foreColor\", false, color);\n this._selectionService.refreshSelection();\n }\n\n private setFontSize(fontSize: number) {\n if (document.getSelection().toString()) {\n let spanString = \"\" +\n document.getSelection() + \"\";\n if (this.bold) {\n spanString = \"\" + spanString + \"\";\n }\n if (this.italic) {\n spanString = \"\" + spanString + \"\";\n }\n if (this.underline) {\n spanString = \"\" + spanString + \"\";\n }\n if (this.strikeout) {\n spanString = \"\" + spanString + \"\";\n }\n document.execCommand('insertHTML', false, spanString);\n } else {\n document.execCommand(\"fontsize\", false, \"7\");\n }\n this._selectionService.refreshSelection();\n }\n\n private toggleUndo() {\n document.execCommand(\"undo\");\n }\n\n private toggleRedo() {\n document.execCommand(\"redo\");\n }\n\n private setFont(font: string) {\n document.execCommand(\"fontName\", false, font);\n this._selectionService.refreshSelection();\n }\n\n private toggleStrikeout() {\n document.execCommand(\"strikeThrough\");\n this._selectionService.refreshSelection();\n }\n\n private toggleAlign(align: string) {\n if(this.isIE) {\n this.toggleAlignIE(align);\n return;\n }\n document.execCommand(\"styleWithCSS\", false, 'true');\n switch (align) {\n case 'center':\n document.execCommand('justifyCenter');\n break;\n case 'full':\n document.execCommand('justifyFull');\n break;\n case 'left':\n document.execCommand('justifyLeft');\n break;\n case 'right':\n document.execCommand('justifyRight');\n break;\n }\n this._selectionService.refreshSelection();\n }\n\n private toggleAlignIE(align: string) {\n this._selectionService.restoreSelection()\n this._selectionService.captureSelection()\n const selection = window.getSelection().focusNode.parentNode.parentNode;\n if(align === \"full\"){\n align = \"justify\";\n }\n $(selection).css(\"text-align\", align);\n this._selectionService.refreshSelection()\n }\n\n private toggleList(list: string) {\n switch (list) {\n case 'unordered':\n document.execCommand('insertUnorderedList');\n break;\n case 'ordered':\n document.execCommand('insertOrderedList');\n break;\n }\n this._selectionService.refreshSelection();\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'gd-success-modal',\n templateUrl: './success-modal.component.html',\n styleUrls: ['./success-modal.component.less']\n})\nexport class SuccessModalComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Subject} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditHtmlService {\n private _observer: Subject = new Subject();\n private readonly _htmlContent: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get observer(): Subject {\n return this._observer;\n }\n\n get htmlContent(): Observable {\n return this._htmlContent;\n }\n\n}\n","import {Directive, HostListener, Input} from '@angular/core';\nimport {SelectionService} from './selection.service';\nimport {EditHtmlService} from \"./edit-html.service\";\n\n@Directive({\n selector: '[gdEditor]'\n})\nexport class EditorDirective {\n @Input() text: any;\n\n private isIE: boolean = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n\n constructor(private _selectionService: SelectionService, private _htmlService: EditHtmlService) {\n }\n\n @HostListener('keyup', ['$event'])\n public onInput(event) {\n this.text = event.target;\n if(this.isIE){\n if (this.text.innerHTML) {\n const html = this.text.innerHTML.toString();\n this._htmlService.observer.next(html);\n }\n }\n }\n\n @HostListener('mouseleave', ['$event'])\n public onMouseleave(event) {\n this._selectionService.captureSelection();\n // this code is required to fix IE11 issue - it doesn't trigger blur event, since that we need to save updated HTML here\n if(this.isIE){\n this._htmlService.observer.next(event.target.innerHTML.toString());\n }\n }\n\n @HostListener('blur', ['$event'])\n public onBlur(event) {\n event.preventDefault();\n this._selectionService.restoreSelection();\n if (this.text.innerHTML) {\n const html = this.text.innerHTML.toString();\n this._htmlService.observer.next(html);\n } else {\n this._htmlService.observer.next(event.target.innerHTML.toString());\n }\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core'\nimport { HttpRequest } from '@angular/common/http';\n\n@Injectable()\nexport class LoadingMaskService {\n onLoadingChanged: EventEmitter = new EventEmitter();\n\n private requests: HttpRequest[] = [];\n\n constructor() {\n }\n\n onRequestStart(req: HttpRequest): void {\n this.requests.push(req);\n this.notify();\n }\n\n onRequestFinish(req: HttpRequest): void {\n const index = this.requests.indexOf(req);\n if (index !== -1) {\n this.requests.splice(index, 1);\n }\n this.notify();\n }\n\n private notify(): void {\n this.onLoadingChanged.emit(this.requests.length !== 0);\n }\n}\n","import {AfterViewInit, Component, Input, OnInit} from '@angular/core';\nimport {LoadingMaskService} from \"../loading-mask.service\";\n\n@Component({\n selector: 'gd-loading-mask',\n templateUrl: './loading-mask.component.html',\n styleUrls: ['./loading-mask.component.less']\n})\n\nexport class LoadingMaskComponent implements OnInit, AfterViewInit {\n @Input() loadingMask = false;\n\n constructor(private _loadingMaskService: LoadingMaskService) {\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.loadingMask = loading);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\nimport {Observable} from \"rxjs\";\nimport {finalize} from 'rxjs/operators'\nimport {LoadingMaskService} from \"./loading-mask.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoadingMaskInterceptorService implements HttpInterceptor {\n\n constructor(private _loadingMaskService: LoadingMaskService) {\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n this._loadingMaskService.onRequestStart(req);\n const callback = () => this._loadingMaskService.onRequestFinish(req);\n return next.handle(req).pipe( finalize( callback));\n }\n}\n","import {\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\n\n\nconst horizontalAlignment = {\n center : {\n right: 'auto'\n },\n left : {\n right: '100%'\n },\n right : {\n right: '-100%'\n }\n};\n\nconst verticalAlignment = {\n center : {\n top : '0px',\n },\n top : {\n top : '-100%',\n right: '100%'\n },\n bottom : {\n top: 'autos'\n }\n};\n\n/**\n * DropDownToggleComponent\n */\n@Component({\n selector: 'gd-drop-down-toggle',\n template: '',\n styleUrls: ['./drop-down.component.less'],\n encapsulation : ViewEncapsulation.None\n})\nexport class DropDownToggleComponent{\n @HostListener('click',['$event'])\n click = (event: any) => this.dropdown.toggle(event);\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\n}\n\n/**\n * DropDownItemsComponent\n */\n@Component({\n selector: 'gd-drop-down-items',\n template: '
',\n styleUrls: ['./drop-down.component.less'],\n encapsulation : ViewEncapsulation.None\n})\nexport class DropDownItemsComponent{\n\n get horizontalAlign(){\n return horizontalAlignment[this.dropdown.getPlacement().h].right;\n }\n\n get verticalAlign(){\n return verticalAlignment[this.dropdown.getPlacement().v].top;\n }\n\n get isOpen(){\n return this.dropdown.open;\n }\n\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\n\n onClickOutside(event : Event ){\n this.dropdown.close();\n }\n}\n\n/**\n * DropDownItemComponent\n */\n@Component({\n selector: 'gd-drop-down-item',\n template: '
',\n styleUrls: ['./drop-down.component.less'],\n})\nexport class DropDownItemComponent{\n @HostBinding('class')\n class = 'drop-down-item';\n\n @Output()\n selected = new EventEmitter();\n\n @HostListener('click')\n click = () => this.selectEntry();\n\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\n\n selectEntry(){\n this.selected.next();\n this.dropdown.close();\n }\n}\n\n/**\n * DropDownComponent\n */\n@Component({\n selector: 'gd-drop-down',\n template: '
',\n styleUrls: ['./drop-down.component.less'],\n encapsulation : ViewEncapsulation.None\n})\nexport class DropDownComponent{\n @Input()\n placement = {\n h: \"center\",\n v: \"bottom\"\n };\n\n\n @Input()\n @HostBinding('class.show')\n open = false;\n\n @HostBinding('class')\n class = 'drop-down';\n\n close(){\n this.open = false;\n }\n\n toggle(event : MouseEvent){\n event.stopPropagation();\n this.open = !this.open;\n document.body.click();\n }\n\n getPlacement(){\n return this.placement;\n }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TopToolbarComponent} from './top-toolbar/top-toolbar.component';\nimport {SidePanelComponent} from './side-panel/side-panel.component';\nimport {ButtonComponent} from './button/button.component';\nimport {LogoComponent} from './logo/logo.component';\nimport {TooltipComponent} from './tooltip/tooltip.component';\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport {fas} from '@fortawesome/free-solid-svg-icons';\nimport {far} from '@fortawesome/free-regular-svg-icons';\nimport {Api, ConfigService,} from \"./config.service\";\nimport {ModalService} from \"./modal.service\";\nimport {ModalComponent} from './modal/modal.component';\nimport {BrowseFilesModalComponent} from './browse-files-modal/browse-files-modal.component';\nimport {FileModel, FileService, FileUtil} from \"./file.service\";\nimport {DocumentComponent} from './document/document.component';\nimport {PageComponent} from './page/page.component';\nimport {HighlightSearchPipe, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe} from \"./pipes\";\nimport {UploadFileZoneComponent} from './upload-file-zone/upload-file-zone.component';\nimport {UploadFilesService} from \"./upload-files.service\";\nimport {DndDirective} from './dnd.directive';\nimport {ScrollableDirective} from './scrollable.directive';\nimport {NavigateService} from \"./navigate.service\";\nimport {PagePreloadService} from \"./page-preload.service\";\nimport {ZoomDirective} from './zoom.directive';\nimport {ZoomService} from \"./zoom.service\";\nimport {SelectComponent} from './select/select.component';\nimport {DisabledCursorDirective} from './disabled-cursor.directive';\nimport {RotationDirective} from './rotation.directive';\nimport {InitStateComponent} from './init-state/init-state.component';\nimport {RenderPrintService} from \"./render-print.service\";\nimport {RenderPrintDirective} from './render-print.directive';\nimport {ErrorModalComponent} from './error-modal/error-modal.component';\nimport {PasswordRequiredComponent} from './password-required/password-required.component';\nimport {ExceptionMessageService} from \"./exception-message.service\";\nimport {PasswordService} from \"./password.service\";\nimport {ErrorInterceptorService} from \"./error-interceptor.service\";\nimport {SearchComponent} from './search/search.component';\nimport {SearchableDirective} from './searchable.directive';\nimport {SearchService} from \"./search.service\";\nimport {WindowService} from \"./window.service\";\nimport {ViewportService} from \"./viewport.service\";\nimport {TabbedToolbarsComponent} from './tabbed-toolbars/tabbed-toolbars.component';\nimport {TabComponent} from \"./tab/tab.component\";\nimport {TabsComponent} from \"./tabs/tabs.component\";\nimport {FormattingService} from \"./formatting.service\";\nimport {ColorPickerComponent} from './color-picker/color-picker.component';\nimport {FormattingDirective} from './formatting.directive';\nimport {BackFormattingService} from \"./back-formatting.service\";\nimport {OnCloseService} from \"./on-close.service\";\nimport {SuccessModalComponent} from './success-modal/success-modal.component';\nimport {EditorDirective} from './editor.directive';\nimport {LoadingMaskComponent} from './loading-mask/loading-mask.component';\nimport {LoadingMaskService} from './loading-mask.service';\nimport {LoadingMaskInterceptorService} from \"./loading-mask-interceptor.service\";\nimport {TabActivatorService} from \"./tab-activator.service\";\nimport { DropDownComponent,DropDownItemComponent,DropDownItemsComponent,DropDownToggleComponent } from './drop-down/drop-down.component';\nimport { ClickOutsideModule } from 'ng-click-outside';\n\nconst providers = [ConfigService,\n Api,\n ModalService,\n FileService,\n FileModel,\n FileUtil,\n SanitizeHtmlPipe,\n SanitizeResourceHtmlPipe,\n SanitizeStylePipe,\n HighlightSearchPipe,\n UploadFilesService,\n RenderPrintService,\n NavigateService,\n PagePreloadService,\n ZoomService,\n ExceptionMessageService,\n PasswordService,\n ErrorInterceptorService,\n SearchService,\n WindowService,\n ViewportService,\n FormattingService,\n BackFormattingService,\n OnCloseService,\n LoadingMaskInterceptorService,\n LoadingMaskService,\n TabActivatorService];\n\n@NgModule({\n imports: [CommonModule, FontAwesomeModule, ClickOutsideModule],\n declarations: [\n TopToolbarComponent,\n SidePanelComponent,\n ButtonComponent,\n LogoComponent,\n TooltipComponent,\n ModalComponent,\n BrowseFilesModalComponent,\n DocumentComponent,\n PageComponent,\n SanitizeHtmlPipe,\n SanitizeResourceHtmlPipe,\n SanitizeStylePipe,\n HighlightSearchPipe,\n UploadFileZoneComponent,\n DndDirective,\n ScrollableDirective,\n ZoomDirective,\n SelectComponent,\n DisabledCursorDirective,\n RotationDirective,\n InitStateComponent,\n RenderPrintDirective,\n ErrorModalComponent,\n PasswordRequiredComponent,\n SearchComponent,\n SearchableDirective,\n TabbedToolbarsComponent,\n TabComponent,\n TabsComponent,\n ColorPickerComponent,\n FormattingDirective,\n SuccessModalComponent,\n EditorDirective,\n LoadingMaskComponent,\n DropDownComponent,\n DropDownItemComponent,\n DropDownItemsComponent,\n DropDownToggleComponent\n ],\n exports: [\n TopToolbarComponent,\n SidePanelComponent,\n ButtonComponent,\n LogoComponent,\n TooltipComponent,\n ModalComponent,\n BrowseFilesModalComponent,\n DocumentComponent,\n PageComponent,\n SanitizeResourceHtmlPipe,\n SanitizeStylePipe,\n HighlightSearchPipe,\n SanitizeHtmlPipe,\n UploadFileZoneComponent,\n ScrollableDirective,\n SelectComponent,\n RotationDirective,\n InitStateComponent,\n RenderPrintDirective,\n ErrorModalComponent,\n PasswordRequiredComponent,\n SearchComponent,\n SearchableDirective,\n TabbedToolbarsComponent,\n TabComponent,\n TabsComponent,\n ColorPickerComponent,\n FormattingDirective,\n SuccessModalComponent,\n LoadingMaskComponent,\n DndDirective,\n DropDownComponent,\n DropDownItemComponent,\n DropDownItemsComponent,\n DropDownToggleComponent\n ],\n providers: providers\n})\nexport class CommonComponentsModule {\n constructor() {\n library.add(fas, far);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/common-components/lib/top-toolbar/top-toolbar.component.ts","ng://@groupdocs.examples.angular/common-components/lib/side-panel/side-panel.component.ts","ng://@groupdocs.examples.angular/common-components/lib/button/button.component.ts","ng://@groupdocs.examples.angular/common-components/lib/logo/logo.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tooltip/tooltip.component.ts","ng://@groupdocs.examples.angular/common-components/lib/config.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal/modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/file.service.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-files.service.ts","ng://@groupdocs.examples.angular/common-components/lib/browse-files-modal/browse-files-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.service.ts","ng://@groupdocs.examples.angular/common-components/lib/window.service.ts","ng://@groupdocs.examples.angular/common-components/lib/rotation.service.ts","ng://@groupdocs.examples.angular/common-components/lib/document/document.component.ts","ng://@groupdocs.examples.angular/common-components/lib/page/page.component.ts","ng://@groupdocs.examples.angular/common-components/lib/pipes.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-file-zone/upload-file-zone.component.ts","ng://@groupdocs.examples.angular/common-components/lib/dnd.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/page-preload.service.ts","ng://@groupdocs.examples.angular/common-components/lib/navigate.service.ts","ng://@groupdocs.examples.angular/common-components/lib/viewport.service.ts","ng://@groupdocs.examples.angular/common-components/lib/scrollable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/on-close.service.ts","ng://@groupdocs.examples.angular/common-components/lib/select/select.component.ts","ng://@groupdocs.examples.angular/common-components/lib/disabled-cursor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/rotation.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/init-state/init-state.component.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.service.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/exception-message.service.ts","ng://@groupdocs.examples.angular/common-components/lib/error-modal/error-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/password.service.ts","ng://@groupdocs.examples.angular/common-components/lib/password-required/password-required.component.ts","ng://@groupdocs.examples.angular/common-components/lib/error-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/custom-hammer-config.ts","ng://@groupdocs.examples.angular/common-components/lib/search.service.ts","ng://@groupdocs.examples.angular/common-components/lib/search/search.component.ts","ng://@groupdocs.examples.angular/common-components/lib/searchable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/tabbed-toolbars/tabbed-toolbars.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tab-activator.service.ts","ng://@groupdocs.examples.angular/common-components/lib/tab/tab.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tabs/tabs.component.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/color-picker/color-picker.component.ts","ng://@groupdocs.examples.angular/common-components/lib/back-formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/selection.service.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/success-modal/success-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/edit-html.service.ts","ng://@groupdocs.examples.angular/common-components/lib/editor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask.service.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask/loading-mask.component.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/drop-down/drop-down.component.ts","ng://@groupdocs.examples.angular/common-components/lib/common-components.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__values","o","m","Symbol","iterator","i","call","next","length","value","done","TopToolbarComponent","Component","args","selector","template","SidePanelComponent","hideSidePanel","EventEmitter","openSidePanel","emit","Input","Output","ButtonComponent","iconOnly","intent","disabled","toggle","showToolTip","iconButtonClass","onHovering","className","onUnhovering","replace","LogoComponent","ngOnInit","TooltipComponent","visibility","defineProperty","Api","VIEWER_APP","EDITOR_APP","COMPARISON_APP","CONVERSION_APP","DEFAULT_API_ENDPOINT","window","location","href","LOAD_FILE_TREE","LOAD_CONFIG","LOAD_DOCUMENT_DESCRIPTION","LOAD_DOCUMENT_PAGE","ROTATE_DOCUMENT_PAGE","UPLOAD_DOCUMENTS","DOWNLOAD_DOCUMENTS","LOAD_PRINT","LOAD_PRINT_PDF","LOAD_THUMBNAILS","LOAD_FORMATS","SAVE_FILE","COMPARE_FILES","CONVERT_FILE","httpOptionsJson","headers","HttpHeaders","Content-Type","httpOptionsJsonResponseTypeBlob","responseType","ConfigService","apiEndpoint","_apiEndpoint","url","trim","endsWith","substring","getConfigEndpoint","app","getViewerApiEndpoint","getEditorApiEndpoint","getComparisonApiEndpoint","getConversionApiEndpoint","Injectable","CommonModals","PasswordRequired","ErrorMessage","BrowseFiles","CreateDocument","OperationSuccess","ModalService","modals","add","modal","push","remove","id","filter","x","open","close","ModalComponent","modalService","el","visible","element","nativeElement","document","body","appendChild","console","error","ngOnDestroy","event","preventDefault","stopPropagation","onClose","$event","target","ElementRef","guid","password","SaveFile","content","_this","_super","tslib_1.__extends","FileCredentials","printAllowed","HttpError","BadRequest","Unauthorized","Forbidden","NotFound","TimeOut","Conflict","InternalServerError","FileUtil","find","filename","isDirectory","strings","split","name_1","pop","toLowerCase","map","folder","format","icon","pdf","unit","doc","docx","docm","dot","dotx","dotm","xls","xlsx","xlsm","xlsb","xls2003","xltx","xltm","ppt","pptx","pps","ppsx","vsd","vdx","vss","vsx","vst","vtx","vsdx","vdw","vstx","vssx","mpp","mpt","msg","eml","emlx","one","odt","ott","ods","odp","otp","ots","potx","potm","pptm","ppsm","rtf","txt","csv","html","mht","mhtml","xml","xps","dxf","dwg","bmp","gif","jpg","jpe","jpeg","jfif","png","tiff","tif","psd","svg","jp2","epub","ico","webp","mobi","tex","djvu","unknown","UploadFilesService","_uploadsChange","Observable","observer","_observer","changeFilesList","filesList","$","jquery","uploads_choices","name","BrowseFilesModalComponent","_uploadService","uploads","selectedFileGuid","selectedDirectory","urlForUpload","closing","showUploadUrl","showUploadFile","getSize","size","mb","Math","round","kb","getFormatName","file","directory","getFormatIcon","choose","selectedFile","goUp","indexOf","selectUpload","trigger","refresh","files","showSpinner","uploadUrl","cleanUpload","handleFileInput","ZoomService","Subject","_zoomChange","asObservable","_zoom","changeZoom","zoom","createZoomOption","val","sep","separator","zoomOptions","width","height","WindowService","resizeSubject","innerWidth","innerHeight","_resize$","fromEvent","pipe","debounceTime","distinctUntilChanged","startWith","tap","subscribe","isMobile","isTablet","isDesktop","isEdge","navigator","userAgent","isFirefox","RotationService","_observerRotationAngle","_rotationAngleChange","setRotationAngle","angle","DocumentComponent","_elementRef","_zoomService","_windowService","_rotationServcie","wait","docWidth","docHeight","viewportWidth","viewportHeight","scale","lastScale","container","lastX","y","lastY","pinchCenter","pinchCenterOffset","curWidth","curHeight","zoomChange","ngOnChanges","children","item","style","transform","ngAfterViewInit","clientWidth","clientHeight","offsetWidth","offsetHeight","Hammer","ifExcel","getDimensionWithUnit","ngAfterViewChecked","querySelectorAll","absolutePosition","offsetLeft","offsetTop","offsetParent","restrictRawPos","pos","viewportDim","docDim","updateLastPos","translate","deltaX","deltaY","newX","min","scrollLeft","ceil","newY","scrollTop","startZoom","scaleBy","rawCenter","pageXOffset","pageYOffset","center","updateLastScale","zoomAround","rawZoomX","rawZoomY","doNotUpdateLast","rawCenterX","rawCenterY","onPinch","log","offsetX","offsetY","newScale","zoomCenter","onPinchEnd","onPan","onPanEnd","onDoubleTap","tapCount","c","onRotateStart","initialRotation","rotation","onRotateEnd","PageComponent","test","number","editable","changes","data","imgData","isHtml","SanitizeHtmlPipe","sanitizer","bypassSecurityTrustHtml","Pipe","DomSanitizer","SanitizeResourceHtmlPipe","bypassSecurityTrustResourceUrl","SanitizeStylePipe","bypassSecurityTrustStyle","HighlightSearchPipe","re","RegExp","UploadFileZoneComponent","closeUpload","onCloseUpload","DndDirective","_uploadFilesService","opening","dropped","active","onDragOver","evt","onDragLeave","closeArea","onDrop","dataTransfer","onClick","Directive","HostBinding","HostListener","PagePreloadService","_checkPreload","changeLastPageInView","page","NavigateService","_pagePreloadService","_currentPage","_countPages","_navigate","nextPage","navigateTo","prevPage","toLastPage","toFirstPage","currentPage","providedIn","ViewportService","checkInViewport","leftOffset","win","viewport","isNaN","zoomN","outerHeight","outerWidth","bounds","offset","right","left","bottom","top","deltas","parseFloat","toFixed","ScrollableDirective","_navigateService","_viewportService","navigate","scrollToPage","scrolling","resizing","pageNumber","getPage","prev","isSameTop","options","calculateOffset","scroll","getChildren","count","countPagesOnWidth","margin","pagesHeight","getZoom","pageEl","floor","getWidth","getBoundingClientRect","currentPageSet","pageElem","currentPageRect","ZoomDirective","zoomActive","setStyles","resizePages","zoomInt","transformOrigin","maxWidth","pages","forEach","minWidth","getScrollWidth","elm","viewPortWidth","parentElement","scrollWidth","OnCloseService","_onClose","SelectComponent","_onCloseService","selected","isOpen","onClickOutside","select","DisabledCursorDirective","updateCursor","cursor","dis","RotationDirective","withMargin","parseInt","animation","transition","isHtmlMode","isLandscape","InitStateComponent","fileDropped","RenderPrintService","_render","_renderBlob","_observerBlob","changePages","changeBlob","RenderPrintDirective","_renderService","renderPrint","renderPrintBlob","pagesHtml","htmlMode","pages_1","tslib_1.__values","pages_1_1","pages_2","pages_2_1","openWindow","imageA4Adjusted","cssPrint","windowObject","focus","writeln","print","fileURL","URL","createObjectURL","ExceptionMessageService","BehaviorSubject","_messageChange","changeMessage","message","ErrorModalComponent","messageService","messageChange","PasswordService","_passChange","setPassword","pass","PasswordRequiredComponent","_passwordService","ErrorInterceptorService","_modalService","_messageService","intercept","req","logFormat","handle","catchError","exception","HttpErrorResponse","status","throwError","CustomHammerConfig","apply","arguments","overrides","pinch","direction","Hammer.DIRECTION_ALL","enable","dropRecognizeWith","rotate","requireFailure","HammerGestureConfig","SearchService","_textChange","_observerCurrent","_currentChange","_observerTotal","_totalChange","setText","text","setCurrent","current","setTotal","total","SearchComponent","_searchService","hidePanel","totalChange","hide","textElement","ViewChild","static","SearchableDirective","_highlight","currentChange","moveToCurrent","textChange","highlightSearch","cleanHighlight","highlightEl","removeClass","currentEl","addClass","textNodes","contents","nodeName","checkClass","classList","contains","nodeType","textContent","highlight","each","$this","replaceWith","normalize","nodeListOf","innerText","TabbedToolbarsComponent","TabActivatorService","_activeTabChange","changeActiveTab","tabId","TabComponent","_tabActivatorService","activeTabChange","activation","selectTab","TabsComponent","Formatting","fontSize","color","bgColor","bold","italic","underline","font","strikeout","align","list","DEFAULT","FormattingService","_observerBold","_formatBoldChange","_observerUnderline","_formatUnderlineChange","_observerUndo","_undo","_observerRedo","_redo","_observerItalic","_formatItalicChange","_observerColor","_formatColorChange","_observerBgColor","_formatBgColorChange","_observerFontSize","_formatFontSizeChange","_observerFont","_formatFontChange","_observerStrikeout","_formatStrikeoutChange","_observerAlign","_formatAlignChange","_observerList","_formatListChange","createFontSizeOption","getFontSizeOptions","createFontOption","getFontOptions","fontOptions","changeFormatFontSize","changeFormatBold","changeFormatUnderline","Undo","Redo","changeFormatItalic","changeFormatColor","changeFormatBgColor","bgcolor","changeFormatFont","changeFormatStrikeout","changeFormatAlign","changeFormatList","DEFAULT_COLORS","ColorPickerComponent","selectedColor","colors","BackFormattingService","SelectionService","isIE","restoreSelection","selection","collapsed","putSelection","captureSelection","getSelection","rangeCount","getRangeAt","sel","removeAllRanges","addRange","cloneRange","refreshSelection","FormattingDirective","_formattingService","_backFormattingService","_selectionService","mouseup","queryCommandState","queryCommandValue","checkJustify","checkList","focusNode","parentNode","css","toString","reportFontSize","containerEl","commonAncestorContainer","type","createRange","getComputedStyleProperty","propName","getComputedStyle","currentStyle","undo","toggleUndo","redo","toggleRedo","formatBoldChange","toggleBold","formatUnderlineChange","toggleUnderline","formatItalicChange","toggleItalic","formatColorChange","setColor","formatBgColorChange","setBgColor","formatFontSizeChange","setFontSize","formatFontChange","setFont","formatStrikeoutChange","toggleStrikeout","formatAlignChange","toggleAlign","formatListChange","toggleList","execCommand","spanString","toggleAlignIE","SuccessModalComponent","EditHtmlService","_htmlContent","EditorDirective","_htmlService","onInput","innerHTML","onMouseleave","onBlur","LoadingMaskService","onLoadingChanged","requests","onRequestStart","notify","onRequestFinish","index","splice","LoadingMaskComponent","_loadingMaskService","loadingMask","loading","LoadingMaskInterceptorService","finalize","horizontalAlignment","verticalAlignment","DropDownToggleComponent","dropdown","click","encapsulation","ViewEncapsulation","None","Inject","forwardRef","DropDownComponent","DropDownItemsComponent","getPlacement","h","v","DropDownItemComponent","class","selectEntry","placement","providers","FileService","FileModel","CommonComponentsModule","library","fas","far","NgModule","imports","CommonModule","FontAwesomeModule","ClickOutsideModule","declarations","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-top-toolbar',\r\n templateUrl: './top-toolbar.component.html',\r\n styleUrls: ['./top-toolbar.component.less']\r\n})\r\nexport class TopToolbarComponent {\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-side-panel',\r\n templateUrl: './side-panel.component.html',\r\n styleUrls: ['./side-panel.component.less']\r\n})\r\n\r\nexport class SidePanelComponent {\r\n @Input() title: string;\r\n @Input() icon: string;\r\n @Output() hideSidePanel = new EventEmitter();\r\n\r\n constructor() {\r\n }\r\n\r\n openSidePanel() {\r\n this.hideSidePanel.emit(true);\r\n }\r\n}\r\n","import { Component, ContentChild, ElementRef, HostBinding, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.less']\r\n})\r\nexport class ButtonComponent {\r\n @Input()\r\n iconOnly = true;\r\n\r\n @Input()\r\n intent = 'default';\r\n\r\n @Input()\r\n disabled = false;\r\n\r\n @Input()\r\n icon : string;\r\n\r\n @Input()\r\n iconClass : string;\r\n\r\n @Input()\r\n tooltip : string;\r\n\r\n @Input()\r\n className: string;\r\n\r\n @Input()\r\n toggle = false;\r\n\r\n showToolTip = false;\r\n\r\n iconButtonClass(){\r\n return this.iconOnly ? 'icon-button' : '';\r\n }\r\n\r\n onHovering() {\r\n if (!this.disabled) {\r\n this.className += ' active';\r\n }\r\n this.showToolTip = true;\r\n }\r\n\r\n onUnhovering() {\r\n if (!this.disabled) {\r\n this.className = this.className.replace(' active', '');\r\n }\r\n this.showToolTip = false;\r\n }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-logo',\r\n templateUrl: './logo.component.html',\r\n styleUrls: ['./logo.component.less']\r\n})\r\nexport class LogoComponent implements OnInit {\r\n\r\n @Input() logo;\r\n @Input() icon;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-tooltip',\r\n templateUrl: './tooltip.component.html',\r\n styleUrls: ['./tooltip.component.less']\r\n})\r\nexport class TooltipComponent implements OnInit {\r\n\r\n @Input() text:string;\r\n visibility = 'hidden';\r\n\r\n constructor() {\r\n }\r\n\r\n @Input()\r\n set show(value: boolean) {\r\n this.visibility = value ? 'shown' : 'hidden';\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {HttpHeaders} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\n\r\nexport class Api {\r\n public static VIEWER_APP = '/viewer';\r\n public static EDITOR_APP = '/editor';\r\n public static COMPARISON_APP = '/comparison';\r\n public static CONVERSION_APP = '/conversion';\r\n public static DEFAULT_API_ENDPOINT = window.location.href;\r\n public static LOAD_FILE_TREE = '/loadFileTree';\r\n public static LOAD_CONFIG = '/loadConfig';\r\n public static LOAD_DOCUMENT_DESCRIPTION = '/loadDocumentDescription';\r\n public static LOAD_DOCUMENT_PAGE = '/loadDocumentPage';\r\n public static ROTATE_DOCUMENT_PAGE = '/rotateDocumentPages';\r\n public static UPLOAD_DOCUMENTS = '/uploadDocument';\r\n public static DOWNLOAD_DOCUMENTS = '/downloadDocument';\r\n public static LOAD_PRINT = '/loadPrint';\r\n public static LOAD_PRINT_PDF = '/printPdf';\r\n public static LOAD_THUMBNAILS = '/loadThumbnails';\r\n public static LOAD_FORMATS = '/loadFormats';\r\n public static SAVE_FILE = '/saveFile';\r\n public static COMPARE_FILES = '/compare';\r\n public static CONVERT_FILE = '/convert';\r\n\r\n public static httpOptionsJson = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n };\r\n public static httpOptionsJsonResponseTypeBlob = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n }),\r\n responseType: 'blob' as 'blob'\r\n };\r\n}\r\n\r\n@Injectable()\r\nexport class ConfigService {\r\n\r\n private _apiEndpoint: string;\r\n\r\n constructor() {\r\n this.apiEndpoint = Api.DEFAULT_API_ENDPOINT;\r\n }\r\n\r\n set apiEndpoint(url: string) {\r\n this._apiEndpoint = url && url.trim().endsWith('/') ? url.substring(0, url.length - 1) : url;\r\n }\r\n\r\n getConfigEndpoint(app) {\r\n return (this.apiEndpoint.endsWith(app) ? this.apiEndpoint : this.apiEndpoint + app) + Api.LOAD_CONFIG;\r\n }\r\n\r\n getViewerApiEndpoint() {\r\n return this._apiEndpoint.endsWith(Api.VIEWER_APP) ? this._apiEndpoint : this._apiEndpoint + Api.VIEWER_APP;\r\n }\r\n\r\n getEditorApiEndpoint() {\r\n return this._apiEndpoint.trim().endsWith(Api.EDITOR_APP) ? this._apiEndpoint : this._apiEndpoint + Api.EDITOR_APP;\r\n }\r\n\r\n getComparisonApiEndpoint() {\r\n return this._apiEndpoint.trim().endsWith(Api.COMPARISON_APP) ? this._apiEndpoint : this._apiEndpoint + Api.COMPARISON_APP;\r\n }\r\n\r\n getConversionApiEndpoint() {\r\n return this._apiEndpoint.trim().endsWith(Api.CONVERSION_APP) ? this._apiEndpoint : this._apiEndpoint + Api.CONVERSION_APP;\r\n }\r\n\r\n get apiEndpoint() {\r\n return this._apiEndpoint;\r\n }\r\n}\r\n","export class CommonModals {\r\n static PasswordRequired = \"gd-password-required\";\r\n static ErrorMessage = \"gd-error-message\";\r\n static BrowseFiles = \"gd-browse-files\";\r\n static CreateDocument = \"gd-create-document\";\r\n static OperationSuccess = \"gd-success-modal\";\r\n}\r\n\r\nexport class ModalService {\r\n private modals: any[] = [];\r\n\r\n add(modal: any) {\r\n this.modals.push(modal);\r\n }\r\n\r\n remove(id: string) {\r\n this.modals = this.modals.filter(x => x.id !== id);\r\n }\r\n\r\n open(id: string) {\r\n const modal: any = this.modals.filter(x => x.id === id)[0];\r\n if (modal) {\r\n modal.open();\r\n }\r\n }\r\n\r\n close(id: string) {\r\n const modal: any = this.modals.filter(x => x.id === id)[0];\r\n if (modal) {\r\n modal.close();\r\n }\r\n }\r\n}\r\n","import {Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {ModalService} from \"../modal.service\";\r\n\r\n@Component({\r\n selector: 'gd-modal',\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.less']\r\n})\r\nexport class ModalComponent implements OnInit, OnDestroy {\r\n @Input() id: string;\r\n @Input() title: string;\r\n @Output() visible = new EventEmitter();\r\n visibility = false;\r\n private element: any;\r\n\r\n constructor(private modalService: ModalService, el: ElementRef) {\r\n this.element = el.nativeElement;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.id) {\r\n console.error('modal must have an id');\r\n return;\r\n }\r\n\r\n document.body.appendChild(this.element);\r\n\r\n this.modalService.add(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.modalService.remove(this.id);\r\n this.element.remove();\r\n }\r\n\r\n open(): void {\r\n this.visibility = true;\r\n this.visible.emit(true);\r\n }\r\n\r\n close(): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.visibility = false;\r\n this.visible.emit(false);\r\n }\r\n\r\n onClose($event: MouseEvent) {\r\n $event.stopPropagation();\r\n if ($event && $event.target && ($event.target).id === 'modalDialog') {\r\n this.close();\r\n }\r\n }\r\n}\r\n","export class PageModel {\r\n data: string;\r\n angle: number;\r\n width: number;\r\n height: number;\r\n number: number;\r\n editable: boolean;\r\n}\r\n\r\nexport class RotatedPage {\r\n pageNumber: number;\r\n angle: number;\r\n}\r\n\r\nexport class FileCredentials {\r\n guid: string;\r\n password: string;\r\n\r\n constructor(guid: string, password: string) {\r\n this.guid = guid;\r\n this.password = password;\r\n }\r\n}\r\n\r\nexport class SaveFile extends FileCredentials {\r\n content: string;\r\n\r\n constructor(guid: string, password: string, content: string) {\r\n super(guid, password);\r\n this.content = content;\r\n }\r\n}\r\n\r\nexport class FileDescription {\r\n guid: string;\r\n pages: PageModel[];\r\n printAllowed = true;\r\n}\r\n\r\nexport class FileModel {\r\n guid: string;\r\n name: string;\r\n directory: boolean;\r\n size: number;\r\n isDirectory: boolean;\r\n}\r\n\r\nexport class HttpError {\r\n static BadRequest = 400;\r\n static Unauthorized = 401;\r\n static Forbidden = 403;\r\n static NotFound = 404;\r\n static TimeOut = 408;\r\n static Conflict = 409;\r\n static InternalServerError = 500;\r\n}\r\n\r\nexport class FileUtil {\r\n public static map = {\r\n 'folder': {'format': '', 'icon': 'folder'},\r\n 'pdf': {'format': 'Portable Document Format', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'doc': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'docx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'docm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dot': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dotx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dotm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'xls': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xlsx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xlsm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xlsb': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xls2003': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xltx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xltm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'ppt': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'pptx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'pps': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'ppsx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'vsd': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vss': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vsx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vst': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vtx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vsdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vdw': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vstx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vssx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'mpp': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'mpt': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'msg': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'eml': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'emlx': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'one': {'format': 'Microsoft OneNote', 'icon': 'file-word', 'unit': 'pt'},\r\n 'odt': {'format': 'Open Document Text', 'icon': 'file-word', 'unit': 'pt'},\r\n 'ott': {'format': 'Open Document Text Template', 'icon': 'file-word', 'unit': 'pt'},\r\n 'ods': {'format': 'Open Document Spreadsheet', 'icon': 'file-excel', 'unit': 'px'},\r\n 'odp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'otp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'ots': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'potx': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'potm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'pptm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'ppsm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'rtf': {'format': 'Rich Text Format', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'txt': {'format': 'Plain Text File', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'csv': {'format': 'Comma-Separated Values', 'icon': 'file-excel', 'unit': 'px'},\r\n 'html': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'mht': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'mhtml': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'xml': {'format': 'Extensible Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'xps': {'format': 'XML Paper Specification', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dxf': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'dwg': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'bmp': {'format': 'Bitmap Picture', 'icon': 'file-image', 'unit': 'px'},\r\n 'gif': {'format': 'Graphics Interchange Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'jpg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'jpe': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'jpeg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'jfif': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'png': {'format': 'Portable Network Graphics', 'icon': 'file-image', 'unit': 'px'},\r\n 'tiff': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'tif': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'psd': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'svg': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'jp2': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'epub': {'format': 'Electronic Publication', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'ico': {'format': 'Windows Icon', 'icon': 'file-image', 'unit': 'px'},\r\n 'webp': {'format': 'Compressed Image', 'icon': 'file-image', 'unit': 'px'},\r\n 'mobi': {'format': 'Mobipocket eBook', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'tex': {'format': 'LaTeX Source Document', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'djvu': {'format': 'Multi-Layer Raster Image', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'unknown': {'format': 'This format is not supported', 'icon': 'file'},\r\n };\r\n\r\n public static find(filename: string, isDirectory: boolean) {\r\n if (filename && !isDirectory) {\r\n const strings = filename.split('.');\r\n const name = strings.pop().toLowerCase();\r\n if (typeof FileUtil.map[name] === \"undefined\") {\r\n return strings.length > 0 ? FileUtil.map['unknown'] : FileUtil.map['folder'];\r\n } else {\r\n return FileUtil.map[name];\r\n }\r\n } else {\r\n return FileUtil.map['folder'];\r\n }\r\n }\r\n}\r\n\r\nexport class FileService {\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\n\r\nexport class UploadFilesService {\r\n private _uploadsChange: Observable;\r\n private _observer: Observer;\r\n\r\n constructor() {\r\n this._uploadsChange = new Observable(observer =>\r\n this._observer = observer);\r\n }\r\n\r\n get uploadsChange(): Observable {\r\n return this._uploadsChange;\r\n }\r\n\r\n changeFilesList(filesList: FileList) {\r\n this._observer.next(filesList);\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {FileModel, FileUtil} from \"../file.service\";\r\nimport {UploadFilesService} from \"../upload-files.service\";\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\nconst upload_disc = 'Disc';\r\n\r\nconst upload_url = 'URL';\r\n\r\nconst uploads_choices = [{name: upload_disc, icon: 'hdd'}, {name: upload_url, icon: 'link'}];\r\n\r\n@Component({\r\n selector: 'gd-browse-files-modal',\r\n templateUrl: './browse-files-modal.component.html',\r\n styleUrls: ['./browse-files-modal.component.less']\r\n})\r\nexport class BrowseFilesModalComponent implements OnInit {\r\n uploads = uploads_choices;\r\n\r\n @Input() files;\r\n @Input() uploadConfig;\r\n @Output() selectedFileGuid = new EventEmitter();\r\n @Output() selectedDirectory = new EventEmitter();\r\n @Output() urlForUpload = new EventEmitter();\r\n @Output() closing = new EventEmitter();\r\n private selectedFile: FileModel;\r\n showUploadUrl = false;\r\n showUploadFile = false;\r\n\r\n constructor(private _uploadService: UploadFilesService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getSize(size: number) {\r\n const mb = size / 1024 / 1024;\r\n if (mb > 1) {\r\n return (Math.round(mb * 100) / 100) + ' MB';\r\n } else {\r\n const kb = size / 1024;\r\n if (kb > 1) {\r\n return (Math.round(kb * 100) / 100) + ' KB';\r\n }\r\n }\r\n return size + ' Bytes';\r\n }\r\n\r\n getFormatName(file: FileModel) {\r\n return FileUtil.find(file.name, file.directory).format;\r\n }\r\n\r\n getFormatIcon(file: FileModel) {\r\n return FileUtil.find(file.name, file.directory).icon;\r\n }\r\n\r\n choose(file: FileModel) {\r\n this.selectedFile = file;\r\n if (file.directory || file.isDirectory) {\r\n this.selectedDirectory.emit(file.name);\r\n } else {\r\n this.selectedFileGuid.emit(file.guid);\r\n }\r\n }\r\n\r\n goUp() {\r\n if (this.selectedFile) {\r\n let guid = this.selectedFile.guid;\r\n if (guid.length > 0 && guid.indexOf('/') === -1) {\r\n guid = '';\r\n } else {\r\n guid = guid.replace(/\\/[^\\/]+\\/?$/, '');\r\n }\r\n this.selectedDirectory.emit(guid);\r\n }\r\n }\r\n\r\n selectUpload($event: string) {\r\n if (upload_url === $event) {\r\n this.showUploadUrl = true;\r\n } else {\r\n this.showUploadUrl = false;\r\n $(\"#gd-upload-input\").trigger('click');\r\n }\r\n }\r\n\r\n refresh($event) {\r\n\r\n if ($event) {\r\n this.files = null;\r\n this.selectedDirectory.emit('');\r\n this.showUploadUrl = false;\r\n this.selectedFile = null;\r\n } else {\r\n this.closing.emit(true);\r\n }\r\n }\r\n\r\n showSpinner() {\r\n return !this.files;\r\n }\r\n\r\n uploadUrl(url: string) {\r\n if (url) {\r\n this.urlForUpload.emit(url);\r\n this.cleanUpload();\r\n }\r\n }\r\n\r\n handleFileInput(files: FileList) {\r\n this._uploadService.changeFilesList(files);\r\n }\r\n\r\n cleanUpload() {\r\n this.showUploadFile = false;\r\n this.showUploadUrl = false;\r\n }\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class ZoomService {\r\n private _observer: Subject = new Subject();\r\n private readonly _zoomChange: Observable = this._observer.asObservable();\r\n private _zoom: number;\r\n\r\n constructor() {\r\n }\r\n\r\n get zoom(): number {\r\n return this._zoom;\r\n }\r\n\r\n get zoomChange(): Observable {\r\n return this._zoomChange;\r\n }\r\n\r\n changeZoom(zoom: number) {\r\n this._zoom = zoom;\r\n this._observer.next(zoom);\r\n }\r\n\r\n private createZoomOption(val: any, name: string, sep: boolean = false) {\r\n return {value: val, name: name, separator: sep}\r\n }\r\n\r\n zoomOptions(width, height) {\r\n return [this.createZoomOption(25, '25%'),\r\n this.createZoomOption(50, '50%'),\r\n this.createZoomOption(100,'100%'),\r\n this.createZoomOption(150, '150%'),\r\n this.createZoomOption(200, '200%'),\r\n this.createZoomOption(300, '300%'),\r\n this.createZoomOption(0, '', true),\r\n this.createZoomOption(width, 'Fit Width'),\r\n this.createZoomOption(height, 'Fit Height')];\r\n }\r\n}\r\n","import {fromEvent, Observable, Subject} from \"rxjs\";\r\nimport {debounceTime, distinctUntilChanged, startWith, tap} from \"rxjs/operators\";\r\n\r\nconst MOBILE_MAX_WIDTH = 425;\r\nconst TABLET_MAX_WIDTH = 1024;\r\n\r\nexport class WindowService {\r\n\r\n private resizeSubject: Subject = new Subject();\r\n private _resize$;\r\n private width: number;\r\n private height: number;\r\n\r\n constructor() {\r\n this.width = window.innerWidth;\r\n this.height = window.innerHeight;\r\n\r\n this._resize$ = fromEvent(window, 'resize')\r\n .pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n startWith({target: {innerWidth: window.innerWidth, innerHeight: window.innerHeight}}),\r\n tap(event => {\r\n this.resizeSubject.next(event.target);\r\n this.width = (event.target as Window).innerWidth;\r\n this.height = (event.target as Window).innerHeight;\r\n }),\r\n );\r\n this._resize$.subscribe();\r\n }\r\n\r\n get onResize(): Observable {\r\n return this.resizeSubject.asObservable();\r\n }\r\n\r\n isMobile() {\r\n return this.width <= MOBILE_MAX_WIDTH;\r\n }\r\n\r\n isTablet() {\r\n return this.width <= TABLET_MAX_WIDTH;\r\n }\r\n\r\n isDesktop() {\r\n return !this.isMobile() && !this.isTablet();\r\n }\r\n\r\n isEdge() {\r\n return window.navigator.userAgent.toLowerCase().indexOf('edge') > -1;\r\n }\r\n\r\n isFirefox() {\r\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\r\n }\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class RotationService {\r\n private _observerRotationAngle: Subject = new Subject();\r\n private readonly _rotationAngleChange: Observable = this._observerRotationAngle.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get rotationAngleChange(): Observable {\r\n return this._rotationAngleChange;\r\n }\r\n\r\n setRotationAngle(angle: number) {\r\n this._observerRotationAngle.next(angle);\r\n }\r\n}\r\n","import {\r\n AfterViewChecked,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n AfterViewInit,\r\n OnChanges} from '@angular/core';\r\nimport {FileDescription, FileUtil} from \"../file.service\";\r\nimport {ZoomService} from \"../zoom.service\";\r\nimport * as jquery from 'jquery';\r\nconst $ = jquery;\r\nimport * as Hammer from 'hammerjs';\r\nimport { WindowService } from '../window.service';\r\nimport { RotationService } from '../rotation.service';\r\n\r\n@Component({\r\n selector: 'gd-document',\r\n templateUrl: './document.component.html',\r\n styleUrls: ['./document.component.less']\r\n})\r\nexport class DocumentComponent implements OnInit, AfterViewChecked, AfterViewInit, OnChanges {\r\n\r\n @Input() mode: boolean;\r\n @Input() preloadPageCount: number;\r\n @Input() file: FileDescription;\r\n wait = false;\r\n zoom: number;\r\n\r\n docWidth = null;\r\n docHeight = null;\r\n viewportWidth = null;\r\n viewportHeight = null;\r\n scale = null;\r\n lastScale = null;\r\n container = null;\r\n doc = null;\r\n x = 0;\r\n lastX = 0;\r\n y = 0;\r\n lastY = 0;\r\n pinchCenter = null;\r\n pinchCenterOffset = null;\r\n curWidth = 0;\r\n curHeight = 0;\r\n isDesktop: boolean;\r\n initialRotation: any;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _zoomService: ZoomService,\r\n private _windowService: WindowService,\r\n private _rotationServcie: RotationService) {\r\n\r\n _zoomService.zoomChange.subscribe((val: number) => {\r\n this.zoom = val;\r\n });\r\n\r\n this.isDesktop = _windowService.isDesktop();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges() {\r\n const panzoom = this._elementRef.nativeElement.children.item(0).children.item(0);\r\n (panzoom as any).style.transform = '';\r\n // TODO: this intersects with zooming by zoom directive, but still needed\r\n // for flush previous settings before opening another file\r\n //this._zoomService.changeZoom(100);\r\n //this.scale = 1;\r\n }\r\n \r\n ngAfterViewInit() {\r\n // For current iteration we take .panzoom as a document\r\n this.doc = this._elementRef.nativeElement.children.item(0).children.item(0);\r\n // For current iteration we take .gd-document as a container\r\n this.container = this._elementRef.nativeElement;\r\n\r\n this.docWidth = this.doc.clientWidth;\r\n this.docHeight = this.doc.clientHeight;\r\n this.viewportWidth = this.doc.offsetWidth;\r\n\r\n // For cases where we already have zoom defined we should include it\r\n this.scale = (this.viewportWidth/this.docWidth) * this._zoomService.zoom/100;\r\n \r\n this.lastScale = this.scale;\r\n this.viewportHeight = this.container.offsetHeight;\r\n this.curWidth = this.docWidth*this.scale;\r\n this.curHeight = this.docHeight*this.scale;\r\n\r\n const hammer = new Hammer(this.container);\r\n }\r\n\r\n // TODO: this temporary crutch for Excel files should be documented\r\n ifExcel() {\r\n return FileUtil.find(this.file.guid, false).format === \"Microsoft Excel\";\r\n }\r\n\r\n getDimensionWithUnit(value: number) {\r\n return value + FileUtil.find(this.file.guid, false).unit;\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n const elementNodeListOf = this._elementRef.nativeElement.querySelectorAll('.gd-wrapper');\r\n const element = elementNodeListOf.item(0);\r\n if (element) {\r\n $(element).trigger('focus');\r\n }\r\n }\r\n\r\n absolutePosition(el) {\r\n let x = 0, y = 0;\r\n\r\n while (el !== null) {\r\n x += el.offsetLeft;\r\n y += el.offsetTop;\r\n el = el.offsetParent;\r\n }\r\n\r\n return { x: x, y: y };\r\n };\r\n\r\n restrictRawPos(pos, viewportDim, docDim) {\r\n if (pos < viewportDim/this.scale - docDim) { // too far left/up?\r\n pos = viewportDim/this.scale - docDim;\r\n } else if (pos > 0) { // too far right/down?\r\n pos = 0;\r\n }\r\n return pos;\r\n };\r\n\r\n updateLastPos() {\r\n this.lastX = this.x;\r\n this.lastY = this.y;\r\n };\r\n\r\n translate(deltaX, deltaY) {\r\n // We restrict to the min of the viewport width/height or current width/height as the\r\n // current width/height may be smaller than the viewport width/height\r\n const newX = this.restrictRawPos(this.lastX + deltaX/this.scale,\r\n Math.min(this.viewportWidth, this.curWidth), this.docWidth);\r\n this.x = newX;\r\n // TODO: value here and in the similar line below changes to positive to take any effect\r\n this.container.scrollLeft = -Math.ceil(newX*this.scale);\r\n\r\n const newY = this.restrictRawPos(this.lastY + deltaY/this.scale,\r\n Math.min(this.viewportHeight, this.curHeight), this.docHeight);\r\n this.y = newY;\r\n this.container.scrollTop = -Math.ceil(newY*this.scale);\r\n \r\n this.doc.style.transform = 'scale(' + this.scale + ')';\r\n };\r\n\r\n startZoom(scaleBy) {\r\n this.scale = this.lastScale*scaleBy;\r\n\r\n this.curWidth = this.docWidth*this.scale;\r\n this.curHeight = this.docHeight*this.scale;\r\n\r\n // Adjust margins to make sure that we aren't out of bounds\r\n this.translate(0, 0);\r\n };\r\n\r\n rawCenter($event) {\r\n const pos = this.absolutePosition(this.container);\r\n\r\n // We need to account for the scroll position\r\n const scrollLeft = window.pageXOffset ? window.pageXOffset : document.body.scrollLeft;\r\n const scrollTop = window.pageYOffset ? window.pageYOffset : document.body.scrollTop;\r\n\r\n const zoomX = -this.x + ($event.center.x - pos.x + scrollLeft)/this.scale;\r\n const zoomY = -this.y + ($event.center.y - pos.y + scrollTop)/this.scale;\r\n\r\n return { x: zoomX, y: zoomY };\r\n };\r\n\r\n updateLastScale() {\r\n this.lastScale = this.scale;\r\n };\r\n\r\n zoomAround(scaleBy, rawZoomX, rawZoomY, doNotUpdateLast) {\r\n // Zoom\r\n this.startZoom(scaleBy);\r\n\r\n // New raw center of viewport\r\n const rawCenterX = -this.x + Math.min(this.viewportWidth, this.curWidth)/2/this.scale;\r\n const rawCenterY = -this.y + Math.min(this.viewportHeight, this.curHeight)/2/this.scale;\r\n\r\n // Delta\r\n const deltaX = (rawCenterX - rawZoomX)*this.scale;\r\n const deltaY = (rawCenterY - rawZoomY)*this.scale;\r\n\r\n // Translate back to zoom center\r\n this.translate(deltaX, deltaY);\r\n\r\n if (!doNotUpdateLast) {\r\n this.updateLastScale();\r\n this.updateLastPos();\r\n }\r\n };\r\n\r\n onPinch($event){\r\n console.log(\"pinch\");\r\n if (this.pinchCenter === null) {\r\n this.pinchCenter = this.rawCenter($event);\r\n const offsetX = this.pinchCenter.x*this.scale - (-this.x*this.scale + Math.min(this.viewportWidth, this.curWidth)/2);\r\n const offsetY = this.pinchCenter.y*this.scale - (-this.y*this.scale + Math.min(this.viewportHeight, this.curHeight)/2);\r\n this.pinchCenterOffset = { x: offsetX, y: offsetY };\r\n }\r\n\r\n const newScale = this.scale*$event.scale;\r\n\r\n const zoomX = this.pinchCenter.x*newScale - this.pinchCenterOffset.x;\r\n const zoomY = this.pinchCenter.y*newScale - this.pinchCenterOffset.y;\r\n const zoomCenter = { x: zoomX/newScale, y: zoomY/newScale };\r\n \r\n this.zoomAround($event.scale, zoomCenter.x, zoomCenter.y, true);\r\n }\r\n\r\n onPinchEnd($event){\r\n console.log(\"pinchEnd\");\r\n this.updateLastScale();\r\n this.updateLastPos();\r\n this.pinchCenter = null;\r\n }\r\n\r\n onPan($event){\r\n // TODO: looks like native pan works better\r\n // if (!this.isDesktop) {\r\n // this.translate($event.deltaX, $event.deltaY);\r\n // }\r\n }\r\n\r\n onPanEnd($event){\r\n // if (!this.isDesktop) {\r\n // this.updateLastPos();\r\n // }\r\n }\r\n\r\n onDoubleTap($event){\r\n if (!this.isDesktop) {\r\n if ($event.tapCount === 2) {\r\n const c = this.rawCenter($event);\r\n this.zoomAround(2, c.x, c.y, false);\r\n }\r\n }\r\n }\r\n\r\n onRotateStart($event){\r\n this.initialRotation = $event.rotation;\r\n console.log(\"rotateStart: \" + $event.rotation + ' ' + $event.angle);\r\n }\r\n\r\n onRotateEnd($event){\r\n console.log(\"rotateEnd: \" + $event.rotation + ' ' + $event.angle);\r\n if ($event.rotation > 0 && this.initialRotation > 0) {\r\n if ($event.rotation > this.initialRotation && ($event.rotation - this.initialRotation > 45)) {\r\n this._rotationServcie.setRotationAngle(90);\r\n }\r\n else if ($event.rotation < this.initialRotation && (this.initialRotation - $event.rotation > 45)) {\r\n this._rotationServcie.setRotationAngle(-90);\r\n }\r\n }\r\n // case with negative values\r\n else {\r\n if (this.initialRotation > $event.rotation && ($event.rotation - this.initialRotation > 45)) {\r\n this._rotationServcie.setRotationAngle(-90);\r\n }\r\n else if (this.initialRotation < $event.rotation && (this.initialRotation - $event.rotation > 45)) {\r\n this._rotationServcie.setRotationAngle(90);\r\n }\r\n }\r\n }\r\n}\r\n","import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-page',\r\n templateUrl: './page.component.html',\r\n styleUrls: ['./page.component.less']\r\n})\r\nexport class PageComponent implements OnInit, OnChanges {\r\n\r\n @Input() angle: number;\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() number: number;\r\n @Input() data: string;\r\n @Input() isHtml: boolean;\r\n @Input() editable: boolean;\r\n imgData: string;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n if(isIE && this.number === 0){\r\n this.editable = false;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // TODO: this is temporary needed to remove unneeded spaces and BOM symbol \r\n // which leads to undesired spaces on the top of the docs pages\r\n this.data = this.data !== null ? this.data.replace(/>\\s+<').replace(/\\uFEFF/g,\"\") : null;\r\n const dataImagePngBase64 = 'data:image/png;base64,';\r\n this.imgData = dataImagePngBase64;\r\n if (!this.isHtml) {\r\n this.imgData += this.data;\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\r\n\r\n@Pipe({name: 'safeHtml'})\r\nexport class SanitizeHtmlPipe implements PipeTransform{\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n}\r\n\r\n@Pipe({name: 'safeResourceHtml'})\r\nexport class SanitizeResourceHtmlPipe implements PipeTransform{\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(html);\r\n }\r\n}\r\n\r\n@Pipe({name: 'safeStyle'})\r\nexport class SanitizeStylePipe implements PipeTransform{\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustStyle(html);\r\n }\r\n}\r\n\r\n@Pipe({name: 'highlight'})\r\nexport class HighlightSearchPipe implements PipeTransform {\r\n\r\n transform(value: string, args: string): any {\r\n if (!args) {\r\n return value;\r\n }\r\n const re = new RegExp(args, 'gi'); //'gi' for case insensitive and can use 'g' if you want the search to be case sensitive.\r\n return value.replace(re, \"$&\");\r\n }\r\n}\r\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\r\nimport {UploadFilesService} from \"../upload-files.service\";\r\n\r\n@Component({\r\n selector: 'gd-upload-file-zone',\r\n templateUrl: './upload-file-zone.component.html',\r\n styleUrls: ['./upload-file-zone.component.less']\r\n})\r\nexport class UploadFileZoneComponent implements OnInit {\r\n\r\n @Output() closeUpload = new EventEmitter();\r\n\r\n constructor(private _uploadService: UploadFilesService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n handleFileInput(files: FileList) {\r\n this._uploadService.changeFilesList(files);\r\n this.onCloseUpload();\r\n }\r\n\r\n onCloseUpload() {\r\n this.closeUpload.emit(true);\r\n }\r\n\r\n close($event) {\r\n if ($event.target.id === 'gd-dropZone') {\r\n this.onCloseUpload();\r\n }\r\n }\r\n}\r\n","import {Directive, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\r\nimport {UploadFilesService} from \"./upload-files.service\";\r\n\r\n@Directive({\r\n selector: '[gdDnd]'\r\n})\r\nexport class DndDirective {\r\n\r\n @Output() closing = new EventEmitter();\r\n @Output() opening = new EventEmitter();\r\n @Output() dropped = new EventEmitter();\r\n\r\n @HostBinding('class.active') active = false;\r\n\r\n constructor(private _uploadFilesService: UploadFilesService) {\r\n }\r\n\r\n @HostListener('dragover', ['$event'])\r\n public onDragOver(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = true;\r\n this.opening.emit(true);\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n public onDragLeave(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = false;\r\n this.closeArea();\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n public onDrop(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n const files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.active = false;\r\n this.dropped.emit(true);\r\n this._uploadFilesService.changeFilesList(files);\r\n this.closeArea();\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public onClick(event) {\r\n this.closeArea();\r\n }\r\n\r\n private closeArea() {\r\n this.closing.emit(true);\r\n this.opening.emit(false);\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\n\r\nexport class PagePreloadService {\r\n private readonly _checkPreload: Observable;\r\n private _observer: Observer;\r\n\r\n constructor() {\r\n this._checkPreload = new Observable(observer =>\r\n this._observer = observer);\r\n }\r\n\r\n get checkPreload(): Observable {\r\n return this._checkPreload;\r\n }\r\n\r\n changeLastPageInView(page: number) {\r\n if(this._observer) {\r\n this._observer.next(page);\r\n }\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\nimport {PagePreloadService} from \"./page-preload.service\";\r\nimport {Injectable} from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigateService {\r\n private _currentPage = 0;\r\n private _countPages = 0;\r\n private readonly _navigate: Observable;\r\n private _observer: Observer;\r\n\r\n constructor(private _pagePreloadService: PagePreloadService) {\r\n this._navigate = new Observable(observer =>\r\n this._observer = observer);\r\n }\r\n\r\n get navigate(): Observable {\r\n return this._navigate;\r\n }\r\n\r\n get countPages(): number {\r\n return this._countPages;\r\n }\r\n\r\n set countPages(value: number) {\r\n this._countPages = value;\r\n }\r\n\r\n get currentPage(): number {\r\n return this._currentPage;\r\n }\r\n\r\n set currentPage(value: number) {\r\n this._currentPage = value;\r\n }\r\n\r\n nextPage() {\r\n if (this._currentPage < this._countPages) {\r\n this._currentPage++;\r\n this.navigateTo(this._currentPage);\r\n }\r\n }\r\n\r\n prevPage() {\r\n if (this._currentPage > 1) {\r\n this._currentPage--;\r\n this.navigateTo(this._currentPage);\r\n }\r\n }\r\n\r\n toLastPage() {\r\n this._currentPage = this._countPages;\r\n this.navigateTo(this._currentPage);\r\n }\r\n\r\n toFirstPage() {\r\n this._currentPage = 1;\r\n this.navigateTo(this._currentPage);\r\n }\r\n\r\n navigateTo(page: number) {\r\n this.currentPage = page;\r\n this._pagePreloadService.changeLastPageInView(page);\r\n this._observer.next(page);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ViewportService {\r\n\r\n constructor() {\r\n }\r\n\r\n checkInViewport(el, zoom: number = 100, leftOffset: number = 0, deltaX: number = 0.5) {\r\n if (!el) {\r\n return false;\r\n }\r\n const x = deltaX;\r\n const y = 0.5;\r\n\r\n const win = $(window);\r\n\r\n const viewport = {\r\n top: win.scrollTop(),\r\n left: win.scrollLeft() + leftOffset,\r\n right: win.scrollLeft() + win.width() - 10,\r\n bottom: win.scrollTop() + win.height()\r\n };\r\n\r\n\r\n if (isNaN(zoom)) {\r\n zoom = 100;\r\n }\r\n\r\n const zoomN = zoom / 100;\r\n const height = $(el).outerHeight() * (zoomN);\r\n const width = $(el).outerWidth() * (zoomN);\r\n\r\n if (!width || !height) {\r\n return false;\r\n }\r\n\r\n const bounds = $(el).offset();\r\n const right = (bounds.left * (zoomN)) + width;\r\n const bottom = (bounds.top * (zoomN)) + height;\r\n\r\n const visible = (!(viewport.right < (bounds.left * (zoomN)) || viewport.left > right || viewport.bottom < (bounds.top * (zoomN)) || viewport.top > bottom));\r\n\r\n if (!visible) {\r\n return false;\r\n }\r\n\r\n const deltas = {\r\n top: parseFloat(Math.min(1, (bottom - viewport.top) / height).toFixed(2)),\r\n bottom: parseFloat(Math.min(1, (viewport.bottom - (bounds.top * (zoomN))) / height).toFixed(2)),\r\n left: parseFloat(Math.min(1, (right - viewport.left) / width).toFixed(2)),\r\n right: parseFloat(Math.min(1, (viewport.right - (bounds.left * (zoomN))) / width).toFixed(2))\r\n };\r\n\r\n return (deltas.left * deltas.right) >= x && (deltas.top * deltas.bottom) >= y;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport {NavigateService} from \"./navigate.service\";\r\nimport {PagePreloadService} from \"./page-preload.service\";\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport {WindowService} from \"./window.service\";\r\nimport {ViewportService} from \"./viewport.service\";\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\n@Directive({\r\n selector: '[gdScrollable]'\r\n})\r\nexport class ScrollableDirective implements AfterViewInit, OnChanges, OnInit {\r\n\r\n private currentPage: number;\r\n private zoom = 100;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _navigateService: NavigateService,\r\n private _pagePreloadService: PagePreloadService,\r\n private _zoomService: ZoomService,\r\n private _windowService: WindowService,\r\n private _viewportService: ViewportService) {\r\n\r\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\r\n _zoomService.zoomChange.subscribe((val: number) => {\r\n this.zoom = val ? val : this.zoom;\r\n this.refresh();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\r\n this._navigateService.navigate.subscribe((value => {\r\n this.currentPage = value;\r\n this.scrollToPage(value);\r\n }));\r\n this.refresh();\r\n }\r\n\r\n @HostListener('scroll') scrolling() {\r\n this.refresh();\r\n }\r\n\r\n @HostListener('window:resize') resizing() {\r\n this.refresh();\r\n }\r\n\r\n scrollToPage(pageNumber: number) {\r\n const el = this._elementRef.nativeElement;\r\n const page = this.getPage(pageNumber);\r\n const prev = pageNumber > 0 ? this.getPage(pageNumber - 1) : null;\r\n const isSameTop = (prev && $(prev).offset().top === $(page).offset().top);\r\n if (this._viewportService.checkInViewport(page, this.zoom) && isSameTop) {\r\n return;\r\n }\r\n const pagesHeight = this.calculateOffset(pageNumber);\r\n const options = {\r\n left: 0,\r\n top: pagesHeight\r\n };\r\n if(el){\r\n // using polyfill\r\n el.scroll(options);\r\n }\r\n }\r\n\r\n private getChildren() {\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n // here and in the similar line below we getting the document pages\r\n return el.children.item(0).children.item(0).children;\r\n }\r\n }\r\n\r\n private getPage(pageNumber: number) {\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n return el.children.item(0).children.item(0).children.item(pageNumber - 1);\r\n }\r\n }\r\n\r\n private calculateOffset(pageNumber: number) {\r\n const count = this._windowService.isFirefox() ? 1 : this.countPagesOnWidth();\r\n const margin = this._windowService.isDesktop() ? 40 : 10;\r\n let pagesHeight = 0;\r\n for (let i = 1; i < pageNumber / count; i++) {\r\n const item = this.getPage(i);\r\n const clientHeight = item ? item.clientHeight : 0;\r\n pagesHeight += clientHeight > 0 ? clientHeight * this.getZoom() + margin : 0;\r\n }\r\n return pagesHeight;\r\n }\r\n\r\n private countPagesOnWidth() {\r\n const pageEl = this.getPage(1);\r\n const offset = 150;\r\n const count = Math.floor((this.getWidth() - offset) / (pageEl.getBoundingClientRect().width * this.getZoom()));\r\n return count === 0 ? 1 : count;\r\n }\r\n\r\n refresh() {\r\n let page;\r\n let currentPageSet = false;\r\n const pageElem = this.getPage(this.currentPage);\r\n const currentPageRect = this.currentPage && pageElem ? pageElem.getBoundingClientRect() : null;\r\n for (page = 1; page < this.getChildren().length + 1; page++) {\r\n const element = this.getPage(page);\r\n if (this._viewportService.checkInViewport(element, this.zoom)) {\r\n if (!currentPageSet) {\r\n if (!this.currentPage || !pageElem || (this.currentPage && currentPageRect && element.getBoundingClientRect().top !== currentPageRect.top)) {\r\n this.currentPage = page;\r\n this._navigateService.currentPage = page;\r\n }\r\n currentPageSet = true;\r\n }\r\n this._pagePreloadService.changeLastPageInView(page);\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.refresh();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\r\n }\r\n\r\n\r\n private getWidth() {\r\n return this._elementRef ? this._elementRef.nativeElement.offsetWidth : window.innerWidth;\r\n }\r\n\r\n private getZoom() {\r\n return this.zoom / 100;\r\n }\r\n}\r\n","import {AfterViewInit, Directive, HostBinding, Input, OnDestroy, OnInit, ElementRef, OnChanges} from '@angular/core';\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport {FileUtil} from \"./file.service\";\r\nimport { WindowService } from './window.service';\r\n\r\n@Directive({\r\n selector: '[gdZoom]'\r\n})\r\nexport class ZoomDirective implements OnInit, OnDestroy, AfterViewInit, OnChanges {\r\n\r\n @Input() zoomActive = true;\r\n @Input() file;\r\n\r\n @HostBinding('style.zoom') zoomInt: number;\r\n @HostBinding('style.transform') transform: string;\r\n @HostBinding('style.transform-origin') transformOrigin: string;\r\n @HostBinding('style.width') width: string;\r\n @HostBinding('style.min-width') minWidth: string;\r\n el: ElementRef;\r\n\r\n constructor(private _zoomService: ZoomService, private _windowService: WindowService, el: ElementRef) {\r\n this.el = el;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.setStyles(this._zoomService.zoom);\r\n this.resizePages(this._zoomService.zoom);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (! this.zoomActive) {\r\n return;\r\n }\r\n\r\n this.setStyles(this._zoomService.zoom);\r\n this._zoomService.zoomChange.subscribe((zoom) => {\r\n this.setStyles(zoom);\r\n this.resizePages(zoom);\r\n });\r\n }\r\n\r\n private setStyles(zoom) {\r\n if (! this.zoomActive) {\r\n return;\r\n }\r\n\r\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\r\n \r\n if (this._windowService.isEdge()) {\r\n this.zoomInt = zoomInt;\r\n }\r\n else {\r\n this.zoomInt = null;\r\n }\r\n \r\n if (!this._windowService.isEdge()) {\r\n this.transform = 'scale(' + zoomInt + ')';\r\n this.transformOrigin = 'top left';\r\n }\r\n else {\r\n this.transform = \"\";\r\n this.transformOrigin = \"\";\r\n }\r\n\r\n let maxWidth = 0;\r\n this.file.pages.forEach(page => {\r\n {\r\n if (page.width > maxWidth){\r\n maxWidth = page.width;\r\n }\r\n }\r\n });\r\n\r\n // Images and Excel-related files receiving dimensions in px from server\r\n this.minWidth = maxWidth + FileUtil.find(this.file.guid, false).unit;\r\n }\r\n\r\n private getScrollWidth(elm){\r\n return elm.offsetWidth - elm.clientWidth;\r\n }\r\n\r\n private resizePages(zoom){\r\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\r\n\r\n const viewPortWidth = this.el.nativeElement.parentElement.offsetWidth;\r\n const scrollWidth = this.getScrollWidth(this.el.nativeElement.parentElement);\r\n this.width = (viewPortWidth/zoomInt - scrollWidth/zoomInt) + 'px';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setStyles(this._zoomService.zoom);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OnCloseService {\r\n private _observer: Subject = new Subject();\r\n private readonly _onClose: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get onClose() {\r\n return this._onClose;\r\n }\r\n\r\n close(close: boolean) {\r\n this._observer.next(close)\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {OnCloseService} from \"../on-close.service\";\r\n\r\nexport interface Option {\r\n name: string;\r\n value: any;\r\n separator: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'gd-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.less']\r\n})\r\nexport class SelectComponent {\r\n\r\n @Input() options: Option[];\r\n @Input() disabled = false;\r\n @Input() showSelected: Option;\r\n @Output() selected: EventEmitter = new EventEmitter();\r\n isOpen = false;\r\n\r\n constructor(private _onCloseService: OnCloseService) {\r\n _onCloseService.onClose.subscribe(() => {\r\n this.close();\r\n });\r\n }\r\n\r\n open() {\r\n if (!this.disabled) {\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n close() {\r\n this.isOpen = false;\r\n }\r\n\r\n onClickOutside(event : Event){\r\n this.close();\r\n }\r\n\r\n toggle($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n if (!this.disabled) {\r\n this.isOpen = !this.isOpen;\r\n }\r\n }\r\n\r\n select($event, value: Option) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.selected.emit(value);\r\n this.close();\r\n }\r\n\r\n}\r\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[gdDisabledCursor]'\r\n})\r\nexport class DisabledCursorDirective implements OnInit, OnChanges {\r\n\r\n @Input() dis: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n @HostBinding('class.inactive') cursor: boolean;\r\n\r\n private updateCursor() {\r\n this.cursor = this.dis ? true : false;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateCursor();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.updateCursor()\r\n }\r\n}\r\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[gdRotation]'\r\n})\r\nexport class RotationDirective implements OnInit, OnChanges {\r\n\r\n @Input() angle: number;\r\n @Input() isHtmlMode: boolean;\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() withMargin = true;\r\n\r\n @HostBinding('style.animation') animation: string;\r\n @HostBinding('style.transition-property') transition: string;\r\n @HostBinding('style.transform') transform: string;\r\n\r\n @HostBinding('style.margin') margin: string;\r\n\r\n constructor() {\r\n }\r\n\r\n private updateCursor() {\r\n if (typeof this.angle === \"string\"){\r\n this.angle = parseInt(this.angle, 10);\r\n }\r\n\r\n if (this.angle) {\r\n this.animation = 'none';\r\n this.transition = 'none';\r\n this.transform = 'rotate(' + this.angle + 'deg)';\r\n } else if (this.angle === 0 && this.animation) {\r\n this.animation = null;\r\n this.transition = null;\r\n this.transform = null;\r\n }\r\n\r\n if (this.withMargin) {\r\n if (this.angle === 90 || this.angle === 270 || this.angle === -90 || this.angle === -270) {\r\n if (this.isHtmlMode) {\r\n if (this.isLandscape()) {\r\n this.margin = '164px 254px';\r\n } else {\r\n this.margin = '-111px 254px';\r\n }\r\n } else {\r\n if (this.isLandscape()) {\r\n this.margin = '129px 100px -79px';\r\n } else {\r\n this.margin = '-72px 100px -79px';\r\n }\r\n }\r\n } else if (this.angle === -180 || this.angle === 180) {\r\n this.margin = '280px';\r\n } else {\r\n this.margin = null;\r\n }\r\n }\r\n\r\n }\r\n\r\n isLandscape() {\r\n return this.width > this.height;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateCursor();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.updateCursor()\r\n }\r\n\r\n}\r\n","import {Component, Input, Output, EventEmitter, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-init-state',\r\n templateUrl: './init-state.component.html',\r\n styleUrls: ['./init-state.component.less']\r\n})\r\nexport class InitStateComponent implements OnInit {\r\n @Input() icon: string;\r\n @Input() text: string;\r\n @Output() fileDropped = new EventEmitter();\r\n showUploadFile = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n dropped($event) {\r\n if ($event) {\r\n this.fileDropped.emit($event);\r\n this.showUploadFile = false;\r\n }\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\nimport {PageModel} from \"./file.service\";\r\n\r\nexport class RenderPrintService {\r\n private _render: Observable;\r\n private _observer: Observer;\r\n private _renderBlob: Observable;\r\n private _observerBlob: Observer;\r\n\r\n constructor() {\r\n this._render = new Observable(observer =>\r\n this._observer = observer);\r\n this._renderBlob = new Observable(observer =>\r\n this._observerBlob = observer);\r\n }\r\n\r\n get renderPrint(): Observable {\r\n return this._render;\r\n }\r\n\r\n changePages(pages: PageModel[]) {\r\n this._observer.next(pages);\r\n }\r\n\r\n get renderPrintBlob(): Observable {\r\n return this._renderBlob;\r\n }\r\n\r\n changeBlob(file: Blob) {\r\n this._observerBlob.next(file);\r\n }\r\n}\r\n","import {Directive, Input} from '@angular/core';\r\nimport {PageModel} from \"./file.service\";\r\nimport {RenderPrintService} from \"./render-print.service\";\r\n\r\n@Directive({\r\n selector: '[gdRenderPrint]'\r\n})\r\nexport class RenderPrintDirective {\r\n @Input() htmlMode: boolean;\r\n\r\n constructor(private _renderService: RenderPrintService) {\r\n _renderService.renderPrint.subscribe(pages => {\r\n this.renderPrint(pages);\r\n });\r\n _renderService.renderPrintBlob.subscribe(file => {\r\n this.renderPrintBlob(file);\r\n });\r\n }\r\n\r\n private renderPrint(pages: PageModel[]) {\r\n let pagesHtml = '';\r\n if (this.htmlMode) {\r\n for (const page of pages) {\r\n pagesHtml += '
' +\r\n '
' + page.data + '
' +\r\n '
';\r\n }\r\n } else {\r\n for (const page of pages) {\r\n pagesHtml += '
' +\r\n '
' +\r\n '
';\r\n }\r\n }\r\n this.openWindow(pagesHtml, pages[0].width, pages[0].height);\r\n }\r\n\r\n private openWindow(pagesHtml, width, height) {\r\n const a4Height = 842;\r\n const a4Width = 595;\r\n let imageA4Adjusted = '';\r\n if(width > a4Width && height > a4Height){\r\n const zoom = Math.round(height / a4Height) / 100;\r\n imageA4Adjusted = '.gd-page img { width: 100%; margin: 0; padding: 0;}';\r\n if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1){\r\n imageA4Adjusted = '.gd-page img { transform: scale(' + zoom + ');}';\r\n }\r\n }\r\n let cssPrint = '';\r\n\r\n const windowObject = window.open('', \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\r\n windowObject.focus();\r\n windowObject.document.writeln(cssPrint);\r\n windowObject.document.writeln(pagesHtml);\r\n windowObject.document.close();\r\n windowObject.focus();\r\n windowObject.print();\r\n windowObject.close();\r\n }\r\n\r\n private renderPrintBlob(file: Blob) {\r\n const fileURL = URL.createObjectURL(file);\r\n const windowObject = window.open(fileURL, \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\r\n windowObject.focus();\r\n windowObject.print();\r\n windowObject.close();\r\n }\r\n}\r\n","import {BehaviorSubject, Observable} from \"rxjs\";\r\n\r\nexport class ExceptionMessageService {\r\n private _observer: BehaviorSubject = new BehaviorSubject('Server is not available');\r\n private _messageChange: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get messageChange(): Observable {\r\n return this._messageChange;\r\n }\r\n\r\n changeMessage(message: string) {\r\n this._observer.next(message);\r\n }\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {ExceptionMessageService} from \"../exception-message.service\";\r\n\r\n@Component({\r\n selector: 'gd-error-modal',\r\n templateUrl: './error-modal.component.html',\r\n styleUrls: ['./error-modal.component.less']\r\n})\r\nexport class ErrorModalComponent implements OnInit {\r\n\r\n message: string;\r\n\r\n constructor(messageService: ExceptionMessageService) {\r\n messageService.messageChange.subscribe(message => this.message = message);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class PasswordService {\r\n private _observer: Subject = new Subject();\r\n private readonly _passChange: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get passChange(): Observable {\r\n return this._passChange;\r\n }\r\n\r\n setPassword(pass: string) {\r\n this._observer.next(pass);\r\n }\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {ExceptionMessageService} from \"../exception-message.service\";\r\nimport {PasswordService} from \"../password.service\";\r\n\r\n@Component({\r\n selector: 'gd-password-required',\r\n templateUrl: './password-required.component.html',\r\n styleUrls: ['./password-required.component.less']\r\n})\r\nexport class PasswordRequiredComponent implements OnInit {\r\n message: string;\r\n\r\n constructor(messageService: ExceptionMessageService, private _passwordService: PasswordService) {\r\n messageService.messageChange.subscribe(message => this.message = message);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n setPassword(value: string) {\r\n this._passwordService.setPassword(value);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\r\nimport {Observable, throwError} from \"rxjs\";\r\nimport {catchError, map} from \"rxjs/operators\";\r\nimport {ExceptionMessageService} from \"./exception-message.service\";\r\nimport {HttpError} from \"./file.service\";\r\nimport {CommonModals, ModalService} from \"./modal.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptorService implements HttpInterceptor {\r\n\r\n constructor(private _modalService: ModalService, private _messageService: ExceptionMessageService) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n const logFormat = 'background: maroon; color: white';\r\n\r\n return next.handle(req)\r\n .pipe(map(data => {\r\n return data;\r\n }),\r\n catchError((exception: HttpEvent) => {\r\n if (exception instanceof HttpErrorResponse) {\r\n switch (exception.status) {\r\n\r\n case HttpError.BadRequest:\r\n console.error('%c Bad Request 400', logFormat);\r\n break;\r\n case HttpError.Unauthorized:\r\n console.error('%c Unauthorized 401', logFormat);\r\n break;\r\n case HttpError.NotFound:\r\n console.error('%c Not Found 404', logFormat);\r\n break;\r\n case HttpError.TimeOut:\r\n console.error('%c TimeOut 408', logFormat);\r\n break;\r\n case HttpError.InternalServerError:\r\n console.error('%c big bad 500', logFormat);\r\n this._messageService.changeMessage(exception.error.message);\r\n this._modalService.open(CommonModals.ErrorMessage);\r\n break;\r\n\r\n case HttpError.Forbidden:\r\n console.error('%c Forbidden 403', logFormat);\r\n this._messageService.changeMessage(exception.error.message);\r\n this._modalService.open(CommonModals.PasswordRequired);\r\n break;\r\n }\r\n }\r\n return throwError(exception);\r\n }));\r\n }\r\n}\r\n","import { HammerGestureConfig } from '@angular/platform-browser';\r\nimport * as Hammer from 'hammerjs';\r\n\r\nexport class CustomHammerConfig extends HammerGestureConfig {\r\n overrides = {\r\n // override default settings\r\n 'pinch': {\r\n direction: Hammer.DIRECTION_ALL,\r\n enable: true,\r\n dropRecognizeWith: 'rotate'\r\n },\r\n 'rotate': {\r\n direction: Hammer.DIRECTION_ALL,\r\n enable: true,\r\n requireFailure: 'pinch'\r\n }\r\n };\r\n}","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class SearchService {\r\n private _observer: Subject = new Subject();\r\n private readonly _textChange: Observable = this._observer.asObservable();\r\n\r\n private _observerCurrent: Subject = new Subject();\r\n private readonly _currentChange: Observable = this._observerCurrent.asObservable();\r\n\r\n private _observerTotal: Subject = new Subject();\r\n private readonly _totalChange: Observable = this._observerTotal.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get textChange(): Observable {\r\n return this._textChange;\r\n }\r\n\r\n setText(text: string) {\r\n this._observer.next(text);\r\n }\r\n\r\n get currentChange(): Observable {\r\n return this._currentChange;\r\n }\r\n\r\n get totalChange(): Observable {\r\n return this._totalChange;\r\n }\r\n\r\n setCurrent(current: number) {\r\n this._observerCurrent.next(current);\r\n }\r\n\r\n setTotal(total: number) {\r\n this._observerTotal.next(total);\r\n }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {SearchService} from \"../search.service\";\r\n\r\n@Component({\r\n selector: 'gd-search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.less']\r\n})\r\nexport class SearchComponent implements OnInit, AfterViewInit {\r\n\r\n @Output() hidePanel = new EventEmitter(false);\r\n\r\n current = 0;\r\n total = 0;\r\n\r\n @ViewChild('text',{\r\n static : true\r\n }) textElement: ElementRef;\r\n\r\n constructor(private _searchService: SearchService) {\r\n _searchService.totalChange.subscribe((total: number) => {\r\n this.total = total;\r\n if (total !== 0) {\r\n this.current = 1;\r\n } else {\r\n this.current = 0;\r\n }\r\n this._searchService.setCurrent(this.current);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n setText(text: string) {\r\n this._searchService.setText(text);\r\n }\r\n\r\n hide() {\r\n this.setText('');\r\n this.hidePanel.emit(true);\r\n }\r\n\r\n prev() {\r\n if (this.current > 1) {\r\n this.current--;\r\n this._searchService.setCurrent(this.current);\r\n }\r\n }\r\n\r\n next() {\r\n if (this.current < this.total) {\r\n this.current++;\r\n this._searchService.setCurrent(this.current);\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.textElement.nativeElement.focus();\r\n }\r\n}\r\n","import {Directive, ElementRef} from '@angular/core';\r\nimport {SearchService} from \"./search.service\";\r\nimport {HighlightSearchPipe} from \"./pipes\";\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\n@Directive({\r\n selector: '[gdSearchable]'\r\n})\r\nexport class SearchableDirective {\r\n\r\n text: string;\r\n current = 0;\r\n total = 0;\r\n private zoom = 100;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _searchService: SearchService,\r\n private _highlight: HighlightSearchPipe,\r\n private _zoomService: ZoomService) {\r\n _searchService.currentChange.subscribe((current: number) => {\r\n this.current = current;\r\n if (this.current !== 0) {\r\n this.moveToCurrent();\r\n }\r\n });\r\n\r\n _searchService.textChange.subscribe((text: string) => {\r\n this.text = text;\r\n this.highlightSearch();\r\n });\r\n\r\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\r\n _zoomService.zoomChange.subscribe((val: number) => {\r\n this.zoom = val ? val : this.zoom;\r\n });\r\n }\r\n\r\n private highlightSearch() {\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n this.cleanHighlight(el);\r\n if (this.text) {\r\n this.highlightEl(el);\r\n const count = el.querySelectorAll('.gd-highlight').length;\r\n this.total = count;\r\n } else {\r\n this.total = 0;\r\n }\r\n this._searchService.setTotal(this.total);\r\n }\r\n }\r\n\r\n private moveToCurrent() {\r\n if (this.current === 0) {\r\n return;\r\n }\r\n const currentZoom = this.getZoom();\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n el.querySelectorAll('.gd-highlight-select').forEach(function (value) {\r\n $(value).removeClass('gd-highlight-select');\r\n });\r\n const currentEl = el.querySelectorAll('.gd-highlight')[this.current - 1];\r\n $(currentEl).addClass('gd-highlight-select');\r\n if (currentEl) {\r\n const options = {\r\n left: 0,\r\n top: ($(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150,\r\n };\r\n // using polyfill\r\n el.parentElement.parentElement.scroll(options);\r\n }\r\n }\r\n }\r\n\r\n private highlightEl(el: Element) {\r\n const textNodes = $(el).find('*').contents().filter(function () {\r\n const nodeName = this.parentElement.nodeName.toLowerCase();\r\n const checkClass = (this).classList ? !(this).classList.contains('gd-highlight') : true;\r\n return this.nodeType === 3 &&\r\n this.textContent.trim().length !== 0 &&\r\n nodeName !== 'style' &&\r\n nodeName !== 'title' &&\r\n nodeName !== 'body' &&\r\n nodeName !== 'script' &&\r\n checkClass;\r\n });\r\n const text = this.text;\r\n const highlight = this._highlight;\r\n textNodes.each(function () {\r\n const $this = $(this);\r\n let content = $this.text();\r\n content = highlight.transform(content, text);\r\n $this.replaceWith(content);\r\n });\r\n el.normalize();\r\n }\r\n\r\n private cleanHighlight(el: HTMLElement) {\r\n const nodeListOf = el.querySelectorAll('.gd-highlight');\r\n for (let i = 0; i < nodeListOf.length; i++) {\r\n const element = nodeListOf.item(i);\r\n element.replaceWith((element).innerText);\r\n }\r\n el.normalize();\r\n }\r\n\r\n private getZoom() {\r\n return this.zoom / 100;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-tabbed-toolbars',\r\n templateUrl: './tabbed-toolbars.component.html',\r\n styleUrls: ['./tabbed-toolbars.component.less']\r\n})\r\nexport class TabbedToolbarsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class TabActivatorService {\r\n private _observer: Subject = new Subject();\r\n private readonly _activeTabChange: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get activeTabChange(): Observable {\r\n return this._activeTabChange;\r\n }\r\n\r\n changeActiveTab(tabId: string) {\r\n this._observer.next(tabId);\r\n }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {TabActivatorService} from \"../tab-activator.service\";\r\n\r\n@Component({\r\n selector: 'gd-tab',\r\n templateUrl: './tab.component.html',\r\n styleUrls: ['./tab.component.less']\r\n})\r\nexport class TabComponent implements OnInit {\r\n @Input() id: string;\r\n @Input() tabTitle: string;\r\n @Input() icon: string;\r\n @Input() disabled = false;\r\n @Input() active = false;\r\n @Input() content = true;\r\n\r\n constructor(private _tabActivatorService: TabActivatorService) {\r\n this._tabActivatorService.activeTabChange.subscribe((tabId: string) => {\r\n this.activation(tabId);\r\n });\r\n }\r\n\r\n private activation(tabId: string) {\r\n if (this.id === tabId) {\r\n this.active = true;\r\n } else {\r\n this.active = false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n selectTab() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this._tabActivatorService.changeActiveTab(this.id);\r\n }\r\n}\r\n","import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.less']\r\n})\r\nexport class TabsComponent {\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class Formatting {\r\n static DEFAULT: Formatting = new Formatting(10, '#000000', '#FFFFFF', false, false, false, 'Arial', false, \"\", \"\");\r\n\r\n constructor(fontSize: number, color: string, bgColor: string, bold: boolean, italic: boolean, underline: boolean, font: string, strikeout: boolean, align: string, list: string) {\r\n this.fontSize = fontSize;\r\n this.color = color;\r\n this.bgColor = bgColor;\r\n this.bold = bold;\r\n this.italic = italic;\r\n this.underline = underline;\r\n this.font = font;\r\n this.strikeout = strikeout;\r\n this.align = align;\r\n this.list = list;\r\n }\r\n\r\n bold: boolean;\r\n italic: boolean;\r\n underline: boolean;\r\n fontSize: number;\r\n color: string;\r\n bgColor: string;\r\n font: string;\r\n strikeout: boolean;\r\n align: string;\r\n list: string;\r\n}\r\n\r\nexport class FormattingService {\r\n private _observerBold: Subject = new Subject();\r\n private readonly _formatBoldChange: Observable = this._observerBold.asObservable();\r\n private _observerUnderline: Subject = new Subject();\r\n private readonly _formatUnderlineChange: Observable = this._observerUnderline.asObservable();\r\n private _observerUndo: Subject = new Subject();\r\n private readonly _undo: Observable = this._observerUndo.asObservable();\r\n private _observerRedo: Subject = new Subject();\r\n private readonly _redo: Observable = this._observerRedo.asObservable();\r\n private _observerItalic: Subject = new Subject();\r\n private readonly _formatItalicChange: Observable = this._observerItalic.asObservable();\r\n private _observerColor: Subject = new Subject();\r\n private readonly _formatColorChange: Observable = this._observerColor.asObservable();\r\n private _observerBgColor: Subject = new Subject();\r\n private readonly _formatBgColorChange: Observable = this._observerBgColor.asObservable();\r\n private _observerFontSize: Subject = new Subject();\r\n private readonly _formatFontSizeChange: Observable = this._observerFontSize.asObservable();\r\n private _observerFont: Subject = new Subject();\r\n private readonly _formatFontChange: Observable = this._observerFont.asObservable();\r\n private _observerStrikeout: Subject = new Subject();\r\n private readonly _formatStrikeoutChange: Observable = this._observerStrikeout.asObservable();\r\n private _observerAlign: Subject = new Subject();\r\n private readonly _formatAlignChange: Observable = this._observerAlign.asObservable();\r\n private _observerList: Subject = new Subject();\r\n private readonly _formatListChange: Observable = this._observerList.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get formatBoldChange() {\r\n return this._formatBoldChange;\r\n }\r\n\r\n get formatUnderlineChange() {\r\n return this._formatUnderlineChange;\r\n }\r\n\r\n get formatColorChange() {\r\n return this._formatColorChange;\r\n }\r\n\r\n get formatBgColorChange() {\r\n return this._formatBgColorChange;\r\n }\r\n\r\n get formatFontSizeChange() {\r\n return this._formatFontSizeChange;\r\n }\r\n\r\n get formatFontChange() {\r\n return this._formatFontChange;\r\n }\r\n\r\n get undo() {\r\n return this._undo;\r\n }\r\n\r\n get redo() {\r\n return this._redo;\r\n }\r\n\r\n get formatItalicChange() {\r\n return this._formatItalicChange;\r\n }\r\n\r\n get formatStrikeoutChange() {\r\n return this._formatStrikeoutChange;\r\n }\r\n\r\n get formatAlignChange() {\r\n return this._formatAlignChange;\r\n }\r\n\r\n get formatListChange() {\r\n return this._formatListChange;\r\n }\r\n\r\n static createFontSizeOption(val: number) {\r\n return {value: val, name: val + 'px', separator: false}\r\n }\r\n\r\n static getFontSizeOptions() {\r\n return [\r\n FormattingService.createFontSizeOption(8),\r\n FormattingService.createFontSizeOption(10),\r\n FormattingService.createFontSizeOption(12),\r\n FormattingService.createFontSizeOption(14),\r\n FormattingService.createFontSizeOption(16),\r\n FormattingService.createFontSizeOption(18),\r\n FormattingService.createFontSizeOption(20),\r\n FormattingService.createFontSizeOption(22),\r\n FormattingService.createFontSizeOption(24),\r\n ];\r\n }\r\n\r\n static createFontOption(val: string) {\r\n return {value: val, name: val, separator: false}\r\n }\r\n\r\n static getFontOptions() {\r\n const fonts = [\"Arial\", \"Calibri\", \"Century Gothic\", \"Comic Sans\", \"Consolas\", \"Courier\", \"Dejavu Sans\", \"Dejavu Serif\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Lucida Sans\",\r\n \"Myriad Pro\", \"Open Sans\", \"Palatino\", \"Tahoma\", \"Times New Roman\", \"Trebuchet\"];\r\n const fontOptions = [];\r\n fonts.forEach(font=> {\r\n fontOptions.push(this.createFontOption(font));\r\n })\r\n\r\n return fontOptions;\r\n }\r\n\r\n changeFormatFontSize($event: number) {\r\n this._observerFontSize.next($event);\r\n }\r\n\r\n changeFormatBold(bold: boolean) {\r\n this._observerBold.next(bold);\r\n }\r\n\r\n changeFormatUnderline(underline: boolean) {\r\n this._observerUnderline.next(underline);\r\n }\r\n\r\n Undo() {\r\n this._observerUndo.next();\r\n }\r\n\r\n Redo() {\r\n this._observerRedo.next();\r\n }\r\n\r\n changeFormatItalic(italic: boolean) {\r\n this._observerItalic.next(italic);\r\n }\r\n\r\n changeFormatColor(color: string) {\r\n this._observerColor.next(color);\r\n }\r\n\r\n changeFormatBgColor(bgcolor: string) {\r\n this._observerBgColor.next(bgcolor);\r\n }\r\n\r\n changeFormatFont(font: string) {\r\n this._observerFont.next(font);\r\n }\r\n\r\n changeFormatStrikeout(strikeout: boolean) {\r\n this._observerStrikeout.next(strikeout);\r\n }\r\n\r\n changeFormatAlign(align: string) {\r\n this._observerAlign.next(align);\r\n }\r\n\r\n changeFormatList(list: string) {\r\n this._observerList.next(list);\r\n }\r\n}\r\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\r\n\r\nconst DEFAULT_COLORS = ['#000000', '#993300', '#333300', '#000080', '#333399', '#333333',\r\n '#800000', '#FF6600', '#808000', '#008000', '#008080', '#0000FF',\r\n '#666699', '#808080', '#FF0000', '#FF9900', '#99CC00', '#339966',\r\n '#33CCCC', '#3366FF', '#800080', '#999999', '#FF00FF', '#FFCC00',\r\n '#FFFF00', '#00FF00', '#00FFFF', '#00CCFF', '#993366', '#C0C0C0',\r\n '#FF99CC', '#FFCC99', '#FFFF99', '#CCFFFF', '#99CCFF', '#FFFFFF'];\r\n\r\n\r\n@Component({\r\n selector: 'gd-color-picker',\r\n templateUrl: './color-picker.component.html',\r\n styleUrls: ['./color-picker.component.less']\r\n})\r\nexport class ColorPickerComponent implements OnInit {\r\n @Output() selectedColor = new EventEmitter();\r\n colors: any = DEFAULT_COLORS;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n select($event, color: string) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.selectedColor.emit(color);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {FormattingService} from \"./formatting.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BackFormattingService extends FormattingService {\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SelectionService {\r\n selection: Range;\r\n isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n\r\n restoreSelection() {\r\n if(this.selection && !this.selection.collapsed || this.isIE){\r\n this.putSelection(this.selection );\r\n }\r\n }\r\n\r\n captureSelection() {\r\n const selection = window.getSelection();\r\n if (selection.rangeCount > 0) {\r\n this.selection = selection.getRangeAt(0);\r\n }\r\n }\r\n\r\n private putSelection(selection) {\r\n const sel = window.getSelection();\r\n sel.removeAllRanges();\r\n sel.addRange(selection.cloneRange());\r\n }\r\n\r\n refreshSelection() {\r\n this.captureSelection();\r\n this.restoreSelection();\r\n }\r\n}\r\n","import {Directive, HostListener, OnInit} from '@angular/core';\r\nimport {FormattingService} from \"./formatting.service\";\r\nimport {BackFormattingService} from \"./back-formatting.service\";\r\nimport * as jquery from 'jquery';\r\nconst $ = jquery;\r\nimport {SelectionService} from './selection.service';\r\n\r\n@Directive({\r\n selector: '[gdFormatting]'\r\n})\r\nexport class FormattingDirective implements OnInit {\r\n\r\n private bold = false;\r\n private italic = false;\r\n private underline = false;\r\n private color: string;\r\n private bgColor: string;\r\n private font: string;\r\n private strikeout = false;\r\n private align: string;\r\n private list: string;\r\n private isIE = false;\r\n\r\n constructor(private _formattingService: FormattingService,\r\n private _backFormattingService: BackFormattingService,\r\n private _selectionService: SelectionService) {\r\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n }\r\n\r\n @HostListener('mouseup') mouseup() {\r\n\r\n this.bold = document.queryCommandState(\"bold\");\r\n this.strikeout = document.queryCommandState(\"strikeThrough\");\r\n this.italic = document.queryCommandState(\"italic\");\r\n this.bgColor = document.queryCommandValue(\"backColor\");\r\n this.underline = document.queryCommandState(\"underline\");\r\n this.align = this.checkJustify();\r\n this.list = this.checkList();\r\n\r\n //fix required by FireFox to get correct background color\r\n if (this.bgColor === \"transparent\") {\r\n this.bgColor = $(window.getSelection().focusNode.parentNode).css('background-color').toString();\r\n }\r\n this.font = document.queryCommandValue(\"FontName\").replace(/\"/g, '');\r\n if(this.font.split(\",\").length > 1){\r\n this.font = this.font.split(\",\")[0];\r\n }\r\n this.color = document.queryCommandValue(\"foreColor\");\r\n this._backFormattingService.changeFormatBold(this.bold);\r\n this._backFormattingService.changeFormatUnderline(this.underline);\r\n this._backFormattingService.changeFormatItalic(this.italic);\r\n this._backFormattingService.changeFormatColor(this.color);\r\n this._backFormattingService.changeFormatBgColor(this.bgColor);\r\n this._backFormattingService.changeFormatFontSize(this.reportFontSize());\r\n this._backFormattingService.changeFormatFont(this.font);\r\n this._backFormattingService.changeFormatStrikeout(this.strikeout);\r\n this._backFormattingService.changeFormatAlign(this.align);\r\n this._backFormattingService.changeFormatList(this.list);\r\n }\r\n\r\n private checkJustify() {\r\n let align = \"\";\r\n align = document.queryCommandState(\"justifyCenter\") ? \"center\" : align;\r\n align = document.queryCommandState(\"justifyFull\") ? \"full\" : align;\r\n align = document.queryCommandState(\"justifyLeft\") ? \"left\" : align;\r\n align = document.queryCommandState(\"justifyRight\") ? \"right\" : align;\r\n return align;\r\n }\r\n\r\n private checkList() {\r\n let list = \"\";\r\n list = document.queryCommandState(\"insertUnorderedList\") ? \"unordered\" : list;\r\n list = document.queryCommandState(\"insertOrderedList\") ? \"ordered\" : list;\r\n return list;\r\n }\r\n\r\n reportFontSize(): number {\r\n let containerEl, sel;\r\n if (window.getSelection) {\r\n sel = window.getSelection();\r\n if (sel.rangeCount) {\r\n containerEl = sel.getRangeAt(0).commonAncestorContainer;\r\n // Make sure we have an element rather than a text node\r\n if (containerEl.nodeType === 3) {\r\n containerEl = containerEl.parentNode;\r\n }\r\n }\r\n } else if ((sel = document.getSelection()) && sel.type !== \"Control\") {\r\n containerEl = sel.createRange().parentElement();\r\n }\r\n\r\n if (containerEl) {\r\n return parseInt(this.getComputedStyleProperty(containerEl, \"fontSize\").replace(\"px\", \"\"), 10);\r\n }\r\n }\r\n\r\n getComputedStyleProperty(el, propName) {\r\n if (window.getComputedStyle) {\r\n return window.getComputedStyle(el, null)[propName];\r\n } else if (el.currentStyle) {\r\n return el.currentStyle[propName];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._formattingService.undo.subscribe(() => {\r\n this.toggleUndo();\r\n });\r\n this._formattingService.redo.subscribe(() => {\r\n this.toggleRedo();\r\n });\r\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\r\n this.bold = bold;\r\n this.toggleBold();\r\n });\r\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\r\n this.underline = underline;\r\n this.toggleUnderline();\r\n });\r\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\r\n this.italic = italic;\r\n this.toggleItalic();\r\n });\r\n this._formattingService.formatColorChange.subscribe(((color: string) => {\r\n this.color = color;\r\n this.setColor(color);\r\n }));\r\n this._formattingService.formatBgColorChange.subscribe(((bgcolor: string) => {\r\n this.bgColor = bgcolor;\r\n this.setBgColor(bgcolor);\r\n }));\r\n this._formattingService.formatFontSizeChange.subscribe(((fontSize: number) => {\r\n this.setFontSize(fontSize);\r\n }));\r\n\r\n this._formattingService.formatFontChange.subscribe(((font: string) => {\r\n this.font = font;\r\n this.setFont(font);\r\n }));\r\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\r\n this.strikeout = strikeout;\r\n this.toggleStrikeout();\r\n });\r\n this._formattingService.formatAlignChange.subscribe((align: string) => {\r\n this.align = align;\r\n this.toggleAlign(this.align);\r\n });\r\n this._formattingService.formatListChange.subscribe((list: string) => {\r\n this.list = list;\r\n this.toggleList(this.list);\r\n });\r\n }\r\n\r\n private toggleBold() {\r\n document.execCommand(\"bold\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleUnderline() {\r\n document.execCommand(\"underline\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleItalic() {\r\n document.execCommand(\"italic\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private setBgColor(bgColor: string) {\r\n document.execCommand(\"backColor\", false, bgColor);\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private setColor(color: string) {\r\n document.execCommand(\"foreColor\", false, color);\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private setFontSize(fontSize: number) {\r\n if (document.getSelection().toString()) {\r\n let spanString = \"\" +\r\n document.getSelection() + \"\";\r\n if (this.bold) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n if (this.italic) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n if (this.underline) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n if (this.strikeout) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n document.execCommand('insertHTML', false, spanString);\r\n } else {\r\n document.execCommand(\"fontsize\", false, \"7\");\r\n }\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleUndo() {\r\n document.execCommand(\"undo\");\r\n }\r\n\r\n private toggleRedo() {\r\n document.execCommand(\"redo\");\r\n }\r\n\r\n private setFont(font: string) {\r\n document.execCommand(\"fontName\", false, font);\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleStrikeout() {\r\n document.execCommand(\"strikeThrough\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleAlign(align: string) {\r\n if(this.isIE) {\r\n this.toggleAlignIE(align);\r\n return;\r\n }\r\n document.execCommand(\"styleWithCSS\", false, 'true');\r\n switch (align) {\r\n case 'center':\r\n document.execCommand('justifyCenter');\r\n break;\r\n case 'full':\r\n document.execCommand('justifyFull');\r\n break;\r\n case 'left':\r\n document.execCommand('justifyLeft');\r\n break;\r\n case 'right':\r\n document.execCommand('justifyRight');\r\n break;\r\n }\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleAlignIE(align: string) {\r\n this._selectionService.restoreSelection()\r\n this._selectionService.captureSelection()\r\n const selection = window.getSelection().focusNode.parentNode.parentNode;\r\n if(align === \"full\"){\r\n align = \"justify\";\r\n }\r\n $(selection).css(\"text-align\", align);\r\n this._selectionService.refreshSelection()\r\n }\r\n\r\n private toggleList(list: string) {\r\n switch (list) {\r\n case 'unordered':\r\n document.execCommand('insertUnorderedList');\r\n break;\r\n case 'ordered':\r\n document.execCommand('insertOrderedList');\r\n break;\r\n }\r\n this._selectionService.refreshSelection();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-success-modal',\r\n templateUrl: './success-modal.component.html',\r\n styleUrls: ['./success-modal.component.less']\r\n})\r\nexport class SuccessModalComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EditHtmlService {\r\n private _observer: Subject = new Subject();\r\n private readonly _htmlContent: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get observer(): Subject {\r\n return this._observer;\r\n }\r\n\r\n get htmlContent(): Observable {\r\n return this._htmlContent;\r\n }\r\n\r\n}\r\n","import {Directive, HostListener, Input} from '@angular/core';\r\nimport {SelectionService} from './selection.service';\r\nimport {EditHtmlService} from \"./edit-html.service\";\r\n\r\n@Directive({\r\n selector: '[gdEditor]'\r\n})\r\nexport class EditorDirective {\r\n @Input() text: any;\r\n\r\n private isIE: boolean = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n\r\n constructor(private _selectionService: SelectionService, private _htmlService: EditHtmlService) {\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n public onInput(event) {\r\n this.text = event.target;\r\n if(this.isIE){\r\n if (this.text.innerHTML) {\r\n const html = this.text.innerHTML.toString();\r\n this._htmlService.observer.next(html);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('mouseleave', ['$event'])\r\n public onMouseleave(event) {\r\n this._selectionService.captureSelection();\r\n // this code is required to fix IE11 issue - it doesn't trigger blur event, since that we need to save updated HTML here\r\n if(this.isIE){\r\n this._htmlService.observer.next(event.target.innerHTML.toString());\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n public onBlur(event) {\r\n event.preventDefault();\r\n this._selectionService.restoreSelection();\r\n if (this.text.innerHTML) {\r\n const html = this.text.innerHTML.toString();\r\n this._htmlService.observer.next(html);\r\n } else {\r\n this._htmlService.observer.next(event.target.innerHTML.toString());\r\n }\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core'\r\nimport { HttpRequest } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class LoadingMaskService {\r\n onLoadingChanged: EventEmitter = new EventEmitter();\r\n\r\n private requests: HttpRequest[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n onRequestStart(req: HttpRequest): void {\r\n this.requests.push(req);\r\n this.notify();\r\n }\r\n\r\n onRequestFinish(req: HttpRequest): void {\r\n const index = this.requests.indexOf(req);\r\n if (index !== -1) {\r\n this.requests.splice(index, 1);\r\n }\r\n this.notify();\r\n }\r\n\r\n private notify(): void {\r\n this.onLoadingChanged.emit(this.requests.length !== 0);\r\n }\r\n}\r\n","import {AfterViewInit, Component, Input, OnInit} from '@angular/core';\r\nimport {LoadingMaskService} from \"../loading-mask.service\";\r\n\r\n@Component({\r\n selector: 'gd-loading-mask',\r\n templateUrl: './loading-mask.component.html',\r\n styleUrls: ['./loading-mask.component.less']\r\n})\r\n\r\nexport class LoadingMaskComponent implements OnInit, AfterViewInit {\r\n @Input() loadingMask = false;\r\n\r\n constructor(private _loadingMaskService: LoadingMaskService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._loadingMaskService\r\n .onLoadingChanged\r\n .subscribe((loading: boolean) => this.loadingMask = loading);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\r\nimport {Observable} from \"rxjs\";\r\nimport {finalize} from 'rxjs/operators'\r\nimport {LoadingMaskService} from \"./loading-mask.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadingMaskInterceptorService implements HttpInterceptor {\r\n\r\n constructor(private _loadingMaskService: LoadingMaskService) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n this._loadingMaskService.onRequestStart(req);\r\n const callback = () => this._loadingMaskService.onRequestFinish(req);\r\n return next.handle(req).pipe( finalize( callback));\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n HostListener,\r\n Inject,\r\n Input,\r\n Output,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\n\r\n\r\nconst horizontalAlignment = {\r\n center : {\r\n right: 'auto'\r\n },\r\n left : {\r\n right: '100%'\r\n },\r\n right : {\r\n right: '-100%'\r\n }\r\n};\r\n\r\nconst verticalAlignment = {\r\n center : {\r\n top : '0px',\r\n },\r\n top : {\r\n top : '-100%',\r\n right: '100%'\r\n },\r\n bottom : {\r\n top: 'autos'\r\n }\r\n};\r\n\r\n/**\r\n * DropDownToggleComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down-toggle',\r\n template: '',\r\n styleUrls: ['./drop-down.component.less'],\r\n encapsulation : ViewEncapsulation.None\r\n})\r\nexport class DropDownToggleComponent{\r\n @HostListener('click',['$event'])\r\n click = (event: any) => this.dropdown.toggle(event);\r\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\r\n}\r\n\r\n/**\r\n * DropDownItemsComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down-items',\r\n template: '
',\r\n styleUrls: ['./drop-down.component.less'],\r\n encapsulation : ViewEncapsulation.None\r\n})\r\nexport class DropDownItemsComponent{\r\n\r\n get horizontalAlign(){\r\n return horizontalAlignment[this.dropdown.getPlacement().h].right;\r\n }\r\n\r\n get verticalAlign(){\r\n return verticalAlignment[this.dropdown.getPlacement().v].top;\r\n }\r\n\r\n get isOpen(){\r\n return this.dropdown.open;\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\r\n\r\n onClickOutside(event : Event ){\r\n this.dropdown.close();\r\n }\r\n}\r\n\r\n/**\r\n * DropDownItemComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down-item',\r\n template: '
',\r\n styleUrls: ['./drop-down.component.less'],\r\n})\r\nexport class DropDownItemComponent{\r\n @HostBinding('class')\r\n class = 'drop-down-item';\r\n\r\n @Output()\r\n selected = new EventEmitter();\r\n\r\n @HostListener('click')\r\n click = () => this.selectEntry();\r\n\r\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\r\n\r\n selectEntry(){\r\n this.selected.next();\r\n this.dropdown.close();\r\n }\r\n}\r\n\r\n/**\r\n * DropDownComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down',\r\n template: '
',\r\n styleUrls: ['./drop-down.component.less'],\r\n encapsulation : ViewEncapsulation.None\r\n})\r\nexport class DropDownComponent{\r\n @Input()\r\n placement = {\r\n h: \"center\",\r\n v: \"bottom\"\r\n };\r\n\r\n\r\n @Input()\r\n @HostBinding('class.show')\r\n open = false;\r\n\r\n @HostBinding('class')\r\n class = 'drop-down';\r\n\r\n close(){\r\n this.open = false;\r\n }\r\n\r\n toggle(event : MouseEvent){\r\n event.stopPropagation();\r\n this.open = !this.open;\r\n document.body.click();\r\n }\r\n\r\n getPlacement(){\r\n return this.placement;\r\n }\r\n}\r\n","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {TopToolbarComponent} from './top-toolbar/top-toolbar.component';\r\nimport {SidePanelComponent} from './side-panel/side-panel.component';\r\nimport {ButtonComponent} from './button/button.component';\r\nimport {LogoComponent} from './logo/logo.component';\r\nimport {TooltipComponent} from './tooltip/tooltip.component';\r\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\r\nimport {library} from '@fortawesome/fontawesome-svg-core';\r\nimport {fas} from '@fortawesome/free-solid-svg-icons';\r\nimport {far} from '@fortawesome/free-regular-svg-icons';\r\nimport {Api, ConfigService,} from \"./config.service\";\r\nimport {ModalService} from \"./modal.service\";\r\nimport {ModalComponent} from './modal/modal.component';\r\nimport {BrowseFilesModalComponent} from './browse-files-modal/browse-files-modal.component';\r\nimport {FileModel, FileService, FileUtil} from \"./file.service\";\r\nimport {DocumentComponent} from './document/document.component';\r\nimport {PageComponent} from './page/page.component';\r\nimport {HighlightSearchPipe, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe} from \"./pipes\";\r\nimport {UploadFileZoneComponent} from './upload-file-zone/upload-file-zone.component';\r\nimport {UploadFilesService} from \"./upload-files.service\";\r\nimport {DndDirective} from './dnd.directive';\r\nimport {ScrollableDirective} from './scrollable.directive';\r\nimport {NavigateService} from \"./navigate.service\";\r\nimport {PagePreloadService} from \"./page-preload.service\";\r\nimport {ZoomDirective} from './zoom.directive';\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport {SelectComponent} from './select/select.component';\r\nimport {DisabledCursorDirective} from './disabled-cursor.directive';\r\nimport {RotationDirective} from './rotation.directive';\r\nimport {InitStateComponent} from './init-state/init-state.component';\r\nimport {RenderPrintService} from \"./render-print.service\";\r\nimport {RenderPrintDirective} from './render-print.directive';\r\nimport {ErrorModalComponent} from './error-modal/error-modal.component';\r\nimport {PasswordRequiredComponent} from './password-required/password-required.component';\r\nimport {ExceptionMessageService} from \"./exception-message.service\";\r\nimport {PasswordService} from \"./password.service\";\r\nimport {RotationService} from \"./rotation.service\";\r\nimport {ErrorInterceptorService} from \"./error-interceptor.service\";\r\nimport {CustomHammerConfig} from \"./custom-hammer-config\";\r\nimport {SearchComponent} from './search/search.component';\r\nimport {SearchableDirective} from './searchable.directive';\r\nimport {SearchService} from \"./search.service\";\r\nimport {WindowService} from \"./window.service\";\r\nimport {ViewportService} from \"./viewport.service\";\r\nimport {TabbedToolbarsComponent} from './tabbed-toolbars/tabbed-toolbars.component';\r\nimport {TabComponent} from \"./tab/tab.component\";\r\nimport {TabsComponent} from \"./tabs/tabs.component\";\r\nimport {FormattingService} from \"./formatting.service\";\r\nimport {ColorPickerComponent} from './color-picker/color-picker.component';\r\nimport {FormattingDirective} from './formatting.directive';\r\nimport {BackFormattingService} from \"./back-formatting.service\";\r\nimport {OnCloseService} from \"./on-close.service\";\r\nimport {SuccessModalComponent} from './success-modal/success-modal.component';\r\nimport {EditorDirective} from './editor.directive';\r\nimport {LoadingMaskComponent} from './loading-mask/loading-mask.component';\r\nimport {LoadingMaskService} from './loading-mask.service';\r\nimport {LoadingMaskInterceptorService} from \"./loading-mask-interceptor.service\";\r\nimport {TabActivatorService} from \"./tab-activator.service\";\r\nimport { DropDownComponent,DropDownItemComponent,DropDownItemsComponent,DropDownToggleComponent } from './drop-down/drop-down.component';\r\nimport { ClickOutsideModule } from 'ng-click-outside';\r\n\r\nconst providers = [ConfigService,\r\n Api,\r\n ModalService,\r\n FileService,\r\n FileModel,\r\n FileUtil,\r\n SanitizeHtmlPipe,\r\n SanitizeResourceHtmlPipe,\r\n SanitizeStylePipe,\r\n HighlightSearchPipe,\r\n UploadFilesService,\r\n RenderPrintService,\r\n NavigateService,\r\n PagePreloadService,\r\n ZoomService,\r\n ExceptionMessageService,\r\n PasswordService,\r\n RotationService,\r\n ErrorInterceptorService,\r\n CustomHammerConfig,\r\n SearchService,\r\n WindowService,\r\n ViewportService,\r\n FormattingService,\r\n BackFormattingService,\r\n OnCloseService,\r\n LoadingMaskInterceptorService,\r\n LoadingMaskService,\r\n TabActivatorService];\r\n\r\n@NgModule({\r\n imports: [CommonModule, FontAwesomeModule, ClickOutsideModule],\r\n declarations: [\r\n TopToolbarComponent,\r\n SidePanelComponent,\r\n ButtonComponent,\r\n LogoComponent,\r\n TooltipComponent,\r\n ModalComponent,\r\n BrowseFilesModalComponent,\r\n DocumentComponent,\r\n PageComponent,\r\n SanitizeHtmlPipe,\r\n SanitizeResourceHtmlPipe,\r\n SanitizeStylePipe,\r\n HighlightSearchPipe,\r\n UploadFileZoneComponent,\r\n DndDirective,\r\n ScrollableDirective,\r\n ZoomDirective,\r\n SelectComponent,\r\n DisabledCursorDirective,\r\n RotationDirective,\r\n InitStateComponent,\r\n RenderPrintDirective,\r\n ErrorModalComponent,\r\n PasswordRequiredComponent,\r\n SearchComponent,\r\n SearchableDirective,\r\n TabbedToolbarsComponent,\r\n TabComponent,\r\n TabsComponent,\r\n ColorPickerComponent,\r\n FormattingDirective,\r\n SuccessModalComponent,\r\n EditorDirective,\r\n LoadingMaskComponent,\r\n DropDownComponent,\r\n DropDownItemComponent,\r\n DropDownItemsComponent,\r\n DropDownToggleComponent\r\n ],\r\n exports: [\r\n TopToolbarComponent,\r\n SidePanelComponent,\r\n ButtonComponent,\r\n LogoComponent,\r\n TooltipComponent,\r\n ModalComponent,\r\n BrowseFilesModalComponent,\r\n DocumentComponent,\r\n PageComponent,\r\n SanitizeResourceHtmlPipe,\r\n SanitizeStylePipe,\r\n HighlightSearchPipe,\r\n SanitizeHtmlPipe,\r\n UploadFileZoneComponent,\r\n ScrollableDirective,\r\n SelectComponent,\r\n RotationDirective,\r\n InitStateComponent,\r\n RenderPrintDirective,\r\n ErrorModalComponent,\r\n PasswordRequiredComponent,\r\n SearchComponent,\r\n SearchableDirective,\r\n TabbedToolbarsComponent,\r\n TabComponent,\r\n TabsComponent,\r\n ColorPickerComponent,\r\n FormattingDirective,\r\n SuccessModalComponent,\r\n LoadingMaskComponent,\r\n DndDirective,\r\n DropDownComponent,\r\n DropDownItemComponent,\r\n DropDownItemsComponent,\r\n DropDownToggleComponent\r\n ],\r\n providers: providers\r\n})\r\nexport class CommonComponentsModule {\r\n constructor() {\r\n library.add(fas, far);\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/libs/common-components/esm2015/groupdocs.examples.angular-common-components.js b/dist/libs/common-components/esm2015/groupdocs.examples.angular-common-components.js index 1f867afc8..41e0b52d1 100644 --- a/dist/libs/common-components/esm2015/groupdocs.examples.angular-common-components.js +++ b/dist/libs/common-components/esm2015/groupdocs.examples.angular-common-components.js @@ -5,6 +5,6 @@ /** * Generated bundle index. Do not edit. */ -export { CommonComponentsModule, Api, ConfigService, CommonModals, ModalService, PageModel, RotatedPage, FileCredentials, SaveFile, FileDescription, FileModel, HttpError, FileUtil, FileService, UploadFilesService, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe, HighlightSearchPipe, NavigateService, PagePreloadService, ZoomService, RenderPrintService, ErrorInterceptorService, ExceptionMessageService, PasswordService, WindowService, ViewportService, BrowseFilesModalComponent, ButtonComponent, DisabledCursorDirective, DndDirective, DocumentComponent, ErrorModalComponent, InitStateComponent, LogoComponent, ModalComponent, PageComponent, PasswordRequiredComponent, RenderPrintDirective, RotationDirective, ScrollableDirective, SearchService, SearchComponent, SearchableDirective, SelectComponent, TooltipComponent, TopToolbarComponent, SidePanelComponent, UploadFileZoneComponent, ZoomDirective, SelectionService, OnCloseService, LoadingMaskService, LoadingMaskInterceptorService, FormattingDirective, Formatting, FormattingService, BackFormattingService, EditorDirective, EditHtmlService, ColorPickerComponent, LoadingMaskComponent, SuccessModalComponent, TabComponent, TabbedToolbarsComponent, TabActivatorService, DropDownToggleComponent, DropDownItemsComponent, DropDownItemComponent, DropDownComponent } from './index'; +export { CommonComponentsModule, Api, ConfigService, CommonModals, ModalService, PageModel, RotatedPage, FileCredentials, SaveFile, FileDescription, FileModel, HttpError, FileUtil, FileService, UploadFilesService, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe, HighlightSearchPipe, NavigateService, PagePreloadService, ZoomService, RenderPrintService, ErrorInterceptorService, CustomHammerConfig, ExceptionMessageService, PasswordService, RotationService, WindowService, ViewportService, BrowseFilesModalComponent, ButtonComponent, DisabledCursorDirective, DndDirective, DocumentComponent, ErrorModalComponent, InitStateComponent, LogoComponent, ModalComponent, PageComponent, PasswordRequiredComponent, RenderPrintDirective, RotationDirective, ScrollableDirective, SearchService, SearchComponent, SearchableDirective, SelectComponent, TooltipComponent, TopToolbarComponent, SidePanelComponent, UploadFileZoneComponent, ZoomDirective, SelectionService, OnCloseService, LoadingMaskService, LoadingMaskInterceptorService, FormattingDirective, Formatting, FormattingService, BackFormattingService, EditorDirective, EditHtmlService, ColorPickerComponent, LoadingMaskComponent, SuccessModalComponent, TabComponent, TabbedToolbarsComponent, TabActivatorService, DropDownToggleComponent, DropDownItemsComponent, DropDownItemComponent, DropDownComponent } from './index'; export { TabsComponent as ɵa } from './lib/tabs/tabs.component'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXItY29tbW9uLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci1jb21tb24tY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb3pDQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHtUYWJzQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvdGFicy90YWJzLmNvbXBvbmVudCc7Il19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXItY29tbW9uLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci1jb21tb24tY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEseTFDQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHtUYWJzQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvdGFicy90YWJzLmNvbXBvbmVudCc7Il19 \ No newline at end of file diff --git a/dist/libs/common-components/esm2015/lib/common-components.module.js b/dist/libs/common-components/esm2015/lib/common-components.module.js index 0efa76a16..767bc4669 100644 --- a/dist/libs/common-components/esm2015/lib/common-components.module.js +++ b/dist/libs/common-components/esm2015/lib/common-components.module.js @@ -39,7 +39,9 @@ import { ErrorModalComponent } from './error-modal/error-modal.component'; import { PasswordRequiredComponent } from './password-required/password-required.component'; import { ExceptionMessageService } from "./exception-message.service"; import { PasswordService } from "./password.service"; +import { RotationService } from "./rotation.service"; import { ErrorInterceptorService } from "./error-interceptor.service"; +import { CustomHammerConfig } from "./custom-hammer-config"; import { SearchComponent } from './search/search.component'; import { SearchableDirective } from './searchable.directive'; import { SearchService } from "./search.service"; @@ -79,7 +81,9 @@ const providers = [ConfigService, ZoomService, ExceptionMessageService, PasswordService, + RotationService, ErrorInterceptorService, + CustomHammerConfig, SearchService, WindowService, ViewportService, @@ -179,4 +183,4 @@ CommonComponentsModule.decorators = [ ]; /** @nocollapse */ CommonComponentsModule.ctorParameters = () => []; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWNvbXBvbmVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2NvbW1vbi1jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDeEQsT0FBTyxFQUFDLEdBQUcsRUFBRSxhQUFhLEdBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxN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O29CQUNaLG1CQUFtQjtvQkFDbkIsYUFBYTtvQkFDYixlQUFlO29CQUNmLHVCQUF1QjtvQkFDdkIsaUJBQWlCO29CQUNqQixrQkFBa0I7b0JBQ2xCLG9CQUFvQjtvQkFDcEIsbUJBQW1CO29CQUNuQix5QkFBeUI7b0JBQ3pCLGVBQWU7b0JBQ2YsbUJBQW1CO29CQUNuQix1QkFBdUI7b0JBQ3ZCLFlBQVk7b0JBQ1osYUFBYTtvQkFDYixvQkFBb0I7b0JBQ3BCLG1CQUFtQjtvQkFDbkIscUJBQXFCO29CQUNyQixlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsaUJBQWlCO29CQUNqQixxQkFBcUI7b0JBQ3JCLHNCQUFzQjtvQkFDdEIsdUJBQXVCO2lCQUN4QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsbUJBQW1CO29CQUNuQixrQkFBa0I7b0JBQ2xCLGVBQWU7b0JBQ2YsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLGNBQWM7b0JBQ2QseUJBQXlCO29CQUN6QixpQkFBaUI7b0JBQ2pCLGFBQWE7b0JBQ2Isd0JBQXdCO29CQUN4QixpQkFBaUI7b0JBQ2pCLG1CQUFtQjtvQkFDbkIsZ0JBQWdCO29CQUNoQix1QkFBdUI7b0JBQ3ZCLG1CQUFtQjtvQkFDbkIsZUFBZTtvQkFDZixpQkFBaUI7b0JBQ2pCLGtCQUFrQjtvQkFDbEIsb0JBQW9CO29CQUNwQixtQkFBbUI7b0JBQ25CLHlCQUF5QjtvQkFDekIsZUFBZTtvQkFDZixtQkFBbUI7b0JBQ25CLHVCQUF1QjtvQkFDdkIsWUFBWTtvQkFDWixhQUFhO29CQUNiLG9CQUFvQjtvQkFDcEIsbUJBQW1CO29CQUNuQixxQkFBcUI7b0JBQ3JCLG9CQUFvQjtvQkFDcEIsWUFBWTtvQkFDWixpQkFBaUI7b0JBQ2pCLHFCQUFxQjtvQkFDckIsc0JBQXNCO29CQUN0Qix1QkFBdUI7aUJBQ3hCO2dCQUNELFNBQVMsRUFBRSxTQUFTO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VG9wVG9vbGJhckNvbXBvbmVudH0gZnJvbSAnLi90b3AtdG9vbGJhci90b3AtdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtTaWRlUGFuZWxDb21wb25lbnR9IGZyb20gJy4vc2lkZS1wYW5lbC9zaWRlLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQge0J1dHRvbkNvbXBvbmVudH0gZnJvbSAnLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvZ29Db21wb25lbnR9IGZyb20gJy4vbG9nby9sb2dvLmNvbXBvbmVudCc7XG5pbXBvcnQge1Rvb2x0aXBDb21wb25lbnR9IGZyb20gJy4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQge0ZvbnRBd2Vzb21lTW9kdWxlfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQge2xpYnJhcnl9IGZyb20gJ0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZSc7XG5pbXBvcnQge2Zhc30gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7ZmFyfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1yZWd1bGFyLXN2Zy1pY29ucyc7XG5pbXBvcnQge0FwaSwgQ29uZmlnU2VydmljZSx9IGZyb20gXCIuL2NvbmZpZy5zZXJ2aWNlXCI7XG5pbXBvcnQge01vZGFsU2VydmljZX0gZnJvbSBcIi4vbW9kYWwuc2VydmljZVwiO1xuaW1wb3J0IHtNb2RhbENvbXBvbmVudH0gZnJvbSAnLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHtCcm93c2VGaWxlc01vZGFsQ29tcG9uZW50fSBmcm9tICcuL2Jyb3dzZS1maWxlcy1tb2RhbC9icm93c2UtZmlsZXMtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7RmlsZU1vZGVsLCBGaWxlU2VydmljZSwgRmlsZVV0aWx9IGZyb20gXCIuL2ZpbGUuc2VydmljZVwiO1xuaW1wb3J0IHtEb2N1bWVudENvbXBvbmVudH0gZnJvbSAnLi9kb2N1bWVudC9kb2N1bWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtQYWdlQ29tcG9uZW50fSBmcm9tICcuL3BhZ2UvcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtIaWdobGlnaHRTZWFyY2hQaXBlLCBTYW5pdGl6ZUh0bWxQaXBlLCBTYW5pdGl6ZVJlc291cmNlSHRtbFBpcGUsIFNhbml0aXplU3R5bGVQaXBlfSBmcm9tIFwiLi9waXBlc1wiO1xuaW1wb3J0IHtVcGxvYWRGaWxlWm9uZUNvbXBvbmVudH0gZnJvbSAnLi91cGxvYWQtZmlsZS16b25lL3VwbG9hZC1maWxlLXpvbmUuY29tcG9uZW50JztcbmltcG9ydCB7VXBsb2FkRmlsZXNTZXJ2aWNlfSBmcm9tIFwiLi91cGxvYWQtZmlsZXMuc2VydmljZVwiO1xuaW1wb3J0IHtEbmREaXJlY3RpdmV9IGZyb20gJy4vZG5kLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1Njcm9sbGFibGVEaXJlY3RpdmV9IGZyb20gJy4vc2Nyb2xsYWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOYXZpZ2F0ZVNlcnZpY2V9IGZyb20gXCIuL25hdmlnYXRlLnNlcnZpY2VcIjtcbmltcG9ydCB7UGFnZVByZWxvYWRTZXJ2aWNlfSBmcm9tIFwiLi9wYWdlLXByZWxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHtab29tRGlyZWN0aXZlfSBmcm9tICcuL3pvb20uZGlyZWN0aXZlJztcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gXCIuL3pvb20uc2VydmljZVwiO1xuaW1wb3J0IHtTZWxlY3RDb21wb25lbnR9IGZyb20gJy4vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtEaXNhYmxlZEN1cnNvckRpcmVjdGl2ZX0gZnJvbSAnLi9kaXNhYmxlZC1jdXJzb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7Um90YXRpb25EaXJlY3RpdmV9IGZyb20gJy4vcm90YXRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7SW5pdFN0YXRlQ29tcG9uZW50fSBmcm9tICcuL2luaXQtc3RhdGUvaW5pdC1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHtSZW5kZXJQcmludFNlcnZpY2V9IGZyb20gXCIuL3JlbmRlci1wcmludC5zZXJ2aWNlXCI7XG5pbXBvcnQge1JlbmRlclByaW50RGlyZWN0aXZlfSBmcm9tICcuL3JlbmRlci1wcmludC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtFcnJvck1vZGFsQ29tcG9uZW50fSBmcm9tICcuL2Vycm9yLW1vZGFsL2Vycm9yLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQge1Bhc3N3b3JkUmVxdWlyZWRDb21wb25lbnR9IGZyb20gJy4vcGFzc3dvcmQtcmVxdWlyZWQvcGFzc3dvcmQtcmVxdWlyZWQuY29tcG9uZW50JztcbmltcG9ydCB7RXhjZXB0aW9uTWVzc2FnZVNlcnZpY2V9IGZyb20gXCIuL2V4Y2VwdGlvbi1tZXNzYWdlLnNlcnZpY2VcIjtcbmltcG9ydCB7UGFzc3dvcmRTZXJ2aWNlfSBmcm9tIFwiLi9wYXNzd29yZC5zZXJ2aWNlXCI7XG5pbXBvcnQge0Vycm9ySW50ZXJjZXB0b3JTZXJ2aWNlfSBmcm9tIFwiLi9lcnJvci1pbnRlcmNlcHRvci5zZXJ2aWNlXCI7XG5pbXBvcnQge1NlYXJjaENvbXBvbmVudH0gZnJvbSAnLi9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQge1NlYXJjaGFibGVEaXJlY3RpdmV9IGZyb20gJy4vc2VhcmNoYWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtTZWFyY2hTZXJ2aWNlfSBmcm9tIFwiLi9zZWFyY2guc2VydmljZVwiO1xuaW1wb3J0IHtXaW5kb3dTZXJ2aWNlfSBmcm9tIFwiLi93aW5kb3cuc2VydmljZVwiO1xuaW1wb3J0IHtWaWV3cG9ydFNlcnZpY2V9IGZyb20gXCIuL3ZpZXdwb3J0LnNlcnZpY2VcIjtcbmltcG9ydCB7VGFiYmVkVG9vbGJhcnNDb21wb25lbnR9IGZyb20gJy4vdGFiYmVkLXRvb2xiYXJzL3RhYmJlZC10b29sYmFycy5jb21wb25lbnQnO1xuaW1wb3J0IHtUYWJDb21wb25lbnR9IGZyb20gXCIuL3RhYi90YWIuY29tcG9uZW50XCI7XG5pbXBvcnQge1RhYnNDb21wb25lbnR9IGZyb20gXCIuL3RhYnMvdGFicy5jb21wb25lbnRcIjtcbmltcG9ydCB7Rm9ybWF0dGluZ1NlcnZpY2V9IGZyb20gXCIuL2Zvcm1hdHRpbmcuc2VydmljZVwiO1xuaW1wb3J0IHtDb2xvclBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0Zvcm1hdHRpbmdEaXJlY3RpdmV9IGZyb20gJy4vZm9ybWF0dGluZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYWNrRm9ybWF0dGluZ1NlcnZpY2V9IGZyb20gXCIuL2JhY2stZm9ybWF0dGluZy5zZXJ2aWNlXCI7XG5pbXBvcnQge09uQ2xvc2VTZXJ2aWNlfSBmcm9tIFwiLi9vbi1jbG9zZS5zZXJ2aWNlXCI7XG5pbXBvcnQge1N1Y2Nlc3NNb2RhbENvbXBvbmVudH0gZnJvbSAnLi9zdWNjZXNzLW1vZGFsL3N1Y2Nlc3MtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7RWRpdG9yRGlyZWN0aXZlfSBmcm9tICcuL2VkaXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtMb2FkaW5nTWFza0NvbXBvbmVudH0gZnJvbSAnLi9sb2FkaW5nLW1hc2svbG9hZGluZy1tYXNrLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvYWRpbmdNYXNrU2VydmljZX0gZnJvbSAnLi9sb2FkaW5nLW1hc2suc2VydmljZSc7XG5pbXBvcnQge0xvYWRpbmdNYXNrSW50ZXJjZXB0b3JTZXJ2aWNlfSBmcm9tIFwiLi9sb2FkaW5nLW1hc2staW50ZXJjZXB0b3Iuc2VydmljZVwiO1xuaW1wb3J0IHtUYWJBY3RpdmF0b3JTZXJ2aWNlfSBmcm9tIFwiLi90YWItYWN0aXZhdG9yLnNlcnZpY2VcIjtcbmltcG9ydCB7IERyb3BEb3duQ29tcG9uZW50LERyb3BEb3duSXRlbUNvbXBvbmVudCxEcm9wRG93bkl0ZW1zQ29tcG9uZW50LERyb3BEb3duVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9kcm9wLWRvd24vZHJvcC1kb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVNb2R1bGUgfSBmcm9tICduZy1jbGljay1vdXRzaWRlJztcblxuY29uc3QgcHJvdmlkZXJzID0gW0NvbmZpZ1NlcnZpY2UsXG4gIEFwaSxcbiAgTW9kYWxTZXJ2aWNlLFxuICBGaWxlU2VydmljZSxcbiAgRmlsZU1vZGVsLFxuICBGaWxlVXRpbCxcbiAgU2FuaXRpemVIdG1sUGlwZSxcbiAgU2FuaXRpemVSZXNvdXJjZUh0bWxQaXBlLFxuICBTYW5pdGl6ZVN0eWxlUGlwZSxcbiAgSGlnaGxpZ2h0U2VhcmNoUGlwZSxcbiAgVXBsb2FkRmlsZXNTZXJ2aWNlLFxuICBSZW5kZXJQcmludFNlcnZpY2UsXG4gIE5hdmlnYXRlU2VydmljZSxcbiAgUGFnZVByZWxvYWRTZXJ2aWNlLFxuICBab29tU2VydmljZSxcbiAgRXhjZXB0aW9uTWVzc2FnZVNlcnZpY2UsXG4gIFBhc3N3b3JkU2VydmljZSxcbiAgRXJyb3JJbnRlcmNlcHRvclNlcnZpY2UsXG4gIFNlYXJjaFNlcnZpY2UsXG4gIFdpbmRvd1NlcnZpY2UsXG4gIFZpZXdwb3J0U2VydmljZSxcbiAgRm9ybWF0dGluZ1NlcnZpY2UsXG4gIEJhY2tGb3JtYXR0aW5nU2VydmljZSxcbiAgT25DbG9zZVNlcnZpY2UsXG4gIExvYWRpbmdNYXNrSW50ZXJjZXB0b3JTZXJ2aWNlLFxuICBMb2FkaW5nTWFza1NlcnZpY2UsXG4gIFRhYkFjdGl2YXRvclNlcnZpY2VdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZSwgQ2xpY2tPdXRzaWRlTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVG9wVG9vbGJhckNvbXBvbmVudCxcbiAgICBTaWRlUGFuZWxDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIExvZ29Db21wb25lbnQsXG4gICAgVG9vbHRpcENvbXBvbmVudCxcbiAgICBNb2RhbENvbXBvbmVudCxcbiAgICBCcm93c2VGaWxlc01vZGFsQ29tcG9uZW50LFxuICAgIERvY3VtZW50Q29tcG9uZW50LFxuICAgIFBhZ2VDb21wb25lbnQsXG4gICAgU2FuaXRpemVIdG1sUGlwZSxcbiAgICBTYW5pdGl6ZVJlc291cmNlSHRtbFBpcGUsXG4gICAgU2FuaXRpemVTdHlsZVBpcGUsXG4gICAgSGlnaGxpZ2h0U2VhcmNoUGlwZSxcbiAgICBVcGxvYWRGaWxlWm9uZUNvbXBvbmVudCxcbiAgICBEbmREaXJlY3RpdmUsXG4gICAgU2Nyb2xsYWJsZURpcmVjdGl2ZSxcbiAgICBab29tRGlyZWN0aXZlLFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBEaXNhYmxlZEN1cnNvckRpcmVjdGl2ZSxcbiAgICBSb3RhdGlvbkRpcmVjdGl2ZSxcbiAgICBJbml0U3RhdGVDb21wb25lbnQsXG4gICAgUmVuZGVyUHJpbnREaXJlY3RpdmUsXG4gICAgRXJyb3JNb2RhbENvbXBvbmVudCxcbiAgICBQYXNzd29yZFJlcXVpcmVkQ29tcG9uZW50LFxuICAgIFNlYXJjaENvbXBvbmVudCxcbiAgICBTZWFyY2hhYmxlRGlyZWN0aXZlLFxuICAgIFRhYmJlZFRvb2xiYXJzQ29tcG9uZW50LFxuICAgIFRhYkNvbXBvbmVudCxcbiAgICBUYWJzQ29tcG9uZW50LFxuICAgIENvbG9yUGlja2VyQ29tcG9uZW50LFxuICAgIEZvcm1hdHRpbmdEaXJlY3RpdmUsXG4gICAgU3VjY2Vzc01vZGFsQ29tcG9uZW50LFxuICAgIEVkaXRvckRpcmVjdGl2ZSxcbiAgICBMb2FkaW5nTWFza0NvbXBvbmVudCxcbiAgICBEcm9wRG93bkNvbXBvbmVudCxcbiAgICBEcm9wRG93bkl0ZW1Db21wb25lbnQsXG4gICAgRHJvcERvd25JdGVtc0NvbXBvbmVudCxcbiAgICBEcm9wRG93blRvZ2dsZUNvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVG9wVG9vbGJhckNvbXBvbmVudCxcbiAgICBTaWRlUGFuZWxDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIExvZ29Db21wb25lbnQsXG4gICAgVG9vbHRpcENvbXBvbmVudCxcbiAgICBNb2RhbENvbXBvbmVudCxcbiAgICBCcm93c2VGaWxlc01vZGFsQ29tcG9uZW50LFxuICAgIERvY3VtZW50Q29tcG9uZW50LFxuICAgIFBhZ2VDb21wb25lbnQsXG4gICAgU2FuaXRpemVSZXNvdXJjZUh0bWxQaXBlLFxuICAgIFNhbml0aXplU3R5bGVQaXBlLFxuICAgIEhpZ2hsaWdodFNlYXJjaFBpcGUsXG4gICAgU2FuaXRpemVIdG1sUGlwZSxcbiAgICBVcGxvYWRGaWxlWm9uZUNvbXBvbmVudCxcbiAgICBTY3JvbGxhYmxlRGlyZWN0aXZlLFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBSb3RhdGlvbkRpcmVjdGl2ZSxcbiAgICBJbml0U3RhdGVDb21wb25lbnQsXG4gICAgUmVuZGVyUHJpbnREaXJlY3RpdmUsXG4gICAgRXJyb3JNb2RhbENvbXBvbmVudCxcbiAgICBQYXNzd29yZFJlcXVpcmVkQ29tcG9uZW50LFxuICAgIFNlYXJjaENvbXBvbmVudCxcbiAgICBTZWFyY2hhYmxlRGlyZWN0aXZlLFxuICAgIFRhYmJlZFRvb2xiYXJzQ29tcG9uZW50LFxuICAgIFRhYkNvbXBvbmVudCxcbiAgICBUYWJzQ29tcG9uZW50LFxuICAgIENvbG9yUGlja2VyQ29tcG9uZW50LFxuICAgIEZvcm1hdHRpbmdEaXJlY3RpdmUsXG4gICAgU3VjY2Vzc01vZGFsQ29tcG9uZW50LFxuICAgIExvYWRpbmdNYXNrQ29tcG9uZW50LFxuICAgIERuZERpcmVjdGl2ZSxcbiAgICBEcm9wRG93bkNvbXBvbmVudCxcbiAgICBEcm9wRG93bkl0ZW1Db21wb25lbnQsXG4gICAgRHJvcERvd25JdGVtc0NvbXBvbmVudCxcbiAgICBEcm9wRG93blRvZ2dsZUNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IHByb3ZpZGVyc1xufSlcbmV4cG9ydCBjbGFzcyBDb21tb25Db21wb25lbnRzTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgbGlicmFyeS5hZGQoZmFzLCBmYXIpO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWNvbXBvbmVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2NvbW1vbi1jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDeEQsT0FBTyxFQUFDLEdBQUcsRUFBRSxhQUFhLEdBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxN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aUJBQ3hCO2dCQUNELFNBQVMsRUFBRSxTQUFTO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1RvcFRvb2xiYXJDb21wb25lbnR9IGZyb20gJy4vdG9wLXRvb2xiYXIvdG9wLXRvb2xiYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtTaWRlUGFuZWxDb21wb25lbnR9IGZyb20gJy4vc2lkZS1wYW5lbC9zaWRlLXBhbmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QnV0dG9uQ29tcG9uZW50fSBmcm9tICcuL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHtMb2dvQ29tcG9uZW50fSBmcm9tICcuL2xvZ28vbG9nby5jb21wb25lbnQnO1xyXG5pbXBvcnQge1Rvb2x0aXBDb21wb25lbnR9IGZyb20gJy4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Rm9udEF3ZXNvbWVNb2R1bGV9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcclxuaW1wb3J0IHtsaWJyYXJ5fSBmcm9tICdAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUnO1xyXG5pbXBvcnQge2Zhc30gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcclxuaW1wb3J0IHtmYXJ9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXJlZ3VsYXItc3ZnLWljb25zJztcclxuaW1wb3J0IHtBcGksIENvbmZpZ1NlcnZpY2UsfSBmcm9tIFwiLi9jb25maWcuc2VydmljZVwiO1xyXG5pbXBvcnQge01vZGFsU2VydmljZX0gZnJvbSBcIi4vbW9kYWwuc2VydmljZVwiO1xyXG5pbXBvcnQge01vZGFsQ29tcG9uZW50fSBmcm9tICcuL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QnJvd3NlRmlsZXNNb2RhbENvbXBvbmVudH0gZnJvbSAnLi9icm93c2UtZmlsZXMtbW9kYWwvYnJvd3NlLWZpbGVzLW1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RmlsZU1vZGVsLCBGaWxlU2VydmljZSwgRmlsZVV0aWx9IGZyb20gXCIuL2ZpbGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0RvY3VtZW50Q29tcG9uZW50fSBmcm9tICcuL2RvY3VtZW50L2RvY3VtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UGFnZUNvbXBvbmVudH0gZnJvbSAnLi9wYWdlL3BhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtIaWdobGlnaHRTZWFyY2hQaXBlLCBTYW5pdGl6ZUh0bWxQaXBlLCBTYW5pdGl6ZVJlc291cmNlSHRtbFBpcGUsIFNhbml0aXplU3R5bGVQaXBlfSBmcm9tIFwiLi9waXBlc1wiO1xyXG5pbXBvcnQge1VwbG9hZEZpbGVab25lQ29tcG9uZW50fSBmcm9tICcuL3VwbG9hZC1maWxlLXpvbmUvdXBsb2FkLWZpbGUtem9uZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1VwbG9hZEZpbGVzU2VydmljZX0gZnJvbSBcIi4vdXBsb2FkLWZpbGVzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEbmREaXJlY3RpdmV9IGZyb20gJy4vZG5kLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7U2Nyb2xsYWJsZURpcmVjdGl2ZX0gZnJvbSAnLi9zY3JvbGxhYmxlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7TmF2aWdhdGVTZXJ2aWNlfSBmcm9tIFwiLi9uYXZpZ2F0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UGFnZVByZWxvYWRTZXJ2aWNlfSBmcm9tIFwiLi9wYWdlLXByZWxvYWQuc2VydmljZVwiO1xyXG5pbXBvcnQge1pvb21EaXJlY3RpdmV9IGZyb20gJy4vem9vbS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tIFwiLi96b29tLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTZWxlY3RDb21wb25lbnR9IGZyb20gJy4vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Rpc2FibGVkQ3Vyc29yRGlyZWN0aXZlfSBmcm9tICcuL2Rpc2FibGVkLWN1cnNvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1JvdGF0aW9uRGlyZWN0aXZlfSBmcm9tICcuL3JvdGF0aW9uLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7SW5pdFN0YXRlQ29tcG9uZW50fSBmcm9tICcuL2luaXQtc3RhdGUvaW5pdC1zdGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JlbmRlclByaW50U2VydmljZX0gZnJvbSBcIi4vcmVuZGVyLXByaW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZW5kZXJQcmludERpcmVjdGl2ZX0gZnJvbSAnLi9yZW5kZXItcHJpbnQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtFcnJvck1vZGFsQ29tcG9uZW50fSBmcm9tICcuL2Vycm9yLW1vZGFsL2Vycm9yLW1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UGFzc3dvcmRSZXF1aXJlZENvbXBvbmVudH0gZnJvbSAnLi9wYXNzd29yZC1yZXF1aXJlZC9wYXNzd29yZC1yZXF1aXJlZC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0V4Y2VwdGlvbk1lc3NhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9leGNlcHRpb24tbWVzc2FnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UGFzc3dvcmRTZXJ2aWNlfSBmcm9tIFwiLi9wYXNzd29yZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Um90YXRpb25TZXJ2aWNlfSBmcm9tIFwiLi9yb3RhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RXJyb3JJbnRlcmNlcHRvclNlcnZpY2V9IGZyb20gXCIuL2Vycm9yLWludGVyY2VwdG9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtDdXN0b21IYW1tZXJDb25maWd9IGZyb20gXCIuL2N1c3RvbS1oYW1tZXItY29uZmlnXCI7XHJcbmltcG9ydCB7U2VhcmNoQ29tcG9uZW50fSBmcm9tICcuL3NlYXJjaC9zZWFyY2guY29tcG9uZW50JztcclxuaW1wb3J0IHtTZWFyY2hhYmxlRGlyZWN0aXZlfSBmcm9tICcuL3NlYXJjaGFibGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtTZWFyY2hTZXJ2aWNlfSBmcm9tIFwiLi9zZWFyY2guc2VydmljZVwiO1xyXG5pbXBvcnQge1dpbmRvd1NlcnZpY2V9IGZyb20gXCIuL3dpbmRvdy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Vmlld3BvcnRTZXJ2aWNlfSBmcm9tIFwiLi92aWV3cG9ydC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VGFiYmVkVG9vbGJhcnNDb21wb25lbnR9IGZyb20gJy4vdGFiYmVkLXRvb2xiYXJzL3RhYmJlZC10b29sYmFycy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RhYkNvbXBvbmVudH0gZnJvbSBcIi4vdGFiL3RhYi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUYWJzQ29tcG9uZW50fSBmcm9tIFwiLi90YWJzL3RhYnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Rm9ybWF0dGluZ1NlcnZpY2V9IGZyb20gXCIuL2Zvcm1hdHRpbmcuc2VydmljZVwiO1xyXG5pbXBvcnQge0NvbG9yUGlja2VyQ29tcG9uZW50fSBmcm9tICcuL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtGb3JtYXR0aW5nRGlyZWN0aXZlfSBmcm9tICcuL2Zvcm1hdHRpbmcuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtCYWNrRm9ybWF0dGluZ1NlcnZpY2V9IGZyb20gXCIuL2JhY2stZm9ybWF0dGluZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7T25DbG9zZVNlcnZpY2V9IGZyb20gXCIuL29uLWNsb3NlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdWNjZXNzTW9kYWxDb21wb25lbnR9IGZyb20gJy4vc3VjY2Vzcy1tb2RhbC9zdWNjZXNzLW1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RWRpdG9yRGlyZWN0aXZlfSBmcm9tICcuL2VkaXRvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge0xvYWRpbmdNYXNrQ29tcG9uZW50fSBmcm9tICcuL2xvYWRpbmctbWFzay9sb2FkaW5nLW1hc2suY29tcG9uZW50JztcclxuaW1wb3J0IHtMb2FkaW5nTWFza1NlcnZpY2V9IGZyb20gJy4vbG9hZGluZy1tYXNrLnNlcnZpY2UnO1xyXG5pbXBvcnQge0xvYWRpbmdNYXNrSW50ZXJjZXB0b3JTZXJ2aWNlfSBmcm9tIFwiLi9sb2FkaW5nLW1hc2staW50ZXJjZXB0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge1RhYkFjdGl2YXRvclNlcnZpY2V9IGZyb20gXCIuL3RhYi1hY3RpdmF0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEcm9wRG93bkNvbXBvbmVudCxEcm9wRG93bkl0ZW1Db21wb25lbnQsRHJvcERvd25JdGVtc0NvbXBvbmVudCxEcm9wRG93blRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vZHJvcC1kb3duL2Ryb3AtZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbGlja091dHNpZGVNb2R1bGUgfSBmcm9tICduZy1jbGljay1vdXRzaWRlJztcclxuXHJcbmNvbnN0IHByb3ZpZGVycyA9IFtDb25maWdTZXJ2aWNlLFxyXG4gIEFwaSxcclxuICBNb2RhbFNlcnZpY2UsXHJcbiAgRmlsZVNlcnZpY2UsXHJcbiAgRmlsZU1vZGVsLFxyXG4gIEZpbGVVdGlsLFxyXG4gIFNhbml0aXplSHRtbFBpcGUsXHJcbiAgU2FuaXRpemVSZXNvdXJjZUh0bWxQaXBlLFxyXG4gIFNhbml0aXplU3R5bGVQaXBlLFxyXG4gIEhpZ2hsaWdodFNlYXJjaFBpcGUsXHJcbiAgVXBsb2FkRmlsZXNTZXJ2aWNlLFxyXG4gIFJlbmRlclByaW50U2VydmljZSxcclxuICBOYXZpZ2F0ZVNlcnZpY2UsXHJcbiAgUGFnZVByZWxvYWRTZXJ2aWNlLFxyXG4gIFpvb21TZXJ2aWNlLFxyXG4gIEV4Y2VwdGlvbk1lc3NhZ2VTZXJ2aWNlLFxyXG4gIFBhc3N3b3JkU2VydmljZSxcclxuICBSb3RhdGlvblNlcnZpY2UsXHJcbiAgRXJyb3JJbnRlcmNlcHRvclNlcnZpY2UsXHJcbiAgQ3VzdG9tSGFtbWVyQ29uZmlnLFxyXG4gIFNlYXJjaFNlcnZpY2UsXHJcbiAgV2luZG93U2VydmljZSxcclxuICBWaWV3cG9ydFNlcnZpY2UsXHJcbiAgRm9ybWF0dGluZ1NlcnZpY2UsXHJcbiAgQmFja0Zvcm1hdHRpbmdTZXJ2aWNlLFxyXG4gIE9uQ2xvc2VTZXJ2aWNlLFxyXG4gIExvYWRpbmdNYXNrSW50ZXJjZXB0b3JTZXJ2aWNlLFxyXG4gIExvYWRpbmdNYXNrU2VydmljZSxcclxuICBUYWJBY3RpdmF0b3JTZXJ2aWNlXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9udEF3ZXNvbWVNb2R1bGUsIENsaWNrT3V0c2lkZU1vZHVsZV0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUb3BUb29sYmFyQ29tcG9uZW50LFxyXG4gICAgU2lkZVBhbmVsQ29tcG9uZW50LFxyXG4gICAgQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgTG9nb0NvbXBvbmVudCxcclxuICAgIFRvb2x0aXBDb21wb25lbnQsXHJcbiAgICBNb2RhbENvbXBvbmVudCxcclxuICAgIEJyb3dzZUZpbGVzTW9kYWxDb21wb25lbnQsXHJcbiAgICBEb2N1bWVudENvbXBvbmVudCxcclxuICAgIFBhZ2VDb21wb25lbnQsXHJcbiAgICBTYW5pdGl6ZUh0bWxQaXBlLFxyXG4gICAgU2FuaXRpemVSZXNvdXJjZUh0bWxQaXBlLFxyXG4gICAgU2FuaXRpemVTdHlsZVBpcGUsXHJcbiAgICBIaWdobGlnaHRTZWFyY2hQaXBlLFxyXG4gICAgVXBsb2FkRmlsZVpvbmVDb21wb25lbnQsXHJcbiAgICBEbmREaXJlY3RpdmUsXHJcbiAgICBTY3JvbGxhYmxlRGlyZWN0aXZlLFxyXG4gICAgWm9vbURpcmVjdGl2ZSxcclxuICAgIFNlbGVjdENvbXBvbmVudCxcclxuICAgIERpc2FibGVkQ3Vyc29yRGlyZWN0aXZlLFxyXG4gICAgUm90YXRpb25EaXJlY3RpdmUsXHJcbiAgICBJbml0U3RhdGVDb21wb25lbnQsXHJcbiAgICBSZW5kZXJQcmludERpcmVjdGl2ZSxcclxuICAgIEVycm9yTW9kYWxDb21wb25lbnQsXHJcbiAgICBQYXNzd29yZFJlcXVpcmVkQ29tcG9uZW50LFxyXG4gICAgU2VhcmNoQ29tcG9uZW50LFxyXG4gICAgU2VhcmNoYWJsZURpcmVjdGl2ZSxcclxuICAgIFRhYmJlZFRvb2xiYXJzQ29tcG9uZW50LFxyXG4gICAgVGFiQ29tcG9uZW50LFxyXG4gICAgVGFic0NvbXBvbmVudCxcclxuICAgIENvbG9yUGlja2VyQ29tcG9uZW50LFxyXG4gICAgRm9ybWF0dGluZ0RpcmVjdGl2ZSxcclxuICAgIFN1Y2Nlc3NNb2RhbENvbXBvbmVudCxcclxuICAgIEVkaXRvckRpcmVjdGl2ZSxcclxuICAgIExvYWRpbmdNYXNrQ29tcG9uZW50LFxyXG4gICAgRHJvcERvd25Db21wb25lbnQsXHJcbiAgICBEcm9wRG93bkl0ZW1Db21wb25lbnQsXHJcbiAgICBEcm9wRG93bkl0ZW1zQ29tcG9uZW50LFxyXG4gICAgRHJvcERvd25Ub2dnbGVDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFRvcFRvb2xiYXJDb21wb25lbnQsXHJcbiAgICBTaWRlUGFuZWxDb21wb25lbnQsXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBMb2dvQ29tcG9uZW50LFxyXG4gICAgVG9vbHRpcENvbXBvbmVudCxcclxuICAgIE1vZGFsQ29tcG9uZW50LFxyXG4gICAgQnJvd3NlRmlsZXNNb2RhbENvbXBvbmVudCxcclxuICAgIERvY3VtZW50Q29tcG9uZW50LFxyXG4gICAgUGFnZUNvbXBvbmVudCxcclxuICAgIFNhbml0aXplUmVzb3VyY2VIdG1sUGlwZSxcclxuICAgIFNhbml0aXplU3R5bGVQaXBlLFxyXG4gICAgSGlnaGxpZ2h0U2VhcmNoUGlwZSxcclxuICAgIFNhbml0aXplSHRtbFBpcGUsXHJcbiAgICBVcGxvYWRGaWxlWm9uZUNvbXBvbmVudCxcclxuICAgIFNjcm9sbGFibGVEaXJlY3RpdmUsXHJcbiAgICBTZWxlY3RDb21wb25lbnQsXHJcbiAgICBSb3RhdGlvbkRpcmVjdGl2ZSxcclxuICAgIEluaXRTdGF0ZUNvbXBvbmVudCxcclxuICAgIFJlbmRlclByaW50RGlyZWN0aXZlLFxyXG4gICAgRXJyb3JNb2RhbENvbXBvbmVudCxcclxuICAgIFBhc3N3b3JkUmVxdWlyZWRDb21wb25lbnQsXHJcbiAgICBTZWFyY2hDb21wb25lbnQsXHJcbiAgICBTZWFyY2hhYmxlRGlyZWN0aXZlLFxyXG4gICAgVGFiYmVkVG9vbGJhcnNDb21wb25lbnQsXHJcbiAgICBUYWJDb21wb25lbnQsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgQ29sb3JQaWNrZXJDb21wb25lbnQsXHJcbiAgICBGb3JtYXR0aW5nRGlyZWN0aXZlLFxyXG4gICAgU3VjY2Vzc01vZGFsQ29tcG9uZW50LFxyXG4gICAgTG9hZGluZ01hc2tDb21wb25lbnQsXHJcbiAgICBEbmREaXJlY3RpdmUsXHJcbiAgICBEcm9wRG93bkNvbXBvbmVudCxcclxuICAgIERyb3BEb3duSXRlbUNvbXBvbmVudCxcclxuICAgIERyb3BEb3duSXRlbXNDb21wb25lbnQsXHJcbiAgICBEcm9wRG93blRvZ2dsZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBwcm92aWRlcnNcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbW1vbkNvbXBvbmVudHNNb2R1bGUge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgbGlicmFyeS5hZGQoZmFzLCBmYXIpO1xyXG4gIH1cclxufVxyXG4iXX0= \ No newline at end of file diff --git a/dist/libs/common-components/esm2015/lib/custom-hammer-config.js b/dist/libs/common-components/esm2015/lib/custom-hammer-config.js new file mode 100644 index 000000000..8d79a79fa --- /dev/null +++ b/dist/libs/common-components/esm2015/lib/custom-hammer-config.js @@ -0,0 +1,29 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { HammerGestureConfig } from '@angular/platform-browser'; +import * as Hammer from 'hammerjs'; +export class CustomHammerConfig extends HammerGestureConfig { + constructor() { + super(...arguments); + this.overrides = (/** @type {?} */ ({ + // override default settings + 'pinch': { + direction: Hammer.DIRECTION_ALL, + enable: true, + dropRecognizeWith: 'rotate' + }, + 'rotate': { + direction: Hammer.DIRECTION_ALL, + enable: true, + requireFailure: 'pinch' + } + })); + } +} +if (false) { + /** @type {?} */ + CustomHammerConfig.prototype.overrides; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWhhbW1lci1jb25maWcuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvY3VzdG9tLWhhbW1lci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBRW5DLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxtQkFBbUI7SUFBM0Q7O1FBQ0ksY0FBUyxHQUFHLG1CQUFLOztZQUViLE9BQU8sRUFBRTtnQkFDTCxTQUFTLEVBQUUsTUFBTSxDQUFDLGFBQWE7Z0JBQy9CLE1BQU0sRUFBRSxJQUFJO2dCQUNaLGlCQUFpQixFQUFFLFFBQVE7YUFDOUI7WUFDRCxRQUFRLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLE1BQU0sQ0FBQyxhQUFhO2dCQUMvQixNQUFNLEVBQUUsSUFBSTtnQkFDWixjQUFjLEVBQUUsT0FBTzthQUMxQjtTQUNKLEVBQUEsQ0FBQztJQUNOLENBQUM7Q0FBQTs7O0lBYkcsdUNBWUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYW1tZXJHZXN0dXJlQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCAqIGFzIEhhbW1lciBmcm9tICdoYW1tZXJqcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tSGFtbWVyQ29uZmlnIGV4dGVuZHMgSGFtbWVyR2VzdHVyZUNvbmZpZyB7XHJcbiAgICBvdmVycmlkZXMgPSA8YW55PntcclxuICAgICAgICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBzZXR0aW5nc1xyXG4gICAgICAgICdwaW5jaCc6IHtcclxuICAgICAgICAgICAgZGlyZWN0aW9uOiBIYW1tZXIuRElSRUNUSU9OX0FMTCxcclxuICAgICAgICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBkcm9wUmVjb2duaXplV2l0aDogJ3JvdGF0ZSdcclxuICAgICAgICB9LFxyXG4gICAgICAgICdyb3RhdGUnOiB7XHJcbiAgICAgICAgICAgIGRpcmVjdGlvbjogSGFtbWVyLkRJUkVDVElPTl9BTEwsXHJcbiAgICAgICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgcmVxdWlyZUZhaWx1cmU6ICdwaW5jaCdcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59Il19 \ No newline at end of file diff --git a/dist/libs/common-components/esm2015/lib/document/document.component.js b/dist/libs/common-components/esm2015/lib/document/document.component.js index 12ca7fe0e..844d08091 100644 --- a/dist/libs/common-components/esm2015/lib/document/document.component.js +++ b/dist/libs/common-components/esm2015/lib/document/document.component.js @@ -10,16 +10,19 @@ import * as jquery from 'jquery'; const $ = jquery; import * as Hammer from 'hammerjs'; import { WindowService } from '../window.service'; +import { RotationService } from '../rotation.service'; export class DocumentComponent { /** * @param {?} _elementRef * @param {?} _zoomService * @param {?} _windowService + * @param {?} _rotationServcie */ - constructor(_elementRef, _zoomService, _windowService) { + constructor(_elementRef, _zoomService, _windowService, _rotationServcie) { this._elementRef = _elementRef; this._zoomService = _zoomService; this._windowService = _windowService; + this._rotationServcie = _rotationServcie; this.wait = false; this.docWidth = null; this.docHeight = null; @@ -241,6 +244,7 @@ export class DocumentComponent { * @return {?} */ onPinch($event) { + console.log("pinch"); if (this.pinchCenter === null) { this.pinchCenter = this.rawCenter($event); /** @type {?} */ @@ -264,6 +268,7 @@ export class DocumentComponent { * @return {?} */ onPinchEnd($event) { + console.log("pinchEnd"); this.updateLastScale(); this.updateLastPos(); this.pinchCenter = null; @@ -300,11 +305,43 @@ export class DocumentComponent { } } } + /** + * @param {?} $event + * @return {?} + */ + onRotateStart($event) { + this.initialRotation = $event.rotation; + console.log("rotateStart: " + $event.rotation + ' ' + $event.angle); + } + /** + * @param {?} $event + * @return {?} + */ + onRotateEnd($event) { + console.log("rotateEnd: " + $event.rotation + ' ' + $event.angle); + if ($event.rotation > 0 && this.initialRotation > 0) { + if ($event.rotation > this.initialRotation && ($event.rotation - this.initialRotation > 45)) { + this._rotationServcie.setRotationAngle(90); + } + else if ($event.rotation < this.initialRotation && (this.initialRotation - $event.rotation > 45)) { + this._rotationServcie.setRotationAngle(-90); + } + } + // case with negative values + else { + if (this.initialRotation > $event.rotation && ($event.rotation - this.initialRotation > 45)) { + this._rotationServcie.setRotationAngle(-90); + } + else if (this.initialRotation < $event.rotation && (this.initialRotation - $event.rotation > 45)) { + this._rotationServcie.setRotationAngle(90); + } + } + } } DocumentComponent.decorators = [ { type: Component, args: [{ selector: 'gd-document', - template: "
Please wait...
\n
\n
\n
\n \n
\n
\n \n
\n", + template: "
Please wait...
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n", styles: [":host{flex:1;transition:.4s;background-color:#e7e7e7;height:100%;overflow:scroll}.page{display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.page.excel{overflow:auto}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:flex-start}.panzoom.mobile{overflow:scroll}@media (max-width:1037px){.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] }] } ]; @@ -312,7 +349,8 @@ DocumentComponent.decorators = [ DocumentComponent.ctorParameters = () => [ { type: ElementRef }, { type: ZoomService }, - { type: WindowService } + { type: WindowService }, + { type: RotationService } ]; DocumentComponent.propDecorators = { mode: [{ type: Input }], @@ -364,6 +402,8 @@ if (false) { DocumentComponent.prototype.curHeight; /** @type {?} */ DocumentComponent.prototype.isDesktop; + /** @type {?} */ + DocumentComponent.prototype.initialRotation; /** * @type {?} * @private @@ -379,6 +419,11 @@ if (false) { * @private */ DocumentComponent.prototype._windowService; + /** + * @type {?} + * @private + */ + DocumentComponent.prototype._rotationServcie; /* Skipping unhandled member: ;*/ /* Skipping unhandled member: ;*/ /* Skipping unhandled member: ;*/ @@ -388,4 +433,4 @@ if (false) { /* Skipping unhandled member: ;*/ /* Skipping unhandled member: ;*/ } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2RvY3VtZW50L2RvY3VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdLLE1BQU0sZUFBZSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxlQUFlLEVBQUUsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOztNQUMzQixDQUFDLEdBQUcsTUFBTTtBQUNoQixPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFPbEQsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7O0lBMEI1QixZQUFvQixXQUFvQyxFQUNwQyxZQUF5QixFQUN6QixjQUE2QjtRQUY3QixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUF2QmpELFNBQUksR0FBRyxLQUFLLENBQUM7UUFHYixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsVUFBSyxHQUFHLElBQUksQ0FBQztRQUNiLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixRQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ1gsTUFBQyxHQUFHLENBQUMsQ0FBQztRQUNOLFVB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SUFFRCxRQUFRLENBQUMsTUFBTTtRQUNiLHlCQUF5QjtRQUN6QiwwQkFBMEI7UUFDMUIsSUFBSTtJQUNOLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLE1BQU07UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRTs7c0JBQ25CLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7SUFDSCxDQUFDOzs7WUFsT0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2QixxOUJBQXdDOzthQUV6Qzs7OztZQWhCQyxVQUFVO1lBTUosV0FBVztZQUlWLGFBQWE7OzttQkFTbkIsS0FBSzsrQkFDTCxLQUFLO21CQUNMLEtBQUs7Ozs7SUFGTixpQ0FBdUI7O0lBQ3ZCLDZDQUFrQzs7SUFDbEMsaUNBQStCOztJQUMvQixpQ0FBYTs7SUFDYixpQ0FBYTs7SUFFYixxQ0FBZ0I7O0lBQ2hCLHNDQUFpQjs7SUFDakIsMENBQXFCOztJQUNyQiwyQ0FBc0I7O0lBQ3RCLGtDQUFhOztJQUNiLHNDQUFpQjs7SUFDakIsc0NBQWlCOztJQUNqQixnQ0FBVzs7SUFDWCw4QkFBTTs7SUFDTixrQ0FBVTs7SUFDViw4QkFBTTs7SUFDTixrQ0FBVTs7SUFDVix3Q0FBbUI7O0lBQ25CLDhDQUF5Qjs7SUFDekIscUNBQWE7O0lBQ2Isc0NBQWM7O0lBQ2Qsc0NBQW1COzs7OztJQUVQLHdDQUE0Qzs7Ozs7SUFDNUMseUNBQWlDOzs7OztJQUNqQywyQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIE9uQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ZpbGVEZXNjcmlwdGlvbiwgRmlsZVV0aWx9IGZyb20gXCIuLi9maWxlLnNlcnZpY2VcIjtcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gXCIuLi96b29tLnNlcnZpY2VcIjtcbmltcG9ydCAqIGFzIGpxdWVyeSBmcm9tICdqcXVlcnknO1xuY29uc3QgJCA9IGpxdWVyeTtcbmltcG9ydCAqIGFzIEhhbW1lciBmcm9tICdoYW1tZXJqcyc7XG5pbXBvcnQgeyBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vd2luZG93LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZC1kb2N1bWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50LmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgbW9kZTogYm9vbGVhbjtcbiAgQElucHV0KCkgcHJlbG9hZFBhZ2VDb3VudDogbnVtYmVyO1xuICBASW5wdXQoKSBmaWxlOiBGaWxlRGVzY3JpcHRpb247XG4gIHdhaXQgPSBmYWxzZTtcbiAgem9vbTogbnVtYmVyO1xuXG4gIGRvY1dpZHRoID0gbnVsbDtcbiAgZG9jSGVpZ2h0ID0gbnVsbDtcbiAgdmlld3BvcnRXaWR0aCA9IG51bGw7XG4gIHZpZXdwb3J0SGVpZ2h0ID0gbnVsbDtcbiAgc2NhbGUgPSBudWxsO1xuICBsYXN0U2NhbGUgPSBudWxsO1xuICBjb250YWluZXIgPSBudWxsO1xuICBkb2MgPSBudWxsO1xuICB4ID0gMDtcbiAgbGFzdFggPSAwO1xuICB5ID0gMDtcbiAgbGFzdFkgPSAwO1xuICBwaW5jaENlbnRlciA9IG51bGw7XG4gIHBpbmNoQ2VudGVyT2Zmc2V0ID0gbnVsbDtcbiAgY3VyV2lkdGggPSAwO1xuICBjdXJIZWlnaHQgPSAwO1xuICBpc0Rlc2t0b3A6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX3pvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd2luZG93U2VydmljZTogV2luZG93U2VydmljZSkge1xuXG4gICAgX3pvb21TZXJ2aWNlLnpvb21DaGFuZ2Uuc3Vic2NyaWJlKCh2YWw6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy56b29tID0gdmFsO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pc0Rlc2t0b3AgPSBfd2luZG93U2VydmljZS5pc0Rlc2t0b3AoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgY29uc3QgcGFuem9vbSA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5pdGVtKDApLmNoaWxkcmVuLml0ZW0oMCk7XG4gICAgKHBhbnpvb20gYXMgYW55KS5zdHlsZS50cmFuc2Zvcm0gPSAnJztcbiAgICAvLyBUT0RPOiB0aGlzIGludGVyc2VjdHMgd2l0aCB6b29taW5nIGJ5IHpvb20gZGlyZWN0aXZlLCBidXQgc3RpbGwgbmVlZGVkXG4gICAgLy8gZm9yIGZsdXNoIHByZXZpb3VzIHNldHRpbmdzIGJlZm9yZSBvcGVuaW5nIGFub3RoZXIgZmlsZVxuICAgIC8vdGhpcy5fem9vbVNlcnZpY2UuY2hhbmdlWm9vbSgxMDApO1xuICAgIC8vdGhpcy5zY2FsZSA9IDE7XG4gIH1cbiAgICBcbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIC8vIEZvciBjdXJyZW50IGl0ZXJhdGlvbiB3ZSB0YWtlIC5wYW56b29tIGFzIGEgZG9jdW1lbnRcbiAgICB0aGlzLmRvYyA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5pdGVtKDApLmNoaWxkcmVuLml0ZW0oMCk7XG4gICAgLy8gRm9yIGN1cnJlbnQgaXRlcmF0aW9uIHdlIHRha2UgLmdkLWRvY3VtZW50IGFzIGEgY29udGFpbmVyXG4gICAgdGhpcy5jb250YWluZXIgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLmRvY1dpZHRoID0gdGhpcy5kb2MuY2xpZW50V2lkdGg7XG4gICAgdGhpcy5kb2NIZWlnaHQgPSB0aGlzLmRvYy5jbGllbnRIZWlnaHQ7XG4gICAgdGhpcy52aWV3cG9ydFdpZHRoID0gdGhpcy5kb2Mub2Zmc2V0V2lkdGg7XG5cbiAgICAvLyBGb3IgY2FzZXMgd2hlcmUgd2UgYWxyZWFkeSBoYXZlIHpvb20gZGVmaW5lZCB3ZSBzaG91bGQgaW5jbHVkZSBpdFxuICAgIHRoaXMuc2NhbGUgPSAodGhpcy52aWV3cG9ydFdpZHRoL3RoaXMuZG9jV2lkdGgpICogdGhpcy5fem9vbVNlcnZpY2Uuem9vbS8xMDA7XG4gICAgXG4gICAgdGhpcy5sYXN0U2NhbGUgPSB0aGlzLnNjYWxlO1xuICAgIHRoaXMudmlld3BvcnRIZWlnaHQgPSB0aGlzLmNvbnRhaW5lci5vZmZzZXRIZWlnaHQ7XG4gICAgdGhpcy5jdXJXaWR0aCA9IHRoaXMuZG9jV2lkdGgqdGhpcy5zY2FsZTtcbiAgICB0aGlzLmN1ckhlaWdodCA9IHRoaXMuZG9jSGVpZ2h0KnRoaXMuc2NhbGU7XG5cbiAgICBjb25zdCBoYW1tZXIgPSBuZXcgSGFtbWVyKHRoaXMuY29udGFpbmVyKTtcbiAgfVxuXG4gIC8vIFRPRE86IHRoaXMgdGVtcG9yYXJ5IGNydXRjaCBmb3IgRXhjZWwgZmlsZXMgc2hvdWxkIGJlIGRvY3VtZW50ZWRcbiAgaWZFeGNlbCgpIHtcbiAgICByZXR1cm4gRmlsZVV0aWwuZmluZCh0aGlzLmZpbGUuZ3VpZCwgZmFsc2UpLmZvcm1hdCA9PT0gXCJNaWNyb3NvZnQgRXhjZWxcIjtcbiAgfVxuXG4gIGdldERpbWVuc2lvbldpdGhVbml0KHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdmFsdWUgKyBGaWxlVXRpbC5maW5kKHRoaXMuZmlsZS5ndWlkLCBmYWxzZSkudW5pdDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50Tm9kZUxpc3RPZiA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ2Qtd3JhcHBlcicpO1xuICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50Tm9kZUxpc3RPZi5pdGVtKDApO1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAkKGVsZW1lbnQpLnRyaWdnZXIoJ2ZvY3VzJyk7XG4gICAgfVxuICB9XG5cbiAgYWJzb2x1dGVQb3NpdGlvbihlbCkge1xuICAgIGxldCB4ID0gMCwgeSA9IDA7XG5cbiAgICB3aGlsZSAoZWwgIT09IG51bGwpIHtcbiAgICAgIHggKz0gZWwub2Zmc2V0TGVmdDtcbiAgICAgIHkgKz0gZWwub2Zmc2V0VG9wO1xuICAgICAgZWwgPSBlbC5vZmZzZXRQYXJlbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgeDogeCwgeTogeSB9O1xuICB9O1xuXG4gIHJlc3RyaWN0UmF3UG9zKHBvcywgdmlld3BvcnREaW0sIGRvY0RpbSkge1xuICAgIGlmIChwb3MgPCB2aWV3cG9ydERpbS90aGlzLnNjYWxlIC0gZG9jRGltKSB7IC8vIHRvbyBmYXIgbGVmdC91cD9cbiAgICAgIHBvcyA9IHZpZXdwb3J0RGltL3RoaXMuc2NhbGUgLSBkb2NEaW07XG4gICAgfSBlbHNlIGlmIChwb3MgPiAwKSB7IC8vIHRvbyBmYXIgcmlnaHQvZG93bj9cbiAgICAgIHBvcyA9IDA7XG4gICAgfVxuICAgIHJldHVybiBwb3M7XG4gIH07XG5cbiAgdXBkYXRlTGFzdFBvcygpIHtcbiAgICB0aGlzLmxhc3RYID0gdGhpcy54O1xuICAgIHRoaXMubGFzdFkgPSB0aGlzLnk7XG4gIH07XG5cbiAgdHJhbnNsYXRlKGRlbHRhWCwgZGVsdGFZKSB7XG4gICAgLy8gV2UgcmVzdHJpY3QgdG8gdGhlIG1pbiBvZiB0aGUgdmlld3BvcnQgd2lkdGgvaGVpZ2h0IG9yIGN1cnJlbnQgd2lkdGgvaGVpZ2h0IGFzIHRoZVxuICAgIC8vIGN1cnJlbnQgd2lkdGgvaGVpZ2h0IG1heSBiZSBzbWFsbGVyIHRoYW4gdGhlIHZpZXdwb3J0IHdpZHRoL2hlaWdodFxuICAgIGNvbnN0IG5ld1ggPSB0aGlzLnJlc3RyaWN0UmF3UG9zKHRoaXMubGFzdFggKyBkZWx0YVgvdGhpcy5zY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWluKHRoaXMudmlld3BvcnRXaWR0aCwgdGhpcy5jdXJXaWR0aCksIHRoaXMuZG9jV2lkdGgpO1xuICAgIHRoaXMueCA9IG5ld1g7XG4gICAgLy8gVE9ETzogdmFsdWUgaGVyZSBhbmQgaW4gdGhlIHNpbWlsYXIgbGluZSBiZWxvdyBjaGFuZ2VzIHRvIHBvc2l0aXZlIHRvIHRha2UgYW55IGVmZmVjdFxuICAgIHRoaXMuY29udGFpbmVyLnNjcm9sbExlZnQgPSAtTWF0aC5jZWlsKG5ld1gqdGhpcy5zY2FsZSk7XG5cbiAgICBjb25zdCBuZXdZID0gdGhpcy5yZXN0cmljdFJhd1Bvcyh0aGlzLmxhc3RZICsgZGVsdGFZL3RoaXMuc2NhbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbih0aGlzLnZpZXdwb3J0SGVpZ2h0LCB0aGlzLmN1ckhlaWdodCksIHRoaXMuZG9jSGVpZ2h0KTtcbiAgICB0aGlzLnkgPSBuZXdZO1xuICAgIHRoaXMuY29udGFpbmVyLnNjcm9sbFRvcCA9IC1NYXRoLmNlaWwobmV3WSp0aGlzLnNjYWxlKTtcbiAgICBcbiAgICB0aGlzLmRvYy5zdHlsZS50cmFuc2Zvcm0gPSAnc2NhbGUoJyArIHRoaXMuc2NhbGUgKyAnKSc7XG4gIH07XG5cbiAgc3RhcnRab29tKHNjYWxlQnkpIHtcbiAgICB0aGlzLnNjYWxlID0gdGhpcy5sYXN0U2NhbGUqc2NhbGVCeTtcblxuICAgIHRoaXMuY3VyV2lkdGggPSB0aGlzLmRvY1dpZHRoKnRoaXMuc2NhbGU7XG4gICAgdGhpcy5jdXJIZWlnaHQgPSB0aGlzLmRvY0hlaWdodCp0aGlzLnNjYWxlO1xuXG4gICAgLy8gQWRqdXN0IG1hcmdpbnMgdG8gbWFrZSBzdXJlIHRoYXQgd2UgYXJlbid0IG91dCBvZiBib3VuZHNcbiAgICB0aGlzLnRyYW5zbGF0ZSgwLCAwKTtcbiAgfTtcblxuICByYXdDZW50ZXIoJGV2ZW50KSB7XG4gICAgY29uc3QgcG9zID0gdGhpcy5hYnNvbHV0ZVBvc2l0aW9uKHRoaXMuY29udGFpbmVyKTtcblxuICAgIC8vIFdlIG5lZWQgdG8gYWNjb3VudCBmb3IgdGhlIHNjcm9sbCBwb3NpdGlvblxuICAgIGNvbnN0IHNjcm9sbExlZnQgPSB3aW5kb3cucGFnZVhPZmZzZXQgPyB3aW5kb3cucGFnZVhPZmZzZXQgOiBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gd2luZG93LnBhZ2VZT2Zmc2V0ID8gd2luZG93LnBhZ2VZT2Zmc2V0IDogZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7XG5cbiAgICBjb25zdCB6b29tWCA9IC10aGlzLnggKyAoJGV2ZW50LmNlbnRlci54IC0gcG9zLnggKyBzY3JvbGxMZWZ0KS90aGlzLnNjYWxlO1xuICAgIGNvbnN0IHpvb21ZID0gLXRoaXMueSArICgkZXZlbnQuY2VudGVyLnkgLSBwb3MueSArIHNjcm9sbFRvcCkvdGhpcy5zY2FsZTtcblxuICAgIHJldHVybiB7IHg6IHpvb21YLCB5OiB6b29tWSB9O1xuICB9O1xuXG4gIHVwZGF0ZUxhc3RTY2FsZSgpIHtcbiAgICB0aGlzLmxhc3RTY2FsZSA9IHRoaXMuc2NhbGU7XG4gIH07XG5cbiAgem9vbUFyb3VuZChzY2FsZUJ5LCByYXdab29tWCwgcmF3Wm9vbVksIGRvTm90VXBkYXRlTGFzdCkge1xuICAgIC8vIFpvb21cbiAgICB0aGlzLnN0YXJ0Wm9vbShzY2FsZUJ5KTtcblxuICAgIC8vIE5ldyByYXcgY2VudGVyIG9mIHZpZXdwb3J0XG4gICAgY29uc3QgcmF3Q2VudGVyWCA9IC10aGlzLnggKyBNYXRoLm1pbih0aGlzLnZpZXdwb3J0V2lkdGgsIHRoaXMuY3VyV2lkdGgpLzIvdGhpcy5zY2FsZTtcbiAgICBjb25zdCByYXdDZW50ZXJZID0gLXRoaXMueSArIE1hdGgubWluKHRoaXMudmlld3BvcnRIZWlnaHQsIHRoaXMuY3VySGVpZ2h0KS8yL3RoaXMuc2NhbGU7XG5cbiAgICAvLyBEZWx0YVxuICAgIGNvbnN0IGRlbHRhWCA9IChyYXdDZW50ZXJYIC0gcmF3Wm9vbVgpKnRoaXMuc2NhbGU7XG4gICAgY29uc3QgZGVsdGFZID0gKHJhd0NlbnRlclkgLSByYXdab29tWSkqdGhpcy5zY2FsZTtcblxuICAgIC8vIFRyYW5zbGF0ZSBiYWNrIHRvIHpvb20gY2VudGVyXG4gICAgdGhpcy50cmFuc2xhdGUoZGVsdGFYLCBkZWx0YVkpO1xuXG4gICAgaWYgKCFkb05vdFVwZGF0ZUxhc3QpIHtcbiAgICAgIHRoaXMudXBkYXRlTGFzdFNjYWxlKCk7XG4gICAgICB0aGlzLnVwZGF0ZUxhc3RQb3MoKTtcbiAgICB9XG4gIH07XG5cbiAgb25QaW5jaCgkZXZlbnQpe1xuICAgIGlmICh0aGlzLnBpbmNoQ2VudGVyID09PSBudWxsKSB7XG4gICAgICB0aGlzLnBpbmNoQ2VudGVyID0gdGhpcy5yYXdDZW50ZXIoJGV2ZW50KTtcbiAgICAgIGNvbnN0IG9mZnNldFggPSB0aGlzLnBpbmNoQ2VudGVyLngqdGhpcy5zY2FsZSAtICgtdGhpcy54KnRoaXMuc2NhbGUgKyBNYXRoLm1pbih0aGlzLnZpZXdwb3J0V2lkdGgsIHRoaXMuY3VyV2lkdGgpLzIpO1xuICAgICAgY29uc3Qgb2Zmc2V0WSA9IHRoaXMucGluY2hDZW50ZXIueSp0aGlzLnNjYWxlIC0gKC10aGlzLnkqdGhpcy5zY2FsZSArIE1hdGgubWluKHRoaXMudmlld3BvcnRIZWlnaHQsIHRoaXMuY3VySGVpZ2h0KS8yKTtcbiAgICAgIHRoaXMucGluY2hDZW50ZXJPZmZzZXQgPSB7IHg6IG9mZnNldFgsIHk6IG9mZnNldFkgfTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdTY2FsZSA9IHRoaXMuc2NhbGUqJGV2ZW50LnNjYWxlO1xuXG4gICAgY29uc3Qgem9vbVggPSB0aGlzLnBpbmNoQ2VudGVyLngqbmV3U2NhbGUgLSB0aGlzLnBpbmNoQ2VudGVyT2Zmc2V0Lng7XG4gICAgY29uc3Qgem9vbVkgPSB0aGlzLnBpbmNoQ2VudGVyLnkqbmV3U2NhbGUgLSB0aGlzLnBpbmNoQ2VudGVyT2Zmc2V0Lnk7XG4gICAgY29uc3Qgem9vbUNlbnRlciA9IHsgeDogem9vbVgvbmV3U2NhbGUsIHk6IHpvb21ZL25ld1NjYWxlIH07XG4gICAgXG4gICAgdGhpcy56b29tQXJvdW5kKCRldmVudC5zY2FsZSwgem9vbUNlbnRlci54LCB6b29tQ2VudGVyLnksIHRydWUpO1xuICB9XG5cbiAgb25QaW5jaEVuZCgkZXZlbnQpe1xuICAgIHRoaXMudXBkYXRlTGFzdFNjYWxlKCk7XG4gICAgdGhpcy51cGRhdGVMYXN0UG9zKCk7XG4gICAgdGhpcy5waW5jaENlbnRlciA9IG51bGw7XG4gIH1cblxuICBvblBhbigkZXZlbnQpe1xuICAgIC8vIFRPRE86IGxvb2tzIGxpa2UgbmF0aXZlIHBhbiB3b3JrcyBiZXR0ZXJcbiAgICAvLyBpZiAoIXRoaXMuaXNEZXNrdG9wKSB7XG4gICAgLy8gICB0aGlzLnRyYW5zbGF0ZSgkZXZlbnQuZGVsdGFYLCAkZXZlbnQuZGVsdGFZKTtcbiAgICAvLyB9XG4gIH1cblxuICBvblBhbkVuZCgkZXZlbnQpe1xuICAgIC8vIGlmICghdGhpcy5pc0Rlc2t0b3ApIHtcbiAgICAvLyAgIHRoaXMudXBkYXRlTGFzdFBvcygpO1xuICAgIC8vIH1cbiAgfVxuXG4gIG9uRG91YmxlVGFwKCRldmVudCl7XG4gICAgaWYgKCF0aGlzLmlzRGVza3RvcCkge1xuICAgICAgaWYgKCRldmVudC50YXBDb3VudCA9PT0gMikge1xuICAgICAgICBjb25zdCBjID0gdGhpcy5yYXdDZW50ZXIoJGV2ZW50KTtcbiAgICAgICAgdGhpcy56b29tQXJvdW5kKDIsIGMueCwgYy55LCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2RvY3VtZW50L2RvY3VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdLLE1BQU0sZUFBZSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxlQUFlLEVBQUUsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOztNQUMzQixDQUFDLEdBQUcsTUFBTTtBQUNoQixPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBT3RELE1BQU0sT0FBTyxpQkFBaUI7Ozs7Ozs7SUEyQjVCLFlBQW9CLFdBQW9DLEVBQ3BDLFlBQXlCLEVBQ3pCLGNBQTZCLEVBQzdCLGdCQUFpQztRQUhqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQXpCckQsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUdiLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixVQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2IsY0FBUyxHQUFHLElBQUks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Q0FBYTs7SUFFYixxQ0FBZ0I7O0lBQ2hCLHNDQUFpQjs7SUFDakIsMENBQXFCOztJQUNyQiwyQ0FBc0I7O0lBQ3RCLGtDQUFhOztJQUNiLHNDQUFpQjs7SUFDakIsc0NBQWlCOztJQUNqQixnQ0FBVzs7SUFDWCw4QkFBTTs7SUFDTixrQ0FBVTs7SUFDViw4QkFBTTs7SUFDTixrQ0FBVTs7SUFDVix3Q0FBbUI7O0lBQ25CLDhDQUF5Qjs7SUFDekIscUNBQWE7O0lBQ2Isc0NBQWM7O0lBQ2Qsc0NBQW1COztJQUNuQiw0Q0FBcUI7Ozs7O0lBRVQsd0NBQTRDOzs7OztJQUM1Qyx5Q0FBaUM7Ozs7O0lBQ2pDLDJDQUFxQzs7Ozs7SUFDckMsNkNBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdDaGVja2VkLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIE9uQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RmlsZURlc2NyaXB0aW9uLCBGaWxlVXRpbH0gZnJvbSBcIi4uL2ZpbGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tIFwiLi4vem9vbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCAqIGFzIGpxdWVyeSBmcm9tICdqcXVlcnknO1xyXG5jb25zdCAkID0ganF1ZXJ5O1xyXG5pbXBvcnQgKiBhcyBIYW1tZXIgZnJvbSAnaGFtbWVyanMnO1xyXG5pbXBvcnQgeyBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vd2luZG93LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3RhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9yb3RhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZ2QtZG9jdW1lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnQuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIG1vZGU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcHJlbG9hZFBhZ2VDb3VudDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGZpbGU6IEZpbGVEZXNjcmlwdGlvbjtcclxuICB3YWl0ID0gZmFsc2U7XHJcbiAgem9vbTogbnVtYmVyO1xyXG5cclxuICBkb2NXaWR0aCA9IG51bGw7XHJcbiAgZG9jSGVpZ2h0ID0gbnVsbDtcclxuICB2aWV3cG9ydFdpZHRoID0gbnVsbDtcclxuICB2aWV3cG9ydEhlaWdodCA9IG51bGw7XHJcbiAgc2NhbGUgPSBudWxsO1xyXG4gIGxhc3RTY2FsZSA9IG51bGw7XHJcbiAgY29udGFpbmVyID0gbnVsbDtcclxuICBkb2MgPSBudWxsO1xyXG4gIHggPSAwO1xyXG4gIGxhc3RYID0gMDtcclxuICB5ID0gMDtcclxuICBsYXN0WSA9IDA7XHJcbiAgcGluY2hDZW50ZXIgPSBudWxsO1xyXG4gIHBpbmNoQ2VudGVyT2Zmc2V0ID0gbnVsbDtcclxuICBjdXJXaWR0aCA9IDA7XHJcbiAgY3VySGVpZ2h0ID0gMDtcclxuICBpc0Rlc2t0b3A6IGJvb2xlYW47XHJcbiAgaW5pdGlhbFJvdGF0aW9uOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgX3pvb21TZXJ2aWNlOiBab29tU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF93aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgX3JvdGF0aW9uU2VydmNpZTogUm90YXRpb25TZXJ2aWNlKSB7XHJcblxyXG4gICAgX3pvb21TZXJ2aWNlLnpvb21DaGFuZ2Uuc3Vic2NyaWJlKCh2YWw6IG51bWJlcikgPT4ge1xyXG4gICAgICB0aGlzLnpvb20gPSB2YWw7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmlzRGVza3RvcCA9IF93aW5kb3dTZXJ2aWNlLmlzRGVza3RvcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGNvbnN0IHBhbnpvb20gPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbSgwKS5jaGlsZHJlbi5pdGVtKDApO1xyXG4gICAgKHBhbnpvb20gYXMgYW55KS5zdHlsZS50cmFuc2Zvcm0gPSAnJztcclxuICAgIC8vIFRPRE86IHRoaXMgaW50ZXJzZWN0cyB3aXRoIHpvb21pbmcgYnkgem9vbSBkaXJlY3RpdmUsIGJ1dCBzdGlsbCBuZWVkZWRcclxuICAgIC8vIGZvciBmbHVzaCBwcmV2aW91cyBzZXR0aW5ncyBiZWZvcmUgb3BlbmluZyBhbm90aGVyIGZpbGVcclxuICAgIC8vdGhpcy5fem9vbVNlcnZpY2UuY2hhbmdlWm9vbSgxMDApO1xyXG4gICAgLy90aGlzLnNjYWxlID0gMTtcclxuICB9XHJcbiAgICBcclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAvLyBGb3IgY3VycmVudCBpdGVyYXRpb24gd2UgdGFrZSAucGFuem9vbSBhcyBhIGRvY3VtZW50XHJcbiAgICB0aGlzLmRvYyA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5pdGVtKDApLmNoaWxkcmVuLml0ZW0oMCk7XHJcbiAgICAvLyBGb3IgY3VycmVudCBpdGVyYXRpb24gd2UgdGFrZSAuZ2QtZG9jdW1lbnQgYXMgYSBjb250YWluZXJcclxuICAgIHRoaXMuY29udGFpbmVyID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuZG9jV2lkdGggPSB0aGlzLmRvYy5jbGllbnRXaWR0aDtcclxuICAgIHRoaXMuZG9jSGVpZ2h0ID0gdGhpcy5kb2MuY2xpZW50SGVpZ2h0O1xyXG4gICAgdGhpcy52aWV3cG9ydFdpZHRoID0gdGhpcy5kb2Mub2Zmc2V0V2lkdGg7XHJcblxyXG4gICAgLy8gRm9yIGNhc2VzIHdoZXJlIHdlIGFscmVhZHkgaGF2ZSB6b29tIGRlZmluZWQgd2Ugc2hvdWxkIGluY2x1ZGUgaXRcclxuICAgIHRoaXMuc2NhbGUgPSAodGhpcy52aWV3cG9ydFdpZHRoL3RoaXMuZG9jV2lkdGgpICogdGhpcy5fem9vbVNlcnZpY2Uuem9vbS8xMDA7XHJcbiAgICBcclxuICAgIHRoaXMubGFzdFNjYWxlID0gdGhpcy5zY2FsZTtcclxuICAgIHRoaXMudmlld3BvcnRIZWlnaHQgPSB0aGlzLmNvbnRhaW5lci5vZmZzZXRIZWlnaHQ7XHJcbiAgICB0aGlzLmN1cldpZHRoID0gdGhpcy5kb2NXaWR0aCp0aGlzLnNjYWxlO1xyXG4gICAgdGhpcy5jdXJIZWlnaHQgPSB0aGlzLmRvY0hlaWdodCp0aGlzLnNjYWxlO1xyXG5cclxuICAgIGNvbnN0IGhhbW1lciA9IG5ldyBIYW1tZXIodGhpcy5jb250YWluZXIpO1xyXG4gIH1cclxuXHJcbiAgLy8gVE9ETzogdGhpcyB0ZW1wb3JhcnkgY3J1dGNoIGZvciBFeGNlbCBmaWxlcyBzaG91bGQgYmUgZG9jdW1lbnRlZFxyXG4gIGlmRXhjZWwoKSB7XHJcbiAgICByZXR1cm4gRmlsZVV0aWwuZmluZCh0aGlzLmZpbGUuZ3VpZCwgZmFsc2UpLmZvcm1hdCA9PT0gXCJNaWNyb3NvZnQgRXhjZWxcIjtcclxuICB9XHJcblxyXG4gIGdldERpbWVuc2lvbldpdGhVbml0KHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB2YWx1ZSArIEZpbGVVdGlsLmZpbmQodGhpcy5maWxlLmd1aWQsIGZhbHNlKS51bml0O1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZWxlbWVudE5vZGVMaXN0T2YgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmdkLXdyYXBwZXInKTtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50Tm9kZUxpc3RPZi5pdGVtKDApO1xyXG4gICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgJChlbGVtZW50KS50cmlnZ2VyKCdmb2N1cycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWJzb2x1dGVQb3NpdGlvbihlbCkge1xyXG4gICAgbGV0IHggPSAwLCB5ID0gMDtcclxuXHJcbiAgICB3aGlsZSAoZWwgIT09IG51bGwpIHtcclxuICAgICAgeCArPSBlbC5vZmZzZXRMZWZ0O1xyXG4gICAgICB5ICs9IGVsLm9mZnNldFRvcDtcclxuICAgICAgZWwgPSBlbC5vZmZzZXRQYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHsgeDogeCwgeTogeSB9O1xyXG4gIH07XHJcblxyXG4gIHJlc3RyaWN0UmF3UG9zKHBvcywgdmlld3BvcnREaW0sIGRvY0RpbSkge1xyXG4gICAgaWYgKHBvcyA8IHZpZXdwb3J0RGltL3RoaXMuc2NhbGUgLSBkb2NEaW0pIHsgLy8gdG9vIGZhciBsZWZ0L3VwP1xyXG4gICAgICBwb3MgPSB2aWV3cG9ydERpbS90aGlzLnNjYWxlIC0gZG9jRGltO1xyXG4gICAgfSBlbHNlIGlmIChwb3MgPiAwKSB7IC8vIHRvbyBmYXIgcmlnaHQvZG93bj9cclxuICAgICAgcG9zID0gMDtcclxuICAgIH1cclxuICAgIHJldHVybiBwb3M7XHJcbiAgfTtcclxuXHJcbiAgdXBkYXRlTGFzdFBvcygpIHtcclxuICAgIHRoaXMubGFzdFggPSB0aGlzLng7XHJcbiAgICB0aGlzLmxhc3RZID0gdGhpcy55O1xyXG4gIH07XHJcblxyXG4gIHRyYW5zbGF0ZShkZWx0YVgsIGRlbHRhWSkge1xyXG4gICAgLy8gV2UgcmVzdHJpY3QgdG8gdGhlIG1pbiBvZiB0aGUgdmlld3BvcnQgd2lkdGgvaGVpZ2h0IG9yIGN1cnJlbnQgd2lkdGgvaGVpZ2h0IGFzIHRoZVxyXG4gICAgLy8gY3VycmVudCB3aWR0aC9oZWlnaHQgbWF5IGJlIHNtYWxsZXIgdGhhbiB0aGUgdmlld3BvcnQgd2lkdGgvaGVpZ2h0XHJcbiAgICBjb25zdCBuZXdYID0gdGhpcy5yZXN0cmljdFJhd1Bvcyh0aGlzLmxhc3RYICsgZGVsdGFYL3RoaXMuc2NhbGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWluKHRoaXMudmlld3BvcnRXaWR0aCwgdGhpcy5jdXJXaWR0aCksIHRoaXMuZG9jV2lkdGgpO1xyXG4gICAgdGhpcy54ID0gbmV3WDtcclxuICAgIC8vIFRPRE86IHZhbHVlIGhlcmUgYW5kIGluIHRoZSBzaW1pbGFyIGxpbmUgYmVsb3cgY2hhbmdlcyB0byBwb3NpdGl2ZSB0byB0YWtlIGFueSBlZmZlY3RcclxuICAgIHRoaXMuY29udGFpbmVyLnNjcm9sbExlZnQgPSAtTWF0aC5jZWlsKG5ld1gqdGhpcy5zY2FsZSk7XHJcblxyXG4gICAgY29uc3QgbmV3WSA9IHRoaXMucmVzdHJpY3RSYXdQb3ModGhpcy5sYXN0WSArIGRlbHRhWS90aGlzLnNjYWxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbih0aGlzLnZpZXdwb3J0SGVpZ2h0LCB0aGlzLmN1ckhlaWdodCksIHRoaXMuZG9jSGVpZ2h0KTtcclxuICAgIHRoaXMueSA9IG5ld1k7XHJcbiAgICB0aGlzLmNvbnRhaW5lci5zY3JvbGxUb3AgPSAtTWF0aC5jZWlsKG5ld1kqdGhpcy5zY2FsZSk7XHJcbiAgICBcclxuICAgIHRoaXMuZG9jLnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZSgnICsgdGhpcy5zY2FsZSArICcpJztcclxuICB9O1xyXG5cclxuICBzdGFydFpvb20oc2NhbGVCeSkge1xyXG4gICAgdGhpcy5zY2FsZSA9IHRoaXMubGFzdFNjYWxlKnNjYWxlQnk7XHJcblxyXG4gICAgdGhpcy5jdXJXaWR0aCA9IHRoaXMuZG9jV2lkdGgqdGhpcy5zY2FsZTtcclxuICAgIHRoaXMuY3VySGVpZ2h0ID0gdGhpcy5kb2NIZWlnaHQqdGhpcy5zY2FsZTtcclxuXHJcbiAgICAvLyBBZGp1c3QgbWFyZ2lucyB0byBtYWtlIHN1cmUgdGhhdCB3ZSBhcmVuJ3Qgb3V0IG9mIGJvdW5kc1xyXG4gICAgdGhpcy50cmFuc2xhdGUoMCwgMCk7XHJcbiAgfTtcclxuXHJcbiAgcmF3Q2VudGVyKCRldmVudCkge1xyXG4gICAgY29uc3QgcG9zID0gdGhpcy5hYnNvbHV0ZVBvc2l0aW9uKHRoaXMuY29udGFpbmVyKTtcclxuXHJcbiAgICAvLyBXZSBuZWVkIHRvIGFjY291bnQgZm9yIHRoZSBzY3JvbGwgcG9zaXRpb25cclxuICAgIGNvbnN0IHNjcm9sbExlZnQgPSB3aW5kb3cucGFnZVhPZmZzZXQgPyB3aW5kb3cucGFnZVhPZmZzZXQgOiBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ7XHJcbiAgICBjb25zdCBzY3JvbGxUb3AgPSB3aW5kb3cucGFnZVlPZmZzZXQgPyB3aW5kb3cucGFnZVlPZmZzZXQgOiBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDtcclxuXHJcbiAgICBjb25zdCB6b29tWCA9IC10aGlzLnggKyAoJGV2ZW50LmNlbnRlci54IC0gcG9zLnggKyBzY3JvbGxMZWZ0KS90aGlzLnNjYWxlO1xyXG4gICAgY29uc3Qgem9vbVkgPSAtdGhpcy55ICsgKCRldmVudC5jZW50ZXIueSAtIHBvcy55ICsgc2Nyb2xsVG9wKS90aGlzLnNjYWxlO1xyXG5cclxuICAgIHJldHVybiB7IHg6IHpvb21YLCB5OiB6b29tWSB9O1xyXG4gIH07XHJcblxyXG4gIHVwZGF0ZUxhc3RTY2FsZSgpIHtcclxuICAgIHRoaXMubGFzdFNjYWxlID0gdGhpcy5zY2FsZTtcclxuICB9O1xyXG5cclxuICB6b29tQXJvdW5kKHNjYWxlQnksIHJhd1pvb21YLCByYXdab29tWSwgZG9Ob3RVcGRhdGVMYXN0KSB7XHJcbiAgICAvLyBab29tXHJcbiAgICB0aGlzLnN0YXJ0Wm9vbShzY2FsZUJ5KTtcclxuXHJcbiAgICAvLyBOZXcgcmF3IGNlbnRlciBvZiB2aWV3cG9ydFxyXG4gICAgY29uc3QgcmF3Q2VudGVyWCA9IC10aGlzLnggKyBNYXRoLm1pbih0aGlzLnZpZXdwb3J0V2lkdGgsIHRoaXMuY3VyV2lkdGgpLzIvdGhpcy5zY2FsZTtcclxuICAgIGNvbnN0IHJhd0NlbnRlclkgPSAtdGhpcy55ICsgTWF0aC5taW4odGhpcy52aWV3cG9ydEhlaWdodCwgdGhpcy5jdXJIZWlnaHQpLzIvdGhpcy5zY2FsZTtcclxuXHJcbiAgICAvLyBEZWx0YVxyXG4gICAgY29uc3QgZGVsdGFYID0gKHJhd0NlbnRlclggLSByYXdab29tWCkqdGhpcy5zY2FsZTtcclxuICAgIGNvbnN0IGRlbHRhWSA9IChyYXdDZW50ZXJZIC0gcmF3Wm9vbVkpKnRoaXMuc2NhbGU7XHJcblxyXG4gICAgLy8gVHJhbnNsYXRlIGJhY2sgdG8gem9vbSBjZW50ZXJcclxuICAgIHRoaXMudHJhbnNsYXRlKGRlbHRhWCwgZGVsdGFZKTtcclxuXHJcbiAgICBpZiAoIWRvTm90VXBkYXRlTGFzdCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUxhc3RTY2FsZSgpO1xyXG4gICAgICB0aGlzLnVwZGF0ZUxhc3RQb3MoKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBvblBpbmNoKCRldmVudCl7XHJcbiAgICBjb25zb2xlLmxvZyhcInBpbmNoXCIpO1xyXG4gICAgaWYgKHRoaXMucGluY2hDZW50ZXIgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5waW5jaENlbnRlciA9IHRoaXMucmF3Q2VudGVyKCRldmVudCk7XHJcbiAgICAgIGNvbnN0IG9mZnNldFggPSB0aGlzLnBpbmNoQ2VudGVyLngqdGhpcy5zY2FsZSAtICgtdGhpcy54KnRoaXMuc2NhbGUgKyBNYXRoLm1pbih0aGlzLnZpZXdwb3J0V2lkdGgsIHRoaXMuY3VyV2lkdGgpLzIpO1xyXG4gICAgICBjb25zdCBvZmZzZXRZID0gdGhpcy5waW5jaENlbnRlci55KnRoaXMuc2NhbGUgLSAoLXRoaXMueSp0aGlzLnNjYWxlICsgTWF0aC5taW4odGhpcy52aWV3cG9ydEhlaWdodCwgdGhpcy5jdXJIZWlnaHQpLzIpO1xyXG4gICAgICB0aGlzLnBpbmNoQ2VudGVyT2Zmc2V0ID0geyB4OiBvZmZzZXRYLCB5OiBvZmZzZXRZIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbmV3U2NhbGUgPSB0aGlzLnNjYWxlKiRldmVudC5zY2FsZTtcclxuXHJcbiAgICBjb25zdCB6b29tWCA9IHRoaXMucGluY2hDZW50ZXIueCpuZXdTY2FsZSAtIHRoaXMucGluY2hDZW50ZXJPZmZzZXQueDtcclxuICAgIGNvbnN0IHpvb21ZID0gdGhpcy5waW5jaENlbnRlci55Km5ld1NjYWxlIC0gdGhpcy5waW5jaENlbnRlck9mZnNldC55O1xyXG4gICAgY29uc3Qgem9vbUNlbnRlciA9IHsgeDogem9vbVgvbmV3U2NhbGUsIHk6IHpvb21ZL25ld1NjYWxlIH07XHJcbiAgICBcclxuICAgIHRoaXMuem9vbUFyb3VuZCgkZXZlbnQuc2NhbGUsIHpvb21DZW50ZXIueCwgem9vbUNlbnRlci55LCB0cnVlKTtcclxuICB9XHJcblxyXG4gIG9uUGluY2hFbmQoJGV2ZW50KXtcclxuICAgIGNvbnNvbGUubG9nKFwicGluY2hFbmRcIik7XHJcbiAgICB0aGlzLnVwZGF0ZUxhc3RTY2FsZSgpO1xyXG4gICAgdGhpcy51cGRhdGVMYXN0UG9zKCk7XHJcbiAgICB0aGlzLnBpbmNoQ2VudGVyID0gbnVsbDtcclxuICB9XHJcblxyXG4gIG9uUGFuKCRldmVudCl7XHJcbiAgICAvLyBUT0RPOiBsb29rcyBsaWtlIG5hdGl2ZSBwYW4gd29ya3MgYmV0dGVyXHJcbiAgICAvLyBpZiAoIXRoaXMuaXNEZXNrdG9wKSB7XHJcbiAgICAvLyAgIHRoaXMudHJhbnNsYXRlKCRldmVudC5kZWx0YVgsICRldmVudC5kZWx0YVkpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgb25QYW5FbmQoJGV2ZW50KXtcclxuICAgIC8vIGlmICghdGhpcy5pc0Rlc2t0b3ApIHtcclxuICAgIC8vICAgdGhpcy51cGRhdGVMYXN0UG9zKCk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBvbkRvdWJsZVRhcCgkZXZlbnQpe1xyXG4gICAgaWYgKCF0aGlzLmlzRGVza3RvcCkge1xyXG4gICAgICBpZiAoJGV2ZW50LnRhcENvdW50ID09PSAyKSB7XHJcbiAgICAgICAgY29uc3QgYyA9IHRoaXMucmF3Q2VudGVyKCRldmVudCk7XHJcbiAgICAgICAgdGhpcy56b29tQXJvdW5kKDIsIGMueCwgYy55LCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUm90YXRlU3RhcnQoJGV2ZW50KXtcclxuICAgIHRoaXMuaW5pdGlhbFJvdGF0aW9uID0gJGV2ZW50LnJvdGF0aW9uO1xyXG4gICAgY29uc29sZS5sb2coXCJyb3RhdGVTdGFydDogXCIgKyAkZXZlbnQucm90YXRpb24gKyAnICcgKyAkZXZlbnQuYW5nbGUpO1xyXG4gIH1cclxuXHJcbiAgb25Sb3RhdGVFbmQoJGV2ZW50KXtcclxuICAgIGNvbnNvbGUubG9nKFwicm90YXRlRW5kOiBcIiArICRldmVudC5yb3RhdGlvbiArICcgJyArICRldmVudC5hbmdsZSk7XHJcbiAgICBpZiAoJGV2ZW50LnJvdGF0aW9uID4gMCAmJiB0aGlzLmluaXRpYWxSb3RhdGlvbiA+IDApIHtcclxuICAgICAgaWYgKCRldmVudC5yb3RhdGlvbiA+IHRoaXMuaW5pdGlhbFJvdGF0aW9uICYmICgkZXZlbnQucm90YXRpb24gLSB0aGlzLmluaXRpYWxSb3RhdGlvbiA+IDQ1KSkge1xyXG4gICAgICAgIHRoaXMuX3JvdGF0aW9uU2VydmNpZS5zZXRSb3RhdGlvbkFuZ2xlKDkwKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICgkZXZlbnQucm90YXRpb24gPCB0aGlzLmluaXRpYWxSb3RhdGlvbiAmJiAodGhpcy5pbml0aWFsUm90YXRpb24gLSAkZXZlbnQucm90YXRpb24gPiA0NSkpIHtcclxuICAgICAgICB0aGlzLl9yb3RhdGlvblNlcnZjaWUuc2V0Um90YXRpb25BbmdsZSgtOTApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBjYXNlIHdpdGggbmVnYXRpdmUgdmFsdWVzXHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuaW5pdGlhbFJvdGF0aW9uID4gJGV2ZW50LnJvdGF0aW9uICYmICgkZXZlbnQucm90YXRpb24gLSB0aGlzLmluaXRpYWxSb3RhdGlvbiA+IDQ1KSkge1xyXG4gICAgICAgIHRoaXMuX3JvdGF0aW9uU2VydmNpZS5zZXRSb3RhdGlvbkFuZ2xlKC05MCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5pbml0aWFsUm90YXRpb24gPCAkZXZlbnQucm90YXRpb24gJiYgKHRoaXMuaW5pdGlhbFJvdGF0aW9uIC0gJGV2ZW50LnJvdGF0aW9uID4gNDUpKSB7XHJcbiAgICAgICAgdGhpcy5fcm90YXRpb25TZXJ2Y2llLnNldFJvdGF0aW9uQW5nbGUoOTApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== \ No newline at end of file diff --git a/dist/libs/common-components/esm2015/lib/page/page.component.js b/dist/libs/common-components/esm2015/lib/page/page.component.js index 4df857e52..840bbc7fa 100644 --- a/dist/libs/common-components/esm2015/lib/page/page.component.js +++ b/dist/libs/common-components/esm2015/lib/page/page.component.js @@ -21,9 +21,8 @@ export class PageComponent { * @return {?} */ ngOnChanges(changes) { - // TODO: this is temporary needed to remove unneeded spaces and BOM symbol - // which leads to undesired spaces on the top of the docs pages - this.data = this.data !== null ? this.data.replace(/>\s+<').replace(/\uFEFF/g, "") : null; + // TODO: this is needed for test purpose to reduce unneeded top-margin + this.data = this.data !== null ? this.data.replace(/>\s+<') : null; /** @type {?} */ const dataImagePngBase64 = 'data:image/png;base64,'; this.imgData = dataImagePngBase64; @@ -36,7 +35,7 @@ PageComponent.decorators = [ { type: Component, args: [{ selector: 'gd-page', template: "
\n
\n \"\"\n\n
\n \n  Loading... Please wait.\n
\n
\n", - styles: [".gd-page-spinner{margin-top:150px;text-align:center}.gd-wrapper{width:inherit;height:inherit}.gd-wrapper div{width:100%}/deep/ .gd-highlight{background-color:#ff0}/deep/ .gd-highlight-select{background-color:#ff9b00}.gd-page-image{height:100%!important;width:100%!important}"] + styles: [".gd-page-spinner{margin-top:150px;text-align:center}.gd-wrapper{width:inherit;height:inherit}.gd-wrapper div{width:100%}.gd-highlight{background-color:#ff0}/deep/ .gd-highlight-select{background-color:#ff9b00}.gd-page-image{height:100%!important;width:100%!important}"] }] } ]; /** @nocollapse */ @@ -68,4 +67,4 @@ if (false) { /** @type {?} */ PageComponent.prototype.imgData; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvcGFnZS9wYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBT2pGLE1BQU0sT0FBTyxhQUFhO0lBV3hCO0lBQ0EsQ0FBQzs7OztJQUVELFFBQVE7O2NBQ0EsSUFBSSxHQUFHLFlBQVksQ0FBQSxLQUFLLElBQUksQ0FBQyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ3hGLElBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsMkVBQTJFO1FBQzNFLCtEQUErRDtRQUMvRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDOztjQUN6RixrQkFBa0IsR0FBRyx3QkFBd0I7UUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7WUFuQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxTQUFTO2dCQUNuQixna0JBQW9DOzthQUVyQzs7Ozs7b0JBR0UsS0FBSztvQkFDTCxLQUFLO3FCQUNMLEtBQUs7cUJBQ0wsS0FBSzttQkFDTCxLQUFLO3FCQUNMLEtBQUs7dUJBQ0wsS0FBSzs7OztJQU5OLDhCQUF1Qjs7SUFDdkIsOEJBQXVCOztJQUN2QiwrQkFBd0I7O0lBQ3hCLCtCQUF3Qjs7SUFDeEIsNkJBQXNCOztJQUN0QiwrQkFBeUI7O0lBQ3pCLGlDQUEyQjs7SUFDM0IsZ0NBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dkLXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2UuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIGFuZ2xlOiBudW1iZXI7XG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXI7XG4gIEBJbnB1dCgpIGhlaWdodDogbnVtYmVyO1xuICBASW5wdXQoKSBudW1iZXI6IG51bWJlcjtcbiAgQElucHV0KCkgZGF0YTogc3RyaW5nO1xuICBASW5wdXQoKSBpc0h0bWw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuO1xuICBpbWdEYXRhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBpc0lFID0gLypAY2Nfb24hQCovZmFsc2UgfHwgISEvKE1TSUV8VHJpZGVudFxcL3xFZGdlXFwvKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG4gICAgaWYoaXNJRSAmJiB0aGlzLm51bWJlciA9PT0gMCl7XG4gICAgICB0aGlzLmVkaXRhYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIFRPRE86IHRoaXMgaXMgdGVtcG9yYXJ5IG5lZWRlZCB0byByZW1vdmUgdW5uZWVkZWQgc3BhY2VzIGFuZCBCT00gc3ltYm9sIFxuICAgIC8vIHdoaWNoIGxlYWRzIHRvIHVuZGVzaXJlZCBzcGFjZXMgb24gdGhlIHRvcCBvZiB0aGUgZG9jcyBwYWdlc1xuICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YSAhPT0gbnVsbCA/IHRoaXMuZGF0YS5yZXBsYWNlKC8+XFxzKzwvZywnPjwnKS5yZXBsYWNlKC9cXHVGRUZGL2csXCJcIikgOiBudWxsO1xuICAgIGNvbnN0IGRhdGFJbWFnZVBuZ0Jhc2U2NCA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJztcbiAgICB0aGlzLmltZ0RhdGEgPSBkYXRhSW1hZ2VQbmdCYXNlNjQ7XG4gICAgaWYgKCF0aGlzLmlzSHRtbCkge1xuICAgICAgdGhpcy5pbWdEYXRhICs9IHRoaXMuZGF0YTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvcGFnZS9wYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBT2pGLE1BQU0sT0FBTyxhQUFhO0lBV3hCO0lBQ0EsQ0FBQzs7OztJQUVELFFBQVE7O2NBQ0EsSUFBSSxHQUFHLFlBQVksQ0FBQSxLQUFLLElBQUksQ0FBQyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ3hGLElBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsc0VBQXNFO1FBQ3RFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDOztjQUNuRSxrQkFBa0IsR0FBRyx3QkFBd0I7UUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7WUFsQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxTQUFTO2dCQUNuQixna0JBQW9DOzthQUVyQzs7Ozs7b0JBR0UsS0FBSztvQkFDTCxLQUFLO3FCQUNMLEtBQUs7cUJBQ0wsS0FBSzttQkFDTCxLQUFLO3FCQUNMLEtBQUs7dUJBQ0wsS0FBSzs7OztJQU5OLDhCQUF1Qjs7SUFDdkIsOEJBQXVCOztJQUN2QiwrQkFBd0I7O0lBQ3hCLCtCQUF3Qjs7SUFDeEIsNkJBQXNCOztJQUN0QiwrQkFBeUI7O0lBQ3pCLGlDQUEyQjs7SUFDM0IsZ0NBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dkLXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2UuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIGFuZ2xlOiBudW1iZXI7XG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXI7XG4gIEBJbnB1dCgpIGhlaWdodDogbnVtYmVyO1xuICBASW5wdXQoKSBudW1iZXI6IG51bWJlcjtcbiAgQElucHV0KCkgZGF0YTogc3RyaW5nO1xuICBASW5wdXQoKSBpc0h0bWw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuO1xuICBpbWdEYXRhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBpc0lFID0gLypAY2Nfb24hQCovZmFsc2UgfHwgISEvKE1TSUV8VHJpZGVudFxcL3xFZGdlXFwvKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG4gICAgaWYoaXNJRSAmJiB0aGlzLm51bWJlciA9PT0gMCl7XG4gICAgICB0aGlzLmVkaXRhYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIFRPRE86IHRoaXMgaXMgbmVlZGVkIGZvciB0ZXN0IHB1cnBvc2UgdG8gcmVkdWNlIHVubmVlZGVkIHRvcC1tYXJnaW5cbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEgIT09IG51bGwgPyB0aGlzLmRhdGEucmVwbGFjZSgvPlxccys8L2csJz48JykgOiBudWxsO1xuICAgIGNvbnN0IGRhdGFJbWFnZVBuZ0Jhc2U2NCA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJztcbiAgICB0aGlzLmltZ0RhdGEgPSBkYXRhSW1hZ2VQbmdCYXNlNjQ7XG4gICAgaWYgKCF0aGlzLmlzSHRtbCkge1xuICAgICAgdGhpcy5pbWdEYXRhICs9IHRoaXMuZGF0YTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/dist/libs/common-components/esm2015/lib/rotation.service.js b/dist/libs/common-components/esm2015/lib/rotation.service.js new file mode 100644 index 000000000..f6306f5f2 --- /dev/null +++ b/dist/libs/common-components/esm2015/lib/rotation.service.js @@ -0,0 +1,37 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Subject } from "rxjs"; +export class RotationService { + constructor() { + this._observerRotationAngle = new Subject(); + this._rotationAngleChange = this._observerRotationAngle.asObservable(); + } + /** + * @return {?} + */ + get rotationAngleChange() { + return this._rotationAngleChange; + } + /** + * @param {?} angle + * @return {?} + */ + setRotationAngle(angle) { + this._observerRotationAngle.next(angle); + } +} +if (false) { + /** + * @type {?} + * @private + */ + RotationService.prototype._observerRotationAngle; + /** + * @type {?} + * @private + */ + RotationService.prototype._rotationAngleChange; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9yb3RhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXpDLE1BQU0sT0FBTyxlQUFlO0lBSTFCO1FBSFEsMkJBQXNCLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFDL0MseUJBQW9CLEdBQXVCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUd2RyxDQUFDOzs7O0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQzs7Ozs7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGOzs7Ozs7SUFiQyxpREFBZ0U7Ozs7O0lBQ2hFLCtDQUF1RyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBSb3RhdGlvblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX29ic2VydmVyUm90YXRpb25BbmdsZTogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9yb3RhdGlvbkFuZ2xlQ2hhbmdlOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLl9vYnNlcnZlclJvdGF0aW9uQW5nbGUuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJvdGF0aW9uQW5nbGVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLl9yb3RhdGlvbkFuZ2xlQ2hhbmdlO1xyXG4gIH1cclxuXHJcbiAgc2V0Um90YXRpb25BbmdsZShhbmdsZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9vYnNlcnZlclJvdGF0aW9uQW5nbGUubmV4dChhbmdsZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ== \ No newline at end of file diff --git a/dist/libs/common-components/esm2015/lib/search/search.component.js b/dist/libs/common-components/esm2015/lib/search/search.component.js index a32c5eae3..3885c0209 100644 --- a/dist/libs/common-components/esm2015/lib/search/search.component.js +++ b/dist/libs/common-components/esm2015/lib/search/search.component.js @@ -75,7 +75,7 @@ export class SearchComponent { SearchComponent.decorators = [ { type: Component, args: [{ selector: 'gd-search', - template: "
\n \n
{{current}} of {{total}}
\n \n \n \n \n \n \n
\n", + template: "
\n \n
{{current}} of {{total}}
\n \n \n \n \n \n \n
\n", styles: [".gd-nav-search-btn{margin:3px 0 4px}.gd-nav-search-cancel{color:#fff;font-size:14px;width:37px}.gd-search-count{color:#959da5;font-size:12px;position:absolute;right:148px;top:14px}.gd-nav-search-container{background-color:#3e4e5a;width:410px;position:fixed;left:50%;top:60px;z-index:2;transform:translate(-50%,0);display:flex}.gd-search-input{float:left;height:30px;width:267px;font-size:14px;color:#6e6e6e;border:1px solid #25c2d4;margin:7px 0 7px 7px;box-sizing:border-box;padding:6px 0 5px 9px}input[type=text]::-ms-clear{display:none}@media (max-width:1037px){.gd-search-input{width:231px;height:30px;margin:7px 0 7px 5px}.gd-search-count{position:absolute;left:193px;top:15px}.gd-nav-search-container{width:100%}}"] }] } ]; @@ -104,4 +104,4 @@ if (false) { */ SearchComponent.prototype._searchService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQU9oRCxNQUFNLE9BQU8sZUFBZTs7OztJQVcxQixZQUFvQixjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQVR2QyxjQUFTLEdBQUcsSUFBSSxZQUFZLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFdkQsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLFVBQUssR0FBRyxDQUFDLENBQUM7UUFPUixjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVM7Ozs7UUFBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQzthQUNsQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQzthQUNsQjtZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7Ozs7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7O0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7Ozs7SUFFRCxJQUFJO1FBQ0YsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQzs7OztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzs7WUF4REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixrcEJBQXNDOzthQUV2Qzs7OztZQU5PLGFBQWE7Ozt3QkFTbEIsTUFBTTswQkFLTixTQUFTLFNBQUMsTUFBTSxFQUFDO29CQUNoQixNQUFNLEVBQUcsSUFBSTtpQkFDZDs7OztJQVBELG9DQUF1RDs7SUFFdkQsa0NBQVk7O0lBQ1osZ0NBQVU7O0lBRVYsc0NBRTJCOzs7OztJQUVmLHlDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTZWFyY2hTZXJ2aWNlfSBmcm9tIFwiLi4vc2VhcmNoLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2Qtc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQE91dHB1dCgpIGhpZGVQYW5lbCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGN1cnJlbnQgPSAwO1xuICB0b3RhbCA9IDA7XG5cbiAgQFZpZXdDaGlsZCgndGV4dCcse1xuICAgIHN0YXRpYyA6IHRydWVcbiAgfSkgdGV4dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSkge1xuICAgIF9zZWFyY2hTZXJ2aWNlLnRvdGFsQ2hhbmdlLnN1YnNjcmliZSgodG90YWw6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy50b3RhbCA9IHRvdGFsO1xuICAgICAgaWYgKHRvdGFsICE9PSAwKSB7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSAwO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2VhcmNoU2VydmljZS5zZXRDdXJyZW50KHRoaXMuY3VycmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIHNldFRleHQodGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2VhcmNoU2VydmljZS5zZXRUZXh0KHRleHQpO1xuICB9XG5cbiAgaGlkZSgpIHtcbiAgICB0aGlzLnNldFRleHQoJycpO1xuICAgIHRoaXMuaGlkZVBhbmVsLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwcmV2KCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnQgPiAxKSB7XG4gICAgICB0aGlzLmN1cnJlbnQtLTtcbiAgICAgIHRoaXMuX3NlYXJjaFNlcnZpY2Uuc2V0Q3VycmVudCh0aGlzLmN1cnJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5leHQoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudCA8IHRoaXMudG90YWwpIHtcbiAgICAgIHRoaXMuY3VycmVudCsrO1xuICAgICAgdGhpcy5fc2VhcmNoU2VydmljZS5zZXRDdXJyZW50KHRoaXMuY3VycmVudCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQU9oRCxNQUFNLE9BQU8sZUFBZTs7OztJQVcxQixZQUFvQixjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQVR2QyxjQUFTLEdBQUcsSUFBSSxZQUFZLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFdkQsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLFVBQUssR0FBRyxDQUFDLENBQUM7UUFPUixjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVM7Ozs7UUFBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQzthQUNsQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQzthQUNsQjtZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7Ozs7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7O0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7Ozs7SUFFRCxJQUFJO1FBQ0YsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQzs7OztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzs7WUF4REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQix1bkJBQXNDOzthQUV2Qzs7OztZQU5PLGFBQWE7Ozt3QkFTbEIsTUFBTTswQkFLTixTQUFTLFNBQUMsTUFBTSxFQUFDO29CQUNoQixNQUFNLEVBQUcsSUFBSTtpQkFDZDs7OztJQVBELG9DQUF1RDs7SUFFdkQsa0NBQVk7O0lBQ1osZ0NBQVU7O0lBRVYsc0NBRTJCOzs7OztJQUVmLHlDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTZWFyY2hTZXJ2aWNlfSBmcm9tIFwiLi4vc2VhcmNoLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2Qtc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQE91dHB1dCgpIGhpZGVQYW5lbCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGN1cnJlbnQgPSAwO1xuICB0b3RhbCA9IDA7XG5cbiAgQFZpZXdDaGlsZCgndGV4dCcse1xuICAgIHN0YXRpYyA6IHRydWVcbiAgfSkgdGV4dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSkge1xuICAgIF9zZWFyY2hTZXJ2aWNlLnRvdGFsQ2hhbmdlLnN1YnNjcmliZSgodG90YWw6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy50b3RhbCA9IHRvdGFsO1xuICAgICAgaWYgKHRvdGFsICE9PSAwKSB7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSAwO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2VhcmNoU2VydmljZS5zZXRDdXJyZW50KHRoaXMuY3VycmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIHNldFRleHQodGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2VhcmNoU2VydmljZS5zZXRUZXh0KHRleHQpO1xuICB9XG5cbiAgaGlkZSgpIHtcbiAgICB0aGlzLnNldFRleHQoJycpO1xuICAgIHRoaXMuaGlkZVBhbmVsLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwcmV2KCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnQgPiAxKSB7XG4gICAgICB0aGlzLmN1cnJlbnQtLTtcbiAgICAgIHRoaXMuX3NlYXJjaFNlcnZpY2Uuc2V0Q3VycmVudCh0aGlzLmN1cnJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5leHQoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudCA8IHRoaXMudG90YWwpIHtcbiAgICAgIHRoaXMuY3VycmVudCsrO1xuICAgICAgdGhpcy5fc2VhcmNoU2VydmljZS5zZXRDdXJyZW50KHRoaXMuY3VycmVudCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/dist/libs/common-components/esm2015/lib/searchable.directive.js b/dist/libs/common-components/esm2015/lib/searchable.directive.js index 6ad0de9d1..de379c6b1 100644 --- a/dist/libs/common-components/esm2015/lib/searchable.directive.js +++ b/dist/libs/common-components/esm2015/lib/searchable.directive.js @@ -99,7 +99,7 @@ export class SearchableDirective { /** @type {?} */ const options = { left: 0, - top: ($(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150, + top: ($(currentEl).offset().top * currentZoom) + el.parentElement.scrollTop - 150, }; // using polyfill el.parentElement.parentElement.scroll(options); @@ -214,4 +214,4 @@ if (false) { */ SearchableDirective.prototype._zoomService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvc2VhcmNoYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDNUMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOztNQUMzQixDQUFDLEdBQUcsTUFBTTtBQUtoQixNQUFNLE9BQU8sbUJBQW1COzs7Ozs7O0lBTzlCLFlBQW9CLFdBQW9DLEVBQ3BDLGNBQTZCLEVBQzdCLFVBQStCLEVBQy9CLFlBQXlCO1FBSHpCLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQVA3QyxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNGLFNBQUksR0FBRyxHQUFHLENBQUM7UUFNakIsY0FBYyxDQUFDLGFBQWEsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxPQUFlLEVBQUUsRUFBRTtZQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssQ0FBQyxFQUFFO2dCQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdEI7UUFDSCxDQUFDLEVBQUMsQ0FBQztRQUVILGNBQWMsQ0FBQyxVQUFV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QyxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLG1CQUFhLE9BQU8sRUFBQSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdkQ7UUFDRCxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7Ozs7SUFFTyxPQUFPO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUN6QixDQUFDOzs7WUF4R0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7YUFDM0I7Ozs7WUFUa0IsVUFBVTtZQUNyQixhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLFdBQVc7Ozs7SUFTakIsbUNBQWE7O0lBQ2Isc0NBQVk7O0lBQ1osb0NBQVU7Ozs7O0lBQ1YsbUNBQW1COzs7OztJQUVQLDBDQUE0Qzs7Ozs7SUFDNUMsNkNBQXFDOzs7OztJQUNyQyx5Q0FBdUM7Ozs7O0lBQ3ZDLDJDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2VhcmNoU2VydmljZX0gZnJvbSBcIi4vc2VhcmNoLnNlcnZpY2VcIjtcbmltcG9ydCB7SGlnaGxpZ2h0U2VhcmNoUGlwZX0gZnJvbSBcIi4vcGlwZXNcIjtcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gXCIuL3pvb20uc2VydmljZVwiO1xuaW1wb3J0ICogYXMganF1ZXJ5IGZyb20gXCJqcXVlcnlcIjtcbmNvbnN0ICQgPSBqcXVlcnk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tnZFNlYXJjaGFibGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hhYmxlRGlyZWN0aXZlIHtcblxuICB0ZXh0OiBzdHJpbmc7XG4gIGN1cnJlbnQgPSAwO1xuICB0b3RhbCA9IDA7XG4gIHByaXZhdGUgem9vbSA9IDEwMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaGlnaGxpZ2h0OiBIaWdobGlnaHRTZWFyY2hQaXBlLFxuICAgICAgICAgICAgICBwcml2YXRlIF96b29tU2VydmljZTogWm9vbVNlcnZpY2UpIHtcbiAgICBfc2VhcmNoU2VydmljZS5jdXJyZW50Q2hhbmdlLnN1YnNjcmliZSgoY3VycmVudDogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnQgPSBjdXJyZW50O1xuICAgICAgaWYgKHRoaXMuY3VycmVudCAhPT0gMCkge1xuICAgICAgICB0aGlzLm1vdmVUb0N1cnJlbnQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9zZWFyY2hTZXJ2aWNlLnRleHRDaGFuZ2Uuc3Vic2NyaWJlKCh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMudGV4dCA9IHRleHQ7XG4gICAgICB0aGlzLmhpZ2hsaWdodFNlYXJjaCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy56b29tID0gX3pvb21TZXJ2aWNlLnpvb20gPyBfem9vbVNlcnZpY2Uuem9vbSA6IHRoaXMuem9vbTtcbiAgICBfem9vbVNlcnZpY2Uuem9vbUNoYW5nZS5zdWJzY3JpYmUoKHZhbDogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLnpvb20gPSB2YWwgPyB2YWwgOiB0aGlzLnpvb207XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhpZ2hsaWdodFNlYXJjaCgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuX2VsZW1lbnRSZWYgPyB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgOiBudWxsO1xuICAgIGlmIChlbCkge1xuICAgICAgdGhpcy5jbGVhbkhpZ2hsaWdodChlbCk7XG4gICAgICBpZiAodGhpcy50ZXh0KSB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0RWwoZWwpO1xuICAgICAgICBjb25zdCBjb3VudCA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5nZC1oaWdobGlnaHQnKS5sZW5ndGg7XG4gICAgICAgIHRoaXMudG90YWwgPSBjb3VudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG90YWwgPSAwO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2VhcmNoU2VydmljZS5zZXRUb3RhbCh0aGlzLnRvdGFsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1vdmVUb0N1cnJlbnQoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50Wm9vbSA9IHRoaXMuZ2V0Wm9vbSgpO1xuICAgIGNvbnN0IGVsID0gdGhpcy5fZWxlbWVudFJlZiA/IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgaWYgKGVsKSB7XG4gICAgICBlbC5xdWVyeVNlbGVjdG9yQWxsKCcuZ2QtaGlnaGxpZ2h0LXNlbGVjdCcpLmZvckVhY2goZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICQodmFsdWUpLnJlbW92ZUNsYXNzKCdnZC1oaWdobGlnaHQtc2VsZWN0Jyk7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGN1cnJlbnRFbCA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5nZC1oaWdobGlnaHQnKVt0aGlzLmN1cnJlbnQgLSAxXTtcbiAgICAgICQoY3VycmVudEVsKS5hZGRDbGFzcygnZ2QtaGlnaGxpZ2h0LXNlbGVjdCcpO1xuICAgICAgaWYgKGN1cnJlbnRFbCkge1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgdG9wOiAoJChjdXJyZW50RWwpLm9mZnNldCgpLnRvcCkgKyBlbC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuc2Nyb2xsVG9wIC0gMTUwLFxuICAgICAgICB9O1xuICAgICAgICAvLyB1c2luZyBwb2x5ZmlsbFxuICAgICAgICBlbC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuc2Nyb2xsKG9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0RWwoZWw6IEVsZW1lbnQpIHtcbiAgICBjb25zdCB0ZXh0Tm9kZXMgPSAkKGVsKS5maW5kKCcqJykuY29udGVudHMoKS5maWx0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgbm9kZU5hbWUgPSB0aGlzLnBhcmVudEVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGNoZWNrQ2xhc3MgPSAoPEVsZW1lbnQ+dGhpcykuY2xhc3NMaXN0ID8gISg8RWxlbWVudD50aGlzKS5jbGFzc0xpc3QuY29udGFpbnMoJ2dkLWhpZ2hsaWdodCcpIDogdHJ1ZTtcbiAgICAgIHJldHVybiB0aGlzLm5vZGVUeXBlID09PSAzICYmXG4gICAgICAgIHRoaXMudGV4dENvbnRlbnQudHJpbSgpLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgICBub2RlTmFtZSAhPT0gJ3N0eWxlJyAmJlxuICAgICAgICBub2RlTmFtZSAhPT0gJ3RpdGxlJyAmJlxuICAgICAgICBub2RlTmFtZSAhPT0gJ2JvZHknICYmXG4gICAgICAgIG5vZGVOYW1lICE9PSAnc2NyaXB0JyAmJlxuICAgICAgICBjaGVja0NsYXNzO1xuICAgIH0pO1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnRleHQ7XG4gICAgY29uc3QgaGlnaGxpZ2h0ID0gdGhpcy5faGlnaGxpZ2h0O1xuICAgIHRleHROb2Rlcy5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcbiAgICAgIGxldCBjb250ZW50ID0gJHRoaXMudGV4dCgpO1xuICAgICAgY29udGVudCA9IGhpZ2hsaWdodC50cmFuc2Zvcm0oY29udGVudCwgdGV4dCk7XG4gICAgICAkdGhpcy5yZXBsYWNlV2l0aChjb250ZW50KTtcbiAgICB9KTtcbiAgICBlbC5ub3JtYWxpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW5IaWdobGlnaHQoZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3Qgbm9kZUxpc3RPZiA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5nZC1oaWdobGlnaHQnKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVMaXN0T2YubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBub2RlTGlzdE9mLml0ZW0oaSk7XG4gICAgICBlbGVtZW50LnJlcGxhY2VXaXRoKCg8SFRNTEVsZW1lbnQ+ZWxlbWVudCkuaW5uZXJUZXh0KTtcbiAgICB9XG4gICAgZWwubm9ybWFsaXplKCk7XG4gIH1cblxuICBwcml2YXRlIGdldFpvb20oKSB7XG4gICAgcmV0dXJuIHRoaXMuem9vbSAvIDEwMDtcbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvc2VhcmNoYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDNUMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOztNQUMzQixDQUFDLEdBQUcsTUFBTTtBQUtoQixNQUFNLE9BQU8sbUJBQW1COzs7Ozs7O0lBTzlCLFlBQW9CLFdBQW9DLEVBQ3BDLGNBQTZCLEVBQzdCLFVBQStCLEVBQy9CLFlBQXlCO1FBSHpCLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQVA3QyxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNGLFNBQUksR0FBRyxHQUFHLENBQUM7UUFNakIsY0FBYyxDQUFDLGFBQWEsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxPQUFlLEVBQUUsRUFBRTtZQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssQ0FBQyxFQUFFO2dCQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdEI7UUFDSCxDQUFDLEVBQUMsQ0FBQztRQUVILGNBQWMsQ0FBQyxVQUFV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QyxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLG1CQUFhLE9BQU8sRUFBQSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdkQ7UUFDRCxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7Ozs7SUFFTyxPQUFPO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUN6QixDQUFDOzs7WUF4R0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7YUFDM0I7Ozs7WUFUa0IsVUFBVTtZQUNyQixhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLFdBQVc7Ozs7SUFTakIsbUNBQWE7O0lBQ2Isc0NBQVk7O0lBQ1osb0NBQVU7Ozs7O0lBQ1YsbUNBQW1COzs7OztJQUVQLDBDQUE0Qzs7Ozs7SUFDNUMsNkNBQXFDOzs7OztJQUNyQyx5Q0FBdUM7Ozs7O0lBQ3ZDLDJDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2VhcmNoU2VydmljZX0gZnJvbSBcIi4vc2VhcmNoLnNlcnZpY2VcIjtcbmltcG9ydCB7SGlnaGxpZ2h0U2VhcmNoUGlwZX0gZnJvbSBcIi4vcGlwZXNcIjtcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gXCIuL3pvb20uc2VydmljZVwiO1xuaW1wb3J0ICogYXMganF1ZXJ5IGZyb20gXCJqcXVlcnlcIjtcbmNvbnN0ICQgPSBqcXVlcnk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tnZFNlYXJjaGFibGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hhYmxlRGlyZWN0aXZlIHtcblxuICB0ZXh0OiBzdHJpbmc7XG4gIGN1cnJlbnQgPSAwO1xuICB0b3RhbCA9IDA7XG4gIHByaXZhdGUgem9vbSA9IDEwMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaGlnaGxpZ2h0OiBIaWdobGlnaHRTZWFyY2hQaXBlLFxuICAgICAgICAgICAgICBwcml2YXRlIF96b29tU2VydmljZTogWm9vbVNlcnZpY2UpIHtcbiAgICBfc2VhcmNoU2VydmljZS5jdXJyZW50Q2hhbmdlLnN1YnNjcmliZSgoY3VycmVudDogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnQgPSBjdXJyZW50O1xuICAgICAgaWYgKHRoaXMuY3VycmVudCAhPT0gMCkge1xuICAgICAgICB0aGlzLm1vdmVUb0N1cnJlbnQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9zZWFyY2hTZXJ2aWNlLnRleHRDaGFuZ2Uuc3Vic2NyaWJlKCh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMudGV4dCA9IHRleHQ7XG4gICAgICB0aGlzLmhpZ2hsaWdodFNlYXJjaCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy56b29tID0gX3pvb21TZXJ2aWNlLnpvb20gPyBfem9vbVNlcnZpY2Uuem9vbSA6IHRoaXMuem9vbTtcbiAgICBfem9vbVNlcnZpY2Uuem9vbUNoYW5nZS5zdWJzY3JpYmUoKHZhbDogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLnpvb20gPSB2YWwgPyB2YWwgOiB0aGlzLnpvb207XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhpZ2hsaWdodFNlYXJjaCgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuX2VsZW1lbnRSZWYgPyB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgOiBudWxsO1xuICAgIGlmIChlbCkge1xuICAgICAgdGhpcy5jbGVhbkhpZ2hsaWdodChlbCk7XG4gICAgICBpZiAodGhpcy50ZXh0KSB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0RWwoZWwpO1xuICAgICAgICBjb25zdCBjb3VudCA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5nZC1oaWdobGlnaHQnKS5sZW5ndGg7XG4gICAgICAgIHRoaXMudG90YWwgPSBjb3VudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG90YWwgPSAwO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2VhcmNoU2VydmljZS5zZXRUb3RhbCh0aGlzLnRvdGFsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1vdmVUb0N1cnJlbnQoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50Wm9vbSA9IHRoaXMuZ2V0Wm9vbSgpO1xuICAgIGNvbnN0IGVsID0gdGhpcy5fZWxlbWVudFJlZiA/IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgaWYgKGVsKSB7XG4gICAgICBlbC5xdWVyeVNlbGVjdG9yQWxsKCcuZ2QtaGlnaGxpZ2h0LXNlbGVjdCcpLmZvckVhY2goZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICQodmFsdWUpLnJlbW92ZUNsYXNzKCdnZC1oaWdobGlnaHQtc2VsZWN0Jyk7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGN1cnJlbnRFbCA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5nZC1oaWdobGlnaHQnKVt0aGlzLmN1cnJlbnQgLSAxXTtcbiAgICAgICQoY3VycmVudEVsKS5hZGRDbGFzcygnZ2QtaGlnaGxpZ2h0LXNlbGVjdCcpO1xuICAgICAgaWYgKGN1cnJlbnRFbCkge1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgdG9wOiAoJChjdXJyZW50RWwpLm9mZnNldCgpLnRvcCAqIGN1cnJlbnRab29tKSArIGVsLnBhcmVudEVsZW1lbnQuc2Nyb2xsVG9wIC0gMTUwLFxuICAgICAgICB9O1xuICAgICAgICAvLyB1c2luZyBwb2x5ZmlsbFxuICAgICAgICBlbC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuc2Nyb2xsKG9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0RWwoZWw6IEVsZW1lbnQpIHtcbiAgICBjb25zdCB0ZXh0Tm9kZXMgPSAkKGVsKS5maW5kKCcqJykuY29udGVudHMoKS5maWx0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgbm9kZU5hbWUgPSB0aGlzLnBhcmVudEVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGNoZWNrQ2xhc3MgPSAoPEVsZW1lbnQ+dGhpcykuY2xhc3NMaXN0ID8gISg8RWxlbWVudD50aGlzKS5jbGFzc0xpc3QuY29udGFpbnMoJ2dkLWhpZ2hsaWdodCcpIDogdHJ1ZTtcbiAgICAgIHJldHVybiB0aGlzLm5vZGVUeXBlID09PSAzICYmXG4gICAgICAgIHRoaXMudGV4dENvbnRlbnQudHJpbSgpLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgICBub2RlTmFtZSAhPT0gJ3N0eWxlJyAmJlxuICAgICAgICBub2RlTmFtZSAhPT0gJ3RpdGxlJyAmJlxuICAgICAgICBub2RlTmFtZSAhPT0gJ2JvZHknICYmXG4gICAgICAgIG5vZGVOYW1lICE9PSAnc2NyaXB0JyAmJlxuICAgICAgICBjaGVja0NsYXNzO1xuICAgIH0pO1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnRleHQ7XG4gICAgY29uc3QgaGlnaGxpZ2h0ID0gdGhpcy5faGlnaGxpZ2h0O1xuICAgIHRleHROb2Rlcy5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcbiAgICAgIGxldCBjb250ZW50ID0gJHRoaXMudGV4dCgpO1xuICAgICAgY29udGVudCA9IGhpZ2hsaWdodC50cmFuc2Zvcm0oY29udGVudCwgdGV4dCk7XG4gICAgICAkdGhpcy5yZXBsYWNlV2l0aChjb250ZW50KTtcbiAgICB9KTtcbiAgICBlbC5ub3JtYWxpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW5IaWdobGlnaHQoZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3Qgbm9kZUxpc3RPZiA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5nZC1oaWdobGlnaHQnKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVMaXN0T2YubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBub2RlTGlzdE9mLml0ZW0oaSk7XG4gICAgICBlbGVtZW50LnJlcGxhY2VXaXRoKCg8SFRNTEVsZW1lbnQ+ZWxlbWVudCkuaW5uZXJUZXh0KTtcbiAgICB9XG4gICAgZWwubm9ybWFsaXplKCk7XG4gIH1cblxuICBwcml2YXRlIGdldFpvb20oKSB7XG4gICAgcmV0dXJuIHRoaXMuem9vbSAvIDEwMDtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/dist/libs/common-components/esm5/groupdocs.examples.angular-common-components.js b/dist/libs/common-components/esm5/groupdocs.examples.angular-common-components.js index 1f867afc8..41e0b52d1 100644 --- a/dist/libs/common-components/esm5/groupdocs.examples.angular-common-components.js +++ b/dist/libs/common-components/esm5/groupdocs.examples.angular-common-components.js @@ -5,6 +5,6 @@ /** * Generated bundle index. Do not edit. */ -export { CommonComponentsModule, Api, ConfigService, CommonModals, ModalService, PageModel, RotatedPage, FileCredentials, SaveFile, FileDescription, FileModel, HttpError, FileUtil, FileService, UploadFilesService, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe, HighlightSearchPipe, NavigateService, PagePreloadService, ZoomService, RenderPrintService, ErrorInterceptorService, ExceptionMessageService, PasswordService, WindowService, ViewportService, BrowseFilesModalComponent, ButtonComponent, DisabledCursorDirective, DndDirective, DocumentComponent, ErrorModalComponent, InitStateComponent, LogoComponent, ModalComponent, PageComponent, PasswordRequiredComponent, RenderPrintDirective, RotationDirective, ScrollableDirective, SearchService, SearchComponent, SearchableDirective, SelectComponent, TooltipComponent, TopToolbarComponent, SidePanelComponent, UploadFileZoneComponent, ZoomDirective, SelectionService, OnCloseService, LoadingMaskService, LoadingMaskInterceptorService, FormattingDirective, Formatting, FormattingService, BackFormattingService, EditorDirective, EditHtmlService, ColorPickerComponent, LoadingMaskComponent, SuccessModalComponent, TabComponent, TabbedToolbarsComponent, TabActivatorService, DropDownToggleComponent, DropDownItemsComponent, DropDownItemComponent, DropDownComponent } from './index'; +export { CommonComponentsModule, Api, ConfigService, CommonModals, ModalService, PageModel, RotatedPage, FileCredentials, SaveFile, FileDescription, FileModel, HttpError, FileUtil, FileService, UploadFilesService, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe, HighlightSearchPipe, NavigateService, PagePreloadService, ZoomService, RenderPrintService, ErrorInterceptorService, CustomHammerConfig, ExceptionMessageService, PasswordService, RotationService, WindowService, ViewportService, BrowseFilesModalComponent, ButtonComponent, DisabledCursorDirective, DndDirective, DocumentComponent, ErrorModalComponent, InitStateComponent, LogoComponent, ModalComponent, PageComponent, PasswordRequiredComponent, RenderPrintDirective, RotationDirective, ScrollableDirective, SearchService, SearchComponent, SearchableDirective, SelectComponent, TooltipComponent, TopToolbarComponent, SidePanelComponent, UploadFileZoneComponent, ZoomDirective, SelectionService, OnCloseService, LoadingMaskService, LoadingMaskInterceptorService, FormattingDirective, Formatting, FormattingService, BackFormattingService, EditorDirective, EditHtmlService, ColorPickerComponent, LoadingMaskComponent, SuccessModalComponent, TabComponent, TabbedToolbarsComponent, TabActivatorService, DropDownToggleComponent, DropDownItemsComponent, DropDownItemComponent, DropDownComponent } from './index'; export { TabsComponent as ɵa } from './lib/tabs/tabs.component'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXItY29tbW9uLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci1jb21tb24tY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb3pDQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHtUYWJzQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvdGFicy90YWJzLmNvbXBvbmVudCc7Il19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXItY29tbW9uLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci1jb21tb24tY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEseTFDQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHtUYWJzQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvdGFicy90YWJzLmNvbXBvbmVudCc7Il19 \ No newline at end of file diff --git a/dist/libs/common-components/esm5/lib/common-components.module.js b/dist/libs/common-components/esm5/lib/common-components.module.js index 495270ef6..0d150cddd 100644 --- a/dist/libs/common-components/esm5/lib/common-components.module.js +++ b/dist/libs/common-components/esm5/lib/common-components.module.js @@ -39,7 +39,9 @@ import { ErrorModalComponent } from './error-modal/error-modal.component'; import { PasswordRequiredComponent } from './password-required/password-required.component'; import { ExceptionMessageService } from "./exception-message.service"; import { PasswordService } from "./password.service"; +import { RotationService } from "./rotation.service"; import { ErrorInterceptorService } from "./error-interceptor.service"; +import { CustomHammerConfig } from "./custom-hammer-config"; import { SearchComponent } from './search/search.component'; import { SearchableDirective } from './searchable.directive'; import { SearchService } from "./search.service"; @@ -79,7 +81,9 @@ var providers = [ConfigService, ZoomService, ExceptionMessageService, PasswordService, + RotationService, ErrorInterceptorService, + CustomHammerConfig, SearchService, WindowService, ViewportService, @@ -181,4 +185,4 @@ var CommonComponentsModule = /** @class */ (function () { return CommonComponentsModule; }()); export { CommonComponentsModule }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWNvbXBvbmVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2NvbW1vbi1jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDeEQsT0FBTyxFQUFDLEdBQUcsRUFBRSxhQUFhLEdBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxN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TW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtUb3BUb29sYmFyQ29tcG9uZW50fSBmcm9tICcuL3RvcC10b29sYmFyL3RvcC10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQge1NpZGVQYW5lbENvbXBvbmVudH0gZnJvbSAnLi9zaWRlLXBhbmVsL3NpZGUtcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7QnV0dG9uQ29tcG9uZW50fSBmcm9tICcuL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7TG9nb0NvbXBvbmVudH0gZnJvbSAnLi9sb2dvL2xvZ28uY29tcG9uZW50JztcbmltcG9ydCB7VG9vbHRpcENvbXBvbmVudH0gZnJvbSAnLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7Rm9udEF3ZXNvbWVNb2R1bGV9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7bGlicmFyeX0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlJztcbmltcG9ydCB7ZmFzfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHtmYXJ9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXJlZ3VsYXItc3ZnLWljb25zJztcbmltcG9ydCB7QXBpLCBDb25maWdTZXJ2aWNlLH0gZnJvbSBcIi4vY29uZmlnLnNlcnZpY2VcIjtcbmltcG9ydCB7TW9kYWxTZXJ2aWNlfSBmcm9tIFwiLi9tb2RhbC5zZXJ2aWNlXCI7XG5pbXBvcnQge01vZGFsQ29tcG9uZW50fSBmcm9tICcuL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQge0Jyb3dzZUZpbGVzTW9kYWxDb21wb25lbnR9IGZyb20gJy4vYnJvd3NlLWZpbGVzLW1vZGFsL2Jyb3dzZS1maWxlcy1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHtGaWxlTW9kZWwsIEZpbGVTZXJ2aWNlLCBGaWxlVXRpbH0gZnJvbSBcIi4vZmlsZS5zZXJ2aWNlXCI7XG5pbXBvcnQge0RvY3VtZW50Q29tcG9uZW50fSBmcm9tICcuL2RvY3VtZW50L2RvY3VtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge1BhZ2VDb21wb25lbnR9IGZyb20gJy4vcGFnZS9wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQge0hpZ2hsaWdodFNlYXJjaFBpcGUsIFNhbml0aXplSHRtbFBpcGUsIFNhbml0aXplUmVzb3VyY2VIdG1sUGlwZSwgU2FuaXRpemVTdHlsZVBpcGV9IGZyb20gXCIuL3BpcGVzXCI7XG5pbXBvcnQge1VwbG9hZEZpbGVab25lQ29tcG9uZW50fSBmcm9tICcuL3VwbG9hZC1maWxlLXpvbmUvdXBsb2FkLWZpbGUtem9uZS5jb21wb25lbnQnO1xuaW1wb3J0IHtVcGxvYWRGaWxlc1NlcnZpY2V9IGZyb20gXCIuL3VwbG9hZC1maWxlcy5zZXJ2aWNlXCI7XG5pbXBvcnQge0RuZERpcmVjdGl2ZX0gZnJvbSAnLi9kbmQuZGlyZWN0aXZlJztcbmltcG9ydCB7U2Nyb2xsYWJsZURpcmVjdGl2ZX0gZnJvbSAnLi9zY3JvbGxhYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge05hdmlnYXRlU2VydmljZX0gZnJvbSBcIi4vbmF2aWdhdGUuc2VydmljZVwiO1xuaW1wb3J0IHtQYWdlUHJlbG9hZFNlcnZpY2V9IGZyb20gXCIuL3BhZ2UtcHJlbG9hZC5zZXJ2aWNlXCI7XG5pbXBvcnQge1pvb21EaXJlY3RpdmV9IGZyb20gJy4vem9vbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSBcIi4vem9vbS5zZXJ2aWNlXCI7XG5pbXBvcnQge1NlbGVjdENvbXBvbmVudH0gZnJvbSAnLi9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQge0Rpc2FibGVkQ3Vyc29yRGlyZWN0aXZlfSBmcm9tICcuL2Rpc2FibGVkLWN1cnNvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtSb3RhdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi9yb3RhdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtJbml0U3RhdGVDb21wb25lbnR9IGZyb20gJy4vaW5pdC1zdGF0ZS9pbml0LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQge1JlbmRlclByaW50U2VydmljZX0gZnJvbSBcIi4vcmVuZGVyLXByaW50LnNlcnZpY2VcIjtcbmltcG9ydCB7UmVuZGVyUHJpbnREaXJlY3RpdmV9IGZyb20gJy4vcmVuZGVyLXByaW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0Vycm9yTW9kYWxDb21wb25lbnR9IGZyb20gJy4vZXJyb3ItbW9kYWwvZXJyb3ItbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7UGFzc3dvcmRSZXF1aXJlZENvbXBvbmVudH0gZnJvbSAnLi9wYXNzd29yZC1yZXF1aXJlZC9wYXNzd29yZC1yZXF1aXJlZC5jb21wb25lbnQnO1xuaW1wb3J0IHtFeGNlcHRpb25NZXNzYWdlU2VydmljZX0gZnJvbSBcIi4vZXhjZXB0aW9uLW1lc3NhZ2Uuc2VydmljZVwiO1xuaW1wb3J0IHtQYXNzd29yZFNlcnZpY2V9IGZyb20gXCIuL3Bhc3N3b3JkLnNlcnZpY2VcIjtcbmltcG9ydCB7RXJyb3JJbnRlcmNlcHRvclNlcnZpY2V9IGZyb20gXCIuL2Vycm9yLWludGVyY2VwdG9yLnNlcnZpY2VcIjtcbmltcG9ydCB7U2VhcmNoQ29tcG9uZW50fSBmcm9tICcuL3NlYXJjaC9zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7U2VhcmNoYWJsZURpcmVjdGl2ZX0gZnJvbSAnLi9zZWFyY2hhYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1NlYXJjaFNlcnZpY2V9IGZyb20gXCIuL3NlYXJjaC5zZXJ2aWNlXCI7XG5pbXBvcnQge1dpbmRvd1NlcnZpY2V9IGZyb20gXCIuL3dpbmRvdy5zZXJ2aWNlXCI7XG5pbXBvcnQge1ZpZXdwb3J0U2VydmljZX0gZnJvbSBcIi4vdmlld3BvcnQuc2VydmljZVwiO1xuaW1wb3J0IHtUYWJiZWRUb29sYmFyc0NvbXBvbmVudH0gZnJvbSAnLi90YWJiZWQtdG9vbGJhcnMvdGFiYmVkLXRvb2xiYXJzLmNvbXBvbmVudCc7XG5pbXBvcnQge1RhYkNvbXBvbmVudH0gZnJvbSBcIi4vdGFiL3RhYi5jb21wb25lbnRcIjtcbmltcG9ydCB7VGFic0NvbXBvbmVudH0gZnJvbSBcIi4vdGFicy90YWJzLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtGb3JtYXR0aW5nU2VydmljZX0gZnJvbSBcIi4vZm9ybWF0dGluZy5zZXJ2aWNlXCI7XG5pbXBvcnQge0NvbG9yUGlja2VyQ29tcG9uZW50fSBmcm9tICcuL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7Rm9ybWF0dGluZ0RpcmVjdGl2ZX0gZnJvbSAnLi9mb3JtYXR0aW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JhY2tGb3JtYXR0aW5nU2VydmljZX0gZnJvbSBcIi4vYmFjay1mb3JtYXR0aW5nLnNlcnZpY2VcIjtcbmltcG9ydCB7T25DbG9zZVNlcnZpY2V9IGZyb20gXCIuL29uLWNsb3NlLnNlcnZpY2VcIjtcbmltcG9ydCB7U3VjY2Vzc01vZGFsQ29tcG9uZW50fSBmcm9tICcuL3N1Y2Nlc3MtbW9kYWwvc3VjY2Vzcy1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHtFZGl0b3JEaXJlY3RpdmV9IGZyb20gJy4vZWRpdG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0xvYWRpbmdNYXNrQ29tcG9uZW50fSBmcm9tICcuL2xvYWRpbmctbWFzay9sb2FkaW5nLW1hc2suY29tcG9uZW50JztcbmltcG9ydCB7TG9hZGluZ01hc2tTZXJ2aWNlfSBmcm9tICcuL2xvYWRpbmctbWFzay5zZXJ2aWNlJztcbmltcG9ydCB7TG9hZGluZ01hc2tJbnRlcmNlcHRvclNlcnZpY2V9IGZyb20gXCIuL2xvYWRpbmctbWFzay1pbnRlcmNlcHRvci5zZXJ2aWNlXCI7XG5pbXBvcnQge1RhYkFjdGl2YXRvclNlcnZpY2V9IGZyb20gXCIuL3RhYi1hY3RpdmF0b3Iuc2VydmljZVwiO1xuaW1wb3J0IHsgRHJvcERvd25Db21wb25lbnQsRHJvcERvd25JdGVtQ29tcG9uZW50LERyb3BEb3duSXRlbXNDb21wb25lbnQsRHJvcERvd25Ub2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2Ryb3AtZG93bi9kcm9wLWRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IENsaWNrT3V0c2lkZU1vZHVsZSB9IGZyb20gJ25nLWNsaWNrLW91dHNpZGUnO1xuXG5jb25zdCBwcm92aWRlcnMgPSBbQ29uZmlnU2VydmljZSxcbiAgQXBpLFxuICBNb2RhbFNlcnZpY2UsXG4gIEZpbGVTZXJ2aWNlLFxuICBGaWxlTW9kZWwsXG4gIEZpbGVVdGlsLFxuICBTYW5pdGl6ZUh0bWxQaXBlLFxuICBTYW5pdGl6ZVJlc291cmNlSHRtbFBpcGUsXG4gIFNhbml0aXplU3R5bGVQaXBlLFxuICBIaWdobGlnaHRTZWFyY2hQaXBlLFxuICBVcGxvYWRGaWxlc1NlcnZpY2UsXG4gIFJlbmRlclByaW50U2VydmljZSxcbiAgTmF2aWdhdGVTZXJ2aWNlLFxuICBQYWdlUHJlbG9hZFNlcnZpY2UsXG4gIFpvb21TZXJ2aWNlLFxuICBFeGNlcHRpb25NZXNzYWdlU2VydmljZSxcbiAgUGFzc3dvcmRTZXJ2aWNlLFxuICBFcnJvckludGVyY2VwdG9yU2VydmljZSxcbiAgU2VhcmNoU2VydmljZSxcbiAgV2luZG93U2VydmljZSxcbiAgVmlld3BvcnRTZXJ2aWNlLFxuICBGb3JtYXR0aW5nU2VydmljZSxcbiAgQmFja0Zvcm1hdHRpbmdTZXJ2aWNlLFxuICBPbkNsb3NlU2VydmljZSxcbiAgTG9hZGluZ01hc2tJbnRlcmNlcHRvclNlcnZpY2UsXG4gIExvYWRpbmdNYXNrU2VydmljZSxcbiAgVGFiQWN0aXZhdG9yU2VydmljZV07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvbnRBd2Vzb21lTW9kdWxlLCBDbGlja091dHNpZGVNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBUb3BUb29sYmFyQ29tcG9uZW50LFxuICAgIFNpZGVQYW5lbENvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgTG9nb0NvbXBvbmVudCxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIE1vZGFsQ29tcG9uZW50LFxuICAgIEJyb3dzZUZpbGVzTW9kYWxDb21wb25lbnQsXG4gICAgRG9jdW1lbnRDb21wb25lbnQsXG4gICAgUGFnZUNvbXBvbmVudCxcbiAgICBTYW5pdGl6ZUh0bWxQaXBlLFxuICAgIFNhbml0aXplUmVzb3VyY2VIdG1sUGlwZSxcbiAgICBTYW5pdGl6ZVN0eWxlUGlwZSxcbiAgICBIaWdobGlnaHRTZWFyY2hQaXBlLFxuICAgIFVwbG9hZEZpbGVab25lQ29tcG9uZW50LFxuICAgIERuZERpcmVjdGl2ZSxcbiAgICBTY3JvbGxhYmxlRGlyZWN0aXZlLFxuICAgIFpvb21EaXJlY3RpdmUsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIERpc2FibGVkQ3Vyc29yRGlyZWN0aXZlLFxuICAgIFJvdGF0aW9uRGlyZWN0aXZlLFxuICAgIEluaXRTdGF0ZUNvbXBvbmVudCxcbiAgICBSZW5kZXJQcmludERpcmVjdGl2ZSxcbiAgICBFcnJvck1vZGFsQ29tcG9uZW50LFxuICAgIFBhc3N3b3JkUmVxdWlyZWRDb21wb25lbnQsXG4gICAgU2VhcmNoQ29tcG9uZW50LFxuICAgIFNlYXJjaGFibGVEaXJlY3RpdmUsXG4gICAgVGFiYmVkVG9vbGJhcnNDb21wb25lbnQsXG4gICAgVGFiQ29tcG9uZW50LFxuICAgIFRhYnNDb21wb25lbnQsXG4gICAgQ29sb3JQaWNrZXJDb21wb25lbnQsXG4gICAgRm9ybWF0dGluZ0RpcmVjdGl2ZSxcbiAgICBTdWNjZXNzTW9kYWxDb21wb25lbnQsXG4gICAgRWRpdG9yRGlyZWN0aXZlLFxuICAgIExvYWRpbmdNYXNrQ29tcG9uZW50LFxuICAgIERyb3BEb3duQ29tcG9uZW50LFxuICAgIERyb3BEb3duSXRlbUNvbXBvbmVudCxcbiAgICBEcm9wRG93bkl0ZW1zQ29tcG9uZW50LFxuICAgIERyb3BEb3duVG9nZ2xlQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUb3BUb29sYmFyQ29tcG9uZW50LFxuICAgIFNpZGVQYW5lbENvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgTG9nb0NvbXBvbmVudCxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIE1vZGFsQ29tcG9uZW50LFxuICAgIEJyb3dzZUZpbGVzTW9kYWxDb21wb25lbnQsXG4gICAgRG9jdW1lbnRDb21wb25lbnQsXG4gICAgUGFnZUNvbXBvbmVudCxcbiAgICBTYW5pdGl6ZVJlc291cmNlSHRtbFBpcGUsXG4gICAgU2FuaXRpemVTdHlsZVBpcGUsXG4gICAgSGlnaGxpZ2h0U2VhcmNoUGlwZSxcbiAgICBTYW5pdGl6ZUh0bWxQaXBlLFxuICAgIFVwbG9hZEZpbGVab25lQ29tcG9uZW50LFxuICAgIFNjcm9sbGFibGVEaXJlY3RpdmUsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIFJvdGF0aW9uRGlyZWN0aXZlLFxuICAgIEluaXRTdGF0ZUNvbXBvbmVudCxcbiAgICBSZW5kZXJQcmludERpcmVjdGl2ZSxcbiAgICBFcnJvck1vZGFsQ29tcG9uZW50LFxuICAgIFBhc3N3b3JkUmVxdWlyZWRDb21wb25lbnQsXG4gICAgU2VhcmNoQ29tcG9uZW50LFxuICAgIFNlYXJjaGFibGVEaXJlY3RpdmUsXG4gICAgVGFiYmVkVG9vbGJhcnNDb21wb25lbnQsXG4gICAgVGFiQ29tcG9uZW50LFxuICAgIFRhYnNDb21wb25lbnQsXG4gICAgQ29sb3JQaWNrZXJDb21wb25lbnQsXG4gICAgRm9ybWF0dGluZ0RpcmVjdGl2ZSxcbiAgICBTdWNjZXNzTW9kYWxDb21wb25lbnQsXG4gICAgTG9hZGluZ01hc2tDb21wb25lbnQsXG4gICAgRG5kRGlyZWN0aXZlLFxuICAgIERyb3BEb3duQ29tcG9uZW50LFxuICAgIERyb3BEb3duSXRlbUNvbXBvbmVudCxcbiAgICBEcm9wRG93bkl0ZW1zQ29tcG9uZW50LFxuICAgIERyb3BEb3duVG9nZ2xlQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogcHJvdmlkZXJzXG59KVxuZXhwb3J0IGNsYXNzIENvbW1vbkNvbXBvbmVudHNNb2R1bGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBsaWJyYXJ5LmFkZChmYXMsIGZhcik7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWNvbXBvbmVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2NvbW1vbi1jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDeEQsT0FBTyxFQUFDLEdBQUcsRUFBRSxhQUFhLEdBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDM0csT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUMxRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNwRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDakYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFDLHFCQUFxQixFQUFDLHNCQUFzQixFQUFDLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0lBRWhELFNBQVMsR0FBRyxDQUFDLGFBQWE7SUFDOUIsR0FBRztJQUNILFlBQVk7SUFDWixXQUFXO0lBQ1gsU0FBUztJQUNULFFBQVE7SUFDUixnQkFBZ0I7SUFDaEIsd0JBQXdCO0lBQ3hCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCx1QkFBdUI7SUFDdkIsZUFBZTtJQUNmLGVBQWU7SUFDZix1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixhQUFhO0lBQ2IsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsY0FBYztJQUNkLDZCQUE2QjtJQUM3QixrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUM7QUFFdEI7SUFrRkU7UUFDRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDOztnQkFwRkYsUUFBUSxTQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQztvQkFDOUQsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLHlCQUF5Qjt3QkFDekIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3dCQUN4QixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QseUJBQXlCO3dCQUN6QixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2Isd0JBQXdCO3dCQUN4QixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsWUFBWTt3QkFDWixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7cUJBQ3hCO29CQUNELFNBQVMsRUFBRSxTQUFTO2lCQUNyQjs7OztJQUtELDZCQUFDO0NBQUEsQUFyRkQsSUFxRkM7U0FKWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7VG9wVG9vbGJhckNvbXBvbmVudH0gZnJvbSAnLi90b3AtdG9vbGJhci90b3AtdG9vbGJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1NpZGVQYW5lbENvbXBvbmVudH0gZnJvbSAnLi9zaWRlLXBhbmVsL3NpZGUtcGFuZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtCdXR0b25Db21wb25lbnR9IGZyb20gJy4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge0xvZ29Db21wb25lbnR9IGZyb20gJy4vbG9nby9sb2dvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VG9vbHRpcENvbXBvbmVudH0gZnJvbSAnLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcclxuaW1wb3J0IHtGb250QXdlc29tZU1vZHVsZX0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xyXG5pbXBvcnQge2xpYnJhcnl9IGZyb20gJ0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZSc7XHJcbmltcG9ydCB7ZmFzfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xyXG5pbXBvcnQge2Zhcn0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtcmVndWxhci1zdmctaWNvbnMnO1xyXG5pbXBvcnQge0FwaSwgQ29uZmlnU2VydmljZSx9IGZyb20gXCIuL2NvbmZpZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7TW9kYWxTZXJ2aWNlfSBmcm9tIFwiLi9tb2RhbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7TW9kYWxDb21wb25lbnR9IGZyb20gJy4vbW9kYWwvbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtCcm93c2VGaWxlc01vZGFsQ29tcG9uZW50fSBmcm9tICcuL2Jyb3dzZS1maWxlcy1tb2RhbC9icm93c2UtZmlsZXMtbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtGaWxlTW9kZWwsIEZpbGVTZXJ2aWNlLCBGaWxlVXRpbH0gZnJvbSBcIi4vZmlsZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RG9jdW1lbnRDb21wb25lbnR9IGZyb20gJy4vZG9jdW1lbnQvZG9jdW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHtQYWdlQ29tcG9uZW50fSBmcm9tICcuL3BhZ2UvcGFnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0hpZ2hsaWdodFNlYXJjaFBpcGUsIFNhbml0aXplSHRtbFBpcGUsIFNhbml0aXplUmVzb3VyY2VIdG1sUGlwZSwgU2FuaXRpemVTdHlsZVBpcGV9IGZyb20gXCIuL3BpcGVzXCI7XHJcbmltcG9ydCB7VXBsb2FkRmlsZVpvbmVDb21wb25lbnR9IGZyb20gJy4vdXBsb2FkLWZpbGUtem9uZS91cGxvYWQtZmlsZS16b25lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VXBsb2FkRmlsZXNTZXJ2aWNlfSBmcm9tIFwiLi91cGxvYWQtZmlsZXMuc2VydmljZVwiO1xyXG5pbXBvcnQge0RuZERpcmVjdGl2ZX0gZnJvbSAnLi9kbmQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtTY3JvbGxhYmxlRGlyZWN0aXZlfSBmcm9tICcuL3Njcm9sbGFibGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtOYXZpZ2F0ZVNlcnZpY2V9IGZyb20gXCIuL25hdmlnYXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtQYWdlUHJlbG9hZFNlcnZpY2V9IGZyb20gXCIuL3BhZ2UtcHJlbG9hZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Wm9vbURpcmVjdGl2ZX0gZnJvbSAnLi96b29tLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gXCIuL3pvb20uc2VydmljZVwiO1xyXG5pbXBvcnQge1NlbGVjdENvbXBvbmVudH0gZnJvbSAnLi9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGlzYWJsZWRDdXJzb3JEaXJlY3RpdmV9IGZyb20gJy4vZGlzYWJsZWQtY3Vyc29yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7Um90YXRpb25EaXJlY3RpdmV9IGZyb20gJy4vcm90YXRpb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHtJbml0U3RhdGVDb21wb25lbnR9IGZyb20gJy4vaW5pdC1zdGF0ZS9pbml0LXN0YXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UmVuZGVyUHJpbnRTZXJ2aWNlfSBmcm9tIFwiLi9yZW5kZXItcHJpbnQuc2VydmljZVwiO1xyXG5pbXBvcnQge1JlbmRlclByaW50RGlyZWN0aXZlfSBmcm9tICcuL3JlbmRlci1wcmludC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge0Vycm9yTW9kYWxDb21wb25lbnR9IGZyb20gJy4vZXJyb3ItbW9kYWwvZXJyb3ItbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtQYXNzd29yZFJlcXVpcmVkQ29tcG9uZW50fSBmcm9tICcuL3Bhc3N3b3JkLXJlcXVpcmVkL3Bhc3N3b3JkLXJlcXVpcmVkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RXhjZXB0aW9uTWVzc2FnZVNlcnZpY2V9IGZyb20gXCIuL2V4Y2VwdGlvbi1tZXNzYWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtQYXNzd29yZFNlcnZpY2V9IGZyb20gXCIuL3Bhc3N3b3JkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSb3RhdGlvblNlcnZpY2V9IGZyb20gXCIuL3JvdGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtFcnJvckludGVyY2VwdG9yU2VydmljZX0gZnJvbSBcIi4vZXJyb3ItaW50ZXJjZXB0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge0N1c3RvbUhhbW1lckNvbmZpZ30gZnJvbSBcIi4vY3VzdG9tLWhhbW1lci1jb25maWdcIjtcclxuaW1wb3J0IHtTZWFyY2hDb21wb25lbnR9IGZyb20gJy4vc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1NlYXJjaGFibGVEaXJlY3RpdmV9IGZyb20gJy4vc2VhcmNoYWJsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1NlYXJjaFNlcnZpY2V9IGZyb20gXCIuL3NlYXJjaC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7V2luZG93U2VydmljZX0gZnJvbSBcIi4vd2luZG93LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtWaWV3cG9ydFNlcnZpY2V9IGZyb20gXCIuL3ZpZXdwb3J0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUYWJiZWRUb29sYmFyc0NvbXBvbmVudH0gZnJvbSAnLi90YWJiZWQtdG9vbGJhcnMvdGFiYmVkLXRvb2xiYXJzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VGFiQ29tcG9uZW50fSBmcm9tIFwiLi90YWIvdGFiLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RhYnNDb21wb25lbnR9IGZyb20gXCIuL3RhYnMvdGFicy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtGb3JtYXR0aW5nU2VydmljZX0gZnJvbSBcIi4vZm9ybWF0dGluZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Q29sb3JQaWNrZXJDb21wb25lbnR9IGZyb20gJy4vY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Zvcm1hdHRpbmdEaXJlY3RpdmV9IGZyb20gJy4vZm9ybWF0dGluZy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge0JhY2tGb3JtYXR0aW5nU2VydmljZX0gZnJvbSBcIi4vYmFjay1mb3JtYXR0aW5nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtPbkNsb3NlU2VydmljZX0gZnJvbSBcIi4vb24tY2xvc2Uuc2VydmljZVwiO1xyXG5pbXBvcnQge1N1Y2Nlc3NNb2RhbENvbXBvbmVudH0gZnJvbSAnLi9zdWNjZXNzLW1vZGFsL3N1Y2Nlc3MtbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtFZGl0b3JEaXJlY3RpdmV9IGZyb20gJy4vZWRpdG9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7TG9hZGluZ01hc2tDb21wb25lbnR9IGZyb20gJy4vbG9hZGluZy1tYXNrL2xvYWRpbmctbWFzay5jb21wb25lbnQnO1xyXG5pbXBvcnQge0xvYWRpbmdNYXNrU2VydmljZX0gZnJvbSAnLi9sb2FkaW5nLW1hc2suc2VydmljZSc7XHJcbmltcG9ydCB7TG9hZGluZ01hc2tJbnRlcmNlcHRvclNlcnZpY2V9IGZyb20gXCIuL2xvYWRpbmctbWFzay1pbnRlcmNlcHRvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VGFiQWN0aXZhdG9yU2VydmljZX0gZnJvbSBcIi4vdGFiLWFjdGl2YXRvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERyb3BEb3duQ29tcG9uZW50LERyb3BEb3duSXRlbUNvbXBvbmVudCxEcm9wRG93bkl0ZW1zQ29tcG9uZW50LERyb3BEb3duVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9kcm9wLWRvd24vZHJvcC1kb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENsaWNrT3V0c2lkZU1vZHVsZSB9IGZyb20gJ25nLWNsaWNrLW91dHNpZGUnO1xyXG5cclxuY29uc3QgcHJvdmlkZXJzID0gW0NvbmZpZ1NlcnZpY2UsXHJcbiAgQXBpLFxyXG4gIE1vZGFsU2VydmljZSxcclxuICBGaWxlU2VydmljZSxcclxuICBGaWxlTW9kZWwsXHJcbiAgRmlsZVV0aWwsXHJcbiAgU2FuaXRpemVIdG1sUGlwZSxcclxuICBTYW5pdGl6ZVJlc291cmNlSHRtbFBpcGUsXHJcbiAgU2FuaXRpemVTdHlsZVBpcGUsXHJcbiAgSGlnaGxpZ2h0U2VhcmNoUGlwZSxcclxuICBVcGxvYWRGaWxlc1NlcnZpY2UsXHJcbiAgUmVuZGVyUHJpbnRTZXJ2aWNlLFxyXG4gIE5hdmlnYXRlU2VydmljZSxcclxuICBQYWdlUHJlbG9hZFNlcnZpY2UsXHJcbiAgWm9vbVNlcnZpY2UsXHJcbiAgRXhjZXB0aW9uTWVzc2FnZVNlcnZpY2UsXHJcbiAgUGFzc3dvcmRTZXJ2aWNlLFxyXG4gIFJvdGF0aW9uU2VydmljZSxcclxuICBFcnJvckludGVyY2VwdG9yU2VydmljZSxcclxuICBDdXN0b21IYW1tZXJDb25maWcsXHJcbiAgU2VhcmNoU2VydmljZSxcclxuICBXaW5kb3dTZXJ2aWNlLFxyXG4gIFZpZXdwb3J0U2VydmljZSxcclxuICBGb3JtYXR0aW5nU2VydmljZSxcclxuICBCYWNrRm9ybWF0dGluZ1NlcnZpY2UsXHJcbiAgT25DbG9zZVNlcnZpY2UsXHJcbiAgTG9hZGluZ01hc2tJbnRlcmNlcHRvclNlcnZpY2UsXHJcbiAgTG9hZGluZ01hc2tTZXJ2aWNlLFxyXG4gIFRhYkFjdGl2YXRvclNlcnZpY2VdO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZSwgQ2xpY2tPdXRzaWRlTW9kdWxlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRvcFRvb2xiYXJDb21wb25lbnQsXHJcbiAgICBTaWRlUGFuZWxDb21wb25lbnQsXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBMb2dvQ29tcG9uZW50LFxyXG4gICAgVG9vbHRpcENvbXBvbmVudCxcclxuICAgIE1vZGFsQ29tcG9uZW50LFxyXG4gICAgQnJvd3NlRmlsZXNNb2RhbENvbXBvbmVudCxcclxuICAgIERvY3VtZW50Q29tcG9uZW50LFxyXG4gICAgUGFnZUNvbXBvbmVudCxcclxuICAgIFNhbml0aXplSHRtbFBpcGUsXHJcbiAgICBTYW5pdGl6ZVJlc291cmNlSHRtbFBpcGUsXHJcbiAgICBTYW5pdGl6ZVN0eWxlUGlwZSxcclxuICAgIEhpZ2hsaWdodFNlYXJjaFBpcGUsXHJcbiAgICBVcGxvYWRGaWxlWm9uZUNvbXBvbmVudCxcclxuICAgIERuZERpcmVjdGl2ZSxcclxuICAgIFNjcm9sbGFibGVEaXJlY3RpdmUsXHJcbiAgICBab29tRGlyZWN0aXZlLFxyXG4gICAgU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgRGlzYWJsZWRDdXJzb3JEaXJlY3RpdmUsXHJcbiAgICBSb3RhdGlvbkRpcmVjdGl2ZSxcclxuICAgIEluaXRTdGF0ZUNvbXBvbmVudCxcclxuICAgIFJlbmRlclByaW50RGlyZWN0aXZlLFxyXG4gICAgRXJyb3JNb2RhbENvbXBvbmVudCxcclxuICAgIFBhc3N3b3JkUmVxdWlyZWRDb21wb25lbnQsXHJcbiAgICBTZWFyY2hDb21wb25lbnQsXHJcbiAgICBTZWFyY2hhYmxlRGlyZWN0aXZlLFxyXG4gICAgVGFiYmVkVG9vbGJhcnNDb21wb25lbnQsXHJcbiAgICBUYWJDb21wb25lbnQsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgQ29sb3JQaWNrZXJDb21wb25lbnQsXHJcbiAgICBGb3JtYXR0aW5nRGlyZWN0aXZlLFxyXG4gICAgU3VjY2Vzc01vZGFsQ29tcG9uZW50LFxyXG4gICAgRWRpdG9yRGlyZWN0aXZlLFxyXG4gICAgTG9hZGluZ01hc2tDb21wb25lbnQsXHJcbiAgICBEcm9wRG93bkNvbXBvbmVudCxcclxuICAgIERyb3BEb3duSXRlbUNvbXBvbmVudCxcclxuICAgIERyb3BEb3duSXRlbXNDb21wb25lbnQsXHJcbiAgICBEcm9wRG93blRvZ2dsZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVG9wVG9vbGJhckNvbXBvbmVudCxcclxuICAgIFNpZGVQYW5lbENvbXBvbmVudCxcclxuICAgIEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIExvZ29Db21wb25lbnQsXHJcbiAgICBUb29sdGlwQ29tcG9uZW50LFxyXG4gICAgTW9kYWxDb21wb25lbnQsXHJcbiAgICBCcm93c2VGaWxlc01vZGFsQ29tcG9uZW50LFxyXG4gICAgRG9jdW1lbnRDb21wb25lbnQsXHJcbiAgICBQYWdlQ29tcG9uZW50LFxyXG4gICAgU2FuaXRpemVSZXNvdXJjZUh0bWxQaXBlLFxyXG4gICAgU2FuaXRpemVTdHlsZVBpcGUsXHJcbiAgICBIaWdobGlnaHRTZWFyY2hQaXBlLFxyXG4gICAgU2FuaXRpemVIdG1sUGlwZSxcclxuICAgIFVwbG9hZEZpbGVab25lQ29tcG9uZW50LFxyXG4gICAgU2Nyb2xsYWJsZURpcmVjdGl2ZSxcclxuICAgIFNlbGVjdENvbXBvbmVudCxcclxuICAgIFJvdGF0aW9uRGlyZWN0aXZlLFxyXG4gICAgSW5pdFN0YXRlQ29tcG9uZW50LFxyXG4gICAgUmVuZGVyUHJpbnREaXJlY3RpdmUsXHJcbiAgICBFcnJvck1vZGFsQ29tcG9uZW50LFxyXG4gICAgUGFzc3dvcmRSZXF1aXJlZENvbXBvbmVudCxcclxuICAgIFNlYXJjaENvbXBvbmVudCxcclxuICAgIFNlYXJjaGFibGVEaXJlY3RpdmUsXHJcbiAgICBUYWJiZWRUb29sYmFyc0NvbXBvbmVudCxcclxuICAgIFRhYkNvbXBvbmVudCxcclxuICAgIFRhYnNDb21wb25lbnQsXHJcbiAgICBDb2xvclBpY2tlckNvbXBvbmVudCxcclxuICAgIEZvcm1hdHRpbmdEaXJlY3RpdmUsXHJcbiAgICBTdWNjZXNzTW9kYWxDb21wb25lbnQsXHJcbiAgICBMb2FkaW5nTWFza0NvbXBvbmVudCxcclxuICAgIERuZERpcmVjdGl2ZSxcclxuICAgIERyb3BEb3duQ29tcG9uZW50LFxyXG4gICAgRHJvcERvd25JdGVtQ29tcG9uZW50LFxyXG4gICAgRHJvcERvd25JdGVtc0NvbXBvbmVudCxcclxuICAgIERyb3BEb3duVG9nZ2xlQ29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IHByb3ZpZGVyc1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbW9uQ29tcG9uZW50c01vZHVsZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBsaWJyYXJ5LmFkZChmYXMsIGZhcik7XHJcbiAgfVxyXG59XHJcbiJdfQ== \ No newline at end of file diff --git a/dist/libs/common-components/esm5/lib/custom-hammer-config.js b/dist/libs/common-components/esm5/lib/custom-hammer-config.js new file mode 100644 index 000000000..bf15bb937 --- /dev/null +++ b/dist/libs/common-components/esm5/lib/custom-hammer-config.js @@ -0,0 +1,34 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { HammerGestureConfig } from '@angular/platform-browser'; +import * as Hammer from 'hammerjs'; +var CustomHammerConfig = /** @class */ (function (_super) { + tslib_1.__extends(CustomHammerConfig, _super); + function CustomHammerConfig() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.overrides = (/** @type {?} */ ({ + // override default settings + 'pinch': { + direction: Hammer.DIRECTION_ALL, + enable: true, + dropRecognizeWith: 'rotate' + }, + 'rotate': { + direction: Hammer.DIRECTION_ALL, + enable: true, + requireFailure: 'pinch' + } + })); + return _this; + } + return CustomHammerConfig; +}(HammerGestureConfig)); +export { CustomHammerConfig }; +if (false) { + /** @type {?} */ + CustomHammerConfig.prototype.overrides; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWhhbW1lci1jb25maWcuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvY3VzdG9tLWhhbW1lci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUVuQztJQUF3Qyw4Q0FBbUI7SUFBM0Q7UUFBQSxxRUFjQztRQWJHLGVBQVMsR0FBRyxtQkFBSzs7WUFFYixPQUFPLEVBQUU7Z0JBQ0wsU0FBUyxFQUFFLE1BQU0sQ0FBQyxhQUFhO2dCQUMvQixNQUFNLEVBQUUsSUFBSTtnQkFDWixpQkFBaUIsRUFBRSxRQUFRO2FBQzlCO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLFNBQVMsRUFBRSxNQUFNLENBQUMsYUFBYTtnQkFDL0IsTUFBTSxFQUFFLElBQUk7Z0JBQ1osY0FBYyxFQUFFLE9BQU87YUFDMUI7U0FDSixFQUFBLENBQUM7O0lBQ04sQ0FBQztJQUFELHlCQUFDO0FBQUQsQ0FBQyxBQWRELENBQXdDLG1CQUFtQixHQWMxRDs7OztJQWJHLHVDQVlFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFtbWVyR2VzdHVyZUNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgKiBhcyBIYW1tZXIgZnJvbSAnaGFtbWVyanMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbUhhbW1lckNvbmZpZyBleHRlbmRzIEhhbW1lckdlc3R1cmVDb25maWcge1xyXG4gICAgb3ZlcnJpZGVzID0gPGFueT57XHJcbiAgICAgICAgIC8vIG92ZXJyaWRlIGRlZmF1bHQgc2V0dGluZ3NcclxuICAgICAgICAncGluY2gnOiB7XHJcbiAgICAgICAgICAgIGRpcmVjdGlvbjogSGFtbWVyLkRJUkVDVElPTl9BTEwsXHJcbiAgICAgICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgZHJvcFJlY29nbml6ZVdpdGg6ICdyb3RhdGUnXHJcbiAgICAgICAgfSxcclxuICAgICAgICAncm90YXRlJzoge1xyXG4gICAgICAgICAgICBkaXJlY3Rpb246IEhhbW1lci5ESVJFQ1RJT05fQUxMLFxyXG4gICAgICAgICAgICBlbmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIHJlcXVpcmVGYWlsdXJlOiAncGluY2gnXHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufSJdfQ== \ No newline at end of file diff --git a/dist/libs/common-components/esm5/lib/document/document.component.js b/dist/libs/common-components/esm5/lib/document/document.component.js index ceaa5b71d..b0be5e434 100644 --- a/dist/libs/common-components/esm5/lib/document/document.component.js +++ b/dist/libs/common-components/esm5/lib/document/document.component.js @@ -10,12 +10,14 @@ import * as jquery from 'jquery'; var $ = jquery; import * as Hammer from 'hammerjs'; import { WindowService } from '../window.service'; +import { RotationService } from '../rotation.service'; var DocumentComponent = /** @class */ (function () { - function DocumentComponent(_elementRef, _zoomService, _windowService) { + function DocumentComponent(_elementRef, _zoomService, _windowService, _rotationServcie) { var _this = this; this._elementRef = _elementRef; this._zoomService = _zoomService; this._windowService = _windowService; + this._rotationServcie = _rotationServcie; this.wait = false; this.docWidth = null; this.docHeight = null; @@ -299,6 +301,7 @@ var DocumentComponent = /** @class */ (function () { * @return {?} */ function ($event) { + console.log("pinch"); if (this.pinchCenter === null) { this.pinchCenter = this.rawCenter($event); /** @type {?} */ @@ -326,6 +329,7 @@ var DocumentComponent = /** @class */ (function () { * @return {?} */ function ($event) { + console.log("pinchEnd"); this.updateLastScale(); this.updateLastPos(); this.pinchCenter = null; @@ -374,10 +378,50 @@ var DocumentComponent = /** @class */ (function () { } } }; + /** + * @param {?} $event + * @return {?} + */ + DocumentComponent.prototype.onRotateStart = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + this.initialRotation = $event.rotation; + console.log("rotateStart: " + $event.rotation + ' ' + $event.angle); + }; + /** + * @param {?} $event + * @return {?} + */ + DocumentComponent.prototype.onRotateEnd = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + console.log("rotateEnd: " + $event.rotation + ' ' + $event.angle); + if ($event.rotation > 0 && this.initialRotation > 0) { + if ($event.rotation > this.initialRotation && ($event.rotation - this.initialRotation > 45)) { + this._rotationServcie.setRotationAngle(90); + } + else if ($event.rotation < this.initialRotation && (this.initialRotation - $event.rotation > 45)) { + this._rotationServcie.setRotationAngle(-90); + } + } + // case with negative values + else { + if (this.initialRotation > $event.rotation && ($event.rotation - this.initialRotation > 45)) { + this._rotationServcie.setRotationAngle(-90); + } + else if (this.initialRotation < $event.rotation && (this.initialRotation - $event.rotation > 45)) { + this._rotationServcie.setRotationAngle(90); + } + } + }; DocumentComponent.decorators = [ { type: Component, args: [{ selector: 'gd-document', - template: "
Please wait...
\n
\n
\n
\n \n
\n
\n \n
\n", + template: "
Please wait...
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n", styles: [":host{flex:1;transition:.4s;background-color:#e7e7e7;height:100%;overflow:scroll}.page{display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.page.excel{overflow:auto}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:flex-start}.panzoom.mobile{overflow:scroll}@media (max-width:1037px){.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] }] } ]; @@ -385,7 +429,8 @@ var DocumentComponent = /** @class */ (function () { DocumentComponent.ctorParameters = function () { return [ { type: ElementRef }, { type: ZoomService }, - { type: WindowService } + { type: WindowService }, + { type: RotationService } ]; }; DocumentComponent.propDecorators = { mode: [{ type: Input }], @@ -440,6 +485,8 @@ if (false) { DocumentComponent.prototype.curHeight; /** @type {?} */ DocumentComponent.prototype.isDesktop; + /** @type {?} */ + DocumentComponent.prototype.initialRotation; /** * @type {?} * @private @@ -455,6 +502,11 @@ if (false) { * @private */ DocumentComponent.prototype._windowService; + /** + * @type {?} + * @private + */ + DocumentComponent.prototype._rotationServcie; /* Skipping unhandled member: ;*/ /* Skipping unhandled member: ;*/ /* Skipping unhandled member: ;*/ @@ -464,4 +516,4 @@ if (false) { /* Skipping unhandled member: ;*/ /* Skipping unhandled member: ;*/ } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2RvY3VtZW50L2RvY3VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdLLE1BQU0sZUFBZSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxlQUFlLEVBQUUsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOztJQUMzQixDQUFDLEdBQUcsTUFBTTtBQUNoQixPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQ7SUErQkUsMkJBQW9CLFdBQW9DLEVBQ3BDLFlBQXlCLEVBQ3pCLGNBQTZCO1FBRmpELGlCQVNDO1FBVG1CLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQXZCakQsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUdiLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixVQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2IsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFFBQUcsR0FBRyxJQUFJLENBQUM7UUFDWCxNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sVUFBSyxHQUFHLENB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Q1Ysd0NBQW1COztJQUNuQiw4Q0FBeUI7O0lBQ3pCLHFDQUFhOztJQUNiLHNDQUFjOztJQUNkLHNDQUFtQjs7Ozs7SUFFUCx3Q0FBNEM7Ozs7O0lBQzVDLHlDQUFpQzs7Ozs7SUFDakMsMkNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBPbkNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGaWxlRGVzY3JpcHRpb24sIEZpbGVVdGlsfSBmcm9tIFwiLi4vZmlsZS5zZXJ2aWNlXCI7XG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tIFwiLi4vem9vbS5zZXJ2aWNlXCI7XG5pbXBvcnQgKiBhcyBqcXVlcnkgZnJvbSAnanF1ZXJ5JztcbmNvbnN0ICQgPSBqcXVlcnk7XG5pbXBvcnQgKiBhcyBIYW1tZXIgZnJvbSAnaGFtbWVyanMnO1xuaW1wb3J0IHsgV2luZG93U2VydmljZSB9IGZyb20gJy4uL3dpbmRvdy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2QtZG9jdW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2N1bWVudC5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkLCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIG1vZGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHByZWxvYWRQYWdlQ291bnQ6IG51bWJlcjtcbiAgQElucHV0KCkgZmlsZTogRmlsZURlc2NyaXB0aW9uO1xuICB3YWl0ID0gZmFsc2U7XG4gIHpvb206IG51bWJlcjtcblxuICBkb2NXaWR0aCA9IG51bGw7XG4gIGRvY0hlaWdodCA9IG51bGw7XG4gIHZpZXdwb3J0V2lkdGggPSBudWxsO1xuICB2aWV3cG9ydEhlaWdodCA9IG51bGw7XG4gIHNjYWxlID0gbnVsbDtcbiAgbGFzdFNjYWxlID0gbnVsbDtcbiAgY29udGFpbmVyID0gbnVsbDtcbiAgZG9jID0gbnVsbDtcbiAgeCA9IDA7XG4gIGxhc3RYID0gMDtcbiAgeSA9IDA7XG4gIGxhc3RZID0gMDtcbiAgcGluY2hDZW50ZXIgPSBudWxsO1xuICBwaW5jaENlbnRlck9mZnNldCA9IG51bGw7XG4gIGN1cldpZHRoID0gMDtcbiAgY3VySGVpZ2h0ID0gMDtcbiAgaXNEZXNrdG9wOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICAgICAgICBwcml2YXRlIF96b29tU2VydmljZTogWm9vbVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dpbmRvd1NlcnZpY2U6IFdpbmRvd1NlcnZpY2UpIHtcblxuICAgIF96b29tU2VydmljZS56b29tQ2hhbmdlLnN1YnNjcmliZSgodmFsOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMuem9vbSA9IHZhbDtcbiAgICB9KTtcblxuICAgIHRoaXMuaXNEZXNrdG9wID0gX3dpbmRvd1NlcnZpY2UuaXNEZXNrdG9wKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGNvbnN0IHBhbnpvb20gPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbSgwKS5jaGlsZHJlbi5pdGVtKDApO1xuICAgIChwYW56b29tIGFzIGFueSkuc3R5bGUudHJhbnNmb3JtID0gJyc7XG4gICAgLy8gVE9ETzogdGhpcyBpbnRlcnNlY3RzIHdpdGggem9vbWluZyBieSB6b29tIGRpcmVjdGl2ZSwgYnV0IHN0aWxsIG5lZWRlZFxuICAgIC8vIGZvciBmbHVzaCBwcmV2aW91cyBzZXR0aW5ncyBiZWZvcmUgb3BlbmluZyBhbm90aGVyIGZpbGVcbiAgICAvL3RoaXMuX3pvb21TZXJ2aWNlLmNoYW5nZVpvb20oMTAwKTtcbiAgICAvL3RoaXMuc2NhbGUgPSAxO1xuICB9XG4gICAgXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBGb3IgY3VycmVudCBpdGVyYXRpb24gd2UgdGFrZSAucGFuem9vbSBhcyBhIGRvY3VtZW50XG4gICAgdGhpcy5kb2MgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbSgwKS5jaGlsZHJlbi5pdGVtKDApO1xuICAgIC8vIEZvciBjdXJyZW50IGl0ZXJhdGlvbiB3ZSB0YWtlIC5nZC1kb2N1bWVudCBhcyBhIGNvbnRhaW5lclxuICAgIHRoaXMuY29udGFpbmVyID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy5kb2NXaWR0aCA9IHRoaXMuZG9jLmNsaWVudFdpZHRoO1xuICAgIHRoaXMuZG9jSGVpZ2h0ID0gdGhpcy5kb2MuY2xpZW50SGVpZ2h0O1xuICAgIHRoaXMudmlld3BvcnRXaWR0aCA9IHRoaXMuZG9jLm9mZnNldFdpZHRoO1xuXG4gICAgLy8gRm9yIGNhc2VzIHdoZXJlIHdlIGFscmVhZHkgaGF2ZSB6b29tIGRlZmluZWQgd2Ugc2hvdWxkIGluY2x1ZGUgaXRcbiAgICB0aGlzLnNjYWxlID0gKHRoaXMudmlld3BvcnRXaWR0aC90aGlzLmRvY1dpZHRoKSAqIHRoaXMuX3pvb21TZXJ2aWNlLnpvb20vMTAwO1xuICAgIFxuICAgIHRoaXMubGFzdFNjYWxlID0gdGhpcy5zY2FsZTtcbiAgICB0aGlzLnZpZXdwb3J0SGVpZ2h0ID0gdGhpcy5jb250YWluZXIub2Zmc2V0SGVpZ2h0O1xuICAgIHRoaXMuY3VyV2lkdGggPSB0aGlzLmRvY1dpZHRoKnRoaXMuc2NhbGU7XG4gICAgdGhpcy5jdXJIZWlnaHQgPSB0aGlzLmRvY0hlaWdodCp0aGlzLnNjYWxlO1xuXG4gICAgY29uc3QgaGFtbWVyID0gbmV3IEhhbW1lcih0aGlzLmNvbnRhaW5lcik7XG4gIH1cblxuICAvLyBUT0RPOiB0aGlzIHRlbXBvcmFyeSBjcnV0Y2ggZm9yIEV4Y2VsIGZpbGVzIHNob3VsZCBiZSBkb2N1bWVudGVkXG4gIGlmRXhjZWwoKSB7XG4gICAgcmV0dXJuIEZpbGVVdGlsLmZpbmQodGhpcy5maWxlLmd1aWQsIGZhbHNlKS5mb3JtYXQgPT09IFwiTWljcm9zb2Z0IEV4Y2VsXCI7XG4gIH1cblxuICBnZXREaW1lbnNpb25XaXRoVW5pdCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHZhbHVlICsgRmlsZVV0aWwuZmluZCh0aGlzLmZpbGUuZ3VpZCwgZmFsc2UpLnVuaXQ7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudE5vZGVMaXN0T2YgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmdkLXdyYXBwZXInKTtcbiAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudE5vZGVMaXN0T2YuaXRlbSgwKTtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgJChlbGVtZW50KS50cmlnZ2VyKCdmb2N1cycpO1xuICAgIH1cbiAgfVxuXG4gIGFic29sdXRlUG9zaXRpb24oZWwpIHtcbiAgICBsZXQgeCA9IDAsIHkgPSAwO1xuXG4gICAgd2hpbGUgKGVsICE9PSBudWxsKSB7XG4gICAgICB4ICs9IGVsLm9mZnNldExlZnQ7XG4gICAgICB5ICs9IGVsLm9mZnNldFRvcDtcbiAgICAgIGVsID0gZWwub2Zmc2V0UGFyZW50O1xuICAgIH1cblxuICAgIHJldHVybiB7IHg6IHgsIHk6IHkgfTtcbiAgfTtcblxuICByZXN0cmljdFJhd1Bvcyhwb3MsIHZpZXdwb3J0RGltLCBkb2NEaW0pIHtcbiAgICBpZiAocG9zIDwgdmlld3BvcnREaW0vdGhpcy5zY2FsZSAtIGRvY0RpbSkgeyAvLyB0b28gZmFyIGxlZnQvdXA/XG4gICAgICBwb3MgPSB2aWV3cG9ydERpbS90aGlzLnNjYWxlIC0gZG9jRGltO1xuICAgIH0gZWxzZSBpZiAocG9zID4gMCkgeyAvLyB0b28gZmFyIHJpZ2h0L2Rvd24/XG4gICAgICBwb3MgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gcG9zO1xuICB9O1xuXG4gIHVwZGF0ZUxhc3RQb3MoKSB7XG4gICAgdGhpcy5sYXN0WCA9IHRoaXMueDtcbiAgICB0aGlzLmxhc3RZID0gdGhpcy55O1xuICB9O1xuXG4gIHRyYW5zbGF0ZShkZWx0YVgsIGRlbHRhWSkge1xuICAgIC8vIFdlIHJlc3RyaWN0IHRvIHRoZSBtaW4gb2YgdGhlIHZpZXdwb3J0IHdpZHRoL2hlaWdodCBvciBjdXJyZW50IHdpZHRoL2hlaWdodCBhcyB0aGVcbiAgICAvLyBjdXJyZW50IHdpZHRoL2hlaWdodCBtYXkgYmUgc21hbGxlciB0aGFuIHRoZSB2aWV3cG9ydCB3aWR0aC9oZWlnaHRcbiAgICBjb25zdCBuZXdYID0gdGhpcy5yZXN0cmljdFJhd1Bvcyh0aGlzLmxhc3RYICsgZGVsdGFYL3RoaXMuc2NhbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbih0aGlzLnZpZXdwb3J0V2lkdGgsIHRoaXMuY3VyV2lkdGgpLCB0aGlzLmRvY1dpZHRoKTtcbiAgICB0aGlzLnggPSBuZXdYO1xuICAgIC8vIFRPRE86IHZhbHVlIGhlcmUgYW5kIGluIHRoZSBzaW1pbGFyIGxpbmUgYmVsb3cgY2hhbmdlcyB0byBwb3NpdGl2ZSB0byB0YWtlIGFueSBlZmZlY3RcbiAgICB0aGlzLmNvbnRhaW5lci5zY3JvbGxMZWZ0ID0gLU1hdGguY2VpbChuZXdYKnRoaXMuc2NhbGUpO1xuXG4gICAgY29uc3QgbmV3WSA9IHRoaXMucmVzdHJpY3RSYXdQb3ModGhpcy5sYXN0WSArIGRlbHRhWS90aGlzLnNjYWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5taW4odGhpcy52aWV3cG9ydEhlaWdodCwgdGhpcy5jdXJIZWlnaHQpLCB0aGlzLmRvY0hlaWdodCk7XG4gICAgdGhpcy55ID0gbmV3WTtcbiAgICB0aGlzLmNvbnRhaW5lci5zY3JvbGxUb3AgPSAtTWF0aC5jZWlsKG5ld1kqdGhpcy5zY2FsZSk7XG4gICAgXG4gICAgdGhpcy5kb2Muc3R5bGUudHJhbnNmb3JtID0gJ3NjYWxlKCcgKyB0aGlzLnNjYWxlICsgJyknO1xuICB9O1xuXG4gIHN0YXJ0Wm9vbShzY2FsZUJ5KSB7XG4gICAgdGhpcy5zY2FsZSA9IHRoaXMubGFzdFNjYWxlKnNjYWxlQnk7XG5cbiAgICB0aGlzLmN1cldpZHRoID0gdGhpcy5kb2NXaWR0aCp0aGlzLnNjYWxlO1xuICAgIHRoaXMuY3VySGVpZ2h0ID0gdGhpcy5kb2NIZWlnaHQqdGhpcy5zY2FsZTtcblxuICAgIC8vIEFkanVzdCBtYXJnaW5zIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGFyZW4ndCBvdXQgb2YgYm91bmRzXG4gICAgdGhpcy50cmFuc2xhdGUoMCwgMCk7XG4gIH07XG5cbiAgcmF3Q2VudGVyKCRldmVudCkge1xuICAgIGNvbnN0IHBvcyA9IHRoaXMuYWJzb2x1dGVQb3NpdGlvbih0aGlzLmNvbnRhaW5lcik7XG5cbiAgICAvLyBXZSBuZWVkIHRvIGFjY291bnQgZm9yIHRoZSBzY3JvbGwgcG9zaXRpb25cbiAgICBjb25zdCBzY3JvbGxMZWZ0ID0gd2luZG93LnBhZ2VYT2Zmc2V0ID8gd2luZG93LnBhZ2VYT2Zmc2V0IDogZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0O1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHdpbmRvdy5wYWdlWU9mZnNldCA/IHdpbmRvdy5wYWdlWU9mZnNldCA6IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wO1xuXG4gICAgY29uc3Qgem9vbVggPSAtdGhpcy54ICsgKCRldmVudC5jZW50ZXIueCAtIHBvcy54ICsgc2Nyb2xsTGVmdCkvdGhpcy5zY2FsZTtcbiAgICBjb25zdCB6b29tWSA9IC10aGlzLnkgKyAoJGV2ZW50LmNlbnRlci55IC0gcG9zLnkgKyBzY3JvbGxUb3ApL3RoaXMuc2NhbGU7XG5cbiAgICByZXR1cm4geyB4OiB6b29tWCwgeTogem9vbVkgfTtcbiAgfTtcblxuICB1cGRhdGVMYXN0U2NhbGUoKSB7XG4gICAgdGhpcy5sYXN0U2NhbGUgPSB0aGlzLnNjYWxlO1xuICB9O1xuXG4gIHpvb21Bcm91bmQoc2NhbGVCeSwgcmF3Wm9vbVgsIHJhd1pvb21ZLCBkb05vdFVwZGF0ZUxhc3QpIHtcbiAgICAvLyBab29tXG4gICAgdGhpcy5zdGFydFpvb20oc2NhbGVCeSk7XG5cbiAgICAvLyBOZXcgcmF3IGNlbnRlciBvZiB2aWV3cG9ydFxuICAgIGNvbnN0IHJhd0NlbnRlclggPSAtdGhpcy54ICsgTWF0aC5taW4odGhpcy52aWV3cG9ydFdpZHRoLCB0aGlzLmN1cldpZHRoKS8yL3RoaXMuc2NhbGU7XG4gICAgY29uc3QgcmF3Q2VudGVyWSA9IC10aGlzLnkgKyBNYXRoLm1pbih0aGlzLnZpZXdwb3J0SGVpZ2h0LCB0aGlzLmN1ckhlaWdodCkvMi90aGlzLnNjYWxlO1xuXG4gICAgLy8gRGVsdGFcbiAgICBjb25zdCBkZWx0YVggPSAocmF3Q2VudGVyWCAtIHJhd1pvb21YKSp0aGlzLnNjYWxlO1xuICAgIGNvbnN0IGRlbHRhWSA9IChyYXdDZW50ZXJZIC0gcmF3Wm9vbVkpKnRoaXMuc2NhbGU7XG5cbiAgICAvLyBUcmFuc2xhdGUgYmFjayB0byB6b29tIGNlbnRlclxuICAgIHRoaXMudHJhbnNsYXRlKGRlbHRhWCwgZGVsdGFZKTtcblxuICAgIGlmICghZG9Ob3RVcGRhdGVMYXN0KSB7XG4gICAgICB0aGlzLnVwZGF0ZUxhc3RTY2FsZSgpO1xuICAgICAgdGhpcy51cGRhdGVMYXN0UG9zKCk7XG4gICAgfVxuICB9O1xuXG4gIG9uUGluY2goJGV2ZW50KXtcbiAgICBpZiAodGhpcy5waW5jaENlbnRlciA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5waW5jaENlbnRlciA9IHRoaXMucmF3Q2VudGVyKCRldmVudCk7XG4gICAgICBjb25zdCBvZmZzZXRYID0gdGhpcy5waW5jaENlbnRlci54KnRoaXMuc2NhbGUgLSAoLXRoaXMueCp0aGlzLnNjYWxlICsgTWF0aC5taW4odGhpcy52aWV3cG9ydFdpZHRoLCB0aGlzLmN1cldpZHRoKS8yKTtcbiAgICAgIGNvbnN0IG9mZnNldFkgPSB0aGlzLnBpbmNoQ2VudGVyLnkqdGhpcy5zY2FsZSAtICgtdGhpcy55KnRoaXMuc2NhbGUgKyBNYXRoLm1pbih0aGlzLnZpZXdwb3J0SGVpZ2h0LCB0aGlzLmN1ckhlaWdodCkvMik7XG4gICAgICB0aGlzLnBpbmNoQ2VudGVyT2Zmc2V0ID0geyB4OiBvZmZzZXRYLCB5OiBvZmZzZXRZIH07XG4gICAgfVxuXG4gICAgY29uc3QgbmV3U2NhbGUgPSB0aGlzLnNjYWxlKiRldmVudC5zY2FsZTtcblxuICAgIGNvbnN0IHpvb21YID0gdGhpcy5waW5jaENlbnRlci54Km5ld1NjYWxlIC0gdGhpcy5waW5jaENlbnRlck9mZnNldC54O1xuICAgIGNvbnN0IHpvb21ZID0gdGhpcy5waW5jaENlbnRlci55Km5ld1NjYWxlIC0gdGhpcy5waW5jaENlbnRlck9mZnNldC55O1xuICAgIGNvbnN0IHpvb21DZW50ZXIgPSB7IHg6IHpvb21YL25ld1NjYWxlLCB5OiB6b29tWS9uZXdTY2FsZSB9O1xuICAgIFxuICAgIHRoaXMuem9vbUFyb3VuZCgkZXZlbnQuc2NhbGUsIHpvb21DZW50ZXIueCwgem9vbUNlbnRlci55LCB0cnVlKTtcbiAgfVxuXG4gIG9uUGluY2hFbmQoJGV2ZW50KXtcbiAgICB0aGlzLnVwZGF0ZUxhc3RTY2FsZSgpO1xuICAgIHRoaXMudXBkYXRlTGFzdFBvcygpO1xuICAgIHRoaXMucGluY2hDZW50ZXIgPSBudWxsO1xuICB9XG5cbiAgb25QYW4oJGV2ZW50KXtcbiAgICAvLyBUT0RPOiBsb29rcyBsaWtlIG5hdGl2ZSBwYW4gd29ya3MgYmV0dGVyXG4gICAgLy8gaWYgKCF0aGlzLmlzRGVza3RvcCkge1xuICAgIC8vICAgdGhpcy50cmFuc2xhdGUoJGV2ZW50LmRlbHRhWCwgJGV2ZW50LmRlbHRhWSk7XG4gICAgLy8gfVxuICB9XG5cbiAgb25QYW5FbmQoJGV2ZW50KXtcbiAgICAvLyBpZiAoIXRoaXMuaXNEZXNrdG9wKSB7XG4gICAgLy8gICB0aGlzLnVwZGF0ZUxhc3RQb3MoKTtcbiAgICAvLyB9XG4gIH1cblxuICBvbkRvdWJsZVRhcCgkZXZlbnQpe1xuICAgIGlmICghdGhpcy5pc0Rlc2t0b3ApIHtcbiAgICAgIGlmICgkZXZlbnQudGFwQ291bnQgPT09IDIpIHtcbiAgICAgICAgY29uc3QgYyA9IHRoaXMucmF3Q2VudGVyKCRldmVudCk7XG4gICAgICAgIHRoaXMuem9vbUFyb3VuZCgyLCBjLngsIGMueSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2RvY3VtZW50L2RvY3VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdLLE1BQU0sZUFBZSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxlQUFlLEVBQUUsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOztJQUMzQixDQUFDLEdBQUcsTUFBTTtBQUNoQixPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXREO0lBZ0NFLDJCQUFvQixXQUFvQyxFQUNwQyxZQUF5QixFQUN6QixjQUE2QixFQUM3QixnQkFBaUM7UUFIckQsaUJBVUM7UUFWbUIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUF6QnJELFNBQUksR0FBRyxLQUFLLENBQUM7UUFHYixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsVUFBSyxHQUFHLElBQUksQ0FBQztRQUNiLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixRQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ1gsTUFBQyxHQUFHLENBQUMsQ0FBQztRQUNOLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6QixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsY0FBUyxHQUFHLENBQUMsQ0FBQztRQVNaLFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUzs7OztRQUFDLFVBQUMsR0FBVztZQUM1QyxLQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNsQixDQUFDLEVBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlDLENBQUM7Ozs7SUFFRCxvQ0FBUTs7O0lBQVI7SUFDQSxDQUFDOzs7O0lBRUQsdUNBQVc7OztJQUFYOztZQUNRLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsbUJBQUEsT0FBTyxFQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUN0Qyx5RUFBeUU7UUFDekUsMERBQTBEO1FBQzFELG9DQUFvQztRQUNwQyxpQkFBaUI7SUFDbkIsQ0FBQzs7OztJQUVELDJDQUFlOzs7SUFBZjtRQUNFLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSw0REFBNEQ7UUFDNUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztRQUVoRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUUxQyxvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFDLEdBQUcsQ0FBQztRQUU3RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzs7WUFFckMsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDM0MsQ0FBQztJQUVELG1FQUFtRTs7Ozs7SUFDbkUsbUNBQU87Ozs7O0lBQVA7UUFDRSxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLGlCQUFpQixDQUFDO0lBQzNFLENBQUM7Ozs7O0lBRUQsZ0RBQW9COzs7O0lBQXBCLFVBQXFCLEtBQWE7UUFDaEMsT0FBTyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDM0QsQ0FBQzs7OztJQUVELDhDQUFrQjs7O0lBQWxCOztZQUNRLGlCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQzs7WUFDbEYsT0FBTyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekMsSUFBSSxPQUFPLEVBQUU7WUFDWCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQzs7Ozs7SUFFRCw0Q0FBZ0I7Ozs7SUFBaEIsVUFBaUIsRUFBRTs7WUFDYixDQUFDLEdBQUcsQ0FBQzs7WUFBRSxDQUFDLEdBQUcsQ0FBQztRQUVoQixPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7WUFDbkIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDbEIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7U0FDdEI7UUFFRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUFBLENBQUM7Ozs7Ozs7SUFFRiwwQ0FBYzs7Ozs7O0lBQWQsVUFBZSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU07UUFDckMsSUFBSSxHQUFHLEdBQUcsV0FBVyxHQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxFQUFFLEVBQUUsbUJBQW1CO1lBQzlELEdBQUcsR0FBRyxXQUFXLEdBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7U0FDdkM7YUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxzQkFBc0I7WUFDMUMsR0FBRyxHQUFHLENBQUMsQ0FBQztTQUNUO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQUEsQ0FBQzs7OztJQUVGLHlDQUFhOzs7SUFBYjtRQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUFBLENBQUM7Ozs7OztJQUVGLHFDQUFTOzs7OztJQUFULFVBQVUsTUFBTSxFQUFFLE1BQU07Ozs7WUFHaEIsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3JGLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2Qsd0ZBQXdGO1FBQ3hGLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDOztZQUVsRCxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sR0FBQyxJQUFJLENBQUMsS0FBSyxFQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEYsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ3pELENBQUM7SUFBQSxDQUFDOzs7OztJQUVGLHFDQUFTOzs7O0lBQVQsVUFBVSxPQUFPO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFDLE9BQU8sQ0FBQztRQUVwQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUzQywyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUFBLENBQUM7Ozs7O0lBRUYscUNBQVM7Ozs7SUFBVCxVQUFVLE1BQU07O1lBQ1IsR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDOzs7WUFHM0MsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVTs7WUFDL0UsU0FBUyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUzs7WUFFN0UsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUs7O1lBQ25FLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLO1FBRXhFLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBQUEsQ0FBQzs7OztJQUVGLDJDQUFlOzs7SUFBZjtRQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBQUEsQ0FBQzs7Ozs7Ozs7SUFFRixzQ0FBVTs7Ozs7OztJQUFWLFVBQVcsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsZUFBZTtRQUNyRCxPQUFPO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQzs7O1lBR2xCLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUs7O1lBQy9FLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUs7OztZQUdqRixNQUFNLEdBQUcsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUs7O1lBQzNDLE1BQU0sR0FBRyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSztRQUVqRCxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNwQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUFBLENBQUM7Ozs7O0lBRUYsbUNBQU87Ozs7SUFBUCxVQUFRLE1BQU07UUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDOztnQkFDcEMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFDLENBQUMsQ0FBQzs7Z0JBQzlHLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUM7WUFDdEgsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDckQ7O1lBRUssUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUMsTUFBTSxDQUFDLEtBQUs7O1lBRWxDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7O1lBQzlELEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7O1lBQzlELFVBQVUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUMsUUFBUSxFQUFFO1FBRTNELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7Ozs7SUFFRCxzQ0FBVTs7OztJQUFWLFVBQVcsTUFBTTtRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDOzs7OztJQUVELGlDQUFLOzs7O0lBQUwsVUFBTSxNQUFNO1FBQ1YsMkNBQTJDO1FBQzNDLHlCQUF5QjtRQUN6QixrREFBa0Q7UUFDbEQsSUFBSTtJQUNOLENBQUM7Ozs7O0lBRUQsb0NBQVE7Ozs7SUFBUixVQUFTLE1BQU07UUFDYix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLElBQUk7SUFDTixDQUFDOzs7OztJQUVELHVDQUFXOzs7O0lBQVgsVUFBWSxNQUFNO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxDQUFDLEVBQUU7O29CQUNuQixDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNyQztTQUNGO0lBQ0gsQ0FBQzs7Ozs7SUFFRCx5Q0FBYTs7OztJQUFiLFVBQWMsTUFBTTtRQUNsQixJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Ozs7O0lBRUQsdUNBQVc7Ozs7SUFBWCxVQUFZLE1BQU07UUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLElBQUksTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEVBQUU7WUFDbkQsSUFBSSxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDLEVBQUU7Z0JBQzNGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM1QztpQkFDSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDaEcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDN0M7U0FDRjtRQUNELDRCQUE0QjthQUN2QjtZQUNILElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dCQUMzRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM3QztpQkFDSSxJQUFJLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRTtnQkFDaEcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzVDO1NBQ0Y7SUFDSCxDQUFDOztnQkFoUUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2Qixta0NBQXdDOztpQkFFekM7Ozs7Z0JBakJDLFVBQVU7Z0JBTUosV0FBVztnQkFJVixhQUFhO2dCQUNiLGVBQWU7Ozt1QkFTckIsS0FBSzttQ0FDTCxLQUFLO3VCQUNMLEtBQUs7O0lBd1BSLHdCQUFDO0NBQUEsQUFqUUQsSUFpUUM7U0E1UFksaUJBQWlCOzs7SUFFNUIsaUNBQXVCOztJQUN2Qiw2Q0FBa0M7O0lBQ2xDLGlDQUErQjs7SUFDL0IsaUNBQWE7O0lBQ2IsaUNBQWE7O0lBRWIscUNBQWdCOztJQUNoQixzQ0FBaUI7O0lBQ2pCLDBDQUFxQjs7SUFDckIsMkNBQXNCOztJQUN0QixrQ0FBYTs7SUFDYixzQ0FBaUI7O0lBQ2pCLHNDQUFpQjs7SUFDakIsZ0NBQVc7O0lBQ1gsOEJBQU07O0lBQ04sa0NBQVU7O0lBQ1YsOEJBQU07O0lBQ04sa0NBQVU7O0lBQ1Ysd0NBQW1COztJQUNuQiw4Q0FBeUI7O0lBQ3pCLHFDQUFhOztJQUNiLHNDQUFjOztJQUNkLHNDQUFtQjs7SUFDbkIsNENBQXFCOzs7OztJQUVULHdDQUE0Qzs7Ozs7SUFDNUMseUNBQWlDOzs7OztJQUNqQywyQ0FBcUM7Ozs7O0lBQ3JDLDZDQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0ZpbGVEZXNjcmlwdGlvbiwgRmlsZVV0aWx9IGZyb20gXCIuLi9maWxlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSBcIi4uL3pvb20uc2VydmljZVwiO1xyXG5pbXBvcnQgKiBhcyBqcXVlcnkgZnJvbSAnanF1ZXJ5JztcclxuY29uc3QgJCA9IGpxdWVyeTtcclxuaW1wb3J0ICogYXMgSGFtbWVyIGZyb20gJ2hhbW1lcmpzJztcclxuaW1wb3J0IHsgV2luZG93U2VydmljZSB9IGZyb20gJy4uL3dpbmRvdy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm90YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vcm90YXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2dkLWRvY3VtZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50LmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERvY3VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkLCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBtb2RlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHByZWxvYWRQYWdlQ291bnQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBmaWxlOiBGaWxlRGVzY3JpcHRpb247XHJcbiAgd2FpdCA9IGZhbHNlO1xyXG4gIHpvb206IG51bWJlcjtcclxuXHJcbiAgZG9jV2lkdGggPSBudWxsO1xyXG4gIGRvY0hlaWdodCA9IG51bGw7XHJcbiAgdmlld3BvcnRXaWR0aCA9IG51bGw7XHJcbiAgdmlld3BvcnRIZWlnaHQgPSBudWxsO1xyXG4gIHNjYWxlID0gbnVsbDtcclxuICBsYXN0U2NhbGUgPSBudWxsO1xyXG4gIGNvbnRhaW5lciA9IG51bGw7XHJcbiAgZG9jID0gbnVsbDtcclxuICB4ID0gMDtcclxuICBsYXN0WCA9IDA7XHJcbiAgeSA9IDA7XHJcbiAgbGFzdFkgPSAwO1xyXG4gIHBpbmNoQ2VudGVyID0gbnVsbDtcclxuICBwaW5jaENlbnRlck9mZnNldCA9IG51bGw7XHJcbiAgY3VyV2lkdGggPSAwO1xyXG4gIGN1ckhlaWdodCA9IDA7XHJcbiAgaXNEZXNrdG9wOiBib29sZWFuO1xyXG4gIGluaXRpYWxSb3RhdGlvbjogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgICAgICAgICAgICBwcml2YXRlIF96b29tU2VydmljZTogWm9vbVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd2luZG93U2VydmljZTogV2luZG93U2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9yb3RhdGlvblNlcnZjaWU6IFJvdGF0aW9uU2VydmljZSkge1xyXG5cclxuICAgIF96b29tU2VydmljZS56b29tQ2hhbmdlLnN1YnNjcmliZSgodmFsOiBudW1iZXIpID0+IHtcclxuICAgICAgdGhpcy56b29tID0gdmFsO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5pc0Rlc2t0b3AgPSBfd2luZG93U2VydmljZS5pc0Rlc2t0b3AoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICBjb25zdCBwYW56b29tID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oMCkuY2hpbGRyZW4uaXRlbSgwKTtcclxuICAgIChwYW56b29tIGFzIGFueSkuc3R5bGUudHJhbnNmb3JtID0gJyc7XHJcbiAgICAvLyBUT0RPOiB0aGlzIGludGVyc2VjdHMgd2l0aCB6b29taW5nIGJ5IHpvb20gZGlyZWN0aXZlLCBidXQgc3RpbGwgbmVlZGVkXHJcbiAgICAvLyBmb3IgZmx1c2ggcHJldmlvdXMgc2V0dGluZ3MgYmVmb3JlIG9wZW5pbmcgYW5vdGhlciBmaWxlXHJcbiAgICAvL3RoaXMuX3pvb21TZXJ2aWNlLmNoYW5nZVpvb20oMTAwKTtcclxuICAgIC8vdGhpcy5zY2FsZSA9IDE7XHJcbiAgfVxyXG4gICAgXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgLy8gRm9yIGN1cnJlbnQgaXRlcmF0aW9uIHdlIHRha2UgLnBhbnpvb20gYXMgYSBkb2N1bWVudFxyXG4gICAgdGhpcy5kb2MgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbSgwKS5jaGlsZHJlbi5pdGVtKDApO1xyXG4gICAgLy8gRm9yIGN1cnJlbnQgaXRlcmF0aW9uIHdlIHRha2UgLmdkLWRvY3VtZW50IGFzIGEgY29udGFpbmVyXHJcbiAgICB0aGlzLmNvbnRhaW5lciA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICB0aGlzLmRvY1dpZHRoID0gdGhpcy5kb2MuY2xpZW50V2lkdGg7XHJcbiAgICB0aGlzLmRvY0hlaWdodCA9IHRoaXMuZG9jLmNsaWVudEhlaWdodDtcclxuICAgIHRoaXMudmlld3BvcnRXaWR0aCA9IHRoaXMuZG9jLm9mZnNldFdpZHRoO1xyXG5cclxuICAgIC8vIEZvciBjYXNlcyB3aGVyZSB3ZSBhbHJlYWR5IGhhdmUgem9vbSBkZWZpbmVkIHdlIHNob3VsZCBpbmNsdWRlIGl0XHJcbiAgICB0aGlzLnNjYWxlID0gKHRoaXMudmlld3BvcnRXaWR0aC90aGlzLmRvY1dpZHRoKSAqIHRoaXMuX3pvb21TZXJ2aWNlLnpvb20vMTAwO1xyXG4gICAgXHJcbiAgICB0aGlzLmxhc3RTY2FsZSA9IHRoaXMuc2NhbGU7XHJcbiAgICB0aGlzLnZpZXdwb3J0SGVpZ2h0ID0gdGhpcy5jb250YWluZXIub2Zmc2V0SGVpZ2h0O1xyXG4gICAgdGhpcy5jdXJXaWR0aCA9IHRoaXMuZG9jV2lkdGgqdGhpcy5zY2FsZTtcclxuICAgIHRoaXMuY3VySGVpZ2h0ID0gdGhpcy5kb2NIZWlnaHQqdGhpcy5zY2FsZTtcclxuXHJcbiAgICBjb25zdCBoYW1tZXIgPSBuZXcgSGFtbWVyKHRoaXMuY29udGFpbmVyKTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE86IHRoaXMgdGVtcG9yYXJ5IGNydXRjaCBmb3IgRXhjZWwgZmlsZXMgc2hvdWxkIGJlIGRvY3VtZW50ZWRcclxuICBpZkV4Y2VsKCkge1xyXG4gICAgcmV0dXJuIEZpbGVVdGlsLmZpbmQodGhpcy5maWxlLmd1aWQsIGZhbHNlKS5mb3JtYXQgPT09IFwiTWljcm9zb2Z0IEV4Y2VsXCI7XHJcbiAgfVxyXG5cclxuICBnZXREaW1lbnNpb25XaXRoVW5pdCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdmFsdWUgKyBGaWxlVXRpbC5maW5kKHRoaXMuZmlsZS5ndWlkLCBmYWxzZSkudW5pdDtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsZW1lbnROb2RlTGlzdE9mID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5nZC13cmFwcGVyJyk7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudE5vZGVMaXN0T2YuaXRlbSgwKTtcclxuICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICQoZWxlbWVudCkudHJpZ2dlcignZm9jdXMnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFic29sdXRlUG9zaXRpb24oZWwpIHtcclxuICAgIGxldCB4ID0gMCwgeSA9IDA7XHJcblxyXG4gICAgd2hpbGUgKGVsICE9PSBudWxsKSB7XHJcbiAgICAgIHggKz0gZWwub2Zmc2V0TGVmdDtcclxuICAgICAgeSArPSBlbC5vZmZzZXRUb3A7XHJcbiAgICAgIGVsID0gZWwub2Zmc2V0UGFyZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7IHg6IHgsIHk6IHkgfTtcclxuICB9O1xyXG5cclxuICByZXN0cmljdFJhd1Bvcyhwb3MsIHZpZXdwb3J0RGltLCBkb2NEaW0pIHtcclxuICAgIGlmIChwb3MgPCB2aWV3cG9ydERpbS90aGlzLnNjYWxlIC0gZG9jRGltKSB7IC8vIHRvbyBmYXIgbGVmdC91cD9cclxuICAgICAgcG9zID0gdmlld3BvcnREaW0vdGhpcy5zY2FsZSAtIGRvY0RpbTtcclxuICAgIH0gZWxzZSBpZiAocG9zID4gMCkgeyAvLyB0b28gZmFyIHJpZ2h0L2Rvd24/XHJcbiAgICAgIHBvcyA9IDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcG9zO1xyXG4gIH07XHJcblxyXG4gIHVwZGF0ZUxhc3RQb3MoKSB7XHJcbiAgICB0aGlzLmxhc3RYID0gdGhpcy54O1xyXG4gICAgdGhpcy5sYXN0WSA9IHRoaXMueTtcclxuICB9O1xyXG5cclxuICB0cmFuc2xhdGUoZGVsdGFYLCBkZWx0YVkpIHtcclxuICAgIC8vIFdlIHJlc3RyaWN0IHRvIHRoZSBtaW4gb2YgdGhlIHZpZXdwb3J0IHdpZHRoL2hlaWdodCBvciBjdXJyZW50IHdpZHRoL2hlaWdodCBhcyB0aGVcclxuICAgIC8vIGN1cnJlbnQgd2lkdGgvaGVpZ2h0IG1heSBiZSBzbWFsbGVyIHRoYW4gdGhlIHZpZXdwb3J0IHdpZHRoL2hlaWdodFxyXG4gICAgY29uc3QgbmV3WCA9IHRoaXMucmVzdHJpY3RSYXdQb3ModGhpcy5sYXN0WCArIGRlbHRhWC90aGlzLnNjYWxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbih0aGlzLnZpZXdwb3J0V2lkdGgsIHRoaXMuY3VyV2lkdGgpLCB0aGlzLmRvY1dpZHRoKTtcclxuICAgIHRoaXMueCA9IG5ld1g7XHJcbiAgICAvLyBUT0RPOiB2YWx1ZSBoZXJlIGFuZCBpbiB0aGUgc2ltaWxhciBsaW5lIGJlbG93IGNoYW5nZXMgdG8gcG9zaXRpdmUgdG8gdGFrZSBhbnkgZWZmZWN0XHJcbiAgICB0aGlzLmNvbnRhaW5lci5zY3JvbGxMZWZ0ID0gLU1hdGguY2VpbChuZXdYKnRoaXMuc2NhbGUpO1xyXG5cclxuICAgIGNvbnN0IG5ld1kgPSB0aGlzLnJlc3RyaWN0UmF3UG9zKHRoaXMubGFzdFkgKyBkZWx0YVkvdGhpcy5zY2FsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5taW4odGhpcy52aWV3cG9ydEhlaWdodCwgdGhpcy5jdXJIZWlnaHQpLCB0aGlzLmRvY0hlaWdodCk7XHJcbiAgICB0aGlzLnkgPSBuZXdZO1xyXG4gICAgdGhpcy5jb250YWluZXIuc2Nyb2xsVG9wID0gLU1hdGguY2VpbChuZXdZKnRoaXMuc2NhbGUpO1xyXG4gICAgXHJcbiAgICB0aGlzLmRvYy5zdHlsZS50cmFuc2Zvcm0gPSAnc2NhbGUoJyArIHRoaXMuc2NhbGUgKyAnKSc7XHJcbiAgfTtcclxuXHJcbiAgc3RhcnRab29tKHNjYWxlQnkpIHtcclxuICAgIHRoaXMuc2NhbGUgPSB0aGlzLmxhc3RTY2FsZSpzY2FsZUJ5O1xyXG5cclxuICAgIHRoaXMuY3VyV2lkdGggPSB0aGlzLmRvY1dpZHRoKnRoaXMuc2NhbGU7XHJcbiAgICB0aGlzLmN1ckhlaWdodCA9IHRoaXMuZG9jSGVpZ2h0KnRoaXMuc2NhbGU7XHJcblxyXG4gICAgLy8gQWRqdXN0IG1hcmdpbnMgdG8gbWFrZSBzdXJlIHRoYXQgd2UgYXJlbid0IG91dCBvZiBib3VuZHNcclxuICAgIHRoaXMudHJhbnNsYXRlKDAsIDApO1xyXG4gIH07XHJcblxyXG4gIHJhd0NlbnRlcigkZXZlbnQpIHtcclxuICAgIGNvbnN0IHBvcyA9IHRoaXMuYWJzb2x1dGVQb3NpdGlvbih0aGlzLmNvbnRhaW5lcik7XHJcblxyXG4gICAgLy8gV2UgbmVlZCB0byBhY2NvdW50IGZvciB0aGUgc2Nyb2xsIHBvc2l0aW9uXHJcbiAgICBjb25zdCBzY3JvbGxMZWZ0ID0gd2luZG93LnBhZ2VYT2Zmc2V0ID8gd2luZG93LnBhZ2VYT2Zmc2V0IDogZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0O1xyXG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gd2luZG93LnBhZ2VZT2Zmc2V0ID8gd2luZG93LnBhZ2VZT2Zmc2V0IDogZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7XHJcblxyXG4gICAgY29uc3Qgem9vbVggPSAtdGhpcy54ICsgKCRldmVudC5jZW50ZXIueCAtIHBvcy54ICsgc2Nyb2xsTGVmdCkvdGhpcy5zY2FsZTtcclxuICAgIGNvbnN0IHpvb21ZID0gLXRoaXMueSArICgkZXZlbnQuY2VudGVyLnkgLSBwb3MueSArIHNjcm9sbFRvcCkvdGhpcy5zY2FsZTtcclxuXHJcbiAgICByZXR1cm4geyB4OiB6b29tWCwgeTogem9vbVkgfTtcclxuICB9O1xyXG5cclxuICB1cGRhdGVMYXN0U2NhbGUoKSB7XHJcbiAgICB0aGlzLmxhc3RTY2FsZSA9IHRoaXMuc2NhbGU7XHJcbiAgfTtcclxuXHJcbiAgem9vbUFyb3VuZChzY2FsZUJ5LCByYXdab29tWCwgcmF3Wm9vbVksIGRvTm90VXBkYXRlTGFzdCkge1xyXG4gICAgLy8gWm9vbVxyXG4gICAgdGhpcy5zdGFydFpvb20oc2NhbGVCeSk7XHJcblxyXG4gICAgLy8gTmV3IHJhdyBjZW50ZXIgb2Ygdmlld3BvcnRcclxuICAgIGNvbnN0IHJhd0NlbnRlclggPSAtdGhpcy54ICsgTWF0aC5taW4odGhpcy52aWV3cG9ydFdpZHRoLCB0aGlzLmN1cldpZHRoKS8yL3RoaXMuc2NhbGU7XHJcbiAgICBjb25zdCByYXdDZW50ZXJZID0gLXRoaXMueSArIE1hdGgubWluKHRoaXMudmlld3BvcnRIZWlnaHQsIHRoaXMuY3VySGVpZ2h0KS8yL3RoaXMuc2NhbGU7XHJcblxyXG4gICAgLy8gRGVsdGFcclxuICAgIGNvbnN0IGRlbHRhWCA9IChyYXdDZW50ZXJYIC0gcmF3Wm9vbVgpKnRoaXMuc2NhbGU7XHJcbiAgICBjb25zdCBkZWx0YVkgPSAocmF3Q2VudGVyWSAtIHJhd1pvb21ZKSp0aGlzLnNjYWxlO1xyXG5cclxuICAgIC8vIFRyYW5zbGF0ZSBiYWNrIHRvIHpvb20gY2VudGVyXHJcbiAgICB0aGlzLnRyYW5zbGF0ZShkZWx0YVgsIGRlbHRhWSk7XHJcblxyXG4gICAgaWYgKCFkb05vdFVwZGF0ZUxhc3QpIHtcclxuICAgICAgdGhpcy51cGRhdGVMYXN0U2NhbGUoKTtcclxuICAgICAgdGhpcy51cGRhdGVMYXN0UG9zKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgb25QaW5jaCgkZXZlbnQpe1xyXG4gICAgY29uc29sZS5sb2coXCJwaW5jaFwiKTtcclxuICAgIGlmICh0aGlzLnBpbmNoQ2VudGVyID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMucGluY2hDZW50ZXIgPSB0aGlzLnJhd0NlbnRlcigkZXZlbnQpO1xyXG4gICAgICBjb25zdCBvZmZzZXRYID0gdGhpcy5waW5jaENlbnRlci54KnRoaXMuc2NhbGUgLSAoLXRoaXMueCp0aGlzLnNjYWxlICsgTWF0aC5taW4odGhpcy52aWV3cG9ydFdpZHRoLCB0aGlzLmN1cldpZHRoKS8yKTtcclxuICAgICAgY29uc3Qgb2Zmc2V0WSA9IHRoaXMucGluY2hDZW50ZXIueSp0aGlzLnNjYWxlIC0gKC10aGlzLnkqdGhpcy5zY2FsZSArIE1hdGgubWluKHRoaXMudmlld3BvcnRIZWlnaHQsIHRoaXMuY3VySGVpZ2h0KS8yKTtcclxuICAgICAgdGhpcy5waW5jaENlbnRlck9mZnNldCA9IHsgeDogb2Zmc2V0WCwgeTogb2Zmc2V0WSB9O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld1NjYWxlID0gdGhpcy5zY2FsZSokZXZlbnQuc2NhbGU7XHJcblxyXG4gICAgY29uc3Qgem9vbVggPSB0aGlzLnBpbmNoQ2VudGVyLngqbmV3U2NhbGUgLSB0aGlzLnBpbmNoQ2VudGVyT2Zmc2V0Lng7XHJcbiAgICBjb25zdCB6b29tWSA9IHRoaXMucGluY2hDZW50ZXIueSpuZXdTY2FsZSAtIHRoaXMucGluY2hDZW50ZXJPZmZzZXQueTtcclxuICAgIGNvbnN0IHpvb21DZW50ZXIgPSB7IHg6IHpvb21YL25ld1NjYWxlLCB5OiB6b29tWS9uZXdTY2FsZSB9O1xyXG4gICAgXHJcbiAgICB0aGlzLnpvb21Bcm91bmQoJGV2ZW50LnNjYWxlLCB6b29tQ2VudGVyLngsIHpvb21DZW50ZXIueSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBvblBpbmNoRW5kKCRldmVudCl7XHJcbiAgICBjb25zb2xlLmxvZyhcInBpbmNoRW5kXCIpO1xyXG4gICAgdGhpcy51cGRhdGVMYXN0U2NhbGUoKTtcclxuICAgIHRoaXMudXBkYXRlTGFzdFBvcygpO1xyXG4gICAgdGhpcy5waW5jaENlbnRlciA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBvblBhbigkZXZlbnQpe1xyXG4gICAgLy8gVE9ETzogbG9va3MgbGlrZSBuYXRpdmUgcGFuIHdvcmtzIGJldHRlclxyXG4gICAgLy8gaWYgKCF0aGlzLmlzRGVza3RvcCkge1xyXG4gICAgLy8gICB0aGlzLnRyYW5zbGF0ZSgkZXZlbnQuZGVsdGFYLCAkZXZlbnQuZGVsdGFZKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIG9uUGFuRW5kKCRldmVudCl7XHJcbiAgICAvLyBpZiAoIXRoaXMuaXNEZXNrdG9wKSB7XHJcbiAgICAvLyAgIHRoaXMudXBkYXRlTGFzdFBvcygpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgb25Eb3VibGVUYXAoJGV2ZW50KXtcclxuICAgIGlmICghdGhpcy5pc0Rlc2t0b3ApIHtcclxuICAgICAgaWYgKCRldmVudC50YXBDb3VudCA9PT0gMikge1xyXG4gICAgICAgIGNvbnN0IGMgPSB0aGlzLnJhd0NlbnRlcigkZXZlbnQpO1xyXG4gICAgICAgIHRoaXMuem9vbUFyb3VuZCgyLCBjLngsIGMueSwgZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblJvdGF0ZVN0YXJ0KCRldmVudCl7XHJcbiAgICB0aGlzLmluaXRpYWxSb3RhdGlvbiA9ICRldmVudC5yb3RhdGlvbjtcclxuICAgIGNvbnNvbGUubG9nKFwicm90YXRlU3RhcnQ6IFwiICsgJGV2ZW50LnJvdGF0aW9uICsgJyAnICsgJGV2ZW50LmFuZ2xlKTtcclxuICB9XHJcblxyXG4gIG9uUm90YXRlRW5kKCRldmVudCl7XHJcbiAgICBjb25zb2xlLmxvZyhcInJvdGF0ZUVuZDogXCIgKyAkZXZlbnQucm90YXRpb24gKyAnICcgKyAkZXZlbnQuYW5nbGUpO1xyXG4gICAgaWYgKCRldmVudC5yb3RhdGlvbiA+IDAgJiYgdGhpcy5pbml0aWFsUm90YXRpb24gPiAwKSB7XHJcbiAgICAgIGlmICgkZXZlbnQucm90YXRpb24gPiB0aGlzLmluaXRpYWxSb3RhdGlvbiAmJiAoJGV2ZW50LnJvdGF0aW9uIC0gdGhpcy5pbml0aWFsUm90YXRpb24gPiA0NSkpIHtcclxuICAgICAgICB0aGlzLl9yb3RhdGlvblNlcnZjaWUuc2V0Um90YXRpb25BbmdsZSg5MCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoJGV2ZW50LnJvdGF0aW9uIDwgdGhpcy5pbml0aWFsUm90YXRpb24gJiYgKHRoaXMuaW5pdGlhbFJvdGF0aW9uIC0gJGV2ZW50LnJvdGF0aW9uID4gNDUpKSB7XHJcbiAgICAgICAgdGhpcy5fcm90YXRpb25TZXJ2Y2llLnNldFJvdGF0aW9uQW5nbGUoLTkwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gY2FzZSB3aXRoIG5lZ2F0aXZlIHZhbHVlc1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmluaXRpYWxSb3RhdGlvbiA+ICRldmVudC5yb3RhdGlvbiAmJiAoJGV2ZW50LnJvdGF0aW9uIC0gdGhpcy5pbml0aWFsUm90YXRpb24gPiA0NSkpIHtcclxuICAgICAgICB0aGlzLl9yb3RhdGlvblNlcnZjaWUuc2V0Um90YXRpb25BbmdsZSgtOTApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuaW5pdGlhbFJvdGF0aW9uIDwgJGV2ZW50LnJvdGF0aW9uICYmICh0aGlzLmluaXRpYWxSb3RhdGlvbiAtICRldmVudC5yb3RhdGlvbiA+IDQ1KSkge1xyXG4gICAgICAgIHRoaXMuX3JvdGF0aW9uU2VydmNpZS5zZXRSb3RhdGlvbkFuZ2xlKDkwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= \ No newline at end of file diff --git a/dist/libs/common-components/esm5/lib/page/page.component.js b/dist/libs/common-components/esm5/lib/page/page.component.js index 1978ab17d..606b51185 100644 --- a/dist/libs/common-components/esm5/lib/page/page.component.js +++ b/dist/libs/common-components/esm5/lib/page/page.component.js @@ -28,9 +28,8 @@ var PageComponent = /** @class */ (function () { * @return {?} */ function (changes) { - // TODO: this is temporary needed to remove unneeded spaces and BOM symbol - // which leads to undesired spaces on the top of the docs pages - this.data = this.data !== null ? this.data.replace(/>\s+<').replace(/\uFEFF/g, "") : null; + // TODO: this is needed for test purpose to reduce unneeded top-margin + this.data = this.data !== null ? this.data.replace(/>\s+<') : null; /** @type {?} */ var dataImagePngBase64 = 'data:image/png;base64,'; this.imgData = dataImagePngBase64; @@ -42,7 +41,7 @@ var PageComponent = /** @class */ (function () { { type: Component, args: [{ selector: 'gd-page', template: "
\n
\n \"\"\n\n
\n \n  Loading... Please wait.\n
\n
\n", - styles: [".gd-page-spinner{margin-top:150px;text-align:center}.gd-wrapper{width:inherit;height:inherit}.gd-wrapper div{width:100%}/deep/ .gd-highlight{background-color:#ff0}/deep/ .gd-highlight-select{background-color:#ff9b00}.gd-page-image{height:100%!important;width:100%!important}"] + styles: [".gd-page-spinner{margin-top:150px;text-align:center}.gd-wrapper{width:inherit;height:inherit}.gd-wrapper div{width:100%}.gd-highlight{background-color:#ff0}/deep/ .gd-highlight-select{background-color:#ff9b00}.gd-page-image{height:100%!important;width:100%!important}"] }] } ]; /** @nocollapse */ @@ -77,4 +76,4 @@ if (false) { /** @type {?} */ PageComponent.prototype.imgData; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvcGFnZS9wYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBRWpGO0lBZ0JFO0lBQ0EsQ0FBQzs7OztJQUVELGdDQUFROzs7SUFBUjs7WUFDUSxJQUFJLEdBQUcsWUFBWSxDQUFBLEtBQUssSUFBSSxDQUFDLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDeEYsSUFBRyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDSCxDQUFDOzs7OztJQUVELG1DQUFXOzs7O0lBQVgsVUFBWSxPQUFzQjtRQUNoQywyRUFBMkU7UUFDM0UsK0RBQStEO1FBQy9ELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7O1lBQ3pGLGtCQUFrQixHQUFHLHdCQUF3QjtRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztTQUMzQjtJQUNILENBQUM7O2dCQW5DRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLGdrQkFBb0M7O2lCQUVyQzs7Ozs7d0JBR0UsS0FBSzt3QkFDTCxLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzs7SUF1QlIsb0JBQUM7Q0FBQSxBQXBDRCxJQW9DQztTQS9CWSxhQUFhOzs7SUFFeEIsOEJBQXVCOztJQUN2Qiw4QkFBdUI7O0lBQ3ZCLCtCQUF3Qjs7SUFDeEIsK0JBQXdCOztJQUN4Qiw2QkFBc0I7O0lBQ3RCLCtCQUF5Qjs7SUFDekIsaUNBQTJCOztJQUMzQixnQ0FBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2QtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnZS5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgYW5nbGU6IG51bWJlcjtcbiAgQElucHV0KCkgd2lkdGg6IG51bWJlcjtcbiAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXI7XG4gIEBJbnB1dCgpIG51bWJlcjogbnVtYmVyO1xuICBASW5wdXQoKSBkYXRhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzSHRtbDogYm9vbGVhbjtcbiAgQElucHV0KCkgZWRpdGFibGU6IGJvb2xlYW47XG4gIGltZ0RhdGE6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGlzSUUgPSAvKkBjY19vbiFAKi9mYWxzZSB8fCAhIS8oTVNJRXxUcmlkZW50XFwvfEVkZ2VcXC8pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgICBpZihpc0lFICYmIHRoaXMubnVtYmVyID09PSAwKXtcbiAgICAgIHRoaXMuZWRpdGFibGUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gVE9ETzogdGhpcyBpcyB0ZW1wb3JhcnkgbmVlZGVkIHRvIHJlbW92ZSB1bm5lZWRlZCBzcGFjZXMgYW5kIEJPTSBzeW1ib2wgXG4gICAgLy8gd2hpY2ggbGVhZHMgdG8gdW5kZXNpcmVkIHNwYWNlcyBvbiB0aGUgdG9wIG9mIHRoZSBkb2NzIHBhZ2VzXG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhICE9PSBudWxsID8gdGhpcy5kYXRhLnJlcGxhY2UoLz5cXHMrPC9nLCc+PCcpLnJlcGxhY2UoL1xcdUZFRkYvZyxcIlwiKSA6IG51bGw7XG4gICAgY29uc3QgZGF0YUltYWdlUG5nQmFzZTY0ID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnO1xuICAgIHRoaXMuaW1nRGF0YSA9IGRhdGFJbWFnZVBuZ0Jhc2U2NDtcbiAgICBpZiAoIXRoaXMuaXNIdG1sKSB7XG4gICAgICB0aGlzLmltZ0RhdGEgKz0gdGhpcy5kYXRhO1xuICAgIH1cbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvcGFnZS9wYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBRWpGO0lBZ0JFO0lBQ0EsQ0FBQzs7OztJQUVELGdDQUFROzs7SUFBUjs7WUFDUSxJQUFJLEdBQUcsWUFBWSxDQUFBLEtBQUssSUFBSSxDQUFDLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDeEYsSUFBRyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDSCxDQUFDOzs7OztJQUVELG1DQUFXOzs7O0lBQVgsVUFBWSxPQUFzQjtRQUNoQyxzRUFBc0U7UUFDdEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7O1lBQ25FLGtCQUFrQixHQUFHLHdCQUF3QjtRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztTQUMzQjtJQUNILENBQUM7O2dCQWxDRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLGdrQkFBb0M7O2lCQUVyQzs7Ozs7d0JBR0UsS0FBSzt3QkFDTCxLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzs7SUFzQlIsb0JBQUM7Q0FBQSxBQW5DRCxJQW1DQztTQTlCWSxhQUFhOzs7SUFFeEIsOEJBQXVCOztJQUN2Qiw4QkFBdUI7O0lBQ3ZCLCtCQUF3Qjs7SUFDeEIsK0JBQXdCOztJQUN4Qiw2QkFBc0I7O0lBQ3RCLCtCQUF5Qjs7SUFDekIsaUNBQTJCOztJQUMzQixnQ0FBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2QtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnZS5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgYW5nbGU6IG51bWJlcjtcbiAgQElucHV0KCkgd2lkdGg6IG51bWJlcjtcbiAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXI7XG4gIEBJbnB1dCgpIG51bWJlcjogbnVtYmVyO1xuICBASW5wdXQoKSBkYXRhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzSHRtbDogYm9vbGVhbjtcbiAgQElucHV0KCkgZWRpdGFibGU6IGJvb2xlYW47XG4gIGltZ0RhdGE6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGlzSUUgPSAvKkBjY19vbiFAKi9mYWxzZSB8fCAhIS8oTVNJRXxUcmlkZW50XFwvfEVkZ2VcXC8pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgICBpZihpc0lFICYmIHRoaXMubnVtYmVyID09PSAwKXtcbiAgICAgIHRoaXMuZWRpdGFibGUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gVE9ETzogdGhpcyBpcyBuZWVkZWQgZm9yIHRlc3QgcHVycG9zZSB0byByZWR1Y2UgdW5uZWVkZWQgdG9wLW1hcmdpblxuICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YSAhPT0gbnVsbCA/IHRoaXMuZGF0YS5yZXBsYWNlKC8+XFxzKzwvZywnPjwnKSA6IG51bGw7XG4gICAgY29uc3QgZGF0YUltYWdlUG5nQmFzZTY0ID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnO1xuICAgIHRoaXMuaW1nRGF0YSA9IGRhdGFJbWFnZVBuZ0Jhc2U2NDtcbiAgICBpZiAoIXRoaXMuaXNIdG1sKSB7XG4gICAgICB0aGlzLmltZ0RhdGEgKz0gdGhpcy5kYXRhO1xuICAgIH1cbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/dist/libs/common-components/esm5/lib/rotation.service.js b/dist/libs/common-components/esm5/lib/rotation.service.js new file mode 100644 index 000000000..54b7143e3 --- /dev/null +++ b/dist/libs/common-components/esm5/lib/rotation.service.js @@ -0,0 +1,47 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import { Subject } from "rxjs"; +var RotationService = /** @class */ (function () { + function RotationService() { + this._observerRotationAngle = new Subject(); + this._rotationAngleChange = this._observerRotationAngle.asObservable(); + } + Object.defineProperty(RotationService.prototype, "rotationAngleChange", { + get: /** + * @return {?} + */ + function () { + return this._rotationAngleChange; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} angle + * @return {?} + */ + RotationService.prototype.setRotationAngle = /** + * @param {?} angle + * @return {?} + */ + function (angle) { + this._observerRotationAngle.next(angle); + }; + return RotationService; +}()); +export { RotationService }; +if (false) { + /** + * @type {?} + * @private + */ + RotationService.prototype._observerRotationAngle; + /** + * @type {?} + * @private + */ + RotationService.prototype._rotationAngleChange; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9yb3RhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXpDO0lBSUU7UUFIUSwyQkFBc0IsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMvQyx5QkFBb0IsR0FBdUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBR3ZHLENBQUM7SUFFRCxzQkFBSSxnREFBbUI7Ozs7UUFBdkI7WUFDRSxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUNuQyxDQUFDOzs7T0FBQTs7Ozs7SUFFRCwwQ0FBZ0I7Ozs7SUFBaEIsVUFBaUIsS0FBYTtRQUM1QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFkRCxJQWNDOzs7Ozs7O0lBYkMsaURBQWdFOzs7OztJQUNoRSwrQ0FBdUciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgUm90YXRpb25TZXJ2aWNlIHtcclxuICBwcml2YXRlIF9vYnNlcnZlclJvdGF0aW9uQW5nbGU6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcm90YXRpb25BbmdsZUNoYW5nZTogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy5fb2JzZXJ2ZXJSb3RhdGlvbkFuZ2xlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcblxyXG4gIGdldCByb3RhdGlvbkFuZ2xlQ2hhbmdlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcm90YXRpb25BbmdsZUNoYW5nZTtcclxuICB9XHJcblxyXG4gIHNldFJvdGF0aW9uQW5nbGUoYW5nbGU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fb2JzZXJ2ZXJSb3RhdGlvbkFuZ2xlLm5leHQoYW5nbGUpO1xyXG4gIH1cclxufVxyXG4iXX0= \ No newline at end of file diff --git a/dist/libs/common-components/esm5/lib/search/search.component.js b/dist/libs/common-components/esm5/lib/search/search.component.js index 83d799e82..bde4dd741 100644 --- a/dist/libs/common-components/esm5/lib/search/search.component.js +++ b/dist/libs/common-components/esm5/lib/search/search.component.js @@ -91,7 +91,7 @@ var SearchComponent = /** @class */ (function () { SearchComponent.decorators = [ { type: Component, args: [{ selector: 'gd-search', - template: "
\n \n
{{current}} of {{total}}
\n \n \n \n \n \n \n
\n", + template: "
\n \n
{{current}} of {{total}}
\n \n \n \n \n \n \n
\n", styles: [".gd-nav-search-btn{margin:3px 0 4px}.gd-nav-search-cancel{color:#fff;font-size:14px;width:37px}.gd-search-count{color:#959da5;font-size:12px;position:absolute;right:148px;top:14px}.gd-nav-search-container{background-color:#3e4e5a;width:410px;position:fixed;left:50%;top:60px;z-index:2;transform:translate(-50%,0);display:flex}.gd-search-input{float:left;height:30px;width:267px;font-size:14px;color:#6e6e6e;border:1px solid #25c2d4;margin:7px 0 7px 7px;box-sizing:border-box;padding:6px 0 5px 9px}input[type=text]::-ms-clear{display:none}@media (max-width:1037px){.gd-search-input{width:231px;height:30px;margin:7px 0 7px 5px}.gd-search-count{position:absolute;left:193px;top:15px}.gd-nav-search-container{width:100%}}"] }] } ]; @@ -123,4 +123,4 @@ if (false) { */ SearchComponent.prototype._searchService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRDtJQWdCRSx5QkFBb0IsY0FBNkI7UUFBakQsaUJBVUM7UUFWbUIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFUdkMsY0FBUyxHQUFHLElBQUksWUFBWSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXZELFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDWixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBT1IsY0FBYyxDQUFDLFdBQVcsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQyxLQUFhO1lBQ2pELEtBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtnQkFDZixLQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQzthQUNsQjtpQkFBTTtnQkFDTCxLQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQzthQUNsQjtZQUNELEtBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxrQ0FBUTs7O0lBQVI7SUFDQSxDQUFDOzs7OztJQUVELGlDQUFPOzs7O0lBQVAsVUFBUSxJQUFZO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Ozs7SUFFRCw4QkFBSTs7O0lBQUo7UUFDRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7SUFFRCw4QkFBSTs7O0lBQUo7UUFDRSxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7Ozs7SUFFRCw4QkFBSTs7O0lBQUo7UUFDRSxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDOzs7O0lBRUQseUNBQWU7OztJQUFmO1FBQ0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekMsQ0FBQzs7Z0JBeERGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsa3BCQUFzQzs7aUJBRXZDOzs7O2dCQU5PLGFBQWE7Ozs0QkFTbEIsTUFBTTs4QkFLTixTQUFTLFNBQUMsTUFBTSxFQUFDO3dCQUNoQixNQUFNLEVBQUcsSUFBSTtxQkFDZDs7SUEyQ0gsc0JBQUM7Q0FBQSxBQXpERCxJQXlEQztTQXBEWSxlQUFlOzs7SUFFMUIsb0NBQXVEOztJQUV2RCxrQ0FBWTs7SUFDWixnQ0FBVTs7SUFFVixzQ0FFMkI7Ozs7O0lBRWYseUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NlYXJjaFNlcnZpY2V9IGZyb20gXCIuLi9zZWFyY2guc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZC1zZWFyY2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBAT3V0cHV0KCkgaGlkZVBhbmVsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XG5cbiAgY3VycmVudCA9IDA7XG4gIHRvdGFsID0gMDtcblxuICBAVmlld0NoaWxkKCd0ZXh0Jyx7XG4gICAgc3RhdGljIDogdHJ1ZVxuICB9KSB0ZXh0RWxlbWVudDogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlKSB7XG4gICAgX3NlYXJjaFNlcnZpY2UudG90YWxDaGFuZ2Uuc3Vic2NyaWJlKCh0b3RhbDogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLnRvdGFsID0gdG90YWw7XG4gICAgICBpZiAodG90YWwgIT09IDApIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IDA7XG4gICAgICB9XG4gICAgICB0aGlzLl9zZWFyY2hTZXJ2aWNlLnNldEN1cnJlbnQodGhpcy5jdXJyZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgc2V0VGV4dCh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zZWFyY2hTZXJ2aWNlLnNldFRleHQodGV4dCk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHRoaXMuc2V0VGV4dCgnJyk7XG4gICAgdGhpcy5oaWRlUGFuZWwuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHByZXYoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudCA+IDEpIHtcbiAgICAgIHRoaXMuY3VycmVudC0tO1xuICAgICAgdGhpcy5fc2VhcmNoU2VydmljZS5zZXRDdXJyZW50KHRoaXMuY3VycmVudCk7XG4gICAgfVxuICB9XG5cbiAgbmV4dCgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50IDwgdGhpcy50b3RhbCkge1xuICAgICAgdGhpcy5jdXJyZW50Kys7XG4gICAgICB0aGlzLl9zZWFyY2hTZXJ2aWNlLnNldEN1cnJlbnQodGhpcy5jdXJyZW50KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy50ZXh0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRDtJQWdCRSx5QkFBb0IsY0FBNkI7UUFBakQsaUJBVUM7UUFWbUIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFUdkMsY0FBUyxHQUFHLElBQUksWUFBWSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXZELFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDWixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBT1IsY0FBYyxDQUFDLFdBQVcsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQyxLQUFhO1lBQ2pELEtBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtnQkFDZixLQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQzthQUNsQjtpQkFBTTtnQkFDTCxLQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQzthQUNsQjtZQUNELEtBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxrQ0FBUTs7O0lBQVI7SUFDQSxDQUFDOzs7OztJQUVELGlDQUFPOzs7O0lBQVAsVUFBUSxJQUFZO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Ozs7SUFFRCw4QkFBSTs7O0lBQUo7UUFDRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7SUFFRCw4QkFBSTs7O0lBQUo7UUFDRSxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7Ozs7SUFFRCw4QkFBSTs7O0lBQUo7UUFDRSxJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDOzs7O0lBRUQseUNBQWU7OztJQUFmO1FBQ0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekMsQ0FBQzs7Z0JBeERGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsdW5CQUFzQzs7aUJBRXZDOzs7O2dCQU5PLGFBQWE7Ozs0QkFTbEIsTUFBTTs4QkFLTixTQUFTLFNBQUMsTUFBTSxFQUFDO3dCQUNoQixNQUFNLEVBQUcsSUFBSTtxQkFDZDs7SUEyQ0gsc0JBQUM7Q0FBQSxBQXpERCxJQXlEQztTQXBEWSxlQUFlOzs7SUFFMUIsb0NBQXVEOztJQUV2RCxrQ0FBWTs7SUFDWixnQ0FBVTs7SUFFVixzQ0FFMkI7Ozs7O0lBRWYseUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NlYXJjaFNlcnZpY2V9IGZyb20gXCIuLi9zZWFyY2guc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZC1zZWFyY2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBAT3V0cHV0KCkgaGlkZVBhbmVsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XG5cbiAgY3VycmVudCA9IDA7XG4gIHRvdGFsID0gMDtcblxuICBAVmlld0NoaWxkKCd0ZXh0Jyx7XG4gICAgc3RhdGljIDogdHJ1ZVxuICB9KSB0ZXh0RWxlbWVudDogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlKSB7XG4gICAgX3NlYXJjaFNlcnZpY2UudG90YWxDaGFuZ2Uuc3Vic2NyaWJlKCh0b3RhbDogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLnRvdGFsID0gdG90YWw7XG4gICAgICBpZiAodG90YWwgIT09IDApIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IDA7XG4gICAgICB9XG4gICAgICB0aGlzLl9zZWFyY2hTZXJ2aWNlLnNldEN1cnJlbnQodGhpcy5jdXJyZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgc2V0VGV4dCh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zZWFyY2hTZXJ2aWNlLnNldFRleHQodGV4dCk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHRoaXMuc2V0VGV4dCgnJyk7XG4gICAgdGhpcy5oaWRlUGFuZWwuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHByZXYoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudCA+IDEpIHtcbiAgICAgIHRoaXMuY3VycmVudC0tO1xuICAgICAgdGhpcy5fc2VhcmNoU2VydmljZS5zZXRDdXJyZW50KHRoaXMuY3VycmVudCk7XG4gICAgfVxuICB9XG5cbiAgbmV4dCgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50IDwgdGhpcy50b3RhbCkge1xuICAgICAgdGhpcy5jdXJyZW50Kys7XG4gICAgICB0aGlzLl9zZWFyY2hTZXJ2aWNlLnNldEN1cnJlbnQodGhpcy5jdXJyZW50KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy50ZXh0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/dist/libs/common-components/esm5/lib/searchable.directive.js b/dist/libs/common-components/esm5/lib/searchable.directive.js index 9ac570457..d5b67bb27 100644 --- a/dist/libs/common-components/esm5/lib/searchable.directive.js +++ b/dist/libs/common-components/esm5/lib/searchable.directive.js @@ -102,7 +102,7 @@ var SearchableDirective = /** @class */ (function () { /** @type {?} */ var options = { left: 0, - top: ($(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150, + top: ($(currentEl).offset().top * currentZoom) + el.parentElement.scrollTop - 150, }; // using polyfill el.parentElement.parentElement.scroll(options); @@ -233,4 +233,4 @@ if (false) { */ SearchableDirective.prototype._zoomService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvc2VhcmNoYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDNUMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOztJQUMzQixDQUFDLEdBQUcsTUFBTTtBQUVoQjtJQVVFLDZCQUFvQixXQUFvQyxFQUNwQyxjQUE2QixFQUM3QixVQUErQixFQUMvQixZQUF5QjtRQUg3QyxpQkFvQkM7UUFwQm1CLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQVA3QyxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNGLFNBQUksR0FBRyxHQUFHLENBQUM7UUFNakIsY0FBYyxDQUFDLGFBQWEsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQyxPQUFlO1lBQ3JELEtBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksS0FBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUU7Z0JBQ3RCLEtBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN0QjtRQUNILENBQUMsRUFBQyxDQUFDO1FBRUgsY0FBYyxDQUFDLFVBQVUsQ0FBQyxTQUFTOzs7O1FBQUMs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QkFDcEMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxtQkFBYSxPQUFPLEVBQUEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7Ozs7O0lBRU8scUNBQU87Ozs7SUFBZjtRQUNFLE9BQU8sSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDekIsQ0FBQzs7Z0JBeEdGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjs7OztnQkFUa0IsVUFBVTtnQkFDckIsYUFBYTtnQkFDYixtQkFBbUI7Z0JBQ25CLFdBQVc7O0lBNkduQiwwQkFBQztDQUFBLEFBekdELElBeUdDO1NBdEdZLG1CQUFtQjs7O0lBRTlCLG1DQUFhOztJQUNiLHNDQUFZOztJQUNaLG9DQUFVOzs7OztJQUNWLG1DQUFtQjs7Ozs7SUFFUCwwQ0FBNEM7Ozs7O0lBQzVDLDZDQUFxQzs7Ozs7SUFDckMseUNBQXVDOzs7OztJQUN2QywyQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NlYXJjaFNlcnZpY2V9IGZyb20gXCIuL3NlYXJjaC5zZXJ2aWNlXCI7XG5pbXBvcnQge0hpZ2hsaWdodFNlYXJjaFBpcGV9IGZyb20gXCIuL3BpcGVzXCI7XG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tIFwiLi96b29tLnNlcnZpY2VcIjtcbmltcG9ydCAqIGFzIGpxdWVyeSBmcm9tIFwianF1ZXJ5XCI7XG5jb25zdCAkID0ganF1ZXJ5O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZ2RTZWFyY2hhYmxlXSdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoYWJsZURpcmVjdGl2ZSB7XG5cbiAgdGV4dDogc3RyaW5nO1xuICBjdXJyZW50ID0gMDtcbiAgdG90YWwgPSAwO1xuICBwcml2YXRlIHpvb20gPSAxMDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX3NlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2hpZ2hsaWdodDogSGlnaGxpZ2h0U2VhcmNoUGlwZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfem9vbVNlcnZpY2U6IFpvb21TZXJ2aWNlKSB7XG4gICAgX3NlYXJjaFNlcnZpY2UuY3VycmVudENoYW5nZS5zdWJzY3JpYmUoKGN1cnJlbnQ6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50ID0gY3VycmVudDtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnQgIT09IDApIHtcbiAgICAgICAgdGhpcy5tb3ZlVG9DdXJyZW50KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfc2VhcmNoU2VydmljZS50ZXh0Q2hhbmdlLnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLnRleHQgPSB0ZXh0O1xuICAgICAgdGhpcy5oaWdobGlnaHRTZWFyY2goKTtcbiAgICB9KTtcblxuICAgIHRoaXMuem9vbSA9IF96b29tU2VydmljZS56b29tID8gX3pvb21TZXJ2aWNlLnpvb20gOiB0aGlzLnpvb207XG4gICAgX3pvb21TZXJ2aWNlLnpvb21DaGFuZ2Uuc3Vic2NyaWJlKCh2YWw6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy56b29tID0gdmFsID8gdmFsIDogdGhpcy56b29tO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWdobGlnaHRTZWFyY2goKSB7XG4gICAgY29uc3QgZWwgPSB0aGlzLl9lbGVtZW50UmVmID8gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IDogbnVsbDtcbiAgICBpZiAoZWwpIHtcbiAgICAgIHRoaXMuY2xlYW5IaWdobGlnaHQoZWwpO1xuICAgICAgaWYgKHRoaXMudGV4dCkge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodEVsKGVsKTtcbiAgICAgICAgY29uc3QgY291bnQgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCcuZ2QtaGlnaGxpZ2h0JykubGVuZ3RoO1xuICAgICAgICB0aGlzLnRvdGFsID0gY291bnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRvdGFsID0gMDtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3NlYXJjaFNlcnZpY2Uuc2V0VG90YWwodGhpcy50b3RhbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtb3ZlVG9DdXJyZW50KCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnQgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudFpvb20gPSB0aGlzLmdldFpvb20oKTtcbiAgICBjb25zdCBlbCA9IHRoaXMuX2VsZW1lbnRSZWYgPyB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgOiBudWxsO1xuICAgIGlmIChlbCkge1xuICAgICAgZWwucXVlcnlTZWxlY3RvckFsbCgnLmdkLWhpZ2hsaWdodC1zZWxlY3QnKS5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAkKHZhbHVlKS5yZW1vdmVDbGFzcygnZ2QtaGlnaGxpZ2h0LXNlbGVjdCcpO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBjdXJyZW50RWwgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCcuZ2QtaGlnaGxpZ2h0JylbdGhpcy5jdXJyZW50IC0gMV07XG4gICAgICAkKGN1cnJlbnRFbCkuYWRkQ2xhc3MoJ2dkLWhpZ2hsaWdodC1zZWxlY3QnKTtcbiAgICAgIGlmIChjdXJyZW50RWwpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHRvcDogKCQoY3VycmVudEVsKS5vZmZzZXQoKS50b3ApICsgZWwucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnNjcm9sbFRvcCAtIDE1MCxcbiAgICAgICAgfTtcbiAgICAgICAgLy8gdXNpbmcgcG9seWZpbGxcbiAgICAgICAgZWwucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnNjcm9sbChvcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhpZ2hsaWdodEVsKGVsOiBFbGVtZW50KSB7XG4gICAgY29uc3QgdGV4dE5vZGVzID0gJChlbCkuZmluZCgnKicpLmNvbnRlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG5vZGVOYW1lID0gdGhpcy5wYXJlbnRFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBjaGVja0NsYXNzID0gKDxFbGVtZW50PnRoaXMpLmNsYXNzTGlzdCA/ICEoPEVsZW1lbnQ+dGhpcykuY2xhc3NMaXN0LmNvbnRhaW5zKCdnZC1oaWdobGlnaHQnKSA6IHRydWU7XG4gICAgICByZXR1cm4gdGhpcy5ub2RlVHlwZSA9PT0gMyAmJlxuICAgICAgICB0aGlzLnRleHRDb250ZW50LnRyaW0oKS5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgbm9kZU5hbWUgIT09ICdzdHlsZScgJiZcbiAgICAgICAgbm9kZU5hbWUgIT09ICd0aXRsZScgJiZcbiAgICAgICAgbm9kZU5hbWUgIT09ICdib2R5JyAmJlxuICAgICAgICBub2RlTmFtZSAhPT0gJ3NjcmlwdCcgJiZcbiAgICAgICAgY2hlY2tDbGFzcztcbiAgICB9KTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy50ZXh0O1xuICAgIGNvbnN0IGhpZ2hsaWdodCA9IHRoaXMuX2hpZ2hsaWdodDtcbiAgICB0ZXh0Tm9kZXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICBsZXQgY29udGVudCA9ICR0aGlzLnRleHQoKTtcbiAgICAgIGNvbnRlbnQgPSBoaWdobGlnaHQudHJhbnNmb3JtKGNvbnRlbnQsIHRleHQpO1xuICAgICAgJHRoaXMucmVwbGFjZVdpdGgoY29udGVudCk7XG4gICAgfSk7XG4gICAgZWwubm9ybWFsaXplKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFuSGlnaGxpZ2h0KGVsOiBIVE1MRWxlbWVudCkge1xuICAgIGNvbnN0IG5vZGVMaXN0T2YgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCcuZ2QtaGlnaGxpZ2h0Jyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlTGlzdE9mLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gbm9kZUxpc3RPZi5pdGVtKGkpO1xuICAgICAgZWxlbWVudC5yZXBsYWNlV2l0aCgoPEhUTUxFbGVtZW50PmVsZW1lbnQpLmlubmVyVGV4dCk7XG4gICAgfVxuICAgIGVsLm5vcm1hbGl6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRab29tKCkge1xuICAgIHJldHVybiB0aGlzLnpvb20gLyAxMDA7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvc2VhcmNoYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDNUMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOztJQUMzQixDQUFDLEdBQUcsTUFBTTtBQUVoQjtJQVVFLDZCQUFvQixXQUFvQyxFQUNwQyxjQUE2QixFQUM3QixVQUErQixFQUMvQixZQUF5QjtRQUg3QyxpQkFvQkM7UUFwQm1CLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQVA3QyxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNGLFNBQUksR0FBRyxHQUFHLENBQUM7UUFNakIsY0FBYyxDQUFDLGFBQWEsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQyxPQUFlO1lBQ3JELEtBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksS0FBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUU7Z0JBQ3RCLEtBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN0QjtRQUNILENBQUMsRUFBQyxDQUFDO1FBRUgsY0FBYyxDQUFDLFVBQVUsQ0FBQyxTQUFTOzs7O1FBQUMs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QkFDcEMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxtQkFBYSxPQUFPLEVBQUEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7Ozs7O0lBRU8scUNBQU87Ozs7SUFBZjtRQUNFLE9BQU8sSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDekIsQ0FBQzs7Z0JBeEdGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjs7OztnQkFUa0IsVUFBVTtnQkFDckIsYUFBYTtnQkFDYixtQkFBbUI7Z0JBQ25CLFdBQVc7O0lBNkduQiwwQkFBQztDQUFBLEFBekdELElBeUdDO1NBdEdZLG1CQUFtQjs7O0lBRTlCLG1DQUFhOztJQUNiLHNDQUFZOztJQUNaLG9DQUFVOzs7OztJQUNWLG1DQUFtQjs7Ozs7SUFFUCwwQ0FBNEM7Ozs7O0lBQzVDLDZDQUFxQzs7Ozs7SUFDckMseUNBQXVDOzs7OztJQUN2QywyQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NlYXJjaFNlcnZpY2V9IGZyb20gXCIuL3NlYXJjaC5zZXJ2aWNlXCI7XG5pbXBvcnQge0hpZ2hsaWdodFNlYXJjaFBpcGV9IGZyb20gXCIuL3BpcGVzXCI7XG5pbXBvcnQge1pvb21TZXJ2aWNlfSBmcm9tIFwiLi96b29tLnNlcnZpY2VcIjtcbmltcG9ydCAqIGFzIGpxdWVyeSBmcm9tIFwianF1ZXJ5XCI7XG5jb25zdCAkID0ganF1ZXJ5O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZ2RTZWFyY2hhYmxlXSdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoYWJsZURpcmVjdGl2ZSB7XG5cbiAgdGV4dDogc3RyaW5nO1xuICBjdXJyZW50ID0gMDtcbiAgdG90YWwgPSAwO1xuICBwcml2YXRlIHpvb20gPSAxMDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX3NlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2hpZ2hsaWdodDogSGlnaGxpZ2h0U2VhcmNoUGlwZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfem9vbVNlcnZpY2U6IFpvb21TZXJ2aWNlKSB7XG4gICAgX3NlYXJjaFNlcnZpY2UuY3VycmVudENoYW5nZS5zdWJzY3JpYmUoKGN1cnJlbnQ6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50ID0gY3VycmVudDtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnQgIT09IDApIHtcbiAgICAgICAgdGhpcy5tb3ZlVG9DdXJyZW50KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfc2VhcmNoU2VydmljZS50ZXh0Q2hhbmdlLnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLnRleHQgPSB0ZXh0O1xuICAgICAgdGhpcy5oaWdobGlnaHRTZWFyY2goKTtcbiAgICB9KTtcblxuICAgIHRoaXMuem9vbSA9IF96b29tU2VydmljZS56b29tID8gX3pvb21TZXJ2aWNlLnpvb20gOiB0aGlzLnpvb207XG4gICAgX3pvb21TZXJ2aWNlLnpvb21DaGFuZ2Uuc3Vic2NyaWJlKCh2YWw6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy56b29tID0gdmFsID8gdmFsIDogdGhpcy56b29tO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWdobGlnaHRTZWFyY2goKSB7XG4gICAgY29uc3QgZWwgPSB0aGlzLl9lbGVtZW50UmVmID8gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IDogbnVsbDtcbiAgICBpZiAoZWwpIHtcbiAgICAgIHRoaXMuY2xlYW5IaWdobGlnaHQoZWwpO1xuICAgICAgaWYgKHRoaXMudGV4dCkge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodEVsKGVsKTtcbiAgICAgICAgY29uc3QgY291bnQgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCcuZ2QtaGlnaGxpZ2h0JykubGVuZ3RoO1xuICAgICAgICB0aGlzLnRvdGFsID0gY291bnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRvdGFsID0gMDtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3NlYXJjaFNlcnZpY2Uuc2V0VG90YWwodGhpcy50b3RhbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtb3ZlVG9DdXJyZW50KCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnQgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudFpvb20gPSB0aGlzLmdldFpvb20oKTtcbiAgICBjb25zdCBlbCA9IHRoaXMuX2VsZW1lbnRSZWYgPyB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgOiBudWxsO1xuICAgIGlmIChlbCkge1xuICAgICAgZWwucXVlcnlTZWxlY3RvckFsbCgnLmdkLWhpZ2hsaWdodC1zZWxlY3QnKS5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAkKHZhbHVlKS5yZW1vdmVDbGFzcygnZ2QtaGlnaGxpZ2h0LXNlbGVjdCcpO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBjdXJyZW50RWwgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCcuZ2QtaGlnaGxpZ2h0JylbdGhpcy5jdXJyZW50IC0gMV07XG4gICAgICAkKGN1cnJlbnRFbCkuYWRkQ2xhc3MoJ2dkLWhpZ2hsaWdodC1zZWxlY3QnKTtcbiAgICAgIGlmIChjdXJyZW50RWwpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIHRvcDogKCQoY3VycmVudEVsKS5vZmZzZXQoKS50b3AgKiBjdXJyZW50Wm9vbSkgKyBlbC5wYXJlbnRFbGVtZW50LnNjcm9sbFRvcCAtIDE1MCxcbiAgICAgICAgfTtcbiAgICAgICAgLy8gdXNpbmcgcG9seWZpbGxcbiAgICAgICAgZWwucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnNjcm9sbChvcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhpZ2hsaWdodEVsKGVsOiBFbGVtZW50KSB7XG4gICAgY29uc3QgdGV4dE5vZGVzID0gJChlbCkuZmluZCgnKicpLmNvbnRlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG5vZGVOYW1lID0gdGhpcy5wYXJlbnRFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBjaGVja0NsYXNzID0gKDxFbGVtZW50PnRoaXMpLmNsYXNzTGlzdCA/ICEoPEVsZW1lbnQ+dGhpcykuY2xhc3NMaXN0LmNvbnRhaW5zKCdnZC1oaWdobGlnaHQnKSA6IHRydWU7XG4gICAgICByZXR1cm4gdGhpcy5ub2RlVHlwZSA9PT0gMyAmJlxuICAgICAgICB0aGlzLnRleHRDb250ZW50LnRyaW0oKS5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgbm9kZU5hbWUgIT09ICdzdHlsZScgJiZcbiAgICAgICAgbm9kZU5hbWUgIT09ICd0aXRsZScgJiZcbiAgICAgICAgbm9kZU5hbWUgIT09ICdib2R5JyAmJlxuICAgICAgICBub2RlTmFtZSAhPT0gJ3NjcmlwdCcgJiZcbiAgICAgICAgY2hlY2tDbGFzcztcbiAgICB9KTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy50ZXh0O1xuICAgIGNvbnN0IGhpZ2hsaWdodCA9IHRoaXMuX2hpZ2hsaWdodDtcbiAgICB0ZXh0Tm9kZXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICBsZXQgY29udGVudCA9ICR0aGlzLnRleHQoKTtcbiAgICAgIGNvbnRlbnQgPSBoaWdobGlnaHQudHJhbnNmb3JtKGNvbnRlbnQsIHRleHQpO1xuICAgICAgJHRoaXMucmVwbGFjZVdpdGgoY29udGVudCk7XG4gICAgfSk7XG4gICAgZWwubm9ybWFsaXplKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFuSGlnaGxpZ2h0KGVsOiBIVE1MRWxlbWVudCkge1xuICAgIGNvbnN0IG5vZGVMaXN0T2YgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCcuZ2QtaGlnaGxpZ2h0Jyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlTGlzdE9mLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gbm9kZUxpc3RPZi5pdGVtKGkpO1xuICAgICAgZWxlbWVudC5yZXBsYWNlV2l0aCgoPEhUTUxFbGVtZW50PmVsZW1lbnQpLmlubmVyVGV4dCk7XG4gICAgfVxuICAgIGVsLm5vcm1hbGl6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRab29tKCkge1xuICAgIHJldHVybiB0aGlzLnpvb20gLyAxMDA7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/dist/libs/common-components/fesm2015/groupdocs.examples.angular-common-components.js b/dist/libs/common-components/fesm2015/groupdocs.examples.angular-common-components.js index e890f8450..bddee9ea2 100644 --- a/dist/libs/common-components/fesm2015/groupdocs.examples.angular-common-components.js +++ b/dist/libs/common-components/fesm2015/groupdocs.examples.angular-common-components.js @@ -8,8 +8,9 @@ import { HttpHeaders, HttpErrorResponse } from '@angular/common/http'; import { Observable, Subject, fromEvent, BehaviorSubject, throwError } from 'rxjs'; import * as jquery from 'jquery'; import * as Hammer from 'hammerjs'; +import { DIRECTION_ALL } from 'hammerjs'; import { debounceTime, distinctUntilChanged, startWith, tap, map, catchError, finalize } from 'rxjs/operators'; -import { DomSanitizer } from '@angular/platform-browser'; +import { DomSanitizer, HammerGestureConfig } from '@angular/platform-browser'; import { ClickOutsideModule } from 'ng-click-outside'; /** @@ -23,7 +24,7 @@ class TopToolbarComponent { TopToolbarComponent.decorators = [ { type: Component, args: [{ selector: 'gd-top-toolbar', - template: "
\n
\n \n
\n
\n", + template: "
\r\n
\r\n \r\n
\r\n
\r\n", styles: [".top-toolbar{width:100%;height:60px;z-index:999;display:flex;align-items:center}.tools{width:100%;height:100%;display:flex;align-items:center}@media (max-width:1037px){.top-toolbar{height:60px}.tools{height:100%;overflow-x:auto;overflow-scrolling:touch;display:flex;align-items:center;transition:.3s ease-in-out;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.tools::-webkit-scrollbar{width:0;height:0;background-color:#3e4e5a}}"] }] } ]; @@ -48,7 +49,7 @@ class SidePanelComponent { SidePanelComponent.decorators = [ { type: Component, args: [{ selector: 'gd-side-panel', - template: "
\n
\n \n
{{title}}
\n
\n \n
\n
\n
\n \n
\n
\n", + template: "
\r\n
\r\n \r\n
{{title}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n", styles: [".gd-side-panel-wrapper{margin-right:0;width:334px;z-index:999;background-color:#fff;transition:margin-right .2s;display:flex;flex-flow:column;height:100vh}.gd-side-panel-wrapper .gd-side-panel-header{height:60px;background-color:#222e35;display:flex;flex-direction:row;flex-wrap:nowrap}.gd-side-panel-wrapper .gd-side-panel-header .icon{font-size:24px;color:#959da5;margin:12px 9px 18px 14px}.gd-side-panel-wrapper .gd-side-panel-header .title{font-size:14px;font-weight:700;color:rgba(237,240,242,.57);margin-top:20px;width:100%}.gd-side-panel-wrapper .gd-side-panel-header .close{font-size:24px!important;margin-top:12px}.gd-side-panel-wrapper .gd-side-panel-body{display:flex;flex-flow:column;overflow:visible;overflow-y:auto;overflow-x:hidden;height:100%}@media (max-width:1037px){.gd-side-panel-wrapper{width:100%;position:absolute;left:0;right:0;top:0;bottom:0}}"] }] } ]; @@ -100,7 +101,7 @@ class ButtonComponent { ButtonComponent.decorators = [ { type: Component, args: [{ selector: 'gd-button', - template: "
\n \n \n
\n
\n", + template: "
\r\n \r\n \r\n
\r\n
\r\n", styles: [".icon-button{padding:0!important;margin:0 10px}.button{padding:0 10px;font-size:14px;color:#959da5;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:37px;height:37px;text-align:center;position:relative;white-space:nowrap}.button.inactive{cursor:not-allowed;opacity:.4}.button.active *{color:#ccd0d4}.button.primary{background-color:#3e4e5a;color:#fff}.button.primary.active{color:#fff;background-color:#688296}.button.brand{background-color:#25c2d4;color:#fff}.button.brand.active{color:#fff;background-color:#688296}.button .text{font-size:13px;padding-left:10px}@media (max-width:1037px){.button{font-size:22px}.arrow-button{margin:5px}}"] }] } ]; @@ -130,7 +131,7 @@ class LogoComponent { LogoComponent.decorators = [ { type: Component, args: [{ selector: 'gd-logo', - template: "
\n \n \n
\n\n", + template: "
\r\n \r\n \r\n
\r\n\r\n", styles: [".logo{background-color:#25c2d4;height:60px;display:flex;align-items:center;justify-content:center}.text{color:#fff;font-size:15px;text-transform:uppercase;margin:0 14px}.icon{display:none;font-size:32px;color:rgba(255,255,255,.5);margin:14px}@media (max-width:1037px){.logo{width:60px;height:60px}.logo .text{display:none}.logo .icon{display:block}}"] }] } ]; @@ -165,7 +166,7 @@ class TooltipComponent { TooltipComponent.decorators = [ { type: Component, args: [{ selector: 'gd-tooltip', - template: "\n", + template: "\r\n", styles: [".tooltip{position:absolute;margin-top:37px;width:100px;background-color:#000;color:#fff;text-align:center;border-radius:0;padding:5px 0;z-index:1;margin-left:-66px;font-size:10px;height:11px;line-height:11px}.tooltip.hidden{visibility:hidden}.tooltip.shown{visibility:visible}.shown:after{content:\" \";position:absolute;bottom:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-bottom-color:#000}"] }] } ]; @@ -395,7 +396,7 @@ class ModalComponent { ModalComponent.decorators = [ { type: Component, args: [{ selector: 'gd-modal', - template: "
\n
\n
\n
\n\n
\n
×
\n

{{title}}

\n
\n\n
\n \n
\n\n
\n\n
\n
\n
\n\n", + template: "
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
×
\r\n

{{title}}

\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n", styles: ["@import url(https://fonts.googleapis.com/css?family=Montserrat&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.gd-modal{overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0;background-color:rgba(0,0,0,.5)}.gd-modal-dialog{box-shadow:#0005 0 0 10px;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1051}.gd-modal-content{background-color:#fff;height:100%;display:flex;flex-direction:column}.gd-modal-header{height:60px;padding:0 12px 0 24px;background-color:#3e4e5a}.gd-modal-close{position:absolute;right:12px;top:12px;cursor:pointer;color:#fff;width:37px;height:37px;text-align:center}.gd-modal-close span{font-size:18px;font-weight:900;height:19px;width:10px;line-height:36px}.gd-modal-title{font-size:16px;font-weight:400;padding-top:17px;padding-bottom:22px;margin:0;color:#fff}.gd-modal-body{background-color:#fff;overflow:hidden;overflow-y:auto;height:calc(100% - 75px)}.gd-modal-footer{height:auto}.gd-modal-footer>.btn{float:right;margin:20px 15px;padding:10px 20px;cursor:pointer;font-size:12px}@media (max-width:1037px){.gd-modal-dialog{width:100%;height:100%}.gd-modal-body{height:100%}}"] }] } ]; @@ -742,7 +743,7 @@ class BrowseFilesModalComponent { BrowseFilesModalComponent.decorators = [ { type: Component, args: [{ selector: 'gd-browse-files-modal', - template: "\n
\n
\n \n Drop file here to upload\n
\n
\n
\n \n
\n
\n \n \n \n Upload file\n \n \n \n \n \n
{{item.name}}
\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
FILE
\n
SIZE
\n
\n
\n
\n
\n
\n
\n \n
\n
..
\n
\n
\n
\n \n
\n
{{file?.name}}
\n
{{getFormatName(file)}}
\n
\n
\n
\n {{getSize(file?.size)}}\n
\n
\n
\n
\n
\n \n  Loading... Please wait.\n
\n
\n
\n", + template: "\r\n
\r\n
\r\n \r\n Drop file here to upload\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Upload file\r\n \r\n \r\n \r\n \r\n \r\n
{{item.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
FILE
\r\n
SIZE
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
..
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{file?.name}}
\r\n
{{getFormatName(file)}}
\r\n
\r\n
\r\n
\r\n {{getSize(file?.size)}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n  Loading... Please wait.\r\n
\r\n
\r\n
\r\n", styles: [".gd-modal-table{width:100%;text-align:left}#gd-browse-section{width:1036px;height:561px;overflow-y:auto}.list-files-header{height:60px;color:#6e6e6e;font-size:13px;font-weight:700;background-color:#f4f4f4;margin-top:24px}.list-files-header.upload-url{margin-top:20px}.header-name{padding-left:24px;width:90%;line-height:60px}.header-size{padding-right:27px;line-height:60px}.file-size,.header-size{width:10%;color:#777;text-align:right}.file-description{display:flex;width:90%;padding:18px 0 18px 24px;font-size:14px;flex:1;cursor:pointer;overflow:hidden}.file-size{font-size:12px;padding:0 27px 0 0;width:10%;line-height:79px}.list-files-header,.list-files-lines{display:flex;width:100%;justify-content:space-between}.gd-modal-spinner{background-color:#fff;width:100%;height:20px;text-align:center;font-size:16px}.gd-cancel-button{padding:7px;background:0 0;width:28px;overflow:hidden}.gd-cancel-button i{font-size:21px}.gd-file-name{white-space:nowrap;overflow:hidden;width:100%;text-overflow:ellipsis}.go-up{display:flex;font-size:26px;cursor:pointer;color:#4b566c;height:79px}.go-up-dots{margin-left:20px;margin-top:22px;font-size:16px}.go-up-icon{display:block;padding:18px 0 18px 24px}.upload-panel{display:flex;position:relative;width:100%}.upload-panel .context{display:flex;flex-direction:column;width:100%;margin-left:24px;margin-top:24px;margin-right:24px}.upload-panel .context .context-actions{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-actions :last-child{margin-right:0}.upload-panel .context .context-actions ::ng-deep .button{height:37px;width:96px;padding:0;justify-content:center}.upload-panel .context .context-actions ::ng-deep .button ::ng-deep .text{font-size:10px}.upload-panel .context .context-panel{display:flex;flex-direction:row;width:100%;margin-top:20px}.upload-panel .context .context-panel .upload-url{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-panel .upload-url .url-input{width:100%;height:27px;border:1px solid #25c2d4;font-size:14px;padding-left:6px}.upload-panel .context .context-panel .upload-url .url-check{width:31px;height:31px;color:#fff;font-size:15px;background-color:#25c2d4}.upload-panel .context .context-panel .upload-url .url-check .ng-fa-icon{display:block;padding:8px}.upload-panel gd-drop-down{margin-right:10px}.file-description .ng-fa-icon.fa-file-pdf{color:#e04e4e}.file-description .ng-fa-icon.fa-file-word{color:#539cf0}.file-description .ng-fa-icon.fa-file-powerpoint{color:#e29e1e}.file-description .ng-fa-icon.fa-file-excel{color:#7cbc46}.file-description .ng-fa-icon.fa-file-image{color:#c375ed}.file-description .ng-fa-icon.fa-file,.file-description .ng-fa-icon.fa-file-alt,.file-description .ng-fa-icon.fa-file-text .fa-folder{color:#4b566c}.file-description .ng-fa-icon{font-size:32px}.file-name{font-size:16px;color:#6e6e6e;overflow:hidden;text-overflow:ellipsis}.file-name-format{padding-left:11px;overflow:hidden}.file-format{font-size:10px;padding-top:3px;color:#acacac}.go-up,.list-files-lines{border-bottom:1px solid #e7e7e7}.list-files-lines:hover{background-color:#e5e5e5}.gd-dnd-wrap{background-color:#fff;cursor:default;position:absolute;width:100%;height:calc(100% - 60px);background:rgba(255,255,255,.7);z-index:1;display:flex;justify-content:center;align-items:center}.dnd-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;top:259px;position:absolute}.dnd-wrapper .text{color:#6e6e6e;font-size:14px}.dnd-wrapper .icon{display:flex;width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}@media (max-width:1037px){.file-size,.header-size{width:18%}.gd-dnd-wrap{width:95%}#gd-browse-section{width:100%;height:calc(100% - 146px)}}"] }] } ]; @@ -879,6 +880,30 @@ class WindowService { } } +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class RotationService { + constructor() { + this._observerRotationAngle = new Subject(); + this._rotationAngleChange = this._observerRotationAngle.asObservable(); + } + /** + * @return {?} + */ + get rotationAngleChange() { + return this._rotationAngleChange; + } + /** + * @param {?} angle + * @return {?} + */ + setRotationAngle(angle) { + this._observerRotationAngle.next(angle); + } +} + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -890,11 +915,13 @@ class DocumentComponent { * @param {?} _elementRef * @param {?} _zoomService * @param {?} _windowService + * @param {?} _rotationServcie */ - constructor(_elementRef, _zoomService, _windowService) { + constructor(_elementRef, _zoomService, _windowService, _rotationServcie) { this._elementRef = _elementRef; this._zoomService = _zoomService; this._windowService = _windowService; + this._rotationServcie = _rotationServcie; this.wait = false; this.docWidth = null; this.docHeight = null; @@ -1116,6 +1143,7 @@ class DocumentComponent { * @return {?} */ onPinch($event) { + console.log("pinch"); if (this.pinchCenter === null) { this.pinchCenter = this.rawCenter($event); /** @type {?} */ @@ -1139,6 +1167,7 @@ class DocumentComponent { * @return {?} */ onPinchEnd($event) { + console.log("pinchEnd"); this.updateLastScale(); this.updateLastPos(); this.pinchCenter = null; @@ -1175,11 +1204,43 @@ class DocumentComponent { } } } + /** + * @param {?} $event + * @return {?} + */ + onRotateStart($event) { + this.initialRotation = $event.rotation; + console.log("rotateStart: " + $event.rotation + ' ' + $event.angle); + } + /** + * @param {?} $event + * @return {?} + */ + onRotateEnd($event) { + console.log("rotateEnd: " + $event.rotation + ' ' + $event.angle); + if ($event.rotation > 0 && this.initialRotation > 0) { + if ($event.rotation > this.initialRotation && ($event.rotation - this.initialRotation > 45)) { + this._rotationServcie.setRotationAngle(90); + } + else if ($event.rotation < this.initialRotation && (this.initialRotation - $event.rotation > 45)) { + this._rotationServcie.setRotationAngle(-90); + } + } + // case with negative values + else { + if (this.initialRotation > $event.rotation && ($event.rotation - this.initialRotation > 45)) { + this._rotationServcie.setRotationAngle(-90); + } + else if (this.initialRotation < $event.rotation && (this.initialRotation - $event.rotation > 45)) { + this._rotationServcie.setRotationAngle(90); + } + } + } } DocumentComponent.decorators = [ { type: Component, args: [{ selector: 'gd-document', - template: "
Please wait...
\n
\n
\n
\n \n
\n
\n \n
\n", + template: "
Please wait...
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n", styles: [":host{flex:1;transition:.4s;background-color:#e7e7e7;height:100%;overflow:scroll}.page{display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.page.excel{overflow:auto}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:flex-start}.panzoom.mobile{overflow:scroll}@media (max-width:1037px){.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] }] } ]; @@ -1187,7 +1248,8 @@ DocumentComponent.decorators = [ DocumentComponent.ctorParameters = () => [ { type: ElementRef }, { type: ZoomService }, - { type: WindowService } + { type: WindowService }, + { type: RotationService } ]; DocumentComponent.propDecorators = { mode: [{ type: Input }], @@ -1231,7 +1293,7 @@ class PageComponent { PageComponent.decorators = [ { type: Component, args: [{ selector: 'gd-page', - template: "
\n
\n \"\"\n\n
\n \n  Loading... Please wait.\n
\n
\n", + template: "
\r\n
\r\n \"\"\r\n\r\n
\r\n \r\n  Loading... Please wait.\r\n
\r\n
\r\n", styles: [".gd-page-spinner{margin-top:150px;text-align:center}.gd-wrapper{width:inherit;height:inherit}.gd-wrapper div{width:100%}/deep/ .gd-highlight{background-color:#ff0}/deep/ .gd-highlight-select{background-color:#ff9b00}.gd-page-image{height:100%!important;width:100%!important}"] }] } ]; @@ -1380,7 +1442,7 @@ class UploadFileZoneComponent { UploadFileZoneComponent.decorators = [ { type: Component, args: [{ selector: 'gd-upload-file-zone', - template: "
\n
\n \n
\n

Drag & Drop your files here

\n

OR

\n
\n \n
\n
\n", + template: "
\r\n
\r\n \r\n
\r\n

Drag & Drop your files here

\r\n

OR

\r\n
\r\n \r\n
\r\n
\r\n", styles: [".gd-drag-n-drop-wrap{border:2px dashed #ccc;background-color:#f8f8f8;text-align:center;cursor:default;position:absolute;width:-webkit-fill-available;left:1px;display:flex;align-content:center;flex-direction:column;justify-content:center;opacity:.9;z-index:1}.gd-drag-n-drop-wrap h2{color:#959da5;margin:5px 0;font-size:15px;font-weight:300}.gd-drag-n-drop-wrap h4{color:#cacaca;font-weight:300;font-size:12px;margin:10px 0 15px}.gd-drag-n-drop-icon .fa-cloud-download-alt{color:#d1d1d1;font-size:110px}.gd-drag-n-drop-buttons i{margin-right:5px}.gd-drag-n-drop-buttons .btn{width:134px;height:35px;margin:0 10px;font-size:12px;font-weight:400}.gd-drag-n-drop-wrap.hover{background:#ddd;border-color:#aaa}"] }] } ]; @@ -2141,7 +2203,7 @@ class SelectComponent { SelectComponent.decorators = [ { type: Component, args: [{ selector: 'gd-select', - template: "
\n \n {{showSelected?.name}}\n \n \n
\n
\n
{{option.name}}
\n
\n
\n
\n
\n", + template: "
\r\n \r\n {{showSelected?.name}}\r\n \r\n \r\n
\r\n
\r\n
{{option.name}}
\r\n
\r\n
\r\n
\r\n
\r\n", styles: [".select{min-width:50px;color:#959da5}.selected-value{font-size:14px;cursor:pointer;white-space:nowrap}.selected-value.inactive{cursor:not-allowed;color:#ccc}.nav-caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent;cursor:pointer}.nav-caret.inactive{cursor:not-allowed;color:#ccc}.dropdown-menu{position:absolute;top:49px;z-index:1000;float:left;min-width:96px;list-style:none;font-size:13px;text-align:left;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);background-clip:padding-box}.dropdown-menu .option{display:block;padding:7px 0 7px 7px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;cursor:pointer;font-size:10px}.dropdown-menu .option:hover{background-color:#25c2d4;color:#fff!important}.dropdown-menu-separator{height:1px;overflow:hidden;background-color:#f4f4f4;padding:0!important}"] }] } ]; @@ -2316,7 +2378,7 @@ class InitStateComponent { InitStateComponent.decorators = [ { type: Component, args: [{ selector: 'gd-init-state', - template: "
\n
\n \n \n \n \n
\n
\n \n {{text}}\n
\n
\n", + template: "
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{text}}\r\n
\r\n
\r\n", styles: [".wrapper{color:#959da5;background-color:#e7e7e7;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%}.icon{font-size:65px;margin-bottom:43px;display:flex;color:#959da5}.start{font-size:15px;text-align:center;color:#959da5}.gd-drag-n-drop-wrap.active{background-color:#fff;position:fixed;top:0;background:rgba(255,255,255,.8)}.gd-drag-n-drop-wrap.active .init-state-wrapper{position:absolute;opacity:.2;top:unset}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper{top:0;z-index:999}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper .icon{width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}.gd-drag-n-drop-wrap.active .text{color:#6e6e6e;font-size:14px}.init-state-dnd-wrapper,.init-state-wrapper{display:flex;flex-direction:column;width:250px;height:250px;align-items:center;justify-content:center}.init-state-wrapper{top:-60px;position:relative}"] }] } ]; @@ -2535,7 +2597,7 @@ class ErrorModalComponent { ErrorModalComponent.decorators = [ { type: Component, args: [{ selector: 'gd-error-modal', - template: "\n
\n \n
\n
Something went wrong
\n
{{message ? message : 'Server is not available'}}
\n
\n
\n
\n", + template: "\r\n
\r\n \r\n
\r\n
Something went wrong
\r\n
{{message ? message : 'Server is not available'}}
\r\n
\r\n
\r\n
\r\n", styles: [".gd-modal-error{display:inline-flex;flex-direction:column;flex:1}.gd-modal-error .gd-modal-error-message{font-size:12px;margin:0 24px 24px 0}.gd-modal-error .gd-modal-error-title{font-size:16px;font-weight:700;margin:14px 0 10px}#gd-error-section{max-width:468px;max-height:204px;display:flex}#gd-error-section fa-icon{flex:1;color:#e04e4e;font-size:40px;margin:13px 23px 90px;text-align:center}"] }] } ]; @@ -2601,7 +2663,7 @@ class PasswordRequiredComponent { PasswordRequiredComponent.decorators = [ { type: Component, args: [{ selector: 'gd-password-required', - template: "\n
\n
\n \n \n {{message}}\n \n Open\n \n
\n
\n
\n", + template: "\r\n
\r\n
\r\n \r\n \r\n {{message}}\r\n \r\n Open\r\n \r\n
\r\n
\r\n
\r\n", styles: ["#gd-password-section{width:468px;height:164px}.gd-password-wrap{display:flex;flex-direction:column;margin:24px}.gd-password-wrap label{font-size:14px;color:#acacac;padding-bottom:12px}.gd-password-wrap input{height:30px;border:1px solid #25c2d4}.gd-password-wrap input.error{border-color:#e04e4e}.gd-password-wrap gd-button{align-self:flex-end}.gd-password-wrap ::ng-deep .button{height:37px;width:72px;padding:0;justify-content:center}.gd-password-wrap ::ng-deep .button ::ng-deep .text{font-size:10px!important}.gd-password-error{color:#e04e4e;padding:10px 0 12px;height:12px;line-height:12px;font-size:12px}@media (max-width:1037px){#gd-password-section{min-width:375px}}"] }] } ]; @@ -2686,6 +2748,29 @@ ErrorInterceptorService.ctorParameters = () => [ ]; /** @nocollapse */ ErrorInterceptorService.ngInjectableDef = ɵɵdefineInjectable({ factory: function ErrorInterceptorService_Factory() { return new ErrorInterceptorService(ɵɵinject(ModalService), ɵɵinject(ExceptionMessageService)); }, token: ErrorInterceptorService, providedIn: "root" }); +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +class CustomHammerConfig extends HammerGestureConfig { + constructor() { + super(...arguments); + this.overrides = (/** @type {?} */ ({ + // override default settings + 'pinch': { + direction: DIRECTION_ALL, + enable: true, + dropRecognizeWith: 'rotate' + }, + 'rotate': { + direction: DIRECTION_ALL, + enable: true, + requireFailure: 'pinch' + } + })); + } +} + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -2815,7 +2900,7 @@ class SearchComponent { SearchComponent.decorators = [ { type: Component, args: [{ selector: 'gd-search', - template: "
\n \n
{{current}} of {{total}}
\n \n \n \n \n \n \n
\n", + template: "
\r\n \r\n
{{current}} of {{total}}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n", styles: [".gd-nav-search-btn{margin:3px 0 4px}.gd-nav-search-cancel{color:#fff;font-size:14px;width:37px}.gd-search-count{color:#959da5;font-size:12px;position:absolute;right:148px;top:14px}.gd-nav-search-container{background-color:#3e4e5a;width:410px;position:fixed;left:50%;top:60px;z-index:2;transform:translate(-50%,0);display:flex}.gd-search-input{float:left;height:30px;width:267px;font-size:14px;color:#6e6e6e;border:1px solid #25c2d4;margin:7px 0 7px 7px;box-sizing:border-box;padding:6px 0 5px 9px}input[type=text]::-ms-clear{display:none}@media (max-width:1037px){.gd-search-input{width:231px;height:30px;margin:7px 0 7px 5px}.gd-search-count{position:absolute;left:193px;top:15px}.gd-nav-search-container{width:100%}}"] }] } ]; @@ -3024,7 +3109,7 @@ class TabbedToolbarsComponent { TabbedToolbarsComponent.decorators = [ { type: Component, args: [{ selector: 'gd-tabbed-toolbars', - template: "
\n \n \n
\n", + template: "
\r\n \r\n \r\n
\r\n", styles: [".top-panel{background:#3e4e5a;display:flex;width:100%;height:90px}.top-panel ::ng-deep .logo{height:30px;font-size:16px}@media (max-width:1037px){.top-panel{height:60px}.top-panel ::ng-deep .logo{height:60px}}"] }] } ]; @@ -3107,7 +3192,7 @@ class TabComponent { TabComponent.decorators = [ { type: Component, args: [{ selector: 'gd-tab', - template: "
\n
{{tabTitle}}
\n \n
\n
\n \n
\n", + template: "
\r\n
{{tabTitle}}
\r\n \r\n
\r\n
\r\n \r\n
\r\n", styles: [".gd-editor-buttons{height:60px;position:absolute;background-color:#fff;width:100%;left:0;line-height:60px;display:none;z-index:9}.gd-editor-buttons ::ng-deep .toolbar-panel{height:60px}.gd-editor-buttons.active{display:flex}.gd-tab{text-align:center;font-size:11px;color:#e5e5e5;height:30px;line-height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center}.gd-tab .icon{display:none;font-size:14px;margin:auto 23px}.gd-tab .title{margin:auto 23px}.gd-tab.active{background-color:#fff;color:#3e4e5a;font-weight:700}@media (max-width:1037px){.gd-tab{height:60px;line-height:60px}.gd-tab .title{display:none}.gd-tab .icon{display:block}}"] }] } ]; @@ -3135,7 +3220,7 @@ class TabsComponent { TabsComponent.decorators = [ { type: Component, args: [{ selector: 'gd-tabs', - template: "
\n \n
\n", + template: "
\r\n \r\n
\r\n", styles: [".gd-tabs{display:flex}"] }] } ]; @@ -3439,7 +3524,7 @@ class ColorPickerComponent { ColorPickerComponent.decorators = [ { type: Component, args: [{ selector: 'gd-color-picker', - template: "
\n
\n
\n
\n
\n", + template: "
\r\n
\r\n
\r\n
\r\n
\r\n", styles: [".bcPicker-picker{border:1px;border-radius:100%}.bcPicker-palette{width:232px;padding:5px;border:1px solid #efefef;background-color:#fdfdfd;z-index:999}.bcPicker-palette>.bcPicker-color{width:14px;height:14px;margin:2px;display:inline-block;border:1px solid #efefef;background-color:#9da97b;cursor:pointer}"] }] } ]; @@ -3923,7 +4008,7 @@ class SuccessModalComponent { SuccessModalComponent.decorators = [ { type: Component, args: [{ selector: 'gd-success-modal', - template: "\n
\n
\n \n \n
\n
\n
\n
\n
\n", + template: "\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n", styles: [".check_mark{margin:47px auto}.sa-icon{width:80px;height:80px;border:4px solid gray;border-radius:50%;padding:0;position:relative;box-sizing:content-box}#gd-modal-success{display:flex;overflow:hidden;width:469px;height:183px}.sa-icon.sa-success{border-color:#4caf50;transform:scale(1.18)}.sa-icon.sa-success::after,.sa-icon.sa-success::before{content:'';position:absolute;width:60px;height:120px;background:#fff}.sa-icon.sa-success::before{border-radius:120px 0 0 120px;top:-7px;left:-33px;transform:rotate(-45deg);transform-origin:60px 60px}.sa-icon.sa-success::after{border-radius:0 120px 120px 0;top:-11px;left:30px;transform:rotate(-45deg);transform-origin:0 60px}.sa-icon.sa-success .sa-placeholder{width:80px;height:80px;border:4px solid rgba(76,175,80,.5);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.sa-icon.sa-success .sa-fix{width:5px;height:90px;background-color:#fff;position:absolute;left:28px;top:8px;z-index:1;transform:rotate(-45deg)}.sa-icon.sa-success.animate::after{-webkit-animation:4.25s ease-in rotatePlaceholder;animation:4.25s ease-in rotatePlaceholder}.animateSuccessTip{-webkit-animation:.75s animateSuccessTip;animation:.75s animateSuccessTip}.animateSuccessLong{-webkit-animation:.75s animateSuccessLong;animation:.75s animateSuccessLong}@-webkit-keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}.sa-icon.sa-success .sa-line{height:5px;background-color:#4caf50;display:block;border-radius:2px;position:absolute;z-index:2}.sa-icon.sa-success .sa-line.sa-tip{width:25px;left:14px;top:46px;transform:rotate(45deg)}.sa-icon.sa-success .sa-line.sa-long{width:47px;right:8px;top:38px;transform:rotate(-45deg)}@-webkit-keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@media (max-width:1037px){#gd-modal-success{left:50%;top:50%;position:relative;transform:translate(-50%,-50%)}}"] }] } ]; @@ -4110,7 +4195,7 @@ class LoadingMaskComponent { LoadingMaskComponent.decorators = [ { type: Component, args: [{ selector: 'gd-loading-mask', - template: "
\n
\n  Loading... Please wait.\n
\n
\n", + template: "
\r\n
\r\n  Loading... Please wait.\r\n
\r\n
\r\n", styles: [".loading-wrapper{background:rgba(0,0,0,.5);width:100%;height:100%;font-size:14px;color:#fff;position:fixed;top:0;left:0;z-index:99999}.loading-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"] }] } ]; @@ -4386,7 +4471,9 @@ const providers = [ConfigService, ZoomService, ExceptionMessageService, PasswordService, + RotationService, ErrorInterceptorService, + CustomHammerConfig, SearchService, WindowService, ViewportService, @@ -4487,5 +4574,5 @@ CommonComponentsModule.decorators = [ /** @nocollapse */ CommonComponentsModule.ctorParameters = () => []; -export { Api, BackFormattingService, BrowseFilesModalComponent, ButtonComponent, ColorPickerComponent, CommonComponentsModule, CommonModals, ConfigService, DisabledCursorDirective, DndDirective, DocumentComponent, DropDownComponent, DropDownItemComponent, DropDownItemsComponent, DropDownToggleComponent, EditHtmlService, EditorDirective, ErrorInterceptorService, ErrorModalComponent, ExceptionMessageService, FileCredentials, FileDescription, FileModel, FileService, FileUtil, Formatting, FormattingDirective, FormattingService, HighlightSearchPipe, HttpError, InitStateComponent, LoadingMaskComponent, LoadingMaskInterceptorService, LoadingMaskService, LogoComponent, ModalComponent, ModalService, NavigateService, OnCloseService, PageComponent, PageModel, PagePreloadService, PasswordRequiredComponent, PasswordService, RenderPrintDirective, RenderPrintService, RotatedPage, RotationDirective, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe, SaveFile, ScrollableDirective, SearchComponent, SearchService, SearchableDirective, SelectComponent, SelectionService, SidePanelComponent, SuccessModalComponent, TabActivatorService, TabComponent, TabbedToolbarsComponent, TooltipComponent, TopToolbarComponent, UploadFileZoneComponent, UploadFilesService, ViewportService, WindowService, ZoomDirective, ZoomService, TabsComponent as ɵa }; +export { Api, BackFormattingService, BrowseFilesModalComponent, ButtonComponent, ColorPickerComponent, CommonComponentsModule, CommonModals, ConfigService, CustomHammerConfig, DisabledCursorDirective, DndDirective, DocumentComponent, DropDownComponent, DropDownItemComponent, DropDownItemsComponent, DropDownToggleComponent, EditHtmlService, EditorDirective, ErrorInterceptorService, ErrorModalComponent, ExceptionMessageService, FileCredentials, FileDescription, FileModel, FileService, FileUtil, Formatting, FormattingDirective, FormattingService, HighlightSearchPipe, HttpError, InitStateComponent, LoadingMaskComponent, LoadingMaskInterceptorService, LoadingMaskService, LogoComponent, ModalComponent, ModalService, NavigateService, OnCloseService, PageComponent, PageModel, PagePreloadService, PasswordRequiredComponent, PasswordService, RenderPrintDirective, RenderPrintService, RotatedPage, RotationDirective, RotationService, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe, SaveFile, ScrollableDirective, SearchComponent, SearchService, SearchableDirective, SelectComponent, SelectionService, SidePanelComponent, SuccessModalComponent, TabActivatorService, TabComponent, TabbedToolbarsComponent, TooltipComponent, TopToolbarComponent, UploadFileZoneComponent, UploadFilesService, ViewportService, WindowService, ZoomDirective, ZoomService, TabsComponent as ɵa }; //# sourceMappingURL=groupdocs.examples.angular-common-components.js.map diff --git a/dist/libs/common-components/fesm2015/groupdocs.examples.angular-common-components.js.map b/dist/libs/common-components/fesm2015/groupdocs.examples.angular-common-components.js.map index e15b6615b..f87741ed3 100644 --- a/dist/libs/common-components/fesm2015/groupdocs.examples.angular-common-components.js.map +++ b/dist/libs/common-components/fesm2015/groupdocs.examples.angular-common-components.js.map @@ -1 +1 @@ -{"version":3,"file":"groupdocs.examples.angular-common-components.js","sources":["ng://@groupdocs.examples.angular/common-components/lib/top-toolbar/top-toolbar.component.ts","ng://@groupdocs.examples.angular/common-components/lib/side-panel/side-panel.component.ts","ng://@groupdocs.examples.angular/common-components/lib/button/button.component.ts","ng://@groupdocs.examples.angular/common-components/lib/logo/logo.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tooltip/tooltip.component.ts","ng://@groupdocs.examples.angular/common-components/lib/config.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal/modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/file.service.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-files.service.ts","ng://@groupdocs.examples.angular/common-components/lib/browse-files-modal/browse-files-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.service.ts","ng://@groupdocs.examples.angular/common-components/lib/window.service.ts","ng://@groupdocs.examples.angular/common-components/lib/document/document.component.ts","ng://@groupdocs.examples.angular/common-components/lib/page/page.component.ts","ng://@groupdocs.examples.angular/common-components/lib/pipes.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-file-zone/upload-file-zone.component.ts","ng://@groupdocs.examples.angular/common-components/lib/dnd.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/page-preload.service.ts","ng://@groupdocs.examples.angular/common-components/lib/navigate.service.ts","ng://@groupdocs.examples.angular/common-components/lib/viewport.service.ts","ng://@groupdocs.examples.angular/common-components/lib/scrollable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/on-close.service.ts","ng://@groupdocs.examples.angular/common-components/lib/select/select.component.ts","ng://@groupdocs.examples.angular/common-components/lib/disabled-cursor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/rotation.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/init-state/init-state.component.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.service.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/exception-message.service.ts","ng://@groupdocs.examples.angular/common-components/lib/error-modal/error-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/password.service.ts","ng://@groupdocs.examples.angular/common-components/lib/password-required/password-required.component.ts","ng://@groupdocs.examples.angular/common-components/lib/error-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/search.service.ts","ng://@groupdocs.examples.angular/common-components/lib/search/search.component.ts","ng://@groupdocs.examples.angular/common-components/lib/searchable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/tabbed-toolbars/tabbed-toolbars.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tab-activator.service.ts","ng://@groupdocs.examples.angular/common-components/lib/tab/tab.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tabs/tabs.component.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/color-picker/color-picker.component.ts","ng://@groupdocs.examples.angular/common-components/lib/back-formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/selection.service.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/success-modal/success-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/edit-html.service.ts","ng://@groupdocs.examples.angular/common-components/lib/editor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask.service.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask/loading-mask.component.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/drop-down/drop-down.component.ts","ng://@groupdocs.examples.angular/common-components/lib/common-components.module.ts"],"sourcesContent":["import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'gd-top-toolbar',\n templateUrl: './top-toolbar.component.html',\n styleUrls: ['./top-toolbar.component.less']\n})\nexport class TopToolbarComponent {\n\n constructor() {\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'gd-side-panel',\n templateUrl: './side-panel.component.html',\n styleUrls: ['./side-panel.component.less']\n})\n\nexport class SidePanelComponent {\n @Input() title: string;\n @Input() icon: string;\n @Output() hideSidePanel = new EventEmitter();\n\n constructor() {\n }\n\n openSidePanel() {\n this.hideSidePanel.emit(true);\n }\n}\n","import { Component, ContentChild, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'gd-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.less']\n})\nexport class ButtonComponent {\n @Input()\n iconOnly = true;\n\n @Input()\n intent = 'default';\n\n @Input()\n disabled = false;\n\n @Input()\n icon : string;\n\n @Input()\n iconClass : string;\n\n @Input()\n tooltip : string;\n\n @Input()\n className: string;\n\n @Input()\n toggle = false;\n\n showToolTip = false;\n\n iconButtonClass(){\n return this.iconOnly ? 'icon-button' : '';\n }\n\n onHovering() {\n if (!this.disabled) {\n this.className += ' active';\n }\n this.showToolTip = true;\n }\n\n onUnhovering() {\n if (!this.disabled) {\n this.className = this.className.replace(' active', '');\n }\n this.showToolTip = false;\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'gd-logo',\n templateUrl: './logo.component.html',\n styleUrls: ['./logo.component.less']\n})\nexport class LogoComponent implements OnInit {\n\n @Input() logo;\n @Input() icon;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'gd-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.less']\n})\nexport class TooltipComponent implements OnInit {\n\n @Input() text:string;\n visibility = 'hidden';\n\n constructor() {\n }\n\n @Input()\n set show(value: boolean) {\n this.visibility = value ? 'shown' : 'hidden';\n }\n\n ngOnInit() {\n }\n\n}\n","import {HttpHeaders} from \"@angular/common/http\";\nimport {Injectable} from \"@angular/core\";\n\nexport class Api {\n public static VIEWER_APP = '/viewer';\n public static EDITOR_APP = '/editor';\n public static COMPARISON_APP = '/comparison';\n public static CONVERSION_APP = '/conversion';\n public static DEFAULT_API_ENDPOINT = window.location.href;\n public static LOAD_FILE_TREE = '/loadFileTree';\n public static LOAD_CONFIG = '/loadConfig';\n public static LOAD_DOCUMENT_DESCRIPTION = '/loadDocumentDescription';\n public static LOAD_DOCUMENT_PAGE = '/loadDocumentPage';\n public static ROTATE_DOCUMENT_PAGE = '/rotateDocumentPages';\n public static UPLOAD_DOCUMENTS = '/uploadDocument';\n public static DOWNLOAD_DOCUMENTS = '/downloadDocument';\n public static LOAD_PRINT = '/loadPrint';\n public static LOAD_PRINT_PDF = '/printPdf';\n public static LOAD_THUMBNAILS = '/loadThumbnails';\n public static LOAD_FORMATS = '/loadFormats';\n public static SAVE_FILE = '/saveFile';\n public static COMPARE_FILES = '/compare';\n public static CONVERT_FILE = '/convert';\n\n public static httpOptionsJson = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n public static httpOptionsJsonResponseTypeBlob = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n responseType: 'blob' as 'blob'\n };\n}\n\n@Injectable()\nexport class ConfigService {\n\n private _apiEndpoint: string;\n\n constructor() {\n this.apiEndpoint = Api.DEFAULT_API_ENDPOINT;\n }\n\n set apiEndpoint(url: string) {\n this._apiEndpoint = url && url.trim().endsWith('/') ? url.substring(0, url.length - 1) : url;\n }\n\n getConfigEndpoint(app) {\n return (this.apiEndpoint.endsWith(app) ? this.apiEndpoint : this.apiEndpoint + app) + Api.LOAD_CONFIG;\n }\n\n getViewerApiEndpoint() {\n return this._apiEndpoint.endsWith(Api.VIEWER_APP) ? this._apiEndpoint : this._apiEndpoint + Api.VIEWER_APP;\n }\n\n getEditorApiEndpoint() {\n return this._apiEndpoint.trim().endsWith(Api.EDITOR_APP) ? this._apiEndpoint : this._apiEndpoint + Api.EDITOR_APP;\n }\n\n getComparisonApiEndpoint() {\n return this._apiEndpoint.trim().endsWith(Api.COMPARISON_APP) ? this._apiEndpoint : this._apiEndpoint + Api.COMPARISON_APP;\n }\n\n getConversionApiEndpoint() {\n return this._apiEndpoint.trim().endsWith(Api.CONVERSION_APP) ? this._apiEndpoint : this._apiEndpoint + Api.CONVERSION_APP;\n }\n\n get apiEndpoint() {\n return this._apiEndpoint;\n }\n}\n","export class CommonModals {\n static PasswordRequired = \"gd-password-required\";\n static ErrorMessage = \"gd-error-message\";\n static BrowseFiles = \"gd-browse-files\";\n static CreateDocument = \"gd-create-document\";\n static OperationSuccess = \"gd-success-modal\";\n}\n\nexport class ModalService {\n private modals: any[] = [];\n\n add(modal: any) {\n this.modals.push(modal);\n }\n\n remove(id: string) {\n this.modals = this.modals.filter(x => x.id !== id);\n }\n\n open(id: string) {\n const modal: any = this.modals.filter(x => x.id === id)[0];\n if (modal) {\n modal.open();\n }\n }\n\n close(id: string) {\n const modal: any = this.modals.filter(x => x.id === id)[0];\n if (modal) {\n modal.close();\n }\n }\n}\n","import {Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {ModalService} from \"../modal.service\";\n\n@Component({\n selector: 'gd-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.less']\n})\nexport class ModalComponent implements OnInit, OnDestroy {\n @Input() id: string;\n @Input() title: string;\n @Output() visible = new EventEmitter();\n visibility = false;\n private element: any;\n\n constructor(private modalService: ModalService, el: ElementRef) {\n this.element = el.nativeElement;\n }\n\n ngOnInit(): void {\n if (!this.id) {\n console.error('modal must have an id');\n return;\n }\n\n document.body.appendChild(this.element);\n\n this.modalService.add(this);\n }\n\n ngOnDestroy(): void {\n this.modalService.remove(this.id);\n this.element.remove();\n }\n\n open(): void {\n this.visibility = true;\n this.visible.emit(true);\n }\n\n close(): void {\n event.preventDefault();\n event.stopPropagation();\n this.visibility = false;\n this.visible.emit(false);\n }\n\n onClose($event: MouseEvent) {\n $event.stopPropagation();\n if ($event && $event.target && ($event.target).id === 'modalDialog') {\n this.close();\n }\n }\n}\n","export class PageModel {\n data: string;\n angle: number;\n width: number;\n height: number;\n number: number;\n editable: boolean;\n}\n\nexport class RotatedPage {\n pageNumber: number;\n angle: number;\n}\n\nexport class FileCredentials {\n guid: string;\n password: string;\n\n constructor(guid: string, password: string) {\n this.guid = guid;\n this.password = password;\n }\n}\n\nexport class SaveFile extends FileCredentials {\n content: string;\n\n constructor(guid: string, password: string, content: string) {\n super(guid, password);\n this.content = content;\n }\n}\n\nexport class FileDescription {\n guid: string;\n pages: PageModel[];\n printAllowed = true;\n}\n\nexport class FileModel {\n guid: string;\n name: string;\n directory: boolean;\n size: number;\n isDirectory: boolean;\n}\n\nexport class HttpError {\n static BadRequest = 400;\n static Unauthorized = 401;\n static Forbidden = 403;\n static NotFound = 404;\n static TimeOut = 408;\n static Conflict = 409;\n static InternalServerError = 500;\n}\n\nexport class FileUtil {\n public static map = {\n 'folder': {'format': '', 'icon': 'folder'},\n 'pdf': {'format': 'Portable Document Format', 'icon': 'file-pdf', 'unit': 'pt'},\n 'doc': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'docx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'docm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'dot': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'dotx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'dotm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'xls': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xlsx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xlsm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xlsb': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xls2003': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xltx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xltm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'ppt': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'pptx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'pps': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'ppsx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'vsd': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vss': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vsx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vst': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vtx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vsdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vdw': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vstx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vssx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'mpp': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\n 'mpt': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\n 'msg': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\n 'eml': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\n 'emlx': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\n 'one': {'format': 'Microsoft OneNote', 'icon': 'file-word', 'unit': 'pt'},\n 'odt': {'format': 'Open Document Text', 'icon': 'file-word', 'unit': 'pt'},\n 'ott': {'format': 'Open Document Text Template', 'icon': 'file-word', 'unit': 'pt'},\n 'ods': {'format': 'Open Document Spreadsheet', 'icon': 'file-excel', 'unit': 'px'},\n 'odp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'otp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'ots': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'potx': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'potm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'pptm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'ppsm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'rtf': {'format': 'Rich Text Format', 'icon': 'file-alt', 'unit': 'pt'},\n 'txt': {'format': 'Plain Text File', 'icon': 'file-alt', 'unit': 'pt'},\n 'csv': {'format': 'Comma-Separated Values', 'icon': 'file-excel', 'unit': 'px'},\n 'html': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'mht': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'mhtml': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'xml': {'format': 'Extensible Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'xps': {'format': 'XML Paper Specification', 'icon': 'file-word', 'unit': 'pt'},\n 'dxf': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\n 'dwg': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\n 'bmp': {'format': 'Bitmap Picture', 'icon': 'file-image', 'unit': 'px'},\n 'gif': {'format': 'Graphics Interchange Format', 'icon': 'file-image', 'unit': 'px'},\n 'jpg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'jpe': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'jpeg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'jfif': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'png': {'format': 'Portable Network Graphics', 'icon': 'file-image', 'unit': 'px'},\n 'tiff': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'tif': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'psd': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'svg': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'jp2': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'epub': {'format': 'Electronic Publication', 'icon': 'file-pdf', 'unit': 'pt'},\n 'ico': {'format': 'Windows Icon', 'icon': 'file-image', 'unit': 'px'},\n 'webp': {'format': 'Compressed Image', 'icon': 'file-image', 'unit': 'px'},\n 'mobi': {'format': 'Mobipocket eBook', 'icon': 'file-pdf', 'unit': 'pt'},\n 'tex': {'format': 'LaTeX Source Document', 'icon': 'file-pdf', 'unit': 'pt'},\n 'djvu': {'format': 'Multi-Layer Raster Image', 'icon': 'file-alt', 'unit': 'pt'},\n 'unknown': {'format': 'This format is not supported', 'icon': 'file'},\n };\n\n public static find(filename: string, isDirectory: boolean) {\n if (filename && !isDirectory) {\n const strings = filename.split('.');\n const name = strings.pop().toLowerCase();\n if (typeof FileUtil.map[name] === \"undefined\") {\n return strings.length > 0 ? FileUtil.map['unknown'] : FileUtil.map['folder'];\n } else {\n return FileUtil.map[name];\n }\n } else {\n return FileUtil.map['folder'];\n }\n }\n}\n\nexport class FileService {\n\n constructor() {\n }\n}\n","import {Observable, Observer} from \"rxjs\";\n\nexport class UploadFilesService {\n private _uploadsChange: Observable;\n private _observer: Observer;\n\n constructor() {\n this._uploadsChange = new Observable(observer =>\n this._observer = observer);\n }\n\n get uploadsChange(): Observable {\n return this._uploadsChange;\n }\n\n changeFilesList(filesList: FileList) {\n this._observer.next(filesList);\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {FileModel, FileUtil} from \"../file.service\";\nimport {UploadFilesService} from \"../upload-files.service\";\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\nconst upload_disc = 'Disc';\n\nconst upload_url = 'URL';\n\nconst uploads_choices = [{name: upload_disc, icon: 'hdd'}, {name: upload_url, icon: 'link'}];\n\n@Component({\n selector: 'gd-browse-files-modal',\n templateUrl: './browse-files-modal.component.html',\n styleUrls: ['./browse-files-modal.component.less']\n})\nexport class BrowseFilesModalComponent implements OnInit {\n uploads = uploads_choices;\n\n @Input() files;\n @Input() uploadConfig;\n @Output() selectedFileGuid = new EventEmitter();\n @Output() selectedDirectory = new EventEmitter();\n @Output() urlForUpload = new EventEmitter();\n @Output() closing = new EventEmitter();\n private selectedFile: FileModel;\n showUploadUrl = false;\n showUploadFile = false;\n\n constructor(private _uploadService: UploadFilesService) {\n }\n\n ngOnInit() {\n }\n\n getSize(size: number) {\n const mb = size / 1024 / 1024;\n if (mb > 1) {\n return (Math.round(mb * 100) / 100) + ' MB';\n } else {\n const kb = size / 1024;\n if (kb > 1) {\n return (Math.round(kb * 100) / 100) + ' KB';\n }\n }\n return size + ' Bytes';\n }\n\n getFormatName(file: FileModel) {\n return FileUtil.find(file.name, file.directory).format;\n }\n\n getFormatIcon(file: FileModel) {\n return FileUtil.find(file.name, file.directory).icon;\n }\n\n choose(file: FileModel) {\n this.selectedFile = file;\n if (file.directory || file.isDirectory) {\n this.selectedDirectory.emit(file.name);\n } else {\n this.selectedFileGuid.emit(file.guid);\n }\n }\n\n goUp() {\n if (this.selectedFile) {\n let guid = this.selectedFile.guid;\n if (guid.length > 0 && guid.indexOf('/') === -1) {\n guid = '';\n } else {\n guid = guid.replace(/\\/[^\\/]+\\/?$/, '');\n }\n this.selectedDirectory.emit(guid);\n }\n }\n\n selectUpload($event: string) {\n if (upload_url === $event) {\n this.showUploadUrl = true;\n } else {\n this.showUploadUrl = false;\n $(\"#gd-upload-input\").trigger('click');\n }\n }\n\n refresh($event) {\n\n if ($event) {\n this.files = null;\n this.selectedDirectory.emit('');\n this.showUploadUrl = false;\n this.selectedFile = null;\n } else {\n this.closing.emit(true);\n }\n }\n\n showSpinner() {\n return !this.files;\n }\n\n uploadUrl(url: string) {\n if (url) {\n this.urlForUpload.emit(url);\n this.cleanUpload();\n }\n }\n\n handleFileInput(files: FileList) {\n this._uploadService.changeFilesList(files);\n }\n\n cleanUpload() {\n this.showUploadFile = false;\n this.showUploadUrl = false;\n }\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class ZoomService {\n private _observer: Subject = new Subject();\n private readonly _zoomChange: Observable = this._observer.asObservable();\n private _zoom: number;\n\n constructor() {\n }\n\n get zoom(): number {\n return this._zoom;\n }\n\n get zoomChange(): Observable {\n return this._zoomChange;\n }\n\n changeZoom(zoom: number) {\n this._zoom = zoom;\n this._observer.next(zoom);\n }\n\n private createZoomOption(val: any, name: string, sep: boolean = false) {\n return {value: val, name: name, separator: sep}\n }\n\n zoomOptions(width, height) {\n return [this.createZoomOption(25, '25%'),\n this.createZoomOption(50, '50%'),\n this.createZoomOption(100,'100%'),\n this.createZoomOption(150, '150%'),\n this.createZoomOption(200, '200%'),\n this.createZoomOption(300, '300%'),\n this.createZoomOption(0, '', true),\n this.createZoomOption(width, 'Fit Width'),\n this.createZoomOption(height, 'Fit Height')];\n }\n}\n","import {fromEvent, Observable, Subject} from \"rxjs\";\nimport {debounceTime, distinctUntilChanged, startWith, tap} from \"rxjs/operators\";\n\nconst MOBILE_MAX_WIDTH = 425;\nconst TABLET_MAX_WIDTH = 1024;\n\nexport class WindowService {\n\n private resizeSubject: Subject = new Subject();\n private _resize$;\n private width: number;\n private height: number;\n\n constructor() {\n this.width = window.innerWidth;\n this.height = window.innerHeight;\n\n this._resize$ = fromEvent(window, 'resize')\n .pipe(\n debounceTime(200),\n distinctUntilChanged(),\n startWith({target: {innerWidth: window.innerWidth, innerHeight: window.innerHeight}}),\n tap(event => {\n this.resizeSubject.next(event.target);\n this.width = (event.target as Window).innerWidth;\n this.height = (event.target as Window).innerHeight;\n }),\n );\n this._resize$.subscribe();\n }\n\n get onResize(): Observable {\n return this.resizeSubject.asObservable();\n }\n\n isMobile() {\n return this.width <= MOBILE_MAX_WIDTH;\n }\n\n isTablet() {\n return this.width <= TABLET_MAX_WIDTH;\n }\n\n isDesktop() {\n return !this.isMobile() && !this.isTablet();\n }\n\n isEdge() {\n return window.navigator.userAgent.toLowerCase().indexOf('edge') > -1;\n }\n\n isFirefox() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n }\n}\n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n Input,\n OnInit,\n AfterViewInit,\n OnChanges} from '@angular/core';\nimport {FileDescription, FileUtil} from \"../file.service\";\nimport {ZoomService} from \"../zoom.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\nimport * as Hammer from 'hammerjs';\nimport { WindowService } from '../window.service';\n\n@Component({\n selector: 'gd-document',\n templateUrl: './document.component.html',\n styleUrls: ['./document.component.less']\n})\nexport class DocumentComponent implements OnInit, AfterViewChecked, AfterViewInit, OnChanges {\n\n @Input() mode: boolean;\n @Input() preloadPageCount: number;\n @Input() file: FileDescription;\n wait = false;\n zoom: number;\n\n docWidth = null;\n docHeight = null;\n viewportWidth = null;\n viewportHeight = null;\n scale = null;\n lastScale = null;\n container = null;\n doc = null;\n x = 0;\n lastX = 0;\n y = 0;\n lastY = 0;\n pinchCenter = null;\n pinchCenterOffset = null;\n curWidth = 0;\n curHeight = 0;\n isDesktop: boolean;\n\n constructor(private _elementRef: ElementRef,\n private _zoomService: ZoomService,\n private _windowService: WindowService) {\n\n _zoomService.zoomChange.subscribe((val: number) => {\n this.zoom = val;\n });\n\n this.isDesktop = _windowService.isDesktop();\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n const panzoom = this._elementRef.nativeElement.children.item(0).children.item(0);\n (panzoom as any).style.transform = '';\n // TODO: this intersects with zooming by zoom directive, but still needed\n // for flush previous settings before opening another file\n //this._zoomService.changeZoom(100);\n //this.scale = 1;\n }\n \n ngAfterViewInit() {\n // For current iteration we take .panzoom as a document\n this.doc = this._elementRef.nativeElement.children.item(0).children.item(0);\n // For current iteration we take .gd-document as a container\n this.container = this._elementRef.nativeElement;\n\n this.docWidth = this.doc.clientWidth;\n this.docHeight = this.doc.clientHeight;\n this.viewportWidth = this.doc.offsetWidth;\n\n // For cases where we already have zoom defined we should include it\n this.scale = (this.viewportWidth/this.docWidth) * this._zoomService.zoom/100;\n \n this.lastScale = this.scale;\n this.viewportHeight = this.container.offsetHeight;\n this.curWidth = this.docWidth*this.scale;\n this.curHeight = this.docHeight*this.scale;\n\n const hammer = new Hammer(this.container);\n }\n\n // TODO: this temporary crutch for Excel files should be documented\n ifExcel() {\n return FileUtil.find(this.file.guid, false).format === \"Microsoft Excel\";\n }\n\n getDimensionWithUnit(value: number) {\n return value + FileUtil.find(this.file.guid, false).unit;\n }\n\n ngAfterViewChecked(): void {\n const elementNodeListOf = this._elementRef.nativeElement.querySelectorAll('.gd-wrapper');\n const element = elementNodeListOf.item(0);\n if (element) {\n $(element).trigger('focus');\n }\n }\n\n absolutePosition(el) {\n let x = 0, y = 0;\n\n while (el !== null) {\n x += el.offsetLeft;\n y += el.offsetTop;\n el = el.offsetParent;\n }\n\n return { x: x, y: y };\n };\n\n restrictRawPos(pos, viewportDim, docDim) {\n if (pos < viewportDim/this.scale - docDim) { // too far left/up?\n pos = viewportDim/this.scale - docDim;\n } else if (pos > 0) { // too far right/down?\n pos = 0;\n }\n return pos;\n };\n\n updateLastPos() {\n this.lastX = this.x;\n this.lastY = this.y;\n };\n\n translate(deltaX, deltaY) {\n // We restrict to the min of the viewport width/height or current width/height as the\n // current width/height may be smaller than the viewport width/height\n const newX = this.restrictRawPos(this.lastX + deltaX/this.scale,\n Math.min(this.viewportWidth, this.curWidth), this.docWidth);\n this.x = newX;\n // TODO: value here and in the similar line below changes to positive to take any effect\n this.container.scrollLeft = -Math.ceil(newX*this.scale);\n\n const newY = this.restrictRawPos(this.lastY + deltaY/this.scale,\n Math.min(this.viewportHeight, this.curHeight), this.docHeight);\n this.y = newY;\n this.container.scrollTop = -Math.ceil(newY*this.scale);\n \n this.doc.style.transform = 'scale(' + this.scale + ')';\n };\n\n startZoom(scaleBy) {\n this.scale = this.lastScale*scaleBy;\n\n this.curWidth = this.docWidth*this.scale;\n this.curHeight = this.docHeight*this.scale;\n\n // Adjust margins to make sure that we aren't out of bounds\n this.translate(0, 0);\n };\n\n rawCenter($event) {\n const pos = this.absolutePosition(this.container);\n\n // We need to account for the scroll position\n const scrollLeft = window.pageXOffset ? window.pageXOffset : document.body.scrollLeft;\n const scrollTop = window.pageYOffset ? window.pageYOffset : document.body.scrollTop;\n\n const zoomX = -this.x + ($event.center.x - pos.x + scrollLeft)/this.scale;\n const zoomY = -this.y + ($event.center.y - pos.y + scrollTop)/this.scale;\n\n return { x: zoomX, y: zoomY };\n };\n\n updateLastScale() {\n this.lastScale = this.scale;\n };\n\n zoomAround(scaleBy, rawZoomX, rawZoomY, doNotUpdateLast) {\n // Zoom\n this.startZoom(scaleBy);\n\n // New raw center of viewport\n const rawCenterX = -this.x + Math.min(this.viewportWidth, this.curWidth)/2/this.scale;\n const rawCenterY = -this.y + Math.min(this.viewportHeight, this.curHeight)/2/this.scale;\n\n // Delta\n const deltaX = (rawCenterX - rawZoomX)*this.scale;\n const deltaY = (rawCenterY - rawZoomY)*this.scale;\n\n // Translate back to zoom center\n this.translate(deltaX, deltaY);\n\n if (!doNotUpdateLast) {\n this.updateLastScale();\n this.updateLastPos();\n }\n };\n\n onPinch($event){\n if (this.pinchCenter === null) {\n this.pinchCenter = this.rawCenter($event);\n const offsetX = this.pinchCenter.x*this.scale - (-this.x*this.scale + Math.min(this.viewportWidth, this.curWidth)/2);\n const offsetY = this.pinchCenter.y*this.scale - (-this.y*this.scale + Math.min(this.viewportHeight, this.curHeight)/2);\n this.pinchCenterOffset = { x: offsetX, y: offsetY };\n }\n\n const newScale = this.scale*$event.scale;\n\n const zoomX = this.pinchCenter.x*newScale - this.pinchCenterOffset.x;\n const zoomY = this.pinchCenter.y*newScale - this.pinchCenterOffset.y;\n const zoomCenter = { x: zoomX/newScale, y: zoomY/newScale };\n \n this.zoomAround($event.scale, zoomCenter.x, zoomCenter.y, true);\n }\n\n onPinchEnd($event){\n this.updateLastScale();\n this.updateLastPos();\n this.pinchCenter = null;\n }\n\n onPan($event){\n // TODO: looks like native pan works better\n // if (!this.isDesktop) {\n // this.translate($event.deltaX, $event.deltaY);\n // }\n }\n\n onPanEnd($event){\n // if (!this.isDesktop) {\n // this.updateLastPos();\n // }\n }\n\n onDoubleTap($event){\n if (!this.isDesktop) {\n if ($event.tapCount === 2) {\n const c = this.rawCenter($event);\n this.zoomAround(2, c.x, c.y, false);\n }\n }\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\n\n@Component({\n selector: 'gd-page',\n templateUrl: './page.component.html',\n styleUrls: ['./page.component.less']\n})\nexport class PageComponent implements OnInit, OnChanges {\n\n @Input() angle: number;\n @Input() width: number;\n @Input() height: number;\n @Input() number: number;\n @Input() data: string;\n @Input() isHtml: boolean;\n @Input() editable: boolean;\n imgData: string;\n\n constructor() {\n }\n\n ngOnInit() {\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n if(isIE && this.number === 0){\n this.editable = false;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // TODO: this is temporary needed to remove unneeded spaces and BOM symbol \n // which leads to undesired spaces on the top of the docs pages\n this.data = this.data !== null ? this.data.replace(/>\\s+<').replace(/\\uFEFF/g,\"\") : null;\n const dataImagePngBase64 = 'data:image/png;base64,';\n this.imgData = dataImagePngBase64;\n if (!this.isHtml) {\n this.imgData += this.data;\n }\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\n\n@Pipe({name: 'safeHtml'})\nexport class SanitizeHtmlPipe implements PipeTransform{\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n\n@Pipe({name: 'safeResourceHtml'})\nexport class SanitizeResourceHtmlPipe implements PipeTransform{\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustResourceUrl(html);\n }\n}\n\n@Pipe({name: 'safeStyle'})\nexport class SanitizeStylePipe implements PipeTransform{\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustStyle(html);\n }\n}\n\n@Pipe({name: 'highlight'})\nexport class HighlightSearchPipe implements PipeTransform {\n\n transform(value: string, args: string): any {\n if (!args) {\n return value;\n }\n const re = new RegExp(args, 'gi'); //'gi' for case insensitive and can use 'g' if you want the search to be case sensitive.\n return value.replace(re, \"$&\");\n }\n}\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {UploadFilesService} from \"../upload-files.service\";\n\n@Component({\n selector: 'gd-upload-file-zone',\n templateUrl: './upload-file-zone.component.html',\n styleUrls: ['./upload-file-zone.component.less']\n})\nexport class UploadFileZoneComponent implements OnInit {\n\n @Output() closeUpload = new EventEmitter();\n\n constructor(private _uploadService: UploadFilesService) { }\n\n ngOnInit() {\n }\n\n handleFileInput(files: FileList) {\n this._uploadService.changeFilesList(files);\n this.onCloseUpload();\n }\n\n onCloseUpload() {\n this.closeUpload.emit(true);\n }\n\n close($event) {\n if ($event.target.id === 'gd-dropZone') {\n this.onCloseUpload();\n }\n }\n}\n","import {Directive, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\nimport {UploadFilesService} from \"./upload-files.service\";\n\n@Directive({\n selector: '[gdDnd]'\n})\nexport class DndDirective {\n\n @Output() closing = new EventEmitter();\n @Output() opening = new EventEmitter();\n @Output() dropped = new EventEmitter();\n\n @HostBinding('class.active') active = false;\n\n constructor(private _uploadFilesService: UploadFilesService) {\n }\n\n @HostListener('dragover', ['$event'])\n public onDragOver(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.active = true;\n this.opening.emit(true);\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.active = false;\n this.closeArea();\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n const files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.active = false;\n this.dropped.emit(true);\n this._uploadFilesService.changeFilesList(files);\n this.closeArea();\n }\n }\n\n @HostListener('click', ['$event'])\n public onClick(event) {\n this.closeArea();\n }\n\n private closeArea() {\n this.closing.emit(true);\n this.opening.emit(false);\n }\n}\n","import {Observable, Observer} from \"rxjs\";\n\nexport class PagePreloadService {\n private readonly _checkPreload: Observable;\n private _observer: Observer;\n\n constructor() {\n this._checkPreload = new Observable(observer =>\n this._observer = observer);\n }\n\n get checkPreload(): Observable {\n return this._checkPreload;\n }\n\n changeLastPageInView(page: number) {\n if(this._observer) {\n this._observer.next(page);\n }\n }\n}\n","import {Observable, Observer} from \"rxjs\";\nimport {PagePreloadService} from \"./page-preload.service\";\nimport {Injectable} from \"@angular/core\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigateService {\n private _currentPage = 0;\n private _countPages = 0;\n private readonly _navigate: Observable;\n private _observer: Observer;\n\n constructor(private _pagePreloadService: PagePreloadService) {\n this._navigate = new Observable(observer =>\n this._observer = observer);\n }\n\n get navigate(): Observable {\n return this._navigate;\n }\n\n get countPages(): number {\n return this._countPages;\n }\n\n set countPages(value: number) {\n this._countPages = value;\n }\n\n get currentPage(): number {\n return this._currentPage;\n }\n\n set currentPage(value: number) {\n this._currentPage = value;\n }\n\n nextPage() {\n if (this._currentPage < this._countPages) {\n this._currentPage++;\n this.navigateTo(this._currentPage);\n }\n }\n\n prevPage() {\n if (this._currentPage > 1) {\n this._currentPage--;\n this.navigateTo(this._currentPage);\n }\n }\n\n toLastPage() {\n this._currentPage = this._countPages;\n this.navigateTo(this._currentPage);\n }\n\n toFirstPage() {\n this._currentPage = 1;\n this.navigateTo(this._currentPage);\n }\n\n navigateTo(page: number) {\n this.currentPage = page;\n this._pagePreloadService.changeLastPageInView(page);\n this._observer.next(page);\n }\n}\n","import {Injectable} from '@angular/core';\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewportService {\n\n constructor() {\n }\n\n checkInViewport(el, zoom: number = 100, leftOffset: number = 0, deltaX: number = 0.5) {\n if (!el) {\n return false;\n }\n const x = deltaX;\n const y = 0.5;\n\n const win = $(window);\n\n const viewport = {\n top: win.scrollTop(),\n left: win.scrollLeft() + leftOffset,\n right: win.scrollLeft() + win.width() - 10,\n bottom: win.scrollTop() + win.height()\n };\n\n\n if (isNaN(zoom)) {\n zoom = 100;\n }\n\n const zoomN = zoom / 100;\n const height = $(el).outerHeight() * (zoomN);\n const width = $(el).outerWidth() * (zoomN);\n\n if (!width || !height) {\n return false;\n }\n\n const bounds = $(el).offset();\n const right = (bounds.left * (zoomN)) + width;\n const bottom = (bounds.top * (zoomN)) + height;\n\n const visible = (!(viewport.right < (bounds.left * (zoomN)) || viewport.left > right || viewport.bottom < (bounds.top * (zoomN)) || viewport.top > bottom));\n\n if (!visible) {\n return false;\n }\n\n const deltas = {\n top: parseFloat(Math.min(1, (bottom - viewport.top) / height).toFixed(2)),\n bottom: parseFloat(Math.min(1, (viewport.bottom - (bounds.top * (zoomN))) / height).toFixed(2)),\n left: parseFloat(Math.min(1, (right - viewport.left) / width).toFixed(2)),\n right: parseFloat(Math.min(1, (viewport.right - (bounds.left * (zoomN))) / width).toFixed(2))\n };\n\n return (deltas.left * deltas.right) >= x && (deltas.top * deltas.bottom) >= y;\n }\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges\n} from '@angular/core';\nimport {NavigateService} from \"./navigate.service\";\nimport {PagePreloadService} from \"./page-preload.service\";\nimport {ZoomService} from \"./zoom.service\";\nimport {WindowService} from \"./window.service\";\nimport {ViewportService} from \"./viewport.service\";\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Directive({\n selector: '[gdScrollable]'\n})\nexport class ScrollableDirective implements AfterViewInit, OnChanges, OnInit {\n\n private currentPage: number;\n private zoom = 100;\n\n constructor(private _elementRef: ElementRef,\n private _navigateService: NavigateService,\n private _pagePreloadService: PagePreloadService,\n private _zoomService: ZoomService,\n private _windowService: WindowService,\n private _viewportService: ViewportService) {\n\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\n _zoomService.zoomChange.subscribe((val: number) => {\n this.zoom = val ? val : this.zoom;\n this.refresh();\n });\n }\n\n ngAfterViewInit() {\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\n this._navigateService.navigate.subscribe((value => {\n this.currentPage = value;\n this.scrollToPage(value);\n }));\n this.refresh();\n }\n\n @HostListener('scroll') scrolling() {\n this.refresh();\n }\n\n @HostListener('window:resize') resizing() {\n this.refresh();\n }\n\n scrollToPage(pageNumber: number) {\n const el = this._elementRef.nativeElement;\n const page = this.getPage(pageNumber);\n const prev = pageNumber > 0 ? this.getPage(pageNumber - 1) : null;\n const isSameTop = (prev && $(prev).offset().top === $(page).offset().top);\n if (this._viewportService.checkInViewport(page, this.zoom) && isSameTop) {\n return;\n }\n const pagesHeight = this.calculateOffset(pageNumber);\n const options = {\n left: 0,\n top: pagesHeight\n };\n if(el){\n // using polyfill\n el.scroll(options);\n }\n }\n\n private getChildren() {\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n // here and in the similar line below we getting the document pages\n return el.children.item(0).children.item(0).children;\n }\n }\n\n private getPage(pageNumber: number) {\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n return el.children.item(0).children.item(0).children.item(pageNumber - 1);\n }\n }\n\n private calculateOffset(pageNumber: number) {\n const count = this._windowService.isFirefox() ? 1 : this.countPagesOnWidth();\n const margin = this._windowService.isDesktop() ? 40 : 10;\n let pagesHeight = 0;\n for (let i = 1; i < pageNumber / count; i++) {\n const item = this.getPage(i);\n const clientHeight = item ? item.clientHeight : 0;\n pagesHeight += clientHeight > 0 ? clientHeight * this.getZoom() + margin : 0;\n }\n return pagesHeight;\n }\n\n private countPagesOnWidth() {\n const pageEl = this.getPage(1);\n const offset = 150;\n const count = Math.floor((this.getWidth() - offset) / (pageEl.getBoundingClientRect().width * this.getZoom()));\n return count === 0 ? 1 : count;\n }\n\n refresh() {\n let page;\n let currentPageSet = false;\n const pageElem = this.getPage(this.currentPage);\n const currentPageRect = this.currentPage && pageElem ? pageElem.getBoundingClientRect() : null;\n for (page = 1; page < this.getChildren().length + 1; page++) {\n const element = this.getPage(page);\n if (this._viewportService.checkInViewport(element, this.zoom)) {\n if (!currentPageSet) {\n if (!this.currentPage || !pageElem || (this.currentPage && currentPageRect && element.getBoundingClientRect().top !== currentPageRect.top)) {\n this.currentPage = page;\n this._navigateService.currentPage = page;\n }\n currentPageSet = true;\n }\n this._pagePreloadService.changeLastPageInView(page);\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.refresh();\n }\n\n ngOnInit(): void {\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\n }\n\n\n private getWidth() {\n return this._elementRef ? this._elementRef.nativeElement.offsetWidth : window.innerWidth;\n }\n\n private getZoom() {\n return this.zoom / 100;\n }\n}\n","import {AfterViewInit, Directive, HostBinding, Input, OnDestroy, OnInit, ElementRef, OnChanges} from '@angular/core';\nimport {ZoomService} from \"./zoom.service\";\nimport {FileUtil} from \"./file.service\";\nimport { WindowService } from './window.service';\n\n@Directive({\n selector: '[gdZoom]'\n})\nexport class ZoomDirective implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Input() zoomActive = true;\n @Input() file;\n\n @HostBinding('style.zoom') zoomInt: number;\n @HostBinding('style.transform') transform: string;\n @HostBinding('style.transform-origin') transformOrigin: string;\n @HostBinding('style.width') width: string;\n @HostBinding('style.min-width') minWidth: string;\n el: ElementRef;\n\n constructor(private _zoomService: ZoomService, private _windowService: WindowService, el: ElementRef) {\n this.el = el;\n }\n\n ngOnDestroy(): void {\n }\n\n ngOnChanges(): void {\n this.setStyles(this._zoomService.zoom);\n this.resizePages(this._zoomService.zoom);\n }\n\n ngOnInit(): void {\n if (! this.zoomActive) {\n return;\n }\n\n this.setStyles(this._zoomService.zoom);\n this._zoomService.zoomChange.subscribe((zoom) => {\n this.setStyles(zoom);\n this.resizePages(zoom);\n });\n }\n\n private setStyles(zoom) {\n if (! this.zoomActive) {\n return;\n }\n\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\n \n if (this._windowService.isEdge()) {\n this.zoomInt = zoomInt;\n }\n else {\n this.zoomInt = null;\n }\n \n if (!this._windowService.isEdge()) {\n this.transform = 'scale(' + zoomInt + ')';\n this.transformOrigin = 'top left';\n }\n else {\n this.transform = \"\";\n this.transformOrigin = \"\";\n }\n\n let maxWidth = 0;\n this.file.pages.forEach(page => {\n {\n if (page.width > maxWidth){\n maxWidth = page.width;\n }\n }\n });\n\n // Images and Excel-related files receiving dimensions in px from server\n this.minWidth = maxWidth + FileUtil.find(this.file.guid, false).unit;\n }\n\n private getScrollWidth(elm){\n return elm.offsetWidth - elm.clientWidth;\n }\n\n private resizePages(zoom){\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\n\n const viewPortWidth = this.el.nativeElement.parentElement.offsetWidth;\n const scrollWidth = this.getScrollWidth(this.el.nativeElement.parentElement);\n this.width = (viewPortWidth/zoomInt - scrollWidth/zoomInt) + 'px';\n }\n\n ngAfterViewInit(): void {\n this.setStyles(this._zoomService.zoom);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Subject} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnCloseService {\n private _observer: Subject = new Subject();\n private readonly _onClose: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get onClose() {\n return this._onClose;\n }\n\n close(close: boolean) {\n this._observer.next(close)\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {OnCloseService} from \"../on-close.service\";\n\nexport interface Option {\n name: string;\n value: any;\n separator: boolean;\n}\n\n@Component({\n selector: 'gd-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.less']\n})\nexport class SelectComponent {\n\n @Input() options: Option[];\n @Input() disabled = false;\n @Input() showSelected: Option;\n @Output() selected: EventEmitter = new EventEmitter();\n isOpen = false;\n\n constructor(private _onCloseService: OnCloseService) {\n _onCloseService.onClose.subscribe(() => {\n this.close();\n });\n }\n\n open() {\n if (!this.disabled) {\n this.isOpen = true;\n }\n }\n\n close() {\n this.isOpen = false;\n }\n\n onClickOutside(event : Event){\n this.close();\n }\n\n toggle($event) {\n $event.preventDefault();\n $event.stopPropagation();\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n select($event, value: Option) {\n $event.preventDefault();\n $event.stopPropagation();\n this.selected.emit(value);\n this.close();\n }\n\n}\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\n\n@Directive({\n selector: '[gdDisabledCursor]'\n})\nexport class DisabledCursorDirective implements OnInit, OnChanges {\n\n @Input() dis: boolean;\n\n constructor() {\n }\n\n @HostBinding('class.inactive') cursor: boolean;\n\n private updateCursor() {\n this.cursor = this.dis ? true : false;\n }\n\n ngOnInit(): void {\n this.updateCursor();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateCursor()\n }\n}\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\n\n@Directive({\n selector: '[gdRotation]'\n})\nexport class RotationDirective implements OnInit, OnChanges {\n\n @Input() angle: number;\n @Input() isHtmlMode: boolean;\n @Input() width: number;\n @Input() height: number;\n @Input() withMargin = true;\n\n @HostBinding('style.animation') animation: string;\n @HostBinding('style.transition-property') transition: string;\n @HostBinding('style.transform') transform: string;\n\n @HostBinding('style.margin') margin: string;\n\n constructor() {\n }\n\n private updateCursor() {\n if (typeof this.angle === \"string\"){\n this.angle = parseInt(this.angle, 10);\n }\n\n if (this.angle) {\n this.animation = 'none';\n this.transition = 'none';\n this.transform = 'rotate(' + this.angle + 'deg)';\n } else if (this.angle === 0 && this.animation) {\n this.animation = null;\n this.transition = null;\n this.transform = null;\n }\n\n if (this.withMargin) {\n if (this.angle === 90 || this.angle === 270 || this.angle === -90 || this.angle === -270) {\n if (this.isHtmlMode) {\n if (this.isLandscape()) {\n this.margin = '164px 254px';\n } else {\n this.margin = '-111px 254px';\n }\n } else {\n if (this.isLandscape()) {\n this.margin = '129px 100px -79px';\n } else {\n this.margin = '-72px 100px -79px';\n }\n }\n } else if (this.angle === -180 || this.angle === 180) {\n this.margin = '280px';\n } else {\n this.margin = null;\n }\n }\n\n }\n\n isLandscape() {\n return this.width > this.height;\n }\n\n ngOnInit(): void {\n this.updateCursor();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateCursor()\n }\n\n}\n","import {Component, Input, Output, EventEmitter, OnInit} from '@angular/core';\n\n@Component({\n selector: 'gd-init-state',\n templateUrl: './init-state.component.html',\n styleUrls: ['./init-state.component.less']\n})\nexport class InitStateComponent implements OnInit {\n @Input() icon: string;\n @Input() text: string;\n @Output() fileDropped = new EventEmitter();\n showUploadFile = false;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n dropped($event) {\n if ($event) {\n this.fileDropped.emit($event);\n this.showUploadFile = false;\n }\n }\n}\n","import {Observable, Observer} from \"rxjs\";\nimport {PageModel} from \"./file.service\";\n\nexport class RenderPrintService {\n private _render: Observable;\n private _observer: Observer;\n private _renderBlob: Observable;\n private _observerBlob: Observer;\n\n constructor() {\n this._render = new Observable(observer =>\n this._observer = observer);\n this._renderBlob = new Observable(observer =>\n this._observerBlob = observer);\n }\n\n get renderPrint(): Observable {\n return this._render;\n }\n\n changePages(pages: PageModel[]) {\n this._observer.next(pages);\n }\n\n get renderPrintBlob(): Observable {\n return this._renderBlob;\n }\n\n changeBlob(file: Blob) {\n this._observerBlob.next(file);\n }\n}\n","import {Directive, Input} from '@angular/core';\nimport {PageModel} from \"./file.service\";\nimport {RenderPrintService} from \"./render-print.service\";\n\n@Directive({\n selector: '[gdRenderPrint]'\n})\nexport class RenderPrintDirective {\n @Input() htmlMode: boolean;\n\n constructor(private _renderService: RenderPrintService) {\n _renderService.renderPrint.subscribe(pages => {\n this.renderPrint(pages);\n });\n _renderService.renderPrintBlob.subscribe(file => {\n this.renderPrintBlob(file);\n });\n }\n\n private renderPrint(pages: PageModel[]) {\n let pagesHtml = '';\n if (this.htmlMode) {\n for (const page of pages) {\n pagesHtml += '
' +\n '
' + page.data + '
' +\n '
';\n }\n } else {\n for (const page of pages) {\n pagesHtml += '
' +\n '
' +\n '
';\n }\n }\n this.openWindow(pagesHtml, pages[0].width, pages[0].height);\n }\n\n private openWindow(pagesHtml, width, height) {\n const a4Height = 842;\n const a4Width = 595;\n let imageA4Adjusted = '';\n if(width > a4Width && height > a4Height){\n const zoom = Math.round(height / a4Height) / 100;\n imageA4Adjusted = '.gd-page img { width: 100%; margin: 0; padding: 0;}';\n if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1){\n imageA4Adjusted = '.gd-page img { transform: scale(' + zoom + ');}';\n }\n }\n let cssPrint = '';\n\n const windowObject = window.open('', \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\n windowObject.focus();\n windowObject.document.writeln(cssPrint);\n windowObject.document.writeln(pagesHtml);\n windowObject.document.close();\n windowObject.focus();\n windowObject.print();\n windowObject.close();\n }\n\n private renderPrintBlob(file: Blob) {\n const fileURL = URL.createObjectURL(file);\n const windowObject = window.open(fileURL, \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\n windowObject.focus();\n windowObject.print();\n windowObject.close();\n }\n}\n","import {BehaviorSubject, Observable} from \"rxjs\";\n\nexport class ExceptionMessageService {\n private _observer: BehaviorSubject = new BehaviorSubject('Server is not available');\n private _messageChange: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get messageChange(): Observable {\n return this._messageChange;\n }\n\n changeMessage(message: string) {\n this._observer.next(message);\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {ExceptionMessageService} from \"../exception-message.service\";\n\n@Component({\n selector: 'gd-error-modal',\n templateUrl: './error-modal.component.html',\n styleUrls: ['./error-modal.component.less']\n})\nexport class ErrorModalComponent implements OnInit {\n\n message: string;\n\n constructor(messageService: ExceptionMessageService) {\n messageService.messageChange.subscribe(message => this.message = message);\n }\n\n ngOnInit() {\n }\n\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class PasswordService {\n private _observer: Subject = new Subject();\n private readonly _passChange: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get passChange(): Observable {\n return this._passChange;\n }\n\n setPassword(pass: string) {\n this._observer.next(pass);\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {ExceptionMessageService} from \"../exception-message.service\";\nimport {PasswordService} from \"../password.service\";\n\n@Component({\n selector: 'gd-password-required',\n templateUrl: './password-required.component.html',\n styleUrls: ['./password-required.component.less']\n})\nexport class PasswordRequiredComponent implements OnInit {\n message: string;\n\n constructor(messageService: ExceptionMessageService, private _passwordService: PasswordService) {\n messageService.messageChange.subscribe(message => this.message = message);\n }\n\n ngOnInit() {\n }\n\n setPassword(value: string) {\n this._passwordService.setPassword(value);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\nimport {Observable, throwError} from \"rxjs\";\nimport {catchError, map} from \"rxjs/operators\";\nimport {ExceptionMessageService} from \"./exception-message.service\";\nimport {HttpError} from \"./file.service\";\nimport {CommonModals, ModalService} from \"./modal.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorInterceptorService implements HttpInterceptor {\n\n constructor(private _modalService: ModalService, private _messageService: ExceptionMessageService) {\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n const logFormat = 'background: maroon; color: white';\n\n return next.handle(req)\n .pipe(map(data => {\n return data;\n }),\n catchError((exception: HttpEvent) => {\n if (exception instanceof HttpErrorResponse) {\n switch (exception.status) {\n\n case HttpError.BadRequest:\n console.error('%c Bad Request 400', logFormat);\n break;\n case HttpError.Unauthorized:\n console.error('%c Unauthorized 401', logFormat);\n break;\n case HttpError.NotFound:\n console.error('%c Not Found 404', logFormat);\n break;\n case HttpError.TimeOut:\n console.error('%c TimeOut 408', logFormat);\n break;\n case HttpError.InternalServerError:\n console.error('%c big bad 500', logFormat);\n this._messageService.changeMessage(exception.error.message);\n this._modalService.open(CommonModals.ErrorMessage);\n break;\n\n case HttpError.Forbidden:\n console.error('%c Forbidden 403', logFormat);\n this._messageService.changeMessage(exception.error.message);\n this._modalService.open(CommonModals.PasswordRequired);\n break;\n }\n }\n return throwError(exception);\n }));\n }\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class SearchService {\n private _observer: Subject = new Subject();\n private readonly _textChange: Observable = this._observer.asObservable();\n\n private _observerCurrent: Subject = new Subject();\n private readonly _currentChange: Observable = this._observerCurrent.asObservable();\n\n private _observerTotal: Subject = new Subject();\n private readonly _totalChange: Observable = this._observerTotal.asObservable();\n\n constructor() {\n }\n\n get textChange(): Observable {\n return this._textChange;\n }\n\n setText(text: string) {\n this._observer.next(text);\n }\n\n get currentChange(): Observable {\n return this._currentChange;\n }\n\n get totalChange(): Observable {\n return this._totalChange;\n }\n\n setCurrent(current: number) {\n this._observerCurrent.next(current);\n }\n\n setTotal(total: number) {\n this._observerTotal.next(total);\n }\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\nimport {SearchService} from \"../search.service\";\n\n@Component({\n selector: 'gd-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.less']\n})\nexport class SearchComponent implements OnInit, AfterViewInit {\n\n @Output() hidePanel = new EventEmitter(false);\n\n current = 0;\n total = 0;\n\n @ViewChild('text',{\n static : true\n }) textElement: ElementRef;\n\n constructor(private _searchService: SearchService) {\n _searchService.totalChange.subscribe((total: number) => {\n this.total = total;\n if (total !== 0) {\n this.current = 1;\n } else {\n this.current = 0;\n }\n this._searchService.setCurrent(this.current);\n });\n }\n\n ngOnInit() {\n }\n\n setText(text: string) {\n this._searchService.setText(text);\n }\n\n hide() {\n this.setText('');\n this.hidePanel.emit(true);\n }\n\n prev() {\n if (this.current > 1) {\n this.current--;\n this._searchService.setCurrent(this.current);\n }\n }\n\n next() {\n if (this.current < this.total) {\n this.current++;\n this._searchService.setCurrent(this.current);\n }\n }\n\n ngAfterViewInit(): void {\n this.textElement.nativeElement.focus();\n }\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {SearchService} from \"./search.service\";\nimport {HighlightSearchPipe} from \"./pipes\";\nimport {ZoomService} from \"./zoom.service\";\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Directive({\n selector: '[gdSearchable]'\n})\nexport class SearchableDirective {\n\n text: string;\n current = 0;\n total = 0;\n private zoom = 100;\n\n constructor(private _elementRef: ElementRef,\n private _searchService: SearchService,\n private _highlight: HighlightSearchPipe,\n private _zoomService: ZoomService) {\n _searchService.currentChange.subscribe((current: number) => {\n this.current = current;\n if (this.current !== 0) {\n this.moveToCurrent();\n }\n });\n\n _searchService.textChange.subscribe((text: string) => {\n this.text = text;\n this.highlightSearch();\n });\n\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\n _zoomService.zoomChange.subscribe((val: number) => {\n this.zoom = val ? val : this.zoom;\n });\n }\n\n private highlightSearch() {\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n this.cleanHighlight(el);\n if (this.text) {\n this.highlightEl(el);\n const count = el.querySelectorAll('.gd-highlight').length;\n this.total = count;\n } else {\n this.total = 0;\n }\n this._searchService.setTotal(this.total);\n }\n }\n\n private moveToCurrent() {\n if (this.current === 0) {\n return;\n }\n const currentZoom = this.getZoom();\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n el.querySelectorAll('.gd-highlight-select').forEach(function (value) {\n $(value).removeClass('gd-highlight-select');\n });\n const currentEl = el.querySelectorAll('.gd-highlight')[this.current - 1];\n $(currentEl).addClass('gd-highlight-select');\n if (currentEl) {\n const options = {\n left: 0,\n top: ($(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150,\n };\n // using polyfill\n el.parentElement.parentElement.scroll(options);\n }\n }\n }\n\n private highlightEl(el: Element) {\n const textNodes = $(el).find('*').contents().filter(function () {\n const nodeName = this.parentElement.nodeName.toLowerCase();\n const checkClass = (this).classList ? !(this).classList.contains('gd-highlight') : true;\n return this.nodeType === 3 &&\n this.textContent.trim().length !== 0 &&\n nodeName !== 'style' &&\n nodeName !== 'title' &&\n nodeName !== 'body' &&\n nodeName !== 'script' &&\n checkClass;\n });\n const text = this.text;\n const highlight = this._highlight;\n textNodes.each(function () {\n const $this = $(this);\n let content = $this.text();\n content = highlight.transform(content, text);\n $this.replaceWith(content);\n });\n el.normalize();\n }\n\n private cleanHighlight(el: HTMLElement) {\n const nodeListOf = el.querySelectorAll('.gd-highlight');\n for (let i = 0; i < nodeListOf.length; i++) {\n const element = nodeListOf.item(i);\n element.replaceWith((element).innerText);\n }\n el.normalize();\n }\n\n private getZoom() {\n return this.zoom / 100;\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'gd-tabbed-toolbars',\n templateUrl: './tabbed-toolbars.component.html',\n styleUrls: ['./tabbed-toolbars.component.less']\n})\nexport class TabbedToolbarsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class TabActivatorService {\n private _observer: Subject = new Subject();\n private readonly _activeTabChange: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get activeTabChange(): Observable {\n return this._activeTabChange;\n }\n\n changeActiveTab(tabId: string) {\n this._observer.next(tabId);\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {TabActivatorService} from \"../tab-activator.service\";\n\n@Component({\n selector: 'gd-tab',\n templateUrl: './tab.component.html',\n styleUrls: ['./tab.component.less']\n})\nexport class TabComponent implements OnInit {\n @Input() id: string;\n @Input() tabTitle: string;\n @Input() icon: string;\n @Input() disabled = false;\n @Input() active = false;\n @Input() content = true;\n\n constructor(private _tabActivatorService: TabActivatorService) {\n this._tabActivatorService.activeTabChange.subscribe((tabId: string) => {\n this.activation(tabId);\n });\n }\n\n private activation(tabId: string) {\n if (this.id === tabId) {\n this.active = true;\n } else {\n this.active = false;\n }\n }\n\n ngOnInit() {\n }\n\n selectTab() {\n if (this.disabled) {\n return;\n }\n this._tabActivatorService.changeActiveTab(this.id);\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'gd-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.less']\n})\nexport class TabsComponent {\n constructor() {\n }\n\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class Formatting {\n static DEFAULT: Formatting = new Formatting(10, '#000000', '#FFFFFF', false, false, false, 'Arial', false, \"\", \"\");\n\n constructor(fontSize: number, color: string, bgColor: string, bold: boolean, italic: boolean, underline: boolean, font: string, strikeout: boolean, align: string, list: string) {\n this.fontSize = fontSize;\n this.color = color;\n this.bgColor = bgColor;\n this.bold = bold;\n this.italic = italic;\n this.underline = underline;\n this.font = font;\n this.strikeout = strikeout;\n this.align = align;\n this.list = list;\n }\n\n bold: boolean;\n italic: boolean;\n underline: boolean;\n fontSize: number;\n color: string;\n bgColor: string;\n font: string;\n strikeout: boolean;\n align: string;\n list: string;\n}\n\nexport class FormattingService {\n private _observerBold: Subject = new Subject();\n private readonly _formatBoldChange: Observable = this._observerBold.asObservable();\n private _observerUnderline: Subject = new Subject();\n private readonly _formatUnderlineChange: Observable = this._observerUnderline.asObservable();\n private _observerUndo: Subject = new Subject();\n private readonly _undo: Observable = this._observerUndo.asObservable();\n private _observerRedo: Subject = new Subject();\n private readonly _redo: Observable = this._observerRedo.asObservable();\n private _observerItalic: Subject = new Subject();\n private readonly _formatItalicChange: Observable = this._observerItalic.asObservable();\n private _observerColor: Subject = new Subject();\n private readonly _formatColorChange: Observable = this._observerColor.asObservable();\n private _observerBgColor: Subject = new Subject();\n private readonly _formatBgColorChange: Observable = this._observerBgColor.asObservable();\n private _observerFontSize: Subject = new Subject();\n private readonly _formatFontSizeChange: Observable = this._observerFontSize.asObservable();\n private _observerFont: Subject = new Subject();\n private readonly _formatFontChange: Observable = this._observerFont.asObservable();\n private _observerStrikeout: Subject = new Subject();\n private readonly _formatStrikeoutChange: Observable = this._observerStrikeout.asObservable();\n private _observerAlign: Subject = new Subject();\n private readonly _formatAlignChange: Observable = this._observerAlign.asObservable();\n private _observerList: Subject = new Subject();\n private readonly _formatListChange: Observable = this._observerList.asObservable();\n\n constructor() {\n }\n\n get formatBoldChange() {\n return this._formatBoldChange;\n }\n\n get formatUnderlineChange() {\n return this._formatUnderlineChange;\n }\n\n get formatColorChange() {\n return this._formatColorChange;\n }\n\n get formatBgColorChange() {\n return this._formatBgColorChange;\n }\n\n get formatFontSizeChange() {\n return this._formatFontSizeChange;\n }\n\n get formatFontChange() {\n return this._formatFontChange;\n }\n\n get undo() {\n return this._undo;\n }\n\n get redo() {\n return this._redo;\n }\n\n get formatItalicChange() {\n return this._formatItalicChange;\n }\n\n get formatStrikeoutChange() {\n return this._formatStrikeoutChange;\n }\n\n get formatAlignChange() {\n return this._formatAlignChange;\n }\n\n get formatListChange() {\n return this._formatListChange;\n }\n\n static createFontSizeOption(val: number) {\n return {value: val, name: val + 'px', separator: false}\n }\n\n static getFontSizeOptions() {\n return [\n FormattingService.createFontSizeOption(8),\n FormattingService.createFontSizeOption(10),\n FormattingService.createFontSizeOption(12),\n FormattingService.createFontSizeOption(14),\n FormattingService.createFontSizeOption(16),\n FormattingService.createFontSizeOption(18),\n FormattingService.createFontSizeOption(20),\n FormattingService.createFontSizeOption(22),\n FormattingService.createFontSizeOption(24),\n ];\n }\n\n static createFontOption(val: string) {\n return {value: val, name: val, separator: false}\n }\n\n static getFontOptions() {\n const fonts = [\"Arial\", \"Calibri\", \"Century Gothic\", \"Comic Sans\", \"Consolas\", \"Courier\", \"Dejavu Sans\", \"Dejavu Serif\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Lucida Sans\",\n \"Myriad Pro\", \"Open Sans\", \"Palatino\", \"Tahoma\", \"Times New Roman\", \"Trebuchet\"];\n const fontOptions = [];\n fonts.forEach(font=> {\n fontOptions.push(this.createFontOption(font));\n })\n\n return fontOptions;\n }\n\n changeFormatFontSize($event: number) {\n this._observerFontSize.next($event);\n }\n\n changeFormatBold(bold: boolean) {\n this._observerBold.next(bold);\n }\n\n changeFormatUnderline(underline: boolean) {\n this._observerUnderline.next(underline);\n }\n\n Undo() {\n this._observerUndo.next();\n }\n\n Redo() {\n this._observerRedo.next();\n }\n\n changeFormatItalic(italic: boolean) {\n this._observerItalic.next(italic);\n }\n\n changeFormatColor(color: string) {\n this._observerColor.next(color);\n }\n\n changeFormatBgColor(bgcolor: string) {\n this._observerBgColor.next(bgcolor);\n }\n\n changeFormatFont(font: string) {\n this._observerFont.next(font);\n }\n\n changeFormatStrikeout(strikeout: boolean) {\n this._observerStrikeout.next(strikeout);\n }\n\n changeFormatAlign(align: string) {\n this._observerAlign.next(align);\n }\n\n changeFormatList(list: string) {\n this._observerList.next(list);\n }\n}\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\n\nconst DEFAULT_COLORS = ['#000000', '#993300', '#333300', '#000080', '#333399', '#333333',\n '#800000', '#FF6600', '#808000', '#008000', '#008080', '#0000FF',\n '#666699', '#808080', '#FF0000', '#FF9900', '#99CC00', '#339966',\n '#33CCCC', '#3366FF', '#800080', '#999999', '#FF00FF', '#FFCC00',\n '#FFFF00', '#00FF00', '#00FFFF', '#00CCFF', '#993366', '#C0C0C0',\n '#FF99CC', '#FFCC99', '#FFFF99', '#CCFFFF', '#99CCFF', '#FFFFFF'];\n\n\n@Component({\n selector: 'gd-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.less']\n})\nexport class ColorPickerComponent implements OnInit {\n @Output() selectedColor = new EventEmitter();\n colors: any = DEFAULT_COLORS;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n select($event, color: string) {\n $event.preventDefault();\n $event.stopPropagation();\n this.selectedColor.emit(color);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {FormattingService} from \"./formatting.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BackFormattingService extends FormattingService {\n\n constructor() {\n super();\n }\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SelectionService {\n selection: Range;\n isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n\n restoreSelection() {\n if(this.selection && !this.selection.collapsed || this.isIE){\n this.putSelection(this.selection );\n }\n }\n\n captureSelection() {\n const selection = window.getSelection();\n if (selection.rangeCount > 0) {\n this.selection = selection.getRangeAt(0);\n }\n }\n\n private putSelection(selection) {\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(selection.cloneRange());\n }\n\n refreshSelection() {\n this.captureSelection();\n this.restoreSelection();\n }\n}\n","import {Directive, HostListener, OnInit} from '@angular/core';\nimport {FormattingService} from \"./formatting.service\";\nimport {BackFormattingService} from \"./back-formatting.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\nimport {SelectionService} from './selection.service';\n\n@Directive({\n selector: '[gdFormatting]'\n})\nexport class FormattingDirective implements OnInit {\n\n private bold = false;\n private italic = false;\n private underline = false;\n private color: string;\n private bgColor: string;\n private font: string;\n private strikeout = false;\n private align: string;\n private list: string;\n private isIE = false;\n\n constructor(private _formattingService: FormattingService,\n private _backFormattingService: BackFormattingService,\n private _selectionService: SelectionService) {\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n }\n\n @HostListener('mouseup') mouseup() {\n\n this.bold = document.queryCommandState(\"bold\");\n this.strikeout = document.queryCommandState(\"strikeThrough\");\n this.italic = document.queryCommandState(\"italic\");\n this.bgColor = document.queryCommandValue(\"backColor\");\n this.underline = document.queryCommandState(\"underline\");\n this.align = this.checkJustify();\n this.list = this.checkList();\n\n //fix required by FireFox to get correct background color\n if (this.bgColor === \"transparent\") {\n this.bgColor = $(window.getSelection().focusNode.parentNode).css('background-color').toString();\n }\n this.font = document.queryCommandValue(\"FontName\").replace(/\"/g, '');\n if(this.font.split(\",\").length > 1){\n this.font = this.font.split(\",\")[0];\n }\n this.color = document.queryCommandValue(\"foreColor\");\n this._backFormattingService.changeFormatBold(this.bold);\n this._backFormattingService.changeFormatUnderline(this.underline);\n this._backFormattingService.changeFormatItalic(this.italic);\n this._backFormattingService.changeFormatColor(this.color);\n this._backFormattingService.changeFormatBgColor(this.bgColor);\n this._backFormattingService.changeFormatFontSize(this.reportFontSize());\n this._backFormattingService.changeFormatFont(this.font);\n this._backFormattingService.changeFormatStrikeout(this.strikeout);\n this._backFormattingService.changeFormatAlign(this.align);\n this._backFormattingService.changeFormatList(this.list);\n }\n\n private checkJustify() {\n let align = \"\";\n align = document.queryCommandState(\"justifyCenter\") ? \"center\" : align;\n align = document.queryCommandState(\"justifyFull\") ? \"full\" : align;\n align = document.queryCommandState(\"justifyLeft\") ? \"left\" : align;\n align = document.queryCommandState(\"justifyRight\") ? \"right\" : align;\n return align;\n }\n\n private checkList() {\n let list = \"\";\n list = document.queryCommandState(\"insertUnorderedList\") ? \"unordered\" : list;\n list = document.queryCommandState(\"insertOrderedList\") ? \"ordered\" : list;\n return list;\n }\n\n reportFontSize(): number {\n let containerEl, sel;\n if (window.getSelection) {\n sel = window.getSelection();\n if (sel.rangeCount) {\n containerEl = sel.getRangeAt(0).commonAncestorContainer;\n // Make sure we have an element rather than a text node\n if (containerEl.nodeType === 3) {\n containerEl = containerEl.parentNode;\n }\n }\n } else if ((sel = document.getSelection()) && sel.type !== \"Control\") {\n containerEl = sel.createRange().parentElement();\n }\n\n if (containerEl) {\n return parseInt(this.getComputedStyleProperty(containerEl, \"fontSize\").replace(\"px\", \"\"), 10);\n }\n }\n\n getComputedStyleProperty(el, propName) {\n if (window.getComputedStyle) {\n return window.getComputedStyle(el, null)[propName];\n } else if (el.currentStyle) {\n return el.currentStyle[propName];\n }\n }\n\n ngOnInit(): void {\n this._formattingService.undo.subscribe(() => {\n this.toggleUndo();\n });\n this._formattingService.redo.subscribe(() => {\n this.toggleRedo();\n });\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.bold = bold;\n this.toggleBold();\n });\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.underline = underline;\n this.toggleUnderline();\n });\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.italic = italic;\n this.toggleItalic();\n });\n this._formattingService.formatColorChange.subscribe(((color: string) => {\n this.color = color;\n this.setColor(color);\n }));\n this._formattingService.formatBgColorChange.subscribe(((bgcolor: string) => {\n this.bgColor = bgcolor;\n this.setBgColor(bgcolor);\n }));\n this._formattingService.formatFontSizeChange.subscribe(((fontSize: number) => {\n this.setFontSize(fontSize);\n }));\n\n this._formattingService.formatFontChange.subscribe(((font: string) => {\n this.font = font;\n this.setFont(font);\n }));\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.strikeout = strikeout;\n this.toggleStrikeout();\n });\n this._formattingService.formatAlignChange.subscribe((align: string) => {\n this.align = align;\n this.toggleAlign(this.align);\n });\n this._formattingService.formatListChange.subscribe((list: string) => {\n this.list = list;\n this.toggleList(this.list);\n });\n }\n\n private toggleBold() {\n document.execCommand(\"bold\");\n this._selectionService.refreshSelection();\n }\n\n private toggleUnderline() {\n document.execCommand(\"underline\");\n this._selectionService.refreshSelection();\n }\n\n private toggleItalic() {\n document.execCommand(\"italic\");\n this._selectionService.refreshSelection();\n }\n\n private setBgColor(bgColor: string) {\n document.execCommand(\"backColor\", false, bgColor);\n this._selectionService.refreshSelection();\n }\n\n private setColor(color: string) {\n document.execCommand(\"foreColor\", false, color);\n this._selectionService.refreshSelection();\n }\n\n private setFontSize(fontSize: number) {\n if (document.getSelection().toString()) {\n let spanString = \"\" +\n document.getSelection() + \"\";\n if (this.bold) {\n spanString = \"\" + spanString + \"\";\n }\n if (this.italic) {\n spanString = \"\" + spanString + \"\";\n }\n if (this.underline) {\n spanString = \"\" + spanString + \"\";\n }\n if (this.strikeout) {\n spanString = \"\" + spanString + \"\";\n }\n document.execCommand('insertHTML', false, spanString);\n } else {\n document.execCommand(\"fontsize\", false, \"7\");\n }\n this._selectionService.refreshSelection();\n }\n\n private toggleUndo() {\n document.execCommand(\"undo\");\n }\n\n private toggleRedo() {\n document.execCommand(\"redo\");\n }\n\n private setFont(font: string) {\n document.execCommand(\"fontName\", false, font);\n this._selectionService.refreshSelection();\n }\n\n private toggleStrikeout() {\n document.execCommand(\"strikeThrough\");\n this._selectionService.refreshSelection();\n }\n\n private toggleAlign(align: string) {\n if(this.isIE) {\n this.toggleAlignIE(align);\n return;\n }\n document.execCommand(\"styleWithCSS\", false, 'true');\n switch (align) {\n case 'center':\n document.execCommand('justifyCenter');\n break;\n case 'full':\n document.execCommand('justifyFull');\n break;\n case 'left':\n document.execCommand('justifyLeft');\n break;\n case 'right':\n document.execCommand('justifyRight');\n break;\n }\n this._selectionService.refreshSelection();\n }\n\n private toggleAlignIE(align: string) {\n this._selectionService.restoreSelection()\n this._selectionService.captureSelection()\n const selection = window.getSelection().focusNode.parentNode.parentNode;\n if(align === \"full\"){\n align = \"justify\";\n }\n $(selection).css(\"text-align\", align);\n this._selectionService.refreshSelection()\n }\n\n private toggleList(list: string) {\n switch (list) {\n case 'unordered':\n document.execCommand('insertUnorderedList');\n break;\n case 'ordered':\n document.execCommand('insertOrderedList');\n break;\n }\n this._selectionService.refreshSelection();\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'gd-success-modal',\n templateUrl: './success-modal.component.html',\n styleUrls: ['./success-modal.component.less']\n})\nexport class SuccessModalComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Subject} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditHtmlService {\n private _observer: Subject = new Subject();\n private readonly _htmlContent: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get observer(): Subject {\n return this._observer;\n }\n\n get htmlContent(): Observable {\n return this._htmlContent;\n }\n\n}\n","import {Directive, HostListener, Input} from '@angular/core';\nimport {SelectionService} from './selection.service';\nimport {EditHtmlService} from \"./edit-html.service\";\n\n@Directive({\n selector: '[gdEditor]'\n})\nexport class EditorDirective {\n @Input() text: any;\n\n private isIE: boolean = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n\n constructor(private _selectionService: SelectionService, private _htmlService: EditHtmlService) {\n }\n\n @HostListener('keyup', ['$event'])\n public onInput(event) {\n this.text = event.target;\n if(this.isIE){\n if (this.text.innerHTML) {\n const html = this.text.innerHTML.toString();\n this._htmlService.observer.next(html);\n }\n }\n }\n\n @HostListener('mouseleave', ['$event'])\n public onMouseleave(event) {\n this._selectionService.captureSelection();\n // this code is required to fix IE11 issue - it doesn't trigger blur event, since that we need to save updated HTML here\n if(this.isIE){\n this._htmlService.observer.next(event.target.innerHTML.toString());\n }\n }\n\n @HostListener('blur', ['$event'])\n public onBlur(event) {\n event.preventDefault();\n this._selectionService.restoreSelection();\n if (this.text.innerHTML) {\n const html = this.text.innerHTML.toString();\n this._htmlService.observer.next(html);\n } else {\n this._htmlService.observer.next(event.target.innerHTML.toString());\n }\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core'\nimport { HttpRequest } from '@angular/common/http';\n\n@Injectable()\nexport class LoadingMaskService {\n onLoadingChanged: EventEmitter = new EventEmitter();\n\n private requests: HttpRequest[] = [];\n\n constructor() {\n }\n\n onRequestStart(req: HttpRequest): void {\n this.requests.push(req);\n this.notify();\n }\n\n onRequestFinish(req: HttpRequest): void {\n const index = this.requests.indexOf(req);\n if (index !== -1) {\n this.requests.splice(index, 1);\n }\n this.notify();\n }\n\n private notify(): void {\n this.onLoadingChanged.emit(this.requests.length !== 0);\n }\n}\n","import {AfterViewInit, Component, Input, OnInit} from '@angular/core';\nimport {LoadingMaskService} from \"../loading-mask.service\";\n\n@Component({\n selector: 'gd-loading-mask',\n templateUrl: './loading-mask.component.html',\n styleUrls: ['./loading-mask.component.less']\n})\n\nexport class LoadingMaskComponent implements OnInit, AfterViewInit {\n @Input() loadingMask = false;\n\n constructor(private _loadingMaskService: LoadingMaskService) {\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.loadingMask = loading);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\nimport {Observable} from \"rxjs\";\nimport {finalize} from 'rxjs/operators'\nimport {LoadingMaskService} from \"./loading-mask.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoadingMaskInterceptorService implements HttpInterceptor {\n\n constructor(private _loadingMaskService: LoadingMaskService) {\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n this._loadingMaskService.onRequestStart(req);\n const callback = () => this._loadingMaskService.onRequestFinish(req);\n return next.handle(req).pipe( finalize( callback));\n }\n}\n","import {\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\n\n\nconst horizontalAlignment = {\n center : {\n right: 'auto'\n },\n left : {\n right: '100%'\n },\n right : {\n right: '-100%'\n }\n};\n\nconst verticalAlignment = {\n center : {\n top : '0px',\n },\n top : {\n top : '-100%',\n right: '100%'\n },\n bottom : {\n top: 'autos'\n }\n};\n\n/**\n * DropDownToggleComponent\n */\n@Component({\n selector: 'gd-drop-down-toggle',\n template: '',\n styleUrls: ['./drop-down.component.less'],\n encapsulation : ViewEncapsulation.None\n})\nexport class DropDownToggleComponent{\n @HostListener('click',['$event'])\n click = (event: any) => this.dropdown.toggle(event);\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\n}\n\n/**\n * DropDownItemsComponent\n */\n@Component({\n selector: 'gd-drop-down-items',\n template: '
',\n styleUrls: ['./drop-down.component.less'],\n encapsulation : ViewEncapsulation.None\n})\nexport class DropDownItemsComponent{\n\n get horizontalAlign(){\n return horizontalAlignment[this.dropdown.getPlacement().h].right;\n }\n\n get verticalAlign(){\n return verticalAlignment[this.dropdown.getPlacement().v].top;\n }\n\n get isOpen(){\n return this.dropdown.open;\n }\n\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\n\n onClickOutside(event : Event ){\n this.dropdown.close();\n }\n}\n\n/**\n * DropDownItemComponent\n */\n@Component({\n selector: 'gd-drop-down-item',\n template: '
',\n styleUrls: ['./drop-down.component.less'],\n})\nexport class DropDownItemComponent{\n @HostBinding('class')\n class = 'drop-down-item';\n\n @Output()\n selected = new EventEmitter();\n\n @HostListener('click')\n click = () => this.selectEntry();\n\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\n\n selectEntry(){\n this.selected.next();\n this.dropdown.close();\n }\n}\n\n/**\n * DropDownComponent\n */\n@Component({\n selector: 'gd-drop-down',\n template: '
',\n styleUrls: ['./drop-down.component.less'],\n encapsulation : ViewEncapsulation.None\n})\nexport class DropDownComponent{\n @Input()\n placement = {\n h: \"center\",\n v: \"bottom\"\n };\n\n\n @Input()\n @HostBinding('class.show')\n open = false;\n\n @HostBinding('class')\n class = 'drop-down';\n\n close(){\n this.open = false;\n }\n\n toggle(event : MouseEvent){\n event.stopPropagation();\n this.open = !this.open;\n document.body.click();\n }\n\n getPlacement(){\n return this.placement;\n }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TopToolbarComponent} from './top-toolbar/top-toolbar.component';\nimport {SidePanelComponent} from './side-panel/side-panel.component';\nimport {ButtonComponent} from './button/button.component';\nimport {LogoComponent} from './logo/logo.component';\nimport {TooltipComponent} from './tooltip/tooltip.component';\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport {fas} from '@fortawesome/free-solid-svg-icons';\nimport {far} from '@fortawesome/free-regular-svg-icons';\nimport {Api, ConfigService,} from \"./config.service\";\nimport {ModalService} from \"./modal.service\";\nimport {ModalComponent} from './modal/modal.component';\nimport {BrowseFilesModalComponent} from './browse-files-modal/browse-files-modal.component';\nimport {FileModel, FileService, FileUtil} from \"./file.service\";\nimport {DocumentComponent} from './document/document.component';\nimport {PageComponent} from './page/page.component';\nimport {HighlightSearchPipe, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe} from \"./pipes\";\nimport {UploadFileZoneComponent} from './upload-file-zone/upload-file-zone.component';\nimport {UploadFilesService} from \"./upload-files.service\";\nimport {DndDirective} from './dnd.directive';\nimport {ScrollableDirective} from './scrollable.directive';\nimport {NavigateService} from \"./navigate.service\";\nimport {PagePreloadService} from \"./page-preload.service\";\nimport {ZoomDirective} from './zoom.directive';\nimport {ZoomService} from \"./zoom.service\";\nimport {SelectComponent} from './select/select.component';\nimport {DisabledCursorDirective} from './disabled-cursor.directive';\nimport {RotationDirective} from './rotation.directive';\nimport {InitStateComponent} from './init-state/init-state.component';\nimport {RenderPrintService} from \"./render-print.service\";\nimport {RenderPrintDirective} from './render-print.directive';\nimport {ErrorModalComponent} from './error-modal/error-modal.component';\nimport {PasswordRequiredComponent} from './password-required/password-required.component';\nimport {ExceptionMessageService} from \"./exception-message.service\";\nimport {PasswordService} from \"./password.service\";\nimport {ErrorInterceptorService} from \"./error-interceptor.service\";\nimport {SearchComponent} from './search/search.component';\nimport {SearchableDirective} from './searchable.directive';\nimport {SearchService} from \"./search.service\";\nimport {WindowService} from \"./window.service\";\nimport {ViewportService} from \"./viewport.service\";\nimport {TabbedToolbarsComponent} from './tabbed-toolbars/tabbed-toolbars.component';\nimport {TabComponent} from \"./tab/tab.component\";\nimport {TabsComponent} from \"./tabs/tabs.component\";\nimport {FormattingService} from \"./formatting.service\";\nimport {ColorPickerComponent} from './color-picker/color-picker.component';\nimport {FormattingDirective} from './formatting.directive';\nimport {BackFormattingService} from \"./back-formatting.service\";\nimport {OnCloseService} from \"./on-close.service\";\nimport {SuccessModalComponent} from './success-modal/success-modal.component';\nimport {EditorDirective} from './editor.directive';\nimport {LoadingMaskComponent} from './loading-mask/loading-mask.component';\nimport {LoadingMaskService} from './loading-mask.service';\nimport {LoadingMaskInterceptorService} from \"./loading-mask-interceptor.service\";\nimport {TabActivatorService} from \"./tab-activator.service\";\nimport { DropDownComponent,DropDownItemComponent,DropDownItemsComponent,DropDownToggleComponent } from './drop-down/drop-down.component';\nimport { ClickOutsideModule } from 'ng-click-outside';\n\nconst providers = [ConfigService,\n Api,\n ModalService,\n FileService,\n FileModel,\n FileUtil,\n SanitizeHtmlPipe,\n SanitizeResourceHtmlPipe,\n SanitizeStylePipe,\n HighlightSearchPipe,\n UploadFilesService,\n RenderPrintService,\n NavigateService,\n PagePreloadService,\n ZoomService,\n ExceptionMessageService,\n PasswordService,\n ErrorInterceptorService,\n SearchService,\n WindowService,\n ViewportService,\n FormattingService,\n BackFormattingService,\n OnCloseService,\n LoadingMaskInterceptorService,\n LoadingMaskService,\n TabActivatorService];\n\n@NgModule({\n imports: [CommonModule, FontAwesomeModule, ClickOutsideModule],\n declarations: [\n TopToolbarComponent,\n SidePanelComponent,\n ButtonComponent,\n LogoComponent,\n TooltipComponent,\n ModalComponent,\n BrowseFilesModalComponent,\n DocumentComponent,\n PageComponent,\n SanitizeHtmlPipe,\n SanitizeResourceHtmlPipe,\n SanitizeStylePipe,\n HighlightSearchPipe,\n UploadFileZoneComponent,\n DndDirective,\n ScrollableDirective,\n ZoomDirective,\n SelectComponent,\n DisabledCursorDirective,\n RotationDirective,\n InitStateComponent,\n RenderPrintDirective,\n ErrorModalComponent,\n PasswordRequiredComponent,\n SearchComponent,\n SearchableDirective,\n TabbedToolbarsComponent,\n TabComponent,\n TabsComponent,\n ColorPickerComponent,\n FormattingDirective,\n SuccessModalComponent,\n EditorDirective,\n LoadingMaskComponent,\n DropDownComponent,\n DropDownItemComponent,\n DropDownItemsComponent,\n DropDownToggleComponent\n ],\n exports: [\n TopToolbarComponent,\n SidePanelComponent,\n ButtonComponent,\n LogoComponent,\n TooltipComponent,\n ModalComponent,\n BrowseFilesModalComponent,\n DocumentComponent,\n PageComponent,\n SanitizeResourceHtmlPipe,\n SanitizeStylePipe,\n HighlightSearchPipe,\n SanitizeHtmlPipe,\n UploadFileZoneComponent,\n ScrollableDirective,\n SelectComponent,\n RotationDirective,\n InitStateComponent,\n RenderPrintDirective,\n ErrorModalComponent,\n PasswordRequiredComponent,\n SearchComponent,\n SearchableDirective,\n TabbedToolbarsComponent,\n TabComponent,\n TabsComponent,\n ColorPickerComponent,\n FormattingDirective,\n SuccessModalComponent,\n LoadingMaskComponent,\n DndDirective,\n DropDownComponent,\n DropDownItemComponent,\n DropDownItemsComponent,\n DropDownToggleComponent\n ],\n providers: providers\n})\nexport class CommonComponentsModule {\n constructor() {\n library.add(fas, far);\n }\n}\n"],"names":["$"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"groupdocs.examples.angular-common-components.js","sources":["ng://@groupdocs.examples.angular/common-components/lib/top-toolbar/top-toolbar.component.ts","ng://@groupdocs.examples.angular/common-components/lib/side-panel/side-panel.component.ts","ng://@groupdocs.examples.angular/common-components/lib/button/button.component.ts","ng://@groupdocs.examples.angular/common-components/lib/logo/logo.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tooltip/tooltip.component.ts","ng://@groupdocs.examples.angular/common-components/lib/config.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal/modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/file.service.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-files.service.ts","ng://@groupdocs.examples.angular/common-components/lib/browse-files-modal/browse-files-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.service.ts","ng://@groupdocs.examples.angular/common-components/lib/window.service.ts","ng://@groupdocs.examples.angular/common-components/lib/rotation.service.ts","ng://@groupdocs.examples.angular/common-components/lib/document/document.component.ts","ng://@groupdocs.examples.angular/common-components/lib/page/page.component.ts","ng://@groupdocs.examples.angular/common-components/lib/pipes.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-file-zone/upload-file-zone.component.ts","ng://@groupdocs.examples.angular/common-components/lib/dnd.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/page-preload.service.ts","ng://@groupdocs.examples.angular/common-components/lib/navigate.service.ts","ng://@groupdocs.examples.angular/common-components/lib/viewport.service.ts","ng://@groupdocs.examples.angular/common-components/lib/scrollable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/on-close.service.ts","ng://@groupdocs.examples.angular/common-components/lib/select/select.component.ts","ng://@groupdocs.examples.angular/common-components/lib/disabled-cursor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/rotation.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/init-state/init-state.component.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.service.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/exception-message.service.ts","ng://@groupdocs.examples.angular/common-components/lib/error-modal/error-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/password.service.ts","ng://@groupdocs.examples.angular/common-components/lib/password-required/password-required.component.ts","ng://@groupdocs.examples.angular/common-components/lib/error-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/custom-hammer-config.ts","ng://@groupdocs.examples.angular/common-components/lib/search.service.ts","ng://@groupdocs.examples.angular/common-components/lib/search/search.component.ts","ng://@groupdocs.examples.angular/common-components/lib/searchable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/tabbed-toolbars/tabbed-toolbars.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tab-activator.service.ts","ng://@groupdocs.examples.angular/common-components/lib/tab/tab.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tabs/tabs.component.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/color-picker/color-picker.component.ts","ng://@groupdocs.examples.angular/common-components/lib/back-formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/selection.service.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/success-modal/success-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/edit-html.service.ts","ng://@groupdocs.examples.angular/common-components/lib/editor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask.service.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask/loading-mask.component.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/drop-down/drop-down.component.ts","ng://@groupdocs.examples.angular/common-components/lib/common-components.module.ts"],"sourcesContent":["import {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-top-toolbar',\r\n templateUrl: './top-toolbar.component.html',\r\n styleUrls: ['./top-toolbar.component.less']\r\n})\r\nexport class TopToolbarComponent {\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-side-panel',\r\n templateUrl: './side-panel.component.html',\r\n styleUrls: ['./side-panel.component.less']\r\n})\r\n\r\nexport class SidePanelComponent {\r\n @Input() title: string;\r\n @Input() icon: string;\r\n @Output() hideSidePanel = new EventEmitter();\r\n\r\n constructor() {\r\n }\r\n\r\n openSidePanel() {\r\n this.hideSidePanel.emit(true);\r\n }\r\n}\r\n","import { Component, ContentChild, ElementRef, HostBinding, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.less']\r\n})\r\nexport class ButtonComponent {\r\n @Input()\r\n iconOnly = true;\r\n\r\n @Input()\r\n intent = 'default';\r\n\r\n @Input()\r\n disabled = false;\r\n\r\n @Input()\r\n icon : string;\r\n\r\n @Input()\r\n iconClass : string;\r\n\r\n @Input()\r\n tooltip : string;\r\n\r\n @Input()\r\n className: string;\r\n\r\n @Input()\r\n toggle = false;\r\n\r\n showToolTip = false;\r\n\r\n iconButtonClass(){\r\n return this.iconOnly ? 'icon-button' : '';\r\n }\r\n\r\n onHovering() {\r\n if (!this.disabled) {\r\n this.className += ' active';\r\n }\r\n this.showToolTip = true;\r\n }\r\n\r\n onUnhovering() {\r\n if (!this.disabled) {\r\n this.className = this.className.replace(' active', '');\r\n }\r\n this.showToolTip = false;\r\n }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-logo',\r\n templateUrl: './logo.component.html',\r\n styleUrls: ['./logo.component.less']\r\n})\r\nexport class LogoComponent implements OnInit {\r\n\r\n @Input() logo;\r\n @Input() icon;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-tooltip',\r\n templateUrl: './tooltip.component.html',\r\n styleUrls: ['./tooltip.component.less']\r\n})\r\nexport class TooltipComponent implements OnInit {\r\n\r\n @Input() text:string;\r\n visibility = 'hidden';\r\n\r\n constructor() {\r\n }\r\n\r\n @Input()\r\n set show(value: boolean) {\r\n this.visibility = value ? 'shown' : 'hidden';\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {HttpHeaders} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\n\r\nexport class Api {\r\n public static VIEWER_APP = '/viewer';\r\n public static EDITOR_APP = '/editor';\r\n public static COMPARISON_APP = '/comparison';\r\n public static CONVERSION_APP = '/conversion';\r\n public static DEFAULT_API_ENDPOINT = window.location.href;\r\n public static LOAD_FILE_TREE = '/loadFileTree';\r\n public static LOAD_CONFIG = '/loadConfig';\r\n public static LOAD_DOCUMENT_DESCRIPTION = '/loadDocumentDescription';\r\n public static LOAD_DOCUMENT_PAGE = '/loadDocumentPage';\r\n public static ROTATE_DOCUMENT_PAGE = '/rotateDocumentPages';\r\n public static UPLOAD_DOCUMENTS = '/uploadDocument';\r\n public static DOWNLOAD_DOCUMENTS = '/downloadDocument';\r\n public static LOAD_PRINT = '/loadPrint';\r\n public static LOAD_PRINT_PDF = '/printPdf';\r\n public static LOAD_THUMBNAILS = '/loadThumbnails';\r\n public static LOAD_FORMATS = '/loadFormats';\r\n public static SAVE_FILE = '/saveFile';\r\n public static COMPARE_FILES = '/compare';\r\n public static CONVERT_FILE = '/convert';\r\n\r\n public static httpOptionsJson = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n };\r\n public static httpOptionsJsonResponseTypeBlob = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n }),\r\n responseType: 'blob' as 'blob'\r\n };\r\n}\r\n\r\n@Injectable()\r\nexport class ConfigService {\r\n\r\n private _apiEndpoint: string;\r\n\r\n constructor() {\r\n this.apiEndpoint = Api.DEFAULT_API_ENDPOINT;\r\n }\r\n\r\n set apiEndpoint(url: string) {\r\n this._apiEndpoint = url && url.trim().endsWith('/') ? url.substring(0, url.length - 1) : url;\r\n }\r\n\r\n getConfigEndpoint(app) {\r\n return (this.apiEndpoint.endsWith(app) ? this.apiEndpoint : this.apiEndpoint + app) + Api.LOAD_CONFIG;\r\n }\r\n\r\n getViewerApiEndpoint() {\r\n return this._apiEndpoint.endsWith(Api.VIEWER_APP) ? this._apiEndpoint : this._apiEndpoint + Api.VIEWER_APP;\r\n }\r\n\r\n getEditorApiEndpoint() {\r\n return this._apiEndpoint.trim().endsWith(Api.EDITOR_APP) ? this._apiEndpoint : this._apiEndpoint + Api.EDITOR_APP;\r\n }\r\n\r\n getComparisonApiEndpoint() {\r\n return this._apiEndpoint.trim().endsWith(Api.COMPARISON_APP) ? this._apiEndpoint : this._apiEndpoint + Api.COMPARISON_APP;\r\n }\r\n\r\n getConversionApiEndpoint() {\r\n return this._apiEndpoint.trim().endsWith(Api.CONVERSION_APP) ? this._apiEndpoint : this._apiEndpoint + Api.CONVERSION_APP;\r\n }\r\n\r\n get apiEndpoint() {\r\n return this._apiEndpoint;\r\n }\r\n}\r\n","export class CommonModals {\r\n static PasswordRequired = \"gd-password-required\";\r\n static ErrorMessage = \"gd-error-message\";\r\n static BrowseFiles = \"gd-browse-files\";\r\n static CreateDocument = \"gd-create-document\";\r\n static OperationSuccess = \"gd-success-modal\";\r\n}\r\n\r\nexport class ModalService {\r\n private modals: any[] = [];\r\n\r\n add(modal: any) {\r\n this.modals.push(modal);\r\n }\r\n\r\n remove(id: string) {\r\n this.modals = this.modals.filter(x => x.id !== id);\r\n }\r\n\r\n open(id: string) {\r\n const modal: any = this.modals.filter(x => x.id === id)[0];\r\n if (modal) {\r\n modal.open();\r\n }\r\n }\r\n\r\n close(id: string) {\r\n const modal: any = this.modals.filter(x => x.id === id)[0];\r\n if (modal) {\r\n modal.close();\r\n }\r\n }\r\n}\r\n","import {Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {ModalService} from \"../modal.service\";\r\n\r\n@Component({\r\n selector: 'gd-modal',\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.less']\r\n})\r\nexport class ModalComponent implements OnInit, OnDestroy {\r\n @Input() id: string;\r\n @Input() title: string;\r\n @Output() visible = new EventEmitter();\r\n visibility = false;\r\n private element: any;\r\n\r\n constructor(private modalService: ModalService, el: ElementRef) {\r\n this.element = el.nativeElement;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.id) {\r\n console.error('modal must have an id');\r\n return;\r\n }\r\n\r\n document.body.appendChild(this.element);\r\n\r\n this.modalService.add(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.modalService.remove(this.id);\r\n this.element.remove();\r\n }\r\n\r\n open(): void {\r\n this.visibility = true;\r\n this.visible.emit(true);\r\n }\r\n\r\n close(): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.visibility = false;\r\n this.visible.emit(false);\r\n }\r\n\r\n onClose($event: MouseEvent) {\r\n $event.stopPropagation();\r\n if ($event && $event.target && ($event.target).id === 'modalDialog') {\r\n this.close();\r\n }\r\n }\r\n}\r\n","export class PageModel {\r\n data: string;\r\n angle: number;\r\n width: number;\r\n height: number;\r\n number: number;\r\n editable: boolean;\r\n}\r\n\r\nexport class RotatedPage {\r\n pageNumber: number;\r\n angle: number;\r\n}\r\n\r\nexport class FileCredentials {\r\n guid: string;\r\n password: string;\r\n\r\n constructor(guid: string, password: string) {\r\n this.guid = guid;\r\n this.password = password;\r\n }\r\n}\r\n\r\nexport class SaveFile extends FileCredentials {\r\n content: string;\r\n\r\n constructor(guid: string, password: string, content: string) {\r\n super(guid, password);\r\n this.content = content;\r\n }\r\n}\r\n\r\nexport class FileDescription {\r\n guid: string;\r\n pages: PageModel[];\r\n printAllowed = true;\r\n}\r\n\r\nexport class FileModel {\r\n guid: string;\r\n name: string;\r\n directory: boolean;\r\n size: number;\r\n isDirectory: boolean;\r\n}\r\n\r\nexport class HttpError {\r\n static BadRequest = 400;\r\n static Unauthorized = 401;\r\n static Forbidden = 403;\r\n static NotFound = 404;\r\n static TimeOut = 408;\r\n static Conflict = 409;\r\n static InternalServerError = 500;\r\n}\r\n\r\nexport class FileUtil {\r\n public static map = {\r\n 'folder': {'format': '', 'icon': 'folder'},\r\n 'pdf': {'format': 'Portable Document Format', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'doc': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'docx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'docm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dot': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dotx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dotm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'xls': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xlsx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xlsm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xlsb': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xls2003': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xltx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xltm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'ppt': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'pptx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'pps': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'ppsx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'vsd': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vss': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vsx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vst': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vtx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vsdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vdw': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vstx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vssx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'mpp': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'mpt': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'msg': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'eml': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'emlx': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'one': {'format': 'Microsoft OneNote', 'icon': 'file-word', 'unit': 'pt'},\r\n 'odt': {'format': 'Open Document Text', 'icon': 'file-word', 'unit': 'pt'},\r\n 'ott': {'format': 'Open Document Text Template', 'icon': 'file-word', 'unit': 'pt'},\r\n 'ods': {'format': 'Open Document Spreadsheet', 'icon': 'file-excel', 'unit': 'px'},\r\n 'odp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'otp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'ots': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'potx': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'potm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'pptm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'ppsm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'rtf': {'format': 'Rich Text Format', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'txt': {'format': 'Plain Text File', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'csv': {'format': 'Comma-Separated Values', 'icon': 'file-excel', 'unit': 'px'},\r\n 'html': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'mht': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'mhtml': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'xml': {'format': 'Extensible Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'xps': {'format': 'XML Paper Specification', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dxf': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'dwg': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'bmp': {'format': 'Bitmap Picture', 'icon': 'file-image', 'unit': 'px'},\r\n 'gif': {'format': 'Graphics Interchange Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'jpg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'jpe': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'jpeg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'jfif': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'png': {'format': 'Portable Network Graphics', 'icon': 'file-image', 'unit': 'px'},\r\n 'tiff': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'tif': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'psd': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'svg': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'jp2': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'epub': {'format': 'Electronic Publication', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'ico': {'format': 'Windows Icon', 'icon': 'file-image', 'unit': 'px'},\r\n 'webp': {'format': 'Compressed Image', 'icon': 'file-image', 'unit': 'px'},\r\n 'mobi': {'format': 'Mobipocket eBook', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'tex': {'format': 'LaTeX Source Document', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'djvu': {'format': 'Multi-Layer Raster Image', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'unknown': {'format': 'This format is not supported', 'icon': 'file'},\r\n };\r\n\r\n public static find(filename: string, isDirectory: boolean) {\r\n if (filename && !isDirectory) {\r\n const strings = filename.split('.');\r\n const name = strings.pop().toLowerCase();\r\n if (typeof FileUtil.map[name] === \"undefined\") {\r\n return strings.length > 0 ? FileUtil.map['unknown'] : FileUtil.map['folder'];\r\n } else {\r\n return FileUtil.map[name];\r\n }\r\n } else {\r\n return FileUtil.map['folder'];\r\n }\r\n }\r\n}\r\n\r\nexport class FileService {\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\n\r\nexport class UploadFilesService {\r\n private _uploadsChange: Observable;\r\n private _observer: Observer;\r\n\r\n constructor() {\r\n this._uploadsChange = new Observable(observer =>\r\n this._observer = observer);\r\n }\r\n\r\n get uploadsChange(): Observable {\r\n return this._uploadsChange;\r\n }\r\n\r\n changeFilesList(filesList: FileList) {\r\n this._observer.next(filesList);\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {FileModel, FileUtil} from \"../file.service\";\r\nimport {UploadFilesService} from \"../upload-files.service\";\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\nconst upload_disc = 'Disc';\r\n\r\nconst upload_url = 'URL';\r\n\r\nconst uploads_choices = [{name: upload_disc, icon: 'hdd'}, {name: upload_url, icon: 'link'}];\r\n\r\n@Component({\r\n selector: 'gd-browse-files-modal',\r\n templateUrl: './browse-files-modal.component.html',\r\n styleUrls: ['./browse-files-modal.component.less']\r\n})\r\nexport class BrowseFilesModalComponent implements OnInit {\r\n uploads = uploads_choices;\r\n\r\n @Input() files;\r\n @Input() uploadConfig;\r\n @Output() selectedFileGuid = new EventEmitter();\r\n @Output() selectedDirectory = new EventEmitter();\r\n @Output() urlForUpload = new EventEmitter();\r\n @Output() closing = new EventEmitter();\r\n private selectedFile: FileModel;\r\n showUploadUrl = false;\r\n showUploadFile = false;\r\n\r\n constructor(private _uploadService: UploadFilesService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getSize(size: number) {\r\n const mb = size / 1024 / 1024;\r\n if (mb > 1) {\r\n return (Math.round(mb * 100) / 100) + ' MB';\r\n } else {\r\n const kb = size / 1024;\r\n if (kb > 1) {\r\n return (Math.round(kb * 100) / 100) + ' KB';\r\n }\r\n }\r\n return size + ' Bytes';\r\n }\r\n\r\n getFormatName(file: FileModel) {\r\n return FileUtil.find(file.name, file.directory).format;\r\n }\r\n\r\n getFormatIcon(file: FileModel) {\r\n return FileUtil.find(file.name, file.directory).icon;\r\n }\r\n\r\n choose(file: FileModel) {\r\n this.selectedFile = file;\r\n if (file.directory || file.isDirectory) {\r\n this.selectedDirectory.emit(file.name);\r\n } else {\r\n this.selectedFileGuid.emit(file.guid);\r\n }\r\n }\r\n\r\n goUp() {\r\n if (this.selectedFile) {\r\n let guid = this.selectedFile.guid;\r\n if (guid.length > 0 && guid.indexOf('/') === -1) {\r\n guid = '';\r\n } else {\r\n guid = guid.replace(/\\/[^\\/]+\\/?$/, '');\r\n }\r\n this.selectedDirectory.emit(guid);\r\n }\r\n }\r\n\r\n selectUpload($event: string) {\r\n if (upload_url === $event) {\r\n this.showUploadUrl = true;\r\n } else {\r\n this.showUploadUrl = false;\r\n $(\"#gd-upload-input\").trigger('click');\r\n }\r\n }\r\n\r\n refresh($event) {\r\n\r\n if ($event) {\r\n this.files = null;\r\n this.selectedDirectory.emit('');\r\n this.showUploadUrl = false;\r\n this.selectedFile = null;\r\n } else {\r\n this.closing.emit(true);\r\n }\r\n }\r\n\r\n showSpinner() {\r\n return !this.files;\r\n }\r\n\r\n uploadUrl(url: string) {\r\n if (url) {\r\n this.urlForUpload.emit(url);\r\n this.cleanUpload();\r\n }\r\n }\r\n\r\n handleFileInput(files: FileList) {\r\n this._uploadService.changeFilesList(files);\r\n }\r\n\r\n cleanUpload() {\r\n this.showUploadFile = false;\r\n this.showUploadUrl = false;\r\n }\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class ZoomService {\r\n private _observer: Subject = new Subject();\r\n private readonly _zoomChange: Observable = this._observer.asObservable();\r\n private _zoom: number;\r\n\r\n constructor() {\r\n }\r\n\r\n get zoom(): number {\r\n return this._zoom;\r\n }\r\n\r\n get zoomChange(): Observable {\r\n return this._zoomChange;\r\n }\r\n\r\n changeZoom(zoom: number) {\r\n this._zoom = zoom;\r\n this._observer.next(zoom);\r\n }\r\n\r\n private createZoomOption(val: any, name: string, sep: boolean = false) {\r\n return {value: val, name: name, separator: sep}\r\n }\r\n\r\n zoomOptions(width, height) {\r\n return [this.createZoomOption(25, '25%'),\r\n this.createZoomOption(50, '50%'),\r\n this.createZoomOption(100,'100%'),\r\n this.createZoomOption(150, '150%'),\r\n this.createZoomOption(200, '200%'),\r\n this.createZoomOption(300, '300%'),\r\n this.createZoomOption(0, '', true),\r\n this.createZoomOption(width, 'Fit Width'),\r\n this.createZoomOption(height, 'Fit Height')];\r\n }\r\n}\r\n","import {fromEvent, Observable, Subject} from \"rxjs\";\r\nimport {debounceTime, distinctUntilChanged, startWith, tap} from \"rxjs/operators\";\r\n\r\nconst MOBILE_MAX_WIDTH = 425;\r\nconst TABLET_MAX_WIDTH = 1024;\r\n\r\nexport class WindowService {\r\n\r\n private resizeSubject: Subject = new Subject();\r\n private _resize$;\r\n private width: number;\r\n private height: number;\r\n\r\n constructor() {\r\n this.width = window.innerWidth;\r\n this.height = window.innerHeight;\r\n\r\n this._resize$ = fromEvent(window, 'resize')\r\n .pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n startWith({target: {innerWidth: window.innerWidth, innerHeight: window.innerHeight}}),\r\n tap(event => {\r\n this.resizeSubject.next(event.target);\r\n this.width = (event.target as Window).innerWidth;\r\n this.height = (event.target as Window).innerHeight;\r\n }),\r\n );\r\n this._resize$.subscribe();\r\n }\r\n\r\n get onResize(): Observable {\r\n return this.resizeSubject.asObservable();\r\n }\r\n\r\n isMobile() {\r\n return this.width <= MOBILE_MAX_WIDTH;\r\n }\r\n\r\n isTablet() {\r\n return this.width <= TABLET_MAX_WIDTH;\r\n }\r\n\r\n isDesktop() {\r\n return !this.isMobile() && !this.isTablet();\r\n }\r\n\r\n isEdge() {\r\n return window.navigator.userAgent.toLowerCase().indexOf('edge') > -1;\r\n }\r\n\r\n isFirefox() {\r\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\r\n }\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class RotationService {\r\n private _observerRotationAngle: Subject = new Subject();\r\n private readonly _rotationAngleChange: Observable = this._observerRotationAngle.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get rotationAngleChange(): Observable {\r\n return this._rotationAngleChange;\r\n }\r\n\r\n setRotationAngle(angle: number) {\r\n this._observerRotationAngle.next(angle);\r\n }\r\n}\r\n","import {\r\n AfterViewChecked,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n AfterViewInit,\r\n OnChanges} from '@angular/core';\r\nimport {FileDescription, FileUtil} from \"../file.service\";\r\nimport {ZoomService} from \"../zoom.service\";\r\nimport * as jquery from 'jquery';\r\nconst $ = jquery;\r\nimport * as Hammer from 'hammerjs';\r\nimport { WindowService } from '../window.service';\r\nimport { RotationService } from '../rotation.service';\r\n\r\n@Component({\r\n selector: 'gd-document',\r\n templateUrl: './document.component.html',\r\n styleUrls: ['./document.component.less']\r\n})\r\nexport class DocumentComponent implements OnInit, AfterViewChecked, AfterViewInit, OnChanges {\r\n\r\n @Input() mode: boolean;\r\n @Input() preloadPageCount: number;\r\n @Input() file: FileDescription;\r\n wait = false;\r\n zoom: number;\r\n\r\n docWidth = null;\r\n docHeight = null;\r\n viewportWidth = null;\r\n viewportHeight = null;\r\n scale = null;\r\n lastScale = null;\r\n container = null;\r\n doc = null;\r\n x = 0;\r\n lastX = 0;\r\n y = 0;\r\n lastY = 0;\r\n pinchCenter = null;\r\n pinchCenterOffset = null;\r\n curWidth = 0;\r\n curHeight = 0;\r\n isDesktop: boolean;\r\n initialRotation: any;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _zoomService: ZoomService,\r\n private _windowService: WindowService,\r\n private _rotationServcie: RotationService) {\r\n\r\n _zoomService.zoomChange.subscribe((val: number) => {\r\n this.zoom = val;\r\n });\r\n\r\n this.isDesktop = _windowService.isDesktop();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges() {\r\n const panzoom = this._elementRef.nativeElement.children.item(0).children.item(0);\r\n (panzoom as any).style.transform = '';\r\n // TODO: this intersects with zooming by zoom directive, but still needed\r\n // for flush previous settings before opening another file\r\n //this._zoomService.changeZoom(100);\r\n //this.scale = 1;\r\n }\r\n \r\n ngAfterViewInit() {\r\n // For current iteration we take .panzoom as a document\r\n this.doc = this._elementRef.nativeElement.children.item(0).children.item(0);\r\n // For current iteration we take .gd-document as a container\r\n this.container = this._elementRef.nativeElement;\r\n\r\n this.docWidth = this.doc.clientWidth;\r\n this.docHeight = this.doc.clientHeight;\r\n this.viewportWidth = this.doc.offsetWidth;\r\n\r\n // For cases where we already have zoom defined we should include it\r\n this.scale = (this.viewportWidth/this.docWidth) * this._zoomService.zoom/100;\r\n \r\n this.lastScale = this.scale;\r\n this.viewportHeight = this.container.offsetHeight;\r\n this.curWidth = this.docWidth*this.scale;\r\n this.curHeight = this.docHeight*this.scale;\r\n\r\n const hammer = new Hammer(this.container);\r\n }\r\n\r\n // TODO: this temporary crutch for Excel files should be documented\r\n ifExcel() {\r\n return FileUtil.find(this.file.guid, false).format === \"Microsoft Excel\";\r\n }\r\n\r\n getDimensionWithUnit(value: number) {\r\n return value + FileUtil.find(this.file.guid, false).unit;\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n const elementNodeListOf = this._elementRef.nativeElement.querySelectorAll('.gd-wrapper');\r\n const element = elementNodeListOf.item(0);\r\n if (element) {\r\n $(element).trigger('focus');\r\n }\r\n }\r\n\r\n absolutePosition(el) {\r\n let x = 0, y = 0;\r\n\r\n while (el !== null) {\r\n x += el.offsetLeft;\r\n y += el.offsetTop;\r\n el = el.offsetParent;\r\n }\r\n\r\n return { x: x, y: y };\r\n };\r\n\r\n restrictRawPos(pos, viewportDim, docDim) {\r\n if (pos < viewportDim/this.scale - docDim) { // too far left/up?\r\n pos = viewportDim/this.scale - docDim;\r\n } else if (pos > 0) { // too far right/down?\r\n pos = 0;\r\n }\r\n return pos;\r\n };\r\n\r\n updateLastPos() {\r\n this.lastX = this.x;\r\n this.lastY = this.y;\r\n };\r\n\r\n translate(deltaX, deltaY) {\r\n // We restrict to the min of the viewport width/height or current width/height as the\r\n // current width/height may be smaller than the viewport width/height\r\n const newX = this.restrictRawPos(this.lastX + deltaX/this.scale,\r\n Math.min(this.viewportWidth, this.curWidth), this.docWidth);\r\n this.x = newX;\r\n // TODO: value here and in the similar line below changes to positive to take any effect\r\n this.container.scrollLeft = -Math.ceil(newX*this.scale);\r\n\r\n const newY = this.restrictRawPos(this.lastY + deltaY/this.scale,\r\n Math.min(this.viewportHeight, this.curHeight), this.docHeight);\r\n this.y = newY;\r\n this.container.scrollTop = -Math.ceil(newY*this.scale);\r\n \r\n this.doc.style.transform = 'scale(' + this.scale + ')';\r\n };\r\n\r\n startZoom(scaleBy) {\r\n this.scale = this.lastScale*scaleBy;\r\n\r\n this.curWidth = this.docWidth*this.scale;\r\n this.curHeight = this.docHeight*this.scale;\r\n\r\n // Adjust margins to make sure that we aren't out of bounds\r\n this.translate(0, 0);\r\n };\r\n\r\n rawCenter($event) {\r\n const pos = this.absolutePosition(this.container);\r\n\r\n // We need to account for the scroll position\r\n const scrollLeft = window.pageXOffset ? window.pageXOffset : document.body.scrollLeft;\r\n const scrollTop = window.pageYOffset ? window.pageYOffset : document.body.scrollTop;\r\n\r\n const zoomX = -this.x + ($event.center.x - pos.x + scrollLeft)/this.scale;\r\n const zoomY = -this.y + ($event.center.y - pos.y + scrollTop)/this.scale;\r\n\r\n return { x: zoomX, y: zoomY };\r\n };\r\n\r\n updateLastScale() {\r\n this.lastScale = this.scale;\r\n };\r\n\r\n zoomAround(scaleBy, rawZoomX, rawZoomY, doNotUpdateLast) {\r\n // Zoom\r\n this.startZoom(scaleBy);\r\n\r\n // New raw center of viewport\r\n const rawCenterX = -this.x + Math.min(this.viewportWidth, this.curWidth)/2/this.scale;\r\n const rawCenterY = -this.y + Math.min(this.viewportHeight, this.curHeight)/2/this.scale;\r\n\r\n // Delta\r\n const deltaX = (rawCenterX - rawZoomX)*this.scale;\r\n const deltaY = (rawCenterY - rawZoomY)*this.scale;\r\n\r\n // Translate back to zoom center\r\n this.translate(deltaX, deltaY);\r\n\r\n if (!doNotUpdateLast) {\r\n this.updateLastScale();\r\n this.updateLastPos();\r\n }\r\n };\r\n\r\n onPinch($event){\r\n console.log(\"pinch\");\r\n if (this.pinchCenter === null) {\r\n this.pinchCenter = this.rawCenter($event);\r\n const offsetX = this.pinchCenter.x*this.scale - (-this.x*this.scale + Math.min(this.viewportWidth, this.curWidth)/2);\r\n const offsetY = this.pinchCenter.y*this.scale - (-this.y*this.scale + Math.min(this.viewportHeight, this.curHeight)/2);\r\n this.pinchCenterOffset = { x: offsetX, y: offsetY };\r\n }\r\n\r\n const newScale = this.scale*$event.scale;\r\n\r\n const zoomX = this.pinchCenter.x*newScale - this.pinchCenterOffset.x;\r\n const zoomY = this.pinchCenter.y*newScale - this.pinchCenterOffset.y;\r\n const zoomCenter = { x: zoomX/newScale, y: zoomY/newScale };\r\n \r\n this.zoomAround($event.scale, zoomCenter.x, zoomCenter.y, true);\r\n }\r\n\r\n onPinchEnd($event){\r\n console.log(\"pinchEnd\");\r\n this.updateLastScale();\r\n this.updateLastPos();\r\n this.pinchCenter = null;\r\n }\r\n\r\n onPan($event){\r\n // TODO: looks like native pan works better\r\n // if (!this.isDesktop) {\r\n // this.translate($event.deltaX, $event.deltaY);\r\n // }\r\n }\r\n\r\n onPanEnd($event){\r\n // if (!this.isDesktop) {\r\n // this.updateLastPos();\r\n // }\r\n }\r\n\r\n onDoubleTap($event){\r\n if (!this.isDesktop) {\r\n if ($event.tapCount === 2) {\r\n const c = this.rawCenter($event);\r\n this.zoomAround(2, c.x, c.y, false);\r\n }\r\n }\r\n }\r\n\r\n onRotateStart($event){\r\n this.initialRotation = $event.rotation;\r\n console.log(\"rotateStart: \" + $event.rotation + ' ' + $event.angle);\r\n }\r\n\r\n onRotateEnd($event){\r\n console.log(\"rotateEnd: \" + $event.rotation + ' ' + $event.angle);\r\n if ($event.rotation > 0 && this.initialRotation > 0) {\r\n if ($event.rotation > this.initialRotation && ($event.rotation - this.initialRotation > 45)) {\r\n this._rotationServcie.setRotationAngle(90);\r\n }\r\n else if ($event.rotation < this.initialRotation && (this.initialRotation - $event.rotation > 45)) {\r\n this._rotationServcie.setRotationAngle(-90);\r\n }\r\n }\r\n // case with negative values\r\n else {\r\n if (this.initialRotation > $event.rotation && ($event.rotation - this.initialRotation > 45)) {\r\n this._rotationServcie.setRotationAngle(-90);\r\n }\r\n else if (this.initialRotation < $event.rotation && (this.initialRotation - $event.rotation > 45)) {\r\n this._rotationServcie.setRotationAngle(90);\r\n }\r\n }\r\n }\r\n}\r\n","import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-page',\r\n templateUrl: './page.component.html',\r\n styleUrls: ['./page.component.less']\r\n})\r\nexport class PageComponent implements OnInit, OnChanges {\r\n\r\n @Input() angle: number;\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() number: number;\r\n @Input() data: string;\r\n @Input() isHtml: boolean;\r\n @Input() editable: boolean;\r\n imgData: string;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n if(isIE && this.number === 0){\r\n this.editable = false;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // TODO: this is temporary needed to remove unneeded spaces and BOM symbol \r\n // which leads to undesired spaces on the top of the docs pages\r\n this.data = this.data !== null ? this.data.replace(/>\\s+<').replace(/\\uFEFF/g,\"\") : null;\r\n const dataImagePngBase64 = 'data:image/png;base64,';\r\n this.imgData = dataImagePngBase64;\r\n if (!this.isHtml) {\r\n this.imgData += this.data;\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\r\n\r\n@Pipe({name: 'safeHtml'})\r\nexport class SanitizeHtmlPipe implements PipeTransform{\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n}\r\n\r\n@Pipe({name: 'safeResourceHtml'})\r\nexport class SanitizeResourceHtmlPipe implements PipeTransform{\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(html);\r\n }\r\n}\r\n\r\n@Pipe({name: 'safeStyle'})\r\nexport class SanitizeStylePipe implements PipeTransform{\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustStyle(html);\r\n }\r\n}\r\n\r\n@Pipe({name: 'highlight'})\r\nexport class HighlightSearchPipe implements PipeTransform {\r\n\r\n transform(value: string, args: string): any {\r\n if (!args) {\r\n return value;\r\n }\r\n const re = new RegExp(args, 'gi'); //'gi' for case insensitive and can use 'g' if you want the search to be case sensitive.\r\n return value.replace(re, \"$&\");\r\n }\r\n}\r\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\r\nimport {UploadFilesService} from \"../upload-files.service\";\r\n\r\n@Component({\r\n selector: 'gd-upload-file-zone',\r\n templateUrl: './upload-file-zone.component.html',\r\n styleUrls: ['./upload-file-zone.component.less']\r\n})\r\nexport class UploadFileZoneComponent implements OnInit {\r\n\r\n @Output() closeUpload = new EventEmitter();\r\n\r\n constructor(private _uploadService: UploadFilesService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n handleFileInput(files: FileList) {\r\n this._uploadService.changeFilesList(files);\r\n this.onCloseUpload();\r\n }\r\n\r\n onCloseUpload() {\r\n this.closeUpload.emit(true);\r\n }\r\n\r\n close($event) {\r\n if ($event.target.id === 'gd-dropZone') {\r\n this.onCloseUpload();\r\n }\r\n }\r\n}\r\n","import {Directive, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\r\nimport {UploadFilesService} from \"./upload-files.service\";\r\n\r\n@Directive({\r\n selector: '[gdDnd]'\r\n})\r\nexport class DndDirective {\r\n\r\n @Output() closing = new EventEmitter();\r\n @Output() opening = new EventEmitter();\r\n @Output() dropped = new EventEmitter();\r\n\r\n @HostBinding('class.active') active = false;\r\n\r\n constructor(private _uploadFilesService: UploadFilesService) {\r\n }\r\n\r\n @HostListener('dragover', ['$event'])\r\n public onDragOver(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = true;\r\n this.opening.emit(true);\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n public onDragLeave(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = false;\r\n this.closeArea();\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n public onDrop(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n const files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.active = false;\r\n this.dropped.emit(true);\r\n this._uploadFilesService.changeFilesList(files);\r\n this.closeArea();\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public onClick(event) {\r\n this.closeArea();\r\n }\r\n\r\n private closeArea() {\r\n this.closing.emit(true);\r\n this.opening.emit(false);\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\n\r\nexport class PagePreloadService {\r\n private readonly _checkPreload: Observable;\r\n private _observer: Observer;\r\n\r\n constructor() {\r\n this._checkPreload = new Observable(observer =>\r\n this._observer = observer);\r\n }\r\n\r\n get checkPreload(): Observable {\r\n return this._checkPreload;\r\n }\r\n\r\n changeLastPageInView(page: number) {\r\n if(this._observer) {\r\n this._observer.next(page);\r\n }\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\nimport {PagePreloadService} from \"./page-preload.service\";\r\nimport {Injectable} from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigateService {\r\n private _currentPage = 0;\r\n private _countPages = 0;\r\n private readonly _navigate: Observable;\r\n private _observer: Observer;\r\n\r\n constructor(private _pagePreloadService: PagePreloadService) {\r\n this._navigate = new Observable(observer =>\r\n this._observer = observer);\r\n }\r\n\r\n get navigate(): Observable {\r\n return this._navigate;\r\n }\r\n\r\n get countPages(): number {\r\n return this._countPages;\r\n }\r\n\r\n set countPages(value: number) {\r\n this._countPages = value;\r\n }\r\n\r\n get currentPage(): number {\r\n return this._currentPage;\r\n }\r\n\r\n set currentPage(value: number) {\r\n this._currentPage = value;\r\n }\r\n\r\n nextPage() {\r\n if (this._currentPage < this._countPages) {\r\n this._currentPage++;\r\n this.navigateTo(this._currentPage);\r\n }\r\n }\r\n\r\n prevPage() {\r\n if (this._currentPage > 1) {\r\n this._currentPage--;\r\n this.navigateTo(this._currentPage);\r\n }\r\n }\r\n\r\n toLastPage() {\r\n this._currentPage = this._countPages;\r\n this.navigateTo(this._currentPage);\r\n }\r\n\r\n toFirstPage() {\r\n this._currentPage = 1;\r\n this.navigateTo(this._currentPage);\r\n }\r\n\r\n navigateTo(page: number) {\r\n this.currentPage = page;\r\n this._pagePreloadService.changeLastPageInView(page);\r\n this._observer.next(page);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ViewportService {\r\n\r\n constructor() {\r\n }\r\n\r\n checkInViewport(el, zoom: number = 100, leftOffset: number = 0, deltaX: number = 0.5) {\r\n if (!el) {\r\n return false;\r\n }\r\n const x = deltaX;\r\n const y = 0.5;\r\n\r\n const win = $(window);\r\n\r\n const viewport = {\r\n top: win.scrollTop(),\r\n left: win.scrollLeft() + leftOffset,\r\n right: win.scrollLeft() + win.width() - 10,\r\n bottom: win.scrollTop() + win.height()\r\n };\r\n\r\n\r\n if (isNaN(zoom)) {\r\n zoom = 100;\r\n }\r\n\r\n const zoomN = zoom / 100;\r\n const height = $(el).outerHeight() * (zoomN);\r\n const width = $(el).outerWidth() * (zoomN);\r\n\r\n if (!width || !height) {\r\n return false;\r\n }\r\n\r\n const bounds = $(el).offset();\r\n const right = (bounds.left * (zoomN)) + width;\r\n const bottom = (bounds.top * (zoomN)) + height;\r\n\r\n const visible = (!(viewport.right < (bounds.left * (zoomN)) || viewport.left > right || viewport.bottom < (bounds.top * (zoomN)) || viewport.top > bottom));\r\n\r\n if (!visible) {\r\n return false;\r\n }\r\n\r\n const deltas = {\r\n top: parseFloat(Math.min(1, (bottom - viewport.top) / height).toFixed(2)),\r\n bottom: parseFloat(Math.min(1, (viewport.bottom - (bounds.top * (zoomN))) / height).toFixed(2)),\r\n left: parseFloat(Math.min(1, (right - viewport.left) / width).toFixed(2)),\r\n right: parseFloat(Math.min(1, (viewport.right - (bounds.left * (zoomN))) / width).toFixed(2))\r\n };\r\n\r\n return (deltas.left * deltas.right) >= x && (deltas.top * deltas.bottom) >= y;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport {NavigateService} from \"./navigate.service\";\r\nimport {PagePreloadService} from \"./page-preload.service\";\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport {WindowService} from \"./window.service\";\r\nimport {ViewportService} from \"./viewport.service\";\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\n@Directive({\r\n selector: '[gdScrollable]'\r\n})\r\nexport class ScrollableDirective implements AfterViewInit, OnChanges, OnInit {\r\n\r\n private currentPage: number;\r\n private zoom = 100;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _navigateService: NavigateService,\r\n private _pagePreloadService: PagePreloadService,\r\n private _zoomService: ZoomService,\r\n private _windowService: WindowService,\r\n private _viewportService: ViewportService) {\r\n\r\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\r\n _zoomService.zoomChange.subscribe((val: number) => {\r\n this.zoom = val ? val : this.zoom;\r\n this.refresh();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\r\n this._navigateService.navigate.subscribe((value => {\r\n this.currentPage = value;\r\n this.scrollToPage(value);\r\n }));\r\n this.refresh();\r\n }\r\n\r\n @HostListener('scroll') scrolling() {\r\n this.refresh();\r\n }\r\n\r\n @HostListener('window:resize') resizing() {\r\n this.refresh();\r\n }\r\n\r\n scrollToPage(pageNumber: number) {\r\n const el = this._elementRef.nativeElement;\r\n const page = this.getPage(pageNumber);\r\n const prev = pageNumber > 0 ? this.getPage(pageNumber - 1) : null;\r\n const isSameTop = (prev && $(prev).offset().top === $(page).offset().top);\r\n if (this._viewportService.checkInViewport(page, this.zoom) && isSameTop) {\r\n return;\r\n }\r\n const pagesHeight = this.calculateOffset(pageNumber);\r\n const options = {\r\n left: 0,\r\n top: pagesHeight\r\n };\r\n if(el){\r\n // using polyfill\r\n el.scroll(options);\r\n }\r\n }\r\n\r\n private getChildren() {\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n // here and in the similar line below we getting the document pages\r\n return el.children.item(0).children.item(0).children;\r\n }\r\n }\r\n\r\n private getPage(pageNumber: number) {\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n return el.children.item(0).children.item(0).children.item(pageNumber - 1);\r\n }\r\n }\r\n\r\n private calculateOffset(pageNumber: number) {\r\n const count = this._windowService.isFirefox() ? 1 : this.countPagesOnWidth();\r\n const margin = this._windowService.isDesktop() ? 40 : 10;\r\n let pagesHeight = 0;\r\n for (let i = 1; i < pageNumber / count; i++) {\r\n const item = this.getPage(i);\r\n const clientHeight = item ? item.clientHeight : 0;\r\n pagesHeight += clientHeight > 0 ? clientHeight * this.getZoom() + margin : 0;\r\n }\r\n return pagesHeight;\r\n }\r\n\r\n private countPagesOnWidth() {\r\n const pageEl = this.getPage(1);\r\n const offset = 150;\r\n const count = Math.floor((this.getWidth() - offset) / (pageEl.getBoundingClientRect().width * this.getZoom()));\r\n return count === 0 ? 1 : count;\r\n }\r\n\r\n refresh() {\r\n let page;\r\n let currentPageSet = false;\r\n const pageElem = this.getPage(this.currentPage);\r\n const currentPageRect = this.currentPage && pageElem ? pageElem.getBoundingClientRect() : null;\r\n for (page = 1; page < this.getChildren().length + 1; page++) {\r\n const element = this.getPage(page);\r\n if (this._viewportService.checkInViewport(element, this.zoom)) {\r\n if (!currentPageSet) {\r\n if (!this.currentPage || !pageElem || (this.currentPage && currentPageRect && element.getBoundingClientRect().top !== currentPageRect.top)) {\r\n this.currentPage = page;\r\n this._navigateService.currentPage = page;\r\n }\r\n currentPageSet = true;\r\n }\r\n this._pagePreloadService.changeLastPageInView(page);\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.refresh();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\r\n }\r\n\r\n\r\n private getWidth() {\r\n return this._elementRef ? this._elementRef.nativeElement.offsetWidth : window.innerWidth;\r\n }\r\n\r\n private getZoom() {\r\n return this.zoom / 100;\r\n }\r\n}\r\n","import {AfterViewInit, Directive, HostBinding, Input, OnDestroy, OnInit, ElementRef, OnChanges} from '@angular/core';\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport {FileUtil} from \"./file.service\";\r\nimport { WindowService } from './window.service';\r\n\r\n@Directive({\r\n selector: '[gdZoom]'\r\n})\r\nexport class ZoomDirective implements OnInit, OnDestroy, AfterViewInit, OnChanges {\r\n\r\n @Input() zoomActive = true;\r\n @Input() file;\r\n\r\n @HostBinding('style.zoom') zoomInt: number;\r\n @HostBinding('style.transform') transform: string;\r\n @HostBinding('style.transform-origin') transformOrigin: string;\r\n @HostBinding('style.width') width: string;\r\n @HostBinding('style.min-width') minWidth: string;\r\n el: ElementRef;\r\n\r\n constructor(private _zoomService: ZoomService, private _windowService: WindowService, el: ElementRef) {\r\n this.el = el;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.setStyles(this._zoomService.zoom);\r\n this.resizePages(this._zoomService.zoom);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (! this.zoomActive) {\r\n return;\r\n }\r\n\r\n this.setStyles(this._zoomService.zoom);\r\n this._zoomService.zoomChange.subscribe((zoom) => {\r\n this.setStyles(zoom);\r\n this.resizePages(zoom);\r\n });\r\n }\r\n\r\n private setStyles(zoom) {\r\n if (! this.zoomActive) {\r\n return;\r\n }\r\n\r\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\r\n \r\n if (this._windowService.isEdge()) {\r\n this.zoomInt = zoomInt;\r\n }\r\n else {\r\n this.zoomInt = null;\r\n }\r\n \r\n if (!this._windowService.isEdge()) {\r\n this.transform = 'scale(' + zoomInt + ')';\r\n this.transformOrigin = 'top left';\r\n }\r\n else {\r\n this.transform = \"\";\r\n this.transformOrigin = \"\";\r\n }\r\n\r\n let maxWidth = 0;\r\n this.file.pages.forEach(page => {\r\n {\r\n if (page.width > maxWidth){\r\n maxWidth = page.width;\r\n }\r\n }\r\n });\r\n\r\n // Images and Excel-related files receiving dimensions in px from server\r\n this.minWidth = maxWidth + FileUtil.find(this.file.guid, false).unit;\r\n }\r\n\r\n private getScrollWidth(elm){\r\n return elm.offsetWidth - elm.clientWidth;\r\n }\r\n\r\n private resizePages(zoom){\r\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\r\n\r\n const viewPortWidth = this.el.nativeElement.parentElement.offsetWidth;\r\n const scrollWidth = this.getScrollWidth(this.el.nativeElement.parentElement);\r\n this.width = (viewPortWidth/zoomInt - scrollWidth/zoomInt) + 'px';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setStyles(this._zoomService.zoom);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OnCloseService {\r\n private _observer: Subject = new Subject();\r\n private readonly _onClose: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get onClose() {\r\n return this._onClose;\r\n }\r\n\r\n close(close: boolean) {\r\n this._observer.next(close)\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {OnCloseService} from \"../on-close.service\";\r\n\r\nexport interface Option {\r\n name: string;\r\n value: any;\r\n separator: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'gd-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.less']\r\n})\r\nexport class SelectComponent {\r\n\r\n @Input() options: Option[];\r\n @Input() disabled = false;\r\n @Input() showSelected: Option;\r\n @Output() selected: EventEmitter = new EventEmitter();\r\n isOpen = false;\r\n\r\n constructor(private _onCloseService: OnCloseService) {\r\n _onCloseService.onClose.subscribe(() => {\r\n this.close();\r\n });\r\n }\r\n\r\n open() {\r\n if (!this.disabled) {\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n close() {\r\n this.isOpen = false;\r\n }\r\n\r\n onClickOutside(event : Event){\r\n this.close();\r\n }\r\n\r\n toggle($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n if (!this.disabled) {\r\n this.isOpen = !this.isOpen;\r\n }\r\n }\r\n\r\n select($event, value: Option) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.selected.emit(value);\r\n this.close();\r\n }\r\n\r\n}\r\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[gdDisabledCursor]'\r\n})\r\nexport class DisabledCursorDirective implements OnInit, OnChanges {\r\n\r\n @Input() dis: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n @HostBinding('class.inactive') cursor: boolean;\r\n\r\n private updateCursor() {\r\n this.cursor = this.dis ? true : false;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateCursor();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.updateCursor()\r\n }\r\n}\r\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[gdRotation]'\r\n})\r\nexport class RotationDirective implements OnInit, OnChanges {\r\n\r\n @Input() angle: number;\r\n @Input() isHtmlMode: boolean;\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() withMargin = true;\r\n\r\n @HostBinding('style.animation') animation: string;\r\n @HostBinding('style.transition-property') transition: string;\r\n @HostBinding('style.transform') transform: string;\r\n\r\n @HostBinding('style.margin') margin: string;\r\n\r\n constructor() {\r\n }\r\n\r\n private updateCursor() {\r\n if (typeof this.angle === \"string\"){\r\n this.angle = parseInt(this.angle, 10);\r\n }\r\n\r\n if (this.angle) {\r\n this.animation = 'none';\r\n this.transition = 'none';\r\n this.transform = 'rotate(' + this.angle + 'deg)';\r\n } else if (this.angle === 0 && this.animation) {\r\n this.animation = null;\r\n this.transition = null;\r\n this.transform = null;\r\n }\r\n\r\n if (this.withMargin) {\r\n if (this.angle === 90 || this.angle === 270 || this.angle === -90 || this.angle === -270) {\r\n if (this.isHtmlMode) {\r\n if (this.isLandscape()) {\r\n this.margin = '164px 254px';\r\n } else {\r\n this.margin = '-111px 254px';\r\n }\r\n } else {\r\n if (this.isLandscape()) {\r\n this.margin = '129px 100px -79px';\r\n } else {\r\n this.margin = '-72px 100px -79px';\r\n }\r\n }\r\n } else if (this.angle === -180 || this.angle === 180) {\r\n this.margin = '280px';\r\n } else {\r\n this.margin = null;\r\n }\r\n }\r\n\r\n }\r\n\r\n isLandscape() {\r\n return this.width > this.height;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateCursor();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.updateCursor()\r\n }\r\n\r\n}\r\n","import {Component, Input, Output, EventEmitter, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-init-state',\r\n templateUrl: './init-state.component.html',\r\n styleUrls: ['./init-state.component.less']\r\n})\r\nexport class InitStateComponent implements OnInit {\r\n @Input() icon: string;\r\n @Input() text: string;\r\n @Output() fileDropped = new EventEmitter();\r\n showUploadFile = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n dropped($event) {\r\n if ($event) {\r\n this.fileDropped.emit($event);\r\n this.showUploadFile = false;\r\n }\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\nimport {PageModel} from \"./file.service\";\r\n\r\nexport class RenderPrintService {\r\n private _render: Observable;\r\n private _observer: Observer;\r\n private _renderBlob: Observable;\r\n private _observerBlob: Observer;\r\n\r\n constructor() {\r\n this._render = new Observable(observer =>\r\n this._observer = observer);\r\n this._renderBlob = new Observable(observer =>\r\n this._observerBlob = observer);\r\n }\r\n\r\n get renderPrint(): Observable {\r\n return this._render;\r\n }\r\n\r\n changePages(pages: PageModel[]) {\r\n this._observer.next(pages);\r\n }\r\n\r\n get renderPrintBlob(): Observable {\r\n return this._renderBlob;\r\n }\r\n\r\n changeBlob(file: Blob) {\r\n this._observerBlob.next(file);\r\n }\r\n}\r\n","import {Directive, Input} from '@angular/core';\r\nimport {PageModel} from \"./file.service\";\r\nimport {RenderPrintService} from \"./render-print.service\";\r\n\r\n@Directive({\r\n selector: '[gdRenderPrint]'\r\n})\r\nexport class RenderPrintDirective {\r\n @Input() htmlMode: boolean;\r\n\r\n constructor(private _renderService: RenderPrintService) {\r\n _renderService.renderPrint.subscribe(pages => {\r\n this.renderPrint(pages);\r\n });\r\n _renderService.renderPrintBlob.subscribe(file => {\r\n this.renderPrintBlob(file);\r\n });\r\n }\r\n\r\n private renderPrint(pages: PageModel[]) {\r\n let pagesHtml = '';\r\n if (this.htmlMode) {\r\n for (const page of pages) {\r\n pagesHtml += '
' +\r\n '
' + page.data + '
' +\r\n '
';\r\n }\r\n } else {\r\n for (const page of pages) {\r\n pagesHtml += '
' +\r\n '
' +\r\n '
';\r\n }\r\n }\r\n this.openWindow(pagesHtml, pages[0].width, pages[0].height);\r\n }\r\n\r\n private openWindow(pagesHtml, width, height) {\r\n const a4Height = 842;\r\n const a4Width = 595;\r\n let imageA4Adjusted = '';\r\n if(width > a4Width && height > a4Height){\r\n const zoom = Math.round(height / a4Height) / 100;\r\n imageA4Adjusted = '.gd-page img { width: 100%; margin: 0; padding: 0;}';\r\n if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1){\r\n imageA4Adjusted = '.gd-page img { transform: scale(' + zoom + ');}';\r\n }\r\n }\r\n let cssPrint = '';\r\n\r\n const windowObject = window.open('', \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\r\n windowObject.focus();\r\n windowObject.document.writeln(cssPrint);\r\n windowObject.document.writeln(pagesHtml);\r\n windowObject.document.close();\r\n windowObject.focus();\r\n windowObject.print();\r\n windowObject.close();\r\n }\r\n\r\n private renderPrintBlob(file: Blob) {\r\n const fileURL = URL.createObjectURL(file);\r\n const windowObject = window.open(fileURL, \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\r\n windowObject.focus();\r\n windowObject.print();\r\n windowObject.close();\r\n }\r\n}\r\n","import {BehaviorSubject, Observable} from \"rxjs\";\r\n\r\nexport class ExceptionMessageService {\r\n private _observer: BehaviorSubject = new BehaviorSubject('Server is not available');\r\n private _messageChange: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get messageChange(): Observable {\r\n return this._messageChange;\r\n }\r\n\r\n changeMessage(message: string) {\r\n this._observer.next(message);\r\n }\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {ExceptionMessageService} from \"../exception-message.service\";\r\n\r\n@Component({\r\n selector: 'gd-error-modal',\r\n templateUrl: './error-modal.component.html',\r\n styleUrls: ['./error-modal.component.less']\r\n})\r\nexport class ErrorModalComponent implements OnInit {\r\n\r\n message: string;\r\n\r\n constructor(messageService: ExceptionMessageService) {\r\n messageService.messageChange.subscribe(message => this.message = message);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class PasswordService {\r\n private _observer: Subject = new Subject();\r\n private readonly _passChange: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get passChange(): Observable {\r\n return this._passChange;\r\n }\r\n\r\n setPassword(pass: string) {\r\n this._observer.next(pass);\r\n }\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {ExceptionMessageService} from \"../exception-message.service\";\r\nimport {PasswordService} from \"../password.service\";\r\n\r\n@Component({\r\n selector: 'gd-password-required',\r\n templateUrl: './password-required.component.html',\r\n styleUrls: ['./password-required.component.less']\r\n})\r\nexport class PasswordRequiredComponent implements OnInit {\r\n message: string;\r\n\r\n constructor(messageService: ExceptionMessageService, private _passwordService: PasswordService) {\r\n messageService.messageChange.subscribe(message => this.message = message);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n setPassword(value: string) {\r\n this._passwordService.setPassword(value);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\r\nimport {Observable, throwError} from \"rxjs\";\r\nimport {catchError, map} from \"rxjs/operators\";\r\nimport {ExceptionMessageService} from \"./exception-message.service\";\r\nimport {HttpError} from \"./file.service\";\r\nimport {CommonModals, ModalService} from \"./modal.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptorService implements HttpInterceptor {\r\n\r\n constructor(private _modalService: ModalService, private _messageService: ExceptionMessageService) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n const logFormat = 'background: maroon; color: white';\r\n\r\n return next.handle(req)\r\n .pipe(map(data => {\r\n return data;\r\n }),\r\n catchError((exception: HttpEvent) => {\r\n if (exception instanceof HttpErrorResponse) {\r\n switch (exception.status) {\r\n\r\n case HttpError.BadRequest:\r\n console.error('%c Bad Request 400', logFormat);\r\n break;\r\n case HttpError.Unauthorized:\r\n console.error('%c Unauthorized 401', logFormat);\r\n break;\r\n case HttpError.NotFound:\r\n console.error('%c Not Found 404', logFormat);\r\n break;\r\n case HttpError.TimeOut:\r\n console.error('%c TimeOut 408', logFormat);\r\n break;\r\n case HttpError.InternalServerError:\r\n console.error('%c big bad 500', logFormat);\r\n this._messageService.changeMessage(exception.error.message);\r\n this._modalService.open(CommonModals.ErrorMessage);\r\n break;\r\n\r\n case HttpError.Forbidden:\r\n console.error('%c Forbidden 403', logFormat);\r\n this._messageService.changeMessage(exception.error.message);\r\n this._modalService.open(CommonModals.PasswordRequired);\r\n break;\r\n }\r\n }\r\n return throwError(exception);\r\n }));\r\n }\r\n}\r\n","import { HammerGestureConfig } from '@angular/platform-browser';\r\nimport * as Hammer from 'hammerjs';\r\n\r\nexport class CustomHammerConfig extends HammerGestureConfig {\r\n overrides = {\r\n // override default settings\r\n 'pinch': {\r\n direction: Hammer.DIRECTION_ALL,\r\n enable: true,\r\n dropRecognizeWith: 'rotate'\r\n },\r\n 'rotate': {\r\n direction: Hammer.DIRECTION_ALL,\r\n enable: true,\r\n requireFailure: 'pinch'\r\n }\r\n };\r\n}","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class SearchService {\r\n private _observer: Subject = new Subject();\r\n private readonly _textChange: Observable = this._observer.asObservable();\r\n\r\n private _observerCurrent: Subject = new Subject();\r\n private readonly _currentChange: Observable = this._observerCurrent.asObservable();\r\n\r\n private _observerTotal: Subject = new Subject();\r\n private readonly _totalChange: Observable = this._observerTotal.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get textChange(): Observable {\r\n return this._textChange;\r\n }\r\n\r\n setText(text: string) {\r\n this._observer.next(text);\r\n }\r\n\r\n get currentChange(): Observable {\r\n return this._currentChange;\r\n }\r\n\r\n get totalChange(): Observable {\r\n return this._totalChange;\r\n }\r\n\r\n setCurrent(current: number) {\r\n this._observerCurrent.next(current);\r\n }\r\n\r\n setTotal(total: number) {\r\n this._observerTotal.next(total);\r\n }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {SearchService} from \"../search.service\";\r\n\r\n@Component({\r\n selector: 'gd-search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.less']\r\n})\r\nexport class SearchComponent implements OnInit, AfterViewInit {\r\n\r\n @Output() hidePanel = new EventEmitter(false);\r\n\r\n current = 0;\r\n total = 0;\r\n\r\n @ViewChild('text',{\r\n static : true\r\n }) textElement: ElementRef;\r\n\r\n constructor(private _searchService: SearchService) {\r\n _searchService.totalChange.subscribe((total: number) => {\r\n this.total = total;\r\n if (total !== 0) {\r\n this.current = 1;\r\n } else {\r\n this.current = 0;\r\n }\r\n this._searchService.setCurrent(this.current);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n setText(text: string) {\r\n this._searchService.setText(text);\r\n }\r\n\r\n hide() {\r\n this.setText('');\r\n this.hidePanel.emit(true);\r\n }\r\n\r\n prev() {\r\n if (this.current > 1) {\r\n this.current--;\r\n this._searchService.setCurrent(this.current);\r\n }\r\n }\r\n\r\n next() {\r\n if (this.current < this.total) {\r\n this.current++;\r\n this._searchService.setCurrent(this.current);\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.textElement.nativeElement.focus();\r\n }\r\n}\r\n","import {Directive, ElementRef} from '@angular/core';\r\nimport {SearchService} from \"./search.service\";\r\nimport {HighlightSearchPipe} from \"./pipes\";\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\n@Directive({\r\n selector: '[gdSearchable]'\r\n})\r\nexport class SearchableDirective {\r\n\r\n text: string;\r\n current = 0;\r\n total = 0;\r\n private zoom = 100;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _searchService: SearchService,\r\n private _highlight: HighlightSearchPipe,\r\n private _zoomService: ZoomService) {\r\n _searchService.currentChange.subscribe((current: number) => {\r\n this.current = current;\r\n if (this.current !== 0) {\r\n this.moveToCurrent();\r\n }\r\n });\r\n\r\n _searchService.textChange.subscribe((text: string) => {\r\n this.text = text;\r\n this.highlightSearch();\r\n });\r\n\r\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\r\n _zoomService.zoomChange.subscribe((val: number) => {\r\n this.zoom = val ? val : this.zoom;\r\n });\r\n }\r\n\r\n private highlightSearch() {\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n this.cleanHighlight(el);\r\n if (this.text) {\r\n this.highlightEl(el);\r\n const count = el.querySelectorAll('.gd-highlight').length;\r\n this.total = count;\r\n } else {\r\n this.total = 0;\r\n }\r\n this._searchService.setTotal(this.total);\r\n }\r\n }\r\n\r\n private moveToCurrent() {\r\n if (this.current === 0) {\r\n return;\r\n }\r\n const currentZoom = this.getZoom();\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n el.querySelectorAll('.gd-highlight-select').forEach(function (value) {\r\n $(value).removeClass('gd-highlight-select');\r\n });\r\n const currentEl = el.querySelectorAll('.gd-highlight')[this.current - 1];\r\n $(currentEl).addClass('gd-highlight-select');\r\n if (currentEl) {\r\n const options = {\r\n left: 0,\r\n top: ($(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150,\r\n };\r\n // using polyfill\r\n el.parentElement.parentElement.scroll(options);\r\n }\r\n }\r\n }\r\n\r\n private highlightEl(el: Element) {\r\n const textNodes = $(el).find('*').contents().filter(function () {\r\n const nodeName = this.parentElement.nodeName.toLowerCase();\r\n const checkClass = (this).classList ? !(this).classList.contains('gd-highlight') : true;\r\n return this.nodeType === 3 &&\r\n this.textContent.trim().length !== 0 &&\r\n nodeName !== 'style' &&\r\n nodeName !== 'title' &&\r\n nodeName !== 'body' &&\r\n nodeName !== 'script' &&\r\n checkClass;\r\n });\r\n const text = this.text;\r\n const highlight = this._highlight;\r\n textNodes.each(function () {\r\n const $this = $(this);\r\n let content = $this.text();\r\n content = highlight.transform(content, text);\r\n $this.replaceWith(content);\r\n });\r\n el.normalize();\r\n }\r\n\r\n private cleanHighlight(el: HTMLElement) {\r\n const nodeListOf = el.querySelectorAll('.gd-highlight');\r\n for (let i = 0; i < nodeListOf.length; i++) {\r\n const element = nodeListOf.item(i);\r\n element.replaceWith((element).innerText);\r\n }\r\n el.normalize();\r\n }\r\n\r\n private getZoom() {\r\n return this.zoom / 100;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-tabbed-toolbars',\r\n templateUrl: './tabbed-toolbars.component.html',\r\n styleUrls: ['./tabbed-toolbars.component.less']\r\n})\r\nexport class TabbedToolbarsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class TabActivatorService {\r\n private _observer: Subject = new Subject();\r\n private readonly _activeTabChange: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get activeTabChange(): Observable {\r\n return this._activeTabChange;\r\n }\r\n\r\n changeActiveTab(tabId: string) {\r\n this._observer.next(tabId);\r\n }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {TabActivatorService} from \"../tab-activator.service\";\r\n\r\n@Component({\r\n selector: 'gd-tab',\r\n templateUrl: './tab.component.html',\r\n styleUrls: ['./tab.component.less']\r\n})\r\nexport class TabComponent implements OnInit {\r\n @Input() id: string;\r\n @Input() tabTitle: string;\r\n @Input() icon: string;\r\n @Input() disabled = false;\r\n @Input() active = false;\r\n @Input() content = true;\r\n\r\n constructor(private _tabActivatorService: TabActivatorService) {\r\n this._tabActivatorService.activeTabChange.subscribe((tabId: string) => {\r\n this.activation(tabId);\r\n });\r\n }\r\n\r\n private activation(tabId: string) {\r\n if (this.id === tabId) {\r\n this.active = true;\r\n } else {\r\n this.active = false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n selectTab() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this._tabActivatorService.changeActiveTab(this.id);\r\n }\r\n}\r\n","import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.less']\r\n})\r\nexport class TabsComponent {\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class Formatting {\r\n static DEFAULT: Formatting = new Formatting(10, '#000000', '#FFFFFF', false, false, false, 'Arial', false, \"\", \"\");\r\n\r\n constructor(fontSize: number, color: string, bgColor: string, bold: boolean, italic: boolean, underline: boolean, font: string, strikeout: boolean, align: string, list: string) {\r\n this.fontSize = fontSize;\r\n this.color = color;\r\n this.bgColor = bgColor;\r\n this.bold = bold;\r\n this.italic = italic;\r\n this.underline = underline;\r\n this.font = font;\r\n this.strikeout = strikeout;\r\n this.align = align;\r\n this.list = list;\r\n }\r\n\r\n bold: boolean;\r\n italic: boolean;\r\n underline: boolean;\r\n fontSize: number;\r\n color: string;\r\n bgColor: string;\r\n font: string;\r\n strikeout: boolean;\r\n align: string;\r\n list: string;\r\n}\r\n\r\nexport class FormattingService {\r\n private _observerBold: Subject = new Subject();\r\n private readonly _formatBoldChange: Observable = this._observerBold.asObservable();\r\n private _observerUnderline: Subject = new Subject();\r\n private readonly _formatUnderlineChange: Observable = this._observerUnderline.asObservable();\r\n private _observerUndo: Subject = new Subject();\r\n private readonly _undo: Observable = this._observerUndo.asObservable();\r\n private _observerRedo: Subject = new Subject();\r\n private readonly _redo: Observable = this._observerRedo.asObservable();\r\n private _observerItalic: Subject = new Subject();\r\n private readonly _formatItalicChange: Observable = this._observerItalic.asObservable();\r\n private _observerColor: Subject = new Subject();\r\n private readonly _formatColorChange: Observable = this._observerColor.asObservable();\r\n private _observerBgColor: Subject = new Subject();\r\n private readonly _formatBgColorChange: Observable = this._observerBgColor.asObservable();\r\n private _observerFontSize: Subject = new Subject();\r\n private readonly _formatFontSizeChange: Observable = this._observerFontSize.asObservable();\r\n private _observerFont: Subject = new Subject();\r\n private readonly _formatFontChange: Observable = this._observerFont.asObservable();\r\n private _observerStrikeout: Subject = new Subject();\r\n private readonly _formatStrikeoutChange: Observable = this._observerStrikeout.asObservable();\r\n private _observerAlign: Subject = new Subject();\r\n private readonly _formatAlignChange: Observable = this._observerAlign.asObservable();\r\n private _observerList: Subject = new Subject();\r\n private readonly _formatListChange: Observable = this._observerList.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get formatBoldChange() {\r\n return this._formatBoldChange;\r\n }\r\n\r\n get formatUnderlineChange() {\r\n return this._formatUnderlineChange;\r\n }\r\n\r\n get formatColorChange() {\r\n return this._formatColorChange;\r\n }\r\n\r\n get formatBgColorChange() {\r\n return this._formatBgColorChange;\r\n }\r\n\r\n get formatFontSizeChange() {\r\n return this._formatFontSizeChange;\r\n }\r\n\r\n get formatFontChange() {\r\n return this._formatFontChange;\r\n }\r\n\r\n get undo() {\r\n return this._undo;\r\n }\r\n\r\n get redo() {\r\n return this._redo;\r\n }\r\n\r\n get formatItalicChange() {\r\n return this._formatItalicChange;\r\n }\r\n\r\n get formatStrikeoutChange() {\r\n return this._formatStrikeoutChange;\r\n }\r\n\r\n get formatAlignChange() {\r\n return this._formatAlignChange;\r\n }\r\n\r\n get formatListChange() {\r\n return this._formatListChange;\r\n }\r\n\r\n static createFontSizeOption(val: number) {\r\n return {value: val, name: val + 'px', separator: false}\r\n }\r\n\r\n static getFontSizeOptions() {\r\n return [\r\n FormattingService.createFontSizeOption(8),\r\n FormattingService.createFontSizeOption(10),\r\n FormattingService.createFontSizeOption(12),\r\n FormattingService.createFontSizeOption(14),\r\n FormattingService.createFontSizeOption(16),\r\n FormattingService.createFontSizeOption(18),\r\n FormattingService.createFontSizeOption(20),\r\n FormattingService.createFontSizeOption(22),\r\n FormattingService.createFontSizeOption(24),\r\n ];\r\n }\r\n\r\n static createFontOption(val: string) {\r\n return {value: val, name: val, separator: false}\r\n }\r\n\r\n static getFontOptions() {\r\n const fonts = [\"Arial\", \"Calibri\", \"Century Gothic\", \"Comic Sans\", \"Consolas\", \"Courier\", \"Dejavu Sans\", \"Dejavu Serif\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Lucida Sans\",\r\n \"Myriad Pro\", \"Open Sans\", \"Palatino\", \"Tahoma\", \"Times New Roman\", \"Trebuchet\"];\r\n const fontOptions = [];\r\n fonts.forEach(font=> {\r\n fontOptions.push(this.createFontOption(font));\r\n })\r\n\r\n return fontOptions;\r\n }\r\n\r\n changeFormatFontSize($event: number) {\r\n this._observerFontSize.next($event);\r\n }\r\n\r\n changeFormatBold(bold: boolean) {\r\n this._observerBold.next(bold);\r\n }\r\n\r\n changeFormatUnderline(underline: boolean) {\r\n this._observerUnderline.next(underline);\r\n }\r\n\r\n Undo() {\r\n this._observerUndo.next();\r\n }\r\n\r\n Redo() {\r\n this._observerRedo.next();\r\n }\r\n\r\n changeFormatItalic(italic: boolean) {\r\n this._observerItalic.next(italic);\r\n }\r\n\r\n changeFormatColor(color: string) {\r\n this._observerColor.next(color);\r\n }\r\n\r\n changeFormatBgColor(bgcolor: string) {\r\n this._observerBgColor.next(bgcolor);\r\n }\r\n\r\n changeFormatFont(font: string) {\r\n this._observerFont.next(font);\r\n }\r\n\r\n changeFormatStrikeout(strikeout: boolean) {\r\n this._observerStrikeout.next(strikeout);\r\n }\r\n\r\n changeFormatAlign(align: string) {\r\n this._observerAlign.next(align);\r\n }\r\n\r\n changeFormatList(list: string) {\r\n this._observerList.next(list);\r\n }\r\n}\r\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\r\n\r\nconst DEFAULT_COLORS = ['#000000', '#993300', '#333300', '#000080', '#333399', '#333333',\r\n '#800000', '#FF6600', '#808000', '#008000', '#008080', '#0000FF',\r\n '#666699', '#808080', '#FF0000', '#FF9900', '#99CC00', '#339966',\r\n '#33CCCC', '#3366FF', '#800080', '#999999', '#FF00FF', '#FFCC00',\r\n '#FFFF00', '#00FF00', '#00FFFF', '#00CCFF', '#993366', '#C0C0C0',\r\n '#FF99CC', '#FFCC99', '#FFFF99', '#CCFFFF', '#99CCFF', '#FFFFFF'];\r\n\r\n\r\n@Component({\r\n selector: 'gd-color-picker',\r\n templateUrl: './color-picker.component.html',\r\n styleUrls: ['./color-picker.component.less']\r\n})\r\nexport class ColorPickerComponent implements OnInit {\r\n @Output() selectedColor = new EventEmitter();\r\n colors: any = DEFAULT_COLORS;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n select($event, color: string) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.selectedColor.emit(color);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {FormattingService} from \"./formatting.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BackFormattingService extends FormattingService {\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SelectionService {\r\n selection: Range;\r\n isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n\r\n restoreSelection() {\r\n if(this.selection && !this.selection.collapsed || this.isIE){\r\n this.putSelection(this.selection );\r\n }\r\n }\r\n\r\n captureSelection() {\r\n const selection = window.getSelection();\r\n if (selection.rangeCount > 0) {\r\n this.selection = selection.getRangeAt(0);\r\n }\r\n }\r\n\r\n private putSelection(selection) {\r\n const sel = window.getSelection();\r\n sel.removeAllRanges();\r\n sel.addRange(selection.cloneRange());\r\n }\r\n\r\n refreshSelection() {\r\n this.captureSelection();\r\n this.restoreSelection();\r\n }\r\n}\r\n","import {Directive, HostListener, OnInit} from '@angular/core';\r\nimport {FormattingService} from \"./formatting.service\";\r\nimport {BackFormattingService} from \"./back-formatting.service\";\r\nimport * as jquery from 'jquery';\r\nconst $ = jquery;\r\nimport {SelectionService} from './selection.service';\r\n\r\n@Directive({\r\n selector: '[gdFormatting]'\r\n})\r\nexport class FormattingDirective implements OnInit {\r\n\r\n private bold = false;\r\n private italic = false;\r\n private underline = false;\r\n private color: string;\r\n private bgColor: string;\r\n private font: string;\r\n private strikeout = false;\r\n private align: string;\r\n private list: string;\r\n private isIE = false;\r\n\r\n constructor(private _formattingService: FormattingService,\r\n private _backFormattingService: BackFormattingService,\r\n private _selectionService: SelectionService) {\r\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n }\r\n\r\n @HostListener('mouseup') mouseup() {\r\n\r\n this.bold = document.queryCommandState(\"bold\");\r\n this.strikeout = document.queryCommandState(\"strikeThrough\");\r\n this.italic = document.queryCommandState(\"italic\");\r\n this.bgColor = document.queryCommandValue(\"backColor\");\r\n this.underline = document.queryCommandState(\"underline\");\r\n this.align = this.checkJustify();\r\n this.list = this.checkList();\r\n\r\n //fix required by FireFox to get correct background color\r\n if (this.bgColor === \"transparent\") {\r\n this.bgColor = $(window.getSelection().focusNode.parentNode).css('background-color').toString();\r\n }\r\n this.font = document.queryCommandValue(\"FontName\").replace(/\"/g, '');\r\n if(this.font.split(\",\").length > 1){\r\n this.font = this.font.split(\",\")[0];\r\n }\r\n this.color = document.queryCommandValue(\"foreColor\");\r\n this._backFormattingService.changeFormatBold(this.bold);\r\n this._backFormattingService.changeFormatUnderline(this.underline);\r\n this._backFormattingService.changeFormatItalic(this.italic);\r\n this._backFormattingService.changeFormatColor(this.color);\r\n this._backFormattingService.changeFormatBgColor(this.bgColor);\r\n this._backFormattingService.changeFormatFontSize(this.reportFontSize());\r\n this._backFormattingService.changeFormatFont(this.font);\r\n this._backFormattingService.changeFormatStrikeout(this.strikeout);\r\n this._backFormattingService.changeFormatAlign(this.align);\r\n this._backFormattingService.changeFormatList(this.list);\r\n }\r\n\r\n private checkJustify() {\r\n let align = \"\";\r\n align = document.queryCommandState(\"justifyCenter\") ? \"center\" : align;\r\n align = document.queryCommandState(\"justifyFull\") ? \"full\" : align;\r\n align = document.queryCommandState(\"justifyLeft\") ? \"left\" : align;\r\n align = document.queryCommandState(\"justifyRight\") ? \"right\" : align;\r\n return align;\r\n }\r\n\r\n private checkList() {\r\n let list = \"\";\r\n list = document.queryCommandState(\"insertUnorderedList\") ? \"unordered\" : list;\r\n list = document.queryCommandState(\"insertOrderedList\") ? \"ordered\" : list;\r\n return list;\r\n }\r\n\r\n reportFontSize(): number {\r\n let containerEl, sel;\r\n if (window.getSelection) {\r\n sel = window.getSelection();\r\n if (sel.rangeCount) {\r\n containerEl = sel.getRangeAt(0).commonAncestorContainer;\r\n // Make sure we have an element rather than a text node\r\n if (containerEl.nodeType === 3) {\r\n containerEl = containerEl.parentNode;\r\n }\r\n }\r\n } else if ((sel = document.getSelection()) && sel.type !== \"Control\") {\r\n containerEl = sel.createRange().parentElement();\r\n }\r\n\r\n if (containerEl) {\r\n return parseInt(this.getComputedStyleProperty(containerEl, \"fontSize\").replace(\"px\", \"\"), 10);\r\n }\r\n }\r\n\r\n getComputedStyleProperty(el, propName) {\r\n if (window.getComputedStyle) {\r\n return window.getComputedStyle(el, null)[propName];\r\n } else if (el.currentStyle) {\r\n return el.currentStyle[propName];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._formattingService.undo.subscribe(() => {\r\n this.toggleUndo();\r\n });\r\n this._formattingService.redo.subscribe(() => {\r\n this.toggleRedo();\r\n });\r\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\r\n this.bold = bold;\r\n this.toggleBold();\r\n });\r\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\r\n this.underline = underline;\r\n this.toggleUnderline();\r\n });\r\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\r\n this.italic = italic;\r\n this.toggleItalic();\r\n });\r\n this._formattingService.formatColorChange.subscribe(((color: string) => {\r\n this.color = color;\r\n this.setColor(color);\r\n }));\r\n this._formattingService.formatBgColorChange.subscribe(((bgcolor: string) => {\r\n this.bgColor = bgcolor;\r\n this.setBgColor(bgcolor);\r\n }));\r\n this._formattingService.formatFontSizeChange.subscribe(((fontSize: number) => {\r\n this.setFontSize(fontSize);\r\n }));\r\n\r\n this._formattingService.formatFontChange.subscribe(((font: string) => {\r\n this.font = font;\r\n this.setFont(font);\r\n }));\r\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\r\n this.strikeout = strikeout;\r\n this.toggleStrikeout();\r\n });\r\n this._formattingService.formatAlignChange.subscribe((align: string) => {\r\n this.align = align;\r\n this.toggleAlign(this.align);\r\n });\r\n this._formattingService.formatListChange.subscribe((list: string) => {\r\n this.list = list;\r\n this.toggleList(this.list);\r\n });\r\n }\r\n\r\n private toggleBold() {\r\n document.execCommand(\"bold\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleUnderline() {\r\n document.execCommand(\"underline\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleItalic() {\r\n document.execCommand(\"italic\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private setBgColor(bgColor: string) {\r\n document.execCommand(\"backColor\", false, bgColor);\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private setColor(color: string) {\r\n document.execCommand(\"foreColor\", false, color);\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private setFontSize(fontSize: number) {\r\n if (document.getSelection().toString()) {\r\n let spanString = \"\" +\r\n document.getSelection() + \"\";\r\n if (this.bold) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n if (this.italic) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n if (this.underline) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n if (this.strikeout) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n document.execCommand('insertHTML', false, spanString);\r\n } else {\r\n document.execCommand(\"fontsize\", false, \"7\");\r\n }\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleUndo() {\r\n document.execCommand(\"undo\");\r\n }\r\n\r\n private toggleRedo() {\r\n document.execCommand(\"redo\");\r\n }\r\n\r\n private setFont(font: string) {\r\n document.execCommand(\"fontName\", false, font);\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleStrikeout() {\r\n document.execCommand(\"strikeThrough\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleAlign(align: string) {\r\n if(this.isIE) {\r\n this.toggleAlignIE(align);\r\n return;\r\n }\r\n document.execCommand(\"styleWithCSS\", false, 'true');\r\n switch (align) {\r\n case 'center':\r\n document.execCommand('justifyCenter');\r\n break;\r\n case 'full':\r\n document.execCommand('justifyFull');\r\n break;\r\n case 'left':\r\n document.execCommand('justifyLeft');\r\n break;\r\n case 'right':\r\n document.execCommand('justifyRight');\r\n break;\r\n }\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleAlignIE(align: string) {\r\n this._selectionService.restoreSelection()\r\n this._selectionService.captureSelection()\r\n const selection = window.getSelection().focusNode.parentNode.parentNode;\r\n if(align === \"full\"){\r\n align = \"justify\";\r\n }\r\n $(selection).css(\"text-align\", align);\r\n this._selectionService.refreshSelection()\r\n }\r\n\r\n private toggleList(list: string) {\r\n switch (list) {\r\n case 'unordered':\r\n document.execCommand('insertUnorderedList');\r\n break;\r\n case 'ordered':\r\n document.execCommand('insertOrderedList');\r\n break;\r\n }\r\n this._selectionService.refreshSelection();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-success-modal',\r\n templateUrl: './success-modal.component.html',\r\n styleUrls: ['./success-modal.component.less']\r\n})\r\nexport class SuccessModalComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EditHtmlService {\r\n private _observer: Subject = new Subject();\r\n private readonly _htmlContent: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get observer(): Subject {\r\n return this._observer;\r\n }\r\n\r\n get htmlContent(): Observable {\r\n return this._htmlContent;\r\n }\r\n\r\n}\r\n","import {Directive, HostListener, Input} from '@angular/core';\r\nimport {SelectionService} from './selection.service';\r\nimport {EditHtmlService} from \"./edit-html.service\";\r\n\r\n@Directive({\r\n selector: '[gdEditor]'\r\n})\r\nexport class EditorDirective {\r\n @Input() text: any;\r\n\r\n private isIE: boolean = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n\r\n constructor(private _selectionService: SelectionService, private _htmlService: EditHtmlService) {\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n public onInput(event) {\r\n this.text = event.target;\r\n if(this.isIE){\r\n if (this.text.innerHTML) {\r\n const html = this.text.innerHTML.toString();\r\n this._htmlService.observer.next(html);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('mouseleave', ['$event'])\r\n public onMouseleave(event) {\r\n this._selectionService.captureSelection();\r\n // this code is required to fix IE11 issue - it doesn't trigger blur event, since that we need to save updated HTML here\r\n if(this.isIE){\r\n this._htmlService.observer.next(event.target.innerHTML.toString());\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n public onBlur(event) {\r\n event.preventDefault();\r\n this._selectionService.restoreSelection();\r\n if (this.text.innerHTML) {\r\n const html = this.text.innerHTML.toString();\r\n this._htmlService.observer.next(html);\r\n } else {\r\n this._htmlService.observer.next(event.target.innerHTML.toString());\r\n }\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core'\r\nimport { HttpRequest } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class LoadingMaskService {\r\n onLoadingChanged: EventEmitter = new EventEmitter();\r\n\r\n private requests: HttpRequest[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n onRequestStart(req: HttpRequest): void {\r\n this.requests.push(req);\r\n this.notify();\r\n }\r\n\r\n onRequestFinish(req: HttpRequest): void {\r\n const index = this.requests.indexOf(req);\r\n if (index !== -1) {\r\n this.requests.splice(index, 1);\r\n }\r\n this.notify();\r\n }\r\n\r\n private notify(): void {\r\n this.onLoadingChanged.emit(this.requests.length !== 0);\r\n }\r\n}\r\n","import {AfterViewInit, Component, Input, OnInit} from '@angular/core';\r\nimport {LoadingMaskService} from \"../loading-mask.service\";\r\n\r\n@Component({\r\n selector: 'gd-loading-mask',\r\n templateUrl: './loading-mask.component.html',\r\n styleUrls: ['./loading-mask.component.less']\r\n})\r\n\r\nexport class LoadingMaskComponent implements OnInit, AfterViewInit {\r\n @Input() loadingMask = false;\r\n\r\n constructor(private _loadingMaskService: LoadingMaskService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._loadingMaskService\r\n .onLoadingChanged\r\n .subscribe((loading: boolean) => this.loadingMask = loading);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\r\nimport {Observable} from \"rxjs\";\r\nimport {finalize} from 'rxjs/operators'\r\nimport {LoadingMaskService} from \"./loading-mask.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadingMaskInterceptorService implements HttpInterceptor {\r\n\r\n constructor(private _loadingMaskService: LoadingMaskService) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n this._loadingMaskService.onRequestStart(req);\r\n const callback = () => this._loadingMaskService.onRequestFinish(req);\r\n return next.handle(req).pipe( finalize( callback));\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n HostListener,\r\n Inject,\r\n Input,\r\n Output,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\n\r\n\r\nconst horizontalAlignment = {\r\n center : {\r\n right: 'auto'\r\n },\r\n left : {\r\n right: '100%'\r\n },\r\n right : {\r\n right: '-100%'\r\n }\r\n};\r\n\r\nconst verticalAlignment = {\r\n center : {\r\n top : '0px',\r\n },\r\n top : {\r\n top : '-100%',\r\n right: '100%'\r\n },\r\n bottom : {\r\n top: 'autos'\r\n }\r\n};\r\n\r\n/**\r\n * DropDownToggleComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down-toggle',\r\n template: '',\r\n styleUrls: ['./drop-down.component.less'],\r\n encapsulation : ViewEncapsulation.None\r\n})\r\nexport class DropDownToggleComponent{\r\n @HostListener('click',['$event'])\r\n click = (event: any) => this.dropdown.toggle(event);\r\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\r\n}\r\n\r\n/**\r\n * DropDownItemsComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down-items',\r\n template: '
',\r\n styleUrls: ['./drop-down.component.less'],\r\n encapsulation : ViewEncapsulation.None\r\n})\r\nexport class DropDownItemsComponent{\r\n\r\n get horizontalAlign(){\r\n return horizontalAlignment[this.dropdown.getPlacement().h].right;\r\n }\r\n\r\n get verticalAlign(){\r\n return verticalAlignment[this.dropdown.getPlacement().v].top;\r\n }\r\n\r\n get isOpen(){\r\n return this.dropdown.open;\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\r\n\r\n onClickOutside(event : Event ){\r\n this.dropdown.close();\r\n }\r\n}\r\n\r\n/**\r\n * DropDownItemComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down-item',\r\n template: '
',\r\n styleUrls: ['./drop-down.component.less'],\r\n})\r\nexport class DropDownItemComponent{\r\n @HostBinding('class')\r\n class = 'drop-down-item';\r\n\r\n @Output()\r\n selected = new EventEmitter();\r\n\r\n @HostListener('click')\r\n click = () => this.selectEntry();\r\n\r\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\r\n\r\n selectEntry(){\r\n this.selected.next();\r\n this.dropdown.close();\r\n }\r\n}\r\n\r\n/**\r\n * DropDownComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down',\r\n template: '
',\r\n styleUrls: ['./drop-down.component.less'],\r\n encapsulation : ViewEncapsulation.None\r\n})\r\nexport class DropDownComponent{\r\n @Input()\r\n placement = {\r\n h: \"center\",\r\n v: \"bottom\"\r\n };\r\n\r\n\r\n @Input()\r\n @HostBinding('class.show')\r\n open = false;\r\n\r\n @HostBinding('class')\r\n class = 'drop-down';\r\n\r\n close(){\r\n this.open = false;\r\n }\r\n\r\n toggle(event : MouseEvent){\r\n event.stopPropagation();\r\n this.open = !this.open;\r\n document.body.click();\r\n }\r\n\r\n getPlacement(){\r\n return this.placement;\r\n }\r\n}\r\n","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {TopToolbarComponent} from './top-toolbar/top-toolbar.component';\r\nimport {SidePanelComponent} from './side-panel/side-panel.component';\r\nimport {ButtonComponent} from './button/button.component';\r\nimport {LogoComponent} from './logo/logo.component';\r\nimport {TooltipComponent} from './tooltip/tooltip.component';\r\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\r\nimport {library} from '@fortawesome/fontawesome-svg-core';\r\nimport {fas} from '@fortawesome/free-solid-svg-icons';\r\nimport {far} from '@fortawesome/free-regular-svg-icons';\r\nimport {Api, ConfigService,} from \"./config.service\";\r\nimport {ModalService} from \"./modal.service\";\r\nimport {ModalComponent} from './modal/modal.component';\r\nimport {BrowseFilesModalComponent} from './browse-files-modal/browse-files-modal.component';\r\nimport {FileModel, FileService, FileUtil} from \"./file.service\";\r\nimport {DocumentComponent} from './document/document.component';\r\nimport {PageComponent} from './page/page.component';\r\nimport {HighlightSearchPipe, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe} from \"./pipes\";\r\nimport {UploadFileZoneComponent} from './upload-file-zone/upload-file-zone.component';\r\nimport {UploadFilesService} from \"./upload-files.service\";\r\nimport {DndDirective} from './dnd.directive';\r\nimport {ScrollableDirective} from './scrollable.directive';\r\nimport {NavigateService} from \"./navigate.service\";\r\nimport {PagePreloadService} from \"./page-preload.service\";\r\nimport {ZoomDirective} from './zoom.directive';\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport {SelectComponent} from './select/select.component';\r\nimport {DisabledCursorDirective} from './disabled-cursor.directive';\r\nimport {RotationDirective} from './rotation.directive';\r\nimport {InitStateComponent} from './init-state/init-state.component';\r\nimport {RenderPrintService} from \"./render-print.service\";\r\nimport {RenderPrintDirective} from './render-print.directive';\r\nimport {ErrorModalComponent} from './error-modal/error-modal.component';\r\nimport {PasswordRequiredComponent} from './password-required/password-required.component';\r\nimport {ExceptionMessageService} from \"./exception-message.service\";\r\nimport {PasswordService} from \"./password.service\";\r\nimport {RotationService} from \"./rotation.service\";\r\nimport {ErrorInterceptorService} from \"./error-interceptor.service\";\r\nimport {CustomHammerConfig} from \"./custom-hammer-config\";\r\nimport {SearchComponent} from './search/search.component';\r\nimport {SearchableDirective} from './searchable.directive';\r\nimport {SearchService} from \"./search.service\";\r\nimport {WindowService} from \"./window.service\";\r\nimport {ViewportService} from \"./viewport.service\";\r\nimport {TabbedToolbarsComponent} from './tabbed-toolbars/tabbed-toolbars.component';\r\nimport {TabComponent} from \"./tab/tab.component\";\r\nimport {TabsComponent} from \"./tabs/tabs.component\";\r\nimport {FormattingService} from \"./formatting.service\";\r\nimport {ColorPickerComponent} from './color-picker/color-picker.component';\r\nimport {FormattingDirective} from './formatting.directive';\r\nimport {BackFormattingService} from \"./back-formatting.service\";\r\nimport {OnCloseService} from \"./on-close.service\";\r\nimport {SuccessModalComponent} from './success-modal/success-modal.component';\r\nimport {EditorDirective} from './editor.directive';\r\nimport {LoadingMaskComponent} from './loading-mask/loading-mask.component';\r\nimport {LoadingMaskService} from './loading-mask.service';\r\nimport {LoadingMaskInterceptorService} from \"./loading-mask-interceptor.service\";\r\nimport {TabActivatorService} from \"./tab-activator.service\";\r\nimport { DropDownComponent,DropDownItemComponent,DropDownItemsComponent,DropDownToggleComponent } from './drop-down/drop-down.component';\r\nimport { ClickOutsideModule } from 'ng-click-outside';\r\n\r\nconst providers = [ConfigService,\r\n Api,\r\n ModalService,\r\n FileService,\r\n FileModel,\r\n FileUtil,\r\n SanitizeHtmlPipe,\r\n SanitizeResourceHtmlPipe,\r\n SanitizeStylePipe,\r\n HighlightSearchPipe,\r\n UploadFilesService,\r\n RenderPrintService,\r\n NavigateService,\r\n PagePreloadService,\r\n ZoomService,\r\n ExceptionMessageService,\r\n PasswordService,\r\n RotationService,\r\n ErrorInterceptorService,\r\n CustomHammerConfig,\r\n SearchService,\r\n WindowService,\r\n ViewportService,\r\n FormattingService,\r\n BackFormattingService,\r\n OnCloseService,\r\n LoadingMaskInterceptorService,\r\n LoadingMaskService,\r\n TabActivatorService];\r\n\r\n@NgModule({\r\n imports: [CommonModule, FontAwesomeModule, ClickOutsideModule],\r\n declarations: [\r\n TopToolbarComponent,\r\n SidePanelComponent,\r\n ButtonComponent,\r\n LogoComponent,\r\n TooltipComponent,\r\n ModalComponent,\r\n BrowseFilesModalComponent,\r\n DocumentComponent,\r\n PageComponent,\r\n SanitizeHtmlPipe,\r\n SanitizeResourceHtmlPipe,\r\n SanitizeStylePipe,\r\n HighlightSearchPipe,\r\n UploadFileZoneComponent,\r\n DndDirective,\r\n ScrollableDirective,\r\n ZoomDirective,\r\n SelectComponent,\r\n DisabledCursorDirective,\r\n RotationDirective,\r\n InitStateComponent,\r\n RenderPrintDirective,\r\n ErrorModalComponent,\r\n PasswordRequiredComponent,\r\n SearchComponent,\r\n SearchableDirective,\r\n TabbedToolbarsComponent,\r\n TabComponent,\r\n TabsComponent,\r\n ColorPickerComponent,\r\n FormattingDirective,\r\n SuccessModalComponent,\r\n EditorDirective,\r\n LoadingMaskComponent,\r\n DropDownComponent,\r\n DropDownItemComponent,\r\n DropDownItemsComponent,\r\n DropDownToggleComponent\r\n ],\r\n exports: [\r\n TopToolbarComponent,\r\n SidePanelComponent,\r\n ButtonComponent,\r\n LogoComponent,\r\n TooltipComponent,\r\n ModalComponent,\r\n BrowseFilesModalComponent,\r\n DocumentComponent,\r\n PageComponent,\r\n SanitizeResourceHtmlPipe,\r\n SanitizeStylePipe,\r\n HighlightSearchPipe,\r\n SanitizeHtmlPipe,\r\n UploadFileZoneComponent,\r\n ScrollableDirective,\r\n SelectComponent,\r\n RotationDirective,\r\n InitStateComponent,\r\n RenderPrintDirective,\r\n ErrorModalComponent,\r\n PasswordRequiredComponent,\r\n SearchComponent,\r\n SearchableDirective,\r\n TabbedToolbarsComponent,\r\n TabComponent,\r\n TabsComponent,\r\n ColorPickerComponent,\r\n FormattingDirective,\r\n SuccessModalComponent,\r\n LoadingMaskComponent,\r\n DndDirective,\r\n DropDownComponent,\r\n DropDownItemComponent,\r\n DropDownItemsComponent,\r\n DropDownToggleComponent\r\n ],\r\n providers: providers\r\n})\r\nexport class CommonComponentsModule {\r\n constructor() {\r\n library.add(fas, far);\r\n }\r\n}\r\n"],"names":["$","Hammer.DIRECTION_ALL"],"mappings":"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"} \ No newline at end of file diff --git a/dist/libs/common-components/fesm5/groupdocs.examples.angular-common-components.js b/dist/libs/common-components/fesm5/groupdocs.examples.angular-common-components.js index 4775975c2..ba083a30e 100644 --- a/dist/libs/common-components/fesm5/groupdocs.examples.angular-common-components.js +++ b/dist/libs/common-components/fesm5/groupdocs.examples.angular-common-components.js @@ -9,8 +9,9 @@ import { __extends, __values } from 'tslib'; import { Observable, Subject, fromEvent, BehaviorSubject, throwError } from 'rxjs'; import * as jquery from 'jquery'; import * as Hammer from 'hammerjs'; +import { DIRECTION_ALL } from 'hammerjs'; import { debounceTime, distinctUntilChanged, startWith, tap, map, catchError, finalize } from 'rxjs/operators'; -import { DomSanitizer } from '@angular/platform-browser'; +import { DomSanitizer, HammerGestureConfig } from '@angular/platform-browser'; import { ClickOutsideModule } from 'ng-click-outside'; /** @@ -23,7 +24,7 @@ var TopToolbarComponent = /** @class */ (function () { TopToolbarComponent.decorators = [ { type: Component, args: [{ selector: 'gd-top-toolbar', - template: "
\n
\n \n
\n
\n", + template: "
\r\n
\r\n \r\n
\r\n
\r\n", styles: [".top-toolbar{width:100%;height:60px;z-index:999;display:flex;align-items:center}.tools{width:100%;height:100%;display:flex;align-items:center}@media (max-width:1037px){.top-toolbar{height:60px}.tools{height:100%;overflow-x:auto;overflow-scrolling:touch;display:flex;align-items:center;transition:.3s ease-in-out;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.tools::-webkit-scrollbar{width:0;height:0;background-color:#3e4e5a}}"] }] } ]; @@ -52,7 +53,7 @@ var SidePanelComponent = /** @class */ (function () { SidePanelComponent.decorators = [ { type: Component, args: [{ selector: 'gd-side-panel', - template: "
\n
\n \n
{{title}}
\n
\n \n
\n
\n
\n \n
\n
\n", + template: "
\r\n
\r\n \r\n
{{title}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n", styles: [".gd-side-panel-wrapper{margin-right:0;width:334px;z-index:999;background-color:#fff;transition:margin-right .2s;display:flex;flex-flow:column;height:100vh}.gd-side-panel-wrapper .gd-side-panel-header{height:60px;background-color:#222e35;display:flex;flex-direction:row;flex-wrap:nowrap}.gd-side-panel-wrapper .gd-side-panel-header .icon{font-size:24px;color:#959da5;margin:12px 9px 18px 14px}.gd-side-panel-wrapper .gd-side-panel-header .title{font-size:14px;font-weight:700;color:rgba(237,240,242,.57);margin-top:20px;width:100%}.gd-side-panel-wrapper .gd-side-panel-header .close{font-size:24px!important;margin-top:12px}.gd-side-panel-wrapper .gd-side-panel-body{display:flex;flex-flow:column;overflow:visible;overflow-y:auto;overflow-x:hidden;height:100%}@media (max-width:1037px){.gd-side-panel-wrapper{width:100%;position:absolute;left:0;right:0;top:0;bottom:0}}"] }] } ]; @@ -114,7 +115,7 @@ var ButtonComponent = /** @class */ (function () { ButtonComponent.decorators = [ { type: Component, args: [{ selector: 'gd-button', - template: "
\n \n \n
\n
\n", + template: "
\r\n \r\n \r\n
\r\n
\r\n", styles: [".icon-button{padding:0!important;margin:0 10px}.button{padding:0 10px;font-size:14px;color:#959da5;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:37px;height:37px;text-align:center;position:relative;white-space:nowrap}.button.inactive{cursor:not-allowed;opacity:.4}.button.active *{color:#ccd0d4}.button.primary{background-color:#3e4e5a;color:#fff}.button.primary.active{color:#fff;background-color:#688296}.button.brand{background-color:#25c2d4;color:#fff}.button.brand.active{color:#fff;background-color:#688296}.button .text{font-size:13px;padding-left:10px}@media (max-width:1037px){.button{font-size:22px}.arrow-button{margin:5px}}"] }] } ]; @@ -149,7 +150,7 @@ var LogoComponent = /** @class */ (function () { LogoComponent.decorators = [ { type: Component, args: [{ selector: 'gd-logo', - template: "
\n \n \n
\n\n", + template: "
\r\n \r\n \r\n
\r\n\r\n", styles: [".logo{background-color:#25c2d4;height:60px;display:flex;align-items:center;justify-content:center}.text{color:#fff;font-size:15px;text-transform:uppercase;margin:0 14px}.icon{display:none;font-size:32px;color:rgba(255,255,255,.5);margin:14px}@media (max-width:1037px){.logo{width:60px;height:60px}.logo .text{display:none}.logo .icon{display:block}}"] }] } ]; @@ -192,7 +193,7 @@ var TooltipComponent = /** @class */ (function () { TooltipComponent.decorators = [ { type: Component, args: [{ selector: 'gd-tooltip', - template: "\n", + template: "\r\n", styles: [".tooltip{position:absolute;margin-top:37px;width:100px;background-color:#000;color:#fff;text-align:center;border-radius:0;padding:5px 0;z-index:1;margin-left:-66px;font-size:10px;height:11px;line-height:11px}.tooltip.hidden{visibility:hidden}.tooltip.shown{visibility:visible}.shown:after{content:\" \";position:absolute;bottom:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-bottom-color:#000}"] }] } ]; @@ -479,7 +480,7 @@ var ModalComponent = /** @class */ (function () { ModalComponent.decorators = [ { type: Component, args: [{ selector: 'gd-modal', - template: "
\n
\n
\n
\n\n
\n
×
\n

{{title}}

\n
\n\n
\n \n
\n\n
\n\n
\n
\n
\n\n", + template: "
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
×
\r\n

{{title}}

\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n", styles: ["@import url(https://fonts.googleapis.com/css?family=Montserrat&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.gd-modal{overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0;background-color:rgba(0,0,0,.5)}.gd-modal-dialog{box-shadow:#0005 0 0 10px;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1051}.gd-modal-content{background-color:#fff;height:100%;display:flex;flex-direction:column}.gd-modal-header{height:60px;padding:0 12px 0 24px;background-color:#3e4e5a}.gd-modal-close{position:absolute;right:12px;top:12px;cursor:pointer;color:#fff;width:37px;height:37px;text-align:center}.gd-modal-close span{font-size:18px;font-weight:900;height:19px;width:10px;line-height:36px}.gd-modal-title{font-size:16px;font-weight:400;padding-top:17px;padding-bottom:22px;margin:0;color:#fff}.gd-modal-body{background-color:#fff;overflow:hidden;overflow-y:auto;height:calc(100% - 75px)}.gd-modal-footer{height:auto}.gd-modal-footer>.btn{float:right;margin:20px 15px;padding:10px 20px;cursor:pointer;font-size:12px}@media (max-width:1037px){.gd-modal-dialog{width:100%;height:100%}.gd-modal-body{height:100%}}"] }] } ]; @@ -897,7 +898,7 @@ var BrowseFilesModalComponent = /** @class */ (function () { BrowseFilesModalComponent.decorators = [ { type: Component, args: [{ selector: 'gd-browse-files-modal', - template: "\n
\n
\n \n Drop file here to upload\n
\n
\n
\n \n
\n
\n \n \n \n Upload file\n \n \n \n \n \n
{{item.name}}
\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
FILE
\n
SIZE
\n
\n
\n
\n
\n
\n
\n \n
\n
..
\n
\n
\n
\n \n
\n
{{file?.name}}
\n
{{getFormatName(file)}}
\n
\n
\n
\n {{getSize(file?.size)}}\n
\n
\n
\n
\n
\n \n  Loading... Please wait.\n
\n
\n
\n", + template: "\r\n
\r\n
\r\n \r\n Drop file here to upload\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Upload file\r\n \r\n \r\n \r\n \r\n \r\n
{{item.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
FILE
\r\n
SIZE
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
..
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{file?.name}}
\r\n
{{getFormatName(file)}}
\r\n
\r\n
\r\n
\r\n {{getSize(file?.size)}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n  Loading... Please wait.\r\n
\r\n
\r\n
\r\n", styles: [".gd-modal-table{width:100%;text-align:left}#gd-browse-section{width:1036px;height:561px;overflow-y:auto}.list-files-header{height:60px;color:#6e6e6e;font-size:13px;font-weight:700;background-color:#f4f4f4;margin-top:24px}.list-files-header.upload-url{margin-top:20px}.header-name{padding-left:24px;width:90%;line-height:60px}.header-size{padding-right:27px;line-height:60px}.file-size,.header-size{width:10%;color:#777;text-align:right}.file-description{display:flex;width:90%;padding:18px 0 18px 24px;font-size:14px;flex:1;cursor:pointer;overflow:hidden}.file-size{font-size:12px;padding:0 27px 0 0;width:10%;line-height:79px}.list-files-header,.list-files-lines{display:flex;width:100%;justify-content:space-between}.gd-modal-spinner{background-color:#fff;width:100%;height:20px;text-align:center;font-size:16px}.gd-cancel-button{padding:7px;background:0 0;width:28px;overflow:hidden}.gd-cancel-button i{font-size:21px}.gd-file-name{white-space:nowrap;overflow:hidden;width:100%;text-overflow:ellipsis}.go-up{display:flex;font-size:26px;cursor:pointer;color:#4b566c;height:79px}.go-up-dots{margin-left:20px;margin-top:22px;font-size:16px}.go-up-icon{display:block;padding:18px 0 18px 24px}.upload-panel{display:flex;position:relative;width:100%}.upload-panel .context{display:flex;flex-direction:column;width:100%;margin-left:24px;margin-top:24px;margin-right:24px}.upload-panel .context .context-actions{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-actions :last-child{margin-right:0}.upload-panel .context .context-actions ::ng-deep .button{height:37px;width:96px;padding:0;justify-content:center}.upload-panel .context .context-actions ::ng-deep .button ::ng-deep .text{font-size:10px}.upload-panel .context .context-panel{display:flex;flex-direction:row;width:100%;margin-top:20px}.upload-panel .context .context-panel .upload-url{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-panel .upload-url .url-input{width:100%;height:27px;border:1px solid #25c2d4;font-size:14px;padding-left:6px}.upload-panel .context .context-panel .upload-url .url-check{width:31px;height:31px;color:#fff;font-size:15px;background-color:#25c2d4}.upload-panel .context .context-panel .upload-url .url-check .ng-fa-icon{display:block;padding:8px}.upload-panel gd-drop-down{margin-right:10px}.file-description .ng-fa-icon.fa-file-pdf{color:#e04e4e}.file-description .ng-fa-icon.fa-file-word{color:#539cf0}.file-description .ng-fa-icon.fa-file-powerpoint{color:#e29e1e}.file-description .ng-fa-icon.fa-file-excel{color:#7cbc46}.file-description .ng-fa-icon.fa-file-image{color:#c375ed}.file-description .ng-fa-icon.fa-file,.file-description .ng-fa-icon.fa-file-alt,.file-description .ng-fa-icon.fa-file-text .fa-folder{color:#4b566c}.file-description .ng-fa-icon{font-size:32px}.file-name{font-size:16px;color:#6e6e6e;overflow:hidden;text-overflow:ellipsis}.file-name-format{padding-left:11px;overflow:hidden}.file-format{font-size:10px;padding-top:3px;color:#acacac}.go-up,.list-files-lines{border-bottom:1px solid #e7e7e7}.list-files-lines:hover{background-color:#e5e5e5}.gd-dnd-wrap{background-color:#fff;cursor:default;position:absolute;width:100%;height:calc(100% - 60px);background:rgba(255,255,255,.7);z-index:1;display:flex;justify-content:center;align-items:center}.dnd-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;top:259px;position:absolute}.dnd-wrapper .text{color:#6e6e6e;font-size:14px}.dnd-wrapper .icon{display:flex;width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}@media (max-width:1037px){.file-size,.header-size{width:18%}.gd-dnd-wrap{width:95%}#gd-browse-section{width:100%;height:calc(100% - 146px)}}"] }] } ]; @@ -1083,6 +1084,39 @@ var WindowService = /** @class */ (function () { return WindowService; }()); +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var RotationService = /** @class */ (function () { + function RotationService() { + this._observerRotationAngle = new Subject(); + this._rotationAngleChange = this._observerRotationAngle.asObservable(); + } + Object.defineProperty(RotationService.prototype, "rotationAngleChange", { + get: /** + * @return {?} + */ + function () { + return this._rotationAngleChange; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} angle + * @return {?} + */ + RotationService.prototype.setRotationAngle = /** + * @param {?} angle + * @return {?} + */ + function (angle) { + this._observerRotationAngle.next(angle); + }; + return RotationService; +}()); + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -1090,11 +1124,12 @@ var WindowService = /** @class */ (function () { /** @type {?} */ var $$1 = jquery; var DocumentComponent = /** @class */ (function () { - function DocumentComponent(_elementRef, _zoomService, _windowService) { + function DocumentComponent(_elementRef, _zoomService, _windowService, _rotationServcie) { var _this = this; this._elementRef = _elementRef; this._zoomService = _zoomService; this._windowService = _windowService; + this._rotationServcie = _rotationServcie; this.wait = false; this.docWidth = null; this.docHeight = null; @@ -1370,6 +1405,7 @@ var DocumentComponent = /** @class */ (function () { * @return {?} */ function ($event) { + console.log("pinch"); if (this.pinchCenter === null) { this.pinchCenter = this.rawCenter($event); /** @type {?} */ @@ -1397,6 +1433,7 @@ var DocumentComponent = /** @class */ (function () { * @return {?} */ function ($event) { + console.log("pinchEnd"); this.updateLastScale(); this.updateLastPos(); this.pinchCenter = null; @@ -1445,10 +1482,50 @@ var DocumentComponent = /** @class */ (function () { } } }; + /** + * @param {?} $event + * @return {?} + */ + DocumentComponent.prototype.onRotateStart = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + this.initialRotation = $event.rotation; + console.log("rotateStart: " + $event.rotation + ' ' + $event.angle); + }; + /** + * @param {?} $event + * @return {?} + */ + DocumentComponent.prototype.onRotateEnd = /** + * @param {?} $event + * @return {?} + */ + function ($event) { + console.log("rotateEnd: " + $event.rotation + ' ' + $event.angle); + if ($event.rotation > 0 && this.initialRotation > 0) { + if ($event.rotation > this.initialRotation && ($event.rotation - this.initialRotation > 45)) { + this._rotationServcie.setRotationAngle(90); + } + else if ($event.rotation < this.initialRotation && (this.initialRotation - $event.rotation > 45)) { + this._rotationServcie.setRotationAngle(-90); + } + } + // case with negative values + else { + if (this.initialRotation > $event.rotation && ($event.rotation - this.initialRotation > 45)) { + this._rotationServcie.setRotationAngle(-90); + } + else if (this.initialRotation < $event.rotation && (this.initialRotation - $event.rotation > 45)) { + this._rotationServcie.setRotationAngle(90); + } + } + }; DocumentComponent.decorators = [ { type: Component, args: [{ selector: 'gd-document', - template: "
Please wait...
\n
\n
\n
\n \n
\n
\n \n
\n", + template: "
Please wait...
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n", styles: [":host{flex:1;transition:.4s;background-color:#e7e7e7;height:100%;overflow:scroll}.page{display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.page.excel{overflow:auto}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:flex-start}.panzoom.mobile{overflow:scroll}@media (max-width:1037px){.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] }] } ]; @@ -1456,7 +1533,8 @@ var DocumentComponent = /** @class */ (function () { DocumentComponent.ctorParameters = function () { return [ { type: ElementRef }, { type: ZoomService }, - { type: WindowService } + { type: WindowService }, + { type: RotationService } ]; }; DocumentComponent.propDecorators = { mode: [{ type: Input }], @@ -1508,7 +1586,7 @@ var PageComponent = /** @class */ (function () { PageComponent.decorators = [ { type: Component, args: [{ selector: 'gd-page', - template: "
\n
\n \"\"\n\n
\n \n  Loading... Please wait.\n
\n
\n", + template: "
\r\n
\r\n \"\"\r\n\r\n
\r\n \r\n  Loading... Please wait.\r\n
\r\n
\r\n", styles: [".gd-page-spinner{margin-top:150px;text-align:center}.gd-wrapper{width:inherit;height:inherit}.gd-wrapper div{width:100%}/deep/ .gd-highlight{background-color:#ff0}/deep/ .gd-highlight-select{background-color:#ff9b00}.gd-page-image{height:100%!important;width:100%!important}"] }] } ]; @@ -1683,7 +1761,7 @@ var UploadFileZoneComponent = /** @class */ (function () { UploadFileZoneComponent.decorators = [ { type: Component, args: [{ selector: 'gd-upload-file-zone', - template: "
\n
\n \n
\n

Drag & Drop your files here

\n

OR

\n
\n \n
\n
\n", + template: "
\r\n
\r\n \r\n
\r\n

Drag & Drop your files here

\r\n

OR

\r\n
\r\n \r\n
\r\n
\r\n", styles: [".gd-drag-n-drop-wrap{border:2px dashed #ccc;background-color:#f8f8f8;text-align:center;cursor:default;position:absolute;width:-webkit-fill-available;left:1px;display:flex;align-content:center;flex-direction:column;justify-content:center;opacity:.9;z-index:1}.gd-drag-n-drop-wrap h2{color:#959da5;margin:5px 0;font-size:15px;font-weight:300}.gd-drag-n-drop-wrap h4{color:#cacaca;font-weight:300;font-size:12px;margin:10px 0 15px}.gd-drag-n-drop-icon .fa-cloud-download-alt{color:#d1d1d1;font-size:110px}.gd-drag-n-drop-buttons i{margin-right:5px}.gd-drag-n-drop-buttons .btn{width:134px;height:35px;margin:0 10px;font-size:12px;font-weight:400}.gd-drag-n-drop-wrap.hover{background:#ddd;border-color:#aaa}"] }] } ]; @@ -2609,7 +2687,7 @@ var SelectComponent = /** @class */ (function () { SelectComponent.decorators = [ { type: Component, args: [{ selector: 'gd-select', - template: "
\n \n {{showSelected?.name}}\n \n \n
\n
\n
{{option.name}}
\n
\n
\n
\n
\n", + template: "
\r\n \r\n {{showSelected?.name}}\r\n \r\n \r\n
\r\n
\r\n
{{option.name}}
\r\n
\r\n
\r\n
\r\n
\r\n", styles: [".select{min-width:50px;color:#959da5}.selected-value{font-size:14px;cursor:pointer;white-space:nowrap}.selected-value.inactive{cursor:not-allowed;color:#ccc}.nav-caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent;cursor:pointer}.nav-caret.inactive{cursor:not-allowed;color:#ccc}.dropdown-menu{position:absolute;top:49px;z-index:1000;float:left;min-width:96px;list-style:none;font-size:13px;text-align:left;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);background-clip:padding-box}.dropdown-menu .option{display:block;padding:7px 0 7px 7px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;cursor:pointer;font-size:10px}.dropdown-menu .option:hover{background-color:#25c2d4;color:#fff!important}.dropdown-menu-separator{height:1px;overflow:hidden;background-color:#f4f4f4;padding:0!important}"] }] } ]; @@ -2819,7 +2897,7 @@ var InitStateComponent = /** @class */ (function () { InitStateComponent.decorators = [ { type: Component, args: [{ selector: 'gd-init-state', - template: "
\n
\n \n \n \n \n
\n
\n \n {{text}}\n
\n
\n", + template: "
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{text}}\r\n
\r\n
\r\n", styles: [".wrapper{color:#959da5;background-color:#e7e7e7;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%}.icon{font-size:65px;margin-bottom:43px;display:flex;color:#959da5}.start{font-size:15px;text-align:center;color:#959da5}.gd-drag-n-drop-wrap.active{background-color:#fff;position:fixed;top:0;background:rgba(255,255,255,.8)}.gd-drag-n-drop-wrap.active .init-state-wrapper{position:absolute;opacity:.2;top:unset}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper{top:0;z-index:999}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper .icon{width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}.gd-drag-n-drop-wrap.active .text{color:#6e6e6e;font-size:14px}.init-state-dnd-wrapper,.init-state-wrapper{display:flex;flex-direction:column;width:250px;height:250px;align-items:center;justify-content:center}.init-state-wrapper{top:-60px;position:relative}"] }] } ]; @@ -3108,7 +3186,7 @@ var ErrorModalComponent = /** @class */ (function () { ErrorModalComponent.decorators = [ { type: Component, args: [{ selector: 'gd-error-modal', - template: "\n
\n \n
\n
Something went wrong
\n
{{message ? message : 'Server is not available'}}
\n
\n
\n
\n", + template: "\r\n
\r\n \r\n
\r\n
Something went wrong
\r\n
{{message ? message : 'Server is not available'}}
\r\n
\r\n
\r\n
\r\n", styles: [".gd-modal-error{display:inline-flex;flex-direction:column;flex:1}.gd-modal-error .gd-modal-error-message{font-size:12px;margin:0 24px 24px 0}.gd-modal-error .gd-modal-error-title{font-size:16px;font-weight:700;margin:14px 0 10px}#gd-error-section{max-width:468px;max-height:204px;display:flex}#gd-error-section fa-icon{flex:1;color:#e04e4e;font-size:40px;margin:13px 23px 90px;text-align:center}"] }] } ]; @@ -3188,7 +3266,7 @@ var PasswordRequiredComponent = /** @class */ (function () { PasswordRequiredComponent.decorators = [ { type: Component, args: [{ selector: 'gd-password-required', - template: "\n
\n
\n \n \n {{message}}\n \n Open\n \n
\n
\n
\n", + template: "\r\n
\r\n
\r\n \r\n \r\n {{message}}\r\n \r\n Open\r\n \r\n
\r\n
\r\n
\r\n", styles: ["#gd-password-section{width:468px;height:164px}.gd-password-wrap{display:flex;flex-direction:column;margin:24px}.gd-password-wrap label{font-size:14px;color:#acacac;padding-bottom:12px}.gd-password-wrap input{height:30px;border:1px solid #25c2d4}.gd-password-wrap input.error{border-color:#e04e4e}.gd-password-wrap gd-button{align-self:flex-end}.gd-password-wrap ::ng-deep .button{height:37px;width:72px;padding:0;justify-content:center}.gd-password-wrap ::ng-deep .button ::ng-deep .text{font-size:10px!important}.gd-password-error{color:#e04e4e;padding:10px 0 12px;height:12px;line-height:12px;font-size:12px}@media (max-width:1037px){#gd-password-section{min-width:375px}}"] }] } ]; @@ -3278,6 +3356,32 @@ var ErrorInterceptorService = /** @class */ (function () { return ErrorInterceptorService; }()); +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +var CustomHammerConfig = /** @class */ (function (_super) { + __extends(CustomHammerConfig, _super); + function CustomHammerConfig() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.overrides = (/** @type {?} */ ({ + // override default settings + 'pinch': { + direction: DIRECTION_ALL, + enable: true, + dropRecognizeWith: 'rotate' + }, + 'rotate': { + direction: DIRECTION_ALL, + enable: true, + requireFailure: 'pinch' + } + })); + return _this; + } + return CustomHammerConfig; +}(HammerGestureConfig)); + /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc @@ -3448,7 +3552,7 @@ var SearchComponent = /** @class */ (function () { SearchComponent.decorators = [ { type: Component, args: [{ selector: 'gd-search', - template: "
\n \n
{{current}} of {{total}}
\n \n \n \n \n \n \n
\n", + template: "
\r\n \r\n
{{current}} of {{total}}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n", styles: [".gd-nav-search-btn{margin:3px 0 4px}.gd-nav-search-cancel{color:#fff;font-size:14px;width:37px}.gd-search-count{color:#959da5;font-size:12px;position:absolute;right:148px;top:14px}.gd-nav-search-container{background-color:#3e4e5a;width:410px;position:fixed;left:50%;top:60px;z-index:2;transform:translate(-50%,0);display:flex}.gd-search-input{float:left;height:30px;width:267px;font-size:14px;color:#6e6e6e;border:1px solid #25c2d4;margin:7px 0 7px 7px;box-sizing:border-box;padding:6px 0 5px 9px}input[type=text]::-ms-clear{display:none}@media (max-width:1037px){.gd-search-input{width:231px;height:30px;margin:7px 0 7px 5px}.gd-search-count{position:absolute;left:193px;top:15px}.gd-nav-search-container{width:100%}}"] }] } ]; @@ -3680,7 +3784,7 @@ var TabbedToolbarsComponent = /** @class */ (function () { TabbedToolbarsComponent.decorators = [ { type: Component, args: [{ selector: 'gd-tabbed-toolbars', - template: "
\n \n \n
\n", + template: "
\r\n \r\n \r\n
\r\n", styles: [".top-panel{background:#3e4e5a;display:flex;width:100%;height:90px}.top-panel ::ng-deep .logo{height:30px;font-size:16px}@media (max-width:1037px){.top-panel{height:60px}.top-panel ::ng-deep .logo{height:60px}}"] }] } ]; @@ -3782,7 +3886,7 @@ var TabComponent = /** @class */ (function () { TabComponent.decorators = [ { type: Component, args: [{ selector: 'gd-tab', - template: "
\n
{{tabTitle}}
\n \n
\n
\n \n
\n", + template: "
\r\n
{{tabTitle}}
\r\n \r\n
\r\n
\r\n \r\n
\r\n", styles: [".gd-editor-buttons{height:60px;position:absolute;background-color:#fff;width:100%;left:0;line-height:60px;display:none;z-index:9}.gd-editor-buttons ::ng-deep .toolbar-panel{height:60px}.gd-editor-buttons.active{display:flex}.gd-tab{text-align:center;font-size:11px;color:#e5e5e5;height:30px;line-height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center}.gd-tab .icon{display:none;font-size:14px;margin:auto 23px}.gd-tab .title{margin:auto 23px}.gd-tab.active{background-color:#fff;color:#3e4e5a;font-weight:700}@media (max-width:1037px){.gd-tab{height:60px;line-height:60px}.gd-tab .title{display:none}.gd-tab .icon{display:block}}"] }] } ]; @@ -3811,7 +3915,7 @@ var TabsComponent = /** @class */ (function () { TabsComponent.decorators = [ { type: Component, args: [{ selector: 'gd-tabs', - template: "
\n \n
\n", + template: "
\r\n \r\n
\r\n", styles: [".gd-tabs{display:flex}"] }] } ]; @@ -4223,7 +4327,7 @@ var ColorPickerComponent = /** @class */ (function () { ColorPickerComponent.decorators = [ { type: Component, args: [{ selector: 'gd-color-picker', - template: "
\n
\n
\n
\n
\n", + template: "
\r\n
\r\n
\r\n
\r\n
\r\n", styles: [".bcPicker-picker{border:1px;border-radius:100%}.bcPicker-palette{width:232px;padding:5px;border:1px solid #efefef;background-color:#fdfdfd;z-index:999}.bcPicker-palette>.bcPicker-color{width:14px;height:14px;margin:2px;display:inline-block;border:1px solid #efefef;background-color:#9da97b;cursor:pointer}"] }] } ]; @@ -4807,7 +4911,7 @@ var SuccessModalComponent = /** @class */ (function () { SuccessModalComponent.decorators = [ { type: Component, args: [{ selector: 'gd-success-modal', - template: "\n
\n
\n \n \n
\n
\n
\n
\n
\n", + template: "\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n", styles: [".check_mark{margin:47px auto}.sa-icon{width:80px;height:80px;border:4px solid gray;border-radius:50%;padding:0;position:relative;box-sizing:content-box}#gd-modal-success{display:flex;overflow:hidden;width:469px;height:183px}.sa-icon.sa-success{border-color:#4caf50;transform:scale(1.18)}.sa-icon.sa-success::after,.sa-icon.sa-success::before{content:'';position:absolute;width:60px;height:120px;background:#fff}.sa-icon.sa-success::before{border-radius:120px 0 0 120px;top:-7px;left:-33px;transform:rotate(-45deg);transform-origin:60px 60px}.sa-icon.sa-success::after{border-radius:0 120px 120px 0;top:-11px;left:30px;transform:rotate(-45deg);transform-origin:0 60px}.sa-icon.sa-success .sa-placeholder{width:80px;height:80px;border:4px solid rgba(76,175,80,.5);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.sa-icon.sa-success .sa-fix{width:5px;height:90px;background-color:#fff;position:absolute;left:28px;top:8px;z-index:1;transform:rotate(-45deg)}.sa-icon.sa-success.animate::after{-webkit-animation:4.25s ease-in rotatePlaceholder;animation:4.25s ease-in rotatePlaceholder}.animateSuccessTip{-webkit-animation:.75s animateSuccessTip;animation:.75s animateSuccessTip}.animateSuccessLong{-webkit-animation:.75s animateSuccessLong;animation:.75s animateSuccessLong}@-webkit-keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}.sa-icon.sa-success .sa-line{height:5px;background-color:#4caf50;display:block;border-radius:2px;position:absolute;z-index:2}.sa-icon.sa-success .sa-line.sa-tip{width:25px;left:14px;top:46px;transform:rotate(45deg)}.sa-icon.sa-success .sa-line.sa-long{width:47px;right:8px;top:38px;transform:rotate(-45deg)}@-webkit-keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@media (max-width:1037px){#gd-modal-success{left:50%;top:50%;position:relative;transform:translate(-50%,-50%)}}"] }] } ]; @@ -5030,7 +5134,7 @@ var LoadingMaskComponent = /** @class */ (function () { LoadingMaskComponent.decorators = [ { type: Component, args: [{ selector: 'gd-loading-mask', - template: "
\n
\n  Loading... Please wait.\n
\n
\n", + template: "
\r\n
\r\n  Loading... Please wait.\r\n
\r\n
\r\n", styles: [".loading-wrapper{background:rgba(0,0,0,.5);width:100%;height:100%;font-size:14px;color:#fff;position:fixed;top:0;left:0;z-index:99999}.loading-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"] }] } ]; @@ -5338,7 +5442,9 @@ var providers = [ConfigService, ZoomService, ExceptionMessageService, PasswordService, + RotationService, ErrorInterceptorService, + CustomHammerConfig, SearchService, WindowService, ViewportService, @@ -5440,5 +5546,5 @@ var CommonComponentsModule = /** @class */ (function () { return CommonComponentsModule; }()); -export { Api, BackFormattingService, BrowseFilesModalComponent, ButtonComponent, ColorPickerComponent, CommonComponentsModule, CommonModals, ConfigService, DisabledCursorDirective, DndDirective, DocumentComponent, DropDownComponent, DropDownItemComponent, DropDownItemsComponent, DropDownToggleComponent, EditHtmlService, EditorDirective, ErrorInterceptorService, ErrorModalComponent, ExceptionMessageService, FileCredentials, FileDescription, FileModel, FileService, FileUtil, Formatting, FormattingDirective, FormattingService, HighlightSearchPipe, HttpError, InitStateComponent, LoadingMaskComponent, LoadingMaskInterceptorService, LoadingMaskService, LogoComponent, ModalComponent, ModalService, NavigateService, OnCloseService, PageComponent, PageModel, PagePreloadService, PasswordRequiredComponent, PasswordService, RenderPrintDirective, RenderPrintService, RotatedPage, RotationDirective, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe, SaveFile, ScrollableDirective, SearchComponent, SearchService, SearchableDirective, SelectComponent, SelectionService, SidePanelComponent, SuccessModalComponent, TabActivatorService, TabComponent, TabbedToolbarsComponent, TooltipComponent, TopToolbarComponent, UploadFileZoneComponent, UploadFilesService, ViewportService, WindowService, ZoomDirective, ZoomService, TabsComponent as ɵa }; +export { Api, BackFormattingService, BrowseFilesModalComponent, ButtonComponent, ColorPickerComponent, CommonComponentsModule, CommonModals, ConfigService, CustomHammerConfig, DisabledCursorDirective, DndDirective, DocumentComponent, DropDownComponent, DropDownItemComponent, DropDownItemsComponent, DropDownToggleComponent, EditHtmlService, EditorDirective, ErrorInterceptorService, ErrorModalComponent, ExceptionMessageService, FileCredentials, FileDescription, FileModel, FileService, FileUtil, Formatting, FormattingDirective, FormattingService, HighlightSearchPipe, HttpError, InitStateComponent, LoadingMaskComponent, LoadingMaskInterceptorService, LoadingMaskService, LogoComponent, ModalComponent, ModalService, NavigateService, OnCloseService, PageComponent, PageModel, PagePreloadService, PasswordRequiredComponent, PasswordService, RenderPrintDirective, RenderPrintService, RotatedPage, RotationDirective, RotationService, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe, SaveFile, ScrollableDirective, SearchComponent, SearchService, SearchableDirective, SelectComponent, SelectionService, SidePanelComponent, SuccessModalComponent, TabActivatorService, TabComponent, TabbedToolbarsComponent, TooltipComponent, TopToolbarComponent, UploadFileZoneComponent, UploadFilesService, ViewportService, WindowService, ZoomDirective, ZoomService, TabsComponent as ɵa }; //# sourceMappingURL=groupdocs.examples.angular-common-components.js.map diff --git a/dist/libs/common-components/fesm5/groupdocs.examples.angular-common-components.js.map b/dist/libs/common-components/fesm5/groupdocs.examples.angular-common-components.js.map index 323250dc6..cf21e0132 100644 --- a/dist/libs/common-components/fesm5/groupdocs.examples.angular-common-components.js.map +++ b/dist/libs/common-components/fesm5/groupdocs.examples.angular-common-components.js.map @@ -1 +1 @@ -{"version":3,"file":"groupdocs.examples.angular-common-components.js","sources":["ng://@groupdocs.examples.angular/common-components/lib/top-toolbar/top-toolbar.component.ts","ng://@groupdocs.examples.angular/common-components/lib/side-panel/side-panel.component.ts","ng://@groupdocs.examples.angular/common-components/lib/button/button.component.ts","ng://@groupdocs.examples.angular/common-components/lib/logo/logo.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tooltip/tooltip.component.ts","ng://@groupdocs.examples.angular/common-components/lib/config.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal/modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/file.service.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-files.service.ts","ng://@groupdocs.examples.angular/common-components/lib/browse-files-modal/browse-files-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.service.ts","ng://@groupdocs.examples.angular/common-components/lib/window.service.ts","ng://@groupdocs.examples.angular/common-components/lib/document/document.component.ts","ng://@groupdocs.examples.angular/common-components/lib/page/page.component.ts","ng://@groupdocs.examples.angular/common-components/lib/pipes.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-file-zone/upload-file-zone.component.ts","ng://@groupdocs.examples.angular/common-components/lib/dnd.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/page-preload.service.ts","ng://@groupdocs.examples.angular/common-components/lib/navigate.service.ts","ng://@groupdocs.examples.angular/common-components/lib/viewport.service.ts","ng://@groupdocs.examples.angular/common-components/lib/scrollable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/on-close.service.ts","ng://@groupdocs.examples.angular/common-components/lib/select/select.component.ts","ng://@groupdocs.examples.angular/common-components/lib/disabled-cursor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/rotation.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/init-state/init-state.component.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.service.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/exception-message.service.ts","ng://@groupdocs.examples.angular/common-components/lib/error-modal/error-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/password.service.ts","ng://@groupdocs.examples.angular/common-components/lib/password-required/password-required.component.ts","ng://@groupdocs.examples.angular/common-components/lib/error-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/search.service.ts","ng://@groupdocs.examples.angular/common-components/lib/search/search.component.ts","ng://@groupdocs.examples.angular/common-components/lib/searchable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/tabbed-toolbars/tabbed-toolbars.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tab-activator.service.ts","ng://@groupdocs.examples.angular/common-components/lib/tab/tab.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tabs/tabs.component.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/color-picker/color-picker.component.ts","ng://@groupdocs.examples.angular/common-components/lib/back-formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/selection.service.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/success-modal/success-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/edit-html.service.ts","ng://@groupdocs.examples.angular/common-components/lib/editor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask.service.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask/loading-mask.component.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/drop-down/drop-down.component.ts","ng://@groupdocs.examples.angular/common-components/lib/common-components.module.ts"],"sourcesContent":["import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'gd-top-toolbar',\n templateUrl: './top-toolbar.component.html',\n styleUrls: ['./top-toolbar.component.less']\n})\nexport class TopToolbarComponent {\n\n constructor() {\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'gd-side-panel',\n templateUrl: './side-panel.component.html',\n styleUrls: ['./side-panel.component.less']\n})\n\nexport class SidePanelComponent {\n @Input() title: string;\n @Input() icon: string;\n @Output() hideSidePanel = new EventEmitter();\n\n constructor() {\n }\n\n openSidePanel() {\n this.hideSidePanel.emit(true);\n }\n}\n","import { Component, ContentChild, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'gd-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.less']\n})\nexport class ButtonComponent {\n @Input()\n iconOnly = true;\n\n @Input()\n intent = 'default';\n\n @Input()\n disabled = false;\n\n @Input()\n icon : string;\n\n @Input()\n iconClass : string;\n\n @Input()\n tooltip : string;\n\n @Input()\n className: string;\n\n @Input()\n toggle = false;\n\n showToolTip = false;\n\n iconButtonClass(){\n return this.iconOnly ? 'icon-button' : '';\n }\n\n onHovering() {\n if (!this.disabled) {\n this.className += ' active';\n }\n this.showToolTip = true;\n }\n\n onUnhovering() {\n if (!this.disabled) {\n this.className = this.className.replace(' active', '');\n }\n this.showToolTip = false;\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'gd-logo',\n templateUrl: './logo.component.html',\n styleUrls: ['./logo.component.less']\n})\nexport class LogoComponent implements OnInit {\n\n @Input() logo;\n @Input() icon;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'gd-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.less']\n})\nexport class TooltipComponent implements OnInit {\n\n @Input() text:string;\n visibility = 'hidden';\n\n constructor() {\n }\n\n @Input()\n set show(value: boolean) {\n this.visibility = value ? 'shown' : 'hidden';\n }\n\n ngOnInit() {\n }\n\n}\n","import {HttpHeaders} from \"@angular/common/http\";\nimport {Injectable} from \"@angular/core\";\n\nexport class Api {\n public static VIEWER_APP = '/viewer';\n public static EDITOR_APP = '/editor';\n public static COMPARISON_APP = '/comparison';\n public static CONVERSION_APP = '/conversion';\n public static DEFAULT_API_ENDPOINT = window.location.href;\n public static LOAD_FILE_TREE = '/loadFileTree';\n public static LOAD_CONFIG = '/loadConfig';\n public static LOAD_DOCUMENT_DESCRIPTION = '/loadDocumentDescription';\n public static LOAD_DOCUMENT_PAGE = '/loadDocumentPage';\n public static ROTATE_DOCUMENT_PAGE = '/rotateDocumentPages';\n public static UPLOAD_DOCUMENTS = '/uploadDocument';\n public static DOWNLOAD_DOCUMENTS = '/downloadDocument';\n public static LOAD_PRINT = '/loadPrint';\n public static LOAD_PRINT_PDF = '/printPdf';\n public static LOAD_THUMBNAILS = '/loadThumbnails';\n public static LOAD_FORMATS = '/loadFormats';\n public static SAVE_FILE = '/saveFile';\n public static COMPARE_FILES = '/compare';\n public static CONVERT_FILE = '/convert';\n\n public static httpOptionsJson = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n public static httpOptionsJsonResponseTypeBlob = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n responseType: 'blob' as 'blob'\n };\n}\n\n@Injectable()\nexport class ConfigService {\n\n private _apiEndpoint: string;\n\n constructor() {\n this.apiEndpoint = Api.DEFAULT_API_ENDPOINT;\n }\n\n set apiEndpoint(url: string) {\n this._apiEndpoint = url && url.trim().endsWith('/') ? url.substring(0, url.length - 1) : url;\n }\n\n getConfigEndpoint(app) {\n return (this.apiEndpoint.endsWith(app) ? this.apiEndpoint : this.apiEndpoint + app) + Api.LOAD_CONFIG;\n }\n\n getViewerApiEndpoint() {\n return this._apiEndpoint.endsWith(Api.VIEWER_APP) ? this._apiEndpoint : this._apiEndpoint + Api.VIEWER_APP;\n }\n\n getEditorApiEndpoint() {\n return this._apiEndpoint.trim().endsWith(Api.EDITOR_APP) ? this._apiEndpoint : this._apiEndpoint + Api.EDITOR_APP;\n }\n\n getComparisonApiEndpoint() {\n return this._apiEndpoint.trim().endsWith(Api.COMPARISON_APP) ? this._apiEndpoint : this._apiEndpoint + Api.COMPARISON_APP;\n }\n\n getConversionApiEndpoint() {\n return this._apiEndpoint.trim().endsWith(Api.CONVERSION_APP) ? this._apiEndpoint : this._apiEndpoint + Api.CONVERSION_APP;\n }\n\n get apiEndpoint() {\n return this._apiEndpoint;\n }\n}\n","export class CommonModals {\n static PasswordRequired = \"gd-password-required\";\n static ErrorMessage = \"gd-error-message\";\n static BrowseFiles = \"gd-browse-files\";\n static CreateDocument = \"gd-create-document\";\n static OperationSuccess = \"gd-success-modal\";\n}\n\nexport class ModalService {\n private modals: any[] = [];\n\n add(modal: any) {\n this.modals.push(modal);\n }\n\n remove(id: string) {\n this.modals = this.modals.filter(x => x.id !== id);\n }\n\n open(id: string) {\n const modal: any = this.modals.filter(x => x.id === id)[0];\n if (modal) {\n modal.open();\n }\n }\n\n close(id: string) {\n const modal: any = this.modals.filter(x => x.id === id)[0];\n if (modal) {\n modal.close();\n }\n }\n}\n","import {Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {ModalService} from \"../modal.service\";\n\n@Component({\n selector: 'gd-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.less']\n})\nexport class ModalComponent implements OnInit, OnDestroy {\n @Input() id: string;\n @Input() title: string;\n @Output() visible = new EventEmitter();\n visibility = false;\n private element: any;\n\n constructor(private modalService: ModalService, el: ElementRef) {\n this.element = el.nativeElement;\n }\n\n ngOnInit(): void {\n if (!this.id) {\n console.error('modal must have an id');\n return;\n }\n\n document.body.appendChild(this.element);\n\n this.modalService.add(this);\n }\n\n ngOnDestroy(): void {\n this.modalService.remove(this.id);\n this.element.remove();\n }\n\n open(): void {\n this.visibility = true;\n this.visible.emit(true);\n }\n\n close(): void {\n event.preventDefault();\n event.stopPropagation();\n this.visibility = false;\n this.visible.emit(false);\n }\n\n onClose($event: MouseEvent) {\n $event.stopPropagation();\n if ($event && $event.target && ($event.target).id === 'modalDialog') {\n this.close();\n }\n }\n}\n","export class PageModel {\n data: string;\n angle: number;\n width: number;\n height: number;\n number: number;\n editable: boolean;\n}\n\nexport class RotatedPage {\n pageNumber: number;\n angle: number;\n}\n\nexport class FileCredentials {\n guid: string;\n password: string;\n\n constructor(guid: string, password: string) {\n this.guid = guid;\n this.password = password;\n }\n}\n\nexport class SaveFile extends FileCredentials {\n content: string;\n\n constructor(guid: string, password: string, content: string) {\n super(guid, password);\n this.content = content;\n }\n}\n\nexport class FileDescription {\n guid: string;\n pages: PageModel[];\n printAllowed = true;\n}\n\nexport class FileModel {\n guid: string;\n name: string;\n directory: boolean;\n size: number;\n isDirectory: boolean;\n}\n\nexport class HttpError {\n static BadRequest = 400;\n static Unauthorized = 401;\n static Forbidden = 403;\n static NotFound = 404;\n static TimeOut = 408;\n static Conflict = 409;\n static InternalServerError = 500;\n}\n\nexport class FileUtil {\n public static map = {\n 'folder': {'format': '', 'icon': 'folder'},\n 'pdf': {'format': 'Portable Document Format', 'icon': 'file-pdf', 'unit': 'pt'},\n 'doc': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'docx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'docm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'dot': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'dotx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'dotm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\n 'xls': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xlsx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xlsm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xlsb': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xls2003': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xltx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'xltm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\n 'ppt': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'pptx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'pps': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'ppsx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'vsd': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vss': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vsx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vst': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vtx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vsdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vdw': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vstx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'vssx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\n 'mpp': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\n 'mpt': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\n 'msg': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\n 'eml': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\n 'emlx': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\n 'one': {'format': 'Microsoft OneNote', 'icon': 'file-word', 'unit': 'pt'},\n 'odt': {'format': 'Open Document Text', 'icon': 'file-word', 'unit': 'pt'},\n 'ott': {'format': 'Open Document Text Template', 'icon': 'file-word', 'unit': 'pt'},\n 'ods': {'format': 'Open Document Spreadsheet', 'icon': 'file-excel', 'unit': 'px'},\n 'odp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'otp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'ots': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'potx': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'potm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'pptm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'ppsm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\n 'rtf': {'format': 'Rich Text Format', 'icon': 'file-alt', 'unit': 'pt'},\n 'txt': {'format': 'Plain Text File', 'icon': 'file-alt', 'unit': 'pt'},\n 'csv': {'format': 'Comma-Separated Values', 'icon': 'file-excel', 'unit': 'px'},\n 'html': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'mht': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'mhtml': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'xml': {'format': 'Extensible Markup Language', 'icon': 'file-word', 'unit': 'pt'},\n 'xps': {'format': 'XML Paper Specification', 'icon': 'file-word', 'unit': 'pt'},\n 'dxf': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\n 'dwg': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\n 'bmp': {'format': 'Bitmap Picture', 'icon': 'file-image', 'unit': 'px'},\n 'gif': {'format': 'Graphics Interchange Format', 'icon': 'file-image', 'unit': 'px'},\n 'jpg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'jpe': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'jpeg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'jfif': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\n 'png': {'format': 'Portable Network Graphics', 'icon': 'file-image', 'unit': 'px'},\n 'tiff': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'tif': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'psd': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'svg': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'jp2': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\n 'epub': {'format': 'Electronic Publication', 'icon': 'file-pdf', 'unit': 'pt'},\n 'ico': {'format': 'Windows Icon', 'icon': 'file-image', 'unit': 'px'},\n 'webp': {'format': 'Compressed Image', 'icon': 'file-image', 'unit': 'px'},\n 'mobi': {'format': 'Mobipocket eBook', 'icon': 'file-pdf', 'unit': 'pt'},\n 'tex': {'format': 'LaTeX Source Document', 'icon': 'file-pdf', 'unit': 'pt'},\n 'djvu': {'format': 'Multi-Layer Raster Image', 'icon': 'file-alt', 'unit': 'pt'},\n 'unknown': {'format': 'This format is not supported', 'icon': 'file'},\n };\n\n public static find(filename: string, isDirectory: boolean) {\n if (filename && !isDirectory) {\n const strings = filename.split('.');\n const name = strings.pop().toLowerCase();\n if (typeof FileUtil.map[name] === \"undefined\") {\n return strings.length > 0 ? FileUtil.map['unknown'] : FileUtil.map['folder'];\n } else {\n return FileUtil.map[name];\n }\n } else {\n return FileUtil.map['folder'];\n }\n }\n}\n\nexport class FileService {\n\n constructor() {\n }\n}\n","import {Observable, Observer} from \"rxjs\";\n\nexport class UploadFilesService {\n private _uploadsChange: Observable;\n private _observer: Observer;\n\n constructor() {\n this._uploadsChange = new Observable(observer =>\n this._observer = observer);\n }\n\n get uploadsChange(): Observable {\n return this._uploadsChange;\n }\n\n changeFilesList(filesList: FileList) {\n this._observer.next(filesList);\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {FileModel, FileUtil} from \"../file.service\";\nimport {UploadFilesService} from \"../upload-files.service\";\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\nconst upload_disc = 'Disc';\n\nconst upload_url = 'URL';\n\nconst uploads_choices = [{name: upload_disc, icon: 'hdd'}, {name: upload_url, icon: 'link'}];\n\n@Component({\n selector: 'gd-browse-files-modal',\n templateUrl: './browse-files-modal.component.html',\n styleUrls: ['./browse-files-modal.component.less']\n})\nexport class BrowseFilesModalComponent implements OnInit {\n uploads = uploads_choices;\n\n @Input() files;\n @Input() uploadConfig;\n @Output() selectedFileGuid = new EventEmitter();\n @Output() selectedDirectory = new EventEmitter();\n @Output() urlForUpload = new EventEmitter();\n @Output() closing = new EventEmitter();\n private selectedFile: FileModel;\n showUploadUrl = false;\n showUploadFile = false;\n\n constructor(private _uploadService: UploadFilesService) {\n }\n\n ngOnInit() {\n }\n\n getSize(size: number) {\n const mb = size / 1024 / 1024;\n if (mb > 1) {\n return (Math.round(mb * 100) / 100) + ' MB';\n } else {\n const kb = size / 1024;\n if (kb > 1) {\n return (Math.round(kb * 100) / 100) + ' KB';\n }\n }\n return size + ' Bytes';\n }\n\n getFormatName(file: FileModel) {\n return FileUtil.find(file.name, file.directory).format;\n }\n\n getFormatIcon(file: FileModel) {\n return FileUtil.find(file.name, file.directory).icon;\n }\n\n choose(file: FileModel) {\n this.selectedFile = file;\n if (file.directory || file.isDirectory) {\n this.selectedDirectory.emit(file.name);\n } else {\n this.selectedFileGuid.emit(file.guid);\n }\n }\n\n goUp() {\n if (this.selectedFile) {\n let guid = this.selectedFile.guid;\n if (guid.length > 0 && guid.indexOf('/') === -1) {\n guid = '';\n } else {\n guid = guid.replace(/\\/[^\\/]+\\/?$/, '');\n }\n this.selectedDirectory.emit(guid);\n }\n }\n\n selectUpload($event: string) {\n if (upload_url === $event) {\n this.showUploadUrl = true;\n } else {\n this.showUploadUrl = false;\n $(\"#gd-upload-input\").trigger('click');\n }\n }\n\n refresh($event) {\n\n if ($event) {\n this.files = null;\n this.selectedDirectory.emit('');\n this.showUploadUrl = false;\n this.selectedFile = null;\n } else {\n this.closing.emit(true);\n }\n }\n\n showSpinner() {\n return !this.files;\n }\n\n uploadUrl(url: string) {\n if (url) {\n this.urlForUpload.emit(url);\n this.cleanUpload();\n }\n }\n\n handleFileInput(files: FileList) {\n this._uploadService.changeFilesList(files);\n }\n\n cleanUpload() {\n this.showUploadFile = false;\n this.showUploadUrl = false;\n }\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class ZoomService {\n private _observer: Subject = new Subject();\n private readonly _zoomChange: Observable = this._observer.asObservable();\n private _zoom: number;\n\n constructor() {\n }\n\n get zoom(): number {\n return this._zoom;\n }\n\n get zoomChange(): Observable {\n return this._zoomChange;\n }\n\n changeZoom(zoom: number) {\n this._zoom = zoom;\n this._observer.next(zoom);\n }\n\n private createZoomOption(val: any, name: string, sep: boolean = false) {\n return {value: val, name: name, separator: sep}\n }\n\n zoomOptions(width, height) {\n return [this.createZoomOption(25, '25%'),\n this.createZoomOption(50, '50%'),\n this.createZoomOption(100,'100%'),\n this.createZoomOption(150, '150%'),\n this.createZoomOption(200, '200%'),\n this.createZoomOption(300, '300%'),\n this.createZoomOption(0, '', true),\n this.createZoomOption(width, 'Fit Width'),\n this.createZoomOption(height, 'Fit Height')];\n }\n}\n","import {fromEvent, Observable, Subject} from \"rxjs\";\nimport {debounceTime, distinctUntilChanged, startWith, tap} from \"rxjs/operators\";\n\nconst MOBILE_MAX_WIDTH = 425;\nconst TABLET_MAX_WIDTH = 1024;\n\nexport class WindowService {\n\n private resizeSubject: Subject = new Subject();\n private _resize$;\n private width: number;\n private height: number;\n\n constructor() {\n this.width = window.innerWidth;\n this.height = window.innerHeight;\n\n this._resize$ = fromEvent(window, 'resize')\n .pipe(\n debounceTime(200),\n distinctUntilChanged(),\n startWith({target: {innerWidth: window.innerWidth, innerHeight: window.innerHeight}}),\n tap(event => {\n this.resizeSubject.next(event.target);\n this.width = (event.target as Window).innerWidth;\n this.height = (event.target as Window).innerHeight;\n }),\n );\n this._resize$.subscribe();\n }\n\n get onResize(): Observable {\n return this.resizeSubject.asObservable();\n }\n\n isMobile() {\n return this.width <= MOBILE_MAX_WIDTH;\n }\n\n isTablet() {\n return this.width <= TABLET_MAX_WIDTH;\n }\n\n isDesktop() {\n return !this.isMobile() && !this.isTablet();\n }\n\n isEdge() {\n return window.navigator.userAgent.toLowerCase().indexOf('edge') > -1;\n }\n\n isFirefox() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n }\n}\n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n Input,\n OnInit,\n AfterViewInit,\n OnChanges} from '@angular/core';\nimport {FileDescription, FileUtil} from \"../file.service\";\nimport {ZoomService} from \"../zoom.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\nimport * as Hammer from 'hammerjs';\nimport { WindowService } from '../window.service';\n\n@Component({\n selector: 'gd-document',\n templateUrl: './document.component.html',\n styleUrls: ['./document.component.less']\n})\nexport class DocumentComponent implements OnInit, AfterViewChecked, AfterViewInit, OnChanges {\n\n @Input() mode: boolean;\n @Input() preloadPageCount: number;\n @Input() file: FileDescription;\n wait = false;\n zoom: number;\n\n docWidth = null;\n docHeight = null;\n viewportWidth = null;\n viewportHeight = null;\n scale = null;\n lastScale = null;\n container = null;\n doc = null;\n x = 0;\n lastX = 0;\n y = 0;\n lastY = 0;\n pinchCenter = null;\n pinchCenterOffset = null;\n curWidth = 0;\n curHeight = 0;\n isDesktop: boolean;\n\n constructor(private _elementRef: ElementRef,\n private _zoomService: ZoomService,\n private _windowService: WindowService) {\n\n _zoomService.zoomChange.subscribe((val: number) => {\n this.zoom = val;\n });\n\n this.isDesktop = _windowService.isDesktop();\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n const panzoom = this._elementRef.nativeElement.children.item(0).children.item(0);\n (panzoom as any).style.transform = '';\n // TODO: this intersects with zooming by zoom directive, but still needed\n // for flush previous settings before opening another file\n //this._zoomService.changeZoom(100);\n //this.scale = 1;\n }\n \n ngAfterViewInit() {\n // For current iteration we take .panzoom as a document\n this.doc = this._elementRef.nativeElement.children.item(0).children.item(0);\n // For current iteration we take .gd-document as a container\n this.container = this._elementRef.nativeElement;\n\n this.docWidth = this.doc.clientWidth;\n this.docHeight = this.doc.clientHeight;\n this.viewportWidth = this.doc.offsetWidth;\n\n // For cases where we already have zoom defined we should include it\n this.scale = (this.viewportWidth/this.docWidth) * this._zoomService.zoom/100;\n \n this.lastScale = this.scale;\n this.viewportHeight = this.container.offsetHeight;\n this.curWidth = this.docWidth*this.scale;\n this.curHeight = this.docHeight*this.scale;\n\n const hammer = new Hammer(this.container);\n }\n\n // TODO: this temporary crutch for Excel files should be documented\n ifExcel() {\n return FileUtil.find(this.file.guid, false).format === \"Microsoft Excel\";\n }\n\n getDimensionWithUnit(value: number) {\n return value + FileUtil.find(this.file.guid, false).unit;\n }\n\n ngAfterViewChecked(): void {\n const elementNodeListOf = this._elementRef.nativeElement.querySelectorAll('.gd-wrapper');\n const element = elementNodeListOf.item(0);\n if (element) {\n $(element).trigger('focus');\n }\n }\n\n absolutePosition(el) {\n let x = 0, y = 0;\n\n while (el !== null) {\n x += el.offsetLeft;\n y += el.offsetTop;\n el = el.offsetParent;\n }\n\n return { x: x, y: y };\n };\n\n restrictRawPos(pos, viewportDim, docDim) {\n if (pos < viewportDim/this.scale - docDim) { // too far left/up?\n pos = viewportDim/this.scale - docDim;\n } else if (pos > 0) { // too far right/down?\n pos = 0;\n }\n return pos;\n };\n\n updateLastPos() {\n this.lastX = this.x;\n this.lastY = this.y;\n };\n\n translate(deltaX, deltaY) {\n // We restrict to the min of the viewport width/height or current width/height as the\n // current width/height may be smaller than the viewport width/height\n const newX = this.restrictRawPos(this.lastX + deltaX/this.scale,\n Math.min(this.viewportWidth, this.curWidth), this.docWidth);\n this.x = newX;\n // TODO: value here and in the similar line below changes to positive to take any effect\n this.container.scrollLeft = -Math.ceil(newX*this.scale);\n\n const newY = this.restrictRawPos(this.lastY + deltaY/this.scale,\n Math.min(this.viewportHeight, this.curHeight), this.docHeight);\n this.y = newY;\n this.container.scrollTop = -Math.ceil(newY*this.scale);\n \n this.doc.style.transform = 'scale(' + this.scale + ')';\n };\n\n startZoom(scaleBy) {\n this.scale = this.lastScale*scaleBy;\n\n this.curWidth = this.docWidth*this.scale;\n this.curHeight = this.docHeight*this.scale;\n\n // Adjust margins to make sure that we aren't out of bounds\n this.translate(0, 0);\n };\n\n rawCenter($event) {\n const pos = this.absolutePosition(this.container);\n\n // We need to account for the scroll position\n const scrollLeft = window.pageXOffset ? window.pageXOffset : document.body.scrollLeft;\n const scrollTop = window.pageYOffset ? window.pageYOffset : document.body.scrollTop;\n\n const zoomX = -this.x + ($event.center.x - pos.x + scrollLeft)/this.scale;\n const zoomY = -this.y + ($event.center.y - pos.y + scrollTop)/this.scale;\n\n return { x: zoomX, y: zoomY };\n };\n\n updateLastScale() {\n this.lastScale = this.scale;\n };\n\n zoomAround(scaleBy, rawZoomX, rawZoomY, doNotUpdateLast) {\n // Zoom\n this.startZoom(scaleBy);\n\n // New raw center of viewport\n const rawCenterX = -this.x + Math.min(this.viewportWidth, this.curWidth)/2/this.scale;\n const rawCenterY = -this.y + Math.min(this.viewportHeight, this.curHeight)/2/this.scale;\n\n // Delta\n const deltaX = (rawCenterX - rawZoomX)*this.scale;\n const deltaY = (rawCenterY - rawZoomY)*this.scale;\n\n // Translate back to zoom center\n this.translate(deltaX, deltaY);\n\n if (!doNotUpdateLast) {\n this.updateLastScale();\n this.updateLastPos();\n }\n };\n\n onPinch($event){\n if (this.pinchCenter === null) {\n this.pinchCenter = this.rawCenter($event);\n const offsetX = this.pinchCenter.x*this.scale - (-this.x*this.scale + Math.min(this.viewportWidth, this.curWidth)/2);\n const offsetY = this.pinchCenter.y*this.scale - (-this.y*this.scale + Math.min(this.viewportHeight, this.curHeight)/2);\n this.pinchCenterOffset = { x: offsetX, y: offsetY };\n }\n\n const newScale = this.scale*$event.scale;\n\n const zoomX = this.pinchCenter.x*newScale - this.pinchCenterOffset.x;\n const zoomY = this.pinchCenter.y*newScale - this.pinchCenterOffset.y;\n const zoomCenter = { x: zoomX/newScale, y: zoomY/newScale };\n \n this.zoomAround($event.scale, zoomCenter.x, zoomCenter.y, true);\n }\n\n onPinchEnd($event){\n this.updateLastScale();\n this.updateLastPos();\n this.pinchCenter = null;\n }\n\n onPan($event){\n // TODO: looks like native pan works better\n // if (!this.isDesktop) {\n // this.translate($event.deltaX, $event.deltaY);\n // }\n }\n\n onPanEnd($event){\n // if (!this.isDesktop) {\n // this.updateLastPos();\n // }\n }\n\n onDoubleTap($event){\n if (!this.isDesktop) {\n if ($event.tapCount === 2) {\n const c = this.rawCenter($event);\n this.zoomAround(2, c.x, c.y, false);\n }\n }\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\n\n@Component({\n selector: 'gd-page',\n templateUrl: './page.component.html',\n styleUrls: ['./page.component.less']\n})\nexport class PageComponent implements OnInit, OnChanges {\n\n @Input() angle: number;\n @Input() width: number;\n @Input() height: number;\n @Input() number: number;\n @Input() data: string;\n @Input() isHtml: boolean;\n @Input() editable: boolean;\n imgData: string;\n\n constructor() {\n }\n\n ngOnInit() {\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n if(isIE && this.number === 0){\n this.editable = false;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // TODO: this is temporary needed to remove unneeded spaces and BOM symbol \n // which leads to undesired spaces on the top of the docs pages\n this.data = this.data !== null ? this.data.replace(/>\\s+<').replace(/\\uFEFF/g,\"\") : null;\n const dataImagePngBase64 = 'data:image/png;base64,';\n this.imgData = dataImagePngBase64;\n if (!this.isHtml) {\n this.imgData += this.data;\n }\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\n\n@Pipe({name: 'safeHtml'})\nexport class SanitizeHtmlPipe implements PipeTransform{\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n\n@Pipe({name: 'safeResourceHtml'})\nexport class SanitizeResourceHtmlPipe implements PipeTransform{\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustResourceUrl(html);\n }\n}\n\n@Pipe({name: 'safeStyle'})\nexport class SanitizeStylePipe implements PipeTransform{\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustStyle(html);\n }\n}\n\n@Pipe({name: 'highlight'})\nexport class HighlightSearchPipe implements PipeTransform {\n\n transform(value: string, args: string): any {\n if (!args) {\n return value;\n }\n const re = new RegExp(args, 'gi'); //'gi' for case insensitive and can use 'g' if you want the search to be case sensitive.\n return value.replace(re, \"$&\");\n }\n}\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {UploadFilesService} from \"../upload-files.service\";\n\n@Component({\n selector: 'gd-upload-file-zone',\n templateUrl: './upload-file-zone.component.html',\n styleUrls: ['./upload-file-zone.component.less']\n})\nexport class UploadFileZoneComponent implements OnInit {\n\n @Output() closeUpload = new EventEmitter();\n\n constructor(private _uploadService: UploadFilesService) { }\n\n ngOnInit() {\n }\n\n handleFileInput(files: FileList) {\n this._uploadService.changeFilesList(files);\n this.onCloseUpload();\n }\n\n onCloseUpload() {\n this.closeUpload.emit(true);\n }\n\n close($event) {\n if ($event.target.id === 'gd-dropZone') {\n this.onCloseUpload();\n }\n }\n}\n","import {Directive, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\nimport {UploadFilesService} from \"./upload-files.service\";\n\n@Directive({\n selector: '[gdDnd]'\n})\nexport class DndDirective {\n\n @Output() closing = new EventEmitter();\n @Output() opening = new EventEmitter();\n @Output() dropped = new EventEmitter();\n\n @HostBinding('class.active') active = false;\n\n constructor(private _uploadFilesService: UploadFilesService) {\n }\n\n @HostListener('dragover', ['$event'])\n public onDragOver(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.active = true;\n this.opening.emit(true);\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.active = false;\n this.closeArea();\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n const files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.active = false;\n this.dropped.emit(true);\n this._uploadFilesService.changeFilesList(files);\n this.closeArea();\n }\n }\n\n @HostListener('click', ['$event'])\n public onClick(event) {\n this.closeArea();\n }\n\n private closeArea() {\n this.closing.emit(true);\n this.opening.emit(false);\n }\n}\n","import {Observable, Observer} from \"rxjs\";\n\nexport class PagePreloadService {\n private readonly _checkPreload: Observable;\n private _observer: Observer;\n\n constructor() {\n this._checkPreload = new Observable(observer =>\n this._observer = observer);\n }\n\n get checkPreload(): Observable {\n return this._checkPreload;\n }\n\n changeLastPageInView(page: number) {\n if(this._observer) {\n this._observer.next(page);\n }\n }\n}\n","import {Observable, Observer} from \"rxjs\";\nimport {PagePreloadService} from \"./page-preload.service\";\nimport {Injectable} from \"@angular/core\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigateService {\n private _currentPage = 0;\n private _countPages = 0;\n private readonly _navigate: Observable;\n private _observer: Observer;\n\n constructor(private _pagePreloadService: PagePreloadService) {\n this._navigate = new Observable(observer =>\n this._observer = observer);\n }\n\n get navigate(): Observable {\n return this._navigate;\n }\n\n get countPages(): number {\n return this._countPages;\n }\n\n set countPages(value: number) {\n this._countPages = value;\n }\n\n get currentPage(): number {\n return this._currentPage;\n }\n\n set currentPage(value: number) {\n this._currentPage = value;\n }\n\n nextPage() {\n if (this._currentPage < this._countPages) {\n this._currentPage++;\n this.navigateTo(this._currentPage);\n }\n }\n\n prevPage() {\n if (this._currentPage > 1) {\n this._currentPage--;\n this.navigateTo(this._currentPage);\n }\n }\n\n toLastPage() {\n this._currentPage = this._countPages;\n this.navigateTo(this._currentPage);\n }\n\n toFirstPage() {\n this._currentPage = 1;\n this.navigateTo(this._currentPage);\n }\n\n navigateTo(page: number) {\n this.currentPage = page;\n this._pagePreloadService.changeLastPageInView(page);\n this._observer.next(page);\n }\n}\n","import {Injectable} from '@angular/core';\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewportService {\n\n constructor() {\n }\n\n checkInViewport(el, zoom: number = 100, leftOffset: number = 0, deltaX: number = 0.5) {\n if (!el) {\n return false;\n }\n const x = deltaX;\n const y = 0.5;\n\n const win = $(window);\n\n const viewport = {\n top: win.scrollTop(),\n left: win.scrollLeft() + leftOffset,\n right: win.scrollLeft() + win.width() - 10,\n bottom: win.scrollTop() + win.height()\n };\n\n\n if (isNaN(zoom)) {\n zoom = 100;\n }\n\n const zoomN = zoom / 100;\n const height = $(el).outerHeight() * (zoomN);\n const width = $(el).outerWidth() * (zoomN);\n\n if (!width || !height) {\n return false;\n }\n\n const bounds = $(el).offset();\n const right = (bounds.left * (zoomN)) + width;\n const bottom = (bounds.top * (zoomN)) + height;\n\n const visible = (!(viewport.right < (bounds.left * (zoomN)) || viewport.left > right || viewport.bottom < (bounds.top * (zoomN)) || viewport.top > bottom));\n\n if (!visible) {\n return false;\n }\n\n const deltas = {\n top: parseFloat(Math.min(1, (bottom - viewport.top) / height).toFixed(2)),\n bottom: parseFloat(Math.min(1, (viewport.bottom - (bounds.top * (zoomN))) / height).toFixed(2)),\n left: parseFloat(Math.min(1, (right - viewport.left) / width).toFixed(2)),\n right: parseFloat(Math.min(1, (viewport.right - (bounds.left * (zoomN))) / width).toFixed(2))\n };\n\n return (deltas.left * deltas.right) >= x && (deltas.top * deltas.bottom) >= y;\n }\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges\n} from '@angular/core';\nimport {NavigateService} from \"./navigate.service\";\nimport {PagePreloadService} from \"./page-preload.service\";\nimport {ZoomService} from \"./zoom.service\";\nimport {WindowService} from \"./window.service\";\nimport {ViewportService} from \"./viewport.service\";\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Directive({\n selector: '[gdScrollable]'\n})\nexport class ScrollableDirective implements AfterViewInit, OnChanges, OnInit {\n\n private currentPage: number;\n private zoom = 100;\n\n constructor(private _elementRef: ElementRef,\n private _navigateService: NavigateService,\n private _pagePreloadService: PagePreloadService,\n private _zoomService: ZoomService,\n private _windowService: WindowService,\n private _viewportService: ViewportService) {\n\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\n _zoomService.zoomChange.subscribe((val: number) => {\n this.zoom = val ? val : this.zoom;\n this.refresh();\n });\n }\n\n ngAfterViewInit() {\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\n this._navigateService.navigate.subscribe((value => {\n this.currentPage = value;\n this.scrollToPage(value);\n }));\n this.refresh();\n }\n\n @HostListener('scroll') scrolling() {\n this.refresh();\n }\n\n @HostListener('window:resize') resizing() {\n this.refresh();\n }\n\n scrollToPage(pageNumber: number) {\n const el = this._elementRef.nativeElement;\n const page = this.getPage(pageNumber);\n const prev = pageNumber > 0 ? this.getPage(pageNumber - 1) : null;\n const isSameTop = (prev && $(prev).offset().top === $(page).offset().top);\n if (this._viewportService.checkInViewport(page, this.zoom) && isSameTop) {\n return;\n }\n const pagesHeight = this.calculateOffset(pageNumber);\n const options = {\n left: 0,\n top: pagesHeight\n };\n if(el){\n // using polyfill\n el.scroll(options);\n }\n }\n\n private getChildren() {\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n // here and in the similar line below we getting the document pages\n return el.children.item(0).children.item(0).children;\n }\n }\n\n private getPage(pageNumber: number) {\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n return el.children.item(0).children.item(0).children.item(pageNumber - 1);\n }\n }\n\n private calculateOffset(pageNumber: number) {\n const count = this._windowService.isFirefox() ? 1 : this.countPagesOnWidth();\n const margin = this._windowService.isDesktop() ? 40 : 10;\n let pagesHeight = 0;\n for (let i = 1; i < pageNumber / count; i++) {\n const item = this.getPage(i);\n const clientHeight = item ? item.clientHeight : 0;\n pagesHeight += clientHeight > 0 ? clientHeight * this.getZoom() + margin : 0;\n }\n return pagesHeight;\n }\n\n private countPagesOnWidth() {\n const pageEl = this.getPage(1);\n const offset = 150;\n const count = Math.floor((this.getWidth() - offset) / (pageEl.getBoundingClientRect().width * this.getZoom()));\n return count === 0 ? 1 : count;\n }\n\n refresh() {\n let page;\n let currentPageSet = false;\n const pageElem = this.getPage(this.currentPage);\n const currentPageRect = this.currentPage && pageElem ? pageElem.getBoundingClientRect() : null;\n for (page = 1; page < this.getChildren().length + 1; page++) {\n const element = this.getPage(page);\n if (this._viewportService.checkInViewport(element, this.zoom)) {\n if (!currentPageSet) {\n if (!this.currentPage || !pageElem || (this.currentPage && currentPageRect && element.getBoundingClientRect().top !== currentPageRect.top)) {\n this.currentPage = page;\n this._navigateService.currentPage = page;\n }\n currentPageSet = true;\n }\n this._pagePreloadService.changeLastPageInView(page);\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.refresh();\n }\n\n ngOnInit(): void {\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\n }\n\n\n private getWidth() {\n return this._elementRef ? this._elementRef.nativeElement.offsetWidth : window.innerWidth;\n }\n\n private getZoom() {\n return this.zoom / 100;\n }\n}\n","import {AfterViewInit, Directive, HostBinding, Input, OnDestroy, OnInit, ElementRef, OnChanges} from '@angular/core';\nimport {ZoomService} from \"./zoom.service\";\nimport {FileUtil} from \"./file.service\";\nimport { WindowService } from './window.service';\n\n@Directive({\n selector: '[gdZoom]'\n})\nexport class ZoomDirective implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n @Input() zoomActive = true;\n @Input() file;\n\n @HostBinding('style.zoom') zoomInt: number;\n @HostBinding('style.transform') transform: string;\n @HostBinding('style.transform-origin') transformOrigin: string;\n @HostBinding('style.width') width: string;\n @HostBinding('style.min-width') minWidth: string;\n el: ElementRef;\n\n constructor(private _zoomService: ZoomService, private _windowService: WindowService, el: ElementRef) {\n this.el = el;\n }\n\n ngOnDestroy(): void {\n }\n\n ngOnChanges(): void {\n this.setStyles(this._zoomService.zoom);\n this.resizePages(this._zoomService.zoom);\n }\n\n ngOnInit(): void {\n if (! this.zoomActive) {\n return;\n }\n\n this.setStyles(this._zoomService.zoom);\n this._zoomService.zoomChange.subscribe((zoom) => {\n this.setStyles(zoom);\n this.resizePages(zoom);\n });\n }\n\n private setStyles(zoom) {\n if (! this.zoomActive) {\n return;\n }\n\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\n \n if (this._windowService.isEdge()) {\n this.zoomInt = zoomInt;\n }\n else {\n this.zoomInt = null;\n }\n \n if (!this._windowService.isEdge()) {\n this.transform = 'scale(' + zoomInt + ')';\n this.transformOrigin = 'top left';\n }\n else {\n this.transform = \"\";\n this.transformOrigin = \"\";\n }\n\n let maxWidth = 0;\n this.file.pages.forEach(page => {\n {\n if (page.width > maxWidth){\n maxWidth = page.width;\n }\n }\n });\n\n // Images and Excel-related files receiving dimensions in px from server\n this.minWidth = maxWidth + FileUtil.find(this.file.guid, false).unit;\n }\n\n private getScrollWidth(elm){\n return elm.offsetWidth - elm.clientWidth;\n }\n\n private resizePages(zoom){\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\n\n const viewPortWidth = this.el.nativeElement.parentElement.offsetWidth;\n const scrollWidth = this.getScrollWidth(this.el.nativeElement.parentElement);\n this.width = (viewPortWidth/zoomInt - scrollWidth/zoomInt) + 'px';\n }\n\n ngAfterViewInit(): void {\n this.setStyles(this._zoomService.zoom);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Subject} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnCloseService {\n private _observer: Subject = new Subject();\n private readonly _onClose: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get onClose() {\n return this._onClose;\n }\n\n close(close: boolean) {\n this._observer.next(close)\n }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {OnCloseService} from \"../on-close.service\";\n\nexport interface Option {\n name: string;\n value: any;\n separator: boolean;\n}\n\n@Component({\n selector: 'gd-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.less']\n})\nexport class SelectComponent {\n\n @Input() options: Option[];\n @Input() disabled = false;\n @Input() showSelected: Option;\n @Output() selected: EventEmitter = new EventEmitter();\n isOpen = false;\n\n constructor(private _onCloseService: OnCloseService) {\n _onCloseService.onClose.subscribe(() => {\n this.close();\n });\n }\n\n open() {\n if (!this.disabled) {\n this.isOpen = true;\n }\n }\n\n close() {\n this.isOpen = false;\n }\n\n onClickOutside(event : Event){\n this.close();\n }\n\n toggle($event) {\n $event.preventDefault();\n $event.stopPropagation();\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n select($event, value: Option) {\n $event.preventDefault();\n $event.stopPropagation();\n this.selected.emit(value);\n this.close();\n }\n\n}\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\n\n@Directive({\n selector: '[gdDisabledCursor]'\n})\nexport class DisabledCursorDirective implements OnInit, OnChanges {\n\n @Input() dis: boolean;\n\n constructor() {\n }\n\n @HostBinding('class.inactive') cursor: boolean;\n\n private updateCursor() {\n this.cursor = this.dis ? true : false;\n }\n\n ngOnInit(): void {\n this.updateCursor();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateCursor()\n }\n}\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\n\n@Directive({\n selector: '[gdRotation]'\n})\nexport class RotationDirective implements OnInit, OnChanges {\n\n @Input() angle: number;\n @Input() isHtmlMode: boolean;\n @Input() width: number;\n @Input() height: number;\n @Input() withMargin = true;\n\n @HostBinding('style.animation') animation: string;\n @HostBinding('style.transition-property') transition: string;\n @HostBinding('style.transform') transform: string;\n\n @HostBinding('style.margin') margin: string;\n\n constructor() {\n }\n\n private updateCursor() {\n if (typeof this.angle === \"string\"){\n this.angle = parseInt(this.angle, 10);\n }\n\n if (this.angle) {\n this.animation = 'none';\n this.transition = 'none';\n this.transform = 'rotate(' + this.angle + 'deg)';\n } else if (this.angle === 0 && this.animation) {\n this.animation = null;\n this.transition = null;\n this.transform = null;\n }\n\n if (this.withMargin) {\n if (this.angle === 90 || this.angle === 270 || this.angle === -90 || this.angle === -270) {\n if (this.isHtmlMode) {\n if (this.isLandscape()) {\n this.margin = '164px 254px';\n } else {\n this.margin = '-111px 254px';\n }\n } else {\n if (this.isLandscape()) {\n this.margin = '129px 100px -79px';\n } else {\n this.margin = '-72px 100px -79px';\n }\n }\n } else if (this.angle === -180 || this.angle === 180) {\n this.margin = '280px';\n } else {\n this.margin = null;\n }\n }\n\n }\n\n isLandscape() {\n return this.width > this.height;\n }\n\n ngOnInit(): void {\n this.updateCursor();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateCursor()\n }\n\n}\n","import {Component, Input, Output, EventEmitter, OnInit} from '@angular/core';\n\n@Component({\n selector: 'gd-init-state',\n templateUrl: './init-state.component.html',\n styleUrls: ['./init-state.component.less']\n})\nexport class InitStateComponent implements OnInit {\n @Input() icon: string;\n @Input() text: string;\n @Output() fileDropped = new EventEmitter();\n showUploadFile = false;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n dropped($event) {\n if ($event) {\n this.fileDropped.emit($event);\n this.showUploadFile = false;\n }\n }\n}\n","import {Observable, Observer} from \"rxjs\";\nimport {PageModel} from \"./file.service\";\n\nexport class RenderPrintService {\n private _render: Observable;\n private _observer: Observer;\n private _renderBlob: Observable;\n private _observerBlob: Observer;\n\n constructor() {\n this._render = new Observable(observer =>\n this._observer = observer);\n this._renderBlob = new Observable(observer =>\n this._observerBlob = observer);\n }\n\n get renderPrint(): Observable {\n return this._render;\n }\n\n changePages(pages: PageModel[]) {\n this._observer.next(pages);\n }\n\n get renderPrintBlob(): Observable {\n return this._renderBlob;\n }\n\n changeBlob(file: Blob) {\n this._observerBlob.next(file);\n }\n}\n","import {Directive, Input} from '@angular/core';\nimport {PageModel} from \"./file.service\";\nimport {RenderPrintService} from \"./render-print.service\";\n\n@Directive({\n selector: '[gdRenderPrint]'\n})\nexport class RenderPrintDirective {\n @Input() htmlMode: boolean;\n\n constructor(private _renderService: RenderPrintService) {\n _renderService.renderPrint.subscribe(pages => {\n this.renderPrint(pages);\n });\n _renderService.renderPrintBlob.subscribe(file => {\n this.renderPrintBlob(file);\n });\n }\n\n private renderPrint(pages: PageModel[]) {\n let pagesHtml = '';\n if (this.htmlMode) {\n for (const page of pages) {\n pagesHtml += '
' +\n '
' + page.data + '
' +\n '
';\n }\n } else {\n for (const page of pages) {\n pagesHtml += '
' +\n '
' +\n '
';\n }\n }\n this.openWindow(pagesHtml, pages[0].width, pages[0].height);\n }\n\n private openWindow(pagesHtml, width, height) {\n const a4Height = 842;\n const a4Width = 595;\n let imageA4Adjusted = '';\n if(width > a4Width && height > a4Height){\n const zoom = Math.round(height / a4Height) / 100;\n imageA4Adjusted = '.gd-page img { width: 100%; margin: 0; padding: 0;}';\n if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1){\n imageA4Adjusted = '.gd-page img { transform: scale(' + zoom + ');}';\n }\n }\n let cssPrint = '';\n\n const windowObject = window.open('', \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\n windowObject.focus();\n windowObject.document.writeln(cssPrint);\n windowObject.document.writeln(pagesHtml);\n windowObject.document.close();\n windowObject.focus();\n windowObject.print();\n windowObject.close();\n }\n\n private renderPrintBlob(file: Blob) {\n const fileURL = URL.createObjectURL(file);\n const windowObject = window.open(fileURL, \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\n windowObject.focus();\n windowObject.print();\n windowObject.close();\n }\n}\n","import {BehaviorSubject, Observable} from \"rxjs\";\n\nexport class ExceptionMessageService {\n private _observer: BehaviorSubject = new BehaviorSubject('Server is not available');\n private _messageChange: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get messageChange(): Observable {\n return this._messageChange;\n }\n\n changeMessage(message: string) {\n this._observer.next(message);\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {ExceptionMessageService} from \"../exception-message.service\";\n\n@Component({\n selector: 'gd-error-modal',\n templateUrl: './error-modal.component.html',\n styleUrls: ['./error-modal.component.less']\n})\nexport class ErrorModalComponent implements OnInit {\n\n message: string;\n\n constructor(messageService: ExceptionMessageService) {\n messageService.messageChange.subscribe(message => this.message = message);\n }\n\n ngOnInit() {\n }\n\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class PasswordService {\n private _observer: Subject = new Subject();\n private readonly _passChange: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get passChange(): Observable {\n return this._passChange;\n }\n\n setPassword(pass: string) {\n this._observer.next(pass);\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {ExceptionMessageService} from \"../exception-message.service\";\nimport {PasswordService} from \"../password.service\";\n\n@Component({\n selector: 'gd-password-required',\n templateUrl: './password-required.component.html',\n styleUrls: ['./password-required.component.less']\n})\nexport class PasswordRequiredComponent implements OnInit {\n message: string;\n\n constructor(messageService: ExceptionMessageService, private _passwordService: PasswordService) {\n messageService.messageChange.subscribe(message => this.message = message);\n }\n\n ngOnInit() {\n }\n\n setPassword(value: string) {\n this._passwordService.setPassword(value);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\nimport {Observable, throwError} from \"rxjs\";\nimport {catchError, map} from \"rxjs/operators\";\nimport {ExceptionMessageService} from \"./exception-message.service\";\nimport {HttpError} from \"./file.service\";\nimport {CommonModals, ModalService} from \"./modal.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorInterceptorService implements HttpInterceptor {\n\n constructor(private _modalService: ModalService, private _messageService: ExceptionMessageService) {\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n const logFormat = 'background: maroon; color: white';\n\n return next.handle(req)\n .pipe(map(data => {\n return data;\n }),\n catchError((exception: HttpEvent) => {\n if (exception instanceof HttpErrorResponse) {\n switch (exception.status) {\n\n case HttpError.BadRequest:\n console.error('%c Bad Request 400', logFormat);\n break;\n case HttpError.Unauthorized:\n console.error('%c Unauthorized 401', logFormat);\n break;\n case HttpError.NotFound:\n console.error('%c Not Found 404', logFormat);\n break;\n case HttpError.TimeOut:\n console.error('%c TimeOut 408', logFormat);\n break;\n case HttpError.InternalServerError:\n console.error('%c big bad 500', logFormat);\n this._messageService.changeMessage(exception.error.message);\n this._modalService.open(CommonModals.ErrorMessage);\n break;\n\n case HttpError.Forbidden:\n console.error('%c Forbidden 403', logFormat);\n this._messageService.changeMessage(exception.error.message);\n this._modalService.open(CommonModals.PasswordRequired);\n break;\n }\n }\n return throwError(exception);\n }));\n }\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class SearchService {\n private _observer: Subject = new Subject();\n private readonly _textChange: Observable = this._observer.asObservable();\n\n private _observerCurrent: Subject = new Subject();\n private readonly _currentChange: Observable = this._observerCurrent.asObservable();\n\n private _observerTotal: Subject = new Subject();\n private readonly _totalChange: Observable = this._observerTotal.asObservable();\n\n constructor() {\n }\n\n get textChange(): Observable {\n return this._textChange;\n }\n\n setText(text: string) {\n this._observer.next(text);\n }\n\n get currentChange(): Observable {\n return this._currentChange;\n }\n\n get totalChange(): Observable {\n return this._totalChange;\n }\n\n setCurrent(current: number) {\n this._observerCurrent.next(current);\n }\n\n setTotal(total: number) {\n this._observerTotal.next(total);\n }\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\nimport {SearchService} from \"../search.service\";\n\n@Component({\n selector: 'gd-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.less']\n})\nexport class SearchComponent implements OnInit, AfterViewInit {\n\n @Output() hidePanel = new EventEmitter(false);\n\n current = 0;\n total = 0;\n\n @ViewChild('text',{\n static : true\n }) textElement: ElementRef;\n\n constructor(private _searchService: SearchService) {\n _searchService.totalChange.subscribe((total: number) => {\n this.total = total;\n if (total !== 0) {\n this.current = 1;\n } else {\n this.current = 0;\n }\n this._searchService.setCurrent(this.current);\n });\n }\n\n ngOnInit() {\n }\n\n setText(text: string) {\n this._searchService.setText(text);\n }\n\n hide() {\n this.setText('');\n this.hidePanel.emit(true);\n }\n\n prev() {\n if (this.current > 1) {\n this.current--;\n this._searchService.setCurrent(this.current);\n }\n }\n\n next() {\n if (this.current < this.total) {\n this.current++;\n this._searchService.setCurrent(this.current);\n }\n }\n\n ngAfterViewInit(): void {\n this.textElement.nativeElement.focus();\n }\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {SearchService} from \"./search.service\";\nimport {HighlightSearchPipe} from \"./pipes\";\nimport {ZoomService} from \"./zoom.service\";\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Directive({\n selector: '[gdSearchable]'\n})\nexport class SearchableDirective {\n\n text: string;\n current = 0;\n total = 0;\n private zoom = 100;\n\n constructor(private _elementRef: ElementRef,\n private _searchService: SearchService,\n private _highlight: HighlightSearchPipe,\n private _zoomService: ZoomService) {\n _searchService.currentChange.subscribe((current: number) => {\n this.current = current;\n if (this.current !== 0) {\n this.moveToCurrent();\n }\n });\n\n _searchService.textChange.subscribe((text: string) => {\n this.text = text;\n this.highlightSearch();\n });\n\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\n _zoomService.zoomChange.subscribe((val: number) => {\n this.zoom = val ? val : this.zoom;\n });\n }\n\n private highlightSearch() {\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n this.cleanHighlight(el);\n if (this.text) {\n this.highlightEl(el);\n const count = el.querySelectorAll('.gd-highlight').length;\n this.total = count;\n } else {\n this.total = 0;\n }\n this._searchService.setTotal(this.total);\n }\n }\n\n private moveToCurrent() {\n if (this.current === 0) {\n return;\n }\n const currentZoom = this.getZoom();\n const el = this._elementRef ? this._elementRef.nativeElement : null;\n if (el) {\n el.querySelectorAll('.gd-highlight-select').forEach(function (value) {\n $(value).removeClass('gd-highlight-select');\n });\n const currentEl = el.querySelectorAll('.gd-highlight')[this.current - 1];\n $(currentEl).addClass('gd-highlight-select');\n if (currentEl) {\n const options = {\n left: 0,\n top: ($(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150,\n };\n // using polyfill\n el.parentElement.parentElement.scroll(options);\n }\n }\n }\n\n private highlightEl(el: Element) {\n const textNodes = $(el).find('*').contents().filter(function () {\n const nodeName = this.parentElement.nodeName.toLowerCase();\n const checkClass = (this).classList ? !(this).classList.contains('gd-highlight') : true;\n return this.nodeType === 3 &&\n this.textContent.trim().length !== 0 &&\n nodeName !== 'style' &&\n nodeName !== 'title' &&\n nodeName !== 'body' &&\n nodeName !== 'script' &&\n checkClass;\n });\n const text = this.text;\n const highlight = this._highlight;\n textNodes.each(function () {\n const $this = $(this);\n let content = $this.text();\n content = highlight.transform(content, text);\n $this.replaceWith(content);\n });\n el.normalize();\n }\n\n private cleanHighlight(el: HTMLElement) {\n const nodeListOf = el.querySelectorAll('.gd-highlight');\n for (let i = 0; i < nodeListOf.length; i++) {\n const element = nodeListOf.item(i);\n element.replaceWith((element).innerText);\n }\n el.normalize();\n }\n\n private getZoom() {\n return this.zoom / 100;\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'gd-tabbed-toolbars',\n templateUrl: './tabbed-toolbars.component.html',\n styleUrls: ['./tabbed-toolbars.component.less']\n})\nexport class TabbedToolbarsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class TabActivatorService {\n private _observer: Subject = new Subject();\n private readonly _activeTabChange: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get activeTabChange(): Observable {\n return this._activeTabChange;\n }\n\n changeActiveTab(tabId: string) {\n this._observer.next(tabId);\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {TabActivatorService} from \"../tab-activator.service\";\n\n@Component({\n selector: 'gd-tab',\n templateUrl: './tab.component.html',\n styleUrls: ['./tab.component.less']\n})\nexport class TabComponent implements OnInit {\n @Input() id: string;\n @Input() tabTitle: string;\n @Input() icon: string;\n @Input() disabled = false;\n @Input() active = false;\n @Input() content = true;\n\n constructor(private _tabActivatorService: TabActivatorService) {\n this._tabActivatorService.activeTabChange.subscribe((tabId: string) => {\n this.activation(tabId);\n });\n }\n\n private activation(tabId: string) {\n if (this.id === tabId) {\n this.active = true;\n } else {\n this.active = false;\n }\n }\n\n ngOnInit() {\n }\n\n selectTab() {\n if (this.disabled) {\n return;\n }\n this._tabActivatorService.changeActiveTab(this.id);\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'gd-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.less']\n})\nexport class TabsComponent {\n constructor() {\n }\n\n}\n","import {Observable, Subject} from \"rxjs\";\n\nexport class Formatting {\n static DEFAULT: Formatting = new Formatting(10, '#000000', '#FFFFFF', false, false, false, 'Arial', false, \"\", \"\");\n\n constructor(fontSize: number, color: string, bgColor: string, bold: boolean, italic: boolean, underline: boolean, font: string, strikeout: boolean, align: string, list: string) {\n this.fontSize = fontSize;\n this.color = color;\n this.bgColor = bgColor;\n this.bold = bold;\n this.italic = italic;\n this.underline = underline;\n this.font = font;\n this.strikeout = strikeout;\n this.align = align;\n this.list = list;\n }\n\n bold: boolean;\n italic: boolean;\n underline: boolean;\n fontSize: number;\n color: string;\n bgColor: string;\n font: string;\n strikeout: boolean;\n align: string;\n list: string;\n}\n\nexport class FormattingService {\n private _observerBold: Subject = new Subject();\n private readonly _formatBoldChange: Observable = this._observerBold.asObservable();\n private _observerUnderline: Subject = new Subject();\n private readonly _formatUnderlineChange: Observable = this._observerUnderline.asObservable();\n private _observerUndo: Subject = new Subject();\n private readonly _undo: Observable = this._observerUndo.asObservable();\n private _observerRedo: Subject = new Subject();\n private readonly _redo: Observable = this._observerRedo.asObservable();\n private _observerItalic: Subject = new Subject();\n private readonly _formatItalicChange: Observable = this._observerItalic.asObservable();\n private _observerColor: Subject = new Subject();\n private readonly _formatColorChange: Observable = this._observerColor.asObservable();\n private _observerBgColor: Subject = new Subject();\n private readonly _formatBgColorChange: Observable = this._observerBgColor.asObservable();\n private _observerFontSize: Subject = new Subject();\n private readonly _formatFontSizeChange: Observable = this._observerFontSize.asObservable();\n private _observerFont: Subject = new Subject();\n private readonly _formatFontChange: Observable = this._observerFont.asObservable();\n private _observerStrikeout: Subject = new Subject();\n private readonly _formatStrikeoutChange: Observable = this._observerStrikeout.asObservable();\n private _observerAlign: Subject = new Subject();\n private readonly _formatAlignChange: Observable = this._observerAlign.asObservable();\n private _observerList: Subject = new Subject();\n private readonly _formatListChange: Observable = this._observerList.asObservable();\n\n constructor() {\n }\n\n get formatBoldChange() {\n return this._formatBoldChange;\n }\n\n get formatUnderlineChange() {\n return this._formatUnderlineChange;\n }\n\n get formatColorChange() {\n return this._formatColorChange;\n }\n\n get formatBgColorChange() {\n return this._formatBgColorChange;\n }\n\n get formatFontSizeChange() {\n return this._formatFontSizeChange;\n }\n\n get formatFontChange() {\n return this._formatFontChange;\n }\n\n get undo() {\n return this._undo;\n }\n\n get redo() {\n return this._redo;\n }\n\n get formatItalicChange() {\n return this._formatItalicChange;\n }\n\n get formatStrikeoutChange() {\n return this._formatStrikeoutChange;\n }\n\n get formatAlignChange() {\n return this._formatAlignChange;\n }\n\n get formatListChange() {\n return this._formatListChange;\n }\n\n static createFontSizeOption(val: number) {\n return {value: val, name: val + 'px', separator: false}\n }\n\n static getFontSizeOptions() {\n return [\n FormattingService.createFontSizeOption(8),\n FormattingService.createFontSizeOption(10),\n FormattingService.createFontSizeOption(12),\n FormattingService.createFontSizeOption(14),\n FormattingService.createFontSizeOption(16),\n FormattingService.createFontSizeOption(18),\n FormattingService.createFontSizeOption(20),\n FormattingService.createFontSizeOption(22),\n FormattingService.createFontSizeOption(24),\n ];\n }\n\n static createFontOption(val: string) {\n return {value: val, name: val, separator: false}\n }\n\n static getFontOptions() {\n const fonts = [\"Arial\", \"Calibri\", \"Century Gothic\", \"Comic Sans\", \"Consolas\", \"Courier\", \"Dejavu Sans\", \"Dejavu Serif\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Lucida Sans\",\n \"Myriad Pro\", \"Open Sans\", \"Palatino\", \"Tahoma\", \"Times New Roman\", \"Trebuchet\"];\n const fontOptions = [];\n fonts.forEach(font=> {\n fontOptions.push(this.createFontOption(font));\n })\n\n return fontOptions;\n }\n\n changeFormatFontSize($event: number) {\n this._observerFontSize.next($event);\n }\n\n changeFormatBold(bold: boolean) {\n this._observerBold.next(bold);\n }\n\n changeFormatUnderline(underline: boolean) {\n this._observerUnderline.next(underline);\n }\n\n Undo() {\n this._observerUndo.next();\n }\n\n Redo() {\n this._observerRedo.next();\n }\n\n changeFormatItalic(italic: boolean) {\n this._observerItalic.next(italic);\n }\n\n changeFormatColor(color: string) {\n this._observerColor.next(color);\n }\n\n changeFormatBgColor(bgcolor: string) {\n this._observerBgColor.next(bgcolor);\n }\n\n changeFormatFont(font: string) {\n this._observerFont.next(font);\n }\n\n changeFormatStrikeout(strikeout: boolean) {\n this._observerStrikeout.next(strikeout);\n }\n\n changeFormatAlign(align: string) {\n this._observerAlign.next(align);\n }\n\n changeFormatList(list: string) {\n this._observerList.next(list);\n }\n}\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\n\nconst DEFAULT_COLORS = ['#000000', '#993300', '#333300', '#000080', '#333399', '#333333',\n '#800000', '#FF6600', '#808000', '#008000', '#008080', '#0000FF',\n '#666699', '#808080', '#FF0000', '#FF9900', '#99CC00', '#339966',\n '#33CCCC', '#3366FF', '#800080', '#999999', '#FF00FF', '#FFCC00',\n '#FFFF00', '#00FF00', '#00FFFF', '#00CCFF', '#993366', '#C0C0C0',\n '#FF99CC', '#FFCC99', '#FFFF99', '#CCFFFF', '#99CCFF', '#FFFFFF'];\n\n\n@Component({\n selector: 'gd-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.less']\n})\nexport class ColorPickerComponent implements OnInit {\n @Output() selectedColor = new EventEmitter();\n colors: any = DEFAULT_COLORS;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n select($event, color: string) {\n $event.preventDefault();\n $event.stopPropagation();\n this.selectedColor.emit(color);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {FormattingService} from \"./formatting.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BackFormattingService extends FormattingService {\n\n constructor() {\n super();\n }\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SelectionService {\n selection: Range;\n isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n\n restoreSelection() {\n if(this.selection && !this.selection.collapsed || this.isIE){\n this.putSelection(this.selection );\n }\n }\n\n captureSelection() {\n const selection = window.getSelection();\n if (selection.rangeCount > 0) {\n this.selection = selection.getRangeAt(0);\n }\n }\n\n private putSelection(selection) {\n const sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(selection.cloneRange());\n }\n\n refreshSelection() {\n this.captureSelection();\n this.restoreSelection();\n }\n}\n","import {Directive, HostListener, OnInit} from '@angular/core';\nimport {FormattingService} from \"./formatting.service\";\nimport {BackFormattingService} from \"./back-formatting.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\nimport {SelectionService} from './selection.service';\n\n@Directive({\n selector: '[gdFormatting]'\n})\nexport class FormattingDirective implements OnInit {\n\n private bold = false;\n private italic = false;\n private underline = false;\n private color: string;\n private bgColor: string;\n private font: string;\n private strikeout = false;\n private align: string;\n private list: string;\n private isIE = false;\n\n constructor(private _formattingService: FormattingService,\n private _backFormattingService: BackFormattingService,\n private _selectionService: SelectionService) {\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n }\n\n @HostListener('mouseup') mouseup() {\n\n this.bold = document.queryCommandState(\"bold\");\n this.strikeout = document.queryCommandState(\"strikeThrough\");\n this.italic = document.queryCommandState(\"italic\");\n this.bgColor = document.queryCommandValue(\"backColor\");\n this.underline = document.queryCommandState(\"underline\");\n this.align = this.checkJustify();\n this.list = this.checkList();\n\n //fix required by FireFox to get correct background color\n if (this.bgColor === \"transparent\") {\n this.bgColor = $(window.getSelection().focusNode.parentNode).css('background-color').toString();\n }\n this.font = document.queryCommandValue(\"FontName\").replace(/\"/g, '');\n if(this.font.split(\",\").length > 1){\n this.font = this.font.split(\",\")[0];\n }\n this.color = document.queryCommandValue(\"foreColor\");\n this._backFormattingService.changeFormatBold(this.bold);\n this._backFormattingService.changeFormatUnderline(this.underline);\n this._backFormattingService.changeFormatItalic(this.italic);\n this._backFormattingService.changeFormatColor(this.color);\n this._backFormattingService.changeFormatBgColor(this.bgColor);\n this._backFormattingService.changeFormatFontSize(this.reportFontSize());\n this._backFormattingService.changeFormatFont(this.font);\n this._backFormattingService.changeFormatStrikeout(this.strikeout);\n this._backFormattingService.changeFormatAlign(this.align);\n this._backFormattingService.changeFormatList(this.list);\n }\n\n private checkJustify() {\n let align = \"\";\n align = document.queryCommandState(\"justifyCenter\") ? \"center\" : align;\n align = document.queryCommandState(\"justifyFull\") ? \"full\" : align;\n align = document.queryCommandState(\"justifyLeft\") ? \"left\" : align;\n align = document.queryCommandState(\"justifyRight\") ? \"right\" : align;\n return align;\n }\n\n private checkList() {\n let list = \"\";\n list = document.queryCommandState(\"insertUnorderedList\") ? \"unordered\" : list;\n list = document.queryCommandState(\"insertOrderedList\") ? \"ordered\" : list;\n return list;\n }\n\n reportFontSize(): number {\n let containerEl, sel;\n if (window.getSelection) {\n sel = window.getSelection();\n if (sel.rangeCount) {\n containerEl = sel.getRangeAt(0).commonAncestorContainer;\n // Make sure we have an element rather than a text node\n if (containerEl.nodeType === 3) {\n containerEl = containerEl.parentNode;\n }\n }\n } else if ((sel = document.getSelection()) && sel.type !== \"Control\") {\n containerEl = sel.createRange().parentElement();\n }\n\n if (containerEl) {\n return parseInt(this.getComputedStyleProperty(containerEl, \"fontSize\").replace(\"px\", \"\"), 10);\n }\n }\n\n getComputedStyleProperty(el, propName) {\n if (window.getComputedStyle) {\n return window.getComputedStyle(el, null)[propName];\n } else if (el.currentStyle) {\n return el.currentStyle[propName];\n }\n }\n\n ngOnInit(): void {\n this._formattingService.undo.subscribe(() => {\n this.toggleUndo();\n });\n this._formattingService.redo.subscribe(() => {\n this.toggleRedo();\n });\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.bold = bold;\n this.toggleBold();\n });\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.underline = underline;\n this.toggleUnderline();\n });\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.italic = italic;\n this.toggleItalic();\n });\n this._formattingService.formatColorChange.subscribe(((color: string) => {\n this.color = color;\n this.setColor(color);\n }));\n this._formattingService.formatBgColorChange.subscribe(((bgcolor: string) => {\n this.bgColor = bgcolor;\n this.setBgColor(bgcolor);\n }));\n this._formattingService.formatFontSizeChange.subscribe(((fontSize: number) => {\n this.setFontSize(fontSize);\n }));\n\n this._formattingService.formatFontChange.subscribe(((font: string) => {\n this.font = font;\n this.setFont(font);\n }));\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.strikeout = strikeout;\n this.toggleStrikeout();\n });\n this._formattingService.formatAlignChange.subscribe((align: string) => {\n this.align = align;\n this.toggleAlign(this.align);\n });\n this._formattingService.formatListChange.subscribe((list: string) => {\n this.list = list;\n this.toggleList(this.list);\n });\n }\n\n private toggleBold() {\n document.execCommand(\"bold\");\n this._selectionService.refreshSelection();\n }\n\n private toggleUnderline() {\n document.execCommand(\"underline\");\n this._selectionService.refreshSelection();\n }\n\n private toggleItalic() {\n document.execCommand(\"italic\");\n this._selectionService.refreshSelection();\n }\n\n private setBgColor(bgColor: string) {\n document.execCommand(\"backColor\", false, bgColor);\n this._selectionService.refreshSelection();\n }\n\n private setColor(color: string) {\n document.execCommand(\"foreColor\", false, color);\n this._selectionService.refreshSelection();\n }\n\n private setFontSize(fontSize: number) {\n if (document.getSelection().toString()) {\n let spanString = \"\" +\n document.getSelection() + \"\";\n if (this.bold) {\n spanString = \"\" + spanString + \"\";\n }\n if (this.italic) {\n spanString = \"\" + spanString + \"\";\n }\n if (this.underline) {\n spanString = \"\" + spanString + \"\";\n }\n if (this.strikeout) {\n spanString = \"\" + spanString + \"\";\n }\n document.execCommand('insertHTML', false, spanString);\n } else {\n document.execCommand(\"fontsize\", false, \"7\");\n }\n this._selectionService.refreshSelection();\n }\n\n private toggleUndo() {\n document.execCommand(\"undo\");\n }\n\n private toggleRedo() {\n document.execCommand(\"redo\");\n }\n\n private setFont(font: string) {\n document.execCommand(\"fontName\", false, font);\n this._selectionService.refreshSelection();\n }\n\n private toggleStrikeout() {\n document.execCommand(\"strikeThrough\");\n this._selectionService.refreshSelection();\n }\n\n private toggleAlign(align: string) {\n if(this.isIE) {\n this.toggleAlignIE(align);\n return;\n }\n document.execCommand(\"styleWithCSS\", false, 'true');\n switch (align) {\n case 'center':\n document.execCommand('justifyCenter');\n break;\n case 'full':\n document.execCommand('justifyFull');\n break;\n case 'left':\n document.execCommand('justifyLeft');\n break;\n case 'right':\n document.execCommand('justifyRight');\n break;\n }\n this._selectionService.refreshSelection();\n }\n\n private toggleAlignIE(align: string) {\n this._selectionService.restoreSelection()\n this._selectionService.captureSelection()\n const selection = window.getSelection().focusNode.parentNode.parentNode;\n if(align === \"full\"){\n align = \"justify\";\n }\n $(selection).css(\"text-align\", align);\n this._selectionService.refreshSelection()\n }\n\n private toggleList(list: string) {\n switch (list) {\n case 'unordered':\n document.execCommand('insertUnorderedList');\n break;\n case 'ordered':\n document.execCommand('insertOrderedList');\n break;\n }\n this._selectionService.refreshSelection();\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'gd-success-modal',\n templateUrl: './success-modal.component.html',\n styleUrls: ['./success-modal.component.less']\n})\nexport class SuccessModalComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Subject} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditHtmlService {\n private _observer: Subject = new Subject();\n private readonly _htmlContent: Observable = this._observer.asObservable();\n\n constructor() {\n }\n\n get observer(): Subject {\n return this._observer;\n }\n\n get htmlContent(): Observable {\n return this._htmlContent;\n }\n\n}\n","import {Directive, HostListener, Input} from '@angular/core';\nimport {SelectionService} from './selection.service';\nimport {EditHtmlService} from \"./edit-html.service\";\n\n@Directive({\n selector: '[gdEditor]'\n})\nexport class EditorDirective {\n @Input() text: any;\n\n private isIE: boolean = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n\n constructor(private _selectionService: SelectionService, private _htmlService: EditHtmlService) {\n }\n\n @HostListener('keyup', ['$event'])\n public onInput(event) {\n this.text = event.target;\n if(this.isIE){\n if (this.text.innerHTML) {\n const html = this.text.innerHTML.toString();\n this._htmlService.observer.next(html);\n }\n }\n }\n\n @HostListener('mouseleave', ['$event'])\n public onMouseleave(event) {\n this._selectionService.captureSelection();\n // this code is required to fix IE11 issue - it doesn't trigger blur event, since that we need to save updated HTML here\n if(this.isIE){\n this._htmlService.observer.next(event.target.innerHTML.toString());\n }\n }\n\n @HostListener('blur', ['$event'])\n public onBlur(event) {\n event.preventDefault();\n this._selectionService.restoreSelection();\n if (this.text.innerHTML) {\n const html = this.text.innerHTML.toString();\n this._htmlService.observer.next(html);\n } else {\n this._htmlService.observer.next(event.target.innerHTML.toString());\n }\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core'\nimport { HttpRequest } from '@angular/common/http';\n\n@Injectable()\nexport class LoadingMaskService {\n onLoadingChanged: EventEmitter = new EventEmitter();\n\n private requests: HttpRequest[] = [];\n\n constructor() {\n }\n\n onRequestStart(req: HttpRequest): void {\n this.requests.push(req);\n this.notify();\n }\n\n onRequestFinish(req: HttpRequest): void {\n const index = this.requests.indexOf(req);\n if (index !== -1) {\n this.requests.splice(index, 1);\n }\n this.notify();\n }\n\n private notify(): void {\n this.onLoadingChanged.emit(this.requests.length !== 0);\n }\n}\n","import {AfterViewInit, Component, Input, OnInit} from '@angular/core';\nimport {LoadingMaskService} from \"../loading-mask.service\";\n\n@Component({\n selector: 'gd-loading-mask',\n templateUrl: './loading-mask.component.html',\n styleUrls: ['./loading-mask.component.less']\n})\n\nexport class LoadingMaskComponent implements OnInit, AfterViewInit {\n @Input() loadingMask = false;\n\n constructor(private _loadingMaskService: LoadingMaskService) {\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.loadingMask = loading);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\nimport {Observable} from \"rxjs\";\nimport {finalize} from 'rxjs/operators'\nimport {LoadingMaskService} from \"./loading-mask.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoadingMaskInterceptorService implements HttpInterceptor {\n\n constructor(private _loadingMaskService: LoadingMaskService) {\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n this._loadingMaskService.onRequestStart(req);\n const callback = () => this._loadingMaskService.onRequestFinish(req);\n return next.handle(req).pipe( finalize( callback));\n }\n}\n","import {\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\n\n\nconst horizontalAlignment = {\n center : {\n right: 'auto'\n },\n left : {\n right: '100%'\n },\n right : {\n right: '-100%'\n }\n};\n\nconst verticalAlignment = {\n center : {\n top : '0px',\n },\n top : {\n top : '-100%',\n right: '100%'\n },\n bottom : {\n top: 'autos'\n }\n};\n\n/**\n * DropDownToggleComponent\n */\n@Component({\n selector: 'gd-drop-down-toggle',\n template: '',\n styleUrls: ['./drop-down.component.less'],\n encapsulation : ViewEncapsulation.None\n})\nexport class DropDownToggleComponent{\n @HostListener('click',['$event'])\n click = (event: any) => this.dropdown.toggle(event);\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\n}\n\n/**\n * DropDownItemsComponent\n */\n@Component({\n selector: 'gd-drop-down-items',\n template: '
',\n styleUrls: ['./drop-down.component.less'],\n encapsulation : ViewEncapsulation.None\n})\nexport class DropDownItemsComponent{\n\n get horizontalAlign(){\n return horizontalAlignment[this.dropdown.getPlacement().h].right;\n }\n\n get verticalAlign(){\n return verticalAlignment[this.dropdown.getPlacement().v].top;\n }\n\n get isOpen(){\n return this.dropdown.open;\n }\n\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\n\n onClickOutside(event : Event ){\n this.dropdown.close();\n }\n}\n\n/**\n * DropDownItemComponent\n */\n@Component({\n selector: 'gd-drop-down-item',\n template: '
',\n styleUrls: ['./drop-down.component.less'],\n})\nexport class DropDownItemComponent{\n @HostBinding('class')\n class = 'drop-down-item';\n\n @Output()\n selected = new EventEmitter();\n\n @HostListener('click')\n click = () => this.selectEntry();\n\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\n\n selectEntry(){\n this.selected.next();\n this.dropdown.close();\n }\n}\n\n/**\n * DropDownComponent\n */\n@Component({\n selector: 'gd-drop-down',\n template: '
',\n styleUrls: ['./drop-down.component.less'],\n encapsulation : ViewEncapsulation.None\n})\nexport class DropDownComponent{\n @Input()\n placement = {\n h: \"center\",\n v: \"bottom\"\n };\n\n\n @Input()\n @HostBinding('class.show')\n open = false;\n\n @HostBinding('class')\n class = 'drop-down';\n\n close(){\n this.open = false;\n }\n\n toggle(event : MouseEvent){\n event.stopPropagation();\n this.open = !this.open;\n document.body.click();\n }\n\n getPlacement(){\n return this.placement;\n }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TopToolbarComponent} from './top-toolbar/top-toolbar.component';\nimport {SidePanelComponent} from './side-panel/side-panel.component';\nimport {ButtonComponent} from './button/button.component';\nimport {LogoComponent} from './logo/logo.component';\nimport {TooltipComponent} from './tooltip/tooltip.component';\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport {fas} from '@fortawesome/free-solid-svg-icons';\nimport {far} from '@fortawesome/free-regular-svg-icons';\nimport {Api, ConfigService,} from \"./config.service\";\nimport {ModalService} from \"./modal.service\";\nimport {ModalComponent} from './modal/modal.component';\nimport {BrowseFilesModalComponent} from './browse-files-modal/browse-files-modal.component';\nimport {FileModel, FileService, FileUtil} from \"./file.service\";\nimport {DocumentComponent} from './document/document.component';\nimport {PageComponent} from './page/page.component';\nimport {HighlightSearchPipe, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe} from \"./pipes\";\nimport {UploadFileZoneComponent} from './upload-file-zone/upload-file-zone.component';\nimport {UploadFilesService} from \"./upload-files.service\";\nimport {DndDirective} from './dnd.directive';\nimport {ScrollableDirective} from './scrollable.directive';\nimport {NavigateService} from \"./navigate.service\";\nimport {PagePreloadService} from \"./page-preload.service\";\nimport {ZoomDirective} from './zoom.directive';\nimport {ZoomService} from \"./zoom.service\";\nimport {SelectComponent} from './select/select.component';\nimport {DisabledCursorDirective} from './disabled-cursor.directive';\nimport {RotationDirective} from './rotation.directive';\nimport {InitStateComponent} from './init-state/init-state.component';\nimport {RenderPrintService} from \"./render-print.service\";\nimport {RenderPrintDirective} from './render-print.directive';\nimport {ErrorModalComponent} from './error-modal/error-modal.component';\nimport {PasswordRequiredComponent} from './password-required/password-required.component';\nimport {ExceptionMessageService} from \"./exception-message.service\";\nimport {PasswordService} from \"./password.service\";\nimport {ErrorInterceptorService} from \"./error-interceptor.service\";\nimport {SearchComponent} from './search/search.component';\nimport {SearchableDirective} from './searchable.directive';\nimport {SearchService} from \"./search.service\";\nimport {WindowService} from \"./window.service\";\nimport {ViewportService} from \"./viewport.service\";\nimport {TabbedToolbarsComponent} from './tabbed-toolbars/tabbed-toolbars.component';\nimport {TabComponent} from \"./tab/tab.component\";\nimport {TabsComponent} from \"./tabs/tabs.component\";\nimport {FormattingService} from \"./formatting.service\";\nimport {ColorPickerComponent} from './color-picker/color-picker.component';\nimport {FormattingDirective} from './formatting.directive';\nimport {BackFormattingService} from \"./back-formatting.service\";\nimport {OnCloseService} from \"./on-close.service\";\nimport {SuccessModalComponent} from './success-modal/success-modal.component';\nimport {EditorDirective} from './editor.directive';\nimport {LoadingMaskComponent} from './loading-mask/loading-mask.component';\nimport {LoadingMaskService} from './loading-mask.service';\nimport {LoadingMaskInterceptorService} from \"./loading-mask-interceptor.service\";\nimport {TabActivatorService} from \"./tab-activator.service\";\nimport { DropDownComponent,DropDownItemComponent,DropDownItemsComponent,DropDownToggleComponent } from './drop-down/drop-down.component';\nimport { ClickOutsideModule } from 'ng-click-outside';\n\nconst providers = [ConfigService,\n Api,\n ModalService,\n FileService,\n FileModel,\n FileUtil,\n SanitizeHtmlPipe,\n SanitizeResourceHtmlPipe,\n SanitizeStylePipe,\n HighlightSearchPipe,\n UploadFilesService,\n RenderPrintService,\n NavigateService,\n PagePreloadService,\n ZoomService,\n ExceptionMessageService,\n PasswordService,\n ErrorInterceptorService,\n SearchService,\n WindowService,\n ViewportService,\n FormattingService,\n BackFormattingService,\n OnCloseService,\n LoadingMaskInterceptorService,\n LoadingMaskService,\n TabActivatorService];\n\n@NgModule({\n imports: [CommonModule, FontAwesomeModule, ClickOutsideModule],\n declarations: [\n TopToolbarComponent,\n SidePanelComponent,\n ButtonComponent,\n LogoComponent,\n TooltipComponent,\n ModalComponent,\n BrowseFilesModalComponent,\n DocumentComponent,\n PageComponent,\n SanitizeHtmlPipe,\n SanitizeResourceHtmlPipe,\n SanitizeStylePipe,\n HighlightSearchPipe,\n UploadFileZoneComponent,\n DndDirective,\n ScrollableDirective,\n ZoomDirective,\n SelectComponent,\n DisabledCursorDirective,\n RotationDirective,\n InitStateComponent,\n RenderPrintDirective,\n ErrorModalComponent,\n PasswordRequiredComponent,\n SearchComponent,\n SearchableDirective,\n TabbedToolbarsComponent,\n TabComponent,\n TabsComponent,\n ColorPickerComponent,\n FormattingDirective,\n SuccessModalComponent,\n EditorDirective,\n LoadingMaskComponent,\n DropDownComponent,\n DropDownItemComponent,\n DropDownItemsComponent,\n DropDownToggleComponent\n ],\n exports: [\n TopToolbarComponent,\n SidePanelComponent,\n ButtonComponent,\n LogoComponent,\n TooltipComponent,\n ModalComponent,\n BrowseFilesModalComponent,\n DocumentComponent,\n PageComponent,\n SanitizeResourceHtmlPipe,\n SanitizeStylePipe,\n HighlightSearchPipe,\n SanitizeHtmlPipe,\n UploadFileZoneComponent,\n ScrollableDirective,\n SelectComponent,\n RotationDirective,\n InitStateComponent,\n RenderPrintDirective,\n ErrorModalComponent,\n PasswordRequiredComponent,\n SearchComponent,\n SearchableDirective,\n TabbedToolbarsComponent,\n TabComponent,\n TabsComponent,\n ColorPickerComponent,\n FormattingDirective,\n SuccessModalComponent,\n LoadingMaskComponent,\n DndDirective,\n DropDownComponent,\n DropDownItemComponent,\n DropDownItemsComponent,\n DropDownToggleComponent\n ],\n providers: providers\n})\nexport class CommonComponentsModule {\n constructor() {\n library.add(fas, far);\n }\n}\n"],"names":["tslib_1.__extends","$","tslib_1.__values"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"groupdocs.examples.angular-common-components.js","sources":["ng://@groupdocs.examples.angular/common-components/lib/top-toolbar/top-toolbar.component.ts","ng://@groupdocs.examples.angular/common-components/lib/side-panel/side-panel.component.ts","ng://@groupdocs.examples.angular/common-components/lib/button/button.component.ts","ng://@groupdocs.examples.angular/common-components/lib/logo/logo.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tooltip/tooltip.component.ts","ng://@groupdocs.examples.angular/common-components/lib/config.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal.service.ts","ng://@groupdocs.examples.angular/common-components/lib/modal/modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/file.service.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-files.service.ts","ng://@groupdocs.examples.angular/common-components/lib/browse-files-modal/browse-files-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.service.ts","ng://@groupdocs.examples.angular/common-components/lib/window.service.ts","ng://@groupdocs.examples.angular/common-components/lib/rotation.service.ts","ng://@groupdocs.examples.angular/common-components/lib/document/document.component.ts","ng://@groupdocs.examples.angular/common-components/lib/page/page.component.ts","ng://@groupdocs.examples.angular/common-components/lib/pipes.ts","ng://@groupdocs.examples.angular/common-components/lib/upload-file-zone/upload-file-zone.component.ts","ng://@groupdocs.examples.angular/common-components/lib/dnd.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/page-preload.service.ts","ng://@groupdocs.examples.angular/common-components/lib/navigate.service.ts","ng://@groupdocs.examples.angular/common-components/lib/viewport.service.ts","ng://@groupdocs.examples.angular/common-components/lib/scrollable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/zoom.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/on-close.service.ts","ng://@groupdocs.examples.angular/common-components/lib/select/select.component.ts","ng://@groupdocs.examples.angular/common-components/lib/disabled-cursor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/rotation.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/init-state/init-state.component.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.service.ts","ng://@groupdocs.examples.angular/common-components/lib/render-print.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/exception-message.service.ts","ng://@groupdocs.examples.angular/common-components/lib/error-modal/error-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/password.service.ts","ng://@groupdocs.examples.angular/common-components/lib/password-required/password-required.component.ts","ng://@groupdocs.examples.angular/common-components/lib/error-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/custom-hammer-config.ts","ng://@groupdocs.examples.angular/common-components/lib/search.service.ts","ng://@groupdocs.examples.angular/common-components/lib/search/search.component.ts","ng://@groupdocs.examples.angular/common-components/lib/searchable.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/tabbed-toolbars/tabbed-toolbars.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tab-activator.service.ts","ng://@groupdocs.examples.angular/common-components/lib/tab/tab.component.ts","ng://@groupdocs.examples.angular/common-components/lib/tabs/tabs.component.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/color-picker/color-picker.component.ts","ng://@groupdocs.examples.angular/common-components/lib/back-formatting.service.ts","ng://@groupdocs.examples.angular/common-components/lib/selection.service.ts","ng://@groupdocs.examples.angular/common-components/lib/formatting.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/success-modal/success-modal.component.ts","ng://@groupdocs.examples.angular/common-components/lib/edit-html.service.ts","ng://@groupdocs.examples.angular/common-components/lib/editor.directive.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask.service.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask/loading-mask.component.ts","ng://@groupdocs.examples.angular/common-components/lib/loading-mask-interceptor.service.ts","ng://@groupdocs.examples.angular/common-components/lib/drop-down/drop-down.component.ts","ng://@groupdocs.examples.angular/common-components/lib/common-components.module.ts"],"sourcesContent":["import {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-top-toolbar',\r\n templateUrl: './top-toolbar.component.html',\r\n styleUrls: ['./top-toolbar.component.less']\r\n})\r\nexport class TopToolbarComponent {\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-side-panel',\r\n templateUrl: './side-panel.component.html',\r\n styleUrls: ['./side-panel.component.less']\r\n})\r\n\r\nexport class SidePanelComponent {\r\n @Input() title: string;\r\n @Input() icon: string;\r\n @Output() hideSidePanel = new EventEmitter();\r\n\r\n constructor() {\r\n }\r\n\r\n openSidePanel() {\r\n this.hideSidePanel.emit(true);\r\n }\r\n}\r\n","import { Component, ContentChild, ElementRef, HostBinding, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.less']\r\n})\r\nexport class ButtonComponent {\r\n @Input()\r\n iconOnly = true;\r\n\r\n @Input()\r\n intent = 'default';\r\n\r\n @Input()\r\n disabled = false;\r\n\r\n @Input()\r\n icon : string;\r\n\r\n @Input()\r\n iconClass : string;\r\n\r\n @Input()\r\n tooltip : string;\r\n\r\n @Input()\r\n className: string;\r\n\r\n @Input()\r\n toggle = false;\r\n\r\n showToolTip = false;\r\n\r\n iconButtonClass(){\r\n return this.iconOnly ? 'icon-button' : '';\r\n }\r\n\r\n onHovering() {\r\n if (!this.disabled) {\r\n this.className += ' active';\r\n }\r\n this.showToolTip = true;\r\n }\r\n\r\n onUnhovering() {\r\n if (!this.disabled) {\r\n this.className = this.className.replace(' active', '');\r\n }\r\n this.showToolTip = false;\r\n }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-logo',\r\n templateUrl: './logo.component.html',\r\n styleUrls: ['./logo.component.less']\r\n})\r\nexport class LogoComponent implements OnInit {\r\n\r\n @Input() logo;\r\n @Input() icon;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-tooltip',\r\n templateUrl: './tooltip.component.html',\r\n styleUrls: ['./tooltip.component.less']\r\n})\r\nexport class TooltipComponent implements OnInit {\r\n\r\n @Input() text:string;\r\n visibility = 'hidden';\r\n\r\n constructor() {\r\n }\r\n\r\n @Input()\r\n set show(value: boolean) {\r\n this.visibility = value ? 'shown' : 'hidden';\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {HttpHeaders} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\n\r\nexport class Api {\r\n public static VIEWER_APP = '/viewer';\r\n public static EDITOR_APP = '/editor';\r\n public static COMPARISON_APP = '/comparison';\r\n public static CONVERSION_APP = '/conversion';\r\n public static DEFAULT_API_ENDPOINT = window.location.href;\r\n public static LOAD_FILE_TREE = '/loadFileTree';\r\n public static LOAD_CONFIG = '/loadConfig';\r\n public static LOAD_DOCUMENT_DESCRIPTION = '/loadDocumentDescription';\r\n public static LOAD_DOCUMENT_PAGE = '/loadDocumentPage';\r\n public static ROTATE_DOCUMENT_PAGE = '/rotateDocumentPages';\r\n public static UPLOAD_DOCUMENTS = '/uploadDocument';\r\n public static DOWNLOAD_DOCUMENTS = '/downloadDocument';\r\n public static LOAD_PRINT = '/loadPrint';\r\n public static LOAD_PRINT_PDF = '/printPdf';\r\n public static LOAD_THUMBNAILS = '/loadThumbnails';\r\n public static LOAD_FORMATS = '/loadFormats';\r\n public static SAVE_FILE = '/saveFile';\r\n public static COMPARE_FILES = '/compare';\r\n public static CONVERT_FILE = '/convert';\r\n\r\n public static httpOptionsJson = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n };\r\n public static httpOptionsJsonResponseTypeBlob = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n }),\r\n responseType: 'blob' as 'blob'\r\n };\r\n}\r\n\r\n@Injectable()\r\nexport class ConfigService {\r\n\r\n private _apiEndpoint: string;\r\n\r\n constructor() {\r\n this.apiEndpoint = Api.DEFAULT_API_ENDPOINT;\r\n }\r\n\r\n set apiEndpoint(url: string) {\r\n this._apiEndpoint = url && url.trim().endsWith('/') ? url.substring(0, url.length - 1) : url;\r\n }\r\n\r\n getConfigEndpoint(app) {\r\n return (this.apiEndpoint.endsWith(app) ? this.apiEndpoint : this.apiEndpoint + app) + Api.LOAD_CONFIG;\r\n }\r\n\r\n getViewerApiEndpoint() {\r\n return this._apiEndpoint.endsWith(Api.VIEWER_APP) ? this._apiEndpoint : this._apiEndpoint + Api.VIEWER_APP;\r\n }\r\n\r\n getEditorApiEndpoint() {\r\n return this._apiEndpoint.trim().endsWith(Api.EDITOR_APP) ? this._apiEndpoint : this._apiEndpoint + Api.EDITOR_APP;\r\n }\r\n\r\n getComparisonApiEndpoint() {\r\n return this._apiEndpoint.trim().endsWith(Api.COMPARISON_APP) ? this._apiEndpoint : this._apiEndpoint + Api.COMPARISON_APP;\r\n }\r\n\r\n getConversionApiEndpoint() {\r\n return this._apiEndpoint.trim().endsWith(Api.CONVERSION_APP) ? this._apiEndpoint : this._apiEndpoint + Api.CONVERSION_APP;\r\n }\r\n\r\n get apiEndpoint() {\r\n return this._apiEndpoint;\r\n }\r\n}\r\n","export class CommonModals {\r\n static PasswordRequired = \"gd-password-required\";\r\n static ErrorMessage = \"gd-error-message\";\r\n static BrowseFiles = \"gd-browse-files\";\r\n static CreateDocument = \"gd-create-document\";\r\n static OperationSuccess = \"gd-success-modal\";\r\n}\r\n\r\nexport class ModalService {\r\n private modals: any[] = [];\r\n\r\n add(modal: any) {\r\n this.modals.push(modal);\r\n }\r\n\r\n remove(id: string) {\r\n this.modals = this.modals.filter(x => x.id !== id);\r\n }\r\n\r\n open(id: string) {\r\n const modal: any = this.modals.filter(x => x.id === id)[0];\r\n if (modal) {\r\n modal.open();\r\n }\r\n }\r\n\r\n close(id: string) {\r\n const modal: any = this.modals.filter(x => x.id === id)[0];\r\n if (modal) {\r\n modal.close();\r\n }\r\n }\r\n}\r\n","import {Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {ModalService} from \"../modal.service\";\r\n\r\n@Component({\r\n selector: 'gd-modal',\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.less']\r\n})\r\nexport class ModalComponent implements OnInit, OnDestroy {\r\n @Input() id: string;\r\n @Input() title: string;\r\n @Output() visible = new EventEmitter();\r\n visibility = false;\r\n private element: any;\r\n\r\n constructor(private modalService: ModalService, el: ElementRef) {\r\n this.element = el.nativeElement;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.id) {\r\n console.error('modal must have an id');\r\n return;\r\n }\r\n\r\n document.body.appendChild(this.element);\r\n\r\n this.modalService.add(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.modalService.remove(this.id);\r\n this.element.remove();\r\n }\r\n\r\n open(): void {\r\n this.visibility = true;\r\n this.visible.emit(true);\r\n }\r\n\r\n close(): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.visibility = false;\r\n this.visible.emit(false);\r\n }\r\n\r\n onClose($event: MouseEvent) {\r\n $event.stopPropagation();\r\n if ($event && $event.target && ($event.target).id === 'modalDialog') {\r\n this.close();\r\n }\r\n }\r\n}\r\n","export class PageModel {\r\n data: string;\r\n angle: number;\r\n width: number;\r\n height: number;\r\n number: number;\r\n editable: boolean;\r\n}\r\n\r\nexport class RotatedPage {\r\n pageNumber: number;\r\n angle: number;\r\n}\r\n\r\nexport class FileCredentials {\r\n guid: string;\r\n password: string;\r\n\r\n constructor(guid: string, password: string) {\r\n this.guid = guid;\r\n this.password = password;\r\n }\r\n}\r\n\r\nexport class SaveFile extends FileCredentials {\r\n content: string;\r\n\r\n constructor(guid: string, password: string, content: string) {\r\n super(guid, password);\r\n this.content = content;\r\n }\r\n}\r\n\r\nexport class FileDescription {\r\n guid: string;\r\n pages: PageModel[];\r\n printAllowed = true;\r\n}\r\n\r\nexport class FileModel {\r\n guid: string;\r\n name: string;\r\n directory: boolean;\r\n size: number;\r\n isDirectory: boolean;\r\n}\r\n\r\nexport class HttpError {\r\n static BadRequest = 400;\r\n static Unauthorized = 401;\r\n static Forbidden = 403;\r\n static NotFound = 404;\r\n static TimeOut = 408;\r\n static Conflict = 409;\r\n static InternalServerError = 500;\r\n}\r\n\r\nexport class FileUtil {\r\n public static map = {\r\n 'folder': {'format': '', 'icon': 'folder'},\r\n 'pdf': {'format': 'Portable Document Format', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'doc': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'docx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'docm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dot': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dotx': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dotm': {'format': 'Microsoft Word', 'icon': 'file-word', 'unit': 'pt'},\r\n 'xls': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xlsx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xlsm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xlsb': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xls2003': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xltx': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'xltm': {'format': 'Microsoft Excel', 'icon': 'file-excel', 'unit': 'px'},\r\n 'ppt': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'pptx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'pps': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'ppsx': {'format': 'Microsoft PowerPoint', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'vsd': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vss': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vsx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vst': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vtx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vsdx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vdw': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vstx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'vssx': {'format': 'Microsoft Visio', 'icon': 'file-code', 'unit': 'px'},\r\n 'mpp': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'mpt': {'format': 'Microsoft Project', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'msg': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'eml': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'emlx': {'format': 'Microsoft Outlook', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'one': {'format': 'Microsoft OneNote', 'icon': 'file-word', 'unit': 'pt'},\r\n 'odt': {'format': 'Open Document Text', 'icon': 'file-word', 'unit': 'pt'},\r\n 'ott': {'format': 'Open Document Text Template', 'icon': 'file-word', 'unit': 'pt'},\r\n 'ods': {'format': 'Open Document Spreadsheet', 'icon': 'file-excel', 'unit': 'px'},\r\n 'odp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'otp': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'ots': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'potx': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'potm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'pptm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'ppsm': {'format': 'Open Document Presentation', 'icon': 'file-powerpoint', 'unit': 'pt'},\r\n 'rtf': {'format': 'Rich Text Format', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'txt': {'format': 'Plain Text File', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'csv': {'format': 'Comma-Separated Values', 'icon': 'file-excel', 'unit': 'px'},\r\n 'html': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'mht': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'mhtml': {'format': 'HyperText Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'xml': {'format': 'Extensible Markup Language', 'icon': 'file-word', 'unit': 'pt'},\r\n 'xps': {'format': 'XML Paper Specification', 'icon': 'file-word', 'unit': 'pt'},\r\n 'dxf': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'dwg': {'format': 'AutoCAD Drawing File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'bmp': {'format': 'Bitmap Picture', 'icon': 'file-image', 'unit': 'px'},\r\n 'gif': {'format': 'Graphics Interchange Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'jpg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'jpe': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'jpeg': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'jfif': {'format': 'Joint Photographic Experts Group', 'icon': 'file-image', 'unit': 'px'},\r\n 'png': {'format': 'Portable Network Graphics', 'icon': 'file-image', 'unit': 'px'},\r\n 'tiff': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'tif': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'psd': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'svg': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'jp2': {'format': 'Tagged Image File Format', 'icon': 'file-image', 'unit': 'px'},\r\n 'epub': {'format': 'Electronic Publication', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'ico': {'format': 'Windows Icon', 'icon': 'file-image', 'unit': 'px'},\r\n 'webp': {'format': 'Compressed Image', 'icon': 'file-image', 'unit': 'px'},\r\n 'mobi': {'format': 'Mobipocket eBook', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'tex': {'format': 'LaTeX Source Document', 'icon': 'file-pdf', 'unit': 'pt'},\r\n 'djvu': {'format': 'Multi-Layer Raster Image', 'icon': 'file-alt', 'unit': 'pt'},\r\n 'unknown': {'format': 'This format is not supported', 'icon': 'file'},\r\n };\r\n\r\n public static find(filename: string, isDirectory: boolean) {\r\n if (filename && !isDirectory) {\r\n const strings = filename.split('.');\r\n const name = strings.pop().toLowerCase();\r\n if (typeof FileUtil.map[name] === \"undefined\") {\r\n return strings.length > 0 ? FileUtil.map['unknown'] : FileUtil.map['folder'];\r\n } else {\r\n return FileUtil.map[name];\r\n }\r\n } else {\r\n return FileUtil.map['folder'];\r\n }\r\n }\r\n}\r\n\r\nexport class FileService {\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\n\r\nexport class UploadFilesService {\r\n private _uploadsChange: Observable;\r\n private _observer: Observer;\r\n\r\n constructor() {\r\n this._uploadsChange = new Observable(observer =>\r\n this._observer = observer);\r\n }\r\n\r\n get uploadsChange(): Observable {\r\n return this._uploadsChange;\r\n }\r\n\r\n changeFilesList(filesList: FileList) {\r\n this._observer.next(filesList);\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {FileModel, FileUtil} from \"../file.service\";\r\nimport {UploadFilesService} from \"../upload-files.service\";\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\nconst upload_disc = 'Disc';\r\n\r\nconst upload_url = 'URL';\r\n\r\nconst uploads_choices = [{name: upload_disc, icon: 'hdd'}, {name: upload_url, icon: 'link'}];\r\n\r\n@Component({\r\n selector: 'gd-browse-files-modal',\r\n templateUrl: './browse-files-modal.component.html',\r\n styleUrls: ['./browse-files-modal.component.less']\r\n})\r\nexport class BrowseFilesModalComponent implements OnInit {\r\n uploads = uploads_choices;\r\n\r\n @Input() files;\r\n @Input() uploadConfig;\r\n @Output() selectedFileGuid = new EventEmitter();\r\n @Output() selectedDirectory = new EventEmitter();\r\n @Output() urlForUpload = new EventEmitter();\r\n @Output() closing = new EventEmitter();\r\n private selectedFile: FileModel;\r\n showUploadUrl = false;\r\n showUploadFile = false;\r\n\r\n constructor(private _uploadService: UploadFilesService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getSize(size: number) {\r\n const mb = size / 1024 / 1024;\r\n if (mb > 1) {\r\n return (Math.round(mb * 100) / 100) + ' MB';\r\n } else {\r\n const kb = size / 1024;\r\n if (kb > 1) {\r\n return (Math.round(kb * 100) / 100) + ' KB';\r\n }\r\n }\r\n return size + ' Bytes';\r\n }\r\n\r\n getFormatName(file: FileModel) {\r\n return FileUtil.find(file.name, file.directory).format;\r\n }\r\n\r\n getFormatIcon(file: FileModel) {\r\n return FileUtil.find(file.name, file.directory).icon;\r\n }\r\n\r\n choose(file: FileModel) {\r\n this.selectedFile = file;\r\n if (file.directory || file.isDirectory) {\r\n this.selectedDirectory.emit(file.name);\r\n } else {\r\n this.selectedFileGuid.emit(file.guid);\r\n }\r\n }\r\n\r\n goUp() {\r\n if (this.selectedFile) {\r\n let guid = this.selectedFile.guid;\r\n if (guid.length > 0 && guid.indexOf('/') === -1) {\r\n guid = '';\r\n } else {\r\n guid = guid.replace(/\\/[^\\/]+\\/?$/, '');\r\n }\r\n this.selectedDirectory.emit(guid);\r\n }\r\n }\r\n\r\n selectUpload($event: string) {\r\n if (upload_url === $event) {\r\n this.showUploadUrl = true;\r\n } else {\r\n this.showUploadUrl = false;\r\n $(\"#gd-upload-input\").trigger('click');\r\n }\r\n }\r\n\r\n refresh($event) {\r\n\r\n if ($event) {\r\n this.files = null;\r\n this.selectedDirectory.emit('');\r\n this.showUploadUrl = false;\r\n this.selectedFile = null;\r\n } else {\r\n this.closing.emit(true);\r\n }\r\n }\r\n\r\n showSpinner() {\r\n return !this.files;\r\n }\r\n\r\n uploadUrl(url: string) {\r\n if (url) {\r\n this.urlForUpload.emit(url);\r\n this.cleanUpload();\r\n }\r\n }\r\n\r\n handleFileInput(files: FileList) {\r\n this._uploadService.changeFilesList(files);\r\n }\r\n\r\n cleanUpload() {\r\n this.showUploadFile = false;\r\n this.showUploadUrl = false;\r\n }\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class ZoomService {\r\n private _observer: Subject = new Subject();\r\n private readonly _zoomChange: Observable = this._observer.asObservable();\r\n private _zoom: number;\r\n\r\n constructor() {\r\n }\r\n\r\n get zoom(): number {\r\n return this._zoom;\r\n }\r\n\r\n get zoomChange(): Observable {\r\n return this._zoomChange;\r\n }\r\n\r\n changeZoom(zoom: number) {\r\n this._zoom = zoom;\r\n this._observer.next(zoom);\r\n }\r\n\r\n private createZoomOption(val: any, name: string, sep: boolean = false) {\r\n return {value: val, name: name, separator: sep}\r\n }\r\n\r\n zoomOptions(width, height) {\r\n return [this.createZoomOption(25, '25%'),\r\n this.createZoomOption(50, '50%'),\r\n this.createZoomOption(100,'100%'),\r\n this.createZoomOption(150, '150%'),\r\n this.createZoomOption(200, '200%'),\r\n this.createZoomOption(300, '300%'),\r\n this.createZoomOption(0, '', true),\r\n this.createZoomOption(width, 'Fit Width'),\r\n this.createZoomOption(height, 'Fit Height')];\r\n }\r\n}\r\n","import {fromEvent, Observable, Subject} from \"rxjs\";\r\nimport {debounceTime, distinctUntilChanged, startWith, tap} from \"rxjs/operators\";\r\n\r\nconst MOBILE_MAX_WIDTH = 425;\r\nconst TABLET_MAX_WIDTH = 1024;\r\n\r\nexport class WindowService {\r\n\r\n private resizeSubject: Subject = new Subject();\r\n private _resize$;\r\n private width: number;\r\n private height: number;\r\n\r\n constructor() {\r\n this.width = window.innerWidth;\r\n this.height = window.innerHeight;\r\n\r\n this._resize$ = fromEvent(window, 'resize')\r\n .pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n startWith({target: {innerWidth: window.innerWidth, innerHeight: window.innerHeight}}),\r\n tap(event => {\r\n this.resizeSubject.next(event.target);\r\n this.width = (event.target as Window).innerWidth;\r\n this.height = (event.target as Window).innerHeight;\r\n }),\r\n );\r\n this._resize$.subscribe();\r\n }\r\n\r\n get onResize(): Observable {\r\n return this.resizeSubject.asObservable();\r\n }\r\n\r\n isMobile() {\r\n return this.width <= MOBILE_MAX_WIDTH;\r\n }\r\n\r\n isTablet() {\r\n return this.width <= TABLET_MAX_WIDTH;\r\n }\r\n\r\n isDesktop() {\r\n return !this.isMobile() && !this.isTablet();\r\n }\r\n\r\n isEdge() {\r\n return window.navigator.userAgent.toLowerCase().indexOf('edge') > -1;\r\n }\r\n\r\n isFirefox() {\r\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\r\n }\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class RotationService {\r\n private _observerRotationAngle: Subject = new Subject();\r\n private readonly _rotationAngleChange: Observable = this._observerRotationAngle.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get rotationAngleChange(): Observable {\r\n return this._rotationAngleChange;\r\n }\r\n\r\n setRotationAngle(angle: number) {\r\n this._observerRotationAngle.next(angle);\r\n }\r\n}\r\n","import {\r\n AfterViewChecked,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n AfterViewInit,\r\n OnChanges} from '@angular/core';\r\nimport {FileDescription, FileUtil} from \"../file.service\";\r\nimport {ZoomService} from \"../zoom.service\";\r\nimport * as jquery from 'jquery';\r\nconst $ = jquery;\r\nimport * as Hammer from 'hammerjs';\r\nimport { WindowService } from '../window.service';\r\nimport { RotationService } from '../rotation.service';\r\n\r\n@Component({\r\n selector: 'gd-document',\r\n templateUrl: './document.component.html',\r\n styleUrls: ['./document.component.less']\r\n})\r\nexport class DocumentComponent implements OnInit, AfterViewChecked, AfterViewInit, OnChanges {\r\n\r\n @Input() mode: boolean;\r\n @Input() preloadPageCount: number;\r\n @Input() file: FileDescription;\r\n wait = false;\r\n zoom: number;\r\n\r\n docWidth = null;\r\n docHeight = null;\r\n viewportWidth = null;\r\n viewportHeight = null;\r\n scale = null;\r\n lastScale = null;\r\n container = null;\r\n doc = null;\r\n x = 0;\r\n lastX = 0;\r\n y = 0;\r\n lastY = 0;\r\n pinchCenter = null;\r\n pinchCenterOffset = null;\r\n curWidth = 0;\r\n curHeight = 0;\r\n isDesktop: boolean;\r\n initialRotation: any;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _zoomService: ZoomService,\r\n private _windowService: WindowService,\r\n private _rotationServcie: RotationService) {\r\n\r\n _zoomService.zoomChange.subscribe((val: number) => {\r\n this.zoom = val;\r\n });\r\n\r\n this.isDesktop = _windowService.isDesktop();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges() {\r\n const panzoom = this._elementRef.nativeElement.children.item(0).children.item(0);\r\n (panzoom as any).style.transform = '';\r\n // TODO: this intersects with zooming by zoom directive, but still needed\r\n // for flush previous settings before opening another file\r\n //this._zoomService.changeZoom(100);\r\n //this.scale = 1;\r\n }\r\n \r\n ngAfterViewInit() {\r\n // For current iteration we take .panzoom as a document\r\n this.doc = this._elementRef.nativeElement.children.item(0).children.item(0);\r\n // For current iteration we take .gd-document as a container\r\n this.container = this._elementRef.nativeElement;\r\n\r\n this.docWidth = this.doc.clientWidth;\r\n this.docHeight = this.doc.clientHeight;\r\n this.viewportWidth = this.doc.offsetWidth;\r\n\r\n // For cases where we already have zoom defined we should include it\r\n this.scale = (this.viewportWidth/this.docWidth) * this._zoomService.zoom/100;\r\n \r\n this.lastScale = this.scale;\r\n this.viewportHeight = this.container.offsetHeight;\r\n this.curWidth = this.docWidth*this.scale;\r\n this.curHeight = this.docHeight*this.scale;\r\n\r\n const hammer = new Hammer(this.container);\r\n }\r\n\r\n // TODO: this temporary crutch for Excel files should be documented\r\n ifExcel() {\r\n return FileUtil.find(this.file.guid, false).format === \"Microsoft Excel\";\r\n }\r\n\r\n getDimensionWithUnit(value: number) {\r\n return value + FileUtil.find(this.file.guid, false).unit;\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n const elementNodeListOf = this._elementRef.nativeElement.querySelectorAll('.gd-wrapper');\r\n const element = elementNodeListOf.item(0);\r\n if (element) {\r\n $(element).trigger('focus');\r\n }\r\n }\r\n\r\n absolutePosition(el) {\r\n let x = 0, y = 0;\r\n\r\n while (el !== null) {\r\n x += el.offsetLeft;\r\n y += el.offsetTop;\r\n el = el.offsetParent;\r\n }\r\n\r\n return { x: x, y: y };\r\n };\r\n\r\n restrictRawPos(pos, viewportDim, docDim) {\r\n if (pos < viewportDim/this.scale - docDim) { // too far left/up?\r\n pos = viewportDim/this.scale - docDim;\r\n } else if (pos > 0) { // too far right/down?\r\n pos = 0;\r\n }\r\n return pos;\r\n };\r\n\r\n updateLastPos() {\r\n this.lastX = this.x;\r\n this.lastY = this.y;\r\n };\r\n\r\n translate(deltaX, deltaY) {\r\n // We restrict to the min of the viewport width/height or current width/height as the\r\n // current width/height may be smaller than the viewport width/height\r\n const newX = this.restrictRawPos(this.lastX + deltaX/this.scale,\r\n Math.min(this.viewportWidth, this.curWidth), this.docWidth);\r\n this.x = newX;\r\n // TODO: value here and in the similar line below changes to positive to take any effect\r\n this.container.scrollLeft = -Math.ceil(newX*this.scale);\r\n\r\n const newY = this.restrictRawPos(this.lastY + deltaY/this.scale,\r\n Math.min(this.viewportHeight, this.curHeight), this.docHeight);\r\n this.y = newY;\r\n this.container.scrollTop = -Math.ceil(newY*this.scale);\r\n \r\n this.doc.style.transform = 'scale(' + this.scale + ')';\r\n };\r\n\r\n startZoom(scaleBy) {\r\n this.scale = this.lastScale*scaleBy;\r\n\r\n this.curWidth = this.docWidth*this.scale;\r\n this.curHeight = this.docHeight*this.scale;\r\n\r\n // Adjust margins to make sure that we aren't out of bounds\r\n this.translate(0, 0);\r\n };\r\n\r\n rawCenter($event) {\r\n const pos = this.absolutePosition(this.container);\r\n\r\n // We need to account for the scroll position\r\n const scrollLeft = window.pageXOffset ? window.pageXOffset : document.body.scrollLeft;\r\n const scrollTop = window.pageYOffset ? window.pageYOffset : document.body.scrollTop;\r\n\r\n const zoomX = -this.x + ($event.center.x - pos.x + scrollLeft)/this.scale;\r\n const zoomY = -this.y + ($event.center.y - pos.y + scrollTop)/this.scale;\r\n\r\n return { x: zoomX, y: zoomY };\r\n };\r\n\r\n updateLastScale() {\r\n this.lastScale = this.scale;\r\n };\r\n\r\n zoomAround(scaleBy, rawZoomX, rawZoomY, doNotUpdateLast) {\r\n // Zoom\r\n this.startZoom(scaleBy);\r\n\r\n // New raw center of viewport\r\n const rawCenterX = -this.x + Math.min(this.viewportWidth, this.curWidth)/2/this.scale;\r\n const rawCenterY = -this.y + Math.min(this.viewportHeight, this.curHeight)/2/this.scale;\r\n\r\n // Delta\r\n const deltaX = (rawCenterX - rawZoomX)*this.scale;\r\n const deltaY = (rawCenterY - rawZoomY)*this.scale;\r\n\r\n // Translate back to zoom center\r\n this.translate(deltaX, deltaY);\r\n\r\n if (!doNotUpdateLast) {\r\n this.updateLastScale();\r\n this.updateLastPos();\r\n }\r\n };\r\n\r\n onPinch($event){\r\n console.log(\"pinch\");\r\n if (this.pinchCenter === null) {\r\n this.pinchCenter = this.rawCenter($event);\r\n const offsetX = this.pinchCenter.x*this.scale - (-this.x*this.scale + Math.min(this.viewportWidth, this.curWidth)/2);\r\n const offsetY = this.pinchCenter.y*this.scale - (-this.y*this.scale + Math.min(this.viewportHeight, this.curHeight)/2);\r\n this.pinchCenterOffset = { x: offsetX, y: offsetY };\r\n }\r\n\r\n const newScale = this.scale*$event.scale;\r\n\r\n const zoomX = this.pinchCenter.x*newScale - this.pinchCenterOffset.x;\r\n const zoomY = this.pinchCenter.y*newScale - this.pinchCenterOffset.y;\r\n const zoomCenter = { x: zoomX/newScale, y: zoomY/newScale };\r\n \r\n this.zoomAround($event.scale, zoomCenter.x, zoomCenter.y, true);\r\n }\r\n\r\n onPinchEnd($event){\r\n console.log(\"pinchEnd\");\r\n this.updateLastScale();\r\n this.updateLastPos();\r\n this.pinchCenter = null;\r\n }\r\n\r\n onPan($event){\r\n // TODO: looks like native pan works better\r\n // if (!this.isDesktop) {\r\n // this.translate($event.deltaX, $event.deltaY);\r\n // }\r\n }\r\n\r\n onPanEnd($event){\r\n // if (!this.isDesktop) {\r\n // this.updateLastPos();\r\n // }\r\n }\r\n\r\n onDoubleTap($event){\r\n if (!this.isDesktop) {\r\n if ($event.tapCount === 2) {\r\n const c = this.rawCenter($event);\r\n this.zoomAround(2, c.x, c.y, false);\r\n }\r\n }\r\n }\r\n\r\n onRotateStart($event){\r\n this.initialRotation = $event.rotation;\r\n console.log(\"rotateStart: \" + $event.rotation + ' ' + $event.angle);\r\n }\r\n\r\n onRotateEnd($event){\r\n console.log(\"rotateEnd: \" + $event.rotation + ' ' + $event.angle);\r\n if ($event.rotation > 0 && this.initialRotation > 0) {\r\n if ($event.rotation > this.initialRotation && ($event.rotation - this.initialRotation > 45)) {\r\n this._rotationServcie.setRotationAngle(90);\r\n }\r\n else if ($event.rotation < this.initialRotation && (this.initialRotation - $event.rotation > 45)) {\r\n this._rotationServcie.setRotationAngle(-90);\r\n }\r\n }\r\n // case with negative values\r\n else {\r\n if (this.initialRotation > $event.rotation && ($event.rotation - this.initialRotation > 45)) {\r\n this._rotationServcie.setRotationAngle(-90);\r\n }\r\n else if (this.initialRotation < $event.rotation && (this.initialRotation - $event.rotation > 45)) {\r\n this._rotationServcie.setRotationAngle(90);\r\n }\r\n }\r\n }\r\n}\r\n","import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-page',\r\n templateUrl: './page.component.html',\r\n styleUrls: ['./page.component.less']\r\n})\r\nexport class PageComponent implements OnInit, OnChanges {\r\n\r\n @Input() angle: number;\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() number: number;\r\n @Input() data: string;\r\n @Input() isHtml: boolean;\r\n @Input() editable: boolean;\r\n imgData: string;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n if(isIE && this.number === 0){\r\n this.editable = false;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // TODO: this is temporary needed to remove unneeded spaces and BOM symbol \r\n // which leads to undesired spaces on the top of the docs pages\r\n this.data = this.data !== null ? this.data.replace(/>\\s+<').replace(/\\uFEFF/g,\"\") : null;\r\n const dataImagePngBase64 = 'data:image/png;base64,';\r\n this.imgData = dataImagePngBase64;\r\n if (!this.isHtml) {\r\n this.imgData += this.data;\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\r\n\r\n@Pipe({name: 'safeHtml'})\r\nexport class SanitizeHtmlPipe implements PipeTransform{\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n}\r\n\r\n@Pipe({name: 'safeResourceHtml'})\r\nexport class SanitizeResourceHtmlPipe implements PipeTransform{\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(html);\r\n }\r\n}\r\n\r\n@Pipe({name: 'safeStyle'})\r\nexport class SanitizeStylePipe implements PipeTransform{\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustStyle(html);\r\n }\r\n}\r\n\r\n@Pipe({name: 'highlight'})\r\nexport class HighlightSearchPipe implements PipeTransform {\r\n\r\n transform(value: string, args: string): any {\r\n if (!args) {\r\n return value;\r\n }\r\n const re = new RegExp(args, 'gi'); //'gi' for case insensitive and can use 'g' if you want the search to be case sensitive.\r\n return value.replace(re, \"$&\");\r\n }\r\n}\r\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\r\nimport {UploadFilesService} from \"../upload-files.service\";\r\n\r\n@Component({\r\n selector: 'gd-upload-file-zone',\r\n templateUrl: './upload-file-zone.component.html',\r\n styleUrls: ['./upload-file-zone.component.less']\r\n})\r\nexport class UploadFileZoneComponent implements OnInit {\r\n\r\n @Output() closeUpload = new EventEmitter();\r\n\r\n constructor(private _uploadService: UploadFilesService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n handleFileInput(files: FileList) {\r\n this._uploadService.changeFilesList(files);\r\n this.onCloseUpload();\r\n }\r\n\r\n onCloseUpload() {\r\n this.closeUpload.emit(true);\r\n }\r\n\r\n close($event) {\r\n if ($event.target.id === 'gd-dropZone') {\r\n this.onCloseUpload();\r\n }\r\n }\r\n}\r\n","import {Directive, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\r\nimport {UploadFilesService} from \"./upload-files.service\";\r\n\r\n@Directive({\r\n selector: '[gdDnd]'\r\n})\r\nexport class DndDirective {\r\n\r\n @Output() closing = new EventEmitter();\r\n @Output() opening = new EventEmitter();\r\n @Output() dropped = new EventEmitter();\r\n\r\n @HostBinding('class.active') active = false;\r\n\r\n constructor(private _uploadFilesService: UploadFilesService) {\r\n }\r\n\r\n @HostListener('dragover', ['$event'])\r\n public onDragOver(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = true;\r\n this.opening.emit(true);\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n public onDragLeave(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.active = false;\r\n this.closeArea();\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n public onDrop(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n const files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.active = false;\r\n this.dropped.emit(true);\r\n this._uploadFilesService.changeFilesList(files);\r\n this.closeArea();\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public onClick(event) {\r\n this.closeArea();\r\n }\r\n\r\n private closeArea() {\r\n this.closing.emit(true);\r\n this.opening.emit(false);\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\n\r\nexport class PagePreloadService {\r\n private readonly _checkPreload: Observable;\r\n private _observer: Observer;\r\n\r\n constructor() {\r\n this._checkPreload = new Observable(observer =>\r\n this._observer = observer);\r\n }\r\n\r\n get checkPreload(): Observable {\r\n return this._checkPreload;\r\n }\r\n\r\n changeLastPageInView(page: number) {\r\n if(this._observer) {\r\n this._observer.next(page);\r\n }\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\nimport {PagePreloadService} from \"./page-preload.service\";\r\nimport {Injectable} from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigateService {\r\n private _currentPage = 0;\r\n private _countPages = 0;\r\n private readonly _navigate: Observable;\r\n private _observer: Observer;\r\n\r\n constructor(private _pagePreloadService: PagePreloadService) {\r\n this._navigate = new Observable(observer =>\r\n this._observer = observer);\r\n }\r\n\r\n get navigate(): Observable {\r\n return this._navigate;\r\n }\r\n\r\n get countPages(): number {\r\n return this._countPages;\r\n }\r\n\r\n set countPages(value: number) {\r\n this._countPages = value;\r\n }\r\n\r\n get currentPage(): number {\r\n return this._currentPage;\r\n }\r\n\r\n set currentPage(value: number) {\r\n this._currentPage = value;\r\n }\r\n\r\n nextPage() {\r\n if (this._currentPage < this._countPages) {\r\n this._currentPage++;\r\n this.navigateTo(this._currentPage);\r\n }\r\n }\r\n\r\n prevPage() {\r\n if (this._currentPage > 1) {\r\n this._currentPage--;\r\n this.navigateTo(this._currentPage);\r\n }\r\n }\r\n\r\n toLastPage() {\r\n this._currentPage = this._countPages;\r\n this.navigateTo(this._currentPage);\r\n }\r\n\r\n toFirstPage() {\r\n this._currentPage = 1;\r\n this.navigateTo(this._currentPage);\r\n }\r\n\r\n navigateTo(page: number) {\r\n this.currentPage = page;\r\n this._pagePreloadService.changeLastPageInView(page);\r\n this._observer.next(page);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ViewportService {\r\n\r\n constructor() {\r\n }\r\n\r\n checkInViewport(el, zoom: number = 100, leftOffset: number = 0, deltaX: number = 0.5) {\r\n if (!el) {\r\n return false;\r\n }\r\n const x = deltaX;\r\n const y = 0.5;\r\n\r\n const win = $(window);\r\n\r\n const viewport = {\r\n top: win.scrollTop(),\r\n left: win.scrollLeft() + leftOffset,\r\n right: win.scrollLeft() + win.width() - 10,\r\n bottom: win.scrollTop() + win.height()\r\n };\r\n\r\n\r\n if (isNaN(zoom)) {\r\n zoom = 100;\r\n }\r\n\r\n const zoomN = zoom / 100;\r\n const height = $(el).outerHeight() * (zoomN);\r\n const width = $(el).outerWidth() * (zoomN);\r\n\r\n if (!width || !height) {\r\n return false;\r\n }\r\n\r\n const bounds = $(el).offset();\r\n const right = (bounds.left * (zoomN)) + width;\r\n const bottom = (bounds.top * (zoomN)) + height;\r\n\r\n const visible = (!(viewport.right < (bounds.left * (zoomN)) || viewport.left > right || viewport.bottom < (bounds.top * (zoomN)) || viewport.top > bottom));\r\n\r\n if (!visible) {\r\n return false;\r\n }\r\n\r\n const deltas = {\r\n top: parseFloat(Math.min(1, (bottom - viewport.top) / height).toFixed(2)),\r\n bottom: parseFloat(Math.min(1, (viewport.bottom - (bounds.top * (zoomN))) / height).toFixed(2)),\r\n left: parseFloat(Math.min(1, (right - viewport.left) / width).toFixed(2)),\r\n right: parseFloat(Math.min(1, (viewport.right - (bounds.left * (zoomN))) / width).toFixed(2))\r\n };\r\n\r\n return (deltas.left * deltas.right) >= x && (deltas.top * deltas.bottom) >= y;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport {NavigateService} from \"./navigate.service\";\r\nimport {PagePreloadService} from \"./page-preload.service\";\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport {WindowService} from \"./window.service\";\r\nimport {ViewportService} from \"./viewport.service\";\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\n@Directive({\r\n selector: '[gdScrollable]'\r\n})\r\nexport class ScrollableDirective implements AfterViewInit, OnChanges, OnInit {\r\n\r\n private currentPage: number;\r\n private zoom = 100;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _navigateService: NavigateService,\r\n private _pagePreloadService: PagePreloadService,\r\n private _zoomService: ZoomService,\r\n private _windowService: WindowService,\r\n private _viewportService: ViewportService) {\r\n\r\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\r\n _zoomService.zoomChange.subscribe((val: number) => {\r\n this.zoom = val ? val : this.zoom;\r\n this.refresh();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\r\n this._navigateService.navigate.subscribe((value => {\r\n this.currentPage = value;\r\n this.scrollToPage(value);\r\n }));\r\n this.refresh();\r\n }\r\n\r\n @HostListener('scroll') scrolling() {\r\n this.refresh();\r\n }\r\n\r\n @HostListener('window:resize') resizing() {\r\n this.refresh();\r\n }\r\n\r\n scrollToPage(pageNumber: number) {\r\n const el = this._elementRef.nativeElement;\r\n const page = this.getPage(pageNumber);\r\n const prev = pageNumber > 0 ? this.getPage(pageNumber - 1) : null;\r\n const isSameTop = (prev && $(prev).offset().top === $(page).offset().top);\r\n if (this._viewportService.checkInViewport(page, this.zoom) && isSameTop) {\r\n return;\r\n }\r\n const pagesHeight = this.calculateOffset(pageNumber);\r\n const options = {\r\n left: 0,\r\n top: pagesHeight\r\n };\r\n if(el){\r\n // using polyfill\r\n el.scroll(options);\r\n }\r\n }\r\n\r\n private getChildren() {\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n // here and in the similar line below we getting the document pages\r\n return el.children.item(0).children.item(0).children;\r\n }\r\n }\r\n\r\n private getPage(pageNumber: number) {\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n return el.children.item(0).children.item(0).children.item(pageNumber - 1);\r\n }\r\n }\r\n\r\n private calculateOffset(pageNumber: number) {\r\n const count = this._windowService.isFirefox() ? 1 : this.countPagesOnWidth();\r\n const margin = this._windowService.isDesktop() ? 40 : 10;\r\n let pagesHeight = 0;\r\n for (let i = 1; i < pageNumber / count; i++) {\r\n const item = this.getPage(i);\r\n const clientHeight = item ? item.clientHeight : 0;\r\n pagesHeight += clientHeight > 0 ? clientHeight * this.getZoom() + margin : 0;\r\n }\r\n return pagesHeight;\r\n }\r\n\r\n private countPagesOnWidth() {\r\n const pageEl = this.getPage(1);\r\n const offset = 150;\r\n const count = Math.floor((this.getWidth() - offset) / (pageEl.getBoundingClientRect().width * this.getZoom()));\r\n return count === 0 ? 1 : count;\r\n }\r\n\r\n refresh() {\r\n let page;\r\n let currentPageSet = false;\r\n const pageElem = this.getPage(this.currentPage);\r\n const currentPageRect = this.currentPage && pageElem ? pageElem.getBoundingClientRect() : null;\r\n for (page = 1; page < this.getChildren().length + 1; page++) {\r\n const element = this.getPage(page);\r\n if (this._viewportService.checkInViewport(element, this.zoom)) {\r\n if (!currentPageSet) {\r\n if (!this.currentPage || !pageElem || (this.currentPage && currentPageRect && element.getBoundingClientRect().top !== currentPageRect.top)) {\r\n this.currentPage = page;\r\n this._navigateService.currentPage = page;\r\n }\r\n currentPageSet = true;\r\n }\r\n this._pagePreloadService.changeLastPageInView(page);\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.refresh();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.zoom = this._zoomService.zoom ? this._zoomService.zoom : this.zoom;\r\n }\r\n\r\n\r\n private getWidth() {\r\n return this._elementRef ? this._elementRef.nativeElement.offsetWidth : window.innerWidth;\r\n }\r\n\r\n private getZoom() {\r\n return this.zoom / 100;\r\n }\r\n}\r\n","import {AfterViewInit, Directive, HostBinding, Input, OnDestroy, OnInit, ElementRef, OnChanges} from '@angular/core';\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport {FileUtil} from \"./file.service\";\r\nimport { WindowService } from './window.service';\r\n\r\n@Directive({\r\n selector: '[gdZoom]'\r\n})\r\nexport class ZoomDirective implements OnInit, OnDestroy, AfterViewInit, OnChanges {\r\n\r\n @Input() zoomActive = true;\r\n @Input() file;\r\n\r\n @HostBinding('style.zoom') zoomInt: number;\r\n @HostBinding('style.transform') transform: string;\r\n @HostBinding('style.transform-origin') transformOrigin: string;\r\n @HostBinding('style.width') width: string;\r\n @HostBinding('style.min-width') minWidth: string;\r\n el: ElementRef;\r\n\r\n constructor(private _zoomService: ZoomService, private _windowService: WindowService, el: ElementRef) {\r\n this.el = el;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.setStyles(this._zoomService.zoom);\r\n this.resizePages(this._zoomService.zoom);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (! this.zoomActive) {\r\n return;\r\n }\r\n\r\n this.setStyles(this._zoomService.zoom);\r\n this._zoomService.zoomChange.subscribe((zoom) => {\r\n this.setStyles(zoom);\r\n this.resizePages(zoom);\r\n });\r\n }\r\n\r\n private setStyles(zoom) {\r\n if (! this.zoomActive) {\r\n return;\r\n }\r\n\r\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\r\n \r\n if (this._windowService.isEdge()) {\r\n this.zoomInt = zoomInt;\r\n }\r\n else {\r\n this.zoomInt = null;\r\n }\r\n \r\n if (!this._windowService.isEdge()) {\r\n this.transform = 'scale(' + zoomInt + ')';\r\n this.transformOrigin = 'top left';\r\n }\r\n else {\r\n this.transform = \"\";\r\n this.transformOrigin = \"\";\r\n }\r\n\r\n let maxWidth = 0;\r\n this.file.pages.forEach(page => {\r\n {\r\n if (page.width > maxWidth){\r\n maxWidth = page.width;\r\n }\r\n }\r\n });\r\n\r\n // Images and Excel-related files receiving dimensions in px from server\r\n this.minWidth = maxWidth + FileUtil.find(this.file.guid, false).unit;\r\n }\r\n\r\n private getScrollWidth(elm){\r\n return elm.offsetWidth - elm.clientWidth;\r\n }\r\n\r\n private resizePages(zoom){\r\n const zoomInt = zoom === 100 ? 1 : zoom / 100;\r\n\r\n const viewPortWidth = this.el.nativeElement.parentElement.offsetWidth;\r\n const scrollWidth = this.getScrollWidth(this.el.nativeElement.parentElement);\r\n this.width = (viewPortWidth/zoomInt - scrollWidth/zoomInt) + 'px';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setStyles(this._zoomService.zoom);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OnCloseService {\r\n private _observer: Subject = new Subject();\r\n private readonly _onClose: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get onClose() {\r\n return this._onClose;\r\n }\r\n\r\n close(close: boolean) {\r\n this._observer.next(close)\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport {OnCloseService} from \"../on-close.service\";\r\n\r\nexport interface Option {\r\n name: string;\r\n value: any;\r\n separator: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'gd-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.less']\r\n})\r\nexport class SelectComponent {\r\n\r\n @Input() options: Option[];\r\n @Input() disabled = false;\r\n @Input() showSelected: Option;\r\n @Output() selected: EventEmitter = new EventEmitter();\r\n isOpen = false;\r\n\r\n constructor(private _onCloseService: OnCloseService) {\r\n _onCloseService.onClose.subscribe(() => {\r\n this.close();\r\n });\r\n }\r\n\r\n open() {\r\n if (!this.disabled) {\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n close() {\r\n this.isOpen = false;\r\n }\r\n\r\n onClickOutside(event : Event){\r\n this.close();\r\n }\r\n\r\n toggle($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n if (!this.disabled) {\r\n this.isOpen = !this.isOpen;\r\n }\r\n }\r\n\r\n select($event, value: Option) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.selected.emit(value);\r\n this.close();\r\n }\r\n\r\n}\r\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[gdDisabledCursor]'\r\n})\r\nexport class DisabledCursorDirective implements OnInit, OnChanges {\r\n\r\n @Input() dis: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n @HostBinding('class.inactive') cursor: boolean;\r\n\r\n private updateCursor() {\r\n this.cursor = this.dis ? true : false;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateCursor();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.updateCursor()\r\n }\r\n}\r\n","import {Directive, HostBinding, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[gdRotation]'\r\n})\r\nexport class RotationDirective implements OnInit, OnChanges {\r\n\r\n @Input() angle: number;\r\n @Input() isHtmlMode: boolean;\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() withMargin = true;\r\n\r\n @HostBinding('style.animation') animation: string;\r\n @HostBinding('style.transition-property') transition: string;\r\n @HostBinding('style.transform') transform: string;\r\n\r\n @HostBinding('style.margin') margin: string;\r\n\r\n constructor() {\r\n }\r\n\r\n private updateCursor() {\r\n if (typeof this.angle === \"string\"){\r\n this.angle = parseInt(this.angle, 10);\r\n }\r\n\r\n if (this.angle) {\r\n this.animation = 'none';\r\n this.transition = 'none';\r\n this.transform = 'rotate(' + this.angle + 'deg)';\r\n } else if (this.angle === 0 && this.animation) {\r\n this.animation = null;\r\n this.transition = null;\r\n this.transform = null;\r\n }\r\n\r\n if (this.withMargin) {\r\n if (this.angle === 90 || this.angle === 270 || this.angle === -90 || this.angle === -270) {\r\n if (this.isHtmlMode) {\r\n if (this.isLandscape()) {\r\n this.margin = '164px 254px';\r\n } else {\r\n this.margin = '-111px 254px';\r\n }\r\n } else {\r\n if (this.isLandscape()) {\r\n this.margin = '129px 100px -79px';\r\n } else {\r\n this.margin = '-72px 100px -79px';\r\n }\r\n }\r\n } else if (this.angle === -180 || this.angle === 180) {\r\n this.margin = '280px';\r\n } else {\r\n this.margin = null;\r\n }\r\n }\r\n\r\n }\r\n\r\n isLandscape() {\r\n return this.width > this.height;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateCursor();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.updateCursor()\r\n }\r\n\r\n}\r\n","import {Component, Input, Output, EventEmitter, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-init-state',\r\n templateUrl: './init-state.component.html',\r\n styleUrls: ['./init-state.component.less']\r\n})\r\nexport class InitStateComponent implements OnInit {\r\n @Input() icon: string;\r\n @Input() text: string;\r\n @Output() fileDropped = new EventEmitter();\r\n showUploadFile = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n dropped($event) {\r\n if ($event) {\r\n this.fileDropped.emit($event);\r\n this.showUploadFile = false;\r\n }\r\n }\r\n}\r\n","import {Observable, Observer} from \"rxjs\";\r\nimport {PageModel} from \"./file.service\";\r\n\r\nexport class RenderPrintService {\r\n private _render: Observable;\r\n private _observer: Observer;\r\n private _renderBlob: Observable;\r\n private _observerBlob: Observer;\r\n\r\n constructor() {\r\n this._render = new Observable(observer =>\r\n this._observer = observer);\r\n this._renderBlob = new Observable(observer =>\r\n this._observerBlob = observer);\r\n }\r\n\r\n get renderPrint(): Observable {\r\n return this._render;\r\n }\r\n\r\n changePages(pages: PageModel[]) {\r\n this._observer.next(pages);\r\n }\r\n\r\n get renderPrintBlob(): Observable {\r\n return this._renderBlob;\r\n }\r\n\r\n changeBlob(file: Blob) {\r\n this._observerBlob.next(file);\r\n }\r\n}\r\n","import {Directive, Input} from '@angular/core';\r\nimport {PageModel} from \"./file.service\";\r\nimport {RenderPrintService} from \"./render-print.service\";\r\n\r\n@Directive({\r\n selector: '[gdRenderPrint]'\r\n})\r\nexport class RenderPrintDirective {\r\n @Input() htmlMode: boolean;\r\n\r\n constructor(private _renderService: RenderPrintService) {\r\n _renderService.renderPrint.subscribe(pages => {\r\n this.renderPrint(pages);\r\n });\r\n _renderService.renderPrintBlob.subscribe(file => {\r\n this.renderPrintBlob(file);\r\n });\r\n }\r\n\r\n private renderPrint(pages: PageModel[]) {\r\n let pagesHtml = '';\r\n if (this.htmlMode) {\r\n for (const page of pages) {\r\n pagesHtml += '
' +\r\n '
' + page.data + '
' +\r\n '
';\r\n }\r\n } else {\r\n for (const page of pages) {\r\n pagesHtml += '
' +\r\n '
' +\r\n '
';\r\n }\r\n }\r\n this.openWindow(pagesHtml, pages[0].width, pages[0].height);\r\n }\r\n\r\n private openWindow(pagesHtml, width, height) {\r\n const a4Height = 842;\r\n const a4Width = 595;\r\n let imageA4Adjusted = '';\r\n if(width > a4Width && height > a4Height){\r\n const zoom = Math.round(height / a4Height) / 100;\r\n imageA4Adjusted = '.gd-page img { width: 100%; margin: 0; padding: 0;}';\r\n if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1){\r\n imageA4Adjusted = '.gd-page img { transform: scale(' + zoom + ');}';\r\n }\r\n }\r\n let cssPrint = '';\r\n\r\n const windowObject = window.open('', \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\r\n windowObject.focus();\r\n windowObject.document.writeln(cssPrint);\r\n windowObject.document.writeln(pagesHtml);\r\n windowObject.document.close();\r\n windowObject.focus();\r\n windowObject.print();\r\n windowObject.close();\r\n }\r\n\r\n private renderPrintBlob(file: Blob) {\r\n const fileURL = URL.createObjectURL(file);\r\n const windowObject = window.open(fileURL, \"PrintWindow\", \"width=750,height=650,top=50,left=50,toolbars=yes,scrollbars=yes,status=yes,resizable=yes\");\r\n windowObject.focus();\r\n windowObject.print();\r\n windowObject.close();\r\n }\r\n}\r\n","import {BehaviorSubject, Observable} from \"rxjs\";\r\n\r\nexport class ExceptionMessageService {\r\n private _observer: BehaviorSubject = new BehaviorSubject('Server is not available');\r\n private _messageChange: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get messageChange(): Observable {\r\n return this._messageChange;\r\n }\r\n\r\n changeMessage(message: string) {\r\n this._observer.next(message);\r\n }\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {ExceptionMessageService} from \"../exception-message.service\";\r\n\r\n@Component({\r\n selector: 'gd-error-modal',\r\n templateUrl: './error-modal.component.html',\r\n styleUrls: ['./error-modal.component.less']\r\n})\r\nexport class ErrorModalComponent implements OnInit {\r\n\r\n message: string;\r\n\r\n constructor(messageService: ExceptionMessageService) {\r\n messageService.messageChange.subscribe(message => this.message = message);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class PasswordService {\r\n private _observer: Subject = new Subject();\r\n private readonly _passChange: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get passChange(): Observable {\r\n return this._passChange;\r\n }\r\n\r\n setPassword(pass: string) {\r\n this._observer.next(pass);\r\n }\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {ExceptionMessageService} from \"../exception-message.service\";\r\nimport {PasswordService} from \"../password.service\";\r\n\r\n@Component({\r\n selector: 'gd-password-required',\r\n templateUrl: './password-required.component.html',\r\n styleUrls: ['./password-required.component.less']\r\n})\r\nexport class PasswordRequiredComponent implements OnInit {\r\n message: string;\r\n\r\n constructor(messageService: ExceptionMessageService, private _passwordService: PasswordService) {\r\n messageService.messageChange.subscribe(message => this.message = message);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n setPassword(value: string) {\r\n this._passwordService.setPassword(value);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\r\nimport {Observable, throwError} from \"rxjs\";\r\nimport {catchError, map} from \"rxjs/operators\";\r\nimport {ExceptionMessageService} from \"./exception-message.service\";\r\nimport {HttpError} from \"./file.service\";\r\nimport {CommonModals, ModalService} from \"./modal.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptorService implements HttpInterceptor {\r\n\r\n constructor(private _modalService: ModalService, private _messageService: ExceptionMessageService) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n const logFormat = 'background: maroon; color: white';\r\n\r\n return next.handle(req)\r\n .pipe(map(data => {\r\n return data;\r\n }),\r\n catchError((exception: HttpEvent) => {\r\n if (exception instanceof HttpErrorResponse) {\r\n switch (exception.status) {\r\n\r\n case HttpError.BadRequest:\r\n console.error('%c Bad Request 400', logFormat);\r\n break;\r\n case HttpError.Unauthorized:\r\n console.error('%c Unauthorized 401', logFormat);\r\n break;\r\n case HttpError.NotFound:\r\n console.error('%c Not Found 404', logFormat);\r\n break;\r\n case HttpError.TimeOut:\r\n console.error('%c TimeOut 408', logFormat);\r\n break;\r\n case HttpError.InternalServerError:\r\n console.error('%c big bad 500', logFormat);\r\n this._messageService.changeMessage(exception.error.message);\r\n this._modalService.open(CommonModals.ErrorMessage);\r\n break;\r\n\r\n case HttpError.Forbidden:\r\n console.error('%c Forbidden 403', logFormat);\r\n this._messageService.changeMessage(exception.error.message);\r\n this._modalService.open(CommonModals.PasswordRequired);\r\n break;\r\n }\r\n }\r\n return throwError(exception);\r\n }));\r\n }\r\n}\r\n","import { HammerGestureConfig } from '@angular/platform-browser';\r\nimport * as Hammer from 'hammerjs';\r\n\r\nexport class CustomHammerConfig extends HammerGestureConfig {\r\n overrides = {\r\n // override default settings\r\n 'pinch': {\r\n direction: Hammer.DIRECTION_ALL,\r\n enable: true,\r\n dropRecognizeWith: 'rotate'\r\n },\r\n 'rotate': {\r\n direction: Hammer.DIRECTION_ALL,\r\n enable: true,\r\n requireFailure: 'pinch'\r\n }\r\n };\r\n}","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class SearchService {\r\n private _observer: Subject = new Subject();\r\n private readonly _textChange: Observable = this._observer.asObservable();\r\n\r\n private _observerCurrent: Subject = new Subject();\r\n private readonly _currentChange: Observable = this._observerCurrent.asObservable();\r\n\r\n private _observerTotal: Subject = new Subject();\r\n private readonly _totalChange: Observable = this._observerTotal.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get textChange(): Observable {\r\n return this._textChange;\r\n }\r\n\r\n setText(text: string) {\r\n this._observer.next(text);\r\n }\r\n\r\n get currentChange(): Observable {\r\n return this._currentChange;\r\n }\r\n\r\n get totalChange(): Observable {\r\n return this._totalChange;\r\n }\r\n\r\n setCurrent(current: number) {\r\n this._observerCurrent.next(current);\r\n }\r\n\r\n setTotal(total: number) {\r\n this._observerTotal.next(total);\r\n }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {SearchService} from \"../search.service\";\r\n\r\n@Component({\r\n selector: 'gd-search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.less']\r\n})\r\nexport class SearchComponent implements OnInit, AfterViewInit {\r\n\r\n @Output() hidePanel = new EventEmitter(false);\r\n\r\n current = 0;\r\n total = 0;\r\n\r\n @ViewChild('text',{\r\n static : true\r\n }) textElement: ElementRef;\r\n\r\n constructor(private _searchService: SearchService) {\r\n _searchService.totalChange.subscribe((total: number) => {\r\n this.total = total;\r\n if (total !== 0) {\r\n this.current = 1;\r\n } else {\r\n this.current = 0;\r\n }\r\n this._searchService.setCurrent(this.current);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n setText(text: string) {\r\n this._searchService.setText(text);\r\n }\r\n\r\n hide() {\r\n this.setText('');\r\n this.hidePanel.emit(true);\r\n }\r\n\r\n prev() {\r\n if (this.current > 1) {\r\n this.current--;\r\n this._searchService.setCurrent(this.current);\r\n }\r\n }\r\n\r\n next() {\r\n if (this.current < this.total) {\r\n this.current++;\r\n this._searchService.setCurrent(this.current);\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.textElement.nativeElement.focus();\r\n }\r\n}\r\n","import {Directive, ElementRef} from '@angular/core';\r\nimport {SearchService} from \"./search.service\";\r\nimport {HighlightSearchPipe} from \"./pipes\";\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport * as jquery from \"jquery\";\r\nconst $ = jquery;\r\n\r\n@Directive({\r\n selector: '[gdSearchable]'\r\n})\r\nexport class SearchableDirective {\r\n\r\n text: string;\r\n current = 0;\r\n total = 0;\r\n private zoom = 100;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _searchService: SearchService,\r\n private _highlight: HighlightSearchPipe,\r\n private _zoomService: ZoomService) {\r\n _searchService.currentChange.subscribe((current: number) => {\r\n this.current = current;\r\n if (this.current !== 0) {\r\n this.moveToCurrent();\r\n }\r\n });\r\n\r\n _searchService.textChange.subscribe((text: string) => {\r\n this.text = text;\r\n this.highlightSearch();\r\n });\r\n\r\n this.zoom = _zoomService.zoom ? _zoomService.zoom : this.zoom;\r\n _zoomService.zoomChange.subscribe((val: number) => {\r\n this.zoom = val ? val : this.zoom;\r\n });\r\n }\r\n\r\n private highlightSearch() {\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n this.cleanHighlight(el);\r\n if (this.text) {\r\n this.highlightEl(el);\r\n const count = el.querySelectorAll('.gd-highlight').length;\r\n this.total = count;\r\n } else {\r\n this.total = 0;\r\n }\r\n this._searchService.setTotal(this.total);\r\n }\r\n }\r\n\r\n private moveToCurrent() {\r\n if (this.current === 0) {\r\n return;\r\n }\r\n const currentZoom = this.getZoom();\r\n const el = this._elementRef ? this._elementRef.nativeElement : null;\r\n if (el) {\r\n el.querySelectorAll('.gd-highlight-select').forEach(function (value) {\r\n $(value).removeClass('gd-highlight-select');\r\n });\r\n const currentEl = el.querySelectorAll('.gd-highlight')[this.current - 1];\r\n $(currentEl).addClass('gd-highlight-select');\r\n if (currentEl) {\r\n const options = {\r\n left: 0,\r\n top: ($(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150,\r\n };\r\n // using polyfill\r\n el.parentElement.parentElement.scroll(options);\r\n }\r\n }\r\n }\r\n\r\n private highlightEl(el: Element) {\r\n const textNodes = $(el).find('*').contents().filter(function () {\r\n const nodeName = this.parentElement.nodeName.toLowerCase();\r\n const checkClass = (this).classList ? !(this).classList.contains('gd-highlight') : true;\r\n return this.nodeType === 3 &&\r\n this.textContent.trim().length !== 0 &&\r\n nodeName !== 'style' &&\r\n nodeName !== 'title' &&\r\n nodeName !== 'body' &&\r\n nodeName !== 'script' &&\r\n checkClass;\r\n });\r\n const text = this.text;\r\n const highlight = this._highlight;\r\n textNodes.each(function () {\r\n const $this = $(this);\r\n let content = $this.text();\r\n content = highlight.transform(content, text);\r\n $this.replaceWith(content);\r\n });\r\n el.normalize();\r\n }\r\n\r\n private cleanHighlight(el: HTMLElement) {\r\n const nodeListOf = el.querySelectorAll('.gd-highlight');\r\n for (let i = 0; i < nodeListOf.length; i++) {\r\n const element = nodeListOf.item(i);\r\n element.replaceWith((element).innerText);\r\n }\r\n el.normalize();\r\n }\r\n\r\n private getZoom() {\r\n return this.zoom / 100;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-tabbed-toolbars',\r\n templateUrl: './tabbed-toolbars.component.html',\r\n styleUrls: ['./tabbed-toolbars.component.less']\r\n})\r\nexport class TabbedToolbarsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class TabActivatorService {\r\n private _observer: Subject = new Subject();\r\n private readonly _activeTabChange: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get activeTabChange(): Observable {\r\n return this._activeTabChange;\r\n }\r\n\r\n changeActiveTab(tabId: string) {\r\n this._observer.next(tabId);\r\n }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {TabActivatorService} from \"../tab-activator.service\";\r\n\r\n@Component({\r\n selector: 'gd-tab',\r\n templateUrl: './tab.component.html',\r\n styleUrls: ['./tab.component.less']\r\n})\r\nexport class TabComponent implements OnInit {\r\n @Input() id: string;\r\n @Input() tabTitle: string;\r\n @Input() icon: string;\r\n @Input() disabled = false;\r\n @Input() active = false;\r\n @Input() content = true;\r\n\r\n constructor(private _tabActivatorService: TabActivatorService) {\r\n this._tabActivatorService.activeTabChange.subscribe((tabId: string) => {\r\n this.activation(tabId);\r\n });\r\n }\r\n\r\n private activation(tabId: string) {\r\n if (this.id === tabId) {\r\n this.active = true;\r\n } else {\r\n this.active = false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n selectTab() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n this._tabActivatorService.changeActiveTab(this.id);\r\n }\r\n}\r\n","import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.less']\r\n})\r\nexport class TabsComponent {\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {Observable, Subject} from \"rxjs\";\r\n\r\nexport class Formatting {\r\n static DEFAULT: Formatting = new Formatting(10, '#000000', '#FFFFFF', false, false, false, 'Arial', false, \"\", \"\");\r\n\r\n constructor(fontSize: number, color: string, bgColor: string, bold: boolean, italic: boolean, underline: boolean, font: string, strikeout: boolean, align: string, list: string) {\r\n this.fontSize = fontSize;\r\n this.color = color;\r\n this.bgColor = bgColor;\r\n this.bold = bold;\r\n this.italic = italic;\r\n this.underline = underline;\r\n this.font = font;\r\n this.strikeout = strikeout;\r\n this.align = align;\r\n this.list = list;\r\n }\r\n\r\n bold: boolean;\r\n italic: boolean;\r\n underline: boolean;\r\n fontSize: number;\r\n color: string;\r\n bgColor: string;\r\n font: string;\r\n strikeout: boolean;\r\n align: string;\r\n list: string;\r\n}\r\n\r\nexport class FormattingService {\r\n private _observerBold: Subject = new Subject();\r\n private readonly _formatBoldChange: Observable = this._observerBold.asObservable();\r\n private _observerUnderline: Subject = new Subject();\r\n private readonly _formatUnderlineChange: Observable = this._observerUnderline.asObservable();\r\n private _observerUndo: Subject = new Subject();\r\n private readonly _undo: Observable = this._observerUndo.asObservable();\r\n private _observerRedo: Subject = new Subject();\r\n private readonly _redo: Observable = this._observerRedo.asObservable();\r\n private _observerItalic: Subject = new Subject();\r\n private readonly _formatItalicChange: Observable = this._observerItalic.asObservable();\r\n private _observerColor: Subject = new Subject();\r\n private readonly _formatColorChange: Observable = this._observerColor.asObservable();\r\n private _observerBgColor: Subject = new Subject();\r\n private readonly _formatBgColorChange: Observable = this._observerBgColor.asObservable();\r\n private _observerFontSize: Subject = new Subject();\r\n private readonly _formatFontSizeChange: Observable = this._observerFontSize.asObservable();\r\n private _observerFont: Subject = new Subject();\r\n private readonly _formatFontChange: Observable = this._observerFont.asObservable();\r\n private _observerStrikeout: Subject = new Subject();\r\n private readonly _formatStrikeoutChange: Observable = this._observerStrikeout.asObservable();\r\n private _observerAlign: Subject = new Subject();\r\n private readonly _formatAlignChange: Observable = this._observerAlign.asObservable();\r\n private _observerList: Subject = new Subject();\r\n private readonly _formatListChange: Observable = this._observerList.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get formatBoldChange() {\r\n return this._formatBoldChange;\r\n }\r\n\r\n get formatUnderlineChange() {\r\n return this._formatUnderlineChange;\r\n }\r\n\r\n get formatColorChange() {\r\n return this._formatColorChange;\r\n }\r\n\r\n get formatBgColorChange() {\r\n return this._formatBgColorChange;\r\n }\r\n\r\n get formatFontSizeChange() {\r\n return this._formatFontSizeChange;\r\n }\r\n\r\n get formatFontChange() {\r\n return this._formatFontChange;\r\n }\r\n\r\n get undo() {\r\n return this._undo;\r\n }\r\n\r\n get redo() {\r\n return this._redo;\r\n }\r\n\r\n get formatItalicChange() {\r\n return this._formatItalicChange;\r\n }\r\n\r\n get formatStrikeoutChange() {\r\n return this._formatStrikeoutChange;\r\n }\r\n\r\n get formatAlignChange() {\r\n return this._formatAlignChange;\r\n }\r\n\r\n get formatListChange() {\r\n return this._formatListChange;\r\n }\r\n\r\n static createFontSizeOption(val: number) {\r\n return {value: val, name: val + 'px', separator: false}\r\n }\r\n\r\n static getFontSizeOptions() {\r\n return [\r\n FormattingService.createFontSizeOption(8),\r\n FormattingService.createFontSizeOption(10),\r\n FormattingService.createFontSizeOption(12),\r\n FormattingService.createFontSizeOption(14),\r\n FormattingService.createFontSizeOption(16),\r\n FormattingService.createFontSizeOption(18),\r\n FormattingService.createFontSizeOption(20),\r\n FormattingService.createFontSizeOption(22),\r\n FormattingService.createFontSizeOption(24),\r\n ];\r\n }\r\n\r\n static createFontOption(val: string) {\r\n return {value: val, name: val, separator: false}\r\n }\r\n\r\n static getFontOptions() {\r\n const fonts = [\"Arial\", \"Calibri\", \"Century Gothic\", \"Comic Sans\", \"Consolas\", \"Courier\", \"Dejavu Sans\", \"Dejavu Serif\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Lucida Sans\",\r\n \"Myriad Pro\", \"Open Sans\", \"Palatino\", \"Tahoma\", \"Times New Roman\", \"Trebuchet\"];\r\n const fontOptions = [];\r\n fonts.forEach(font=> {\r\n fontOptions.push(this.createFontOption(font));\r\n })\r\n\r\n return fontOptions;\r\n }\r\n\r\n changeFormatFontSize($event: number) {\r\n this._observerFontSize.next($event);\r\n }\r\n\r\n changeFormatBold(bold: boolean) {\r\n this._observerBold.next(bold);\r\n }\r\n\r\n changeFormatUnderline(underline: boolean) {\r\n this._observerUnderline.next(underline);\r\n }\r\n\r\n Undo() {\r\n this._observerUndo.next();\r\n }\r\n\r\n Redo() {\r\n this._observerRedo.next();\r\n }\r\n\r\n changeFormatItalic(italic: boolean) {\r\n this._observerItalic.next(italic);\r\n }\r\n\r\n changeFormatColor(color: string) {\r\n this._observerColor.next(color);\r\n }\r\n\r\n changeFormatBgColor(bgcolor: string) {\r\n this._observerBgColor.next(bgcolor);\r\n }\r\n\r\n changeFormatFont(font: string) {\r\n this._observerFont.next(font);\r\n }\r\n\r\n changeFormatStrikeout(strikeout: boolean) {\r\n this._observerStrikeout.next(strikeout);\r\n }\r\n\r\n changeFormatAlign(align: string) {\r\n this._observerAlign.next(align);\r\n }\r\n\r\n changeFormatList(list: string) {\r\n this._observerList.next(list);\r\n }\r\n}\r\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\r\n\r\nconst DEFAULT_COLORS = ['#000000', '#993300', '#333300', '#000080', '#333399', '#333333',\r\n '#800000', '#FF6600', '#808000', '#008000', '#008080', '#0000FF',\r\n '#666699', '#808080', '#FF0000', '#FF9900', '#99CC00', '#339966',\r\n '#33CCCC', '#3366FF', '#800080', '#999999', '#FF00FF', '#FFCC00',\r\n '#FFFF00', '#00FF00', '#00FFFF', '#00CCFF', '#993366', '#C0C0C0',\r\n '#FF99CC', '#FFCC99', '#FFFF99', '#CCFFFF', '#99CCFF', '#FFFFFF'];\r\n\r\n\r\n@Component({\r\n selector: 'gd-color-picker',\r\n templateUrl: './color-picker.component.html',\r\n styleUrls: ['./color-picker.component.less']\r\n})\r\nexport class ColorPickerComponent implements OnInit {\r\n @Output() selectedColor = new EventEmitter();\r\n colors: any = DEFAULT_COLORS;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n select($event, color: string) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.selectedColor.emit(color);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {FormattingService} from \"./formatting.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BackFormattingService extends FormattingService {\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SelectionService {\r\n selection: Range;\r\n isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n\r\n restoreSelection() {\r\n if(this.selection && !this.selection.collapsed || this.isIE){\r\n this.putSelection(this.selection );\r\n }\r\n }\r\n\r\n captureSelection() {\r\n const selection = window.getSelection();\r\n if (selection.rangeCount > 0) {\r\n this.selection = selection.getRangeAt(0);\r\n }\r\n }\r\n\r\n private putSelection(selection) {\r\n const sel = window.getSelection();\r\n sel.removeAllRanges();\r\n sel.addRange(selection.cloneRange());\r\n }\r\n\r\n refreshSelection() {\r\n this.captureSelection();\r\n this.restoreSelection();\r\n }\r\n}\r\n","import {Directive, HostListener, OnInit} from '@angular/core';\r\nimport {FormattingService} from \"./formatting.service\";\r\nimport {BackFormattingService} from \"./back-formatting.service\";\r\nimport * as jquery from 'jquery';\r\nconst $ = jquery;\r\nimport {SelectionService} from './selection.service';\r\n\r\n@Directive({\r\n selector: '[gdFormatting]'\r\n})\r\nexport class FormattingDirective implements OnInit {\r\n\r\n private bold = false;\r\n private italic = false;\r\n private underline = false;\r\n private color: string;\r\n private bgColor: string;\r\n private font: string;\r\n private strikeout = false;\r\n private align: string;\r\n private list: string;\r\n private isIE = false;\r\n\r\n constructor(private _formattingService: FormattingService,\r\n private _backFormattingService: BackFormattingService,\r\n private _selectionService: SelectionService) {\r\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n }\r\n\r\n @HostListener('mouseup') mouseup() {\r\n\r\n this.bold = document.queryCommandState(\"bold\");\r\n this.strikeout = document.queryCommandState(\"strikeThrough\");\r\n this.italic = document.queryCommandState(\"italic\");\r\n this.bgColor = document.queryCommandValue(\"backColor\");\r\n this.underline = document.queryCommandState(\"underline\");\r\n this.align = this.checkJustify();\r\n this.list = this.checkList();\r\n\r\n //fix required by FireFox to get correct background color\r\n if (this.bgColor === \"transparent\") {\r\n this.bgColor = $(window.getSelection().focusNode.parentNode).css('background-color').toString();\r\n }\r\n this.font = document.queryCommandValue(\"FontName\").replace(/\"/g, '');\r\n if(this.font.split(\",\").length > 1){\r\n this.font = this.font.split(\",\")[0];\r\n }\r\n this.color = document.queryCommandValue(\"foreColor\");\r\n this._backFormattingService.changeFormatBold(this.bold);\r\n this._backFormattingService.changeFormatUnderline(this.underline);\r\n this._backFormattingService.changeFormatItalic(this.italic);\r\n this._backFormattingService.changeFormatColor(this.color);\r\n this._backFormattingService.changeFormatBgColor(this.bgColor);\r\n this._backFormattingService.changeFormatFontSize(this.reportFontSize());\r\n this._backFormattingService.changeFormatFont(this.font);\r\n this._backFormattingService.changeFormatStrikeout(this.strikeout);\r\n this._backFormattingService.changeFormatAlign(this.align);\r\n this._backFormattingService.changeFormatList(this.list);\r\n }\r\n\r\n private checkJustify() {\r\n let align = \"\";\r\n align = document.queryCommandState(\"justifyCenter\") ? \"center\" : align;\r\n align = document.queryCommandState(\"justifyFull\") ? \"full\" : align;\r\n align = document.queryCommandState(\"justifyLeft\") ? \"left\" : align;\r\n align = document.queryCommandState(\"justifyRight\") ? \"right\" : align;\r\n return align;\r\n }\r\n\r\n private checkList() {\r\n let list = \"\";\r\n list = document.queryCommandState(\"insertUnorderedList\") ? \"unordered\" : list;\r\n list = document.queryCommandState(\"insertOrderedList\") ? \"ordered\" : list;\r\n return list;\r\n }\r\n\r\n reportFontSize(): number {\r\n let containerEl, sel;\r\n if (window.getSelection) {\r\n sel = window.getSelection();\r\n if (sel.rangeCount) {\r\n containerEl = sel.getRangeAt(0).commonAncestorContainer;\r\n // Make sure we have an element rather than a text node\r\n if (containerEl.nodeType === 3) {\r\n containerEl = containerEl.parentNode;\r\n }\r\n }\r\n } else if ((sel = document.getSelection()) && sel.type !== \"Control\") {\r\n containerEl = sel.createRange().parentElement();\r\n }\r\n\r\n if (containerEl) {\r\n return parseInt(this.getComputedStyleProperty(containerEl, \"fontSize\").replace(\"px\", \"\"), 10);\r\n }\r\n }\r\n\r\n getComputedStyleProperty(el, propName) {\r\n if (window.getComputedStyle) {\r\n return window.getComputedStyle(el, null)[propName];\r\n } else if (el.currentStyle) {\r\n return el.currentStyle[propName];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._formattingService.undo.subscribe(() => {\r\n this.toggleUndo();\r\n });\r\n this._formattingService.redo.subscribe(() => {\r\n this.toggleRedo();\r\n });\r\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\r\n this.bold = bold;\r\n this.toggleBold();\r\n });\r\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\r\n this.underline = underline;\r\n this.toggleUnderline();\r\n });\r\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\r\n this.italic = italic;\r\n this.toggleItalic();\r\n });\r\n this._formattingService.formatColorChange.subscribe(((color: string) => {\r\n this.color = color;\r\n this.setColor(color);\r\n }));\r\n this._formattingService.formatBgColorChange.subscribe(((bgcolor: string) => {\r\n this.bgColor = bgcolor;\r\n this.setBgColor(bgcolor);\r\n }));\r\n this._formattingService.formatFontSizeChange.subscribe(((fontSize: number) => {\r\n this.setFontSize(fontSize);\r\n }));\r\n\r\n this._formattingService.formatFontChange.subscribe(((font: string) => {\r\n this.font = font;\r\n this.setFont(font);\r\n }));\r\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\r\n this.strikeout = strikeout;\r\n this.toggleStrikeout();\r\n });\r\n this._formattingService.formatAlignChange.subscribe((align: string) => {\r\n this.align = align;\r\n this.toggleAlign(this.align);\r\n });\r\n this._formattingService.formatListChange.subscribe((list: string) => {\r\n this.list = list;\r\n this.toggleList(this.list);\r\n });\r\n }\r\n\r\n private toggleBold() {\r\n document.execCommand(\"bold\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleUnderline() {\r\n document.execCommand(\"underline\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleItalic() {\r\n document.execCommand(\"italic\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private setBgColor(bgColor: string) {\r\n document.execCommand(\"backColor\", false, bgColor);\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private setColor(color: string) {\r\n document.execCommand(\"foreColor\", false, color);\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private setFontSize(fontSize: number) {\r\n if (document.getSelection().toString()) {\r\n let spanString = \"\" +\r\n document.getSelection() + \"\";\r\n if (this.bold) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n if (this.italic) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n if (this.underline) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n if (this.strikeout) {\r\n spanString = \"\" + spanString + \"\";\r\n }\r\n document.execCommand('insertHTML', false, spanString);\r\n } else {\r\n document.execCommand(\"fontsize\", false, \"7\");\r\n }\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleUndo() {\r\n document.execCommand(\"undo\");\r\n }\r\n\r\n private toggleRedo() {\r\n document.execCommand(\"redo\");\r\n }\r\n\r\n private setFont(font: string) {\r\n document.execCommand(\"fontName\", false, font);\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleStrikeout() {\r\n document.execCommand(\"strikeThrough\");\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleAlign(align: string) {\r\n if(this.isIE) {\r\n this.toggleAlignIE(align);\r\n return;\r\n }\r\n document.execCommand(\"styleWithCSS\", false, 'true');\r\n switch (align) {\r\n case 'center':\r\n document.execCommand('justifyCenter');\r\n break;\r\n case 'full':\r\n document.execCommand('justifyFull');\r\n break;\r\n case 'left':\r\n document.execCommand('justifyLeft');\r\n break;\r\n case 'right':\r\n document.execCommand('justifyRight');\r\n break;\r\n }\r\n this._selectionService.refreshSelection();\r\n }\r\n\r\n private toggleAlignIE(align: string) {\r\n this._selectionService.restoreSelection()\r\n this._selectionService.captureSelection()\r\n const selection = window.getSelection().focusNode.parentNode.parentNode;\r\n if(align === \"full\"){\r\n align = \"justify\";\r\n }\r\n $(selection).css(\"text-align\", align);\r\n this._selectionService.refreshSelection()\r\n }\r\n\r\n private toggleList(list: string) {\r\n switch (list) {\r\n case 'unordered':\r\n document.execCommand('insertUnorderedList');\r\n break;\r\n case 'ordered':\r\n document.execCommand('insertOrderedList');\r\n break;\r\n }\r\n this._selectionService.refreshSelection();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gd-success-modal',\r\n templateUrl: './success-modal.component.html',\r\n styleUrls: ['./success-modal.component.less']\r\n})\r\nexport class SuccessModalComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EditHtmlService {\r\n private _observer: Subject = new Subject();\r\n private readonly _htmlContent: Observable = this._observer.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n get observer(): Subject {\r\n return this._observer;\r\n }\r\n\r\n get htmlContent(): Observable {\r\n return this._htmlContent;\r\n }\r\n\r\n}\r\n","import {Directive, HostListener, Input} from '@angular/core';\r\nimport {SelectionService} from './selection.service';\r\nimport {EditHtmlService} from \"./edit-html.service\";\r\n\r\n@Directive({\r\n selector: '[gdEditor]'\r\n})\r\nexport class EditorDirective {\r\n @Input() text: any;\r\n\r\n private isIE: boolean = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\r\n\r\n constructor(private _selectionService: SelectionService, private _htmlService: EditHtmlService) {\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n public onInput(event) {\r\n this.text = event.target;\r\n if(this.isIE){\r\n if (this.text.innerHTML) {\r\n const html = this.text.innerHTML.toString();\r\n this._htmlService.observer.next(html);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('mouseleave', ['$event'])\r\n public onMouseleave(event) {\r\n this._selectionService.captureSelection();\r\n // this code is required to fix IE11 issue - it doesn't trigger blur event, since that we need to save updated HTML here\r\n if(this.isIE){\r\n this._htmlService.observer.next(event.target.innerHTML.toString());\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n public onBlur(event) {\r\n event.preventDefault();\r\n this._selectionService.restoreSelection();\r\n if (this.text.innerHTML) {\r\n const html = this.text.innerHTML.toString();\r\n this._htmlService.observer.next(html);\r\n } else {\r\n this._htmlService.observer.next(event.target.innerHTML.toString());\r\n }\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core'\r\nimport { HttpRequest } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class LoadingMaskService {\r\n onLoadingChanged: EventEmitter = new EventEmitter();\r\n\r\n private requests: HttpRequest[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n onRequestStart(req: HttpRequest): void {\r\n this.requests.push(req);\r\n this.notify();\r\n }\r\n\r\n onRequestFinish(req: HttpRequest): void {\r\n const index = this.requests.indexOf(req);\r\n if (index !== -1) {\r\n this.requests.splice(index, 1);\r\n }\r\n this.notify();\r\n }\r\n\r\n private notify(): void {\r\n this.onLoadingChanged.emit(this.requests.length !== 0);\r\n }\r\n}\r\n","import {AfterViewInit, Component, Input, OnInit} from '@angular/core';\r\nimport {LoadingMaskService} from \"../loading-mask.service\";\r\n\r\n@Component({\r\n selector: 'gd-loading-mask',\r\n templateUrl: './loading-mask.component.html',\r\n styleUrls: ['./loading-mask.component.less']\r\n})\r\n\r\nexport class LoadingMaskComponent implements OnInit, AfterViewInit {\r\n @Input() loadingMask = false;\r\n\r\n constructor(private _loadingMaskService: LoadingMaskService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._loadingMaskService\r\n .onLoadingChanged\r\n .subscribe((loading: boolean) => this.loadingMask = loading);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from \"@angular/common/http\";\r\nimport {Observable} from \"rxjs\";\r\nimport {finalize} from 'rxjs/operators'\r\nimport {LoadingMaskService} from \"./loading-mask.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadingMaskInterceptorService implements HttpInterceptor {\r\n\r\n constructor(private _loadingMaskService: LoadingMaskService) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n this._loadingMaskService.onRequestStart(req);\r\n const callback = () => this._loadingMaskService.onRequestFinish(req);\r\n return next.handle(req).pipe( finalize( callback));\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n HostListener,\r\n Inject,\r\n Input,\r\n Output,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\n\r\n\r\nconst horizontalAlignment = {\r\n center : {\r\n right: 'auto'\r\n },\r\n left : {\r\n right: '100%'\r\n },\r\n right : {\r\n right: '-100%'\r\n }\r\n};\r\n\r\nconst verticalAlignment = {\r\n center : {\r\n top : '0px',\r\n },\r\n top : {\r\n top : '-100%',\r\n right: '100%'\r\n },\r\n bottom : {\r\n top: 'autos'\r\n }\r\n};\r\n\r\n/**\r\n * DropDownToggleComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down-toggle',\r\n template: '',\r\n styleUrls: ['./drop-down.component.less'],\r\n encapsulation : ViewEncapsulation.None\r\n})\r\nexport class DropDownToggleComponent{\r\n @HostListener('click',['$event'])\r\n click = (event: any) => this.dropdown.toggle(event);\r\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\r\n}\r\n\r\n/**\r\n * DropDownItemsComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down-items',\r\n template: '
',\r\n styleUrls: ['./drop-down.component.less'],\r\n encapsulation : ViewEncapsulation.None\r\n})\r\nexport class DropDownItemsComponent{\r\n\r\n get horizontalAlign(){\r\n return horizontalAlignment[this.dropdown.getPlacement().h].right;\r\n }\r\n\r\n get verticalAlign(){\r\n return verticalAlignment[this.dropdown.getPlacement().v].top;\r\n }\r\n\r\n get isOpen(){\r\n return this.dropdown.open;\r\n }\r\n\r\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\r\n\r\n onClickOutside(event : Event ){\r\n this.dropdown.close();\r\n }\r\n}\r\n\r\n/**\r\n * DropDownItemComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down-item',\r\n template: '
',\r\n styleUrls: ['./drop-down.component.less'],\r\n})\r\nexport class DropDownItemComponent{\r\n @HostBinding('class')\r\n class = 'drop-down-item';\r\n\r\n @Output()\r\n selected = new EventEmitter();\r\n\r\n @HostListener('click')\r\n click = () => this.selectEntry();\r\n\r\n constructor(@Inject(forwardRef(() => DropDownComponent)) public dropdown) {}\r\n\r\n selectEntry(){\r\n this.selected.next();\r\n this.dropdown.close();\r\n }\r\n}\r\n\r\n/**\r\n * DropDownComponent\r\n */\r\n@Component({\r\n selector: 'gd-drop-down',\r\n template: '
',\r\n styleUrls: ['./drop-down.component.less'],\r\n encapsulation : ViewEncapsulation.None\r\n})\r\nexport class DropDownComponent{\r\n @Input()\r\n placement = {\r\n h: \"center\",\r\n v: \"bottom\"\r\n };\r\n\r\n\r\n @Input()\r\n @HostBinding('class.show')\r\n open = false;\r\n\r\n @HostBinding('class')\r\n class = 'drop-down';\r\n\r\n close(){\r\n this.open = false;\r\n }\r\n\r\n toggle(event : MouseEvent){\r\n event.stopPropagation();\r\n this.open = !this.open;\r\n document.body.click();\r\n }\r\n\r\n getPlacement(){\r\n return this.placement;\r\n }\r\n}\r\n","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {TopToolbarComponent} from './top-toolbar/top-toolbar.component';\r\nimport {SidePanelComponent} from './side-panel/side-panel.component';\r\nimport {ButtonComponent} from './button/button.component';\r\nimport {LogoComponent} from './logo/logo.component';\r\nimport {TooltipComponent} from './tooltip/tooltip.component';\r\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\r\nimport {library} from '@fortawesome/fontawesome-svg-core';\r\nimport {fas} from '@fortawesome/free-solid-svg-icons';\r\nimport {far} from '@fortawesome/free-regular-svg-icons';\r\nimport {Api, ConfigService,} from \"./config.service\";\r\nimport {ModalService} from \"./modal.service\";\r\nimport {ModalComponent} from './modal/modal.component';\r\nimport {BrowseFilesModalComponent} from './browse-files-modal/browse-files-modal.component';\r\nimport {FileModel, FileService, FileUtil} from \"./file.service\";\r\nimport {DocumentComponent} from './document/document.component';\r\nimport {PageComponent} from './page/page.component';\r\nimport {HighlightSearchPipe, SanitizeHtmlPipe, SanitizeResourceHtmlPipe, SanitizeStylePipe} from \"./pipes\";\r\nimport {UploadFileZoneComponent} from './upload-file-zone/upload-file-zone.component';\r\nimport {UploadFilesService} from \"./upload-files.service\";\r\nimport {DndDirective} from './dnd.directive';\r\nimport {ScrollableDirective} from './scrollable.directive';\r\nimport {NavigateService} from \"./navigate.service\";\r\nimport {PagePreloadService} from \"./page-preload.service\";\r\nimport {ZoomDirective} from './zoom.directive';\r\nimport {ZoomService} from \"./zoom.service\";\r\nimport {SelectComponent} from './select/select.component';\r\nimport {DisabledCursorDirective} from './disabled-cursor.directive';\r\nimport {RotationDirective} from './rotation.directive';\r\nimport {InitStateComponent} from './init-state/init-state.component';\r\nimport {RenderPrintService} from \"./render-print.service\";\r\nimport {RenderPrintDirective} from './render-print.directive';\r\nimport {ErrorModalComponent} from './error-modal/error-modal.component';\r\nimport {PasswordRequiredComponent} from './password-required/password-required.component';\r\nimport {ExceptionMessageService} from \"./exception-message.service\";\r\nimport {PasswordService} from \"./password.service\";\r\nimport {RotationService} from \"./rotation.service\";\r\nimport {ErrorInterceptorService} from \"./error-interceptor.service\";\r\nimport {CustomHammerConfig} from \"./custom-hammer-config\";\r\nimport {SearchComponent} from './search/search.component';\r\nimport {SearchableDirective} from './searchable.directive';\r\nimport {SearchService} from \"./search.service\";\r\nimport {WindowService} from \"./window.service\";\r\nimport {ViewportService} from \"./viewport.service\";\r\nimport {TabbedToolbarsComponent} from './tabbed-toolbars/tabbed-toolbars.component';\r\nimport {TabComponent} from \"./tab/tab.component\";\r\nimport {TabsComponent} from \"./tabs/tabs.component\";\r\nimport {FormattingService} from \"./formatting.service\";\r\nimport {ColorPickerComponent} from './color-picker/color-picker.component';\r\nimport {FormattingDirective} from './formatting.directive';\r\nimport {BackFormattingService} from \"./back-formatting.service\";\r\nimport {OnCloseService} from \"./on-close.service\";\r\nimport {SuccessModalComponent} from './success-modal/success-modal.component';\r\nimport {EditorDirective} from './editor.directive';\r\nimport {LoadingMaskComponent} from './loading-mask/loading-mask.component';\r\nimport {LoadingMaskService} from './loading-mask.service';\r\nimport {LoadingMaskInterceptorService} from \"./loading-mask-interceptor.service\";\r\nimport {TabActivatorService} from \"./tab-activator.service\";\r\nimport { DropDownComponent,DropDownItemComponent,DropDownItemsComponent,DropDownToggleComponent } from './drop-down/drop-down.component';\r\nimport { ClickOutsideModule } from 'ng-click-outside';\r\n\r\nconst providers = [ConfigService,\r\n Api,\r\n ModalService,\r\n FileService,\r\n FileModel,\r\n FileUtil,\r\n SanitizeHtmlPipe,\r\n SanitizeResourceHtmlPipe,\r\n SanitizeStylePipe,\r\n HighlightSearchPipe,\r\n UploadFilesService,\r\n RenderPrintService,\r\n NavigateService,\r\n PagePreloadService,\r\n ZoomService,\r\n ExceptionMessageService,\r\n PasswordService,\r\n RotationService,\r\n ErrorInterceptorService,\r\n CustomHammerConfig,\r\n SearchService,\r\n WindowService,\r\n ViewportService,\r\n FormattingService,\r\n BackFormattingService,\r\n OnCloseService,\r\n LoadingMaskInterceptorService,\r\n LoadingMaskService,\r\n TabActivatorService];\r\n\r\n@NgModule({\r\n imports: [CommonModule, FontAwesomeModule, ClickOutsideModule],\r\n declarations: [\r\n TopToolbarComponent,\r\n SidePanelComponent,\r\n ButtonComponent,\r\n LogoComponent,\r\n TooltipComponent,\r\n ModalComponent,\r\n BrowseFilesModalComponent,\r\n DocumentComponent,\r\n PageComponent,\r\n SanitizeHtmlPipe,\r\n SanitizeResourceHtmlPipe,\r\n SanitizeStylePipe,\r\n HighlightSearchPipe,\r\n UploadFileZoneComponent,\r\n DndDirective,\r\n ScrollableDirective,\r\n ZoomDirective,\r\n SelectComponent,\r\n DisabledCursorDirective,\r\n RotationDirective,\r\n InitStateComponent,\r\n RenderPrintDirective,\r\n ErrorModalComponent,\r\n PasswordRequiredComponent,\r\n SearchComponent,\r\n SearchableDirective,\r\n TabbedToolbarsComponent,\r\n TabComponent,\r\n TabsComponent,\r\n ColorPickerComponent,\r\n FormattingDirective,\r\n SuccessModalComponent,\r\n EditorDirective,\r\n LoadingMaskComponent,\r\n DropDownComponent,\r\n DropDownItemComponent,\r\n DropDownItemsComponent,\r\n DropDownToggleComponent\r\n ],\r\n exports: [\r\n TopToolbarComponent,\r\n SidePanelComponent,\r\n ButtonComponent,\r\n LogoComponent,\r\n TooltipComponent,\r\n ModalComponent,\r\n BrowseFilesModalComponent,\r\n DocumentComponent,\r\n PageComponent,\r\n SanitizeResourceHtmlPipe,\r\n SanitizeStylePipe,\r\n HighlightSearchPipe,\r\n SanitizeHtmlPipe,\r\n UploadFileZoneComponent,\r\n ScrollableDirective,\r\n SelectComponent,\r\n RotationDirective,\r\n InitStateComponent,\r\n RenderPrintDirective,\r\n ErrorModalComponent,\r\n PasswordRequiredComponent,\r\n SearchComponent,\r\n SearchableDirective,\r\n TabbedToolbarsComponent,\r\n TabComponent,\r\n TabsComponent,\r\n ColorPickerComponent,\r\n FormattingDirective,\r\n SuccessModalComponent,\r\n LoadingMaskComponent,\r\n DndDirective,\r\n DropDownComponent,\r\n DropDownItemComponent,\r\n DropDownItemsComponent,\r\n DropDownToggleComponent\r\n ],\r\n providers: providers\r\n})\r\nexport class CommonComponentsModule {\r\n constructor() {\r\n library.add(fas, far);\r\n }\r\n}\r\n"],"names":["tslib_1.__extends","$","tslib_1.__values","Hammer.DIRECTION_ALL"],"mappings":"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"} \ No newline at end of file diff --git a/dist/libs/common-components/groupdocs.examples.angular-common-components.metadata.json b/dist/libs/common-components/groupdocs.examples.angular-common-components.metadata.json index f48140e8d..7439780d0 100644 --- a/dist/libs/common-components/groupdocs.examples.angular-common-components.metadata.json +++ b/dist/libs/common-components/groupdocs.examples.angular-common-components.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"metadata":{"CommonComponentsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":88,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":89,"character":12},{"__symbolic":"reference","module":"@fortawesome/angular-fontawesome","name":"FontAwesomeModule","line":89,"character":26},{"__symbolic":"reference","module":"ng-click-outside","name":"ClickOutsideModule","line":89,"character":45}],"declarations":[{"__symbolic":"reference","name":"TopToolbarComponent"},{"__symbolic":"reference","name":"SidePanelComponent"},{"__symbolic":"reference","name":"ButtonComponent"},{"__symbolic":"reference","name":"LogoComponent"},{"__symbolic":"reference","name":"TooltipComponent"},{"__symbolic":"reference","name":"ModalComponent"},{"__symbolic":"reference","name":"BrowseFilesModalComponent"},{"__symbolic":"reference","name":"DocumentComponent"},{"__symbolic":"reference","name":"PageComponent"},{"__symbolic":"reference","name":"SanitizeHtmlPipe"},{"__symbolic":"reference","name":"SanitizeResourceHtmlPipe"},{"__symbolic":"reference","name":"SanitizeStylePipe"},{"__symbolic":"reference","name":"HighlightSearchPipe"},{"__symbolic":"reference","name":"UploadFileZoneComponent"},{"__symbolic":"reference","name":"DndDirective"},{"__symbolic":"reference","name":"ScrollableDirective"},{"__symbolic":"reference","name":"ZoomDirective"},{"__symbolic":"reference","name":"SelectComponent"},{"__symbolic":"reference","name":"DisabledCursorDirective"},{"__symbolic":"reference","name":"RotationDirective"},{"__symbolic":"reference","name":"InitStateComponent"},{"__symbolic":"reference","name":"RenderPrintDirective"},{"__symbolic":"reference","name":"ErrorModalComponent"},{"__symbolic":"reference","name":"PasswordRequiredComponent"},{"__symbolic":"reference","name":"SearchComponent"},{"__symbolic":"reference","name":"SearchableDirective"},{"__symbolic":"reference","name":"TabbedToolbarsComponent"},{"__symbolic":"reference","name":"TabComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ColorPickerComponent"},{"__symbolic":"reference","name":"FormattingDirective"},{"__symbolic":"reference","name":"SuccessModalComponent"},{"__symbolic":"reference","name":"EditorDirective"},{"__symbolic":"reference","name":"LoadingMaskComponent"},{"__symbolic":"reference","name":"DropDownComponent"},{"__symbolic":"reference","name":"DropDownItemComponent"},{"__symbolic":"reference","name":"DropDownItemsComponent"},{"__symbolic":"reference","name":"DropDownToggleComponent"}],"exports":[{"__symbolic":"reference","name":"TopToolbarComponent"},{"__symbolic":"reference","name":"SidePanelComponent"},{"__symbolic":"reference","name":"ButtonComponent"},{"__symbolic":"reference","name":"LogoComponent"},{"__symbolic":"reference","name":"TooltipComponent"},{"__symbolic":"reference","name":"ModalComponent"},{"__symbolic":"reference","name":"BrowseFilesModalComponent"},{"__symbolic":"reference","name":"DocumentComponent"},{"__symbolic":"reference","name":"PageComponent"},{"__symbolic":"reference","name":"SanitizeResourceHtmlPipe"},{"__symbolic":"reference","name":"SanitizeStylePipe"},{"__symbolic":"reference","name":"HighlightSearchPipe"},{"__symbolic":"reference","name":"SanitizeHtmlPipe"},{"__symbolic":"reference","name":"UploadFileZoneComponent"},{"__symbolic":"reference","name":"ScrollableDirective"},{"__symbolic":"reference","name":"SelectComponent"},{"__symbolic":"reference","name":"RotationDirective"},{"__symbolic":"reference","name":"InitStateComponent"},{"__symbolic":"reference","name":"RenderPrintDirective"},{"__symbolic":"reference","name":"ErrorModalComponent"},{"__symbolic":"reference","name":"PasswordRequiredComponent"},{"__symbolic":"reference","name":"SearchComponent"},{"__symbolic":"reference","name":"SearchableDirective"},{"__symbolic":"reference","name":"TabbedToolbarsComponent"},{"__symbolic":"reference","name":"TabComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ColorPickerComponent"},{"__symbolic":"reference","name":"FormattingDirective"},{"__symbolic":"reference","name":"SuccessModalComponent"},{"__symbolic":"reference","name":"LoadingMaskComponent"},{"__symbolic":"reference","name":"DndDirective"},{"__symbolic":"reference","name":"DropDownComponent"},{"__symbolic":"reference","name":"DropDownItemComponent"},{"__symbolic":"reference","name":"DropDownItemsComponent"},{"__symbolic":"reference","name":"DropDownToggleComponent"}],"providers":[{"__symbolic":"reference","name":"ConfigService"},{"__symbolic":"reference","name":"Api"},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","name":"FileService"},{"__symbolic":"reference","name":"FileModel"},{"__symbolic":"reference","name":"FileUtil"},{"__symbolic":"reference","name":"SanitizeHtmlPipe"},{"__symbolic":"reference","name":"SanitizeResourceHtmlPipe"},{"__symbolic":"reference","name":"SanitizeStylePipe"},{"__symbolic":"reference","name":"HighlightSearchPipe"},{"__symbolic":"reference","name":"UploadFilesService"},{"__symbolic":"reference","name":"RenderPrintService"},{"__symbolic":"reference","name":"NavigateService"},{"__symbolic":"reference","name":"PagePreloadService"},{"__symbolic":"reference","name":"ZoomService"},{"__symbolic":"reference","name":"ExceptionMessageService"},{"__symbolic":"reference","name":"PasswordService"},{"__symbolic":"reference","name":"ErrorInterceptorService"},{"__symbolic":"reference","name":"SearchService"},{"__symbolic":"reference","name":"WindowService"},{"__symbolic":"reference","name":"ViewportService"},{"__symbolic":"reference","name":"FormattingService"},{"__symbolic":"reference","name":"BackFormattingService"},{"__symbolic":"reference","name":"OnCloseService"},{"__symbolic":"reference","name":"LoadingMaskInterceptorService"},{"__symbolic":"reference","name":"LoadingMaskService"},{"__symbolic":"reference","name":"TabActivatorService"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"Api":{"__symbolic":"class","members":{},"statics":{"VIEWER_APP":"/viewer","EDITOR_APP":"/editor","COMPARISON_APP":"/comparison","CONVERSION_APP":"/conversion","DEFAULT_API_ENDPOINT":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"window"},"member":"location"},"member":"href"},"LOAD_FILE_TREE":"/loadFileTree","LOAD_CONFIG":"/loadConfig","LOAD_DOCUMENT_DESCRIPTION":"/loadDocumentDescription","LOAD_DOCUMENT_PAGE":"/loadDocumentPage","ROTATE_DOCUMENT_PAGE":"/rotateDocumentPages","UPLOAD_DOCUMENTS":"/uploadDocument","DOWNLOAD_DOCUMENTS":"/downloadDocument","LOAD_PRINT":"/loadPrint","LOAD_PRINT_PDF":"/printPdf","LOAD_THUMBNAILS":"/loadThumbnails","LOAD_FORMATS":"/loadFormats","SAVE_FILE":"/saveFile","COMPARE_FILES":"/compare","CONVERT_FILE":"/convert","httpOptionsJson":{"headers":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/common/http","name":"HttpHeaders","line":25,"character":17},"arguments":[{"Content-Type":"application/json","$quoted$":["Content-Type"]}]}},"httpOptionsJsonResponseTypeBlob":{"headers":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/common/http","name":"HttpHeaders","line":30,"character":17},"arguments":[{"Content-Type":"application/json","$quoted$":["Content-Type"]}]},"responseType":"blob"}}},"ConfigService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":37,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"getConfigEndpoint":[{"__symbolic":"method"}],"getViewerApiEndpoint":[{"__symbolic":"method"}],"getEditorApiEndpoint":[{"__symbolic":"method"}],"getComparisonApiEndpoint":[{"__symbolic":"method"}],"getConversionApiEndpoint":[{"__symbolic":"method"}]}},"CommonModals":{"__symbolic":"class","members":{},"statics":{"PasswordRequired":"gd-password-required","ErrorMessage":"gd-error-message","BrowseFiles":"gd-browse-files","CreateDocument":"gd-create-document","OperationSuccess":"gd-success-modal"}},"ModalService":{"__symbolic":"class","members":{"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"PageModel":{"__symbolic":"class","members":{}},"RotatedPage":{"__symbolic":"class","members":{}},"FileCredentials":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]}},"SaveFile":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"FileCredentials"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]}},"FileDescription":{"__symbolic":"class","members":{}},"FileModel":{"__symbolic":"class","members":{}},"HttpError":{"__symbolic":"class","members":{},"statics":{"BadRequest":400,"Unauthorized":401,"Forbidden":403,"NotFound":404,"TimeOut":408,"Conflict":409,"InternalServerError":500}},"FileUtil":{"__symbolic":"class","members":{},"statics":{"map":{"folder":{"format":"","icon":"folder","$quoted$":["format","icon"]},"pdf":{"format":"Portable Document Format","icon":"file-pdf","unit":"pt","$quoted$":["format","icon","unit"]},"doc":{"format":"Microsoft Word","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"docx":{"format":"Microsoft Word","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"docm":{"format":"Microsoft Word","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"dot":{"format":"Microsoft Word","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"dotx":{"format":"Microsoft Word","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"dotm":{"format":"Microsoft Word","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"xls":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"xlsx":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"xlsm":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"xlsb":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"xls2003":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"xltx":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"xltm":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"ppt":{"format":"Microsoft PowerPoint","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"pptx":{"format":"Microsoft PowerPoint","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"pps":{"format":"Microsoft PowerPoint","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"ppsx":{"format":"Microsoft PowerPoint","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"vsd":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vdx":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vss":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vsx":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vst":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vtx":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vsdx":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vdw":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vstx":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vssx":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"mpp":{"format":"Microsoft Project","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"mpt":{"format":"Microsoft Project","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"msg":{"format":"Microsoft Outlook","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"eml":{"format":"Microsoft Outlook","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"emlx":{"format":"Microsoft Outlook","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"one":{"format":"Microsoft OneNote","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"odt":{"format":"Open Document Text","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"ott":{"format":"Open Document Text Template","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"ods":{"format":"Open Document Spreadsheet","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"odp":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"otp":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"ots":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"potx":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"potm":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"pptm":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"ppsm":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"rtf":{"format":"Rich Text Format","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"txt":{"format":"Plain Text File","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"csv":{"format":"Comma-Separated Values","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"html":{"format":"HyperText Markup Language","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"mht":{"format":"HyperText Markup Language","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"mhtml":{"format":"HyperText Markup Language","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"xml":{"format":"Extensible Markup Language","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"xps":{"format":"XML Paper Specification","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"dxf":{"format":"AutoCAD Drawing File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"dwg":{"format":"AutoCAD Drawing File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"bmp":{"format":"Bitmap Picture","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"gif":{"format":"Graphics Interchange Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"jpg":{"format":"Joint Photographic Experts Group","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"jpe":{"format":"Joint Photographic Experts Group","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"jpeg":{"format":"Joint Photographic Experts Group","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"jfif":{"format":"Joint Photographic Experts Group","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"png":{"format":"Portable Network Graphics","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"tiff":{"format":"Tagged Image File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"tif":{"format":"Tagged Image File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"psd":{"format":"Tagged Image File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"svg":{"format":"Tagged Image File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"jp2":{"format":"Tagged Image File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"epub":{"format":"Electronic Publication","icon":"file-pdf","unit":"pt","$quoted$":["format","icon","unit"]},"ico":{"format":"Windows Icon","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"webp":{"format":"Compressed Image","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"mobi":{"format":"Mobipocket eBook","icon":"file-pdf","unit":"pt","$quoted$":["format","icon","unit"]},"tex":{"format":"LaTeX Source Document","icon":"file-pdf","unit":"pt","$quoted$":["format","icon","unit"]},"djvu":{"format":"Multi-Layer Raster Image","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"unknown":{"format":"This format is not supported","icon":"file","$quoted$":["format","icon"]},"$quoted$":["folder","pdf","doc","docx","docm","dot","dotx","dotm","xls","xlsx","xlsm","xlsb","xls2003","xltx","xltm","ppt","pptx","pps","ppsx","vsd","vdx","vss","vsx","vst","vtx","vsdx","vdw","vstx","vssx","mpp","mpt","msg","eml","emlx","one","odt","ott","ods","odp","otp","ots","potx","potm","pptm","ppsm","rtf","txt","csv","html","mht","mhtml","xml","xps","dxf","dwg","bmp","gif","jpg","jpe","jpeg","jfif","png","tiff","tif","psd","svg","jp2","epub","ico","webp","mobi","tex","djvu","unknown"]}}},"FileService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}]}},"UploadFilesService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changeFilesList":[{"__symbolic":"method"}]}},"SanitizeHtmlPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"safeHtml"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":5,"character":33}]}],"transform":[{"__symbolic":"method"}]}},"SanitizeResourceHtmlPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":13,"character":1},"arguments":[{"name":"safeResourceHtml"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":5,"character":33}]}],"transform":[{"__symbolic":"method"}]}},"SanitizeStylePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":23,"character":1},"arguments":[{"name":"safeStyle"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":5,"character":33}]}],"transform":[{"__symbolic":"method"}]}},"HighlightSearchPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":33,"character":1},"arguments":[{"name":"highlight"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"NavigateService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PagePreloadService"}]}],"nextPage":[{"__symbolic":"method"}],"prevPage":[{"__symbolic":"method"}],"toLastPage":[{"__symbolic":"method"}],"toFirstPage":[{"__symbolic":"method"}],"navigateTo":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"PagePreloadService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changeLastPageInView":[{"__symbolic":"method"}]}},"ZoomService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changeZoom":[{"__symbolic":"method"}],"createZoomOption":[{"__symbolic":"method"}],"zoomOptions":[{"__symbolic":"method"}]}},"RenderPrintService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changePages":[{"__symbolic":"method"}],"changeBlob":[{"__symbolic":"method"}]}},"ErrorInterceptorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","name":"ExceptionMessageService"}]}],"intercept":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ExceptionMessageService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changeMessage":[{"__symbolic":"method"}]}},"PasswordService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"setPassword":[{"__symbolic":"method"}]}},"WindowService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"isMobile":[{"__symbolic":"method"}],"isTablet":[{"__symbolic":"method"}],"isDesktop":[{"__symbolic":"method"}],"isEdge":[{"__symbolic":"method"}],"isFirefox":[{"__symbolic":"method"}]}},"ViewportService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"checkInViewport":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"BrowseFilesModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"gd-browse-files-modal","template":"\n
\n
\n \n Drop file here to upload\n
\n
\n
\n \n
\n
\n \n \n \n Upload file\n \n \n \n \n \n
{{item.name}}
\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
FILE
\n
SIZE
\n
\n
\n
\n
\n
\n
\n \n
\n
..
\n
\n
\n
\n \n
\n
{{file?.name}}
\n
{{getFormatName(file)}}
\n
\n
\n
\n {{getSize(file?.size)}}\n
\n
\n
\n
\n
\n \n  Loading... Please wait.\n
\n
\n
\n","styles":[".gd-modal-table{width:100%;text-align:left}#gd-browse-section{width:1036px;height:561px;overflow-y:auto}.list-files-header{height:60px;color:#6e6e6e;font-size:13px;font-weight:700;background-color:#f4f4f4;margin-top:24px}.list-files-header.upload-url{margin-top:20px}.header-name{padding-left:24px;width:90%;line-height:60px}.header-size{padding-right:27px;line-height:60px}.file-size,.header-size{width:10%;color:#777;text-align:right}.file-description{display:flex;width:90%;padding:18px 0 18px 24px;font-size:14px;flex:1;cursor:pointer;overflow:hidden}.file-size{font-size:12px;padding:0 27px 0 0;width:10%;line-height:79px}.list-files-header,.list-files-lines{display:flex;width:100%;justify-content:space-between}.gd-modal-spinner{background-color:#fff;width:100%;height:20px;text-align:center;font-size:16px}.gd-cancel-button{padding:7px;background:0 0;width:28px;overflow:hidden}.gd-cancel-button i{font-size:21px}.gd-file-name{white-space:nowrap;overflow:hidden;width:100%;text-overflow:ellipsis}.go-up{display:flex;font-size:26px;cursor:pointer;color:#4b566c;height:79px}.go-up-dots{margin-left:20px;margin-top:22px;font-size:16px}.go-up-icon{display:block;padding:18px 0 18px 24px}.upload-panel{display:flex;position:relative;width:100%}.upload-panel .context{display:flex;flex-direction:column;width:100%;margin-left:24px;margin-top:24px;margin-right:24px}.upload-panel .context .context-actions{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-actions :last-child{margin-right:0}.upload-panel .context .context-actions ::ng-deep .button{height:37px;width:96px;padding:0;justify-content:center}.upload-panel .context .context-actions ::ng-deep .button ::ng-deep .text{font-size:10px}.upload-panel .context .context-panel{display:flex;flex-direction:row;width:100%;margin-top:20px}.upload-panel .context .context-panel .upload-url{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-panel .upload-url .url-input{width:100%;height:27px;border:1px solid #25c2d4;font-size:14px;padding-left:6px}.upload-panel .context .context-panel .upload-url .url-check{width:31px;height:31px;color:#fff;font-size:15px;background-color:#25c2d4}.upload-panel .context .context-panel .upload-url .url-check .ng-fa-icon{display:block;padding:8px}.upload-panel gd-drop-down{margin-right:10px}.file-description .ng-fa-icon.fa-file-pdf{color:#e04e4e}.file-description .ng-fa-icon.fa-file-word{color:#539cf0}.file-description .ng-fa-icon.fa-file-powerpoint{color:#e29e1e}.file-description .ng-fa-icon.fa-file-excel{color:#7cbc46}.file-description .ng-fa-icon.fa-file-image{color:#c375ed}.file-description .ng-fa-icon.fa-file,.file-description .ng-fa-icon.fa-file-alt,.file-description .ng-fa-icon.fa-file-text .fa-folder{color:#4b566c}.file-description .ng-fa-icon{font-size:32px}.file-name{font-size:16px;color:#6e6e6e;overflow:hidden;text-overflow:ellipsis}.file-name-format{padding-left:11px;overflow:hidden}.file-format{font-size:10px;padding-top:3px;color:#acacac}.go-up,.list-files-lines{border-bottom:1px solid #e7e7e7}.list-files-lines:hover{background-color:#e5e5e5}.gd-dnd-wrap{background-color:#fff;cursor:default;position:absolute;width:100%;height:calc(100% - 60px);background:rgba(255,255,255,.7);z-index:1;display:flex;justify-content:center;align-items:center}.dnd-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;top:259px;position:absolute}.dnd-wrapper .text{color:#6e6e6e;font-size:14px}.dnd-wrapper .icon{display:flex;width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}@media (max-width:1037px){.file-size,.header-size{width:18%}.gd-dnd-wrap{width:95%}#gd-browse-section{width:100%;height:calc(100% - 146px)}}"]}]}],"members":{"files":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"uploadConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"selectedFileGuid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":22,"character":3}}]}],"selectedDirectory":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":23,"character":3}}]}],"urlForUpload":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":24,"character":3}}]}],"closing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":25,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"UploadFilesService"}]}],"ngOnInit":[{"__symbolic":"method"}],"getSize":[{"__symbolic":"method"}],"getFormatName":[{"__symbolic":"method"}],"getFormatIcon":[{"__symbolic":"method"}],"choose":[{"__symbolic":"method"}],"goUp":[{"__symbolic":"method"}],"selectUpload":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"showSpinner":[{"__symbolic":"method"}],"uploadUrl":[{"__symbolic":"method"}],"handleFileInput":[{"__symbolic":"method"}],"cleanUpload":[{"__symbolic":"method"}]}},"ButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-button","template":"
\n \n \n
\n
\n","styles":[".icon-button{padding:0!important;margin:0 10px}.button{padding:0 10px;font-size:14px;color:#959da5;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:37px;height:37px;text-align:center;position:relative;white-space:nowrap}.button.inactive{cursor:not-allowed;opacity:.4}.button.active *{color:#ccd0d4}.button.primary{background-color:#3e4e5a;color:#fff}.button.primary.active{color:#fff;background-color:#688296}.button.brand{background-color:#25c2d4;color:#fff}.button.brand.active{color:#fff;background-color:#688296}.button .text{font-size:13px;padding-left:10px}@media (max-width:1037px){.button{font-size:22px}.arrow-button{margin:5px}}"]}]}],"members":{"iconOnly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"intent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"iconClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"tooltip":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"className":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"toggle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"iconButtonClass":[{"__symbolic":"method"}],"onHovering":[{"__symbolic":"method"}],"onUnhovering":[{"__symbolic":"method"}]}},"DisabledCursorDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[gdDisabledCursor]"}]}],"members":{"dis":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"cursor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":12,"character":3},"arguments":["class.inactive"]}]}],"updateCursor":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"DndDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[gdDnd]"}]}],"members":{"closing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":8,"character":3}}]}],"opening":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":9,"character":3}}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":12,"character":3},"arguments":["class.active"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"UploadFilesService"}]}],"onDragOver":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":17,"character":3},"arguments":["dragover",["$event"]]}]}],"onDragLeave":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":25,"character":3},"arguments":["dragleave",["$event"]]}]}],"onDrop":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":33,"character":3},"arguments":["drop",["$event"]]}]}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":46,"character":3},"arguments":["click",["$event"]]}]}],"closeArea":[{"__symbolic":"method"}]}},"DocumentComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"gd-document","template":"
Please wait...
\n
\n
\n
\n \n
\n
\n \n
\n","styles":[":host{flex:1;transition:.4s;background-color:#e7e7e7;height:100%;overflow:scroll}.page{display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.page.excel{overflow:auto}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:flex-start}.panzoom.mobile{overflow:scroll}@media (max-width:1037px){.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"]}]}],"members":{"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"preloadPageCount":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":46,"character":46,"context":{"typeName":"HTMLElement"},"module":"./lib/document/document.component"}]},{"__symbolic":"reference","name":"ZoomService"},{"__symbolic":"reference","name":"WindowService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ifExcel":[{"__symbolic":"method"}],"getDimensionWithUnit":[{"__symbolic":"method"}],"ngAfterViewChecked":[{"__symbolic":"method"}],"absolutePosition":[{"__symbolic":"method"}],"restrictRawPos":[{"__symbolic":"method"}],"updateLastPos":[{"__symbolic":"method"}],"translate":[{"__symbolic":"method"}],"startZoom":[{"__symbolic":"method"}],"rawCenter":[{"__symbolic":"method"}],"updateLastScale":[{"__symbolic":"method"}],"zoomAround":[{"__symbolic":"method"}],"onPinch":[{"__symbolic":"method"}],"onPinchEnd":[{"__symbolic":"method"}],"onPan":[{"__symbolic":"method"}],"onPanEnd":[{"__symbolic":"method"}],"onDoubleTap":[{"__symbolic":"method"}]}},"ErrorModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-error-modal","template":"\n
\n \n
\n
Something went wrong
\n
{{message ? message : 'Server is not available'}}
\n
\n
\n
\n","styles":[".gd-modal-error{display:inline-flex;flex-direction:column;flex:1}.gd-modal-error .gd-modal-error-message{font-size:12px;margin:0 24px 24px 0}.gd-modal-error .gd-modal-error-title{font-size:16px;font-weight:700;margin:14px 0 10px}#gd-error-section{max-width:468px;max-height:204px;display:flex}#gd-error-section fa-icon{flex:1;color:#e04e4e;font-size:40px;margin:13px 23px 90px;text-align:center}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ExceptionMessageService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"InitStateComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-init-state","template":"
\n
\n \n \n \n \n
\n
\n \n {{text}}\n
\n
\n","styles":[".wrapper{color:#959da5;background-color:#e7e7e7;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%}.icon{font-size:65px;margin-bottom:43px;display:flex;color:#959da5}.start{font-size:15px;text-align:center;color:#959da5}.gd-drag-n-drop-wrap.active{background-color:#fff;position:fixed;top:0;background:rgba(255,255,255,.8)}.gd-drag-n-drop-wrap.active .init-state-wrapper{position:absolute;opacity:.2;top:unset}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper{top:0;z-index:999}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper .icon{width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}.gd-drag-n-drop-wrap.active .text{color:#6e6e6e;font-size:14px}.init-state-dnd-wrapper,.init-state-wrapper{display:flex;flex-direction:column;width:250px;height:250px;align-items:center;justify-content:center}.init-state-wrapper{top:-60px;position:relative}"]}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"fileDropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"dropped":[{"__symbolic":"method"}]}},"LogoComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-logo","template":"
\n \n \n
\n\n","styles":[".logo{background-color:#25c2d4;height:60px;display:flex;align-items:center;justify-content:center}.text{color:#fff;font-size:15px;text-transform:uppercase;margin:0 14px}.icon{display:none;font-size:32px;color:rgba(255,255,255,.5);margin:14px}@media (max-width:1037px){.logo{width:60px;height:60px}.logo .text{display:none}.logo .icon{display:block}}"]}]}],"members":{"logo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-modal","template":"
\n
\n
\n
\n\n
\n
×
\n

{{title}}

\n
\n\n
\n \n
\n\n
\n\n
\n
\n
\n\n","styles":["@import url(https://fonts.googleapis.com/css?family=Montserrat&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.gd-modal{overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0;background-color:rgba(0,0,0,.5)}.gd-modal-dialog{box-shadow:#0005 0 0 10px;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1051}.gd-modal-content{background-color:#fff;height:100%;display:flex;flex-direction:column}.gd-modal-header{height:60px;padding:0 12px 0 24px;background-color:#3e4e5a}.gd-modal-close{position:absolute;right:12px;top:12px;cursor:pointer;color:#fff;width:37px;height:37px;text-align:center}.gd-modal-close span{font-size:18px;font-weight:900;height:19px;width:10px;line-height:36px}.gd-modal-title{font-size:16px;font-weight:400;padding-top:17px;padding-bottom:22px;margin:0;color:#fff}.gd-modal-body{background-color:#fff;overflow:hidden;overflow-y:auto;height:calc(100% - 75px)}.gd-modal-footer{height:auto}.gd-modal-footer>.btn{float:right;margin:20px 15px;padding:10px 20px;cursor:pointer;font-size:12px}@media (max-width:1037px){.gd-modal-dialog{width:100%;height:100%}.gd-modal-body{height:100%}}"]}]}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":15,"character":54}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"onClose":[{"__symbolic":"method"}]}},"PageComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-page","template":"
\n
\n \"\"\n\n
\n \n  Loading... Please wait.\n
\n
\n","styles":[".gd-page-spinner{margin-top:150px;text-align:center}.gd-wrapper{width:inherit;height:inherit}.gd-wrapper div{width:100%}/deep/ .gd-highlight{background-color:#ff0}/deep/ .gd-highlight-select{background-color:#ff9b00}.gd-page-image{height:100%!important;width:100%!important}"]}]}],"members":{"angle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"number":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"isHtml":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"editable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"PasswordRequiredComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"gd-password-required","template":"\n
\n
\n \n \n {{message}}\n \n Open\n \n
\n
\n
\n","styles":["#gd-password-section{width:468px;height:164px}.gd-password-wrap{display:flex;flex-direction:column;margin:24px}.gd-password-wrap label{font-size:14px;color:#acacac;padding-bottom:12px}.gd-password-wrap input{height:30px;border:1px solid #25c2d4}.gd-password-wrap input.error{border-color:#e04e4e}.gd-password-wrap gd-button{align-self:flex-end}.gd-password-wrap ::ng-deep .button{height:37px;width:72px;padding:0;justify-content:center}.gd-password-wrap ::ng-deep .button ::ng-deep .text{font-size:10px!important}.gd-password-error{color:#e04e4e;padding:10px 0 12px;height:12px;line-height:12px;font-size:12px}@media (max-width:1037px){#gd-password-section{min-width:375px}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ExceptionMessageService"},{"__symbolic":"reference","name":"PasswordService"}]}],"ngOnInit":[{"__symbolic":"method"}],"setPassword":[{"__symbolic":"method"}]}},"RenderPrintDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[gdRenderPrint]"}]}],"members":{"htmlMode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"RenderPrintService"}]}],"renderPrint":[{"__symbolic":"method"}],"openWindow":[{"__symbolic":"method"}],"renderPrintBlob":[{"__symbolic":"method"}]}},"RotationDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[gdRotation]"}]}],"members":{"angle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}],"isHtmlMode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"withMargin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"animation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":13,"character":3},"arguments":["style.animation"]}]}],"transition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":14,"character":3},"arguments":["style.transition-property"]}]}],"transform":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":15,"character":3},"arguments":["style.transform"]}]}],"margin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":17,"character":3},"arguments":["style.margin"]}]}],"__ctor__":[{"__symbolic":"constructor"}],"updateCursor":[{"__symbolic":"method"}],"isLandscape":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ScrollableDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[gdScrollable]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":26,"character":46,"context":{"typeName":"HTMLElement"},"module":"./lib/scrollable.directive"}]},{"__symbolic":"reference","name":"NavigateService"},{"__symbolic":"reference","name":"PagePreloadService"},{"__symbolic":"reference","name":"ZoomService"},{"__symbolic":"reference","name":"WindowService"},{"__symbolic":"reference","name":"ViewportService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"scrolling":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":49,"character":3},"arguments":["scroll"]}]}],"resizing":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":53,"character":3},"arguments":["window:resize"]}]}],"scrollToPage":[{"__symbolic":"method"}],"getChildren":[{"__symbolic":"method"}],"getPage":[{"__symbolic":"method"}],"calculateOffset":[{"__symbolic":"method"}],"countPagesOnWidth":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"getWidth":[{"__symbolic":"method"}],"getZoom":[{"__symbolic":"method"}]}},"SearchService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"setText":[{"__symbolic":"method"}],"setCurrent":[{"__symbolic":"method"}],"setTotal":[{"__symbolic":"method"}]}},"SearchComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-search","template":"
\n \n
{{current}} of {{total}}
\n \n \n \n \n \n \n
\n","styles":[".gd-nav-search-btn{margin:3px 0 4px}.gd-nav-search-cancel{color:#fff;font-size:14px;width:37px}.gd-search-count{color:#959da5;font-size:12px;position:absolute;right:148px;top:14px}.gd-nav-search-container{background-color:#3e4e5a;width:410px;position:fixed;left:50%;top:60px;z-index:2;transform:translate(-50%,0);display:flex}.gd-search-input{float:left;height:30px;width:267px;font-size:14px;color:#6e6e6e;border:1px solid #25c2d4;margin:7px 0 7px 7px;box-sizing:border-box;padding:6px 0 5px 9px}input[type=text]::-ms-clear{display:none}@media (max-width:1037px){.gd-search-input{width:231px;height:30px;margin:7px 0 7px 5px}.gd-search-count{position:absolute;left:193px;top:15px}.gd-nav-search-container{width:100%}}"]}]}],"members":{"hidePanel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"textElement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":15,"character":3},"arguments":["text",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SearchService"}]}],"ngOnInit":[{"__symbolic":"method"}],"setText":[{"__symbolic":"method"}],"hide":[{"__symbolic":"method"}],"prev":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"SearchableDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[gdSearchable]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":17,"character":46,"context":{"typeName":"HTMLElement"},"module":"./lib/searchable.directive"}]},{"__symbolic":"reference","name":"SearchService"},{"__symbolic":"reference","name":"HighlightSearchPipe"},{"__symbolic":"reference","name":"ZoomService"}]}],"highlightSearch":[{"__symbolic":"method"}],"moveToCurrent":[{"__symbolic":"method"}],"highlightEl":[{"__symbolic":"method"}],"cleanHighlight":[{"__symbolic":"method"}],"getZoom":[{"__symbolic":"method"}]}},"Option":{"__symbolic":"interface"},"SelectComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"gd-select","template":"
\n \n {{showSelected?.name}}\n \n \n
\n
\n
{{option.name}}
\n
\n
\n
\n
\n","styles":[".select{min-width:50px;color:#959da5}.selected-value{font-size:14px;cursor:pointer;white-space:nowrap}.selected-value.inactive{cursor:not-allowed;color:#ccc}.nav-caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent;cursor:pointer}.nav-caret.inactive{cursor:not-allowed;color:#ccc}.dropdown-menu{position:absolute;top:49px;z-index:1000;float:left;min-width:96px;list-style:none;font-size:13px;text-align:left;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);background-clip:padding-box}.dropdown-menu .option{display:block;padding:7px 0 7px 7px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;cursor:pointer;font-size:10px}.dropdown-menu .option:hover{background-color:#25c2d4;color:#fff!important}.dropdown-menu-separator{height:1px;overflow:hidden;background-color:#f4f4f4;padding:0!important}"]}]}],"members":{"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"showSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OnCloseService"}]}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"onClickOutside":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}]}},"TooltipComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-tooltip","template":"\n","styles":[".tooltip{position:absolute;margin-top:37px;width:100px;background-color:#000;color:#fff;text-align:center;border-radius:0;padding:5px 0;z-index:1;margin-left:-66px;font-size:10px;height:11px;line-height:11px}.tooltip.hidden{visibility:hidden}.tooltip.shown{visibility:visible}.shown:after{content:\" \";position:absolute;bottom:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-bottom-color:#000}"]}]}],"members":{"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"show":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}},"TopToolbarComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-top-toolbar","template":"
\n
\n \n
\n
\n","styles":[".top-toolbar{width:100%;height:60px;z-index:999;display:flex;align-items:center}.tools{width:100%;height:100%;display:flex;align-items:center}@media (max-width:1037px){.top-toolbar{height:60px}.tools{height:100%;overflow-x:auto;overflow-scrolling:touch;display:flex;align-items:center;transition:.3s ease-in-out;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.tools::-webkit-scrollbar{width:0;height:0;background-color:#3e4e5a}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"SidePanelComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-side-panel","template":"
\n
\n \n
{{title}}
\n
\n \n
\n
\n
\n \n
\n
\n","styles":[".gd-side-panel-wrapper{margin-right:0;width:334px;z-index:999;background-color:#fff;transition:margin-right .2s;display:flex;flex-flow:column;height:100vh}.gd-side-panel-wrapper .gd-side-panel-header{height:60px;background-color:#222e35;display:flex;flex-direction:row;flex-wrap:nowrap}.gd-side-panel-wrapper .gd-side-panel-header .icon{font-size:24px;color:#959da5;margin:12px 9px 18px 14px}.gd-side-panel-wrapper .gd-side-panel-header .title{font-size:14px;font-weight:700;color:rgba(237,240,242,.57);margin-top:20px;width:100%}.gd-side-panel-wrapper .gd-side-panel-header .close{font-size:24px!important;margin-top:12px}.gd-side-panel-wrapper .gd-side-panel-body{display:flex;flex-flow:column;overflow:visible;overflow-y:auto;overflow-x:hidden;height:100%}@media (max-width:1037px){.gd-side-panel-wrapper{width:100%;position:absolute;left:0;right:0;top:0;bottom:0}}"]}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"hideSidePanel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"openSidePanel":[{"__symbolic":"method"}]}},"UploadFileZoneComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-upload-file-zone","template":"
\n
\n \n
\n

Drag & Drop your files here

\n

OR

\n
\n \n
\n
\n","styles":[".gd-drag-n-drop-wrap{border:2px dashed #ccc;background-color:#f8f8f8;text-align:center;cursor:default;position:absolute;width:-webkit-fill-available;left:1px;display:flex;align-content:center;flex-direction:column;justify-content:center;opacity:.9;z-index:1}.gd-drag-n-drop-wrap h2{color:#959da5;margin:5px 0;font-size:15px;font-weight:300}.gd-drag-n-drop-wrap h4{color:#cacaca;font-weight:300;font-size:12px;margin:10px 0 15px}.gd-drag-n-drop-icon .fa-cloud-download-alt{color:#d1d1d1;font-size:110px}.gd-drag-n-drop-buttons i{margin-right:5px}.gd-drag-n-drop-buttons .btn{width:134px;height:35px;margin:0 10px;font-size:12px;font-weight:400}.gd-drag-n-drop-wrap.hover{background:#ddd;border-color:#aaa}"]}]}],"members":{"closeUpload":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"UploadFilesService"}]}],"ngOnInit":[{"__symbolic":"method"}],"handleFileInput":[{"__symbolic":"method"}],"onCloseUpload":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"ZoomDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[gdZoom]"}]}],"members":{"zoomActive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"zoomInt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":13,"character":3},"arguments":["style.zoom"]}]}],"transform":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":14,"character":3},"arguments":["style.transform"]}]}],"transformOrigin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":15,"character":3},"arguments":["style.transform-origin"]}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":16,"character":3},"arguments":["style.width"]}]}],"minWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":17,"character":3},"arguments":["style.min-width"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ZoomService"},{"__symbolic":"reference","name":"WindowService"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":20,"character":92}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"setStyles":[{"__symbolic":"method"}],"getScrollWidth":[{"__symbolic":"method"}],"resizePages":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"SelectionService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":2,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"restoreSelection":[{"__symbolic":"method"}],"captureSelection":[{"__symbolic":"method"}],"putSelection":[{"__symbolic":"method"}],"refreshSelection":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"OnCloseService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"close":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"LoadingMaskService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"onRequestStart":[{"__symbolic":"method"}],"onRequestFinish":[{"__symbolic":"method"}],"notify":[{"__symbolic":"method"}]}},"LoadingMaskInterceptorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoadingMaskService"}]}],"intercept":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"FormattingDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[gdFormatting]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"FormattingService"},{"__symbolic":"reference","name":"BackFormattingService"},{"__symbolic":"reference","name":"SelectionService"}]}],"mouseup":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":29,"character":3},"arguments":["mouseup"]}]}],"checkJustify":[{"__symbolic":"method"}],"checkList":[{"__symbolic":"method"}],"reportFontSize":[{"__symbolic":"method"}],"getComputedStyleProperty":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"toggleBold":[{"__symbolic":"method"}],"toggleUnderline":[{"__symbolic":"method"}],"toggleItalic":[{"__symbolic":"method"}],"setBgColor":[{"__symbolic":"method"}],"setColor":[{"__symbolic":"method"}],"setFontSize":[{"__symbolic":"method"}],"toggleUndo":[{"__symbolic":"method"}],"toggleRedo":[{"__symbolic":"method"}],"setFont":[{"__symbolic":"method"}],"toggleStrikeout":[{"__symbolic":"method"}],"toggleAlign":[{"__symbolic":"method"}],"toggleAlignIE":[{"__symbolic":"method"}],"toggleList":[{"__symbolic":"method"}]}},"Formatting":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]},"statics":{"DEFAULT":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Formatting"},"arguments":[10,"#000000","#FFFFFF",false,false,false,"Arial",false,"",""]}}},"FormattingService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changeFormatFontSize":[{"__symbolic":"method"}],"changeFormatBold":[{"__symbolic":"method"}],"changeFormatUnderline":[{"__symbolic":"method"}],"Undo":[{"__symbolic":"method"}],"Redo":[{"__symbolic":"method"}],"changeFormatItalic":[{"__symbolic":"method"}],"changeFormatColor":[{"__symbolic":"method"}],"changeFormatBgColor":[{"__symbolic":"method"}],"changeFormatFont":[{"__symbolic":"method"}],"changeFormatStrikeout":[{"__symbolic":"method"}],"changeFormatAlign":[{"__symbolic":"method"}],"changeFormatList":[{"__symbolic":"method"}]},"statics":{"createFontSizeOption":{"__symbolic":"function","parameters":["val"],"value":{"value":{"__symbolic":"reference","name":"val"},"name":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"reference","name":"val"},"right":"px"},"separator":false}},"getFontSizeOptions":{"__symbolic":"function","parameters":[],"value":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[8]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[10]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[12]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[14]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[16]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[18]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[20]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[22]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[24]}]},"createFontOption":{"__symbolic":"function","parameters":["val"],"value":{"value":{"__symbolic":"reference","name":"val"},"name":{"__symbolic":"reference","name":"val"},"separator":false}}}},"BackFormattingService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"FormattingService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]},"statics":{"ngInjectableDef":{}}},"EditorDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[gdEditor]"}]}],"members":{"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SelectionService"},{"__symbolic":"reference","name":"EditHtmlService"}]}],"onInput":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":15,"character":3},"arguments":["keyup",["$event"]]}]}],"onMouseleave":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":26,"character":3},"arguments":["mouseleave",["$event"]]}]}],"onBlur":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":35,"character":3},"arguments":["blur",["$event"]]}]}]}},"EditHtmlService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]},"statics":{"ngInjectableDef":{}}},"ColorPickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"gd-color-picker","template":"
\n
\n
\n
\n
\n","styles":[".bcPicker-picker{border:1px;border-radius:100%}.bcPicker-palette{width:232px;padding:5px;border:1px solid #efefef;background-color:#fdfdfd;z-index:999}.bcPicker-palette>.bcPicker-color{width:14px;height:14px;margin:2px;display:inline-block;border:1px solid #efefef;background-color:#9da97b;cursor:pointer}"]}]}],"members":{"selectedColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}]}},"LoadingMaskComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-loading-mask","template":"
\n
\n  Loading... Please wait.\n
\n
\n","styles":[".loading-wrapper{background:rgba(0,0,0,.5);width:100%;height:100%;font-size:14px;color:#fff;position:fixed;top:0;left:0;z-index:99999}.loading-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"]}]}],"members":{"loadingMask":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoadingMaskService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"SuccessModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-success-modal","template":"\n
\n
\n \n \n
\n
\n
\n
\n
\n","styles":[".check_mark{margin:47px auto}.sa-icon{width:80px;height:80px;border:4px solid gray;border-radius:50%;padding:0;position:relative;box-sizing:content-box}#gd-modal-success{display:flex;overflow:hidden;width:469px;height:183px}.sa-icon.sa-success{border-color:#4caf50;transform:scale(1.18)}.sa-icon.sa-success::after,.sa-icon.sa-success::before{content:'';position:absolute;width:60px;height:120px;background:#fff}.sa-icon.sa-success::before{border-radius:120px 0 0 120px;top:-7px;left:-33px;transform:rotate(-45deg);transform-origin:60px 60px}.sa-icon.sa-success::after{border-radius:0 120px 120px 0;top:-11px;left:30px;transform:rotate(-45deg);transform-origin:0 60px}.sa-icon.sa-success .sa-placeholder{width:80px;height:80px;border:4px solid rgba(76,175,80,.5);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.sa-icon.sa-success .sa-fix{width:5px;height:90px;background-color:#fff;position:absolute;left:28px;top:8px;z-index:1;transform:rotate(-45deg)}.sa-icon.sa-success.animate::after{-webkit-animation:4.25s ease-in rotatePlaceholder;animation:4.25s ease-in rotatePlaceholder}.animateSuccessTip{-webkit-animation:.75s animateSuccessTip;animation:.75s animateSuccessTip}.animateSuccessLong{-webkit-animation:.75s animateSuccessLong;animation:.75s animateSuccessLong}@-webkit-keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}.sa-icon.sa-success .sa-line{height:5px;background-color:#4caf50;display:block;border-radius:2px;position:absolute;z-index:2}.sa-icon.sa-success .sa-line.sa-tip{width:25px;left:14px;top:46px;transform:rotate(45deg)}.sa-icon.sa-success .sa-line.sa-long{width:47px;right:8px;top:38px;transform:rotate(-45deg)}@-webkit-keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@media (max-width:1037px){#gd-modal-success{left:50%;top:50%;position:relative;transform:translate(-50%,-50%)}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"TabComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-tab","template":"
\n
{{tabTitle}}
\n \n
\n
\n \n
\n","styles":[".gd-editor-buttons{height:60px;position:absolute;background-color:#fff;width:100%;left:0;line-height:60px;display:none;z-index:9}.gd-editor-buttons ::ng-deep .toolbar-panel{height:60px}.gd-editor-buttons.active{display:flex}.gd-tab{text-align:center;font-size:11px;color:#e5e5e5;height:30px;line-height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center}.gd-tab .icon{display:none;font-size:14px;margin:auto 23px}.gd-tab .title{margin:auto 23px}.gd-tab.active{background-color:#fff;color:#3e4e5a;font-weight:700}@media (max-width:1037px){.gd-tab{height:60px;line-height:60px}.gd-tab .title{display:none}.gd-tab .icon{display:block}}"]}]}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"tabTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"content":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TabActivatorService"}]}],"activation":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"selectTab":[{"__symbolic":"method"}]}},"TabbedToolbarsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-tabbed-toolbars","template":"
\n \n \n
\n","styles":[".top-panel{background:#3e4e5a;display:flex;width:100%;height:90px}.top-panel ::ng-deep .logo{height:30px;font-size:16px}@media (max-width:1037px){.top-panel{height:60px}.top-panel ::ng-deep .logo{height:60px}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"TabActivatorService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changeActiveTab":[{"__symbolic":"method"}]}},"DropDownToggleComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":41,"character":1},"arguments":[{"selector":"gd-drop-down-toggle","template":"","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":45,"character":18},"member":"None"},"styles":[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],"members":{"click":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":48,"character":3},"arguments":["click",["$event"]]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":50,"character":15},"arguments":[{"__symbolic":"reference","name":"DropDownComponent"}]}]],"parameters":[null]}]}},"DropDownItemsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":56,"character":1},"arguments":[{"selector":"gd-drop-down-items","template":"
","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":60,"character":18},"member":"None"},"styles":[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":76,"character":15},"arguments":[{"__symbolic":"reference","name":"DropDownComponent"}]}]],"parameters":[null]}],"onClickOutside":[{"__symbolic":"method"}]}},"DropDownItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":86,"character":1},"arguments":[{"selector":"gd-drop-down-item","template":"
","styles":[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],"members":{"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":92,"character":3},"arguments":["class"]}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":95,"character":3}}]}],"click":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":98,"character":3},"arguments":["click"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":101,"character":15},"arguments":[{"__symbolic":"reference","name":"DropDownComponent"}]}]],"parameters":[null]}],"selectEntry":[{"__symbolic":"method"}]}},"DropDownComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":112,"character":1},"arguments":[{"selector":"gd-drop-down","template":"
","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":116,"character":18},"member":"None"},"styles":[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],"members":{"placement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":119,"character":3}}]}],"open":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":126,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":127,"character":3},"arguments":["class.show"]}]}],"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":130,"character":3},"arguments":["class"]}]}],"close":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"getPlacement":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-tabs","template":"
\n \n
\n","styles":[".gd-tabs{display:flex}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}}},"origins":{"CommonComponentsModule":"./lib/common-components.module","Api":"./lib/config.service","ConfigService":"./lib/config.service","CommonModals":"./lib/modal.service","ModalService":"./lib/modal.service","PageModel":"./lib/file.service","RotatedPage":"./lib/file.service","FileCredentials":"./lib/file.service","SaveFile":"./lib/file.service","FileDescription":"./lib/file.service","FileModel":"./lib/file.service","HttpError":"./lib/file.service","FileUtil":"./lib/file.service","FileService":"./lib/file.service","UploadFilesService":"./lib/upload-files.service","SanitizeHtmlPipe":"./lib/pipes","SanitizeResourceHtmlPipe":"./lib/pipes","SanitizeStylePipe":"./lib/pipes","HighlightSearchPipe":"./lib/pipes","NavigateService":"./lib/navigate.service","PagePreloadService":"./lib/page-preload.service","ZoomService":"./lib/zoom.service","RenderPrintService":"./lib/render-print.service","ErrorInterceptorService":"./lib/error-interceptor.service","ExceptionMessageService":"./lib/exception-message.service","PasswordService":"./lib/password.service","WindowService":"./lib/window.service","ViewportService":"./lib/viewport.service","BrowseFilesModalComponent":"./lib/browse-files-modal/browse-files-modal.component","ButtonComponent":"./lib/button/button.component","DisabledCursorDirective":"./lib/disabled-cursor.directive","DndDirective":"./lib/dnd.directive","DocumentComponent":"./lib/document/document.component","ErrorModalComponent":"./lib/error-modal/error-modal.component","InitStateComponent":"./lib/init-state/init-state.component","LogoComponent":"./lib/logo/logo.component","ModalComponent":"./lib/modal/modal.component","PageComponent":"./lib/page/page.component","PasswordRequiredComponent":"./lib/password-required/password-required.component","RenderPrintDirective":"./lib/render-print.directive","RotationDirective":"./lib/rotation.directive","ScrollableDirective":"./lib/scrollable.directive","SearchService":"./lib/search.service","SearchComponent":"./lib/search/search.component","SearchableDirective":"./lib/searchable.directive","Option":"./lib/select/select.component","SelectComponent":"./lib/select/select.component","TooltipComponent":"./lib/tooltip/tooltip.component","TopToolbarComponent":"./lib/top-toolbar/top-toolbar.component","SidePanelComponent":"./lib/side-panel/side-panel.component","UploadFileZoneComponent":"./lib/upload-file-zone/upload-file-zone.component","ZoomDirective":"./lib/zoom.directive","SelectionService":"./lib/selection.service","OnCloseService":"./lib/on-close.service","LoadingMaskService":"./lib/loading-mask.service","LoadingMaskInterceptorService":"./lib/loading-mask-interceptor.service","FormattingDirective":"./lib/formatting.directive","Formatting":"./lib/formatting.service","FormattingService":"./lib/formatting.service","BackFormattingService":"./lib/back-formatting.service","EditorDirective":"./lib/editor.directive","EditHtmlService":"./lib/edit-html.service","ColorPickerComponent":"./lib/color-picker/color-picker.component","LoadingMaskComponent":"./lib/loading-mask/loading-mask.component","SuccessModalComponent":"./lib/success-modal/success-modal.component","TabComponent":"./lib/tab/tab.component","TabbedToolbarsComponent":"./lib/tabbed-toolbars/tabbed-toolbars.component","TabActivatorService":"./lib/tab-activator.service","DropDownToggleComponent":"./lib/drop-down/drop-down.component","DropDownItemsComponent":"./lib/drop-down/drop-down.component","DropDownItemComponent":"./lib/drop-down/drop-down.component","DropDownComponent":"./lib/drop-down/drop-down.component","ɵa":"./lib/tabs/tabs.component"},"importAs":"@groupdocs.examples.angular/common-components"} \ No newline at end of file +{"__symbolic":"module","version":4,"metadata":{"CommonComponentsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":92,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":93,"character":12},{"__symbolic":"reference","module":"@fortawesome/angular-fontawesome","name":"FontAwesomeModule","line":93,"character":26},{"__symbolic":"reference","module":"ng-click-outside","name":"ClickOutsideModule","line":93,"character":45}],"declarations":[{"__symbolic":"reference","name":"TopToolbarComponent"},{"__symbolic":"reference","name":"SidePanelComponent"},{"__symbolic":"reference","name":"ButtonComponent"},{"__symbolic":"reference","name":"LogoComponent"},{"__symbolic":"reference","name":"TooltipComponent"},{"__symbolic":"reference","name":"ModalComponent"},{"__symbolic":"reference","name":"BrowseFilesModalComponent"},{"__symbolic":"reference","name":"DocumentComponent"},{"__symbolic":"reference","name":"PageComponent"},{"__symbolic":"reference","name":"SanitizeHtmlPipe"},{"__symbolic":"reference","name":"SanitizeResourceHtmlPipe"},{"__symbolic":"reference","name":"SanitizeStylePipe"},{"__symbolic":"reference","name":"HighlightSearchPipe"},{"__symbolic":"reference","name":"UploadFileZoneComponent"},{"__symbolic":"reference","name":"DndDirective"},{"__symbolic":"reference","name":"ScrollableDirective"},{"__symbolic":"reference","name":"ZoomDirective"},{"__symbolic":"reference","name":"SelectComponent"},{"__symbolic":"reference","name":"DisabledCursorDirective"},{"__symbolic":"reference","name":"RotationDirective"},{"__symbolic":"reference","name":"InitStateComponent"},{"__symbolic":"reference","name":"RenderPrintDirective"},{"__symbolic":"reference","name":"ErrorModalComponent"},{"__symbolic":"reference","name":"PasswordRequiredComponent"},{"__symbolic":"reference","name":"SearchComponent"},{"__symbolic":"reference","name":"SearchableDirective"},{"__symbolic":"reference","name":"TabbedToolbarsComponent"},{"__symbolic":"reference","name":"TabComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ColorPickerComponent"},{"__symbolic":"reference","name":"FormattingDirective"},{"__symbolic":"reference","name":"SuccessModalComponent"},{"__symbolic":"reference","name":"EditorDirective"},{"__symbolic":"reference","name":"LoadingMaskComponent"},{"__symbolic":"reference","name":"DropDownComponent"},{"__symbolic":"reference","name":"DropDownItemComponent"},{"__symbolic":"reference","name":"DropDownItemsComponent"},{"__symbolic":"reference","name":"DropDownToggleComponent"}],"exports":[{"__symbolic":"reference","name":"TopToolbarComponent"},{"__symbolic":"reference","name":"SidePanelComponent"},{"__symbolic":"reference","name":"ButtonComponent"},{"__symbolic":"reference","name":"LogoComponent"},{"__symbolic":"reference","name":"TooltipComponent"},{"__symbolic":"reference","name":"ModalComponent"},{"__symbolic":"reference","name":"BrowseFilesModalComponent"},{"__symbolic":"reference","name":"DocumentComponent"},{"__symbolic":"reference","name":"PageComponent"},{"__symbolic":"reference","name":"SanitizeResourceHtmlPipe"},{"__symbolic":"reference","name":"SanitizeStylePipe"},{"__symbolic":"reference","name":"HighlightSearchPipe"},{"__symbolic":"reference","name":"SanitizeHtmlPipe"},{"__symbolic":"reference","name":"UploadFileZoneComponent"},{"__symbolic":"reference","name":"ScrollableDirective"},{"__symbolic":"reference","name":"SelectComponent"},{"__symbolic":"reference","name":"RotationDirective"},{"__symbolic":"reference","name":"InitStateComponent"},{"__symbolic":"reference","name":"RenderPrintDirective"},{"__symbolic":"reference","name":"ErrorModalComponent"},{"__symbolic":"reference","name":"PasswordRequiredComponent"},{"__symbolic":"reference","name":"SearchComponent"},{"__symbolic":"reference","name":"SearchableDirective"},{"__symbolic":"reference","name":"TabbedToolbarsComponent"},{"__symbolic":"reference","name":"TabComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ColorPickerComponent"},{"__symbolic":"reference","name":"FormattingDirective"},{"__symbolic":"reference","name":"SuccessModalComponent"},{"__symbolic":"reference","name":"LoadingMaskComponent"},{"__symbolic":"reference","name":"DndDirective"},{"__symbolic":"reference","name":"DropDownComponent"},{"__symbolic":"reference","name":"DropDownItemComponent"},{"__symbolic":"reference","name":"DropDownItemsComponent"},{"__symbolic":"reference","name":"DropDownToggleComponent"}],"providers":[{"__symbolic":"reference","name":"ConfigService"},{"__symbolic":"reference","name":"Api"},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","name":"FileService"},{"__symbolic":"reference","name":"FileModel"},{"__symbolic":"reference","name":"FileUtil"},{"__symbolic":"reference","name":"SanitizeHtmlPipe"},{"__symbolic":"reference","name":"SanitizeResourceHtmlPipe"},{"__symbolic":"reference","name":"SanitizeStylePipe"},{"__symbolic":"reference","name":"HighlightSearchPipe"},{"__symbolic":"reference","name":"UploadFilesService"},{"__symbolic":"reference","name":"RenderPrintService"},{"__symbolic":"reference","name":"NavigateService"},{"__symbolic":"reference","name":"PagePreloadService"},{"__symbolic":"reference","name":"ZoomService"},{"__symbolic":"reference","name":"ExceptionMessageService"},{"__symbolic":"reference","name":"PasswordService"},{"__symbolic":"reference","name":"RotationService"},{"__symbolic":"reference","name":"ErrorInterceptorService"},{"__symbolic":"reference","name":"CustomHammerConfig"},{"__symbolic":"reference","name":"SearchService"},{"__symbolic":"reference","name":"WindowService"},{"__symbolic":"reference","name":"ViewportService"},{"__symbolic":"reference","name":"FormattingService"},{"__symbolic":"reference","name":"BackFormattingService"},{"__symbolic":"reference","name":"OnCloseService"},{"__symbolic":"reference","name":"LoadingMaskInterceptorService"},{"__symbolic":"reference","name":"LoadingMaskService"},{"__symbolic":"reference","name":"TabActivatorService"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"Api":{"__symbolic":"class","members":{},"statics":{"VIEWER_APP":"/viewer","EDITOR_APP":"/editor","COMPARISON_APP":"/comparison","CONVERSION_APP":"/conversion","DEFAULT_API_ENDPOINT":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"window"},"member":"location"},"member":"href"},"LOAD_FILE_TREE":"/loadFileTree","LOAD_CONFIG":"/loadConfig","LOAD_DOCUMENT_DESCRIPTION":"/loadDocumentDescription","LOAD_DOCUMENT_PAGE":"/loadDocumentPage","ROTATE_DOCUMENT_PAGE":"/rotateDocumentPages","UPLOAD_DOCUMENTS":"/uploadDocument","DOWNLOAD_DOCUMENTS":"/downloadDocument","LOAD_PRINT":"/loadPrint","LOAD_PRINT_PDF":"/printPdf","LOAD_THUMBNAILS":"/loadThumbnails","LOAD_FORMATS":"/loadFormats","SAVE_FILE":"/saveFile","COMPARE_FILES":"/compare","CONVERT_FILE":"/convert","httpOptionsJson":{"headers":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/common/http","name":"HttpHeaders","line":25,"character":17},"arguments":[{"Content-Type":"application/json","$quoted$":["Content-Type"]}]}},"httpOptionsJsonResponseTypeBlob":{"headers":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/common/http","name":"HttpHeaders","line":30,"character":17},"arguments":[{"Content-Type":"application/json","$quoted$":["Content-Type"]}]},"responseType":"blob"}}},"ConfigService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":37,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"getConfigEndpoint":[{"__symbolic":"method"}],"getViewerApiEndpoint":[{"__symbolic":"method"}],"getEditorApiEndpoint":[{"__symbolic":"method"}],"getComparisonApiEndpoint":[{"__symbolic":"method"}],"getConversionApiEndpoint":[{"__symbolic":"method"}]}},"CommonModals":{"__symbolic":"class","members":{},"statics":{"PasswordRequired":"gd-password-required","ErrorMessage":"gd-error-message","BrowseFiles":"gd-browse-files","CreateDocument":"gd-create-document","OperationSuccess":"gd-success-modal"}},"ModalService":{"__symbolic":"class","members":{"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"PageModel":{"__symbolic":"class","members":{}},"RotatedPage":{"__symbolic":"class","members":{}},"FileCredentials":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]}},"SaveFile":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"FileCredentials"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]}},"FileDescription":{"__symbolic":"class","members":{}},"FileModel":{"__symbolic":"class","members":{}},"HttpError":{"__symbolic":"class","members":{},"statics":{"BadRequest":400,"Unauthorized":401,"Forbidden":403,"NotFound":404,"TimeOut":408,"Conflict":409,"InternalServerError":500}},"FileUtil":{"__symbolic":"class","members":{},"statics":{"map":{"folder":{"format":"","icon":"folder","$quoted$":["format","icon"]},"pdf":{"format":"Portable Document Format","icon":"file-pdf","unit":"pt","$quoted$":["format","icon","unit"]},"doc":{"format":"Microsoft Word","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"docx":{"format":"Microsoft Word","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"docm":{"format":"Microsoft Word","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"dot":{"format":"Microsoft Word","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"dotx":{"format":"Microsoft Word","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"dotm":{"format":"Microsoft Word","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"xls":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"xlsx":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"xlsm":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"xlsb":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"xls2003":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"xltx":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"xltm":{"format":"Microsoft Excel","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"ppt":{"format":"Microsoft PowerPoint","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"pptx":{"format":"Microsoft PowerPoint","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"pps":{"format":"Microsoft PowerPoint","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"ppsx":{"format":"Microsoft PowerPoint","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"vsd":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vdx":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vss":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vsx":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vst":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vtx":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vsdx":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vdw":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vstx":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"vssx":{"format":"Microsoft Visio","icon":"file-code","unit":"px","$quoted$":["format","icon","unit"]},"mpp":{"format":"Microsoft Project","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"mpt":{"format":"Microsoft Project","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"msg":{"format":"Microsoft Outlook","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"eml":{"format":"Microsoft Outlook","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"emlx":{"format":"Microsoft Outlook","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"one":{"format":"Microsoft OneNote","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"odt":{"format":"Open Document Text","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"ott":{"format":"Open Document Text Template","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"ods":{"format":"Open Document Spreadsheet","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"odp":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"otp":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"ots":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"potx":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"potm":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"pptm":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"ppsm":{"format":"Open Document Presentation","icon":"file-powerpoint","unit":"pt","$quoted$":["format","icon","unit"]},"rtf":{"format":"Rich Text Format","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"txt":{"format":"Plain Text File","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"csv":{"format":"Comma-Separated Values","icon":"file-excel","unit":"px","$quoted$":["format","icon","unit"]},"html":{"format":"HyperText Markup Language","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"mht":{"format":"HyperText Markup Language","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"mhtml":{"format":"HyperText Markup Language","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"xml":{"format":"Extensible Markup Language","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"xps":{"format":"XML Paper Specification","icon":"file-word","unit":"pt","$quoted$":["format","icon","unit"]},"dxf":{"format":"AutoCAD Drawing File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"dwg":{"format":"AutoCAD Drawing File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"bmp":{"format":"Bitmap Picture","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"gif":{"format":"Graphics Interchange Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"jpg":{"format":"Joint Photographic Experts Group","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"jpe":{"format":"Joint Photographic Experts Group","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"jpeg":{"format":"Joint Photographic Experts Group","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"jfif":{"format":"Joint Photographic Experts Group","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"png":{"format":"Portable Network Graphics","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"tiff":{"format":"Tagged Image File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"tif":{"format":"Tagged Image File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"psd":{"format":"Tagged Image File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"svg":{"format":"Tagged Image File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"jp2":{"format":"Tagged Image File Format","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"epub":{"format":"Electronic Publication","icon":"file-pdf","unit":"pt","$quoted$":["format","icon","unit"]},"ico":{"format":"Windows Icon","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"webp":{"format":"Compressed Image","icon":"file-image","unit":"px","$quoted$":["format","icon","unit"]},"mobi":{"format":"Mobipocket eBook","icon":"file-pdf","unit":"pt","$quoted$":["format","icon","unit"]},"tex":{"format":"LaTeX Source Document","icon":"file-pdf","unit":"pt","$quoted$":["format","icon","unit"]},"djvu":{"format":"Multi-Layer Raster Image","icon":"file-alt","unit":"pt","$quoted$":["format","icon","unit"]},"unknown":{"format":"This format is not supported","icon":"file","$quoted$":["format","icon"]},"$quoted$":["folder","pdf","doc","docx","docm","dot","dotx","dotm","xls","xlsx","xlsm","xlsb","xls2003","xltx","xltm","ppt","pptx","pps","ppsx","vsd","vdx","vss","vsx","vst","vtx","vsdx","vdw","vstx","vssx","mpp","mpt","msg","eml","emlx","one","odt","ott","ods","odp","otp","ots","potx","potm","pptm","ppsm","rtf","txt","csv","html","mht","mhtml","xml","xps","dxf","dwg","bmp","gif","jpg","jpe","jpeg","jfif","png","tiff","tif","psd","svg","jp2","epub","ico","webp","mobi","tex","djvu","unknown"]}}},"FileService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}]}},"UploadFilesService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changeFilesList":[{"__symbolic":"method"}]}},"SanitizeHtmlPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"safeHtml"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":5,"character":33}]}],"transform":[{"__symbolic":"method"}]}},"SanitizeResourceHtmlPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":13,"character":1},"arguments":[{"name":"safeResourceHtml"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":5,"character":33}]}],"transform":[{"__symbolic":"method"}]}},"SanitizeStylePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":23,"character":1},"arguments":[{"name":"safeStyle"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":5,"character":33}]}],"transform":[{"__symbolic":"method"}]}},"HighlightSearchPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":33,"character":1},"arguments":[{"name":"highlight"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"NavigateService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PagePreloadService"}]}],"nextPage":[{"__symbolic":"method"}],"prevPage":[{"__symbolic":"method"}],"toLastPage":[{"__symbolic":"method"}],"toFirstPage":[{"__symbolic":"method"}],"navigateTo":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"PagePreloadService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changeLastPageInView":[{"__symbolic":"method"}]}},"ZoomService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changeZoom":[{"__symbolic":"method"}],"createZoomOption":[{"__symbolic":"method"}],"zoomOptions":[{"__symbolic":"method"}]}},"RenderPrintService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changePages":[{"__symbolic":"method"}],"changeBlob":[{"__symbolic":"method"}]}},"ErrorInterceptorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","name":"ExceptionMessageService"}]}],"intercept":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"CustomHammerConfig":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/platform-browser","name":"HammerGestureConfig","line":3,"character":40},"members":{}},"ExceptionMessageService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changeMessage":[{"__symbolic":"method"}]}},"PasswordService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"setPassword":[{"__symbolic":"method"}]}},"RotationService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"setRotationAngle":[{"__symbolic":"method"}]}},"WindowService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"isMobile":[{"__symbolic":"method"}],"isTablet":[{"__symbolic":"method"}],"isDesktop":[{"__symbolic":"method"}],"isEdge":[{"__symbolic":"method"}],"isFirefox":[{"__symbolic":"method"}]}},"ViewportService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"checkInViewport":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"BrowseFilesModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"gd-browse-files-modal","template":"\r\n
\r\n
\r\n \r\n Drop file here to upload\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Upload file\r\n \r\n \r\n \r\n \r\n \r\n
{{item.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
FILE
\r\n
SIZE
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
..
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{file?.name}}
\r\n
{{getFormatName(file)}}
\r\n
\r\n
\r\n
\r\n {{getSize(file?.size)}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n  Loading... Please wait.\r\n
\r\n
\r\n
\r\n","styles":[".gd-modal-table{width:100%;text-align:left}#gd-browse-section{width:1036px;height:561px;overflow-y:auto}.list-files-header{height:60px;color:#6e6e6e;font-size:13px;font-weight:700;background-color:#f4f4f4;margin-top:24px}.list-files-header.upload-url{margin-top:20px}.header-name{padding-left:24px;width:90%;line-height:60px}.header-size{padding-right:27px;line-height:60px}.file-size,.header-size{width:10%;color:#777;text-align:right}.file-description{display:flex;width:90%;padding:18px 0 18px 24px;font-size:14px;flex:1;cursor:pointer;overflow:hidden}.file-size{font-size:12px;padding:0 27px 0 0;width:10%;line-height:79px}.list-files-header,.list-files-lines{display:flex;width:100%;justify-content:space-between}.gd-modal-spinner{background-color:#fff;width:100%;height:20px;text-align:center;font-size:16px}.gd-cancel-button{padding:7px;background:0 0;width:28px;overflow:hidden}.gd-cancel-button i{font-size:21px}.gd-file-name{white-space:nowrap;overflow:hidden;width:100%;text-overflow:ellipsis}.go-up{display:flex;font-size:26px;cursor:pointer;color:#4b566c;height:79px}.go-up-dots{margin-left:20px;margin-top:22px;font-size:16px}.go-up-icon{display:block;padding:18px 0 18px 24px}.upload-panel{display:flex;position:relative;width:100%}.upload-panel .context{display:flex;flex-direction:column;width:100%;margin-left:24px;margin-top:24px;margin-right:24px}.upload-panel .context .context-actions{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-actions :last-child{margin-right:0}.upload-panel .context .context-actions ::ng-deep .button{height:37px;width:96px;padding:0;justify-content:center}.upload-panel .context .context-actions ::ng-deep .button ::ng-deep .text{font-size:10px}.upload-panel .context .context-panel{display:flex;flex-direction:row;width:100%;margin-top:20px}.upload-panel .context .context-panel .upload-url{display:flex;flex-direction:row;width:100%}.upload-panel .context .context-panel .upload-url .url-input{width:100%;height:27px;border:1px solid #25c2d4;font-size:14px;padding-left:6px}.upload-panel .context .context-panel .upload-url .url-check{width:31px;height:31px;color:#fff;font-size:15px;background-color:#25c2d4}.upload-panel .context .context-panel .upload-url .url-check .ng-fa-icon{display:block;padding:8px}.upload-panel gd-drop-down{margin-right:10px}.file-description .ng-fa-icon.fa-file-pdf{color:#e04e4e}.file-description .ng-fa-icon.fa-file-word{color:#539cf0}.file-description .ng-fa-icon.fa-file-powerpoint{color:#e29e1e}.file-description .ng-fa-icon.fa-file-excel{color:#7cbc46}.file-description .ng-fa-icon.fa-file-image{color:#c375ed}.file-description .ng-fa-icon.fa-file,.file-description .ng-fa-icon.fa-file-alt,.file-description .ng-fa-icon.fa-file-text .fa-folder{color:#4b566c}.file-description .ng-fa-icon{font-size:32px}.file-name{font-size:16px;color:#6e6e6e;overflow:hidden;text-overflow:ellipsis}.file-name-format{padding-left:11px;overflow:hidden}.file-format{font-size:10px;padding-top:3px;color:#acacac}.go-up,.list-files-lines{border-bottom:1px solid #e7e7e7}.list-files-lines:hover{background-color:#e5e5e5}.gd-dnd-wrap{background-color:#fff;cursor:default;position:absolute;width:100%;height:calc(100% - 60px);background:rgba(255,255,255,.7);z-index:1;display:flex;justify-content:center;align-items:center}.dnd-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;top:259px;position:absolute}.dnd-wrapper .text{color:#6e6e6e;font-size:14px}.dnd-wrapper .icon{display:flex;width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}@media (max-width:1037px){.file-size,.header-size{width:18%}.gd-dnd-wrap{width:95%}#gd-browse-section{width:100%;height:calc(100% - 146px)}}"]}]}],"members":{"files":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"uploadConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"selectedFileGuid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":22,"character":3}}]}],"selectedDirectory":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":23,"character":3}}]}],"urlForUpload":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":24,"character":3}}]}],"closing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":25,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"UploadFilesService"}]}],"ngOnInit":[{"__symbolic":"method"}],"getSize":[{"__symbolic":"method"}],"getFormatName":[{"__symbolic":"method"}],"getFormatIcon":[{"__symbolic":"method"}],"choose":[{"__symbolic":"method"}],"goUp":[{"__symbolic":"method"}],"selectUpload":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"showSpinner":[{"__symbolic":"method"}],"uploadUrl":[{"__symbolic":"method"}],"handleFileInput":[{"__symbolic":"method"}],"cleanUpload":[{"__symbolic":"method"}]}},"ButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-button","template":"
\r\n \r\n \r\n
\r\n
\r\n","styles":[".icon-button{padding:0!important;margin:0 10px}.button{padding:0 10px;font-size:14px;color:#959da5;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:37px;height:37px;text-align:center;position:relative;white-space:nowrap}.button.inactive{cursor:not-allowed;opacity:.4}.button.active *{color:#ccd0d4}.button.primary{background-color:#3e4e5a;color:#fff}.button.primary.active{color:#fff;background-color:#688296}.button.brand{background-color:#25c2d4;color:#fff}.button.brand.active{color:#fff;background-color:#688296}.button .text{font-size:13px;padding-left:10px}@media (max-width:1037px){.button{font-size:22px}.arrow-button{margin:5px}}"]}]}],"members":{"iconOnly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"intent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"iconClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"tooltip":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"className":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"toggle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"iconButtonClass":[{"__symbolic":"method"}],"onHovering":[{"__symbolic":"method"}],"onUnhovering":[{"__symbolic":"method"}]}},"DisabledCursorDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[gdDisabledCursor]"}]}],"members":{"dis":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"cursor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":12,"character":3},"arguments":["class.inactive"]}]}],"updateCursor":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"DndDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[gdDnd]"}]}],"members":{"closing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":8,"character":3}}]}],"opening":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":9,"character":3}}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":12,"character":3},"arguments":["class.active"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"UploadFilesService"}]}],"onDragOver":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":17,"character":3},"arguments":["dragover",["$event"]]}]}],"onDragLeave":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":25,"character":3},"arguments":["dragleave",["$event"]]}]}],"onDrop":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":33,"character":3},"arguments":["drop",["$event"]]}]}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":46,"character":3},"arguments":["click",["$event"]]}]}],"closeArea":[{"__symbolic":"method"}]}},"DocumentComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"gd-document","template":"
Please wait...
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n","styles":[":host{flex:1;transition:.4s;background-color:#e7e7e7;height:100%;overflow:scroll}.page{display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.page.excel{overflow:auto}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:flex-start}.panzoom.mobile{overflow:scroll}@media (max-width:1037px){.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"]}]}],"members":{"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"preloadPageCount":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":48,"character":46,"context":{"typeName":"HTMLElement"},"module":"./lib/document/document.component"}]},{"__symbolic":"reference","name":"ZoomService"},{"__symbolic":"reference","name":"WindowService"},{"__symbolic":"reference","name":"RotationService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ifExcel":[{"__symbolic":"method"}],"getDimensionWithUnit":[{"__symbolic":"method"}],"ngAfterViewChecked":[{"__symbolic":"method"}],"absolutePosition":[{"__symbolic":"method"}],"restrictRawPos":[{"__symbolic":"method"}],"updateLastPos":[{"__symbolic":"method"}],"translate":[{"__symbolic":"method"}],"startZoom":[{"__symbolic":"method"}],"rawCenter":[{"__symbolic":"method"}],"updateLastScale":[{"__symbolic":"method"}],"zoomAround":[{"__symbolic":"method"}],"onPinch":[{"__symbolic":"method"}],"onPinchEnd":[{"__symbolic":"method"}],"onPan":[{"__symbolic":"method"}],"onPanEnd":[{"__symbolic":"method"}],"onDoubleTap":[{"__symbolic":"method"}],"onRotateStart":[{"__symbolic":"method"}],"onRotateEnd":[{"__symbolic":"method"}]}},"ErrorModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-error-modal","template":"\r\n
\r\n \r\n
\r\n
Something went wrong
\r\n
{{message ? message : 'Server is not available'}}
\r\n
\r\n
\r\n
\r\n","styles":[".gd-modal-error{display:inline-flex;flex-direction:column;flex:1}.gd-modal-error .gd-modal-error-message{font-size:12px;margin:0 24px 24px 0}.gd-modal-error .gd-modal-error-title{font-size:16px;font-weight:700;margin:14px 0 10px}#gd-error-section{max-width:468px;max-height:204px;display:flex}#gd-error-section fa-icon{flex:1;color:#e04e4e;font-size:40px;margin:13px 23px 90px;text-align:center}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ExceptionMessageService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"InitStateComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-init-state","template":"
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{text}}\r\n
\r\n
\r\n","styles":[".wrapper{color:#959da5;background-color:#e7e7e7;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%}.icon{font-size:65px;margin-bottom:43px;display:flex;color:#959da5}.start{font-size:15px;text-align:center;color:#959da5}.gd-drag-n-drop-wrap.active{background-color:#fff;position:fixed;top:0;background:rgba(255,255,255,.8)}.gd-drag-n-drop-wrap.active .init-state-wrapper{position:absolute;opacity:.2;top:unset}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper{top:0;z-index:999}.gd-drag-n-drop-wrap.active .init-state-dnd-wrapper .icon{width:113px;height:90px;font-size:90px;color:#3e4e5a;margin-bottom:30px}.gd-drag-n-drop-wrap.active .text{color:#6e6e6e;font-size:14px}.init-state-dnd-wrapper,.init-state-wrapper{display:flex;flex-direction:column;width:250px;height:250px;align-items:center;justify-content:center}.init-state-wrapper{top:-60px;position:relative}"]}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"fileDropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"dropped":[{"__symbolic":"method"}]}},"LogoComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-logo","template":"
\r\n \r\n \r\n
\r\n\r\n","styles":[".logo{background-color:#25c2d4;height:60px;display:flex;align-items:center;justify-content:center}.text{color:#fff;font-size:15px;text-transform:uppercase;margin:0 14px}.icon{display:none;font-size:32px;color:rgba(255,255,255,.5);margin:14px}@media (max-width:1037px){.logo{width:60px;height:60px}.logo .text{display:none}.logo .icon{display:block}}"]}]}],"members":{"logo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-modal","template":"
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
×
\r\n

{{title}}

\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n","styles":["@import url(https://fonts.googleapis.com/css?family=Montserrat&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.gd-modal{overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0;background-color:rgba(0,0,0,.5)}.gd-modal-dialog{box-shadow:#0005 0 0 10px;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1051}.gd-modal-content{background-color:#fff;height:100%;display:flex;flex-direction:column}.gd-modal-header{height:60px;padding:0 12px 0 24px;background-color:#3e4e5a}.gd-modal-close{position:absolute;right:12px;top:12px;cursor:pointer;color:#fff;width:37px;height:37px;text-align:center}.gd-modal-close span{font-size:18px;font-weight:900;height:19px;width:10px;line-height:36px}.gd-modal-title{font-size:16px;font-weight:400;padding-top:17px;padding-bottom:22px;margin:0;color:#fff}.gd-modal-body{background-color:#fff;overflow:hidden;overflow-y:auto;height:calc(100% - 75px)}.gd-modal-footer{height:auto}.gd-modal-footer>.btn{float:right;margin:20px 15px;padding:10px 20px;cursor:pointer;font-size:12px}@media (max-width:1037px){.gd-modal-dialog{width:100%;height:100%}.gd-modal-body{height:100%}}"]}]}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":15,"character":54}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"onClose":[{"__symbolic":"method"}]}},"PageComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-page","template":"
\r\n
\r\n \"\"\r\n\r\n
\r\n \r\n  Loading... Please wait.\r\n
\r\n
\r\n","styles":[".gd-page-spinner{margin-top:150px;text-align:center}.gd-wrapper{width:inherit;height:inherit}.gd-wrapper div{width:100%}/deep/ .gd-highlight{background-color:#ff0}/deep/ .gd-highlight-select{background-color:#ff9b00}.gd-page-image{height:100%!important;width:100%!important}"]}]}],"members":{"angle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"number":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"isHtml":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"editable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"PasswordRequiredComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"gd-password-required","template":"\r\n
\r\n
\r\n \r\n \r\n {{message}}\r\n \r\n Open\r\n \r\n
\r\n
\r\n
\r\n","styles":["#gd-password-section{width:468px;height:164px}.gd-password-wrap{display:flex;flex-direction:column;margin:24px}.gd-password-wrap label{font-size:14px;color:#acacac;padding-bottom:12px}.gd-password-wrap input{height:30px;border:1px solid #25c2d4}.gd-password-wrap input.error{border-color:#e04e4e}.gd-password-wrap gd-button{align-self:flex-end}.gd-password-wrap ::ng-deep .button{height:37px;width:72px;padding:0;justify-content:center}.gd-password-wrap ::ng-deep .button ::ng-deep .text{font-size:10px!important}.gd-password-error{color:#e04e4e;padding:10px 0 12px;height:12px;line-height:12px;font-size:12px}@media (max-width:1037px){#gd-password-section{min-width:375px}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ExceptionMessageService"},{"__symbolic":"reference","name":"PasswordService"}]}],"ngOnInit":[{"__symbolic":"method"}],"setPassword":[{"__symbolic":"method"}]}},"RenderPrintDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[gdRenderPrint]"}]}],"members":{"htmlMode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"RenderPrintService"}]}],"renderPrint":[{"__symbolic":"method"}],"openWindow":[{"__symbolic":"method"}],"renderPrintBlob":[{"__symbolic":"method"}]}},"RotationDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[gdRotation]"}]}],"members":{"angle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}],"isHtmlMode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"withMargin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"animation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":13,"character":3},"arguments":["style.animation"]}]}],"transition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":14,"character":3},"arguments":["style.transition-property"]}]}],"transform":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":15,"character":3},"arguments":["style.transform"]}]}],"margin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":17,"character":3},"arguments":["style.margin"]}]}],"__ctor__":[{"__symbolic":"constructor"}],"updateCursor":[{"__symbolic":"method"}],"isLandscape":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ScrollableDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[gdScrollable]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":26,"character":46,"context":{"typeName":"HTMLElement"},"module":"./lib/scrollable.directive"}]},{"__symbolic":"reference","name":"NavigateService"},{"__symbolic":"reference","name":"PagePreloadService"},{"__symbolic":"reference","name":"ZoomService"},{"__symbolic":"reference","name":"WindowService"},{"__symbolic":"reference","name":"ViewportService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"scrolling":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":49,"character":3},"arguments":["scroll"]}]}],"resizing":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":53,"character":3},"arguments":["window:resize"]}]}],"scrollToPage":[{"__symbolic":"method"}],"getChildren":[{"__symbolic":"method"}],"getPage":[{"__symbolic":"method"}],"calculateOffset":[{"__symbolic":"method"}],"countPagesOnWidth":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"getWidth":[{"__symbolic":"method"}],"getZoom":[{"__symbolic":"method"}]}},"SearchService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"setText":[{"__symbolic":"method"}],"setCurrent":[{"__symbolic":"method"}],"setTotal":[{"__symbolic":"method"}]}},"SearchComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-search","template":"
\r\n \r\n
{{current}} of {{total}}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n","styles":[".gd-nav-search-btn{margin:3px 0 4px}.gd-nav-search-cancel{color:#fff;font-size:14px;width:37px}.gd-search-count{color:#959da5;font-size:12px;position:absolute;right:148px;top:14px}.gd-nav-search-container{background-color:#3e4e5a;width:410px;position:fixed;left:50%;top:60px;z-index:2;transform:translate(-50%,0);display:flex}.gd-search-input{float:left;height:30px;width:267px;font-size:14px;color:#6e6e6e;border:1px solid #25c2d4;margin:7px 0 7px 7px;box-sizing:border-box;padding:6px 0 5px 9px}input[type=text]::-ms-clear{display:none}@media (max-width:1037px){.gd-search-input{width:231px;height:30px;margin:7px 0 7px 5px}.gd-search-count{position:absolute;left:193px;top:15px}.gd-nav-search-container{width:100%}}"]}]}],"members":{"hidePanel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"textElement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":15,"character":3},"arguments":["text",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SearchService"}]}],"ngOnInit":[{"__symbolic":"method"}],"setText":[{"__symbolic":"method"}],"hide":[{"__symbolic":"method"}],"prev":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"SearchableDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[gdSearchable]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":17,"character":46,"context":{"typeName":"HTMLElement"},"module":"./lib/searchable.directive"}]},{"__symbolic":"reference","name":"SearchService"},{"__symbolic":"reference","name":"HighlightSearchPipe"},{"__symbolic":"reference","name":"ZoomService"}]}],"highlightSearch":[{"__symbolic":"method"}],"moveToCurrent":[{"__symbolic":"method"}],"highlightEl":[{"__symbolic":"method"}],"cleanHighlight":[{"__symbolic":"method"}],"getZoom":[{"__symbolic":"method"}]}},"Option":{"__symbolic":"interface"},"SelectComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"gd-select","template":"
\r\n \r\n {{showSelected?.name}}\r\n \r\n \r\n
\r\n
\r\n
{{option.name}}
\r\n
\r\n
\r\n
\r\n
\r\n","styles":[".select{min-width:50px;color:#959da5}.selected-value{font-size:14px;cursor:pointer;white-space:nowrap}.selected-value.inactive{cursor:not-allowed;color:#ccc}.nav-caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent;cursor:pointer}.nav-caret.inactive{cursor:not-allowed;color:#ccc}.dropdown-menu{position:absolute;top:49px;z-index:1000;float:left;min-width:96px;list-style:none;font-size:13px;text-align:left;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);background-clip:padding-box}.dropdown-menu .option{display:block;padding:7px 0 7px 7px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;cursor:pointer;font-size:10px}.dropdown-menu .option:hover{background-color:#25c2d4;color:#fff!important}.dropdown-menu-separator{height:1px;overflow:hidden;background-color:#f4f4f4;padding:0!important}"]}]}],"members":{"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"showSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OnCloseService"}]}],"open":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"onClickOutside":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}]}},"TooltipComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-tooltip","template":"\r\n","styles":[".tooltip{position:absolute;margin-top:37px;width:100px;background-color:#000;color:#fff;text-align:center;border-radius:0;padding:5px 0;z-index:1;margin-left:-66px;font-size:10px;height:11px;line-height:11px}.tooltip.hidden{visibility:hidden}.tooltip.shown{visibility:visible}.shown:after{content:\" \";position:absolute;bottom:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-bottom-color:#000}"]}]}],"members":{"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"show":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}},"TopToolbarComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-top-toolbar","template":"
\r\n
\r\n \r\n
\r\n
\r\n","styles":[".top-toolbar{width:100%;height:60px;z-index:999;display:flex;align-items:center}.tools{width:100%;height:100%;display:flex;align-items:center}@media (max-width:1037px){.top-toolbar{height:60px}.tools{height:100%;overflow-x:auto;overflow-scrolling:touch;display:flex;align-items:center;transition:.3s ease-in-out;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.tools::-webkit-scrollbar{width:0;height:0;background-color:#3e4e5a}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"SidePanelComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-side-panel","template":"
\r\n
\r\n \r\n
{{title}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","styles":[".gd-side-panel-wrapper{margin-right:0;width:334px;z-index:999;background-color:#fff;transition:margin-right .2s;display:flex;flex-flow:column;height:100vh}.gd-side-panel-wrapper .gd-side-panel-header{height:60px;background-color:#222e35;display:flex;flex-direction:row;flex-wrap:nowrap}.gd-side-panel-wrapper .gd-side-panel-header .icon{font-size:24px;color:#959da5;margin:12px 9px 18px 14px}.gd-side-panel-wrapper .gd-side-panel-header .title{font-size:14px;font-weight:700;color:rgba(237,240,242,.57);margin-top:20px;width:100%}.gd-side-panel-wrapper .gd-side-panel-header .close{font-size:24px!important;margin-top:12px}.gd-side-panel-wrapper .gd-side-panel-body{display:flex;flex-flow:column;overflow:visible;overflow-y:auto;overflow-x:hidden;height:100%}@media (max-width:1037px){.gd-side-panel-wrapper{width:100%;position:absolute;left:0;right:0;top:0;bottom:0}}"]}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"hideSidePanel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"openSidePanel":[{"__symbolic":"method"}]}},"UploadFileZoneComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-upload-file-zone","template":"
\r\n
\r\n \r\n
\r\n

Drag & Drop your files here

\r\n

OR

\r\n
\r\n \r\n
\r\n
\r\n","styles":[".gd-drag-n-drop-wrap{border:2px dashed #ccc;background-color:#f8f8f8;text-align:center;cursor:default;position:absolute;width:-webkit-fill-available;left:1px;display:flex;align-content:center;flex-direction:column;justify-content:center;opacity:.9;z-index:1}.gd-drag-n-drop-wrap h2{color:#959da5;margin:5px 0;font-size:15px;font-weight:300}.gd-drag-n-drop-wrap h4{color:#cacaca;font-weight:300;font-size:12px;margin:10px 0 15px}.gd-drag-n-drop-icon .fa-cloud-download-alt{color:#d1d1d1;font-size:110px}.gd-drag-n-drop-buttons i{margin-right:5px}.gd-drag-n-drop-buttons .btn{width:134px;height:35px;margin:0 10px;font-size:12px;font-weight:400}.gd-drag-n-drop-wrap.hover{background:#ddd;border-color:#aaa}"]}]}],"members":{"closeUpload":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"UploadFilesService"}]}],"ngOnInit":[{"__symbolic":"method"}],"handleFileInput":[{"__symbolic":"method"}],"onCloseUpload":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"ZoomDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[gdZoom]"}]}],"members":{"zoomActive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"zoomInt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":13,"character":3},"arguments":["style.zoom"]}]}],"transform":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":14,"character":3},"arguments":["style.transform"]}]}],"transformOrigin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":15,"character":3},"arguments":["style.transform-origin"]}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":16,"character":3},"arguments":["style.width"]}]}],"minWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":17,"character":3},"arguments":["style.min-width"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ZoomService"},{"__symbolic":"reference","name":"WindowService"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":20,"character":92}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"setStyles":[{"__symbolic":"method"}],"getScrollWidth":[{"__symbolic":"method"}],"resizePages":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"SelectionService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":2,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"restoreSelection":[{"__symbolic":"method"}],"captureSelection":[{"__symbolic":"method"}],"putSelection":[{"__symbolic":"method"}],"refreshSelection":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"OnCloseService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"close":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"LoadingMaskService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"onRequestStart":[{"__symbolic":"method"}],"onRequestFinish":[{"__symbolic":"method"}],"notify":[{"__symbolic":"method"}]}},"LoadingMaskInterceptorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoadingMaskService"}]}],"intercept":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"FormattingDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[gdFormatting]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"FormattingService"},{"__symbolic":"reference","name":"BackFormattingService"},{"__symbolic":"reference","name":"SelectionService"}]}],"mouseup":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":29,"character":3},"arguments":["mouseup"]}]}],"checkJustify":[{"__symbolic":"method"}],"checkList":[{"__symbolic":"method"}],"reportFontSize":[{"__symbolic":"method"}],"getComputedStyleProperty":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"toggleBold":[{"__symbolic":"method"}],"toggleUnderline":[{"__symbolic":"method"}],"toggleItalic":[{"__symbolic":"method"}],"setBgColor":[{"__symbolic":"method"}],"setColor":[{"__symbolic":"method"}],"setFontSize":[{"__symbolic":"method"}],"toggleUndo":[{"__symbolic":"method"}],"toggleRedo":[{"__symbolic":"method"}],"setFont":[{"__symbolic":"method"}],"toggleStrikeout":[{"__symbolic":"method"}],"toggleAlign":[{"__symbolic":"method"}],"toggleAlignIE":[{"__symbolic":"method"}],"toggleList":[{"__symbolic":"method"}]}},"Formatting":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]},"statics":{"DEFAULT":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Formatting"},"arguments":[10,"#000000","#FFFFFF",false,false,false,"Arial",false,"",""]}}},"FormattingService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changeFormatFontSize":[{"__symbolic":"method"}],"changeFormatBold":[{"__symbolic":"method"}],"changeFormatUnderline":[{"__symbolic":"method"}],"Undo":[{"__symbolic":"method"}],"Redo":[{"__symbolic":"method"}],"changeFormatItalic":[{"__symbolic":"method"}],"changeFormatColor":[{"__symbolic":"method"}],"changeFormatBgColor":[{"__symbolic":"method"}],"changeFormatFont":[{"__symbolic":"method"}],"changeFormatStrikeout":[{"__symbolic":"method"}],"changeFormatAlign":[{"__symbolic":"method"}],"changeFormatList":[{"__symbolic":"method"}]},"statics":{"createFontSizeOption":{"__symbolic":"function","parameters":["val"],"value":{"value":{"__symbolic":"reference","name":"val"},"name":{"__symbolic":"binop","operator":"+","left":{"__symbolic":"reference","name":"val"},"right":"px"},"separator":false}},"getFontSizeOptions":{"__symbolic":"function","parameters":[],"value":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[8]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[10]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[12]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[14]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[16]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[18]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[20]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[22]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormattingService"},"member":"createFontSizeOption"},"arguments":[24]}]},"createFontOption":{"__symbolic":"function","parameters":["val"],"value":{"value":{"__symbolic":"reference","name":"val"},"name":{"__symbolic":"reference","name":"val"},"separator":false}}}},"BackFormattingService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"FormattingService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]},"statics":{"ngInjectableDef":{}}},"EditorDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[gdEditor]"}]}],"members":{"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SelectionService"},{"__symbolic":"reference","name":"EditHtmlService"}]}],"onInput":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":15,"character":3},"arguments":["keyup",["$event"]]}]}],"onMouseleave":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":26,"character":3},"arguments":["mouseleave",["$event"]]}]}],"onBlur":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":35,"character":3},"arguments":["blur",["$event"]]}]}]}},"EditHtmlService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]},"statics":{"ngInjectableDef":{}}},"ColorPickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"gd-color-picker","template":"
\r\n
\r\n
\r\n
\r\n
\r\n","styles":[".bcPicker-picker{border:1px;border-radius:100%}.bcPicker-palette{width:232px;padding:5px;border:1px solid #efefef;background-color:#fdfdfd;z-index:999}.bcPicker-palette>.bcPicker-color{width:14px;height:14px;margin:2px;display:inline-block;border:1px solid #efefef;background-color:#9da97b;cursor:pointer}"]}]}],"members":{"selectedColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}]}},"LoadingMaskComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-loading-mask","template":"
\r\n
\r\n  Loading... Please wait.\r\n
\r\n
\r\n","styles":[".loading-wrapper{background:rgba(0,0,0,.5);width:100%;height:100%;font-size:14px;color:#fff;position:fixed;top:0;left:0;z-index:99999}.loading-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"]}]}],"members":{"loadingMask":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoadingMaskService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"SuccessModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-success-modal","template":"\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","styles":[".check_mark{margin:47px auto}.sa-icon{width:80px;height:80px;border:4px solid gray;border-radius:50%;padding:0;position:relative;box-sizing:content-box}#gd-modal-success{display:flex;overflow:hidden;width:469px;height:183px}.sa-icon.sa-success{border-color:#4caf50;transform:scale(1.18)}.sa-icon.sa-success::after,.sa-icon.sa-success::before{content:'';position:absolute;width:60px;height:120px;background:#fff}.sa-icon.sa-success::before{border-radius:120px 0 0 120px;top:-7px;left:-33px;transform:rotate(-45deg);transform-origin:60px 60px}.sa-icon.sa-success::after{border-radius:0 120px 120px 0;top:-11px;left:30px;transform:rotate(-45deg);transform-origin:0 60px}.sa-icon.sa-success .sa-placeholder{width:80px;height:80px;border:4px solid rgba(76,175,80,.5);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.sa-icon.sa-success .sa-fix{width:5px;height:90px;background-color:#fff;position:absolute;left:28px;top:8px;z-index:1;transform:rotate(-45deg)}.sa-icon.sa-success.animate::after{-webkit-animation:4.25s ease-in rotatePlaceholder;animation:4.25s ease-in rotatePlaceholder}.animateSuccessTip{-webkit-animation:.75s animateSuccessTip;animation:.75s animateSuccessTip}.animateSuccessLong{-webkit-animation:.75s animateSuccessLong;animation:.75s animateSuccessLong}@-webkit-keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%,54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessLong{0%,65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}.sa-icon.sa-success .sa-line{height:5px;background-color:#4caf50;display:block;border-radius:2px;position:absolute;z-index:2}.sa-icon.sa-success .sa-line.sa-tip{width:25px;left:14px;top:46px;transform:rotate(45deg)}.sa-icon.sa-success .sa-line.sa-long{width:47px;right:8px;top:38px;transform:rotate(-45deg)}@-webkit-keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%,5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}100%,12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@media (max-width:1037px){#gd-modal-success{left:50%;top:50%;position:relative;transform:translate(-50%,-50%)}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"TabComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-tab","template":"
\r\n
{{tabTitle}}
\r\n \r\n
\r\n
\r\n \r\n
\r\n","styles":[".gd-editor-buttons{height:60px;position:absolute;background-color:#fff;width:100%;left:0;line-height:60px;display:none;z-index:9}.gd-editor-buttons ::ng-deep .toolbar-panel{height:60px}.gd-editor-buttons.active{display:flex}.gd-tab{text-align:center;font-size:11px;color:#e5e5e5;height:30px;line-height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center}.gd-tab .icon{display:none;font-size:14px;margin:auto 23px}.gd-tab .title{margin:auto 23px}.gd-tab.active{background-color:#fff;color:#3e4e5a;font-weight:700}@media (max-width:1037px){.gd-tab{height:60px;line-height:60px}.gd-tab .title{display:none}.gd-tab .icon{display:block}}"]}]}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"tabTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"content":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TabActivatorService"}]}],"activation":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"selectTab":[{"__symbolic":"method"}]}},"TabbedToolbarsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-tabbed-toolbars","template":"
\r\n \r\n \r\n
\r\n","styles":[".top-panel{background:#3e4e5a;display:flex;width:100%;height:90px}.top-panel ::ng-deep .logo{height:30px;font-size:16px}@media (max-width:1037px){.top-panel{height:60px}.top-panel ::ng-deep .logo{height:60px}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"TabActivatorService":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"changeActiveTab":[{"__symbolic":"method"}]}},"DropDownToggleComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":41,"character":1},"arguments":[{"selector":"gd-drop-down-toggle","template":"","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":45,"character":18},"member":"None"},"styles":[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],"members":{"click":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":48,"character":3},"arguments":["click",["$event"]]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":50,"character":15},"arguments":[{"__symbolic":"reference","name":"DropDownComponent"}]}]],"parameters":[null]}]}},"DropDownItemsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":56,"character":1},"arguments":[{"selector":"gd-drop-down-items","template":"
","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":60,"character":18},"member":"None"},"styles":[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":76,"character":15},"arguments":[{"__symbolic":"reference","name":"DropDownComponent"}]}]],"parameters":[null]}],"onClickOutside":[{"__symbolic":"method"}]}},"DropDownItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":86,"character":1},"arguments":[{"selector":"gd-drop-down-item","template":"
","styles":[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],"members":{"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":92,"character":3},"arguments":["class"]}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":95,"character":3}}]}],"click":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":98,"character":3},"arguments":["click"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":101,"character":15},"arguments":[{"__symbolic":"reference","name":"DropDownComponent"}]}]],"parameters":[null]}],"selectEntry":[{"__symbolic":"method"}]}},"DropDownComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":112,"character":1},"arguments":[{"selector":"gd-drop-down","template":"
","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":116,"character":18},"member":"None"},"styles":[".drop-down{position:relative}.show .drop-down-items{display:flex;flex-direction:column;position:absolute;z-index:1000;min-width:100%;max-height:300px;padding:0;background-color:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;overflow-y:auto;overflow-x:hidden}.show .drop-down-items .drop-down-item,.show .drop-down-items gd-drop-down-item{color:#959da5;display:flex;flex-direction:row;justify-content:space-between;cursor:pointer;font-size:10px;line-height:28px;min-height:28px;width:100%}.show .drop-down-items .drop-down-item fa-icon svg,.show .drop-down-items gd-drop-down-item fa-icon svg{margin:0 10px;color:#959da5}.show .drop-down-items .drop-down-item .text,.show .drop-down-items gd-drop-down-item .text{width:100%;margin-right:10px}.show .drop-down-items .drop-down-item:hover,.show .drop-down-items gd-drop-down-item:hover{background-color:#25c2d4}.show .drop-down-items .drop-down-item:hover *,.show .drop-down-items gd-drop-down-item:hover *{color:#fff}.drop-down-items{display:none}"]}]}],"members":{"placement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":119,"character":3}}]}],"open":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":126,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":127,"character":3},"arguments":["class.show"]}]}],"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":130,"character":3},"arguments":["class"]}]}],"close":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"getPlacement":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"gd-tabs","template":"
\r\n \r\n
\r\n","styles":[".gd-tabs{display:flex}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}}},"origins":{"CommonComponentsModule":"./lib/common-components.module","Api":"./lib/config.service","ConfigService":"./lib/config.service","CommonModals":"./lib/modal.service","ModalService":"./lib/modal.service","PageModel":"./lib/file.service","RotatedPage":"./lib/file.service","FileCredentials":"./lib/file.service","SaveFile":"./lib/file.service","FileDescription":"./lib/file.service","FileModel":"./lib/file.service","HttpError":"./lib/file.service","FileUtil":"./lib/file.service","FileService":"./lib/file.service","UploadFilesService":"./lib/upload-files.service","SanitizeHtmlPipe":"./lib/pipes","SanitizeResourceHtmlPipe":"./lib/pipes","SanitizeStylePipe":"./lib/pipes","HighlightSearchPipe":"./lib/pipes","NavigateService":"./lib/navigate.service","PagePreloadService":"./lib/page-preload.service","ZoomService":"./lib/zoom.service","RenderPrintService":"./lib/render-print.service","ErrorInterceptorService":"./lib/error-interceptor.service","CustomHammerConfig":"./lib/custom-hammer-config","ExceptionMessageService":"./lib/exception-message.service","PasswordService":"./lib/password.service","RotationService":"./lib/rotation.service","WindowService":"./lib/window.service","ViewportService":"./lib/viewport.service","BrowseFilesModalComponent":"./lib/browse-files-modal/browse-files-modal.component","ButtonComponent":"./lib/button/button.component","DisabledCursorDirective":"./lib/disabled-cursor.directive","DndDirective":"./lib/dnd.directive","DocumentComponent":"./lib/document/document.component","ErrorModalComponent":"./lib/error-modal/error-modal.component","InitStateComponent":"./lib/init-state/init-state.component","LogoComponent":"./lib/logo/logo.component","ModalComponent":"./lib/modal/modal.component","PageComponent":"./lib/page/page.component","PasswordRequiredComponent":"./lib/password-required/password-required.component","RenderPrintDirective":"./lib/render-print.directive","RotationDirective":"./lib/rotation.directive","ScrollableDirective":"./lib/scrollable.directive","SearchService":"./lib/search.service","SearchComponent":"./lib/search/search.component","SearchableDirective":"./lib/searchable.directive","Option":"./lib/select/select.component","SelectComponent":"./lib/select/select.component","TooltipComponent":"./lib/tooltip/tooltip.component","TopToolbarComponent":"./lib/top-toolbar/top-toolbar.component","SidePanelComponent":"./lib/side-panel/side-panel.component","UploadFileZoneComponent":"./lib/upload-file-zone/upload-file-zone.component","ZoomDirective":"./lib/zoom.directive","SelectionService":"./lib/selection.service","OnCloseService":"./lib/on-close.service","LoadingMaskService":"./lib/loading-mask.service","LoadingMaskInterceptorService":"./lib/loading-mask-interceptor.service","FormattingDirective":"./lib/formatting.directive","Formatting":"./lib/formatting.service","FormattingService":"./lib/formatting.service","BackFormattingService":"./lib/back-formatting.service","EditorDirective":"./lib/editor.directive","EditHtmlService":"./lib/edit-html.service","ColorPickerComponent":"./lib/color-picker/color-picker.component","LoadingMaskComponent":"./lib/loading-mask/loading-mask.component","SuccessModalComponent":"./lib/success-modal/success-modal.component","TabComponent":"./lib/tab/tab.component","TabbedToolbarsComponent":"./lib/tabbed-toolbars/tabbed-toolbars.component","TabActivatorService":"./lib/tab-activator.service","DropDownToggleComponent":"./lib/drop-down/drop-down.component","DropDownItemsComponent":"./lib/drop-down/drop-down.component","DropDownItemComponent":"./lib/drop-down/drop-down.component","DropDownComponent":"./lib/drop-down/drop-down.component","ɵa":"./lib/tabs/tabs.component"},"importAs":"@groupdocs.examples.angular/common-components"} \ No newline at end of file diff --git a/dist/libs/common-components/index.d.ts b/dist/libs/common-components/index.d.ts index bd87680cb..b7f9048d1 100644 --- a/dist/libs/common-components/index.d.ts +++ b/dist/libs/common-components/index.d.ts @@ -9,8 +9,10 @@ export * from './lib/page-preload.service'; export * from './lib/zoom.service'; export * from './lib/render-print.service'; export * from './lib/error-interceptor.service'; +export * from './lib/custom-hammer-config'; export * from './lib/exception-message.service'; export * from './lib/password.service'; +export * from './lib/rotation.service'; export * from './lib/window.service'; export * from './lib/viewport.service'; export * from './lib/browse-files-modal/browse-files-modal.component'; diff --git a/dist/libs/common-components/lib/custom-hammer-config.d.ts b/dist/libs/common-components/lib/custom-hammer-config.d.ts new file mode 100644 index 000000000..b5d05ee5a --- /dev/null +++ b/dist/libs/common-components/lib/custom-hammer-config.d.ts @@ -0,0 +1,4 @@ +import { HammerGestureConfig } from '@angular/platform-browser'; +export declare class CustomHammerConfig extends HammerGestureConfig { + overrides: any; +} diff --git a/dist/libs/common-components/lib/document/document.component.d.ts b/dist/libs/common-components/lib/document/document.component.d.ts index dfa6da2e5..a2b8291b5 100644 --- a/dist/libs/common-components/lib/document/document.component.d.ts +++ b/dist/libs/common-components/lib/document/document.component.d.ts @@ -2,10 +2,12 @@ import { AfterViewChecked, ElementRef, OnInit, AfterViewInit, OnChanges } from ' import { FileDescription } from "../file.service"; import { ZoomService } from "../zoom.service"; import { WindowService } from '../window.service'; +import { RotationService } from '../rotation.service'; export declare class DocumentComponent implements OnInit, AfterViewChecked, AfterViewInit, OnChanges { private _elementRef; private _zoomService; private _windowService; + private _rotationServcie; mode: boolean; preloadPageCount: number; file: FileDescription; @@ -28,7 +30,8 @@ export declare class DocumentComponent implements OnInit, AfterViewChecked, Afte curWidth: number; curHeight: number; isDesktop: boolean; - constructor(_elementRef: ElementRef, _zoomService: ZoomService, _windowService: WindowService); + initialRotation: any; + constructor(_elementRef: ElementRef, _zoomService: ZoomService, _windowService: WindowService, _rotationServcie: RotationService); ngOnInit(): void; ngOnChanges(): void; ngAfterViewInit(): void; @@ -54,4 +57,6 @@ export declare class DocumentComponent implements OnInit, AfterViewChecked, Afte onPan($event: any): void; onPanEnd($event: any): void; onDoubleTap($event: any): void; + onRotateStart($event: any): void; + onRotateEnd($event: any): void; } diff --git a/dist/libs/common-components/lib/rotation.service.d.ts b/dist/libs/common-components/lib/rotation.service.d.ts new file mode 100644 index 000000000..1eeb55453 --- /dev/null +++ b/dist/libs/common-components/lib/rotation.service.d.ts @@ -0,0 +1,8 @@ +import { Observable } from "rxjs"; +export declare class RotationService { + private _observerRotationAngle; + private readonly _rotationAngleChange; + constructor(); + readonly rotationAngleChange: Observable; + setRotationAngle(angle: number): void; +} diff --git a/dist/libs/common-components/package.json b/dist/libs/common-components/package.json index b87275705..fbb10f173 100644 --- a/dist/libs/common-components/package.json +++ b/dist/libs/common-components/package.json @@ -1,6 +1,6 @@ { "name": "@groupdocs.examples.angular/common-components", - "version": "0.4.22", + "version": "0.4.19", "description": "Common components for GroupDocs.Total Angular applications", "license": "MIT", "publishConfig": { diff --git a/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.js b/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.js index 0e3513eeb..bd0d2b5e5 100644 --- a/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.js +++ b/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.js @@ -694,7 +694,7 @@ ComparisonAppComponent.decorators = [ { type: core.Component, args: [{ selector: 'gd-comparison', - template: "\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n", + template: "\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n", styles: ["@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.loader{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.upload-compare-file{height:100%;width:50%;border-right:1px solid #ccc;display:flex;align-content:center;flex-direction:column;text-align:center;flex-grow:0}.open-file-panel{display:flex;width:100%}.files-panel{background-color:#e7e7e7;display:flex;flex-direction:row;width:100%;height:100%}.result-panel{background-color:#e7e7e7;width:100%;height:100%;display:flex;align-content:center;flex-direction:column;justify-content:center;text-align:center}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:100%}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{background-color:#3e4e5a;width:100%}.row{display:flex;height:inherit}.column{width:100%}.tabs-wrapper{display:flex;justify-self:flex-end;align-self:flex-end;width:100%;justify-content:flex-end}.tabs{display:flex;margin-right:30px;align-items:flex-end;justify-content:flex-end}@media (max-width:1037px){.files-panel{flex-direction:column}.files-panel .upload-compare-file{width:100%;border-bottom:1px solid #ccc}/deep/ .gd-side-panel-wrapper{height:50%!important;top:inherit!important;bottom:0!important}}"] }] } ]; @@ -1119,11 +1119,11 @@ ResultDocumentComponent.decorators = [ { type: core.Component, args: [{ selector: 'gd-result-document', - template: "
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n", + template: "
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n", // @TODO: this is replicated from base component until styles inheritance supported added to angular providers: [commonComponents.ZoomService], viewProviders: [commonComponents.ZoomDirective], - styles: [":host{overflow:scroll}.document{background-color:#e7e7e7;width:100%;height:100%;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] + styles: [".document{background-color:#e7e7e7;width:100%;height:100%;overflow-x:hidden;overflow-y:auto!important;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] }] } ]; /** @nocollapse */ diff --git a/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.js.map b/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.js.map index a8f627310..b7582a0c4 100644 --- a/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.js.map +++ b/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"groupdocs.examples.angular-comparison.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/comparison/lib/comparison-config.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-config.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-app.component.ts","ng://@groupdocs.examples.angular/comparison/lib/add-file-panel/add-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/upload-file-panel/upload-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/models.ts","ng://@groupdocs.examples.angular/comparison/lib/differences.service.ts","ng://@groupdocs.examples.angular/comparison/lib/difference/difference.component.ts","ng://@groupdocs.examples.angular/comparison/lib/difference-highlight/difference-highlight.component.ts","ng://@groupdocs.examples.angular/comparison/lib/result-document/result-document.component.ts","ng://@groupdocs.examples.angular/comparison/lib/differences/differences.component.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export class ComparisonConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n preloadResultPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonConfigService {\n private _comparisonConfig: BehaviorSubject = new BehaviorSubject(new ComparisonConfig());\n private _updatedConfig: Observable = this._comparisonConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.COMPARISON_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ComparisonConfig) => {\n const comparisonConfig = response;\n this._comparisonConfig.next(comparisonConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load comparison config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getComparisonApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getComparisonApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?guid=' + credentials.guid;\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n compare(arr: FileCredentials[]) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.COMPARE_FILES, {'guids': arr}, Api.httpOptionsJson);\n }\n}\n","import {Component, ElementRef} from '@angular/core';\nimport * as jquery from 'jquery';\nimport {\n CommonModals,\n FileCredentials,\n FileDescription,\n FileModel,\n ModalService, PageModel, PagePreloadService, TabActivatorService, UploadFilesService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {ComparisonService} from \"./comparison.service\";\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {CompareResult} from \"./models\";\n\nconst $ = jquery;\n\nexport class Files {\n static FIRST = 'first';\n static SECOND = 'second';\n}\n\nexport class Highlight {\n id: string;\n active = false;\n}\n\n@Component({\n selector: 'gd-comparison',\n templateUrl: './comparison-app.component.html',\n styleUrls: ['./comparison-app.component.less']\n})\nexport class ComparisonAppComponent {\n files: FileModel[] = [];\n browseFilesModal = CommonModals.BrowseFiles;\n credentials: Map = new Map();\n file: Map = new Map();\n comparisonConfig: ComparisonConfig;\n activePanel: string;\n first = Files.FIRST;\n second = Files.SECOND;\n firstFileName: string = undefined;\n secondFileName: string = undefined;\n loadingFirstPanel = false;\n loadingSecondPanel = false;\n countPages = 0;\n result: CompareResult;\n filesTab = 'files';\n resultTab = 'result';\n activeTab = this.filesTab;\n resultTabDisabled = true;\n\n constructor(private _comparisonService: ComparisonService,\n private configService: ComparisonConfigService,\n uploadFilesService: UploadFilesService,\n pagePreloadService: PagePreloadService,\n private _modalService: ModalService,\n private _tabActivatorService: TabActivatorService,\n private _elementRef: ElementRef) {\n configService.updatedConfig.subscribe((config) => {\n this.comparisonConfig = config;\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.comparisonConfig.preloadResultPageCount !== 0) {\n this.checkPreload(this.first, page);\n this.checkPreload(this.second, page);\n }\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n const active = this.activePanel;\n this.setLoading(active, true);\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._comparisonService.upload(uploads.item(i), '', this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n }\n });\n\n _tabActivatorService.activeTabChange.subscribe((tabId: string) => {\n this.activeTab = tabId;\n });\n }\n\n private setLoading(panel: string, flag: boolean) {\n if (panel === this.first) {\n this.loadingFirstPanel = flag;\n } else {\n this.loadingSecondPanel = flag;\n }\n }\n\n get rewriteConfig(): boolean {\n return this.comparisonConfig ? this.comparisonConfig.rewrite : true;\n }\n\n selectDir($event: string) {\n this._comparisonService.loadFiles($event).subscribe((files: FileModel[]) => {\n let nameExt: string;\n if (this.credentials.get(this.first)) {\n nameExt = this.credentials.get(this.first).guid.split('.').pop();\n } else if (this.credentials.get(this.second)) {\n nameExt = this.credentials.get(this.second).guid.split('.').pop();\n }\n\n if (nameExt) {\n files = files.filter(function (value) {\n return value.directory || value.guid.split('.').pop() === nameExt;\n });\n }\n this.files = files || [];\n });\n }\n\n selectFile($event: string, password: string, modalId: string, param: string) {\n this.setLoading(param, true);\n this.getFile($event, password, param);\n this.selectDir('');\n this._modalService.close(modalId);\n this.clearData(param);\n }\n\n private getFile($event: string, password: string, param: string) {\n const credentials = {guid: $event, password: password};\n this.credentials.set(param, credentials);\n this._comparisonService.loadFile(credentials).subscribe((file: FileDescription) => {\n this.file.set(param, file);\n if (file) {\n const preloadResultPageCount = this.comparisonConfig.preloadResultPageCount;\n this.countPages = file.pages ? file.pages.length : 0;\n if (preloadResultPageCount > 0) {\n this.preloadPages(param, 1, preloadResultPageCount > this.countPages ? this.countPages : preloadResultPageCount);\n }\n }\n this.updateFileNames();\n this.setLoading(param, false);\n }\n );\n }\n\n clearFile(param: string) {\n this.clearData(param);\n this.credentials.delete(param);\n this.result = null;\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n private clearData(param) {\n if (!this.file || !this.file.size) {\n return;\n }\n this.file.delete(param);\n if (param === this.first) {\n this.firstFileName = undefined;\n } else {\n this.secondFileName = undefined;\n }\n }\n\n preloadPages(param: string, start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._comparisonService.loadPage(this.credentials.get(param), i).subscribe((page: PageModel) => {\n this.file.get(param).pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n const active = this.activePanel;\n this._comparisonService.upload(null, $event, this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n\n updateFileNames() {\n this.firstFileName = this.getFirstFileName();\n this.secondFileName = this.getSecondFileName();\n }\n\n getSecondFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.second) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n getFirstFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.first) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n private checkPreload(panel: string, page: number) {\n if (!this.file.get(panel)) {\n return\n }\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.get(panel).pages[i - 1].data) {\n this.preloadPages(panel, i, i);\n }\n }\n }\n\n compare() {\n if (this.credentials.size !== 2) {\n return;\n }\n this.resultTabDisabled = false;\n const arr = [];\n arr.push(this.credentials.get(this.first));\n arr.push(this.credentials.get(this.second));\n this._comparisonService.compare(arr).subscribe((result: CompareResult) => {\n this.result = result;\n\n const isZeroBasedPageId = this.result.changes.find((change) => change.pageInfo.id === 0);\n\n this.result.changes.forEach( (change) => {\n change.id = this.generateRandomInteger();\n const zeroBasedId = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n change.pageInfo.id = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n if(!this.result.pages[zeroBasedId].changes){\n this.result.pages[zeroBasedId].changes = [];\n }\n this.result.pages[zeroBasedId].changes.push(change);\n change.normalized = {\n x : change.box.x * 100 / change.pageInfo.width,\n y : change.box.y * 100 / change.pageInfo.height,\n width: change.box.width * 100 / change.pageInfo.width,\n height: change.box.height * 100 / change.pageInfo.height,\n };\n });\n }, (err => {\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }));\n this._tabActivatorService.changeActiveTab(this.resultTab);\n }\n\n generateRandomInteger() {\n function _p8(s) {\n const p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\n return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\n }\n return _p8(null) + _p8(true) + _p8(true) + _p8(null);\n }\n\n download() {\n if (!this.result) {\n return;\n }\n const credentials = {'guid': this.result.guid, 'password': ''};\n window.location.assign(this._comparisonService.getDownloadUrl(credentials));\n }\n\n hideSidePanel($event) {\n this.activeTab = $event ? this.filesTab : this.resultTab;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n\n\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileUtil,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\n\nexport class States {\n static Empty = 'empty';\n static Opened = 'opened';\n}\n\n@Component({\n selector: 'gd-add-file-panel',\n templateUrl: './add-file-panel.component.html',\n styleUrls: ['./add-file-panel.component.less']\n})\nexport class AddFilePanelComponent implements OnInit, OnChanges {\n @Input() panel: string;\n @Output() active = new EventEmitter();\n @Output() urlForUpload = new EventEmitter();\n @Output() cleanPanel = new EventEmitter();\n state = States.Empty;\n @Input() fileName: string;\n uploadDisabled = true;\n\n constructor(private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n ngOnInit() {\n }\n\n getFormatIcon() {\n return FileUtil.find(this.fileName, false).icon;\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n isEmpty() {\n return this.state === States.Empty;\n }\n\n cleanFile() {\n this.active.emit(this.panel);\n this.cleanPanel.emit(true);\n }\n\n uploadUrl(url: string) {\n if(this.uploadDisabled){\n return\n }\n if (url && (url.startsWith('http') || url.startsWith('file') || url.startsWith('ftp'))) {\n this.active.emit(this.panel);\n this.urlForUpload.emit(url);\n } else {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"Wrong url\");\n }\n }\n\n checkDisabled(url: string) {\n this.uploadDisabled = url ? url.length === 0 : true;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.fileName) {\n this.state = States.Opened;\n } else {\n this.state = States.Empty;\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {CommonModals, ModalService, UploadFilesService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-upload-file-panel',\n templateUrl: './upload-file-panel.component.html',\n styleUrls: ['./upload-file-panel.component.less']\n})\nexport class UploadFilePanelComponent implements OnInit {\n\n @Input() panel: string;\n @Output() active = new EventEmitter();\n\n constructor(private _uploadService: UploadFilesService,\n private _modalService: ModalService) {\n }\n\n ngOnInit() {\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n dropped($event) {\n if ($event) {\n this.active.emit(this.panel);\n }\n }\n}\n","import {PageModel} from \"@groupdocs.examples.angular/common-components\";\n\nexport class ComparedPageModel extends PageModel{\n changes: ChangeInfo[]\n}\n\nexport class CompareResult {\n changes: ChangeInfo[];\n pages: ComparedPageModel[];\n guid: string;\n}\n\nexport class ChangeInfo {\n pageInfo: PageInfo;\n text: string;\n type: number;\n box: Rectangle;\n id: string;\n styleChanges: StyleChange[];\n normalized: Rectangle;\n active: boolean;\n}\n\nexport class StyleChange {\n changedProperty: string;\n newValue: string;\n oldValue: string;\n}\n\nexport class Rectangle {\n x: number;\n y: number;\n width: number;\n height: number\n}\n\nexport class PageInfo {\n id: number;\n width: number;\n height: number;\n changes: ChangeInfo[];\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DifferencesService {\n\n private _activeChange = new BehaviorSubject(null);\n activeChange = this._activeChange.asObservable();\n\n constructor() {\n }\n\n setActiveChange(id : string){\n this._activeChange.next(id);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo, StyleChange } from '../models';\nimport { DifferencesService } from '../differences.service';\n\n@Component({\n selector: 'gd-comparison-difference',\n templateUrl: './difference.component.html',\n styleUrls: ['./difference.component.less']\n})\nexport class DifferenceComponent implements OnInit {\n @Input() change: ChangeInfo;\n active: boolean;\n\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n\n ngOnInit() {\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID)\n }\n\n getRgbaColor(value){\n return `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport {ChangeInfo} from \"../models\";\nimport { DifferencesService } from '../differences.service';\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Component({\n selector: 'gd-difference-highlight',\n templateUrl: './difference-highlight.component.html',\n styleUrls: ['./difference-highlight.component.less']\n})\nexport class DifferenceHighlightComponent implements OnInit{\n @Input() change: ChangeInfo;\n @Input() active: boolean;\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n ngOnInit(){\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID);\n }\n\n close(event: Event){\n this.changesService.setActiveChange(null);\n }\n\n highlight(id : string){\n this.changesService.setActiveChange(id);\n }\n}\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { DocumentComponent, WindowService } from '@groupdocs.examples.angular/common-components';\nimport {ZoomService,ZoomDirective} from '@groupdocs.examples.angular/common-components';\nimport * as jquery from 'jquery';\nimport { DifferencesService } from '../differences.service';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-result-document',\n templateUrl: './result-document.component.html',\n styleUrls: ['./result-document.component.less'], // @TODO: this is replicated from base component until styles inheritance supported added to angular\n providers : [ZoomService],\n viewProviders : [ZoomDirective]\n})\nexport class ResultDocumentComponent extends DocumentComponent implements OnInit {\n private changesService : DifferencesService;\n\n constructor(_elementRef: ElementRef,\n zoomService: ZoomService,\n changeService : DifferencesService,\n windowService: WindowService) {\n super(_elementRef, zoomService, windowService);\n this.changesService = changeService;\n }\n\n close(){\n this.changesService.setActiveChange(null)\n }\n\n ngOnInit(){\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo } from './../models';\nimport { DifferencesService } from '../differences.service';\nimport { NavigateService } from '@groupdocs.examples.angular/common-components';\n\n@Component({\n selector: 'gd-differences',\n templateUrl: './differences.component.html',\n styleUrls: ['./differences.component.less']\n})\nexport class DifferencesComponent implements OnInit {\n\n @Input() changes : ChangeInfo[] = [];\n private changesService : DifferencesService;\n private navigateService;\n\n constructor(changeService : DifferencesService,navigateService: NavigateService,) {\n this.changesService = changeService;\n this.navigateService = navigateService;\n }\n\n ngOnInit() {}\n\n\n highlightDifference(id: string,page: number,event : MouseEvent){\n event.stopPropagation();\n this.changesService.setActiveChange(id);\n this.navigateService.navigateTo(page+1);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport {APP_INITIALIZER, ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ComparisonAppComponent} from './comparison-app.component';\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport {fas} from '@fortawesome/free-solid-svg-icons';\nimport {far} from '@fortawesome/free-regular-svg-icons';\nimport {ComparisonService} from \"./comparison.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService,\n Api\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {AddFilePanelComponent} from './add-file-panel/add-file-panel.component';\nimport {UploadFilePanelComponent} from './upload-file-panel/upload-file-panel.component';\nimport {DifferenceComponent} from './difference/difference.component';\nimport {DifferenceHighlightComponent} from './difference-highlight/difference-highlight.component';\nimport { ResultDocumentComponent } from './result-document/result-document.component';\nimport { DifferencesComponent } from './differences/differences.component';\nimport { DifferencesService } from './differences.service';\nimport { ClickOutsideModule } from 'ng-click-outside';\n\nexport function initializeApp(comparisonConfigService: ComparisonConfigService) {\n const result = () => comparisonConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations: [ComparisonAppComponent, AddFilePanelComponent, UploadFilePanelComponent, DifferenceComponent, DifferenceHighlightComponent, ResultDocumentComponent, DifferencesComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule,\n ClickOutsideModule\n ],\n exports: [\n ComparisonAppComponent,\n CommonComponentsModule,\n ResultDocumentComponent,\n DifferencesComponent\n ],\n providers: [\n ComparisonService,\n ConfigService,\n DifferencesService,\n ComparisonConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ComparisonConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class ComparisonModule {\n constructor() {\n library.add(fas, far);\n }\n\n static forRoot(apiEndpoint: string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint;\n return {\n ngModule: ComparisonModule\n };\n }\n}\n"],"names":["BehaviorSubject","Api","Injectable","HttpClient","ConfigService","CommonModals","Component","UploadFilesService","PagePreloadService","ModalService","TabActivatorService","ElementRef","EventEmitter","FileUtil","ExceptionMessageService","Input","Output","tslib_1.__extends","PageModel","ZoomService","ZoomDirective","WindowService","DocumentComponent","NavigateService","LoadingMaskInterceptorService","library","fas","far","NgModule","BrowserModule","CommonComponentsModule","HttpClientModule","FontAwesomeModule","ClickOutsideModule","APP_INITIALIZER","HTTP_INTERCEPTORS","ErrorInterceptorService","LoadingMaskService"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"groupdocs.examples.angular-comparison.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/comparison/lib/comparison-config.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-config.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-app.component.ts","ng://@groupdocs.examples.angular/comparison/lib/add-file-panel/add-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/upload-file-panel/upload-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/models.ts","ng://@groupdocs.examples.angular/comparison/lib/differences.service.ts","ng://@groupdocs.examples.angular/comparison/lib/difference/difference.component.ts","ng://@groupdocs.examples.angular/comparison/lib/difference-highlight/difference-highlight.component.ts","ng://@groupdocs.examples.angular/comparison/lib/result-document/result-document.component.ts","ng://@groupdocs.examples.angular/comparison/lib/differences/differences.component.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export class ComparisonConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n preloadResultPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonConfigService {\n private _comparisonConfig: BehaviorSubject = new BehaviorSubject(new ComparisonConfig());\n private _updatedConfig: Observable = this._comparisonConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.COMPARISON_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ComparisonConfig) => {\n const comparisonConfig = response;\n this._comparisonConfig.next(comparisonConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load comparison config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getComparisonApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getComparisonApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?guid=' + credentials.guid;\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n compare(arr: FileCredentials[]) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.COMPARE_FILES, {'guids': arr}, Api.httpOptionsJson);\n }\n}\n","import {Component, ElementRef} from '@angular/core';\nimport * as jquery from 'jquery';\nimport {\n CommonModals,\n FileCredentials,\n FileDescription,\n FileModel,\n ModalService, PageModel, PagePreloadService, TabActivatorService, UploadFilesService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {ComparisonService} from \"./comparison.service\";\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {CompareResult} from \"./models\";\n\nconst $ = jquery;\n\nexport class Files {\n static FIRST = 'first';\n static SECOND = 'second';\n}\n\nexport class Highlight {\n id: string;\n active = false;\n}\n\n@Component({\n selector: 'gd-comparison',\n templateUrl: './comparison-app.component.html',\n styleUrls: ['./comparison-app.component.less']\n})\nexport class ComparisonAppComponent {\n files: FileModel[] = [];\n browseFilesModal = CommonModals.BrowseFiles;\n credentials: Map = new Map();\n file: Map = new Map();\n comparisonConfig: ComparisonConfig;\n activePanel: string;\n first = Files.FIRST;\n second = Files.SECOND;\n firstFileName: string = undefined;\n secondFileName: string = undefined;\n loadingFirstPanel = false;\n loadingSecondPanel = false;\n countPages = 0;\n result: CompareResult;\n filesTab = 'files';\n resultTab = 'result';\n activeTab = this.filesTab;\n resultTabDisabled = true;\n\n constructor(private _comparisonService: ComparisonService,\n private configService: ComparisonConfigService,\n uploadFilesService: UploadFilesService,\n pagePreloadService: PagePreloadService,\n private _modalService: ModalService,\n private _tabActivatorService: TabActivatorService,\n private _elementRef: ElementRef) {\n configService.updatedConfig.subscribe((config) => {\n this.comparisonConfig = config;\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.comparisonConfig.preloadResultPageCount !== 0) {\n this.checkPreload(this.first, page);\n this.checkPreload(this.second, page);\n }\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n const active = this.activePanel;\n this.setLoading(active, true);\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._comparisonService.upload(uploads.item(i), '', this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n }\n });\n\n _tabActivatorService.activeTabChange.subscribe((tabId: string) => {\n this.activeTab = tabId;\n });\n }\n\n private setLoading(panel: string, flag: boolean) {\n if (panel === this.first) {\n this.loadingFirstPanel = flag;\n } else {\n this.loadingSecondPanel = flag;\n }\n }\n\n get rewriteConfig(): boolean {\n return this.comparisonConfig ? this.comparisonConfig.rewrite : true;\n }\n\n selectDir($event: string) {\n this._comparisonService.loadFiles($event).subscribe((files: FileModel[]) => {\n let nameExt: string;\n if (this.credentials.get(this.first)) {\n nameExt = this.credentials.get(this.first).guid.split('.').pop();\n } else if (this.credentials.get(this.second)) {\n nameExt = this.credentials.get(this.second).guid.split('.').pop();\n }\n\n if (nameExt) {\n files = files.filter(function (value) {\n return value.directory || value.guid.split('.').pop() === nameExt;\n });\n }\n this.files = files || [];\n });\n }\n\n selectFile($event: string, password: string, modalId: string, param: string) {\n this.setLoading(param, true);\n this.getFile($event, password, param);\n this.selectDir('');\n this._modalService.close(modalId);\n this.clearData(param);\n }\n\n private getFile($event: string, password: string, param: string) {\n const credentials = {guid: $event, password: password};\n this.credentials.set(param, credentials);\n this._comparisonService.loadFile(credentials).subscribe((file: FileDescription) => {\n this.file.set(param, file);\n if (file) {\n const preloadResultPageCount = this.comparisonConfig.preloadResultPageCount;\n this.countPages = file.pages ? file.pages.length : 0;\n if (preloadResultPageCount > 0) {\n this.preloadPages(param, 1, preloadResultPageCount > this.countPages ? this.countPages : preloadResultPageCount);\n }\n }\n this.updateFileNames();\n this.setLoading(param, false);\n }\n );\n }\n\n clearFile(param: string) {\n this.clearData(param);\n this.credentials.delete(param);\n this.result = null;\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n private clearData(param) {\n if (!this.file || !this.file.size) {\n return;\n }\n this.file.delete(param);\n if (param === this.first) {\n this.firstFileName = undefined;\n } else {\n this.secondFileName = undefined;\n }\n }\n\n preloadPages(param: string, start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._comparisonService.loadPage(this.credentials.get(param), i).subscribe((page: PageModel) => {\n this.file.get(param).pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n const active = this.activePanel;\n this._comparisonService.upload(null, $event, this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n\n updateFileNames() {\n this.firstFileName = this.getFirstFileName();\n this.secondFileName = this.getSecondFileName();\n }\n\n getSecondFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.second) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n getFirstFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.first) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n private checkPreload(panel: string, page: number) {\n if (!this.file.get(panel)) {\n return\n }\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.get(panel).pages[i - 1].data) {\n this.preloadPages(panel, i, i);\n }\n }\n }\n\n compare() {\n if (this.credentials.size !== 2) {\n return;\n }\n this.resultTabDisabled = false;\n const arr = [];\n arr.push(this.credentials.get(this.first));\n arr.push(this.credentials.get(this.second));\n this._comparisonService.compare(arr).subscribe((result: CompareResult) => {\n this.result = result;\n\n const isZeroBasedPageId = this.result.changes.find((change) => change.pageInfo.id === 0);\n\n this.result.changes.forEach( (change) => {\n change.id = this.generateRandomInteger();\n const zeroBasedId = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n change.pageInfo.id = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n if(!this.result.pages[zeroBasedId].changes){\n this.result.pages[zeroBasedId].changes = [];\n }\n this.result.pages[zeroBasedId].changes.push(change);\n change.normalized = {\n x : change.box.x * 100 / change.pageInfo.width,\n y : change.box.y * 100 / change.pageInfo.height,\n width: change.box.width * 100 / change.pageInfo.width,\n height: change.box.height * 100 / change.pageInfo.height,\n };\n });\n }, (err => {\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }));\n this._tabActivatorService.changeActiveTab(this.resultTab);\n }\n\n generateRandomInteger() {\n function _p8(s) {\n const p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\n return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\n }\n return _p8(null) + _p8(true) + _p8(true) + _p8(null);\n }\n\n download() {\n if (!this.result) {\n return;\n }\n const credentials = {'guid': this.result.guid, 'password': ''};\n window.location.assign(this._comparisonService.getDownloadUrl(credentials));\n }\n\n hideSidePanel($event) {\n this.activeTab = $event ? this.filesTab : this.resultTab;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n\n\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileUtil,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\n\nexport class States {\n static Empty = 'empty';\n static Opened = 'opened';\n}\n\n@Component({\n selector: 'gd-add-file-panel',\n templateUrl: './add-file-panel.component.html',\n styleUrls: ['./add-file-panel.component.less']\n})\nexport class AddFilePanelComponent implements OnInit, OnChanges {\n @Input() panel: string;\n @Output() active = new EventEmitter();\n @Output() urlForUpload = new EventEmitter();\n @Output() cleanPanel = new EventEmitter();\n state = States.Empty;\n @Input() fileName: string;\n uploadDisabled = true;\n\n constructor(private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n ngOnInit() {\n }\n\n getFormatIcon() {\n return FileUtil.find(this.fileName, false).icon;\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n isEmpty() {\n return this.state === States.Empty;\n }\n\n cleanFile() {\n this.active.emit(this.panel);\n this.cleanPanel.emit(true);\n }\n\n uploadUrl(url: string) {\n if(this.uploadDisabled){\n return\n }\n if (url && (url.startsWith('http') || url.startsWith('file') || url.startsWith('ftp'))) {\n this.active.emit(this.panel);\n this.urlForUpload.emit(url);\n } else {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"Wrong url\");\n }\n }\n\n checkDisabled(url: string) {\n this.uploadDisabled = url ? url.length === 0 : true;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.fileName) {\n this.state = States.Opened;\n } else {\n this.state = States.Empty;\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {CommonModals, ModalService, UploadFilesService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-upload-file-panel',\n templateUrl: './upload-file-panel.component.html',\n styleUrls: ['./upload-file-panel.component.less']\n})\nexport class UploadFilePanelComponent implements OnInit {\n\n @Input() panel: string;\n @Output() active = new EventEmitter();\n\n constructor(private _uploadService: UploadFilesService,\n private _modalService: ModalService) {\n }\n\n ngOnInit() {\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n dropped($event) {\n if ($event) {\n this.active.emit(this.panel);\n }\n }\n}\n","import {PageModel} from \"@groupdocs.examples.angular/common-components\";\n\nexport class ComparedPageModel extends PageModel{\n changes: ChangeInfo[]\n}\n\nexport class CompareResult {\n changes: ChangeInfo[];\n pages: ComparedPageModel[];\n guid: string;\n}\n\nexport class ChangeInfo {\n pageInfo: PageInfo;\n text: string;\n type: number;\n box: Rectangle;\n id: string;\n styleChanges: StyleChange[];\n normalized: Rectangle;\n active: boolean;\n}\n\nexport class StyleChange {\n changedProperty: string;\n newValue: string;\n oldValue: string;\n}\n\nexport class Rectangle {\n x: number;\n y: number;\n width: number;\n height: number\n}\n\nexport class PageInfo {\n id: number;\n width: number;\n height: number;\n changes: ChangeInfo[];\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DifferencesService {\n\n private _activeChange = new BehaviorSubject(null);\n activeChange = this._activeChange.asObservable();\n\n constructor() {\n }\n\n setActiveChange(id : string){\n this._activeChange.next(id);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo, StyleChange } from '../models';\nimport { DifferencesService } from '../differences.service';\n\n@Component({\n selector: 'gd-comparison-difference',\n templateUrl: './difference.component.html',\n styleUrls: ['./difference.component.less']\n})\nexport class DifferenceComponent implements OnInit {\n @Input() change: ChangeInfo;\n active: boolean;\n\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n\n ngOnInit() {\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID)\n }\n\n getRgbaColor(value){\n return `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport {ChangeInfo} from \"../models\";\nimport { DifferencesService } from '../differences.service';\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Component({\n selector: 'gd-difference-highlight',\n templateUrl: './difference-highlight.component.html',\n styleUrls: ['./difference-highlight.component.less']\n})\nexport class DifferenceHighlightComponent implements OnInit{\n @Input() change: ChangeInfo;\n @Input() active: boolean;\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n ngOnInit(){\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID);\n }\n\n close(event: Event){\n this.changesService.setActiveChange(null);\n }\n\n highlight(id : string){\n this.changesService.setActiveChange(id);\n }\n}\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { DocumentComponent, WindowService } from '@groupdocs.examples.angular/common-components';\nimport {ZoomService,ZoomDirective} from '@groupdocs.examples.angular/common-components';\nimport * as jquery from 'jquery';\nimport { DifferencesService } from '../differences.service';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-result-document',\n templateUrl: './result-document.component.html',\n styleUrls: ['./result-document.component.less'], // @TODO: this is replicated from base component until styles inheritance supported added to angular\n providers : [ZoomService],\n viewProviders : [ZoomDirective]\n})\nexport class ResultDocumentComponent extends DocumentComponent implements OnInit {\n private changesService : DifferencesService;\n\n constructor(_elementRef: ElementRef,\n zoomService: ZoomService,\n changeService : DifferencesService,\n windowService: WindowService) {\n super(_elementRef, zoomService, windowService);\n this.changesService = changeService;\n }\n\n close(){\n this.changesService.setActiveChange(null)\n }\n\n ngOnInit(){\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo } from './../models';\nimport { DifferencesService } from '../differences.service';\nimport { NavigateService } from '@groupdocs.examples.angular/common-components';\n\n@Component({\n selector: 'gd-differences',\n templateUrl: './differences.component.html',\n styleUrls: ['./differences.component.less']\n})\nexport class DifferencesComponent implements OnInit {\n\n @Input() changes : ChangeInfo[] = [];\n private changesService : DifferencesService;\n private navigateService;\n\n constructor(changeService : DifferencesService,navigateService: NavigateService,) {\n this.changesService = changeService;\n this.navigateService = navigateService;\n }\n\n ngOnInit() {}\n\n\n highlightDifference(id: string,page: number,event : MouseEvent){\n event.stopPropagation();\n this.changesService.setActiveChange(id);\n this.navigateService.navigateTo(page+1);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport {APP_INITIALIZER, ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ComparisonAppComponent} from './comparison-app.component';\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport {fas} from '@fortawesome/free-solid-svg-icons';\nimport {far} from '@fortawesome/free-regular-svg-icons';\nimport {ComparisonService} from \"./comparison.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService,\n Api\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {AddFilePanelComponent} from './add-file-panel/add-file-panel.component';\nimport {UploadFilePanelComponent} from './upload-file-panel/upload-file-panel.component';\nimport {DifferenceComponent} from './difference/difference.component';\nimport {DifferenceHighlightComponent} from './difference-highlight/difference-highlight.component';\nimport { ResultDocumentComponent } from './result-document/result-document.component';\nimport { DifferencesComponent } from './differences/differences.component';\nimport { DifferencesService } from './differences.service';\nimport { ClickOutsideModule } from 'ng-click-outside';\n\nexport function initializeApp(comparisonConfigService: ComparisonConfigService) {\n const result = () => comparisonConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations: [ComparisonAppComponent, AddFilePanelComponent, UploadFilePanelComponent, DifferenceComponent, DifferenceHighlightComponent, ResultDocumentComponent, DifferencesComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule,\n ClickOutsideModule\n ],\n exports: [\n ComparisonAppComponent,\n CommonComponentsModule,\n ResultDocumentComponent,\n DifferencesComponent\n ],\n providers: [\n ComparisonService,\n ConfigService,\n DifferencesService,\n ComparisonConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ComparisonConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class ComparisonModule {\n constructor() {\n library.add(fas, far);\n }\n\n static forRoot(apiEndpoint: string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint;\n return {\n ngModule: ComparisonModule\n };\n }\n}\n"],"names":["BehaviorSubject","Api","Injectable","HttpClient","ConfigService","CommonModals","Component","UploadFilesService","PagePreloadService","ModalService","TabActivatorService","ElementRef","EventEmitter","FileUtil","ExceptionMessageService","Input","Output","tslib_1.__extends","PageModel","ZoomService","ZoomDirective","WindowService","DocumentComponent","NavigateService","LoadingMaskInterceptorService","library","fas","far","NgModule","BrowserModule","CommonComponentsModule","HttpClientModule","FontAwesomeModule","ClickOutsideModule","APP_INITIALIZER","HTTP_INTERCEPTORS","ErrorInterceptorService","LoadingMaskService"],"mappings":"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"} \ No newline at end of file diff --git a/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.min.js b/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.min.js index 183bdc4ae..6b0e16305 100644 --- a/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.min.js +++ b/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/platform-browser"),require("@angular/core"),require("@angular/common/http"),require("jquery"),require("@groupdocs.examples.angular/common-components"),require("rxjs"),require("@fortawesome/angular-fontawesome"),require("@fortawesome/fontawesome-svg-core"),require("@fortawesome/free-solid-svg-icons"),require("@fortawesome/free-regular-svg-icons"),require("ng-click-outside")):"function"==typeof define&&define.amd?define("@groupdocs.examples.angular/comparison",["exports","@angular/platform-browser","@angular/core","@angular/common/http","jquery","@groupdocs.examples.angular/common-components","rxjs","@fortawesome/angular-fontawesome","@fortawesome/fontawesome-svg-core","@fortawesome/free-solid-svg-icons","@fortawesome/free-regular-svg-icons","ng-click-outside"],t):t(((e=e||self).groupdocs=e.groupdocs||{},e.groupdocs.examples=e.groupdocs.examples||{},e.groupdocs.examples.angular=e.groupdocs.examples.angular||{},e.groupdocs.examples.angular.comparison={}),e.ng.platformBrowser,e.ng.core,e.ng.common.http,null,e.commonComponents,e.rxjs,e.angularFontawesome,e.fontawesomeSvgCore,e.freeSolidSvgIcons,e.freeRegularSvgIcons,e.ngClickOutside)}(this,function(e,t,n,i,o,a,r,s,c,l,d,p){"use strict";var g=function(e,t){return(g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function f(e,t){function n(){this.constructor=e}g(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var u=function(){},h=function(){function e(e,t){this._http=e,this._config=t,this._comparisonConfig=new r.BehaviorSubject(new u),this._updatedConfig=this._comparisonConfig.asObservable()}return Object.defineProperty(e.prototype,"updatedConfig",{get:function(){return this._updatedConfig},enumerable:!0,configurable:!0}),e.prototype.load=function(){var e=this;return new Promise(function(t,n){var i=e._config.getConfigEndpoint(a.Api.COMPARISON_APP);e._http.get(i,a.Api.httpOptionsJson).toPromise().then(function(n){var i=n;e._comparisonConfig.next(i),t()}).catch(function(e){n("Could not load comparison config: "+JSON.stringify(e))})})},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:a.ConfigService}]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(i.HttpClient),n.ɵɵinject(a.ConfigService))},token:e,providedIn:"root"}),e}(),m=function(){function e(e,t){this._http=e,this._config=t}return e.prototype.loadFiles=function(e){return this._http.post(this._config.getComparisonApiEndpoint()+a.Api.LOAD_FILE_TREE,{path:e},a.Api.httpOptionsJson)},e.prototype.getFormats=function(){return this._http.get(this._config.getComparisonApiEndpoint()+a.Api.LOAD_FORMATS,a.Api.httpOptionsJson)},e.prototype.loadFile=function(e){return this._http.post(this._config.getComparisonApiEndpoint()+a.Api.LOAD_DOCUMENT_DESCRIPTION,e,a.Api.httpOptionsJson)},e.prototype.upload=function(e,t,n){var i=new FormData;return i.append("file",e),i.append("rewrite",String(n)),t&&i.append("url",t),this._http.post(this._config.getComparisonApiEndpoint()+a.Api.UPLOAD_DOCUMENTS,i)},e.prototype.save=function(e){return this._http.post(this._config.getComparisonApiEndpoint()+a.Api.SAVE_FILE,e,a.Api.httpOptionsJson)},e.prototype.getDownloadUrl=function(e){return this._config.getComparisonApiEndpoint()+a.Api.DOWNLOAD_DOCUMENTS+"/?guid="+e.guid},e.prototype.loadPage=function(e,t){return this._http.post(this._config.getComparisonApiEndpoint()+a.Api.LOAD_DOCUMENT_PAGE,{guid:e.guid,password:e.password,page:t},a.Api.httpOptionsJson)},e.prototype.compare=function(e){return this._http.post(this._config.getComparisonApiEndpoint()+a.Api.COMPARE_FILES,{guids:e},a.Api.httpOptionsJson)},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:a.ConfigService}]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(i.HttpClient),n.ɵɵinject(a.ConfigService))},token:e,providedIn:"root"}),e}(),v=function(){function e(){}return e.FIRST="first",e.SECOND="second",e}(),b=function(){this.active=!1},y=function(){function e(e,t,n,i,o,r,s){var c=this;this._comparisonService=e,this.configService=t,this._modalService=o,this._tabActivatorService=r,this._elementRef=s,this.files=[],this.browseFilesModal=a.CommonModals.BrowseFiles,this.credentials=new Map,this.file=new Map,this.first=v.FIRST,this.second=v.SECOND,this.firstFileName=void 0,this.secondFileName=void 0,this.loadingFirstPanel=!1,this.loadingSecondPanel=!1,this.countPages=0,this.filesTab="files",this.resultTab="result",this.activeTab=this.filesTab,this.resultTabDisabled=!0,t.updatedConfig.subscribe(function(e){c.comparisonConfig=e}),i.checkPreload.subscribe(function(e){0!==c.comparisonConfig.preloadResultPageCount&&(c.checkPreload(c.first,e),c.checkPreload(c.second,e))}),n.uploadsChange.subscribe(function(e){var t=c.activePanel;if(c.setLoading(t,!0),e){var n=void 0;for(n=0;n0&&i.preloadPages(n,1,t>i.countPages?i.countPages:t)}i.updateFileNames(),i.setLoading(n,!1)})},e.prototype.clearFile=function(e){this.clearData(e),this.credentials.delete(e),this.result=null,this.resultTabDisabled=!0,this._tabActivatorService.changeActiveTab(this.filesTab)},e.prototype.clearData=function(e){this.file&&this.file.size&&(this.file.delete(e),e===this.first?this.firstFileName=void 0:this.secondFileName=void 0)},e.prototype.preloadPages=function(e,t,n){for(var i=this,o=function(t){a._comparisonService.loadPage(a.credentials.get(e),t).subscribe(function(n){i.file.get(e).pages[t-1]=n})},a=this,r=t;r<=n;r++)o(r)},e.prototype.upload=function(e){var t=this,n=this.activePanel;this._comparisonService.upload(null,e,this.rewriteConfig).subscribe(function(e){t.getFile(e.guid,"",n),t.selectDir("")})},e.prototype.updateFileNames=function(){this.firstFileName=this.getFirstFileName(),this.secondFileName=this.getSecondFileName()},e.prototype.getSecondFileName=function(){var e=this.credentials?this.credentials.get(this.second):void 0;return e?e.guid.replace(/^.*[\\\/]/,""):""},e.prototype.getFirstFileName=function(){var e=this.credentials?this.credentials.get(this.first):void 0;return e?e.guid.replace(/^.*[\\\/]/,""):""},e.prototype.checkPreload=function(e,t){if(this.file.get(e))for(var n=t;n0&&n<=this.countPages&&!this.file.get(e).pages[n-1].data&&this.preloadPages(e,n,n)},e.prototype.compare=function(){var e=this;if(2===this.credentials.size){this.resultTabDisabled=!1;var t=[];t.push(this.credentials.get(this.first)),t.push(this.credentials.get(this.second)),this._comparisonService.compare(t).subscribe(function(t){e.result=t;var n=e.result.changes.find(function(e){return 0===e.pageInfo.id});e.result.changes.forEach(function(t){t.id=e.generateRandomInteger();var i=n?t.pageInfo.id:t.pageInfo.id-1;t.pageInfo.id=n?t.pageInfo.id:t.pageInfo.id-1,e.result.pages[i].changes||(e.result.pages[i].changes=[]),e.result.pages[i].changes.push(t),t.normalized={x:100*t.box.x/t.pageInfo.width,y:100*t.box.y/t.pageInfo.height,width:100*t.box.width/t.pageInfo.width,height:100*t.box.height/t.pageInfo.height}})},function(t){e.resultTabDisabled=!0,e._tabActivatorService.changeActiveTab(e.filesTab)}),this._tabActivatorService.changeActiveTab(this.resultTab)}},e.prototype.generateRandomInteger=function(){function e(e){var t=(Math.random().toString(16)+"000000000").substr(2,8);return e?"-"+t.substr(0,4)+"-"+t.substr(4,4):t}return e(null)+e(!0)+e(!0)+e(null)},e.prototype.download=function(){if(this.result){var e={guid:this.result.guid,password:""};window.location.assign(this._comparisonService.getDownloadUrl(e))}},e.prototype.hideSidePanel=function(e){this.activeTab=e?this.filesTab:this.resultTab,this._tabActivatorService.changeActiveTab(this.filesTab)},e.decorators=[{type:n.Component,args:[{selector:"gd-comparison",template:'\x3c!----\x3e\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n',styles:["@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.loader{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.upload-compare-file{height:100%;width:50%;border-right:1px solid #ccc;display:flex;align-content:center;flex-direction:column;text-align:center;flex-grow:0}.open-file-panel{display:flex;width:100%}.files-panel{background-color:#e7e7e7;display:flex;flex-direction:row;width:100%;height:100%}.result-panel{background-color:#e7e7e7;width:100%;height:100%;display:flex;align-content:center;flex-direction:column;justify-content:center;text-align:center}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:100%}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{background-color:#3e4e5a;width:100%}.row{display:flex;height:inherit}.column{width:100%}.tabs-wrapper{display:flex;justify-self:flex-end;align-self:flex-end;width:100%;justify-content:flex-end}.tabs{display:flex;margin-right:30px;align-items:flex-end;justify-content:flex-end}@media (max-width:1037px){.files-panel{flex-direction:column}.files-panel .upload-compare-file{width:100%;border-bottom:1px solid #ccc}/deep/ .gd-side-panel-wrapper{height:50%!important;top:inherit!important;bottom:0!important}}"]}]}],e.ctorParameters=function(){return[{type:m},{type:h},{type:a.UploadFilesService},{type:a.PagePreloadService},{type:a.ModalService},{type:a.TabActivatorService},{type:n.ElementRef}]},e}(),w=function(){function e(){}return e.Empty="empty",e.Opened="opened",e}(),x=function(){function e(e,t){this._modalService=e,this._excMessageService=t,this.active=new n.EventEmitter,this.urlForUpload=new n.EventEmitter,this.cleanPanel=new n.EventEmitter,this.state=w.Empty,this.uploadDisabled=!0}return e.prototype.ngOnInit=function(){},e.prototype.getFormatIcon=function(){return a.FileUtil.find(this.fileName,!1).icon},e.prototype.openModal=function(){this.active.emit(this.panel),this._modalService.open(a.CommonModals.BrowseFiles)},e.prototype.isEmpty=function(){return this.state===w.Empty},e.prototype.cleanFile=function(){this.active.emit(this.panel),this.cleanPanel.emit(!0)},e.prototype.uploadUrl=function(e){this.uploadDisabled||(e&&(e.startsWith("http")||e.startsWith("file")||e.startsWith("ftp"))?(this.active.emit(this.panel),this.urlForUpload.emit(e)):(this._modalService.open(a.CommonModals.ErrorMessage),this._excMessageService.changeMessage("Wrong url")))},e.prototype.checkDisabled=function(e){this.uploadDisabled=!e||0===e.length},e.prototype.ngOnChanges=function(e){this.fileName?this.state=w.Opened:this.state=w.Empty},e.decorators=[{type:n.Component,args:[{selector:"gd-add-file-panel",template:'
\n
\n \n \n
\n \n {{fileName}}\n \n \n
\n',styles:[":host{border-bottom:1px solid #ccc}.wrapper{height:37px;background-color:#fff;display:flex}.upload-wrapper{display:flex;width:100%}.url-input{border:0;height:37px;width:100%;padding-left:5px;margin:0;padding-top:0;padding-bottom:0;outline:0}.compare-file-name{color:#959da5;margin:8px;width:100%;text-align:left}.ng-fa-icon{color:#959da5;margin:9px 15px 0 13px;font-size:14px}.compare-file{width:100%;border-right:2px solid #ddd}"]}]}],e.ctorParameters=function(){return[{type:a.ModalService},{type:a.ExceptionMessageService}]},e.propDecorators={panel:[{type:n.Input}],active:[{type:n.Output}],urlForUpload:[{type:n.Output}],cleanPanel:[{type:n.Output}],fileName:[{type:n.Input}]},e}(),C=function(){function e(e,t){this._uploadService=e,this._modalService=t,this.active=new n.EventEmitter}return e.prototype.ngOnInit=function(){},e.prototype.openModal=function(){this.active.emit(this.panel),this._modalService.open(a.CommonModals.BrowseFiles)},e.prototype.dropped=function(e){e&&this.active.emit(this.panel)},e.decorators=[{type:n.Component,args:[{selector:"gd-upload-file-panel",template:'
\n
\n \n
\n

Drop your document here or click to select a file

\n
\n',styles:[".gd-drag-n-drop-wrap{height:100%;width:100%;background-color:#e7e7e7;text-align:center;cursor:default;left:1px;display:flex;align-content:center;flex-direction:column;justify-content:center;opacity:.9;z-index:1}.active{background-color:#bababa}.gd-drag-n-drop-wrap h2{color:#959da5;font-size:15px;margin-top:38px}.gd-drag-n-drop-icon{color:#959da5;cursor:pointer}:host{display:flex;justify-content:center;align-items:center;flex-direction:column;align-content:center;height:100%;border-bottom:1px solid #ccc}"]}]}],e.ctorParameters=function(){return[{type:a.UploadFilesService},{type:a.ModalService}]},e.propDecorators={panel:[{type:n.Input}],active:[{type:n.Output}]},e}(),S=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t}(a.PageModel),P=function(){},I=function(){},_=function(){},F=function(){},A=function(){},D=function(){function e(){this._activeChange=new r.BehaviorSubject(null),this.activeChange=this._activeChange.asObservable()}return e.prototype.setActiveChange=function(e){this._activeChange.next(e)},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(),E=function(){function e(e){this.changesService=e}return e.prototype.ngOnInit=function(){var e=this;this.changesService.activeChange.subscribe(function(t){return e.active=e.change.id===t})},e.prototype.getRgbaColor=function(e){return"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")"},e.decorators=[{type:n.Component,args:[{selector:"gd-comparison-difference",template:'
\n
\n \n \n
\n
Text edited
\n
{{change.text}}
\n
\n
\n \n \n
\n
Text added
\n
{{change.text}}
\n
\n
\n \n \n
\n
Text deleted
\n
{{change.text}}
\n
\n
\n \n \n
\n
Text added
\n
{{change.text}}
\n
\n
\n \n \n
\n
Style changed
\n
\n \n
\n \n →\n \n Highlight Color\n
\n
\n \n →\n \n Color\n
\n
\n {{style.oldValue}} → {{style.newValue}}\n Font size\n
\n
\n {{change.text}}{{change.text}}\n Bold\n
\n
\n {{change.text}}{{change.text}}\n Italic\n
\n
\n {{change.text}}{{change.text}}\n Underline\n
\n
\n
\n
\n
\n
Page {{change.pageInfo.id + 1}}
\n
\n
\n',styles:[".gd-difference{flex-flow:row wrap;border-bottom:1px solid #eee;cursor:pointer}.gd-difference.active{background-color:#f2f2f2}.gd-difference:hover{background-color:#e5e5e5}.gd-difference .gd-difference-title-wrapper{display:flex;flex-direction:row;align-content:stretch;padding:15px 15px 20px 20px}.gd-difference .gd-difference-title-wrapper fa-icon{font-size:14px}.gd-difference .gd-difference-title-wrapper .fa-arrow-right{color:#16b901}.gd-difference .gd-difference-title-wrapper .fa-pencil-alt{color:#ced600}.gd-difference .gd-difference-title-wrapper .fa-times{color:#b96401}.gd-difference .gd-difference-title-wrapper .gd-difference-body{width:100%;display:flex;flex-direction:column;padding-left:15px}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-difference-title{color:#222e35;font-size:13px;font-weight:700}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-differentce-comment{color:#959da5;font-size:13px;padding-top:10px;overflow:hidden;text-overflow:ellipsis}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-differentce-comment .color{vertical-align:text-bottom;width:14px;height:14px;display:inline-block;border:1px solid #ccc;border-radius:100%}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-differentce-comment .property{padding-left:1em}.gd-difference .gd-difference-title-wrapper .gd-difference-page{color:rgba(149,157,165,.48);font-size:11px;white-space:nowrap}"]}]}],e.ctorParameters=function(){return[{type:D}]},e.propDecorators={change:[{type:n.Input}]},e}(),O=function(){function e(e){this.changesService=e}return e.prototype.ngOnInit=function(){var e=this;this.changesService.activeChange.subscribe(function(t){return e.active=e.change.id===t})},e.prototype.close=function(e){this.changesService.setActiveChange(null)},e.prototype.highlight=function(e){this.changesService.setActiveChange(e)},e.decorators=[{type:n.Component,args:[{selector:"gd-difference-highlight",template:'\n\n\n\n',styles:[".highlight-difference{position:absolute;cursor:pointer;z-index:1}.gd-difference.active,.highlight-difference.active{box-shadow:0 0 0 9999px rgba(0,0,0,.5);z-index:999}.gd-difference-1{background-color:rgba(0,122,255,.4)}.gd-difference-2,.gd-difference-4{background-color:rgba(46,237,0,.4)}.gd-difference-3{background-color:rgba(237,0,0,.4)}.gd-difference-6{background-color:rgba(215,224,0,.4)}"]}]}],e.ctorParameters=function(){return[{type:D}]},e.propDecorators={change:[{type:n.Input}],active:[{type:n.Input}]},e}(),T=function(e){function t(t,n,i,o){var a=e.call(this,t,n,o)||this;return a.changesService=i,a}return f(t,e),t.prototype.close=function(){this.changesService.setActiveChange(null)},t.prototype.ngOnInit=function(){},t.decorators=[{type:n.Component,args:[{selector:"gd-result-document",template:'
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n',providers:[a.ZoomService],viewProviders:[a.ZoomDirective],styles:[":host{overflow:scroll}.document{background-color:#e7e7e7;width:100%;height:100%;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"]}]}],t.ctorParameters=function(){return[{type:n.ElementRef},{type:a.ZoomService},{type:D},{type:a.WindowService}]},t}(a.DocumentComponent),k=function(){function e(e,t){this.changes=[],this.changesService=e,this.navigateService=t}return e.prototype.ngOnInit=function(){},e.prototype.highlightDifference=function(e,t,n){n.stopPropagation(),this.changesService.setActiveChange(e),this.navigateService.navigateTo(t+1)},e.decorators=[{type:n.Component,args:[{selector:"gd-differences",template:'
\n \n
\n',styles:[""]}]}],e.ctorParameters=function(){return[{type:D},{type:a.NavigateService}]},e.propDecorators={changes:[{type:n.Input}]},e}();function M(e){return function(){return e.load()}}function N(e){return new a.LoadingMaskInterceptorService(e)}var R=function(){function e(){c.library.add(l.fas,d.far)}return e.forRoot=function(t){return a.Api.DEFAULT_API_ENDPOINT=t,{ngModule:e}},e.decorators=[{type:n.NgModule,args:[{declarations:[y,x,C,E,O,T,k],imports:[t.BrowserModule,a.CommonComponentsModule,i.HttpClientModule,s.FontAwesomeModule,p.ClickOutsideModule],exports:[y,a.CommonComponentsModule,T,k],providers:[m,a.ConfigService,D,h,{provide:n.APP_INITIALIZER,useFactory:M,deps:[h],multi:!0},{provide:i.HTTP_INTERCEPTORS,useClass:a.ErrorInterceptorService,multi:!0},a.LoadingMaskService,{provide:i.HTTP_INTERCEPTORS,useFactory:N,multi:!0,deps:[a.LoadingMaskService]}]}]}],e.ctorParameters=function(){return[]},e}();e.ChangeInfo=I,e.CompareResult=P,e.ComparedPageModel=S,e.ComparisonAppComponent=y,e.ComparisonConfig=u,e.ComparisonConfigService=h,e.ComparisonModule=R,e.ComparisonService=m,e.Files=v,e.Highlight=b,e.PageInfo=A,e.Rectangle=F,e.StyleChange=_,e.initializeApp=M,e.setupLoadingInterceptor=N,e.ɵa=x,e.ɵb=C,e.ɵc=E,e.ɵd=D,e.ɵe=O,e.ɵf=T,e.ɵg=k,Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/platform-browser"),require("@angular/core"),require("@angular/common/http"),require("jquery"),require("@groupdocs.examples.angular/common-components"),require("rxjs"),require("@fortawesome/angular-fontawesome"),require("@fortawesome/fontawesome-svg-core"),require("@fortawesome/free-solid-svg-icons"),require("@fortawesome/free-regular-svg-icons"),require("ng-click-outside")):"function"==typeof define&&define.amd?define("@groupdocs.examples.angular/comparison",["exports","@angular/platform-browser","@angular/core","@angular/common/http","jquery","@groupdocs.examples.angular/common-components","rxjs","@fortawesome/angular-fontawesome","@fortawesome/fontawesome-svg-core","@fortawesome/free-solid-svg-icons","@fortawesome/free-regular-svg-icons","ng-click-outside"],t):t(((e=e||self).groupdocs=e.groupdocs||{},e.groupdocs.examples=e.groupdocs.examples||{},e.groupdocs.examples.angular=e.groupdocs.examples.angular||{},e.groupdocs.examples.angular.comparison={}),e.ng.platformBrowser,e.ng.core,e.ng.common.http,null,e.commonComponents,e.rxjs,e.angularFontawesome,e.fontawesomeSvgCore,e.freeSolidSvgIcons,e.freeRegularSvgIcons,e.ngClickOutside)}(this,function(e,t,n,i,o,a,r,s,c,l,d,p){"use strict";var g=function(e,t){return(g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function f(e,t){function n(){this.constructor=e}g(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var u=function(){},h=function(){function e(e,t){this._http=e,this._config=t,this._comparisonConfig=new r.BehaviorSubject(new u),this._updatedConfig=this._comparisonConfig.asObservable()}return Object.defineProperty(e.prototype,"updatedConfig",{get:function(){return this._updatedConfig},enumerable:!0,configurable:!0}),e.prototype.load=function(){var e=this;return new Promise(function(t,n){var i=e._config.getConfigEndpoint(a.Api.COMPARISON_APP);e._http.get(i,a.Api.httpOptionsJson).toPromise().then(function(n){var i=n;e._comparisonConfig.next(i),t()}).catch(function(e){n("Could not load comparison config: "+JSON.stringify(e))})})},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:a.ConfigService}]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(i.HttpClient),n.ɵɵinject(a.ConfigService))},token:e,providedIn:"root"}),e}(),m=function(){function e(e,t){this._http=e,this._config=t}return e.prototype.loadFiles=function(e){return this._http.post(this._config.getComparisonApiEndpoint()+a.Api.LOAD_FILE_TREE,{path:e},a.Api.httpOptionsJson)},e.prototype.getFormats=function(){return this._http.get(this._config.getComparisonApiEndpoint()+a.Api.LOAD_FORMATS,a.Api.httpOptionsJson)},e.prototype.loadFile=function(e){return this._http.post(this._config.getComparisonApiEndpoint()+a.Api.LOAD_DOCUMENT_DESCRIPTION,e,a.Api.httpOptionsJson)},e.prototype.upload=function(e,t,n){var i=new FormData;return i.append("file",e),i.append("rewrite",String(n)),t&&i.append("url",t),this._http.post(this._config.getComparisonApiEndpoint()+a.Api.UPLOAD_DOCUMENTS,i)},e.prototype.save=function(e){return this._http.post(this._config.getComparisonApiEndpoint()+a.Api.SAVE_FILE,e,a.Api.httpOptionsJson)},e.prototype.getDownloadUrl=function(e){return this._config.getComparisonApiEndpoint()+a.Api.DOWNLOAD_DOCUMENTS+"/?guid="+e.guid},e.prototype.loadPage=function(e,t){return this._http.post(this._config.getComparisonApiEndpoint()+a.Api.LOAD_DOCUMENT_PAGE,{guid:e.guid,password:e.password,page:t},a.Api.httpOptionsJson)},e.prototype.compare=function(e){return this._http.post(this._config.getComparisonApiEndpoint()+a.Api.COMPARE_FILES,{guids:e},a.Api.httpOptionsJson)},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:a.ConfigService}]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(i.HttpClient),n.ɵɵinject(a.ConfigService))},token:e,providedIn:"root"}),e}(),v=function(){function e(){}return e.FIRST="first",e.SECOND="second",e}(),y=function(){this.active=!1},b=function(){function e(e,t,n,i,o,r,s){var c=this;this._comparisonService=e,this.configService=t,this._modalService=o,this._tabActivatorService=r,this._elementRef=s,this.files=[],this.browseFilesModal=a.CommonModals.BrowseFiles,this.credentials=new Map,this.file=new Map,this.first=v.FIRST,this.second=v.SECOND,this.firstFileName=void 0,this.secondFileName=void 0,this.loadingFirstPanel=!1,this.loadingSecondPanel=!1,this.countPages=0,this.filesTab="files",this.resultTab="result",this.activeTab=this.filesTab,this.resultTabDisabled=!0,t.updatedConfig.subscribe(function(e){c.comparisonConfig=e}),i.checkPreload.subscribe(function(e){0!==c.comparisonConfig.preloadResultPageCount&&(c.checkPreload(c.first,e),c.checkPreload(c.second,e))}),n.uploadsChange.subscribe(function(e){var t=c.activePanel;if(c.setLoading(t,!0),e){var n=void 0;for(n=0;n0&&i.preloadPages(n,1,t>i.countPages?i.countPages:t)}i.updateFileNames(),i.setLoading(n,!1)})},e.prototype.clearFile=function(e){this.clearData(e),this.credentials.delete(e),this.result=null,this.resultTabDisabled=!0,this._tabActivatorService.changeActiveTab(this.filesTab)},e.prototype.clearData=function(e){this.file&&this.file.size&&(this.file.delete(e),e===this.first?this.firstFileName=void 0:this.secondFileName=void 0)},e.prototype.preloadPages=function(e,t,n){for(var i=this,o=function(t){a._comparisonService.loadPage(a.credentials.get(e),t).subscribe(function(n){i.file.get(e).pages[t-1]=n})},a=this,r=t;r<=n;r++)o(r)},e.prototype.upload=function(e){var t=this,n=this.activePanel;this._comparisonService.upload(null,e,this.rewriteConfig).subscribe(function(e){t.getFile(e.guid,"",n),t.selectDir("")})},e.prototype.updateFileNames=function(){this.firstFileName=this.getFirstFileName(),this.secondFileName=this.getSecondFileName()},e.prototype.getSecondFileName=function(){var e=this.credentials?this.credentials.get(this.second):void 0;return e?e.guid.replace(/^.*[\\\/]/,""):""},e.prototype.getFirstFileName=function(){var e=this.credentials?this.credentials.get(this.first):void 0;return e?e.guid.replace(/^.*[\\\/]/,""):""},e.prototype.checkPreload=function(e,t){if(this.file.get(e))for(var n=t;n0&&n<=this.countPages&&!this.file.get(e).pages[n-1].data&&this.preloadPages(e,n,n)},e.prototype.compare=function(){var e=this;if(2===this.credentials.size){this.resultTabDisabled=!1;var t=[];t.push(this.credentials.get(this.first)),t.push(this.credentials.get(this.second)),this._comparisonService.compare(t).subscribe(function(t){e.result=t;var n=e.result.changes.find(function(e){return 0===e.pageInfo.id});e.result.changes.forEach(function(t){t.id=e.generateRandomInteger();var i=n?t.pageInfo.id:t.pageInfo.id-1;t.pageInfo.id=n?t.pageInfo.id:t.pageInfo.id-1,e.result.pages[i].changes||(e.result.pages[i].changes=[]),e.result.pages[i].changes.push(t),t.normalized={x:100*t.box.x/t.pageInfo.width,y:100*t.box.y/t.pageInfo.height,width:100*t.box.width/t.pageInfo.width,height:100*t.box.height/t.pageInfo.height}})},function(t){e.resultTabDisabled=!0,e._tabActivatorService.changeActiveTab(e.filesTab)}),this._tabActivatorService.changeActiveTab(this.resultTab)}},e.prototype.generateRandomInteger=function(){function e(e){var t=(Math.random().toString(16)+"000000000").substr(2,8);return e?"-"+t.substr(0,4)+"-"+t.substr(4,4):t}return e(null)+e(!0)+e(!0)+e(null)},e.prototype.download=function(){if(this.result){var e={guid:this.result.guid,password:""};window.location.assign(this._comparisonService.getDownloadUrl(e))}},e.prototype.hideSidePanel=function(e){this.activeTab=e?this.filesTab:this.resultTab,this._tabActivatorService.changeActiveTab(this.filesTab)},e.decorators=[{type:n.Component,args:[{selector:"gd-comparison",template:'\x3c!----\x3e\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n',styles:["@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.loader{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.upload-compare-file{height:100%;width:50%;border-right:1px solid #ccc;display:flex;align-content:center;flex-direction:column;text-align:center;flex-grow:0}.open-file-panel{display:flex;width:100%}.files-panel{background-color:#e7e7e7;display:flex;flex-direction:row;width:100%;height:100%}.result-panel{background-color:#e7e7e7;width:100%;height:100%;display:flex;align-content:center;flex-direction:column;justify-content:center;text-align:center}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:100%}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{background-color:#3e4e5a;width:100%}.row{display:flex;height:inherit}.column{width:100%}.tabs-wrapper{display:flex;justify-self:flex-end;align-self:flex-end;width:100%;justify-content:flex-end}.tabs{display:flex;margin-right:30px;align-items:flex-end;justify-content:flex-end}@media (max-width:1037px){.files-panel{flex-direction:column}.files-panel .upload-compare-file{width:100%;border-bottom:1px solid #ccc}/deep/ .gd-side-panel-wrapper{height:50%!important;top:inherit!important;bottom:0!important}}"]}]}],e.ctorParameters=function(){return[{type:m},{type:h},{type:a.UploadFilesService},{type:a.PagePreloadService},{type:a.ModalService},{type:a.TabActivatorService},{type:n.ElementRef}]},e}(),w=function(){function e(){}return e.Empty="empty",e.Opened="opened",e}(),x=function(){function e(e,t){this._modalService=e,this._excMessageService=t,this.active=new n.EventEmitter,this.urlForUpload=new n.EventEmitter,this.cleanPanel=new n.EventEmitter,this.state=w.Empty,this.uploadDisabled=!0}return e.prototype.ngOnInit=function(){},e.prototype.getFormatIcon=function(){return a.FileUtil.find(this.fileName,!1).icon},e.prototype.openModal=function(){this.active.emit(this.panel),this._modalService.open(a.CommonModals.BrowseFiles)},e.prototype.isEmpty=function(){return this.state===w.Empty},e.prototype.cleanFile=function(){this.active.emit(this.panel),this.cleanPanel.emit(!0)},e.prototype.uploadUrl=function(e){this.uploadDisabled||(e&&(e.startsWith("http")||e.startsWith("file")||e.startsWith("ftp"))?(this.active.emit(this.panel),this.urlForUpload.emit(e)):(this._modalService.open(a.CommonModals.ErrorMessage),this._excMessageService.changeMessage("Wrong url")))},e.prototype.checkDisabled=function(e){this.uploadDisabled=!e||0===e.length},e.prototype.ngOnChanges=function(e){this.fileName?this.state=w.Opened:this.state=w.Empty},e.decorators=[{type:n.Component,args:[{selector:"gd-add-file-panel",template:'
\n
\n \n \n
\n \n {{fileName}}\n \n \n
\n',styles:[":host{border-bottom:1px solid #ccc}.wrapper{height:37px;background-color:#fff;display:flex}.upload-wrapper{display:flex;width:100%}.url-input{border:0;height:37px;width:100%;padding-left:5px;margin:0;padding-top:0;padding-bottom:0;outline:0}.compare-file-name{color:#959da5;margin:8px;width:100%;text-align:left}.ng-fa-icon{color:#959da5;margin:9px 15px 0 13px;font-size:14px}.compare-file{width:100%;border-right:2px solid #ddd}"]}]}],e.ctorParameters=function(){return[{type:a.ModalService},{type:a.ExceptionMessageService}]},e.propDecorators={panel:[{type:n.Input}],active:[{type:n.Output}],urlForUpload:[{type:n.Output}],cleanPanel:[{type:n.Output}],fileName:[{type:n.Input}]},e}(),C=function(){function e(e,t){this._uploadService=e,this._modalService=t,this.active=new n.EventEmitter}return e.prototype.ngOnInit=function(){},e.prototype.openModal=function(){this.active.emit(this.panel),this._modalService.open(a.CommonModals.BrowseFiles)},e.prototype.dropped=function(e){e&&this.active.emit(this.panel)},e.decorators=[{type:n.Component,args:[{selector:"gd-upload-file-panel",template:'
\n
\n \n
\n

Drop your document here or click to select a file

\n
\n',styles:[".gd-drag-n-drop-wrap{height:100%;width:100%;background-color:#e7e7e7;text-align:center;cursor:default;left:1px;display:flex;align-content:center;flex-direction:column;justify-content:center;opacity:.9;z-index:1}.active{background-color:#bababa}.gd-drag-n-drop-wrap h2{color:#959da5;font-size:15px;margin-top:38px}.gd-drag-n-drop-icon{color:#959da5;cursor:pointer}:host{display:flex;justify-content:center;align-items:center;flex-direction:column;align-content:center;height:100%;border-bottom:1px solid #ccc}"]}]}],e.ctorParameters=function(){return[{type:a.UploadFilesService},{type:a.ModalService}]},e.propDecorators={panel:[{type:n.Input}],active:[{type:n.Output}]},e}(),S=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t}(a.PageModel),P=function(){},I=function(){},_=function(){},F=function(){},A=function(){},D=function(){function e(){this._activeChange=new r.BehaviorSubject(null),this.activeChange=this._activeChange.asObservable()}return e.prototype.setActiveChange=function(e){this._activeChange.next(e)},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(),E=function(){function e(e){this.changesService=e}return e.prototype.ngOnInit=function(){var e=this;this.changesService.activeChange.subscribe(function(t){return e.active=e.change.id===t})},e.prototype.getRgbaColor=function(e){return"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")"},e.decorators=[{type:n.Component,args:[{selector:"gd-comparison-difference",template:'
\n
\n \n \n
\n
Text edited
\n
{{change.text}}
\n
\n
\n \n \n
\n
Text added
\n
{{change.text}}
\n
\n
\n \n \n
\n
Text deleted
\n
{{change.text}}
\n
\n
\n \n \n
\n
Text added
\n
{{change.text}}
\n
\n
\n \n \n
\n
Style changed
\n
\n \n
\n \n →\n \n Highlight Color\n
\n
\n \n →\n \n Color\n
\n
\n {{style.oldValue}} → {{style.newValue}}\n Font size\n
\n
\n {{change.text}}{{change.text}}\n Bold\n
\n
\n {{change.text}}{{change.text}}\n Italic\n
\n
\n {{change.text}}{{change.text}}\n Underline\n
\n
\n
\n
\n
\n
Page {{change.pageInfo.id + 1}}
\n
\n
\n',styles:[".gd-difference{flex-flow:row wrap;border-bottom:1px solid #eee;cursor:pointer}.gd-difference.active{background-color:#f2f2f2}.gd-difference:hover{background-color:#e5e5e5}.gd-difference .gd-difference-title-wrapper{display:flex;flex-direction:row;align-content:stretch;padding:15px 15px 20px 20px}.gd-difference .gd-difference-title-wrapper fa-icon{font-size:14px}.gd-difference .gd-difference-title-wrapper .fa-arrow-right{color:#16b901}.gd-difference .gd-difference-title-wrapper .fa-pencil-alt{color:#ced600}.gd-difference .gd-difference-title-wrapper .fa-times{color:#b96401}.gd-difference .gd-difference-title-wrapper .gd-difference-body{width:100%;display:flex;flex-direction:column;padding-left:15px}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-difference-title{color:#222e35;font-size:13px;font-weight:700}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-differentce-comment{color:#959da5;font-size:13px;padding-top:10px;overflow:hidden;text-overflow:ellipsis}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-differentce-comment .color{vertical-align:text-bottom;width:14px;height:14px;display:inline-block;border:1px solid #ccc;border-radius:100%}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-differentce-comment .property{padding-left:1em}.gd-difference .gd-difference-title-wrapper .gd-difference-page{color:rgba(149,157,165,.48);font-size:11px;white-space:nowrap}"]}]}],e.ctorParameters=function(){return[{type:D}]},e.propDecorators={change:[{type:n.Input}]},e}(),O=function(){function e(e){this.changesService=e}return e.prototype.ngOnInit=function(){var e=this;this.changesService.activeChange.subscribe(function(t){return e.active=e.change.id===t})},e.prototype.close=function(e){this.changesService.setActiveChange(null)},e.prototype.highlight=function(e){this.changesService.setActiveChange(e)},e.decorators=[{type:n.Component,args:[{selector:"gd-difference-highlight",template:'\n\n\n\n',styles:[".highlight-difference{position:absolute;cursor:pointer;z-index:1}.gd-difference.active,.highlight-difference.active{box-shadow:0 0 0 9999px rgba(0,0,0,.5);z-index:999}.gd-difference-1{background-color:rgba(0,122,255,.4)}.gd-difference-2,.gd-difference-4{background-color:rgba(46,237,0,.4)}.gd-difference-3{background-color:rgba(237,0,0,.4)}.gd-difference-6{background-color:rgba(215,224,0,.4)}"]}]}],e.ctorParameters=function(){return[{type:D}]},e.propDecorators={change:[{type:n.Input}],active:[{type:n.Input}]},e}(),T=function(e){function t(t,n,i,o){var a=e.call(this,t,n,o)||this;return a.changesService=i,a}return f(t,e),t.prototype.close=function(){this.changesService.setActiveChange(null)},t.prototype.ngOnInit=function(){},t.decorators=[{type:n.Component,args:[{selector:"gd-result-document",template:'
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n',providers:[a.ZoomService],viewProviders:[a.ZoomDirective],styles:[".document{background-color:#e7e7e7;width:100%;height:100%;overflow-x:hidden;overflow-y:auto!important;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"]}]}],t.ctorParameters=function(){return[{type:n.ElementRef},{type:a.ZoomService},{type:D},{type:a.WindowService}]},t}(a.DocumentComponent),k=function(){function e(e,t){this.changes=[],this.changesService=e,this.navigateService=t}return e.prototype.ngOnInit=function(){},e.prototype.highlightDifference=function(e,t,n){n.stopPropagation(),this.changesService.setActiveChange(e),this.navigateService.navigateTo(t+1)},e.decorators=[{type:n.Component,args:[{selector:"gd-differences",template:'
\n \n
\n',styles:[""]}]}],e.ctorParameters=function(){return[{type:D},{type:a.NavigateService}]},e.propDecorators={changes:[{type:n.Input}]},e}();function M(e){return function(){return e.load()}}function N(e){return new a.LoadingMaskInterceptorService(e)}var R=function(){function e(){c.library.add(l.fas,d.far)}return e.forRoot=function(t){return a.Api.DEFAULT_API_ENDPOINT=t,{ngModule:e}},e.decorators=[{type:n.NgModule,args:[{declarations:[b,x,C,E,O,T,k],imports:[t.BrowserModule,a.CommonComponentsModule,i.HttpClientModule,s.FontAwesomeModule,p.ClickOutsideModule],exports:[b,a.CommonComponentsModule,T,k],providers:[m,a.ConfigService,D,h,{provide:n.APP_INITIALIZER,useFactory:M,deps:[h],multi:!0},{provide:i.HTTP_INTERCEPTORS,useClass:a.ErrorInterceptorService,multi:!0},a.LoadingMaskService,{provide:i.HTTP_INTERCEPTORS,useFactory:N,multi:!0,deps:[a.LoadingMaskService]}]}]}],e.ctorParameters=function(){return[]},e}();e.ChangeInfo=I,e.CompareResult=P,e.ComparedPageModel=S,e.ComparisonAppComponent=b,e.ComparisonConfig=u,e.ComparisonConfigService=h,e.ComparisonModule=R,e.ComparisonService=m,e.Files=v,e.Highlight=y,e.PageInfo=A,e.Rectangle=F,e.StyleChange=_,e.initializeApp=M,e.setupLoadingInterceptor=N,e.ɵa=x,e.ɵb=C,e.ɵc=E,e.ɵd=D,e.ɵe=O,e.ɵf=T,e.ɵg=k,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=groupdocs.examples.angular-comparison.umd.min.js.map \ No newline at end of file diff --git a/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.min.js.map b/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.min.js.map index aba28fb10..ea59082d1 100644 --- a/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.min.js.map +++ b/dist/libs/comparison/bundles/groupdocs.examples.angular-comparison.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/comparison/lib/comparison-config.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-config.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-app.component.ts","ng://@groupdocs.examples.angular/comparison/lib/add-file-panel/add-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/upload-file-panel/upload-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/models.ts","ng://@groupdocs.examples.angular/comparison/lib/differences.service.ts","ng://@groupdocs.examples.angular/comparison/lib/difference/difference.component.ts","ng://@groupdocs.examples.angular/comparison/lib/difference-highlight/difference-highlight.component.ts","ng://@groupdocs.examples.angular/comparison/lib/result-document/result-document.component.ts","ng://@groupdocs.examples.angular/comparison/lib/differences/differences.component.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","ComparisonConfig","ComparisonConfigService","_http","_config","_comparisonConfig","BehaviorSubject","_updatedConfig","asObservable","defineProperty","load","_this","Promise","resolve","reject","configEndpoint","getConfigEndpoint","Api","COMPARISON_APP","get","httpOptionsJson","toPromise","then","response","comparisonConfig","next","catch","JSON","stringify","Injectable","args","providedIn","HttpClient","ConfigService","ComparisonService","loadFiles","path","post","getComparisonApiEndpoint","LOAD_FILE_TREE","getFormats","LOAD_FORMATS","loadFile","credentials","LOAD_DOCUMENT_DESCRIPTION","upload","file","url","rewrite","formData","FormData","append","String","UPLOAD_DOCUMENTS","save","SAVE_FILE","getDownloadUrl","DOWNLOAD_DOCUMENTS","guid","loadPage","page","LOAD_DOCUMENT_PAGE","password","compare","arr","COMPARE_FILES","guids","Files","FIRST","SECOND","active","ComparisonAppComponent","_comparisonService","configService","uploadFilesService","pagePreloadService","_modalService","_tabActivatorService","_elementRef","files","browseFilesModal","CommonModals","BrowseFiles","Map","first","second","firstFileName","undefined","secondFileName","loadingFirstPanel","loadingSecondPanel","countPages","filesTab","resultTab","activeTab","resultTabDisabled","updatedConfig","subscribe","config","checkPreload","preloadResultPageCount","uploadsChange","uploads","activePanel","setLoading","i","length","item","rewriteConfig","obj","getFile","selectDir","activeTabChange","tabId","panel","flag","$event","nameExt","split","pop","filter","value","directory","selectFile","modalId","param","close","clearData","set","pages","preloadPages","updateFileNames","clearFile","delete","result","changeActiveTab","size","start","end","this_1","getFirstFileName","getSecondFileName","fileCredentials","replace","data","push","isZeroBasedPageId","changes","find","change","pageInfo","id","forEach","generateRandomInteger","zeroBasedId","normalized","x","box","width","y","height","err","_p8","s","Math","random","toString","substr","download","window","location","assign","hideSidePanel","Component","selector","template","UploadFilesService","PagePreloadService","ModalService","TabActivatorService","ElementRef","States","Empty","Opened","AddFilePanelComponent","_excMessageService","EventEmitter","urlForUpload","cleanPanel","state","uploadDisabled","ngOnInit","getFormatIcon","FileUtil","fileName","icon","openModal","emit","open","isEmpty","cleanFile","uploadUrl","startsWith","ErrorMessage","changeMessage","checkDisabled","ngOnChanges","ExceptionMessageService","Input","Output","UploadFilePanelComponent","_uploadService","dropped","ComparedPageModel","tslib_1.__extends","PageModel","DifferencesService","_activeChange","activeChange","setActiveChange","DifferenceComponent","changeService","changesService","activeID","getRgbaColor","red","green","blue","alpha","DifferenceHighlightComponent","event","highlight","ResultDocumentComponent","zoomService","windowService","_super","call","providers","ZoomService","viewProviders","ZoomDirective","WindowService","DocumentComponent","DifferencesComponent","navigateService","highlightDifference","stopPropagation","navigateTo","NavigateService","initializeApp","comparisonConfigService","setupLoadingInterceptor","service","LoadingMaskInterceptorService","ComparisonModule","library","add","fas","far","forRoot","apiEndpoint","DEFAULT_API_ENDPOINT","ngModule","NgModule","declarations","imports","BrowserModule","CommonComponentsModule","HttpClientModule","FontAwesomeModule","ClickOutsideModule","exports","provide","APP_INITIALIZER","useFactory","deps","multi","HTTP_INTERCEPTORS","useClass","ErrorInterceptorService","LoadingMaskService"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export class ComparisonConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n preloadResultPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonConfigService {\n private _comparisonConfig: BehaviorSubject = new BehaviorSubject(new ComparisonConfig());\n private _updatedConfig: Observable = this._comparisonConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.COMPARISON_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ComparisonConfig) => {\n const comparisonConfig = response;\n this._comparisonConfig.next(comparisonConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load comparison config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getComparisonApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getComparisonApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?guid=' + credentials.guid;\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n compare(arr: FileCredentials[]) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.COMPARE_FILES, {'guids': arr}, Api.httpOptionsJson);\n }\n}\n","import {Component, ElementRef} from '@angular/core';\nimport * as jquery from 'jquery';\nimport {\n CommonModals,\n FileCredentials,\n FileDescription,\n FileModel,\n ModalService, PageModel, PagePreloadService, TabActivatorService, UploadFilesService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {ComparisonService} from \"./comparison.service\";\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {CompareResult} from \"./models\";\n\nconst $ = jquery;\n\nexport class Files {\n static FIRST = 'first';\n static SECOND = 'second';\n}\n\nexport class Highlight {\n id: string;\n active = false;\n}\n\n@Component({\n selector: 'gd-comparison',\n templateUrl: './comparison-app.component.html',\n styleUrls: ['./comparison-app.component.less']\n})\nexport class ComparisonAppComponent {\n files: FileModel[] = [];\n browseFilesModal = CommonModals.BrowseFiles;\n credentials: Map = new Map();\n file: Map = new Map();\n comparisonConfig: ComparisonConfig;\n activePanel: string;\n first = Files.FIRST;\n second = Files.SECOND;\n firstFileName: string = undefined;\n secondFileName: string = undefined;\n loadingFirstPanel = false;\n loadingSecondPanel = false;\n countPages = 0;\n result: CompareResult;\n filesTab = 'files';\n resultTab = 'result';\n activeTab = this.filesTab;\n resultTabDisabled = true;\n\n constructor(private _comparisonService: ComparisonService,\n private configService: ComparisonConfigService,\n uploadFilesService: UploadFilesService,\n pagePreloadService: PagePreloadService,\n private _modalService: ModalService,\n private _tabActivatorService: TabActivatorService,\n private _elementRef: ElementRef) {\n configService.updatedConfig.subscribe((config) => {\n this.comparisonConfig = config;\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.comparisonConfig.preloadResultPageCount !== 0) {\n this.checkPreload(this.first, page);\n this.checkPreload(this.second, page);\n }\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n const active = this.activePanel;\n this.setLoading(active, true);\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._comparisonService.upload(uploads.item(i), '', this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n }\n });\n\n _tabActivatorService.activeTabChange.subscribe((tabId: string) => {\n this.activeTab = tabId;\n });\n }\n\n private setLoading(panel: string, flag: boolean) {\n if (panel === this.first) {\n this.loadingFirstPanel = flag;\n } else {\n this.loadingSecondPanel = flag;\n }\n }\n\n get rewriteConfig(): boolean {\n return this.comparisonConfig ? this.comparisonConfig.rewrite : true;\n }\n\n selectDir($event: string) {\n this._comparisonService.loadFiles($event).subscribe((files: FileModel[]) => {\n let nameExt: string;\n if (this.credentials.get(this.first)) {\n nameExt = this.credentials.get(this.first).guid.split('.').pop();\n } else if (this.credentials.get(this.second)) {\n nameExt = this.credentials.get(this.second).guid.split('.').pop();\n }\n\n if (nameExt) {\n files = files.filter(function (value) {\n return value.directory || value.guid.split('.').pop() === nameExt;\n });\n }\n this.files = files || [];\n });\n }\n\n selectFile($event: string, password: string, modalId: string, param: string) {\n this.setLoading(param, true);\n this.getFile($event, password, param);\n this.selectDir('');\n this._modalService.close(modalId);\n this.clearData(param);\n }\n\n private getFile($event: string, password: string, param: string) {\n const credentials = {guid: $event, password: password};\n this.credentials.set(param, credentials);\n this._comparisonService.loadFile(credentials).subscribe((file: FileDescription) => {\n this.file.set(param, file);\n if (file) {\n const preloadResultPageCount = this.comparisonConfig.preloadResultPageCount;\n this.countPages = file.pages ? file.pages.length : 0;\n if (preloadResultPageCount > 0) {\n this.preloadPages(param, 1, preloadResultPageCount > this.countPages ? this.countPages : preloadResultPageCount);\n }\n }\n this.updateFileNames();\n this.setLoading(param, false);\n }\n );\n }\n\n clearFile(param: string) {\n this.clearData(param);\n this.credentials.delete(param);\n this.result = null;\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n private clearData(param) {\n if (!this.file || !this.file.size) {\n return;\n }\n this.file.delete(param);\n if (param === this.first) {\n this.firstFileName = undefined;\n } else {\n this.secondFileName = undefined;\n }\n }\n\n preloadPages(param: string, start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._comparisonService.loadPage(this.credentials.get(param), i).subscribe((page: PageModel) => {\n this.file.get(param).pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n const active = this.activePanel;\n this._comparisonService.upload(null, $event, this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n\n updateFileNames() {\n this.firstFileName = this.getFirstFileName();\n this.secondFileName = this.getSecondFileName();\n }\n\n getSecondFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.second) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n getFirstFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.first) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n private checkPreload(panel: string, page: number) {\n if (!this.file.get(panel)) {\n return\n }\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.get(panel).pages[i - 1].data) {\n this.preloadPages(panel, i, i);\n }\n }\n }\n\n compare() {\n if (this.credentials.size !== 2) {\n return;\n }\n this.resultTabDisabled = false;\n const arr = [];\n arr.push(this.credentials.get(this.first));\n arr.push(this.credentials.get(this.second));\n this._comparisonService.compare(arr).subscribe((result: CompareResult) => {\n this.result = result;\n\n const isZeroBasedPageId = this.result.changes.find((change) => change.pageInfo.id === 0);\n\n this.result.changes.forEach( (change) => {\n change.id = this.generateRandomInteger();\n const zeroBasedId = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n change.pageInfo.id = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n if(!this.result.pages[zeroBasedId].changes){\n this.result.pages[zeroBasedId].changes = [];\n }\n this.result.pages[zeroBasedId].changes.push(change);\n change.normalized = {\n x : change.box.x * 100 / change.pageInfo.width,\n y : change.box.y * 100 / change.pageInfo.height,\n width: change.box.width * 100 / change.pageInfo.width,\n height: change.box.height * 100 / change.pageInfo.height,\n };\n });\n }, (err => {\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }));\n this._tabActivatorService.changeActiveTab(this.resultTab);\n }\n\n generateRandomInteger() {\n function _p8(s) {\n const p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\n return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\n }\n return _p8(null) + _p8(true) + _p8(true) + _p8(null);\n }\n\n download() {\n if (!this.result) {\n return;\n }\n const credentials = {'guid': this.result.guid, 'password': ''};\n window.location.assign(this._comparisonService.getDownloadUrl(credentials));\n }\n\n hideSidePanel($event) {\n this.activeTab = $event ? this.filesTab : this.resultTab;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n\n\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileUtil,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\n\nexport class States {\n static Empty = 'empty';\n static Opened = 'opened';\n}\n\n@Component({\n selector: 'gd-add-file-panel',\n templateUrl: './add-file-panel.component.html',\n styleUrls: ['./add-file-panel.component.less']\n})\nexport class AddFilePanelComponent implements OnInit, OnChanges {\n @Input() panel: string;\n @Output() active = new EventEmitter();\n @Output() urlForUpload = new EventEmitter();\n @Output() cleanPanel = new EventEmitter();\n state = States.Empty;\n @Input() fileName: string;\n uploadDisabled = true;\n\n constructor(private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n ngOnInit() {\n }\n\n getFormatIcon() {\n return FileUtil.find(this.fileName, false).icon;\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n isEmpty() {\n return this.state === States.Empty;\n }\n\n cleanFile() {\n this.active.emit(this.panel);\n this.cleanPanel.emit(true);\n }\n\n uploadUrl(url: string) {\n if(this.uploadDisabled){\n return\n }\n if (url && (url.startsWith('http') || url.startsWith('file') || url.startsWith('ftp'))) {\n this.active.emit(this.panel);\n this.urlForUpload.emit(url);\n } else {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"Wrong url\");\n }\n }\n\n checkDisabled(url: string) {\n this.uploadDisabled = url ? url.length === 0 : true;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.fileName) {\n this.state = States.Opened;\n } else {\n this.state = States.Empty;\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {CommonModals, ModalService, UploadFilesService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-upload-file-panel',\n templateUrl: './upload-file-panel.component.html',\n styleUrls: ['./upload-file-panel.component.less']\n})\nexport class UploadFilePanelComponent implements OnInit {\n\n @Input() panel: string;\n @Output() active = new EventEmitter();\n\n constructor(private _uploadService: UploadFilesService,\n private _modalService: ModalService) {\n }\n\n ngOnInit() {\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n dropped($event) {\n if ($event) {\n this.active.emit(this.panel);\n }\n }\n}\n","import {PageModel} from \"@groupdocs.examples.angular/common-components\";\n\nexport class ComparedPageModel extends PageModel{\n changes: ChangeInfo[]\n}\n\nexport class CompareResult {\n changes: ChangeInfo[];\n pages: ComparedPageModel[];\n guid: string;\n}\n\nexport class ChangeInfo {\n pageInfo: PageInfo;\n text: string;\n type: number;\n box: Rectangle;\n id: string;\n styleChanges: StyleChange[];\n normalized: Rectangle;\n active: boolean;\n}\n\nexport class StyleChange {\n changedProperty: string;\n newValue: string;\n oldValue: string;\n}\n\nexport class Rectangle {\n x: number;\n y: number;\n width: number;\n height: number\n}\n\nexport class PageInfo {\n id: number;\n width: number;\n height: number;\n changes: ChangeInfo[];\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DifferencesService {\n\n private _activeChange = new BehaviorSubject(null);\n activeChange = this._activeChange.asObservable();\n\n constructor() {\n }\n\n setActiveChange(id : string){\n this._activeChange.next(id);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo, StyleChange } from '../models';\nimport { DifferencesService } from '../differences.service';\n\n@Component({\n selector: 'gd-comparison-difference',\n templateUrl: './difference.component.html',\n styleUrls: ['./difference.component.less']\n})\nexport class DifferenceComponent implements OnInit {\n @Input() change: ChangeInfo;\n active: boolean;\n\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n\n ngOnInit() {\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID)\n }\n\n getRgbaColor(value){\n return `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport {ChangeInfo} from \"../models\";\nimport { DifferencesService } from '../differences.service';\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Component({\n selector: 'gd-difference-highlight',\n templateUrl: './difference-highlight.component.html',\n styleUrls: ['./difference-highlight.component.less']\n})\nexport class DifferenceHighlightComponent implements OnInit{\n @Input() change: ChangeInfo;\n @Input() active: boolean;\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n ngOnInit(){\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID);\n }\n\n close(event: Event){\n this.changesService.setActiveChange(null);\n }\n\n highlight(id : string){\n this.changesService.setActiveChange(id);\n }\n}\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { DocumentComponent, WindowService } from '@groupdocs.examples.angular/common-components';\nimport {ZoomService,ZoomDirective} from '@groupdocs.examples.angular/common-components';\nimport * as jquery from 'jquery';\nimport { DifferencesService } from '../differences.service';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-result-document',\n templateUrl: './result-document.component.html',\n styleUrls: ['./result-document.component.less'], // @TODO: this is replicated from base component until styles inheritance supported added to angular\n providers : [ZoomService],\n viewProviders : [ZoomDirective]\n})\nexport class ResultDocumentComponent extends DocumentComponent implements OnInit {\n private changesService : DifferencesService;\n\n constructor(_elementRef: ElementRef,\n zoomService: ZoomService,\n changeService : DifferencesService,\n windowService: WindowService) {\n super(_elementRef, zoomService, windowService);\n this.changesService = changeService;\n }\n\n close(){\n this.changesService.setActiveChange(null)\n }\n\n ngOnInit(){\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo } from './../models';\nimport { DifferencesService } from '../differences.service';\nimport { NavigateService } from '@groupdocs.examples.angular/common-components';\n\n@Component({\n selector: 'gd-differences',\n templateUrl: './differences.component.html',\n styleUrls: ['./differences.component.less']\n})\nexport class DifferencesComponent implements OnInit {\n\n @Input() changes : ChangeInfo[] = [];\n private changesService : DifferencesService;\n private navigateService;\n\n constructor(changeService : DifferencesService,navigateService: NavigateService,) {\n this.changesService = changeService;\n this.navigateService = navigateService;\n }\n\n ngOnInit() {}\n\n\n highlightDifference(id: string,page: number,event : MouseEvent){\n event.stopPropagation();\n this.changesService.setActiveChange(id);\n this.navigateService.navigateTo(page+1);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport {APP_INITIALIZER, ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ComparisonAppComponent} from './comparison-app.component';\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport {fas} from '@fortawesome/free-solid-svg-icons';\nimport {far} from '@fortawesome/free-regular-svg-icons';\nimport {ComparisonService} from \"./comparison.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService,\n Api\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {AddFilePanelComponent} from './add-file-panel/add-file-panel.component';\nimport {UploadFilePanelComponent} from './upload-file-panel/upload-file-panel.component';\nimport {DifferenceComponent} from './difference/difference.component';\nimport {DifferenceHighlightComponent} from './difference-highlight/difference-highlight.component';\nimport { ResultDocumentComponent } from './result-document/result-document.component';\nimport { DifferencesComponent } from './differences/differences.component';\nimport { DifferencesService } from './differences.service';\nimport { ClickOutsideModule } from 'ng-click-outside';\n\nexport function initializeApp(comparisonConfigService: ComparisonConfigService) {\n const result = () => comparisonConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations: [ComparisonAppComponent, AddFilePanelComponent, UploadFilePanelComponent, DifferenceComponent, DifferenceHighlightComponent, ResultDocumentComponent, DifferencesComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule,\n ClickOutsideModule\n ],\n exports: [\n ComparisonAppComponent,\n CommonComponentsModule,\n ResultDocumentComponent,\n DifferencesComponent\n ],\n providers: [\n ComparisonService,\n ConfigService,\n DifferencesService,\n ComparisonConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ComparisonConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class ComparisonModule {\n constructor() {\n library.add(fas, far);\n }\n\n static forRoot(apiEndpoint: string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint;\n return {\n ngModule: ComparisonModule\n };\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/comparison/lib/comparison-config.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-config.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-app.component.ts","ng://@groupdocs.examples.angular/comparison/lib/add-file-panel/add-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/upload-file-panel/upload-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/models.ts","ng://@groupdocs.examples.angular/comparison/lib/differences.service.ts","ng://@groupdocs.examples.angular/comparison/lib/difference/difference.component.ts","ng://@groupdocs.examples.angular/comparison/lib/difference-highlight/difference-highlight.component.ts","ng://@groupdocs.examples.angular/comparison/lib/result-document/result-document.component.ts","ng://@groupdocs.examples.angular/comparison/lib/differences/differences.component.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","ComparisonConfig","ComparisonConfigService","_http","_config","_comparisonConfig","BehaviorSubject","_updatedConfig","asObservable","defineProperty","load","_this","Promise","resolve","reject","configEndpoint","getConfigEndpoint","Api","COMPARISON_APP","get","httpOptionsJson","toPromise","then","response","comparisonConfig","next","catch","JSON","stringify","Injectable","args","providedIn","HttpClient","ConfigService","ComparisonService","loadFiles","path","post","getComparisonApiEndpoint","LOAD_FILE_TREE","getFormats","LOAD_FORMATS","loadFile","credentials","LOAD_DOCUMENT_DESCRIPTION","upload","file","url","rewrite","formData","FormData","append","String","UPLOAD_DOCUMENTS","save","SAVE_FILE","getDownloadUrl","DOWNLOAD_DOCUMENTS","guid","loadPage","page","LOAD_DOCUMENT_PAGE","password","compare","arr","COMPARE_FILES","guids","Files","FIRST","SECOND","active","ComparisonAppComponent","_comparisonService","configService","uploadFilesService","pagePreloadService","_modalService","_tabActivatorService","_elementRef","files","browseFilesModal","CommonModals","BrowseFiles","Map","first","second","firstFileName","undefined","secondFileName","loadingFirstPanel","loadingSecondPanel","countPages","filesTab","resultTab","activeTab","resultTabDisabled","updatedConfig","subscribe","config","checkPreload","preloadResultPageCount","uploadsChange","uploads","activePanel","setLoading","i","length","item","rewriteConfig","obj","getFile","selectDir","activeTabChange","tabId","panel","flag","$event","nameExt","split","pop","filter","value","directory","selectFile","modalId","param","close","clearData","set","pages","preloadPages","updateFileNames","clearFile","delete","result","changeActiveTab","size","start","end","this_1","getFirstFileName","getSecondFileName","fileCredentials","replace","data","push","isZeroBasedPageId","changes","find","change","pageInfo","id","forEach","generateRandomInteger","zeroBasedId","normalized","x","box","width","y","height","err","_p8","s","Math","random","toString","substr","download","window","location","assign","hideSidePanel","Component","selector","template","UploadFilesService","PagePreloadService","ModalService","TabActivatorService","ElementRef","States","Empty","Opened","AddFilePanelComponent","_excMessageService","EventEmitter","urlForUpload","cleanPanel","state","uploadDisabled","ngOnInit","getFormatIcon","FileUtil","fileName","icon","openModal","emit","open","isEmpty","cleanFile","uploadUrl","startsWith","ErrorMessage","changeMessage","checkDisabled","ngOnChanges","ExceptionMessageService","Input","Output","UploadFilePanelComponent","_uploadService","dropped","ComparedPageModel","tslib_1.__extends","PageModel","DifferencesService","_activeChange","activeChange","setActiveChange","DifferenceComponent","changeService","changesService","activeID","getRgbaColor","red","green","blue","alpha","DifferenceHighlightComponent","event","highlight","ResultDocumentComponent","zoomService","windowService","_super","call","providers","ZoomService","viewProviders","ZoomDirective","WindowService","DocumentComponent","DifferencesComponent","navigateService","highlightDifference","stopPropagation","navigateTo","NavigateService","initializeApp","comparisonConfigService","setupLoadingInterceptor","service","LoadingMaskInterceptorService","ComparisonModule","library","add","fas","far","forRoot","apiEndpoint","DEFAULT_API_ENDPOINT","ngModule","NgModule","declarations","imports","BrowserModule","CommonComponentsModule","HttpClientModule","FontAwesomeModule","ClickOutsideModule","exports","provide","APP_INITIALIZER","useFactory","deps","multi","HTTP_INTERCEPTORS","useClass","ErrorInterceptorService","LoadingMaskService"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export class ComparisonConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n preloadResultPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonConfigService {\n private _comparisonConfig: BehaviorSubject = new BehaviorSubject(new ComparisonConfig());\n private _updatedConfig: Observable = this._comparisonConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.COMPARISON_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ComparisonConfig) => {\n const comparisonConfig = response;\n this._comparisonConfig.next(comparisonConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load comparison config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getComparisonApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getComparisonApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?guid=' + credentials.guid;\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n compare(arr: FileCredentials[]) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.COMPARE_FILES, {'guids': arr}, Api.httpOptionsJson);\n }\n}\n","import {Component, ElementRef} from '@angular/core';\nimport * as jquery from 'jquery';\nimport {\n CommonModals,\n FileCredentials,\n FileDescription,\n FileModel,\n ModalService, PageModel, PagePreloadService, TabActivatorService, UploadFilesService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {ComparisonService} from \"./comparison.service\";\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {CompareResult} from \"./models\";\n\nconst $ = jquery;\n\nexport class Files {\n static FIRST = 'first';\n static SECOND = 'second';\n}\n\nexport class Highlight {\n id: string;\n active = false;\n}\n\n@Component({\n selector: 'gd-comparison',\n templateUrl: './comparison-app.component.html',\n styleUrls: ['./comparison-app.component.less']\n})\nexport class ComparisonAppComponent {\n files: FileModel[] = [];\n browseFilesModal = CommonModals.BrowseFiles;\n credentials: Map = new Map();\n file: Map = new Map();\n comparisonConfig: ComparisonConfig;\n activePanel: string;\n first = Files.FIRST;\n second = Files.SECOND;\n firstFileName: string = undefined;\n secondFileName: string = undefined;\n loadingFirstPanel = false;\n loadingSecondPanel = false;\n countPages = 0;\n result: CompareResult;\n filesTab = 'files';\n resultTab = 'result';\n activeTab = this.filesTab;\n resultTabDisabled = true;\n\n constructor(private _comparisonService: ComparisonService,\n private configService: ComparisonConfigService,\n uploadFilesService: UploadFilesService,\n pagePreloadService: PagePreloadService,\n private _modalService: ModalService,\n private _tabActivatorService: TabActivatorService,\n private _elementRef: ElementRef) {\n configService.updatedConfig.subscribe((config) => {\n this.comparisonConfig = config;\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.comparisonConfig.preloadResultPageCount !== 0) {\n this.checkPreload(this.first, page);\n this.checkPreload(this.second, page);\n }\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n const active = this.activePanel;\n this.setLoading(active, true);\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._comparisonService.upload(uploads.item(i), '', this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n }\n });\n\n _tabActivatorService.activeTabChange.subscribe((tabId: string) => {\n this.activeTab = tabId;\n });\n }\n\n private setLoading(panel: string, flag: boolean) {\n if (panel === this.first) {\n this.loadingFirstPanel = flag;\n } else {\n this.loadingSecondPanel = flag;\n }\n }\n\n get rewriteConfig(): boolean {\n return this.comparisonConfig ? this.comparisonConfig.rewrite : true;\n }\n\n selectDir($event: string) {\n this._comparisonService.loadFiles($event).subscribe((files: FileModel[]) => {\n let nameExt: string;\n if (this.credentials.get(this.first)) {\n nameExt = this.credentials.get(this.first).guid.split('.').pop();\n } else if (this.credentials.get(this.second)) {\n nameExt = this.credentials.get(this.second).guid.split('.').pop();\n }\n\n if (nameExt) {\n files = files.filter(function (value) {\n return value.directory || value.guid.split('.').pop() === nameExt;\n });\n }\n this.files = files || [];\n });\n }\n\n selectFile($event: string, password: string, modalId: string, param: string) {\n this.setLoading(param, true);\n this.getFile($event, password, param);\n this.selectDir('');\n this._modalService.close(modalId);\n this.clearData(param);\n }\n\n private getFile($event: string, password: string, param: string) {\n const credentials = {guid: $event, password: password};\n this.credentials.set(param, credentials);\n this._comparisonService.loadFile(credentials).subscribe((file: FileDescription) => {\n this.file.set(param, file);\n if (file) {\n const preloadResultPageCount = this.comparisonConfig.preloadResultPageCount;\n this.countPages = file.pages ? file.pages.length : 0;\n if (preloadResultPageCount > 0) {\n this.preloadPages(param, 1, preloadResultPageCount > this.countPages ? this.countPages : preloadResultPageCount);\n }\n }\n this.updateFileNames();\n this.setLoading(param, false);\n }\n );\n }\n\n clearFile(param: string) {\n this.clearData(param);\n this.credentials.delete(param);\n this.result = null;\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n private clearData(param) {\n if (!this.file || !this.file.size) {\n return;\n }\n this.file.delete(param);\n if (param === this.first) {\n this.firstFileName = undefined;\n } else {\n this.secondFileName = undefined;\n }\n }\n\n preloadPages(param: string, start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._comparisonService.loadPage(this.credentials.get(param), i).subscribe((page: PageModel) => {\n this.file.get(param).pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n const active = this.activePanel;\n this._comparisonService.upload(null, $event, this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n\n updateFileNames() {\n this.firstFileName = this.getFirstFileName();\n this.secondFileName = this.getSecondFileName();\n }\n\n getSecondFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.second) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n getFirstFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.first) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n private checkPreload(panel: string, page: number) {\n if (!this.file.get(panel)) {\n return\n }\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.get(panel).pages[i - 1].data) {\n this.preloadPages(panel, i, i);\n }\n }\n }\n\n compare() {\n if (this.credentials.size !== 2) {\n return;\n }\n this.resultTabDisabled = false;\n const arr = [];\n arr.push(this.credentials.get(this.first));\n arr.push(this.credentials.get(this.second));\n this._comparisonService.compare(arr).subscribe((result: CompareResult) => {\n this.result = result;\n\n const isZeroBasedPageId = this.result.changes.find((change) => change.pageInfo.id === 0);\n\n this.result.changes.forEach( (change) => {\n change.id = this.generateRandomInteger();\n const zeroBasedId = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n change.pageInfo.id = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n if(!this.result.pages[zeroBasedId].changes){\n this.result.pages[zeroBasedId].changes = [];\n }\n this.result.pages[zeroBasedId].changes.push(change);\n change.normalized = {\n x : change.box.x * 100 / change.pageInfo.width,\n y : change.box.y * 100 / change.pageInfo.height,\n width: change.box.width * 100 / change.pageInfo.width,\n height: change.box.height * 100 / change.pageInfo.height,\n };\n });\n }, (err => {\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }));\n this._tabActivatorService.changeActiveTab(this.resultTab);\n }\n\n generateRandomInteger() {\n function _p8(s) {\n const p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\n return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\n }\n return _p8(null) + _p8(true) + _p8(true) + _p8(null);\n }\n\n download() {\n if (!this.result) {\n return;\n }\n const credentials = {'guid': this.result.guid, 'password': ''};\n window.location.assign(this._comparisonService.getDownloadUrl(credentials));\n }\n\n hideSidePanel($event) {\n this.activeTab = $event ? this.filesTab : this.resultTab;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n\n\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileUtil,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\n\nexport class States {\n static Empty = 'empty';\n static Opened = 'opened';\n}\n\n@Component({\n selector: 'gd-add-file-panel',\n templateUrl: './add-file-panel.component.html',\n styleUrls: ['./add-file-panel.component.less']\n})\nexport class AddFilePanelComponent implements OnInit, OnChanges {\n @Input() panel: string;\n @Output() active = new EventEmitter();\n @Output() urlForUpload = new EventEmitter();\n @Output() cleanPanel = new EventEmitter();\n state = States.Empty;\n @Input() fileName: string;\n uploadDisabled = true;\n\n constructor(private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n ngOnInit() {\n }\n\n getFormatIcon() {\n return FileUtil.find(this.fileName, false).icon;\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n isEmpty() {\n return this.state === States.Empty;\n }\n\n cleanFile() {\n this.active.emit(this.panel);\n this.cleanPanel.emit(true);\n }\n\n uploadUrl(url: string) {\n if(this.uploadDisabled){\n return\n }\n if (url && (url.startsWith('http') || url.startsWith('file') || url.startsWith('ftp'))) {\n this.active.emit(this.panel);\n this.urlForUpload.emit(url);\n } else {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"Wrong url\");\n }\n }\n\n checkDisabled(url: string) {\n this.uploadDisabled = url ? url.length === 0 : true;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.fileName) {\n this.state = States.Opened;\n } else {\n this.state = States.Empty;\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {CommonModals, ModalService, UploadFilesService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-upload-file-panel',\n templateUrl: './upload-file-panel.component.html',\n styleUrls: ['./upload-file-panel.component.less']\n})\nexport class UploadFilePanelComponent implements OnInit {\n\n @Input() panel: string;\n @Output() active = new EventEmitter();\n\n constructor(private _uploadService: UploadFilesService,\n private _modalService: ModalService) {\n }\n\n ngOnInit() {\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n dropped($event) {\n if ($event) {\n this.active.emit(this.panel);\n }\n }\n}\n","import {PageModel} from \"@groupdocs.examples.angular/common-components\";\n\nexport class ComparedPageModel extends PageModel{\n changes: ChangeInfo[]\n}\n\nexport class CompareResult {\n changes: ChangeInfo[];\n pages: ComparedPageModel[];\n guid: string;\n}\n\nexport class ChangeInfo {\n pageInfo: PageInfo;\n text: string;\n type: number;\n box: Rectangle;\n id: string;\n styleChanges: StyleChange[];\n normalized: Rectangle;\n active: boolean;\n}\n\nexport class StyleChange {\n changedProperty: string;\n newValue: string;\n oldValue: string;\n}\n\nexport class Rectangle {\n x: number;\n y: number;\n width: number;\n height: number\n}\n\nexport class PageInfo {\n id: number;\n width: number;\n height: number;\n changes: ChangeInfo[];\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DifferencesService {\n\n private _activeChange = new BehaviorSubject(null);\n activeChange = this._activeChange.asObservable();\n\n constructor() {\n }\n\n setActiveChange(id : string){\n this._activeChange.next(id);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo, StyleChange } from '../models';\nimport { DifferencesService } from '../differences.service';\n\n@Component({\n selector: 'gd-comparison-difference',\n templateUrl: './difference.component.html',\n styleUrls: ['./difference.component.less']\n})\nexport class DifferenceComponent implements OnInit {\n @Input() change: ChangeInfo;\n active: boolean;\n\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n\n ngOnInit() {\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID)\n }\n\n getRgbaColor(value){\n return `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport {ChangeInfo} from \"../models\";\nimport { DifferencesService } from '../differences.service';\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Component({\n selector: 'gd-difference-highlight',\n templateUrl: './difference-highlight.component.html',\n styleUrls: ['./difference-highlight.component.less']\n})\nexport class DifferenceHighlightComponent implements OnInit{\n @Input() change: ChangeInfo;\n @Input() active: boolean;\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n ngOnInit(){\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID);\n }\n\n close(event: Event){\n this.changesService.setActiveChange(null);\n }\n\n highlight(id : string){\n this.changesService.setActiveChange(id);\n }\n}\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { DocumentComponent, WindowService } from '@groupdocs.examples.angular/common-components';\nimport {ZoomService,ZoomDirective} from '@groupdocs.examples.angular/common-components';\nimport * as jquery from 'jquery';\nimport { DifferencesService } from '../differences.service';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-result-document',\n templateUrl: './result-document.component.html',\n styleUrls: ['./result-document.component.less'], // @TODO: this is replicated from base component until styles inheritance supported added to angular\n providers : [ZoomService],\n viewProviders : [ZoomDirective]\n})\nexport class ResultDocumentComponent extends DocumentComponent implements OnInit {\n private changesService : DifferencesService;\n\n constructor(_elementRef: ElementRef,\n zoomService: ZoomService,\n changeService : DifferencesService,\n windowService: WindowService) {\n super(_elementRef, zoomService, windowService);\n this.changesService = changeService;\n }\n\n close(){\n this.changesService.setActiveChange(null)\n }\n\n ngOnInit(){\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo } from './../models';\nimport { DifferencesService } from '../differences.service';\nimport { NavigateService } from '@groupdocs.examples.angular/common-components';\n\n@Component({\n selector: 'gd-differences',\n templateUrl: './differences.component.html',\n styleUrls: ['./differences.component.less']\n})\nexport class DifferencesComponent implements OnInit {\n\n @Input() changes : ChangeInfo[] = [];\n private changesService : DifferencesService;\n private navigateService;\n\n constructor(changeService : DifferencesService,navigateService: NavigateService,) {\n this.changesService = changeService;\n this.navigateService = navigateService;\n }\n\n ngOnInit() {}\n\n\n highlightDifference(id: string,page: number,event : MouseEvent){\n event.stopPropagation();\n this.changesService.setActiveChange(id);\n this.navigateService.navigateTo(page+1);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport {APP_INITIALIZER, ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ComparisonAppComponent} from './comparison-app.component';\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport {fas} from '@fortawesome/free-solid-svg-icons';\nimport {far} from '@fortawesome/free-regular-svg-icons';\nimport {ComparisonService} from \"./comparison.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService,\n Api\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {AddFilePanelComponent} from './add-file-panel/add-file-panel.component';\nimport {UploadFilePanelComponent} from './upload-file-panel/upload-file-panel.component';\nimport {DifferenceComponent} from './difference/difference.component';\nimport {DifferenceHighlightComponent} from './difference-highlight/difference-highlight.component';\nimport { ResultDocumentComponent } from './result-document/result-document.component';\nimport { DifferencesComponent } from './differences/differences.component';\nimport { DifferencesService } from './differences.service';\nimport { ClickOutsideModule } from 'ng-click-outside';\n\nexport function initializeApp(comparisonConfigService: ComparisonConfigService) {\n const result = () => comparisonConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations: [ComparisonAppComponent, AddFilePanelComponent, UploadFilePanelComponent, DifferenceComponent, DifferenceHighlightComponent, ResultDocumentComponent, DifferencesComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule,\n ClickOutsideModule\n ],\n exports: [\n ComparisonAppComponent,\n CommonComponentsModule,\n ResultDocumentComponent,\n DifferencesComponent\n ],\n providers: [\n ComparisonService,\n ConfigService,\n DifferencesService,\n ComparisonConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ComparisonConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class ComparisonModule {\n constructor() {\n library.add(fas, far);\n }\n\n static forRoot(apiEndpoint: string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint;\n return {\n ngModule: ComparisonModule\n };\n }\n}\n"]} \ No newline at end of file diff --git a/dist/libs/comparison/esm2015/lib/comparison-app.component.js b/dist/libs/comparison/esm2015/lib/comparison-app.component.js index 0049ef0c4..1adce5578 100644 --- a/dist/libs/comparison/esm2015/lib/comparison-app.component.js +++ b/dist/libs/comparison/esm2015/lib/comparison-app.component.js @@ -394,7 +394,7 @@ export class ComparisonAppComponent { ComparisonAppComponent.decorators = [ { type: Component, args: [{ selector: 'gd-comparison', - template: "\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n", + template: "\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n", styles: ["@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.loader{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.upload-compare-file{height:100%;width:50%;border-right:1px solid #ccc;display:flex;align-content:center;flex-direction:column;text-align:center;flex-grow:0}.open-file-panel{display:flex;width:100%}.files-panel{background-color:#e7e7e7;display:flex;flex-direction:row;width:100%;height:100%}.result-panel{background-color:#e7e7e7;width:100%;height:100%;display:flex;align-content:center;flex-direction:column;justify-content:center;text-align:center}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:100%}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{background-color:#3e4e5a;width:100%}.row{display:flex;height:inherit}.column{width:100%}.tabs-wrapper{display:flex;justify-self:flex-end;align-self:flex-end;width:100%;justify-content:flex-end}.tabs{display:flex;margin-right:30px;align-items:flex-end;justify-content:flex-end}@media (max-width:1037px){.files-panel{flex-direction:column}.files-panel .upload-compare-file{width:100%;border-bottom:1px solid #ccc}/deep/ .gd-side-panel-wrapper{height:50%!important;top:inherit!important;bottom:0!important}}"] }] } ]; @@ -471,4 +471,4 @@ if (false) { */ ComparisonAppComponent.prototype._elementRef; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyaXNvbi1hcHAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbXBhcmlzb24vIiwic291cmNlcyI6WyJsaWIvY29tcGFyaXNvbi1hcHAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsWUFBWSxFQUlaLFlBQVksRUFBYSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFDckYsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7TUFJakQsQ0FBQyxHQUFHLE1BQU07QUFFaEIsTUFBTSxPQUFPLEtBQUs7O0FBQ1QsV0FBSyxHQUFHLE9BQU8sQ0FBQztBQUNoQixZQUFNLEdBQUcsUUFBUSxDQUFDOzs7SUFEekIsWUFBdUI7O0lBQ3ZCLGFBQXlCOztBQUczQixNQUFNLE9BQU8sU0FBUztJQUF0QjtRQUVFLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUFBOzs7SUFGQyx1QkFBVzs7SUFDWCwyQkFBZTs7QUFRakIsTUFBTSxPQUFPLHNCQUFzQjs7Ozs7Ozs7OztJQW9CakMsWUFBb0Isa0JBQXFDLEVBQ3JDLGFBQXNDLEVBQzlDLGtCQUFzQyxFQUN0QyxrQkFBc0MsRUFDOUIsYUFBMkIsRUFDM0Isb0JBQXlDLEVBQ3pDLFdBQW9DO1FBTnBDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBR3RDLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLHlCQUFvQixHQUFwQixv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QW1DOztJQUNuQyw2Q0FBb0I7O0lBQ3BCLHVDQUFvQjs7SUFDcEIsd0NBQXNCOztJQUN0QiwrQ0FBa0M7O0lBQ2xDLGdEQUFtQzs7SUFDbkMsbURBQTBCOztJQUMxQixvREFBMkI7O0lBQzNCLDRDQUFlOztJQUNmLHdDQUFzQjs7SUFDdEIsMENBQW1COztJQUNuQiwyQ0FBcUI7O0lBQ3JCLDJDQUEwQjs7SUFDMUIsbURBQXlCOzs7OztJQUViLG9EQUE2Qzs7Ozs7SUFDN0MsK0NBQThDOzs7OztJQUc5QywrQ0FBbUM7Ozs7O0lBQ25DLHNEQUFpRDs7Ozs7SUFDakQsNkNBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMganF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQge1xuICBDb21tb25Nb2RhbHMsXG4gIEZpbGVDcmVkZW50aWFscyxcbiAgRmlsZURlc2NyaXB0aW9uLFxuICBGaWxlTW9kZWwsXG4gIE1vZGFsU2VydmljZSwgUGFnZU1vZGVsLCBQYWdlUHJlbG9hZFNlcnZpY2UsIFRhYkFjdGl2YXRvclNlcnZpY2UsIFVwbG9hZEZpbGVzU2VydmljZVxufSBmcm9tIFwiQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzXCI7XG5pbXBvcnQge0NvbXBhcmlzb25Db25maWdTZXJ2aWNlfSBmcm9tIFwiLi9jb21wYXJpc29uLWNvbmZpZy5zZXJ2aWNlXCI7XG5pbXBvcnQge0NvbXBhcmlzb25TZXJ2aWNlfSBmcm9tIFwiLi9jb21wYXJpc29uLnNlcnZpY2VcIjtcbmltcG9ydCB7Q29tcGFyaXNvbkNvbmZpZ30gZnJvbSBcIi4vY29tcGFyaXNvbi1jb25maWdcIjtcbmltcG9ydCB7Q29tcGFyZVJlc3VsdH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5cbmNvbnN0ICQgPSBqcXVlcnk7XG5cbmV4cG9ydCBjbGFzcyBGaWxlcyB7XG4gIHN0YXRpYyBGSVJTVCA9ICdmaXJzdCc7XG4gIHN0YXRpYyBTRUNPTkQgPSAnc2Vjb25kJztcbn1cblxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodCB7XG4gIGlkOiBzdHJpbmc7XG4gIGFjdGl2ZSA9IGZhbHNlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZC1jb21wYXJpc29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBhcmlzb24tYXBwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tcGFyaXNvbi1hcHAuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb21wYXJpc29uQXBwQ29tcG9uZW50IHtcbiAgZmlsZXM6IEZpbGVNb2RlbFtdID0gW107XG4gIGJyb3dzZUZpbGVzTW9kYWwgPSBDb21tb25Nb2RhbHMuQnJvd3NlRmlsZXM7XG4gIGNyZWRlbnRpYWxzOiBNYXA8c3RyaW5nLCBGaWxlQ3JlZGVudGlhbHM+ID0gbmV3IE1hcDxzdHJpbmcsIEZpbGVDcmVkZW50aWFscz4oKTtcbiAgZmlsZTogTWFwPHN0cmluZywgRmlsZURlc2NyaXB0aW9uPiA9IG5ldyBNYXA8c3RyaW5nLCBGaWxlRGVzY3JpcHRpb24+KCk7XG4gIGNvbXBhcmlzb25Db25maWc6IENvbXBhcmlzb25Db25maWc7XG4gIGFjdGl2ZVBhbmVsOiBzdHJpbmc7XG4gIGZpcnN0ID0gRmlsZXMuRklSU1Q7XG4gIHNlY29uZCA9IEZpbGVzLlNFQ09ORDtcbiAgZmlyc3RGaWxlTmFtZTogc3RyaW5nID0gdW5kZWZpbmVkO1xuICBzZWNvbmRGaWxlTmFtZTogc3RyaW5nID0gdW5kZWZpbmVkO1xuICBsb2FkaW5nRmlyc3RQYW5lbCA9IGZhbHNlO1xuICBsb2FkaW5nU2Vjb25kUGFuZWwgPSBmYWxzZTtcbiAgY291bnRQYWdlcyA9IDA7XG4gIHJlc3VsdDogQ29tcGFyZVJlc3VsdDtcbiAgZmlsZXNUYWIgPSAnZmlsZXMnO1xuICByZXN1bHRUYWIgPSAncmVzdWx0JztcbiAgYWN0aXZlVGFiID0gdGhpcy5maWxlc1RhYjtcbiAgcmVzdWx0VGFiRGlzYWJsZWQgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbXBhcmlzb25TZXJ2aWNlOiBDb21wYXJpc29uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb21wYXJpc29uQ29uZmlnU2VydmljZSxcbiAgICAgICAgICAgICAgdXBsb2FkRmlsZXNTZXJ2aWNlOiBVcGxvYWRGaWxlc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHBhZ2VQcmVsb2FkU2VydmljZTogUGFnZVByZWxvYWRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdGFiQWN0aXZhdG9yU2VydmljZTogVGFiQWN0aXZhdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBjb25maWdTZXJ2aWNlLnVwZGF0ZWRDb25maWcuc3Vic2NyaWJlKChjb25maWcpID0+IHtcbiAgICAgIHRoaXMuY29tcGFyaXNvbkNvbmZpZyA9IGNvbmZpZztcbiAgICB9KTtcblxuICAgIHBhZ2VQcmVsb2FkU2VydmljZS5jaGVja1ByZWxvYWQuc3Vic2NyaWJlKChwYWdlOiBudW1iZXIpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbXBhcmlzb25Db25maWcucHJlbG9hZFJlc3VsdFBhZ2VDb3VudCAhPT0gMCkge1xuICAgICAgICB0aGlzLmNoZWNrUHJlbG9hZCh0aGlzLmZpcnN0LCBwYWdlKTtcbiAgICAgICAgdGhpcy5jaGVja1ByZWxvYWQodGhpcy5zZWNvbmQsIHBhZ2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdXBsb2FkRmlsZXNTZXJ2aWNlLnVwbG9hZHNDaGFuZ2Uuc3Vic2NyaWJlKCh1cGxvYWRzKSA9PiB7XG4gICAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZVBhbmVsO1xuICAgICAgdGhpcy5zZXRMb2FkaW5nKGFjdGl2ZSwgdHJ1ZSk7XG4gICAgICBpZiAodXBsb2Fkcykge1xuICAgICAgICBsZXQgaTogbnVtYmVyO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdXBsb2Fkcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRoaXMuX2NvbXBhcmlzb25TZXJ2aWNlLnVwbG9hZCh1cGxvYWRzLml0ZW0oaSksICcnLCB0aGlzLnJld3JpdGVDb25maWcpLnN1YnNjcmliZSgob2JqOiBGaWxlQ3JlZGVudGlhbHMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ2V0RmlsZShvYmouZ3VpZCwgJycsIGFjdGl2ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdERpcignJyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF90YWJBY3RpdmF0b3JTZXJ2aWNlLmFjdGl2ZVRhYkNoYW5nZS5zdWJzY3JpYmUoKHRhYklkOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiSWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldExvYWRpbmcocGFuZWw6IHN0cmluZywgZmxhZzogYm9vbGVhbikge1xuICAgIGlmIChwYW5lbCA9PT0gdGhpcy5maXJzdCkge1xuICAgICAgdGhpcy5sb2FkaW5nRmlyc3RQYW5lbCA9IGZsYWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZGluZ1NlY29uZFBhbmVsID0gZmxhZztcbiAgICB9XG4gIH1cblxuICBnZXQgcmV3cml0ZUNvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb21wYXJpc29uQ29uZmlnID8gdGhpcy5jb21wYXJpc29uQ29uZmlnLnJld3JpdGUgOiB0cnVlO1xuICB9XG5cbiAgc2VsZWN0RGlyKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29tcGFyaXNvblNlcnZpY2UubG9hZEZpbGVzKCRldmVudCkuc3Vic2NyaWJlKChmaWxlczogRmlsZU1vZGVsW10pID0+IHtcbiAgICAgIGxldCBuYW1lRXh0OiBzdHJpbmc7XG4gICAgICBpZiAodGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5maXJzdCkpIHtcbiAgICAgICAgbmFtZUV4dCA9IHRoaXMuY3JlZGVudGlhbHMuZ2V0KHRoaXMuZmlyc3QpLmd1aWQuc3BsaXQoJy4nKS5wb3AoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5zZWNvbmQpKSB7XG4gICAgICAgIG5hbWVFeHQgPSB0aGlzLmNyZWRlbnRpYWxzLmdldCh0aGlzLnNlY29uZCkuZ3VpZC5zcGxpdCgnLicpLnBvcCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAobmFtZUV4dCkge1xuICAgICAgICBmaWxlcyA9IGZpbGVzLmZpbHRlcihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUuZGlyZWN0b3J5IHx8IHZhbHVlLmd1aWQuc3BsaXQoJy4nKS5wb3AoKSA9PT0gbmFtZUV4dDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLmZpbGVzID0gZmlsZXMgfHwgW107XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RGaWxlKCRldmVudDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBtb2RhbElkOiBzdHJpbmcsIHBhcmFtOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvYWRpbmcocGFyYW0sIHRydWUpO1xuICAgIHRoaXMuZ2V0RmlsZSgkZXZlbnQsIHBhc3N3b3JkLCBwYXJhbSk7XG4gICAgdGhpcy5zZWxlY3REaXIoJycpO1xuICAgIHRoaXMuX21vZGFsU2VydmljZS5jbG9zZShtb2RhbElkKTtcbiAgICB0aGlzLmNsZWFyRGF0YShwYXJhbSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbGUoJGV2ZW50OiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIHBhcmFtOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtndWlkOiAkZXZlbnQsIHBhc3N3b3JkOiBwYXNzd29yZH07XG4gICAgdGhpcy5jcmVkZW50aWFscy5zZXQocGFyYW0sIGNyZWRlbnRpYWxzKTtcbiAgICB0aGlzLl9jb21wYXJpc29uU2VydmljZS5sb2FkRmlsZShjcmVkZW50aWFscykuc3Vic2NyaWJlKChmaWxlOiBGaWxlRGVzY3JpcHRpb24pID0+IHtcbiAgICAgICAgdGhpcy5maWxlLnNldChwYXJhbSwgZmlsZSk7XG4gICAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgICAgY29uc3QgcHJlbG9hZFJlc3VsdFBhZ2VDb3VudCA9IHRoaXMuY29tcGFyaXNvbkNvbmZpZy5wcmVsb2FkUmVzdWx0UGFnZUNvdW50O1xuICAgICAgICAgIHRoaXMuY291bnRQYWdlcyA9IGZpbGUucGFnZXMgPyBmaWxlLnBhZ2VzLmxlbmd0aCA6IDA7XG4gICAgICAgICAgaWYgKHByZWxvYWRSZXN1bHRQYWdlQ291bnQgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnByZWxvYWRQYWdlcyhwYXJhbSwgMSwgcHJlbG9hZFJlc3VsdFBhZ2VDb3VudCA+IHRoaXMuY291bnRQYWdlcyA/IHRoaXMuY291bnRQYWdlcyA6IHByZWxvYWRSZXN1bHRQYWdlQ291bnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUZpbGVOYW1lcygpO1xuICAgICAgICB0aGlzLnNldExvYWRpbmcocGFyYW0sIGZhbHNlKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY2xlYXJGaWxlKHBhcmFtOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsZWFyRGF0YShwYXJhbSk7XG4gICAgdGhpcy5jcmVkZW50aWFscy5kZWxldGUocGFyYW0pO1xuICAgIHRoaXMucmVzdWx0ID0gbnVsbDtcbiAgICB0aGlzLnJlc3VsdFRhYkRpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLl90YWJBY3RpdmF0b3JTZXJ2aWNlLmNoYW5nZUFjdGl2ZVRhYih0aGlzLmZpbGVzVGFiKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJEYXRhKHBhcmFtKSB7XG4gICAgaWYgKCF0aGlzLmZpbGUgfHwgIXRoaXMuZmlsZS5zaXplKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZmlsZS5kZWxldGUocGFyYW0pO1xuICAgIGlmIChwYXJhbSA9PT0gdGhpcy5maXJzdCkge1xuICAgICAgdGhpcy5maXJzdEZpbGVOYW1lID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlY29uZEZpbGVOYW1lID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByZWxvYWRQYWdlcyhwYXJhbTogc3RyaW5nLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xuICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8PSBlbmQ7IGkrKykge1xuICAgICAgdGhpcy5fY29tcGFyaXNvblNlcnZpY2UubG9hZFBhZ2UodGhpcy5jcmVkZW50aWFscy5nZXQocGFyYW0pLCBpKS5zdWJzY3JpYmUoKHBhZ2U6IFBhZ2VNb2RlbCkgPT4ge1xuICAgICAgICB0aGlzLmZpbGUuZ2V0KHBhcmFtKS5wYWdlc1tpIC0gMV0gPSBwYWdlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdXBsb2FkKCRldmVudDogc3RyaW5nKSB7XG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5hY3RpdmVQYW5lbDtcbiAgICB0aGlzLl9jb21wYXJpc29uU2VydmljZS51cGxvYWQobnVsbCwgJGV2ZW50LCB0aGlzLnJld3JpdGVDb25maWcpLnN1YnNjcmliZSgob2JqOiBGaWxlQ3JlZGVudGlhbHMpID0+IHtcbiAgICAgIHRoaXMuZ2V0RmlsZShvYmouZ3VpZCwgJycsIGFjdGl2ZSk7XG4gICAgICB0aGlzLnNlbGVjdERpcignJyk7XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVGaWxlTmFtZXMoKSB7XG4gICAgdGhpcy5maXJzdEZpbGVOYW1lID0gdGhpcy5nZXRGaXJzdEZpbGVOYW1lKCk7XG4gICAgdGhpcy5zZWNvbmRGaWxlTmFtZSA9IHRoaXMuZ2V0U2Vjb25kRmlsZU5hbWUoKTtcbiAgfVxuXG4gIGdldFNlY29uZEZpbGVOYW1lKCkge1xuICAgIGNvbnN0IGZpbGVDcmVkZW50aWFscyA9IHRoaXMuY3JlZGVudGlhbHMgPyB0aGlzLmNyZWRlbnRpYWxzLmdldCh0aGlzLnNlY29uZCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGZpbGVDcmVkZW50aWFscyA/IGZpbGVDcmVkZW50aWFscy5ndWlkLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKSA6ICcnO1xuICB9XG5cbiAgZ2V0Rmlyc3RGaWxlTmFtZSgpIHtcbiAgICBjb25zdCBmaWxlQ3JlZGVudGlhbHMgPSB0aGlzLmNyZWRlbnRpYWxzID8gdGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5maXJzdCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGZpbGVDcmVkZW50aWFscyA/IGZpbGVDcmVkZW50aWFscy5ndWlkLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKSA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1ByZWxvYWQocGFuZWw6IHN0cmluZywgcGFnZTogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLmZpbGUuZ2V0KHBhbmVsKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGZvciAobGV0IGkgPSBwYWdlOyBpIDwgcGFnZSArIDI7IGkrKykge1xuICAgICAgaWYgKGkgPiAwICYmIGkgPD0gdGhpcy5jb3VudFBhZ2VzICYmICF0aGlzLmZpbGUuZ2V0KHBhbmVsKS5wYWdlc1tpIC0gMV0uZGF0YSkge1xuICAgICAgICB0aGlzLnByZWxvYWRQYWdlcyhwYW5lbCwgaSwgaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29tcGFyZSgpIHtcbiAgICBpZiAodGhpcy5jcmVkZW50aWFscy5zaXplICE9PSAyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVzdWx0VGFiRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBjb25zdCBhcnIgPSBbXTtcbiAgICBhcnIucHVzaCh0aGlzLmNyZWRlbnRpYWxzLmdldCh0aGlzLmZpcnN0KSk7XG4gICAgYXJyLnB1c2godGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5zZWNvbmQpKTtcbiAgICB0aGlzLl9jb21wYXJpc29uU2VydmljZS5jb21wYXJlKGFycikuc3Vic2NyaWJlKChyZXN1bHQ6IENvbXBhcmVSZXN1bHQpID0+IHtcbiAgICAgIHRoaXMucmVzdWx0ID0gcmVzdWx0O1xuXG4gICAgICBjb25zdCBpc1plcm9CYXNlZFBhZ2VJZCA9IHRoaXMucmVzdWx0LmNoYW5nZXMuZmluZCgoY2hhbmdlKSA9PiBjaGFuZ2UucGFnZUluZm8uaWQgPT09IDApO1xuXG4gICAgICB0aGlzLnJlc3VsdC5jaGFuZ2VzLmZvckVhY2goIChjaGFuZ2UpID0+IHtcbiAgICAgICAgY2hhbmdlLmlkID0gdGhpcy5nZW5lcmF0ZVJhbmRvbUludGVnZXIoKTtcbiAgICAgICAgY29uc3QgemVyb0Jhc2VkSWQgPSBpc1plcm9CYXNlZFBhZ2VJZCA/IGNoYW5nZS5wYWdlSW5mby5pZCA6IGNoYW5nZS5wYWdlSW5mby5pZCAtIDE7XG4gICAgICAgIGNoYW5nZS5wYWdlSW5mby5pZCA9IGlzWmVyb0Jhc2VkUGFnZUlkID8gY2hhbmdlLnBhZ2VJbmZvLmlkIDogY2hhbmdlLnBhZ2VJbmZvLmlkIC0gMTtcbiAgICAgICAgaWYoIXRoaXMucmVzdWx0LnBhZ2VzW3plcm9CYXNlZElkXS5jaGFuZ2VzKXtcbiAgICAgICAgICB0aGlzLnJlc3VsdC5wYWdlc1t6ZXJvQmFzZWRJZF0uY2hhbmdlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzdWx0LnBhZ2VzW3plcm9CYXNlZElkXS5jaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgY2hhbmdlLm5vcm1hbGl6ZWQgPSB7XG4gICAgICAgICAgeCA6IGNoYW5nZS5ib3gueCAqIDEwMCAvIGNoYW5nZS5wYWdlSW5mby53aWR0aCxcbiAgICAgICAgICB5IDogY2hhbmdlLmJveC55ICogMTAwIC8gY2hhbmdlLnBhZ2VJbmZvLmhlaWdodCxcbiAgICAgICAgICB3aWR0aDogY2hhbmdlLmJveC53aWR0aCAqIDEwMCAvIGNoYW5nZS5wYWdlSW5mby53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IGNoYW5nZS5ib3guaGVpZ2h0ICogMTAwIC8gY2hhbmdlLnBhZ2VJbmZvLmhlaWdodCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0sIChlcnIgPT4ge1xuICAgICAgdGhpcy5yZXN1bHRUYWJEaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLl90YWJBY3RpdmF0b3JTZXJ2aWNlLmNoYW5nZUFjdGl2ZVRhYih0aGlzLmZpbGVzVGFiKTtcbiAgICB9KSk7XG4gICAgdGhpcy5fdGFiQWN0aXZhdG9yU2VydmljZS5jaGFuZ2VBY3RpdmVUYWIodGhpcy5yZXN1bHRUYWIpO1xuICB9XG5cbiAgZ2VuZXJhdGVSYW5kb21JbnRlZ2VyKCkge1xuICAgIGZ1bmN0aW9uIF9wOChzKSB7XG4gICAgICAgIGNvbnN0IHAgPSAoTWF0aC5yYW5kb20oKS50b1N0cmluZygxNikgKyBcIjAwMDAwMDAwMFwiKS5zdWJzdHIoMiwgOCk7XG4gICAgICAgIHJldHVybiBzID8gXCItXCIgKyBwLnN1YnN0cigwLCA0KSArIFwiLVwiICsgcC5zdWJzdHIoNCwgNCkgOiBwO1xuICAgIH1cbiAgICByZXR1cm4gX3A4KG51bGwpICsgX3A4KHRydWUpICsgX3A4KHRydWUpICsgX3A4KG51bGwpO1xuICB9XG5cbiAgZG93bmxvYWQoKSB7XG4gICAgaWYgKCF0aGlzLnJlc3VsdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHsnZ3VpZCc6IHRoaXMucmVzdWx0Lmd1aWQsICdwYXNzd29yZCc6ICcnfTtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMuX2NvbXBhcmlzb25TZXJ2aWNlLmdldERvd25sb2FkVXJsKGNyZWRlbnRpYWxzKSk7XG4gIH1cblxuICBoaWRlU2lkZVBhbmVsKCRldmVudCkge1xuICAgIHRoaXMuYWN0aXZlVGFiID0gJGV2ZW50ID8gdGhpcy5maWxlc1RhYiA6IHRoaXMucmVzdWx0VGFiO1xuICAgIHRoaXMuX3RhYkFjdGl2YXRvclNlcnZpY2UuY2hhbmdlQWN0aXZlVGFiKHRoaXMuZmlsZXNUYWIpO1xuICB9XG5cblxuXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyaXNvbi1hcHAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbXBhcmlzb24vIiwic291cmNlcyI6WyJsaWIvY29tcGFyaXNvbi1hcHAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsWUFBWSxFQUlaLFlBQVksRUFBYSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFDckYsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7TUFJakQsQ0FBQyxHQUFHLE1BQU07QUFFaEIsTUFBTSxPQUFPLEtBQUs7O0FBQ1QsV0FBSyxHQUFHLE9BQU8sQ0FBQztBQUNoQixZQUFNLEdBQUcsUUFBUSxDQUFDOzs7SUFEekIsWUFBdUI7O0lBQ3ZCLGFBQXlCOztBQUczQixNQUFNLE9BQU8sU0FBUztJQUF0QjtRQUVFLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUFBOzs7SUFGQyx1QkFBVzs7SUFDWCwyQkFBZTs7QUFRakIsTUFBTSxPQUFPLHNCQUFzQjs7Ozs7Ozs7OztJQW9CakMsWUFBb0Isa0JBQXFDLEVBQ3JDLGFBQXNDLEVBQzlDLGtCQUFzQyxFQUN0QyxrQkFBc0MsRUFDOUIsYUFBMkIsRUFDM0Isb0JBQXlDLEVBQ3pDLFdBQW9DO1FBTnBDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBR3RDLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLHlCQUFvQixHQUFwQixv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QW1DOztJQUNuQyw2Q0FBb0I7O0lBQ3BCLHVDQUFvQjs7SUFDcEIsd0NBQXNCOztJQUN0QiwrQ0FBa0M7O0lBQ2xDLGdEQUFtQzs7SUFDbkMsbURBQTBCOztJQUMxQixvREFBMkI7O0lBQzNCLDRDQUFlOztJQUNmLHdDQUFzQjs7SUFDdEIsMENBQW1COztJQUNuQiwyQ0FBcUI7O0lBQ3JCLDJDQUEwQjs7SUFDMUIsbURBQXlCOzs7OztJQUViLG9EQUE2Qzs7Ozs7SUFDN0MsK0NBQThDOzs7OztJQUc5QywrQ0FBbUM7Ozs7O0lBQ25DLHNEQUFpRDs7Ozs7SUFDakQsNkNBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMganF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQge1xuICBDb21tb25Nb2RhbHMsXG4gIEZpbGVDcmVkZW50aWFscyxcbiAgRmlsZURlc2NyaXB0aW9uLFxuICBGaWxlTW9kZWwsXG4gIE1vZGFsU2VydmljZSwgUGFnZU1vZGVsLCBQYWdlUHJlbG9hZFNlcnZpY2UsIFRhYkFjdGl2YXRvclNlcnZpY2UsIFVwbG9hZEZpbGVzU2VydmljZVxufSBmcm9tIFwiQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzXCI7XG5pbXBvcnQge0NvbXBhcmlzb25Db25maWdTZXJ2aWNlfSBmcm9tIFwiLi9jb21wYXJpc29uLWNvbmZpZy5zZXJ2aWNlXCI7XG5pbXBvcnQge0NvbXBhcmlzb25TZXJ2aWNlfSBmcm9tIFwiLi9jb21wYXJpc29uLnNlcnZpY2VcIjtcbmltcG9ydCB7Q29tcGFyaXNvbkNvbmZpZ30gZnJvbSBcIi4vY29tcGFyaXNvbi1jb25maWdcIjtcbmltcG9ydCB7Q29tcGFyZVJlc3VsdH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5cbmNvbnN0ICQgPSBqcXVlcnk7XG5cbmV4cG9ydCBjbGFzcyBGaWxlcyB7XG4gIHN0YXRpYyBGSVJTVCA9ICdmaXJzdCc7XG4gIHN0YXRpYyBTRUNPTkQgPSAnc2Vjb25kJztcbn1cblxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodCB7XG4gIGlkOiBzdHJpbmc7XG4gIGFjdGl2ZSA9IGZhbHNlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZC1jb21wYXJpc29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBhcmlzb24tYXBwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tcGFyaXNvbi1hcHAuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb21wYXJpc29uQXBwQ29tcG9uZW50IHtcbiAgZmlsZXM6IEZpbGVNb2RlbFtdID0gW107XG4gIGJyb3dzZUZpbGVzTW9kYWwgPSBDb21tb25Nb2RhbHMuQnJvd3NlRmlsZXM7XG4gIGNyZWRlbnRpYWxzOiBNYXA8c3RyaW5nLCBGaWxlQ3JlZGVudGlhbHM+ID0gbmV3IE1hcDxzdHJpbmcsIEZpbGVDcmVkZW50aWFscz4oKTtcbiAgZmlsZTogTWFwPHN0cmluZywgRmlsZURlc2NyaXB0aW9uPiA9IG5ldyBNYXA8c3RyaW5nLCBGaWxlRGVzY3JpcHRpb24+KCk7XG4gIGNvbXBhcmlzb25Db25maWc6IENvbXBhcmlzb25Db25maWc7XG4gIGFjdGl2ZVBhbmVsOiBzdHJpbmc7XG4gIGZpcnN0ID0gRmlsZXMuRklSU1Q7XG4gIHNlY29uZCA9IEZpbGVzLlNFQ09ORDtcbiAgZmlyc3RGaWxlTmFtZTogc3RyaW5nID0gdW5kZWZpbmVkO1xuICBzZWNvbmRGaWxlTmFtZTogc3RyaW5nID0gdW5kZWZpbmVkO1xuICBsb2FkaW5nRmlyc3RQYW5lbCA9IGZhbHNlO1xuICBsb2FkaW5nU2Vjb25kUGFuZWwgPSBmYWxzZTtcbiAgY291bnRQYWdlcyA9IDA7XG4gIHJlc3VsdDogQ29tcGFyZVJlc3VsdDtcbiAgZmlsZXNUYWIgPSAnZmlsZXMnO1xuICByZXN1bHRUYWIgPSAncmVzdWx0JztcbiAgYWN0aXZlVGFiID0gdGhpcy5maWxlc1RhYjtcbiAgcmVzdWx0VGFiRGlzYWJsZWQgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbXBhcmlzb25TZXJ2aWNlOiBDb21wYXJpc29uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb21wYXJpc29uQ29uZmlnU2VydmljZSxcbiAgICAgICAgICAgICAgdXBsb2FkRmlsZXNTZXJ2aWNlOiBVcGxvYWRGaWxlc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHBhZ2VQcmVsb2FkU2VydmljZTogUGFnZVByZWxvYWRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdGFiQWN0aXZhdG9yU2VydmljZTogVGFiQWN0aXZhdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBjb25maWdTZXJ2aWNlLnVwZGF0ZWRDb25maWcuc3Vic2NyaWJlKChjb25maWcpID0+IHtcbiAgICAgIHRoaXMuY29tcGFyaXNvbkNvbmZpZyA9IGNvbmZpZztcbiAgICB9KTtcblxuICAgIHBhZ2VQcmVsb2FkU2VydmljZS5jaGVja1ByZWxvYWQuc3Vic2NyaWJlKChwYWdlOiBudW1iZXIpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbXBhcmlzb25Db25maWcucHJlbG9hZFJlc3VsdFBhZ2VDb3VudCAhPT0gMCkge1xuICAgICAgICB0aGlzLmNoZWNrUHJlbG9hZCh0aGlzLmZpcnN0LCBwYWdlKTtcbiAgICAgICAgdGhpcy5jaGVja1ByZWxvYWQodGhpcy5zZWNvbmQsIHBhZ2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdXBsb2FkRmlsZXNTZXJ2aWNlLnVwbG9hZHNDaGFuZ2Uuc3Vic2NyaWJlKCh1cGxvYWRzKSA9PiB7XG4gICAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZVBhbmVsO1xuICAgICAgdGhpcy5zZXRMb2FkaW5nKGFjdGl2ZSwgdHJ1ZSk7XG4gICAgICBpZiAodXBsb2Fkcykge1xuICAgICAgICBsZXQgaTogbnVtYmVyO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdXBsb2Fkcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRoaXMuX2NvbXBhcmlzb25TZXJ2aWNlLnVwbG9hZCh1cGxvYWRzLml0ZW0oaSksICcnLCB0aGlzLnJld3JpdGVDb25maWcpLnN1YnNjcmliZSgob2JqOiBGaWxlQ3JlZGVudGlhbHMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ2V0RmlsZShvYmouZ3VpZCwgJycsIGFjdGl2ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdERpcignJyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF90YWJBY3RpdmF0b3JTZXJ2aWNlLmFjdGl2ZVRhYkNoYW5nZS5zdWJzY3JpYmUoKHRhYklkOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiSWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldExvYWRpbmcocGFuZWw6IHN0cmluZywgZmxhZzogYm9vbGVhbikge1xuICAgIGlmIChwYW5lbCA9PT0gdGhpcy5maXJzdCkge1xuICAgICAgdGhpcy5sb2FkaW5nRmlyc3RQYW5lbCA9IGZsYWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZGluZ1NlY29uZFBhbmVsID0gZmxhZztcbiAgICB9XG4gIH1cblxuICBnZXQgcmV3cml0ZUNvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb21wYXJpc29uQ29uZmlnID8gdGhpcy5jb21wYXJpc29uQ29uZmlnLnJld3JpdGUgOiB0cnVlO1xuICB9XG5cbiAgc2VsZWN0RGlyKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29tcGFyaXNvblNlcnZpY2UubG9hZEZpbGVzKCRldmVudCkuc3Vic2NyaWJlKChmaWxlczogRmlsZU1vZGVsW10pID0+IHtcbiAgICAgIGxldCBuYW1lRXh0OiBzdHJpbmc7XG4gICAgICBpZiAodGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5maXJzdCkpIHtcbiAgICAgICAgbmFtZUV4dCA9IHRoaXMuY3JlZGVudGlhbHMuZ2V0KHRoaXMuZmlyc3QpLmd1aWQuc3BsaXQoJy4nKS5wb3AoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5zZWNvbmQpKSB7XG4gICAgICAgIG5hbWVFeHQgPSB0aGlzLmNyZWRlbnRpYWxzLmdldCh0aGlzLnNlY29uZCkuZ3VpZC5zcGxpdCgnLicpLnBvcCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAobmFtZUV4dCkge1xuICAgICAgICBmaWxlcyA9IGZpbGVzLmZpbHRlcihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUuZGlyZWN0b3J5IHx8IHZhbHVlLmd1aWQuc3BsaXQoJy4nKS5wb3AoKSA9PT0gbmFtZUV4dDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLmZpbGVzID0gZmlsZXMgfHwgW107XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RGaWxlKCRldmVudDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBtb2RhbElkOiBzdHJpbmcsIHBhcmFtOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvYWRpbmcocGFyYW0sIHRydWUpO1xuICAgIHRoaXMuZ2V0RmlsZSgkZXZlbnQsIHBhc3N3b3JkLCBwYXJhbSk7XG4gICAgdGhpcy5zZWxlY3REaXIoJycpO1xuICAgIHRoaXMuX21vZGFsU2VydmljZS5jbG9zZShtb2RhbElkKTtcbiAgICB0aGlzLmNsZWFyRGF0YShwYXJhbSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbGUoJGV2ZW50OiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIHBhcmFtOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtndWlkOiAkZXZlbnQsIHBhc3N3b3JkOiBwYXNzd29yZH07XG4gICAgdGhpcy5jcmVkZW50aWFscy5zZXQocGFyYW0sIGNyZWRlbnRpYWxzKTtcbiAgICB0aGlzLl9jb21wYXJpc29uU2VydmljZS5sb2FkRmlsZShjcmVkZW50aWFscykuc3Vic2NyaWJlKChmaWxlOiBGaWxlRGVzY3JpcHRpb24pID0+IHtcbiAgICAgICAgdGhpcy5maWxlLnNldChwYXJhbSwgZmlsZSk7XG4gICAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgICAgY29uc3QgcHJlbG9hZFJlc3VsdFBhZ2VDb3VudCA9IHRoaXMuY29tcGFyaXNvbkNvbmZpZy5wcmVsb2FkUmVzdWx0UGFnZUNvdW50O1xuICAgICAgICAgIHRoaXMuY291bnRQYWdlcyA9IGZpbGUucGFnZXMgPyBmaWxlLnBhZ2VzLmxlbmd0aCA6IDA7XG4gICAgICAgICAgaWYgKHByZWxvYWRSZXN1bHRQYWdlQ291bnQgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnByZWxvYWRQYWdlcyhwYXJhbSwgMSwgcHJlbG9hZFJlc3VsdFBhZ2VDb3VudCA+IHRoaXMuY291bnRQYWdlcyA/IHRoaXMuY291bnRQYWdlcyA6IHByZWxvYWRSZXN1bHRQYWdlQ291bnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUZpbGVOYW1lcygpO1xuICAgICAgICB0aGlzLnNldExvYWRpbmcocGFyYW0sIGZhbHNlKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY2xlYXJGaWxlKHBhcmFtOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsZWFyRGF0YShwYXJhbSk7XG4gICAgdGhpcy5jcmVkZW50aWFscy5kZWxldGUocGFyYW0pO1xuICAgIHRoaXMucmVzdWx0ID0gbnVsbDtcbiAgICB0aGlzLnJlc3VsdFRhYkRpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLl90YWJBY3RpdmF0b3JTZXJ2aWNlLmNoYW5nZUFjdGl2ZVRhYih0aGlzLmZpbGVzVGFiKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJEYXRhKHBhcmFtKSB7XG4gICAgaWYgKCF0aGlzLmZpbGUgfHwgIXRoaXMuZmlsZS5zaXplKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZmlsZS5kZWxldGUocGFyYW0pO1xuICAgIGlmIChwYXJhbSA9PT0gdGhpcy5maXJzdCkge1xuICAgICAgdGhpcy5maXJzdEZpbGVOYW1lID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlY29uZEZpbGVOYW1lID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByZWxvYWRQYWdlcyhwYXJhbTogc3RyaW5nLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xuICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8PSBlbmQ7IGkrKykge1xuICAgICAgdGhpcy5fY29tcGFyaXNvblNlcnZpY2UubG9hZFBhZ2UodGhpcy5jcmVkZW50aWFscy5nZXQocGFyYW0pLCBpKS5zdWJzY3JpYmUoKHBhZ2U6IFBhZ2VNb2RlbCkgPT4ge1xuICAgICAgICB0aGlzLmZpbGUuZ2V0KHBhcmFtKS5wYWdlc1tpIC0gMV0gPSBwYWdlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdXBsb2FkKCRldmVudDogc3RyaW5nKSB7XG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5hY3RpdmVQYW5lbDtcbiAgICB0aGlzLl9jb21wYXJpc29uU2VydmljZS51cGxvYWQobnVsbCwgJGV2ZW50LCB0aGlzLnJld3JpdGVDb25maWcpLnN1YnNjcmliZSgob2JqOiBGaWxlQ3JlZGVudGlhbHMpID0+IHtcbiAgICAgIHRoaXMuZ2V0RmlsZShvYmouZ3VpZCwgJycsIGFjdGl2ZSk7XG4gICAgICB0aGlzLnNlbGVjdERpcignJyk7XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVGaWxlTmFtZXMoKSB7XG4gICAgdGhpcy5maXJzdEZpbGVOYW1lID0gdGhpcy5nZXRGaXJzdEZpbGVOYW1lKCk7XG4gICAgdGhpcy5zZWNvbmRGaWxlTmFtZSA9IHRoaXMuZ2V0U2Vjb25kRmlsZU5hbWUoKTtcbiAgfVxuXG4gIGdldFNlY29uZEZpbGVOYW1lKCkge1xuICAgIGNvbnN0IGZpbGVDcmVkZW50aWFscyA9IHRoaXMuY3JlZGVudGlhbHMgPyB0aGlzLmNyZWRlbnRpYWxzLmdldCh0aGlzLnNlY29uZCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGZpbGVDcmVkZW50aWFscyA/IGZpbGVDcmVkZW50aWFscy5ndWlkLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKSA6ICcnO1xuICB9XG5cbiAgZ2V0Rmlyc3RGaWxlTmFtZSgpIHtcbiAgICBjb25zdCBmaWxlQ3JlZGVudGlhbHMgPSB0aGlzLmNyZWRlbnRpYWxzID8gdGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5maXJzdCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGZpbGVDcmVkZW50aWFscyA/IGZpbGVDcmVkZW50aWFscy5ndWlkLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKSA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1ByZWxvYWQocGFuZWw6IHN0cmluZywgcGFnZTogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLmZpbGUuZ2V0KHBhbmVsKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGZvciAobGV0IGkgPSBwYWdlOyBpIDwgcGFnZSArIDI7IGkrKykge1xuICAgICAgaWYgKGkgPiAwICYmIGkgPD0gdGhpcy5jb3VudFBhZ2VzICYmICF0aGlzLmZpbGUuZ2V0KHBhbmVsKS5wYWdlc1tpIC0gMV0uZGF0YSkge1xuICAgICAgICB0aGlzLnByZWxvYWRQYWdlcyhwYW5lbCwgaSwgaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29tcGFyZSgpIHtcbiAgICBpZiAodGhpcy5jcmVkZW50aWFscy5zaXplICE9PSAyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVzdWx0VGFiRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBjb25zdCBhcnIgPSBbXTtcbiAgICBhcnIucHVzaCh0aGlzLmNyZWRlbnRpYWxzLmdldCh0aGlzLmZpcnN0KSk7XG4gICAgYXJyLnB1c2godGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5zZWNvbmQpKTtcbiAgICB0aGlzLl9jb21wYXJpc29uU2VydmljZS5jb21wYXJlKGFycikuc3Vic2NyaWJlKChyZXN1bHQ6IENvbXBhcmVSZXN1bHQpID0+IHtcbiAgICAgIHRoaXMucmVzdWx0ID0gcmVzdWx0O1xuXG4gICAgICBjb25zdCBpc1plcm9CYXNlZFBhZ2VJZCA9IHRoaXMucmVzdWx0LmNoYW5nZXMuZmluZCgoY2hhbmdlKSA9PiBjaGFuZ2UucGFnZUluZm8uaWQgPT09IDApO1xuXG4gICAgICB0aGlzLnJlc3VsdC5jaGFuZ2VzLmZvckVhY2goIChjaGFuZ2UpID0+IHtcbiAgICAgICAgY2hhbmdlLmlkID0gdGhpcy5nZW5lcmF0ZVJhbmRvbUludGVnZXIoKTtcbiAgICAgICAgY29uc3QgemVyb0Jhc2VkSWQgPSBpc1plcm9CYXNlZFBhZ2VJZCA/IGNoYW5nZS5wYWdlSW5mby5pZCA6IGNoYW5nZS5wYWdlSW5mby5pZCAtIDE7XG4gICAgICAgIGNoYW5nZS5wYWdlSW5mby5pZCA9IGlzWmVyb0Jhc2VkUGFnZUlkID8gY2hhbmdlLnBhZ2VJbmZvLmlkIDogY2hhbmdlLnBhZ2VJbmZvLmlkIC0gMTtcbiAgICAgICAgaWYoIXRoaXMucmVzdWx0LnBhZ2VzW3plcm9CYXNlZElkXS5jaGFuZ2VzKXtcbiAgICAgICAgICB0aGlzLnJlc3VsdC5wYWdlc1t6ZXJvQmFzZWRJZF0uY2hhbmdlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzdWx0LnBhZ2VzW3plcm9CYXNlZElkXS5jaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgY2hhbmdlLm5vcm1hbGl6ZWQgPSB7XG4gICAgICAgICAgeCA6IGNoYW5nZS5ib3gueCAqIDEwMCAvIGNoYW5nZS5wYWdlSW5mby53aWR0aCxcbiAgICAgICAgICB5IDogY2hhbmdlLmJveC55ICogMTAwIC8gY2hhbmdlLnBhZ2VJbmZvLmhlaWdodCxcbiAgICAgICAgICB3aWR0aDogY2hhbmdlLmJveC53aWR0aCAqIDEwMCAvIGNoYW5nZS5wYWdlSW5mby53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IGNoYW5nZS5ib3guaGVpZ2h0ICogMTAwIC8gY2hhbmdlLnBhZ2VJbmZvLmhlaWdodCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0sIChlcnIgPT4ge1xuICAgICAgdGhpcy5yZXN1bHRUYWJEaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLl90YWJBY3RpdmF0b3JTZXJ2aWNlLmNoYW5nZUFjdGl2ZVRhYih0aGlzLmZpbGVzVGFiKTtcbiAgICB9KSk7XG4gICAgdGhpcy5fdGFiQWN0aXZhdG9yU2VydmljZS5jaGFuZ2VBY3RpdmVUYWIodGhpcy5yZXN1bHRUYWIpO1xuICB9XG5cbiAgZ2VuZXJhdGVSYW5kb21JbnRlZ2VyKCkge1xuICAgIGZ1bmN0aW9uIF9wOChzKSB7XG4gICAgICAgIGNvbnN0IHAgPSAoTWF0aC5yYW5kb20oKS50b1N0cmluZygxNikgKyBcIjAwMDAwMDAwMFwiKS5zdWJzdHIoMiwgOCk7XG4gICAgICAgIHJldHVybiBzID8gXCItXCIgKyBwLnN1YnN0cigwLCA0KSArIFwiLVwiICsgcC5zdWJzdHIoNCwgNCkgOiBwO1xuICAgIH1cbiAgICByZXR1cm4gX3A4KG51bGwpICsgX3A4KHRydWUpICsgX3A4KHRydWUpICsgX3A4KG51bGwpO1xuICB9XG5cbiAgZG93bmxvYWQoKSB7XG4gICAgaWYgKCF0aGlzLnJlc3VsdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHsnZ3VpZCc6IHRoaXMucmVzdWx0Lmd1aWQsICdwYXNzd29yZCc6ICcnfTtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMuX2NvbXBhcmlzb25TZXJ2aWNlLmdldERvd25sb2FkVXJsKGNyZWRlbnRpYWxzKSk7XG4gIH1cblxuICBoaWRlU2lkZVBhbmVsKCRldmVudCkge1xuICAgIHRoaXMuYWN0aXZlVGFiID0gJGV2ZW50ID8gdGhpcy5maWxlc1RhYiA6IHRoaXMucmVzdWx0VGFiO1xuICAgIHRoaXMuX3RhYkFjdGl2YXRvclNlcnZpY2UuY2hhbmdlQWN0aXZlVGFiKHRoaXMuZmlsZXNUYWIpO1xuICB9XG5cblxuXG59XG4iXX0= \ No newline at end of file diff --git a/dist/libs/comparison/esm2015/lib/result-document/result-document.component.js b/dist/libs/comparison/esm2015/lib/result-document/result-document.component.js index 52aa90fe6..911d0daa1 100644 --- a/dist/libs/comparison/esm2015/lib/result-document/result-document.component.js +++ b/dist/libs/comparison/esm2015/lib/result-document/result-document.component.js @@ -35,11 +35,11 @@ export class ResultDocumentComponent extends DocumentComponent { ResultDocumentComponent.decorators = [ { type: Component, args: [{ selector: 'gd-result-document', - template: "
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n", + template: "
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n", // @TODO: this is replicated from base component until styles inheritance supported added to angular providers: [ZoomService], viewProviders: [ZoomDirective], - styles: [":host{overflow:scroll}.document{background-color:#e7e7e7;width:100%;height:100%;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] + styles: [".document{background-color:#e7e7e7;width:100%;height:100%;overflow-x:hidden;overflow-y:auto!important;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] }] } ]; /** @nocollapse */ @@ -56,4 +56,4 @@ if (false) { */ ResultDocumentComponent.prototype.changesService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWRvY3VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21wYXJpc29uLyIsInNvdXJjZXMiOlsibGliL3Jlc3VsdC1kb2N1bWVudC9yZXN1bHQtZG9jdW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxXQUFXLEVBQUMsYUFBYSxFQUFDLE1BQU8sK0NBQStDLENBQUM7QUFDekYsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O01BQ3RELENBQUMsR0FBRyxNQUFNO0FBU2hCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7Ozs7Ozs7SUFHNUQsWUFBWSxXQUFvQyxFQUNwQyxXQUF3QixFQUN4QixhQUFrQyxFQUNsQyxhQUE0QjtRQUN0QyxLQUFLLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztJQUN0QyxDQUFDOzs7O0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNDLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7O1lBdkJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixnM0JBQStDOztnQkFFL0MsU0FBUyxFQUFHLENBQUMsV0FBVyxDQUFDO2dCQUN6QixhQUFhLEVBQUcsQ0FBQyxhQUFhLENBQUM7O2FBQ2hDOzs7O1lBYm1CLFVBQVU7WUFFdEIsV0FBVztZQUVWLGtCQUFrQjtZQUhDLGFBQWE7Ozs7Ozs7SUFjdkMsaURBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudENvbXBvbmVudCwgV2luZG93U2VydmljZSB9IGZyb20gJ0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cyc7XG5pbXBvcnQge1pvb21TZXJ2aWNlLFpvb21EaXJlY3RpdmV9IGZyb20gICdAZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0ICogYXMganF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgeyBEaWZmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi9kaWZmZXJlbmNlcy5zZXJ2aWNlJztcbmNvbnN0ICQgPSBqcXVlcnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dkLXJlc3VsdC1kb2N1bWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHQtZG9jdW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXN1bHQtZG9jdW1lbnQuY29tcG9uZW50Lmxlc3MnXSwgLy8gQFRPRE86IHRoaXMgaXMgcmVwbGljYXRlZCBmcm9tIGJhc2UgY29tcG9uZW50IHVudGlsIHN0eWxlcyBpbmhlcml0YW5jZSBzdXBwb3J0ZWQgYWRkZWQgdG8gYW5ndWxhclxuICBwcm92aWRlcnMgOiBbWm9vbVNlcnZpY2VdLFxuICB2aWV3UHJvdmlkZXJzIDogW1pvb21EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFJlc3VsdERvY3VtZW50Q29tcG9uZW50IGV4dGVuZHMgRG9jdW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgIHtcbiAgcHJpdmF0ZSBjaGFuZ2VzU2VydmljZSA6IERpZmZlcmVuY2VzU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICAgICAgICAgICAgY2hhbmdlU2VydmljZSA6IERpZmZlcmVuY2VzU2VydmljZSxcbiAgICAgICAgICAgICAgd2luZG93U2VydmljZTogV2luZG93U2VydmljZSkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCB6b29tU2VydmljZSwgd2luZG93U2VydmljZSk7XG4gICAgdGhpcy5jaGFuZ2VzU2VydmljZSA9IGNoYW5nZVNlcnZpY2U7XG4gIH1cblxuICBjbG9zZSgpe1xuICAgIHRoaXMuY2hhbmdlc1NlcnZpY2Uuc2V0QWN0aXZlQ2hhbmdlKG51bGwpXG4gIH1cblxuICBuZ09uSW5pdCgpe1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWRvY3VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21wYXJpc29uLyIsInNvdXJjZXMiOlsibGliL3Jlc3VsdC1kb2N1bWVudC9yZXN1bHQtZG9jdW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxXQUFXLEVBQUMsYUFBYSxFQUFDLE1BQU8sK0NBQStDLENBQUM7QUFDekYsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O01BQ3RELENBQUMsR0FBRyxNQUFNO0FBU2hCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7Ozs7Ozs7SUFHNUQsWUFBWSxXQUFvQyxFQUNwQyxXQUF3QixFQUN4QixhQUFrQyxFQUNsQyxhQUE0QjtRQUN0QyxLQUFLLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztJQUN0QyxDQUFDOzs7O0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNDLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7O1lBdkJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5Qiw2M0JBQStDOztnQkFFL0MsU0FBUyxFQUFHLENBQUMsV0FBVyxDQUFDO2dCQUN6QixhQUFhLEVBQUcsQ0FBQyxhQUFhLENBQUM7O2FBQ2hDOzs7O1lBYm1CLFVBQVU7WUFFdEIsV0FBVztZQUVWLGtCQUFrQjtZQUhDLGFBQWE7Ozs7Ozs7SUFjdkMsaURBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudENvbXBvbmVudCwgV2luZG93U2VydmljZSB9IGZyb20gJ0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cyc7XG5pbXBvcnQge1pvb21TZXJ2aWNlLFpvb21EaXJlY3RpdmV9IGZyb20gICdAZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0ICogYXMganF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgeyBEaWZmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi9kaWZmZXJlbmNlcy5zZXJ2aWNlJztcbmNvbnN0ICQgPSBqcXVlcnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dkLXJlc3VsdC1kb2N1bWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHQtZG9jdW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXN1bHQtZG9jdW1lbnQuY29tcG9uZW50Lmxlc3MnXSwgLy8gQFRPRE86IHRoaXMgaXMgcmVwbGljYXRlZCBmcm9tIGJhc2UgY29tcG9uZW50IHVudGlsIHN0eWxlcyBpbmhlcml0YW5jZSBzdXBwb3J0ZWQgYWRkZWQgdG8gYW5ndWxhclxuICBwcm92aWRlcnMgOiBbWm9vbVNlcnZpY2VdLFxuICB2aWV3UHJvdmlkZXJzIDogW1pvb21EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFJlc3VsdERvY3VtZW50Q29tcG9uZW50IGV4dGVuZHMgRG9jdW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgIHtcbiAgcHJpdmF0ZSBjaGFuZ2VzU2VydmljZSA6IERpZmZlcmVuY2VzU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICAgICAgICAgICAgY2hhbmdlU2VydmljZSA6IERpZmZlcmVuY2VzU2VydmljZSxcbiAgICAgICAgICAgICAgd2luZG93U2VydmljZTogV2luZG93U2VydmljZSkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCB6b29tU2VydmljZSwgd2luZG93U2VydmljZSk7XG4gICAgdGhpcy5jaGFuZ2VzU2VydmljZSA9IGNoYW5nZVNlcnZpY2U7XG4gIH1cblxuICBjbG9zZSgpe1xuICAgIHRoaXMuY2hhbmdlc1NlcnZpY2Uuc2V0QWN0aXZlQ2hhbmdlKG51bGwpXG4gIH1cblxuICBuZ09uSW5pdCgpe1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/dist/libs/comparison/esm5/lib/comparison-app.component.js b/dist/libs/comparison/esm5/lib/comparison-app.component.js index 6c5aadc9f..52883b076 100644 --- a/dist/libs/comparison/esm5/lib/comparison-app.component.js +++ b/dist/libs/comparison/esm5/lib/comparison-app.component.js @@ -475,7 +475,7 @@ var ComparisonAppComponent = /** @class */ (function () { ComparisonAppComponent.decorators = [ { type: Component, args: [{ selector: 'gd-comparison', - template: "\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n", + template: "\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n", styles: ["@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.loader{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.upload-compare-file{height:100%;width:50%;border-right:1px solid #ccc;display:flex;align-content:center;flex-direction:column;text-align:center;flex-grow:0}.open-file-panel{display:flex;width:100%}.files-panel{background-color:#e7e7e7;display:flex;flex-direction:row;width:100%;height:100%}.result-panel{background-color:#e7e7e7;width:100%;height:100%;display:flex;align-content:center;flex-direction:column;justify-content:center;text-align:center}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:100%}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{background-color:#3e4e5a;width:100%}.row{display:flex;height:inherit}.column{width:100%}.tabs-wrapper{display:flex;justify-self:flex-end;align-self:flex-end;width:100%;justify-content:flex-end}.tabs{display:flex;margin-right:30px;align-items:flex-end;justify-content:flex-end}@media (max-width:1037px){.files-panel{flex-direction:column}.files-panel .upload-compare-file{width:100%;border-bottom:1px solid #ccc}/deep/ .gd-side-panel-wrapper{height:50%!important;top:inherit!important;bottom:0!important}}"] }] } ]; @@ -555,4 +555,4 @@ if (false) { */ ComparisonAppComponent.prototype._elementRef; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyaXNvbi1hcHAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbXBhcmlzb24vIiwic291cmNlcyI6WyJsaWIvY29tcGFyaXNvbi1hcHAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsWUFBWSxFQUlaLFlBQVksRUFBYSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFDckYsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7SUFJakQsQ0FBQyxHQUFHLE1BQU07QUFFaEI7SUFBQTtJQUdBLENBQUM7SUFGUSxXQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ2hCLFlBQU0sR0FBRyxRQUFRLENBQUM7SUFDM0IsWUFBQztDQUFBLEFBSEQsSUFHQztTQUhZLEtBQUs7OztJQUNoQixZQUF1Qjs7SUFDdkIsYUFBeUI7O0FBRzNCO0lBQUE7UUFFRSxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFBRCxnQkFBQztBQUFELENBQUMsQUFIRCxJQUdDOzs7O0lBRkMsdUJBQVc7O0lBQ1gsMkJBQWU7O0FBR2pCO0lBeUJFLGdDQUFvQixrQkFBcUMsRUFDckMsYUFBc0MsRUFDOUMsa0JBQXNDLEVBQ3RDLGtCQUFzQyxFQUM5QixhQUEyQixFQUMzQixvQkFBeUMsRUFDekMsV0FBb0M7UUFOeEQsaUJBbUNDO1FBbkNtQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUd0QyxrQkFBYSxH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SkFBOEM7O2lCQUUvQzs7OztnQkFwQk8saUJBQWlCO2dCQURqQix1QkFBdUI7Z0JBRnFDLGtCQUFrQjtnQkFBM0Qsa0JBQWtCO2dCQUEzQyxZQUFZO2dCQUFpQyxtQkFBbUI7Z0JBUC9DLFVBQVU7O0lBd1E3Qiw2QkFBQztDQUFBLEFBOU9ELElBOE9DO1NBek9ZLHNCQUFzQjs7O0lBQ2pDLHVDQUF3Qjs7SUFDeEIsa0RBQTRDOztJQUM1Qyw2Q0FBK0U7O0lBQy9FLHNDQUF3RTs7SUFDeEUsa0RBQW1DOztJQUNuQyw2Q0FBb0I7O0lBQ3BCLHVDQUFvQjs7SUFDcEIsd0NBQXNCOztJQUN0QiwrQ0FBa0M7O0lBQ2xDLGdEQUFtQzs7SUFDbkMsbURBQTBCOztJQUMxQixvREFBMkI7O0lBQzNCLDRDQUFlOztJQUNmLHdDQUFzQjs7SUFDdEIsMENBQW1COztJQUNuQiwyQ0FBcUI7O0lBQ3JCLDJDQUEwQjs7SUFDMUIsbURBQXlCOzs7OztJQUViLG9EQUE2Qzs7Ozs7SUFDN0MsK0NBQThDOzs7OztJQUc5QywrQ0FBbUM7Ozs7O0lBQ25DLHNEQUFpRDs7Ozs7SUFDakQsNkNBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMganF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQge1xuICBDb21tb25Nb2RhbHMsXG4gIEZpbGVDcmVkZW50aWFscyxcbiAgRmlsZURlc2NyaXB0aW9uLFxuICBGaWxlTW9kZWwsXG4gIE1vZGFsU2VydmljZSwgUGFnZU1vZGVsLCBQYWdlUHJlbG9hZFNlcnZpY2UsIFRhYkFjdGl2YXRvclNlcnZpY2UsIFVwbG9hZEZpbGVzU2VydmljZVxufSBmcm9tIFwiQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzXCI7XG5pbXBvcnQge0NvbXBhcmlzb25Db25maWdTZXJ2aWNlfSBmcm9tIFwiLi9jb21wYXJpc29uLWNvbmZpZy5zZXJ2aWNlXCI7XG5pbXBvcnQge0NvbXBhcmlzb25TZXJ2aWNlfSBmcm9tIFwiLi9jb21wYXJpc29uLnNlcnZpY2VcIjtcbmltcG9ydCB7Q29tcGFyaXNvbkNvbmZpZ30gZnJvbSBcIi4vY29tcGFyaXNvbi1jb25maWdcIjtcbmltcG9ydCB7Q29tcGFyZVJlc3VsdH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5cbmNvbnN0ICQgPSBqcXVlcnk7XG5cbmV4cG9ydCBjbGFzcyBGaWxlcyB7XG4gIHN0YXRpYyBGSVJTVCA9ICdmaXJzdCc7XG4gIHN0YXRpYyBTRUNPTkQgPSAnc2Vjb25kJztcbn1cblxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodCB7XG4gIGlkOiBzdHJpbmc7XG4gIGFjdGl2ZSA9IGZhbHNlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZC1jb21wYXJpc29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBhcmlzb24tYXBwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tcGFyaXNvbi1hcHAuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb21wYXJpc29uQXBwQ29tcG9uZW50IHtcbiAgZmlsZXM6IEZpbGVNb2RlbFtdID0gW107XG4gIGJyb3dzZUZpbGVzTW9kYWwgPSBDb21tb25Nb2RhbHMuQnJvd3NlRmlsZXM7XG4gIGNyZWRlbnRpYWxzOiBNYXA8c3RyaW5nLCBGaWxlQ3JlZGVudGlhbHM+ID0gbmV3IE1hcDxzdHJpbmcsIEZpbGVDcmVkZW50aWFscz4oKTtcbiAgZmlsZTogTWFwPHN0cmluZywgRmlsZURlc2NyaXB0aW9uPiA9IG5ldyBNYXA8c3RyaW5nLCBGaWxlRGVzY3JpcHRpb24+KCk7XG4gIGNvbXBhcmlzb25Db25maWc6IENvbXBhcmlzb25Db25maWc7XG4gIGFjdGl2ZVBhbmVsOiBzdHJpbmc7XG4gIGZpcnN0ID0gRmlsZXMuRklSU1Q7XG4gIHNlY29uZCA9IEZpbGVzLlNFQ09ORDtcbiAgZmlyc3RGaWxlTmFtZTogc3RyaW5nID0gdW5kZWZpbmVkO1xuICBzZWNvbmRGaWxlTmFtZTogc3RyaW5nID0gdW5kZWZpbmVkO1xuICBsb2FkaW5nRmlyc3RQYW5lbCA9IGZhbHNlO1xuICBsb2FkaW5nU2Vjb25kUGFuZWwgPSBmYWxzZTtcbiAgY291bnRQYWdlcyA9IDA7XG4gIHJlc3VsdDogQ29tcGFyZVJlc3VsdDtcbiAgZmlsZXNUYWIgPSAnZmlsZXMnO1xuICByZXN1bHRUYWIgPSAncmVzdWx0JztcbiAgYWN0aXZlVGFiID0gdGhpcy5maWxlc1RhYjtcbiAgcmVzdWx0VGFiRGlzYWJsZWQgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbXBhcmlzb25TZXJ2aWNlOiBDb21wYXJpc29uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb21wYXJpc29uQ29uZmlnU2VydmljZSxcbiAgICAgICAgICAgICAgdXBsb2FkRmlsZXNTZXJ2aWNlOiBVcGxvYWRGaWxlc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHBhZ2VQcmVsb2FkU2VydmljZTogUGFnZVByZWxvYWRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdGFiQWN0aXZhdG9yU2VydmljZTogVGFiQWN0aXZhdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBjb25maWdTZXJ2aWNlLnVwZGF0ZWRDb25maWcuc3Vic2NyaWJlKChjb25maWcpID0+IHtcbiAgICAgIHRoaXMuY29tcGFyaXNvbkNvbmZpZyA9IGNvbmZpZztcbiAgICB9KTtcblxuICAgIHBhZ2VQcmVsb2FkU2VydmljZS5jaGVja1ByZWxvYWQuc3Vic2NyaWJlKChwYWdlOiBudW1iZXIpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbXBhcmlzb25Db25maWcucHJlbG9hZFJlc3VsdFBhZ2VDb3VudCAhPT0gMCkge1xuICAgICAgICB0aGlzLmNoZWNrUHJlbG9hZCh0aGlzLmZpcnN0LCBwYWdlKTtcbiAgICAgICAgdGhpcy5jaGVja1ByZWxvYWQodGhpcy5zZWNvbmQsIHBhZ2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdXBsb2FkRmlsZXNTZXJ2aWNlLnVwbG9hZHNDaGFuZ2Uuc3Vic2NyaWJlKCh1cGxvYWRzKSA9PiB7XG4gICAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZVBhbmVsO1xuICAgICAgdGhpcy5zZXRMb2FkaW5nKGFjdGl2ZSwgdHJ1ZSk7XG4gICAgICBpZiAodXBsb2Fkcykge1xuICAgICAgICBsZXQgaTogbnVtYmVyO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdXBsb2Fkcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRoaXMuX2NvbXBhcmlzb25TZXJ2aWNlLnVwbG9hZCh1cGxvYWRzLml0ZW0oaSksICcnLCB0aGlzLnJld3JpdGVDb25maWcpLnN1YnNjcmliZSgob2JqOiBGaWxlQ3JlZGVudGlhbHMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ2V0RmlsZShvYmouZ3VpZCwgJycsIGFjdGl2ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdERpcignJyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF90YWJBY3RpdmF0b3JTZXJ2aWNlLmFjdGl2ZVRhYkNoYW5nZS5zdWJzY3JpYmUoKHRhYklkOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiSWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldExvYWRpbmcocGFuZWw6IHN0cmluZywgZmxhZzogYm9vbGVhbikge1xuICAgIGlmIChwYW5lbCA9PT0gdGhpcy5maXJzdCkge1xuICAgICAgdGhpcy5sb2FkaW5nRmlyc3RQYW5lbCA9IGZsYWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZGluZ1NlY29uZFBhbmVsID0gZmxhZztcbiAgICB9XG4gIH1cblxuICBnZXQgcmV3cml0ZUNvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb21wYXJpc29uQ29uZmlnID8gdGhpcy5jb21wYXJpc29uQ29uZmlnLnJld3JpdGUgOiB0cnVlO1xuICB9XG5cbiAgc2VsZWN0RGlyKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29tcGFyaXNvblNlcnZpY2UubG9hZEZpbGVzKCRldmVudCkuc3Vic2NyaWJlKChmaWxlczogRmlsZU1vZGVsW10pID0+IHtcbiAgICAgIGxldCBuYW1lRXh0OiBzdHJpbmc7XG4gICAgICBpZiAodGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5maXJzdCkpIHtcbiAgICAgICAgbmFtZUV4dCA9IHRoaXMuY3JlZGVudGlhbHMuZ2V0KHRoaXMuZmlyc3QpLmd1aWQuc3BsaXQoJy4nKS5wb3AoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5zZWNvbmQpKSB7XG4gICAgICAgIG5hbWVFeHQgPSB0aGlzLmNyZWRlbnRpYWxzLmdldCh0aGlzLnNlY29uZCkuZ3VpZC5zcGxpdCgnLicpLnBvcCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAobmFtZUV4dCkge1xuICAgICAgICBmaWxlcyA9IGZpbGVzLmZpbHRlcihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUuZGlyZWN0b3J5IHx8IHZhbHVlLmd1aWQuc3BsaXQoJy4nKS5wb3AoKSA9PT0gbmFtZUV4dDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLmZpbGVzID0gZmlsZXMgfHwgW107XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RGaWxlKCRldmVudDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBtb2RhbElkOiBzdHJpbmcsIHBhcmFtOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvYWRpbmcocGFyYW0sIHRydWUpO1xuICAgIHRoaXMuZ2V0RmlsZSgkZXZlbnQsIHBhc3N3b3JkLCBwYXJhbSk7XG4gICAgdGhpcy5zZWxlY3REaXIoJycpO1xuICAgIHRoaXMuX21vZGFsU2VydmljZS5jbG9zZShtb2RhbElkKTtcbiAgICB0aGlzLmNsZWFyRGF0YShwYXJhbSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbGUoJGV2ZW50OiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIHBhcmFtOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtndWlkOiAkZXZlbnQsIHBhc3N3b3JkOiBwYXNzd29yZH07XG4gICAgdGhpcy5jcmVkZW50aWFscy5zZXQocGFyYW0sIGNyZWRlbnRpYWxzKTtcbiAgICB0aGlzLl9jb21wYXJpc29uU2VydmljZS5sb2FkRmlsZShjcmVkZW50aWFscykuc3Vic2NyaWJlKChmaWxlOiBGaWxlRGVzY3JpcHRpb24pID0+IHtcbiAgICAgICAgdGhpcy5maWxlLnNldChwYXJhbSwgZmlsZSk7XG4gICAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgICAgY29uc3QgcHJlbG9hZFJlc3VsdFBhZ2VDb3VudCA9IHRoaXMuY29tcGFyaXNvbkNvbmZpZy5wcmVsb2FkUmVzdWx0UGFnZUNvdW50O1xuICAgICAgICAgIHRoaXMuY291bnRQYWdlcyA9IGZpbGUucGFnZXMgPyBmaWxlLnBhZ2VzLmxlbmd0aCA6IDA7XG4gICAgICAgICAgaWYgKHByZWxvYWRSZXN1bHRQYWdlQ291bnQgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnByZWxvYWRQYWdlcyhwYXJhbSwgMSwgcHJlbG9hZFJlc3VsdFBhZ2VDb3VudCA+IHRoaXMuY291bnRQYWdlcyA/IHRoaXMuY291bnRQYWdlcyA6IHByZWxvYWRSZXN1bHRQYWdlQ291bnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUZpbGVOYW1lcygpO1xuICAgICAgICB0aGlzLnNldExvYWRpbmcocGFyYW0sIGZhbHNlKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY2xlYXJGaWxlKHBhcmFtOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsZWFyRGF0YShwYXJhbSk7XG4gICAgdGhpcy5jcmVkZW50aWFscy5kZWxldGUocGFyYW0pO1xuICAgIHRoaXMucmVzdWx0ID0gbnVsbDtcbiAgICB0aGlzLnJlc3VsdFRhYkRpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLl90YWJBY3RpdmF0b3JTZXJ2aWNlLmNoYW5nZUFjdGl2ZVRhYih0aGlzLmZpbGVzVGFiKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJEYXRhKHBhcmFtKSB7XG4gICAgaWYgKCF0aGlzLmZpbGUgfHwgIXRoaXMuZmlsZS5zaXplKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZmlsZS5kZWxldGUocGFyYW0pO1xuICAgIGlmIChwYXJhbSA9PT0gdGhpcy5maXJzdCkge1xuICAgICAgdGhpcy5maXJzdEZpbGVOYW1lID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlY29uZEZpbGVOYW1lID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByZWxvYWRQYWdlcyhwYXJhbTogc3RyaW5nLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xuICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8PSBlbmQ7IGkrKykge1xuICAgICAgdGhpcy5fY29tcGFyaXNvblNlcnZpY2UubG9hZFBhZ2UodGhpcy5jcmVkZW50aWFscy5nZXQocGFyYW0pLCBpKS5zdWJzY3JpYmUoKHBhZ2U6IFBhZ2VNb2RlbCkgPT4ge1xuICAgICAgICB0aGlzLmZpbGUuZ2V0KHBhcmFtKS5wYWdlc1tpIC0gMV0gPSBwYWdlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdXBsb2FkKCRldmVudDogc3RyaW5nKSB7XG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5hY3RpdmVQYW5lbDtcbiAgICB0aGlzLl9jb21wYXJpc29uU2VydmljZS51cGxvYWQobnVsbCwgJGV2ZW50LCB0aGlzLnJld3JpdGVDb25maWcpLnN1YnNjcmliZSgob2JqOiBGaWxlQ3JlZGVudGlhbHMpID0+IHtcbiAgICAgIHRoaXMuZ2V0RmlsZShvYmouZ3VpZCwgJycsIGFjdGl2ZSk7XG4gICAgICB0aGlzLnNlbGVjdERpcignJyk7XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVGaWxlTmFtZXMoKSB7XG4gICAgdGhpcy5maXJzdEZpbGVOYW1lID0gdGhpcy5nZXRGaXJzdEZpbGVOYW1lKCk7XG4gICAgdGhpcy5zZWNvbmRGaWxlTmFtZSA9IHRoaXMuZ2V0U2Vjb25kRmlsZU5hbWUoKTtcbiAgfVxuXG4gIGdldFNlY29uZEZpbGVOYW1lKCkge1xuICAgIGNvbnN0IGZpbGVDcmVkZW50aWFscyA9IHRoaXMuY3JlZGVudGlhbHMgPyB0aGlzLmNyZWRlbnRpYWxzLmdldCh0aGlzLnNlY29uZCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGZpbGVDcmVkZW50aWFscyA/IGZpbGVDcmVkZW50aWFscy5ndWlkLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKSA6ICcnO1xuICB9XG5cbiAgZ2V0Rmlyc3RGaWxlTmFtZSgpIHtcbiAgICBjb25zdCBmaWxlQ3JlZGVudGlhbHMgPSB0aGlzLmNyZWRlbnRpYWxzID8gdGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5maXJzdCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGZpbGVDcmVkZW50aWFscyA/IGZpbGVDcmVkZW50aWFscy5ndWlkLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKSA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1ByZWxvYWQocGFuZWw6IHN0cmluZywgcGFnZTogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLmZpbGUuZ2V0KHBhbmVsKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGZvciAobGV0IGkgPSBwYWdlOyBpIDwgcGFnZSArIDI7IGkrKykge1xuICAgICAgaWYgKGkgPiAwICYmIGkgPD0gdGhpcy5jb3VudFBhZ2VzICYmICF0aGlzLmZpbGUuZ2V0KHBhbmVsKS5wYWdlc1tpIC0gMV0uZGF0YSkge1xuICAgICAgICB0aGlzLnByZWxvYWRQYWdlcyhwYW5lbCwgaSwgaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29tcGFyZSgpIHtcbiAgICBpZiAodGhpcy5jcmVkZW50aWFscy5zaXplICE9PSAyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVzdWx0VGFiRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBjb25zdCBhcnIgPSBbXTtcbiAgICBhcnIucHVzaCh0aGlzLmNyZWRlbnRpYWxzLmdldCh0aGlzLmZpcnN0KSk7XG4gICAgYXJyLnB1c2godGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5zZWNvbmQpKTtcbiAgICB0aGlzLl9jb21wYXJpc29uU2VydmljZS5jb21wYXJlKGFycikuc3Vic2NyaWJlKChyZXN1bHQ6IENvbXBhcmVSZXN1bHQpID0+IHtcbiAgICAgIHRoaXMucmVzdWx0ID0gcmVzdWx0O1xuXG4gICAgICBjb25zdCBpc1plcm9CYXNlZFBhZ2VJZCA9IHRoaXMucmVzdWx0LmNoYW5nZXMuZmluZCgoY2hhbmdlKSA9PiBjaGFuZ2UucGFnZUluZm8uaWQgPT09IDApO1xuXG4gICAgICB0aGlzLnJlc3VsdC5jaGFuZ2VzLmZvckVhY2goIChjaGFuZ2UpID0+IHtcbiAgICAgICAgY2hhbmdlLmlkID0gdGhpcy5nZW5lcmF0ZVJhbmRvbUludGVnZXIoKTtcbiAgICAgICAgY29uc3QgemVyb0Jhc2VkSWQgPSBpc1plcm9CYXNlZFBhZ2VJZCA/IGNoYW5nZS5wYWdlSW5mby5pZCA6IGNoYW5nZS5wYWdlSW5mby5pZCAtIDE7XG4gICAgICAgIGNoYW5nZS5wYWdlSW5mby5pZCA9IGlzWmVyb0Jhc2VkUGFnZUlkID8gY2hhbmdlLnBhZ2VJbmZvLmlkIDogY2hhbmdlLnBhZ2VJbmZvLmlkIC0gMTtcbiAgICAgICAgaWYoIXRoaXMucmVzdWx0LnBhZ2VzW3plcm9CYXNlZElkXS5jaGFuZ2VzKXtcbiAgICAgICAgICB0aGlzLnJlc3VsdC5wYWdlc1t6ZXJvQmFzZWRJZF0uY2hhbmdlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzdWx0LnBhZ2VzW3plcm9CYXNlZElkXS5jaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgY2hhbmdlLm5vcm1hbGl6ZWQgPSB7XG4gICAgICAgICAgeCA6IGNoYW5nZS5ib3gueCAqIDEwMCAvIGNoYW5nZS5wYWdlSW5mby53aWR0aCxcbiAgICAgICAgICB5IDogY2hhbmdlLmJveC55ICogMTAwIC8gY2hhbmdlLnBhZ2VJbmZvLmhlaWdodCxcbiAgICAgICAgICB3aWR0aDogY2hhbmdlLmJveC53aWR0aCAqIDEwMCAvIGNoYW5nZS5wYWdlSW5mby53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IGNoYW5nZS5ib3guaGVpZ2h0ICogMTAwIC8gY2hhbmdlLnBhZ2VJbmZvLmhlaWdodCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0sIChlcnIgPT4ge1xuICAgICAgdGhpcy5yZXN1bHRUYWJEaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLl90YWJBY3RpdmF0b3JTZXJ2aWNlLmNoYW5nZUFjdGl2ZVRhYih0aGlzLmZpbGVzVGFiKTtcbiAgICB9KSk7XG4gICAgdGhpcy5fdGFiQWN0aXZhdG9yU2VydmljZS5jaGFuZ2VBY3RpdmVUYWIodGhpcy5yZXN1bHRUYWIpO1xuICB9XG5cbiAgZ2VuZXJhdGVSYW5kb21JbnRlZ2VyKCkge1xuICAgIGZ1bmN0aW9uIF9wOChzKSB7XG4gICAgICAgIGNvbnN0IHAgPSAoTWF0aC5yYW5kb20oKS50b1N0cmluZygxNikgKyBcIjAwMDAwMDAwMFwiKS5zdWJzdHIoMiwgOCk7XG4gICAgICAgIHJldHVybiBzID8gXCItXCIgKyBwLnN1YnN0cigwLCA0KSArIFwiLVwiICsgcC5zdWJzdHIoNCwgNCkgOiBwO1xuICAgIH1cbiAgICByZXR1cm4gX3A4KG51bGwpICsgX3A4KHRydWUpICsgX3A4KHRydWUpICsgX3A4KG51bGwpO1xuICB9XG5cbiAgZG93bmxvYWQoKSB7XG4gICAgaWYgKCF0aGlzLnJlc3VsdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHsnZ3VpZCc6IHRoaXMucmVzdWx0Lmd1aWQsICdwYXNzd29yZCc6ICcnfTtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMuX2NvbXBhcmlzb25TZXJ2aWNlLmdldERvd25sb2FkVXJsKGNyZWRlbnRpYWxzKSk7XG4gIH1cblxuICBoaWRlU2lkZVBhbmVsKCRldmVudCkge1xuICAgIHRoaXMuYWN0aXZlVGFiID0gJGV2ZW50ID8gdGhpcy5maWxlc1RhYiA6IHRoaXMucmVzdWx0VGFiO1xuICAgIHRoaXMuX3RhYkFjdGl2YXRvclNlcnZpY2UuY2hhbmdlQWN0aXZlVGFiKHRoaXMuZmlsZXNUYWIpO1xuICB9XG5cblxuXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyaXNvbi1hcHAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbXBhcmlzb24vIiwic291cmNlcyI6WyJsaWIvY29tcGFyaXNvbi1hcHAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsWUFBWSxFQUlaLFlBQVksRUFBYSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFDckYsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7SUFJakQsQ0FBQyxHQUFHLE1BQU07QUFFaEI7SUFBQTtJQUdBLENBQUM7SUFGUSxXQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ2hCLFlBQU0sR0FBRyxRQUFRLENBQUM7SUFDM0IsWUFBQztDQUFBLEFBSEQsSUFHQztTQUhZLEtBQUs7OztJQUNoQixZQUF1Qjs7SUFDdkIsYUFBeUI7O0FBRzNCO0lBQUE7UUFFRSxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFBRCxnQkFBQztBQUFELENBQUMsQUFIRCxJQUdDOzs7O0lBRkMsdUJBQVc7O0lBQ1gsMkJBQWU7O0FBR2pCO0lBeUJFLGdDQUFvQixrQkFBcUMsRUFDckMsYUFBc0MsRUFDOUMsa0JBQXNDLEVBQ3RDLGtCQUFzQyxFQUM5QixhQUEyQixFQUMzQixvQkFBeUMsRUFDekMsV0FBb0M7UUFOeEQsaUJBbUNDO1FBbkNtQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUd0QyxrQkFBYSxH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SkFBOEM7O2lCQUUvQzs7OztnQkFwQk8saUJBQWlCO2dCQURqQix1QkFBdUI7Z0JBRnFDLGtCQUFrQjtnQkFBM0Qsa0JBQWtCO2dCQUEzQyxZQUFZO2dCQUFpQyxtQkFBbUI7Z0JBUC9DLFVBQVU7O0lBd1E3Qiw2QkFBQztDQUFBLEFBOU9ELElBOE9DO1NBek9ZLHNCQUFzQjs7O0lBQ2pDLHVDQUF3Qjs7SUFDeEIsa0RBQTRDOztJQUM1Qyw2Q0FBK0U7O0lBQy9FLHNDQUF3RTs7SUFDeEUsa0RBQW1DOztJQUNuQyw2Q0FBb0I7O0lBQ3BCLHVDQUFvQjs7SUFDcEIsd0NBQXNCOztJQUN0QiwrQ0FBa0M7O0lBQ2xDLGdEQUFtQzs7SUFDbkMsbURBQTBCOztJQUMxQixvREFBMkI7O0lBQzNCLDRDQUFlOztJQUNmLHdDQUFzQjs7SUFDdEIsMENBQW1COztJQUNuQiwyQ0FBcUI7O0lBQ3JCLDJDQUEwQjs7SUFDMUIsbURBQXlCOzs7OztJQUViLG9EQUE2Qzs7Ozs7SUFDN0MsK0NBQThDOzs7OztJQUc5QywrQ0FBbUM7Ozs7O0lBQ25DLHNEQUFpRDs7Ozs7SUFDakQsNkNBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMganF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQge1xuICBDb21tb25Nb2RhbHMsXG4gIEZpbGVDcmVkZW50aWFscyxcbiAgRmlsZURlc2NyaXB0aW9uLFxuICBGaWxlTW9kZWwsXG4gIE1vZGFsU2VydmljZSwgUGFnZU1vZGVsLCBQYWdlUHJlbG9hZFNlcnZpY2UsIFRhYkFjdGl2YXRvclNlcnZpY2UsIFVwbG9hZEZpbGVzU2VydmljZVxufSBmcm9tIFwiQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzXCI7XG5pbXBvcnQge0NvbXBhcmlzb25Db25maWdTZXJ2aWNlfSBmcm9tIFwiLi9jb21wYXJpc29uLWNvbmZpZy5zZXJ2aWNlXCI7XG5pbXBvcnQge0NvbXBhcmlzb25TZXJ2aWNlfSBmcm9tIFwiLi9jb21wYXJpc29uLnNlcnZpY2VcIjtcbmltcG9ydCB7Q29tcGFyaXNvbkNvbmZpZ30gZnJvbSBcIi4vY29tcGFyaXNvbi1jb25maWdcIjtcbmltcG9ydCB7Q29tcGFyZVJlc3VsdH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5cbmNvbnN0ICQgPSBqcXVlcnk7XG5cbmV4cG9ydCBjbGFzcyBGaWxlcyB7XG4gIHN0YXRpYyBGSVJTVCA9ICdmaXJzdCc7XG4gIHN0YXRpYyBTRUNPTkQgPSAnc2Vjb25kJztcbn1cblxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodCB7XG4gIGlkOiBzdHJpbmc7XG4gIGFjdGl2ZSA9IGZhbHNlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZC1jb21wYXJpc29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBhcmlzb24tYXBwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tcGFyaXNvbi1hcHAuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb21wYXJpc29uQXBwQ29tcG9uZW50IHtcbiAgZmlsZXM6IEZpbGVNb2RlbFtdID0gW107XG4gIGJyb3dzZUZpbGVzTW9kYWwgPSBDb21tb25Nb2RhbHMuQnJvd3NlRmlsZXM7XG4gIGNyZWRlbnRpYWxzOiBNYXA8c3RyaW5nLCBGaWxlQ3JlZGVudGlhbHM+ID0gbmV3IE1hcDxzdHJpbmcsIEZpbGVDcmVkZW50aWFscz4oKTtcbiAgZmlsZTogTWFwPHN0cmluZywgRmlsZURlc2NyaXB0aW9uPiA9IG5ldyBNYXA8c3RyaW5nLCBGaWxlRGVzY3JpcHRpb24+KCk7XG4gIGNvbXBhcmlzb25Db25maWc6IENvbXBhcmlzb25Db25maWc7XG4gIGFjdGl2ZVBhbmVsOiBzdHJpbmc7XG4gIGZpcnN0ID0gRmlsZXMuRklSU1Q7XG4gIHNlY29uZCA9IEZpbGVzLlNFQ09ORDtcbiAgZmlyc3RGaWxlTmFtZTogc3RyaW5nID0gdW5kZWZpbmVkO1xuICBzZWNvbmRGaWxlTmFtZTogc3RyaW5nID0gdW5kZWZpbmVkO1xuICBsb2FkaW5nRmlyc3RQYW5lbCA9IGZhbHNlO1xuICBsb2FkaW5nU2Vjb25kUGFuZWwgPSBmYWxzZTtcbiAgY291bnRQYWdlcyA9IDA7XG4gIHJlc3VsdDogQ29tcGFyZVJlc3VsdDtcbiAgZmlsZXNUYWIgPSAnZmlsZXMnO1xuICByZXN1bHRUYWIgPSAncmVzdWx0JztcbiAgYWN0aXZlVGFiID0gdGhpcy5maWxlc1RhYjtcbiAgcmVzdWx0VGFiRGlzYWJsZWQgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbXBhcmlzb25TZXJ2aWNlOiBDb21wYXJpc29uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb21wYXJpc29uQ29uZmlnU2VydmljZSxcbiAgICAgICAgICAgICAgdXBsb2FkRmlsZXNTZXJ2aWNlOiBVcGxvYWRGaWxlc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHBhZ2VQcmVsb2FkU2VydmljZTogUGFnZVByZWxvYWRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdGFiQWN0aXZhdG9yU2VydmljZTogVGFiQWN0aXZhdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBjb25maWdTZXJ2aWNlLnVwZGF0ZWRDb25maWcuc3Vic2NyaWJlKChjb25maWcpID0+IHtcbiAgICAgIHRoaXMuY29tcGFyaXNvbkNvbmZpZyA9IGNvbmZpZztcbiAgICB9KTtcblxuICAgIHBhZ2VQcmVsb2FkU2VydmljZS5jaGVja1ByZWxvYWQuc3Vic2NyaWJlKChwYWdlOiBudW1iZXIpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbXBhcmlzb25Db25maWcucHJlbG9hZFJlc3VsdFBhZ2VDb3VudCAhPT0gMCkge1xuICAgICAgICB0aGlzLmNoZWNrUHJlbG9hZCh0aGlzLmZpcnN0LCBwYWdlKTtcbiAgICAgICAgdGhpcy5jaGVja1ByZWxvYWQodGhpcy5zZWNvbmQsIHBhZ2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdXBsb2FkRmlsZXNTZXJ2aWNlLnVwbG9hZHNDaGFuZ2Uuc3Vic2NyaWJlKCh1cGxvYWRzKSA9PiB7XG4gICAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZVBhbmVsO1xuICAgICAgdGhpcy5zZXRMb2FkaW5nKGFjdGl2ZSwgdHJ1ZSk7XG4gICAgICBpZiAodXBsb2Fkcykge1xuICAgICAgICBsZXQgaTogbnVtYmVyO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdXBsb2Fkcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRoaXMuX2NvbXBhcmlzb25TZXJ2aWNlLnVwbG9hZCh1cGxvYWRzLml0ZW0oaSksICcnLCB0aGlzLnJld3JpdGVDb25maWcpLnN1YnNjcmliZSgob2JqOiBGaWxlQ3JlZGVudGlhbHMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ2V0RmlsZShvYmouZ3VpZCwgJycsIGFjdGl2ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdERpcignJyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF90YWJBY3RpdmF0b3JTZXJ2aWNlLmFjdGl2ZVRhYkNoYW5nZS5zdWJzY3JpYmUoKHRhYklkOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiSWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldExvYWRpbmcocGFuZWw6IHN0cmluZywgZmxhZzogYm9vbGVhbikge1xuICAgIGlmIChwYW5lbCA9PT0gdGhpcy5maXJzdCkge1xuICAgICAgdGhpcy5sb2FkaW5nRmlyc3RQYW5lbCA9IGZsYWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZGluZ1NlY29uZFBhbmVsID0gZmxhZztcbiAgICB9XG4gIH1cblxuICBnZXQgcmV3cml0ZUNvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb21wYXJpc29uQ29uZmlnID8gdGhpcy5jb21wYXJpc29uQ29uZmlnLnJld3JpdGUgOiB0cnVlO1xuICB9XG5cbiAgc2VsZWN0RGlyKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29tcGFyaXNvblNlcnZpY2UubG9hZEZpbGVzKCRldmVudCkuc3Vic2NyaWJlKChmaWxlczogRmlsZU1vZGVsW10pID0+IHtcbiAgICAgIGxldCBuYW1lRXh0OiBzdHJpbmc7XG4gICAgICBpZiAodGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5maXJzdCkpIHtcbiAgICAgICAgbmFtZUV4dCA9IHRoaXMuY3JlZGVudGlhbHMuZ2V0KHRoaXMuZmlyc3QpLmd1aWQuc3BsaXQoJy4nKS5wb3AoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5zZWNvbmQpKSB7XG4gICAgICAgIG5hbWVFeHQgPSB0aGlzLmNyZWRlbnRpYWxzLmdldCh0aGlzLnNlY29uZCkuZ3VpZC5zcGxpdCgnLicpLnBvcCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAobmFtZUV4dCkge1xuICAgICAgICBmaWxlcyA9IGZpbGVzLmZpbHRlcihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUuZGlyZWN0b3J5IHx8IHZhbHVlLmd1aWQuc3BsaXQoJy4nKS5wb3AoKSA9PT0gbmFtZUV4dDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLmZpbGVzID0gZmlsZXMgfHwgW107XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RGaWxlKCRldmVudDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBtb2RhbElkOiBzdHJpbmcsIHBhcmFtOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldExvYWRpbmcocGFyYW0sIHRydWUpO1xuICAgIHRoaXMuZ2V0RmlsZSgkZXZlbnQsIHBhc3N3b3JkLCBwYXJhbSk7XG4gICAgdGhpcy5zZWxlY3REaXIoJycpO1xuICAgIHRoaXMuX21vZGFsU2VydmljZS5jbG9zZShtb2RhbElkKTtcbiAgICB0aGlzLmNsZWFyRGF0YShwYXJhbSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbGUoJGV2ZW50OiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIHBhcmFtOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtndWlkOiAkZXZlbnQsIHBhc3N3b3JkOiBwYXNzd29yZH07XG4gICAgdGhpcy5jcmVkZW50aWFscy5zZXQocGFyYW0sIGNyZWRlbnRpYWxzKTtcbiAgICB0aGlzLl9jb21wYXJpc29uU2VydmljZS5sb2FkRmlsZShjcmVkZW50aWFscykuc3Vic2NyaWJlKChmaWxlOiBGaWxlRGVzY3JpcHRpb24pID0+IHtcbiAgICAgICAgdGhpcy5maWxlLnNldChwYXJhbSwgZmlsZSk7XG4gICAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgICAgY29uc3QgcHJlbG9hZFJlc3VsdFBhZ2VDb3VudCA9IHRoaXMuY29tcGFyaXNvbkNvbmZpZy5wcmVsb2FkUmVzdWx0UGFnZUNvdW50O1xuICAgICAgICAgIHRoaXMuY291bnRQYWdlcyA9IGZpbGUucGFnZXMgPyBmaWxlLnBhZ2VzLmxlbmd0aCA6IDA7XG4gICAgICAgICAgaWYgKHByZWxvYWRSZXN1bHRQYWdlQ291bnQgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnByZWxvYWRQYWdlcyhwYXJhbSwgMSwgcHJlbG9hZFJlc3VsdFBhZ2VDb3VudCA+IHRoaXMuY291bnRQYWdlcyA/IHRoaXMuY291bnRQYWdlcyA6IHByZWxvYWRSZXN1bHRQYWdlQ291bnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUZpbGVOYW1lcygpO1xuICAgICAgICB0aGlzLnNldExvYWRpbmcocGFyYW0sIGZhbHNlKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY2xlYXJGaWxlKHBhcmFtOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsZWFyRGF0YShwYXJhbSk7XG4gICAgdGhpcy5jcmVkZW50aWFscy5kZWxldGUocGFyYW0pO1xuICAgIHRoaXMucmVzdWx0ID0gbnVsbDtcbiAgICB0aGlzLnJlc3VsdFRhYkRpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLl90YWJBY3RpdmF0b3JTZXJ2aWNlLmNoYW5nZUFjdGl2ZVRhYih0aGlzLmZpbGVzVGFiKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJEYXRhKHBhcmFtKSB7XG4gICAgaWYgKCF0aGlzLmZpbGUgfHwgIXRoaXMuZmlsZS5zaXplKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZmlsZS5kZWxldGUocGFyYW0pO1xuICAgIGlmIChwYXJhbSA9PT0gdGhpcy5maXJzdCkge1xuICAgICAgdGhpcy5maXJzdEZpbGVOYW1lID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlY29uZEZpbGVOYW1lID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByZWxvYWRQYWdlcyhwYXJhbTogc3RyaW5nLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xuICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8PSBlbmQ7IGkrKykge1xuICAgICAgdGhpcy5fY29tcGFyaXNvblNlcnZpY2UubG9hZFBhZ2UodGhpcy5jcmVkZW50aWFscy5nZXQocGFyYW0pLCBpKS5zdWJzY3JpYmUoKHBhZ2U6IFBhZ2VNb2RlbCkgPT4ge1xuICAgICAgICB0aGlzLmZpbGUuZ2V0KHBhcmFtKS5wYWdlc1tpIC0gMV0gPSBwYWdlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdXBsb2FkKCRldmVudDogc3RyaW5nKSB7XG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5hY3RpdmVQYW5lbDtcbiAgICB0aGlzLl9jb21wYXJpc29uU2VydmljZS51cGxvYWQobnVsbCwgJGV2ZW50LCB0aGlzLnJld3JpdGVDb25maWcpLnN1YnNjcmliZSgob2JqOiBGaWxlQ3JlZGVudGlhbHMpID0+IHtcbiAgICAgIHRoaXMuZ2V0RmlsZShvYmouZ3VpZCwgJycsIGFjdGl2ZSk7XG4gICAgICB0aGlzLnNlbGVjdERpcignJyk7XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVGaWxlTmFtZXMoKSB7XG4gICAgdGhpcy5maXJzdEZpbGVOYW1lID0gdGhpcy5nZXRGaXJzdEZpbGVOYW1lKCk7XG4gICAgdGhpcy5zZWNvbmRGaWxlTmFtZSA9IHRoaXMuZ2V0U2Vjb25kRmlsZU5hbWUoKTtcbiAgfVxuXG4gIGdldFNlY29uZEZpbGVOYW1lKCkge1xuICAgIGNvbnN0IGZpbGVDcmVkZW50aWFscyA9IHRoaXMuY3JlZGVudGlhbHMgPyB0aGlzLmNyZWRlbnRpYWxzLmdldCh0aGlzLnNlY29uZCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGZpbGVDcmVkZW50aWFscyA/IGZpbGVDcmVkZW50aWFscy5ndWlkLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKSA6ICcnO1xuICB9XG5cbiAgZ2V0Rmlyc3RGaWxlTmFtZSgpIHtcbiAgICBjb25zdCBmaWxlQ3JlZGVudGlhbHMgPSB0aGlzLmNyZWRlbnRpYWxzID8gdGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5maXJzdCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGZpbGVDcmVkZW50aWFscyA/IGZpbGVDcmVkZW50aWFscy5ndWlkLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKSA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1ByZWxvYWQocGFuZWw6IHN0cmluZywgcGFnZTogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLmZpbGUuZ2V0KHBhbmVsKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGZvciAobGV0IGkgPSBwYWdlOyBpIDwgcGFnZSArIDI7IGkrKykge1xuICAgICAgaWYgKGkgPiAwICYmIGkgPD0gdGhpcy5jb3VudFBhZ2VzICYmICF0aGlzLmZpbGUuZ2V0KHBhbmVsKS5wYWdlc1tpIC0gMV0uZGF0YSkge1xuICAgICAgICB0aGlzLnByZWxvYWRQYWdlcyhwYW5lbCwgaSwgaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29tcGFyZSgpIHtcbiAgICBpZiAodGhpcy5jcmVkZW50aWFscy5zaXplICE9PSAyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVzdWx0VGFiRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBjb25zdCBhcnIgPSBbXTtcbiAgICBhcnIucHVzaCh0aGlzLmNyZWRlbnRpYWxzLmdldCh0aGlzLmZpcnN0KSk7XG4gICAgYXJyLnB1c2godGhpcy5jcmVkZW50aWFscy5nZXQodGhpcy5zZWNvbmQpKTtcbiAgICB0aGlzLl9jb21wYXJpc29uU2VydmljZS5jb21wYXJlKGFycikuc3Vic2NyaWJlKChyZXN1bHQ6IENvbXBhcmVSZXN1bHQpID0+IHtcbiAgICAgIHRoaXMucmVzdWx0ID0gcmVzdWx0O1xuXG4gICAgICBjb25zdCBpc1plcm9CYXNlZFBhZ2VJZCA9IHRoaXMucmVzdWx0LmNoYW5nZXMuZmluZCgoY2hhbmdlKSA9PiBjaGFuZ2UucGFnZUluZm8uaWQgPT09IDApO1xuXG4gICAgICB0aGlzLnJlc3VsdC5jaGFuZ2VzLmZvckVhY2goIChjaGFuZ2UpID0+IHtcbiAgICAgICAgY2hhbmdlLmlkID0gdGhpcy5nZW5lcmF0ZVJhbmRvbUludGVnZXIoKTtcbiAgICAgICAgY29uc3QgemVyb0Jhc2VkSWQgPSBpc1plcm9CYXNlZFBhZ2VJZCA/IGNoYW5nZS5wYWdlSW5mby5pZCA6IGNoYW5nZS5wYWdlSW5mby5pZCAtIDE7XG4gICAgICAgIGNoYW5nZS5wYWdlSW5mby5pZCA9IGlzWmVyb0Jhc2VkUGFnZUlkID8gY2hhbmdlLnBhZ2VJbmZvLmlkIDogY2hhbmdlLnBhZ2VJbmZvLmlkIC0gMTtcbiAgICAgICAgaWYoIXRoaXMucmVzdWx0LnBhZ2VzW3plcm9CYXNlZElkXS5jaGFuZ2VzKXtcbiAgICAgICAgICB0aGlzLnJlc3VsdC5wYWdlc1t6ZXJvQmFzZWRJZF0uY2hhbmdlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzdWx0LnBhZ2VzW3plcm9CYXNlZElkXS5jaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgY2hhbmdlLm5vcm1hbGl6ZWQgPSB7XG4gICAgICAgICAgeCA6IGNoYW5nZS5ib3gueCAqIDEwMCAvIGNoYW5nZS5wYWdlSW5mby53aWR0aCxcbiAgICAgICAgICB5IDogY2hhbmdlLmJveC55ICogMTAwIC8gY2hhbmdlLnBhZ2VJbmZvLmhlaWdodCxcbiAgICAgICAgICB3aWR0aDogY2hhbmdlLmJveC53aWR0aCAqIDEwMCAvIGNoYW5nZS5wYWdlSW5mby53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IGNoYW5nZS5ib3guaGVpZ2h0ICogMTAwIC8gY2hhbmdlLnBhZ2VJbmZvLmhlaWdodCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0sIChlcnIgPT4ge1xuICAgICAgdGhpcy5yZXN1bHRUYWJEaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLl90YWJBY3RpdmF0b3JTZXJ2aWNlLmNoYW5nZUFjdGl2ZVRhYih0aGlzLmZpbGVzVGFiKTtcbiAgICB9KSk7XG4gICAgdGhpcy5fdGFiQWN0aXZhdG9yU2VydmljZS5jaGFuZ2VBY3RpdmVUYWIodGhpcy5yZXN1bHRUYWIpO1xuICB9XG5cbiAgZ2VuZXJhdGVSYW5kb21JbnRlZ2VyKCkge1xuICAgIGZ1bmN0aW9uIF9wOChzKSB7XG4gICAgICAgIGNvbnN0IHAgPSAoTWF0aC5yYW5kb20oKS50b1N0cmluZygxNikgKyBcIjAwMDAwMDAwMFwiKS5zdWJzdHIoMiwgOCk7XG4gICAgICAgIHJldHVybiBzID8gXCItXCIgKyBwLnN1YnN0cigwLCA0KSArIFwiLVwiICsgcC5zdWJzdHIoNCwgNCkgOiBwO1xuICAgIH1cbiAgICByZXR1cm4gX3A4KG51bGwpICsgX3A4KHRydWUpICsgX3A4KHRydWUpICsgX3A4KG51bGwpO1xuICB9XG5cbiAgZG93bmxvYWQoKSB7XG4gICAgaWYgKCF0aGlzLnJlc3VsdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHsnZ3VpZCc6IHRoaXMucmVzdWx0Lmd1aWQsICdwYXNzd29yZCc6ICcnfTtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMuX2NvbXBhcmlzb25TZXJ2aWNlLmdldERvd25sb2FkVXJsKGNyZWRlbnRpYWxzKSk7XG4gIH1cblxuICBoaWRlU2lkZVBhbmVsKCRldmVudCkge1xuICAgIHRoaXMuYWN0aXZlVGFiID0gJGV2ZW50ID8gdGhpcy5maWxlc1RhYiA6IHRoaXMucmVzdWx0VGFiO1xuICAgIHRoaXMuX3RhYkFjdGl2YXRvclNlcnZpY2UuY2hhbmdlQWN0aXZlVGFiKHRoaXMuZmlsZXNUYWIpO1xuICB9XG5cblxuXG59XG4iXX0= \ No newline at end of file diff --git a/dist/libs/comparison/esm5/lib/result-document/result-document.component.js b/dist/libs/comparison/esm5/lib/result-document/result-document.component.js index c374fb3ed..d8dfaf3fe 100644 --- a/dist/libs/comparison/esm5/lib/result-document/result-document.component.js +++ b/dist/libs/comparison/esm5/lib/result-document/result-document.component.js @@ -37,11 +37,11 @@ var ResultDocumentComponent = /** @class */ (function (_super) { ResultDocumentComponent.decorators = [ { type: Component, args: [{ selector: 'gd-result-document', - template: "
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n", + template: "
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n", // @TODO: this is replicated from base component until styles inheritance supported added to angular providers: [ZoomService], viewProviders: [ZoomDirective], - styles: [":host{overflow:scroll}.document{background-color:#e7e7e7;width:100%;height:100%;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] + styles: [".document{background-color:#e7e7e7;width:100%;height:100%;overflow-x:hidden;overflow-y:auto!important;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] }] } ]; /** @nocollapse */ @@ -61,4 +61,4 @@ if (false) { */ ResultDocumentComponent.prototype.changesService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWRvY3VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21wYXJpc29uLyIsInNvdXJjZXMiOlsibGliL3Jlc3VsdC1kb2N1bWVudC9yZXN1bHQtZG9jdW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRyxPQUFPLEVBQUMsV0FBVyxFQUFDLGFBQWEsRUFBQyxNQUFPLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztJQUN0RCxDQUFDLEdBQUcsTUFBTTtBQUVoQjtJQU82QyxtREFBaUI7SUFHNUQsaUNBQVksV0FBb0MsRUFDcEMsV0FBd0IsRUFDeEIsYUFBa0MsRUFDbEMsYUFBNEI7UUFIeEMsWUFJRSxrQkFBTSxXQUFXLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQyxTQUUvQztRQURDLEtBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDOztJQUN0QyxDQUFDOzs7O0lBRUQsdUNBQUs7OztJQUFMO1FBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDM0MsQ0FBQzs7OztJQUVELDBDQUFROzs7SUFBUjtJQUNBLENBQUM7O2dCQXZCRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsZzNCQUErQzs7b0JBRS9DLFNBQVMsRUFBRyxDQUFDLFdBQVcsQ0FBQztvQkFDekIsYUFBYSxFQUFHLENBQUMsYUFBYSxDQUFDOztpQkFDaEM7Ozs7Z0JBYm1CLFVBQVU7Z0JBRXRCLFdBQVc7Z0JBRVYsa0JBQWtCO2dCQUhDLGFBQWE7O0lBOEJ6Qyw4QkFBQztDQUFBLEFBeEJELENBTzZDLGlCQUFpQixHQWlCN0Q7U0FqQlksdUJBQXVCOzs7Ozs7SUFDbEMsaURBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudENvbXBvbmVudCwgV2luZG93U2VydmljZSB9IGZyb20gJ0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cyc7XG5pbXBvcnQge1pvb21TZXJ2aWNlLFpvb21EaXJlY3RpdmV9IGZyb20gICdAZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0ICogYXMganF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgeyBEaWZmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi9kaWZmZXJlbmNlcy5zZXJ2aWNlJztcbmNvbnN0ICQgPSBqcXVlcnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dkLXJlc3VsdC1kb2N1bWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHQtZG9jdW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXN1bHQtZG9jdW1lbnQuY29tcG9uZW50Lmxlc3MnXSwgLy8gQFRPRE86IHRoaXMgaXMgcmVwbGljYXRlZCBmcm9tIGJhc2UgY29tcG9uZW50IHVudGlsIHN0eWxlcyBpbmhlcml0YW5jZSBzdXBwb3J0ZWQgYWRkZWQgdG8gYW5ndWxhclxuICBwcm92aWRlcnMgOiBbWm9vbVNlcnZpY2VdLFxuICB2aWV3UHJvdmlkZXJzIDogW1pvb21EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFJlc3VsdERvY3VtZW50Q29tcG9uZW50IGV4dGVuZHMgRG9jdW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgIHtcbiAgcHJpdmF0ZSBjaGFuZ2VzU2VydmljZSA6IERpZmZlcmVuY2VzU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICAgICAgICAgICAgY2hhbmdlU2VydmljZSA6IERpZmZlcmVuY2VzU2VydmljZSxcbiAgICAgICAgICAgICAgd2luZG93U2VydmljZTogV2luZG93U2VydmljZSkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCB6b29tU2VydmljZSwgd2luZG93U2VydmljZSk7XG4gICAgdGhpcy5jaGFuZ2VzU2VydmljZSA9IGNoYW5nZVNlcnZpY2U7XG4gIH1cblxuICBjbG9zZSgpe1xuICAgIHRoaXMuY2hhbmdlc1NlcnZpY2Uuc2V0QWN0aXZlQ2hhbmdlKG51bGwpXG4gIH1cblxuICBuZ09uSW5pdCgpe1xuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWRvY3VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21wYXJpc29uLyIsInNvdXJjZXMiOlsibGliL3Jlc3VsdC1kb2N1bWVudC9yZXN1bHQtZG9jdW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRyxPQUFPLEVBQUMsV0FBVyxFQUFDLGFBQWEsRUFBQyxNQUFPLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztJQUN0RCxDQUFDLEdBQUcsTUFBTTtBQUVoQjtJQU82QyxtREFBaUI7SUFHNUQsaUNBQVksV0FBb0MsRUFDcEMsV0FBd0IsRUFDeEIsYUFBa0MsRUFDbEMsYUFBNEI7UUFIeEMsWUFJRSxrQkFBTSxXQUFXLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQyxTQUUvQztRQURDLEtBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDOztJQUN0QyxDQUFDOzs7O0lBRUQsdUNBQUs7OztJQUFMO1FBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDM0MsQ0FBQzs7OztJQUVELDBDQUFROzs7SUFBUjtJQUNBLENBQUM7O2dCQXZCRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsNjNCQUErQzs7b0JBRS9DLFNBQVMsRUFBRyxDQUFDLFdBQVcsQ0FBQztvQkFDekIsYUFBYSxFQUFHLENBQUMsYUFBYSxDQUFDOztpQkFDaEM7Ozs7Z0JBYm1CLFVBQVU7Z0JBRXRCLFdBQVc7Z0JBRVYsa0JBQWtCO2dCQUhDLGFBQWE7O0lBOEJ6Qyw4QkFBQztDQUFBLEFBeEJELENBTzZDLGlCQUFpQixHQWlCN0Q7U0FqQlksdUJBQXVCOzs7Ozs7SUFDbEMsaURBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudENvbXBvbmVudCwgV2luZG93U2VydmljZSB9IGZyb20gJ0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cyc7XG5pbXBvcnQge1pvb21TZXJ2aWNlLFpvb21EaXJlY3RpdmV9IGZyb20gICdAZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvY29tbW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0ICogYXMganF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgeyBEaWZmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi9kaWZmZXJlbmNlcy5zZXJ2aWNlJztcbmNvbnN0ICQgPSBqcXVlcnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dkLXJlc3VsdC1kb2N1bWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHQtZG9jdW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXN1bHQtZG9jdW1lbnQuY29tcG9uZW50Lmxlc3MnXSwgLy8gQFRPRE86IHRoaXMgaXMgcmVwbGljYXRlZCBmcm9tIGJhc2UgY29tcG9uZW50IHVudGlsIHN0eWxlcyBpbmhlcml0YW5jZSBzdXBwb3J0ZWQgYWRkZWQgdG8gYW5ndWxhclxuICBwcm92aWRlcnMgOiBbWm9vbVNlcnZpY2VdLFxuICB2aWV3UHJvdmlkZXJzIDogW1pvb21EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFJlc3VsdERvY3VtZW50Q29tcG9uZW50IGV4dGVuZHMgRG9jdW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgIHtcbiAgcHJpdmF0ZSBjaGFuZ2VzU2VydmljZSA6IERpZmZlcmVuY2VzU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICAgICAgICAgICAgY2hhbmdlU2VydmljZSA6IERpZmZlcmVuY2VzU2VydmljZSxcbiAgICAgICAgICAgICAgd2luZG93U2VydmljZTogV2luZG93U2VydmljZSkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCB6b29tU2VydmljZSwgd2luZG93U2VydmljZSk7XG4gICAgdGhpcy5jaGFuZ2VzU2VydmljZSA9IGNoYW5nZVNlcnZpY2U7XG4gIH1cblxuICBjbG9zZSgpe1xuICAgIHRoaXMuY2hhbmdlc1NlcnZpY2Uuc2V0QWN0aXZlQ2hhbmdlKG51bGwpXG4gIH1cblxuICBuZ09uSW5pdCgpe1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/dist/libs/comparison/fesm2015/groupdocs.examples.angular-comparison.js b/dist/libs/comparison/fesm2015/groupdocs.examples.angular-comparison.js index ae47456a4..d016e6b98 100644 --- a/dist/libs/comparison/fesm2015/groupdocs.examples.angular-comparison.js +++ b/dist/libs/comparison/fesm2015/groupdocs.examples.angular-comparison.js @@ -553,7 +553,7 @@ class ComparisonAppComponent { ComparisonAppComponent.decorators = [ { type: Component, args: [{ selector: 'gd-comparison', - template: "\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n", + template: "\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n", styles: ["@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.loader{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.upload-compare-file{height:100%;width:50%;border-right:1px solid #ccc;display:flex;align-content:center;flex-direction:column;text-align:center;flex-grow:0}.open-file-panel{display:flex;width:100%}.files-panel{background-color:#e7e7e7;display:flex;flex-direction:row;width:100%;height:100%}.result-panel{background-color:#e7e7e7;width:100%;height:100%;display:flex;align-content:center;flex-direction:column;justify-content:center;text-align:center}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:100%}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{background-color:#3e4e5a;width:100%}.row{display:flex;height:inherit}.column{width:100%}.tabs-wrapper{display:flex;justify-self:flex-end;align-self:flex-end;width:100%;justify-content:flex-end}.tabs{display:flex;margin-right:30px;align-items:flex-end;justify-content:flex-end}@media (max-width:1037px){.files-panel{flex-direction:column}.files-panel .upload-compare-file{width:100%;border-bottom:1px solid #ccc}/deep/ .gd-side-panel-wrapper{height:50%!important;top:inherit!important;bottom:0!important}}"] }] } ]; @@ -900,11 +900,11 @@ class ResultDocumentComponent extends DocumentComponent { ResultDocumentComponent.decorators = [ { type: Component, args: [{ selector: 'gd-result-document', - template: "
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n", + template: "
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n", // @TODO: this is replicated from base component until styles inheritance supported added to angular providers: [ZoomService], viewProviders: [ZoomDirective], - styles: [":host{overflow:scroll}.document{background-color:#e7e7e7;width:100%;height:100%;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] + styles: [".document{background-color:#e7e7e7;width:100%;height:100%;overflow-x:hidden;overflow-y:auto!important;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] }] } ]; /** @nocollapse */ diff --git a/dist/libs/comparison/fesm2015/groupdocs.examples.angular-comparison.js.map b/dist/libs/comparison/fesm2015/groupdocs.examples.angular-comparison.js.map index 31f855f19..280697865 100644 --- a/dist/libs/comparison/fesm2015/groupdocs.examples.angular-comparison.js.map +++ b/dist/libs/comparison/fesm2015/groupdocs.examples.angular-comparison.js.map @@ -1 +1 @@ -{"version":3,"file":"groupdocs.examples.angular-comparison.js","sources":["ng://@groupdocs.examples.angular/comparison/lib/comparison-config.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-config.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-app.component.ts","ng://@groupdocs.examples.angular/comparison/lib/add-file-panel/add-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/upload-file-panel/upload-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/models.ts","ng://@groupdocs.examples.angular/comparison/lib/differences.service.ts","ng://@groupdocs.examples.angular/comparison/lib/difference/difference.component.ts","ng://@groupdocs.examples.angular/comparison/lib/difference-highlight/difference-highlight.component.ts","ng://@groupdocs.examples.angular/comparison/lib/result-document/result-document.component.ts","ng://@groupdocs.examples.angular/comparison/lib/differences/differences.component.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.module.ts"],"sourcesContent":["export class ComparisonConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n preloadResultPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonConfigService {\n private _comparisonConfig: BehaviorSubject = new BehaviorSubject(new ComparisonConfig());\n private _updatedConfig: Observable = this._comparisonConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.COMPARISON_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ComparisonConfig) => {\n const comparisonConfig = response;\n this._comparisonConfig.next(comparisonConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load comparison config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getComparisonApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getComparisonApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?guid=' + credentials.guid;\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n compare(arr: FileCredentials[]) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.COMPARE_FILES, {'guids': arr}, Api.httpOptionsJson);\n }\n}\n","import {Component, ElementRef} from '@angular/core';\nimport * as jquery from 'jquery';\nimport {\n CommonModals,\n FileCredentials,\n FileDescription,\n FileModel,\n ModalService, PageModel, PagePreloadService, TabActivatorService, UploadFilesService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {ComparisonService} from \"./comparison.service\";\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {CompareResult} from \"./models\";\n\nconst $ = jquery;\n\nexport class Files {\n static FIRST = 'first';\n static SECOND = 'second';\n}\n\nexport class Highlight {\n id: string;\n active = false;\n}\n\n@Component({\n selector: 'gd-comparison',\n templateUrl: './comparison-app.component.html',\n styleUrls: ['./comparison-app.component.less']\n})\nexport class ComparisonAppComponent {\n files: FileModel[] = [];\n browseFilesModal = CommonModals.BrowseFiles;\n credentials: Map = new Map();\n file: Map = new Map();\n comparisonConfig: ComparisonConfig;\n activePanel: string;\n first = Files.FIRST;\n second = Files.SECOND;\n firstFileName: string = undefined;\n secondFileName: string = undefined;\n loadingFirstPanel = false;\n loadingSecondPanel = false;\n countPages = 0;\n result: CompareResult;\n filesTab = 'files';\n resultTab = 'result';\n activeTab = this.filesTab;\n resultTabDisabled = true;\n\n constructor(private _comparisonService: ComparisonService,\n private configService: ComparisonConfigService,\n uploadFilesService: UploadFilesService,\n pagePreloadService: PagePreloadService,\n private _modalService: ModalService,\n private _tabActivatorService: TabActivatorService,\n private _elementRef: ElementRef) {\n configService.updatedConfig.subscribe((config) => {\n this.comparisonConfig = config;\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.comparisonConfig.preloadResultPageCount !== 0) {\n this.checkPreload(this.first, page);\n this.checkPreload(this.second, page);\n }\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n const active = this.activePanel;\n this.setLoading(active, true);\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._comparisonService.upload(uploads.item(i), '', this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n }\n });\n\n _tabActivatorService.activeTabChange.subscribe((tabId: string) => {\n this.activeTab = tabId;\n });\n }\n\n private setLoading(panel: string, flag: boolean) {\n if (panel === this.first) {\n this.loadingFirstPanel = flag;\n } else {\n this.loadingSecondPanel = flag;\n }\n }\n\n get rewriteConfig(): boolean {\n return this.comparisonConfig ? this.comparisonConfig.rewrite : true;\n }\n\n selectDir($event: string) {\n this._comparisonService.loadFiles($event).subscribe((files: FileModel[]) => {\n let nameExt: string;\n if (this.credentials.get(this.first)) {\n nameExt = this.credentials.get(this.first).guid.split('.').pop();\n } else if (this.credentials.get(this.second)) {\n nameExt = this.credentials.get(this.second).guid.split('.').pop();\n }\n\n if (nameExt) {\n files = files.filter(function (value) {\n return value.directory || value.guid.split('.').pop() === nameExt;\n });\n }\n this.files = files || [];\n });\n }\n\n selectFile($event: string, password: string, modalId: string, param: string) {\n this.setLoading(param, true);\n this.getFile($event, password, param);\n this.selectDir('');\n this._modalService.close(modalId);\n this.clearData(param);\n }\n\n private getFile($event: string, password: string, param: string) {\n const credentials = {guid: $event, password: password};\n this.credentials.set(param, credentials);\n this._comparisonService.loadFile(credentials).subscribe((file: FileDescription) => {\n this.file.set(param, file);\n if (file) {\n const preloadResultPageCount = this.comparisonConfig.preloadResultPageCount;\n this.countPages = file.pages ? file.pages.length : 0;\n if (preloadResultPageCount > 0) {\n this.preloadPages(param, 1, preloadResultPageCount > this.countPages ? this.countPages : preloadResultPageCount);\n }\n }\n this.updateFileNames();\n this.setLoading(param, false);\n }\n );\n }\n\n clearFile(param: string) {\n this.clearData(param);\n this.credentials.delete(param);\n this.result = null;\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n private clearData(param) {\n if (!this.file || !this.file.size) {\n return;\n }\n this.file.delete(param);\n if (param === this.first) {\n this.firstFileName = undefined;\n } else {\n this.secondFileName = undefined;\n }\n }\n\n preloadPages(param: string, start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._comparisonService.loadPage(this.credentials.get(param), i).subscribe((page: PageModel) => {\n this.file.get(param).pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n const active = this.activePanel;\n this._comparisonService.upload(null, $event, this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n\n updateFileNames() {\n this.firstFileName = this.getFirstFileName();\n this.secondFileName = this.getSecondFileName();\n }\n\n getSecondFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.second) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n getFirstFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.first) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n private checkPreload(panel: string, page: number) {\n if (!this.file.get(panel)) {\n return\n }\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.get(panel).pages[i - 1].data) {\n this.preloadPages(panel, i, i);\n }\n }\n }\n\n compare() {\n if (this.credentials.size !== 2) {\n return;\n }\n this.resultTabDisabled = false;\n const arr = [];\n arr.push(this.credentials.get(this.first));\n arr.push(this.credentials.get(this.second));\n this._comparisonService.compare(arr).subscribe((result: CompareResult) => {\n this.result = result;\n\n const isZeroBasedPageId = this.result.changes.find((change) => change.pageInfo.id === 0);\n\n this.result.changes.forEach( (change) => {\n change.id = this.generateRandomInteger();\n const zeroBasedId = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n change.pageInfo.id = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n if(!this.result.pages[zeroBasedId].changes){\n this.result.pages[zeroBasedId].changes = [];\n }\n this.result.pages[zeroBasedId].changes.push(change);\n change.normalized = {\n x : change.box.x * 100 / change.pageInfo.width,\n y : change.box.y * 100 / change.pageInfo.height,\n width: change.box.width * 100 / change.pageInfo.width,\n height: change.box.height * 100 / change.pageInfo.height,\n };\n });\n }, (err => {\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }));\n this._tabActivatorService.changeActiveTab(this.resultTab);\n }\n\n generateRandomInteger() {\n function _p8(s) {\n const p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\n return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\n }\n return _p8(null) + _p8(true) + _p8(true) + _p8(null);\n }\n\n download() {\n if (!this.result) {\n return;\n }\n const credentials = {'guid': this.result.guid, 'password': ''};\n window.location.assign(this._comparisonService.getDownloadUrl(credentials));\n }\n\n hideSidePanel($event) {\n this.activeTab = $event ? this.filesTab : this.resultTab;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n\n\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileUtil,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\n\nexport class States {\n static Empty = 'empty';\n static Opened = 'opened';\n}\n\n@Component({\n selector: 'gd-add-file-panel',\n templateUrl: './add-file-panel.component.html',\n styleUrls: ['./add-file-panel.component.less']\n})\nexport class AddFilePanelComponent implements OnInit, OnChanges {\n @Input() panel: string;\n @Output() active = new EventEmitter();\n @Output() urlForUpload = new EventEmitter();\n @Output() cleanPanel = new EventEmitter();\n state = States.Empty;\n @Input() fileName: string;\n uploadDisabled = true;\n\n constructor(private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n ngOnInit() {\n }\n\n getFormatIcon() {\n return FileUtil.find(this.fileName, false).icon;\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n isEmpty() {\n return this.state === States.Empty;\n }\n\n cleanFile() {\n this.active.emit(this.panel);\n this.cleanPanel.emit(true);\n }\n\n uploadUrl(url: string) {\n if(this.uploadDisabled){\n return\n }\n if (url && (url.startsWith('http') || url.startsWith('file') || url.startsWith('ftp'))) {\n this.active.emit(this.panel);\n this.urlForUpload.emit(url);\n } else {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"Wrong url\");\n }\n }\n\n checkDisabled(url: string) {\n this.uploadDisabled = url ? url.length === 0 : true;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.fileName) {\n this.state = States.Opened;\n } else {\n this.state = States.Empty;\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {CommonModals, ModalService, UploadFilesService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-upload-file-panel',\n templateUrl: './upload-file-panel.component.html',\n styleUrls: ['./upload-file-panel.component.less']\n})\nexport class UploadFilePanelComponent implements OnInit {\n\n @Input() panel: string;\n @Output() active = new EventEmitter();\n\n constructor(private _uploadService: UploadFilesService,\n private _modalService: ModalService) {\n }\n\n ngOnInit() {\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n dropped($event) {\n if ($event) {\n this.active.emit(this.panel);\n }\n }\n}\n","import {PageModel} from \"@groupdocs.examples.angular/common-components\";\n\nexport class ComparedPageModel extends PageModel{\n changes: ChangeInfo[]\n}\n\nexport class CompareResult {\n changes: ChangeInfo[];\n pages: ComparedPageModel[];\n guid: string;\n}\n\nexport class ChangeInfo {\n pageInfo: PageInfo;\n text: string;\n type: number;\n box: Rectangle;\n id: string;\n styleChanges: StyleChange[];\n normalized: Rectangle;\n active: boolean;\n}\n\nexport class StyleChange {\n changedProperty: string;\n newValue: string;\n oldValue: string;\n}\n\nexport class Rectangle {\n x: number;\n y: number;\n width: number;\n height: number\n}\n\nexport class PageInfo {\n id: number;\n width: number;\n height: number;\n changes: ChangeInfo[];\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DifferencesService {\n\n private _activeChange = new BehaviorSubject(null);\n activeChange = this._activeChange.asObservable();\n\n constructor() {\n }\n\n setActiveChange(id : string){\n this._activeChange.next(id);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo, StyleChange } from '../models';\nimport { DifferencesService } from '../differences.service';\n\n@Component({\n selector: 'gd-comparison-difference',\n templateUrl: './difference.component.html',\n styleUrls: ['./difference.component.less']\n})\nexport class DifferenceComponent implements OnInit {\n @Input() change: ChangeInfo;\n active: boolean;\n\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n\n ngOnInit() {\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID)\n }\n\n getRgbaColor(value){\n return `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport {ChangeInfo} from \"../models\";\nimport { DifferencesService } from '../differences.service';\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Component({\n selector: 'gd-difference-highlight',\n templateUrl: './difference-highlight.component.html',\n styleUrls: ['./difference-highlight.component.less']\n})\nexport class DifferenceHighlightComponent implements OnInit{\n @Input() change: ChangeInfo;\n @Input() active: boolean;\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n ngOnInit(){\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID);\n }\n\n close(event: Event){\n this.changesService.setActiveChange(null);\n }\n\n highlight(id : string){\n this.changesService.setActiveChange(id);\n }\n}\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { DocumentComponent, WindowService } from '@groupdocs.examples.angular/common-components';\nimport {ZoomService,ZoomDirective} from '@groupdocs.examples.angular/common-components';\nimport * as jquery from 'jquery';\nimport { DifferencesService } from '../differences.service';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-result-document',\n templateUrl: './result-document.component.html',\n styleUrls: ['./result-document.component.less'], // @TODO: this is replicated from base component until styles inheritance supported added to angular\n providers : [ZoomService],\n viewProviders : [ZoomDirective]\n})\nexport class ResultDocumentComponent extends DocumentComponent implements OnInit {\n private changesService : DifferencesService;\n\n constructor(_elementRef: ElementRef,\n zoomService: ZoomService,\n changeService : DifferencesService,\n windowService: WindowService) {\n super(_elementRef, zoomService, windowService);\n this.changesService = changeService;\n }\n\n close(){\n this.changesService.setActiveChange(null)\n }\n\n ngOnInit(){\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo } from './../models';\nimport { DifferencesService } from '../differences.service';\nimport { NavigateService } from '@groupdocs.examples.angular/common-components';\n\n@Component({\n selector: 'gd-differences',\n templateUrl: './differences.component.html',\n styleUrls: ['./differences.component.less']\n})\nexport class DifferencesComponent implements OnInit {\n\n @Input() changes : ChangeInfo[] = [];\n private changesService : DifferencesService;\n private navigateService;\n\n constructor(changeService : DifferencesService,navigateService: NavigateService,) {\n this.changesService = changeService;\n this.navigateService = navigateService;\n }\n\n ngOnInit() {}\n\n\n highlightDifference(id: string,page: number,event : MouseEvent){\n event.stopPropagation();\n this.changesService.setActiveChange(id);\n this.navigateService.navigateTo(page+1);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport {APP_INITIALIZER, ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ComparisonAppComponent} from './comparison-app.component';\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport {fas} from '@fortawesome/free-solid-svg-icons';\nimport {far} from '@fortawesome/free-regular-svg-icons';\nimport {ComparisonService} from \"./comparison.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService,\n Api\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {AddFilePanelComponent} from './add-file-panel/add-file-panel.component';\nimport {UploadFilePanelComponent} from './upload-file-panel/upload-file-panel.component';\nimport {DifferenceComponent} from './difference/difference.component';\nimport {DifferenceHighlightComponent} from './difference-highlight/difference-highlight.component';\nimport { ResultDocumentComponent } from './result-document/result-document.component';\nimport { DifferencesComponent } from './differences/differences.component';\nimport { DifferencesService } from './differences.service';\nimport { ClickOutsideModule } from 'ng-click-outside';\n\nexport function initializeApp(comparisonConfigService: ComparisonConfigService) {\n const result = () => comparisonConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations: [ComparisonAppComponent, AddFilePanelComponent, UploadFilePanelComponent, DifferenceComponent, DifferenceHighlightComponent, ResultDocumentComponent, DifferencesComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule,\n ClickOutsideModule\n ],\n exports: [\n ComparisonAppComponent,\n CommonComponentsModule,\n ResultDocumentComponent,\n DifferencesComponent\n ],\n providers: [\n ComparisonService,\n ConfigService,\n DifferencesService,\n ComparisonConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ComparisonConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class ComparisonModule {\n constructor() {\n library.add(fas, far);\n }\n\n static forRoot(apiEndpoint: string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint;\n return {\n ngModule: ComparisonModule\n };\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"groupdocs.examples.angular-comparison.js","sources":["ng://@groupdocs.examples.angular/comparison/lib/comparison-config.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-config.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-app.component.ts","ng://@groupdocs.examples.angular/comparison/lib/add-file-panel/add-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/upload-file-panel/upload-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/models.ts","ng://@groupdocs.examples.angular/comparison/lib/differences.service.ts","ng://@groupdocs.examples.angular/comparison/lib/difference/difference.component.ts","ng://@groupdocs.examples.angular/comparison/lib/difference-highlight/difference-highlight.component.ts","ng://@groupdocs.examples.angular/comparison/lib/result-document/result-document.component.ts","ng://@groupdocs.examples.angular/comparison/lib/differences/differences.component.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.module.ts"],"sourcesContent":["export class ComparisonConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n preloadResultPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonConfigService {\n private _comparisonConfig: BehaviorSubject = new BehaviorSubject(new ComparisonConfig());\n private _updatedConfig: Observable = this._comparisonConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.COMPARISON_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ComparisonConfig) => {\n const comparisonConfig = response;\n this._comparisonConfig.next(comparisonConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load comparison config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getComparisonApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getComparisonApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?guid=' + credentials.guid;\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n compare(arr: FileCredentials[]) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.COMPARE_FILES, {'guids': arr}, Api.httpOptionsJson);\n }\n}\n","import {Component, ElementRef} from '@angular/core';\nimport * as jquery from 'jquery';\nimport {\n CommonModals,\n FileCredentials,\n FileDescription,\n FileModel,\n ModalService, PageModel, PagePreloadService, TabActivatorService, UploadFilesService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {ComparisonService} from \"./comparison.service\";\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {CompareResult} from \"./models\";\n\nconst $ = jquery;\n\nexport class Files {\n static FIRST = 'first';\n static SECOND = 'second';\n}\n\nexport class Highlight {\n id: string;\n active = false;\n}\n\n@Component({\n selector: 'gd-comparison',\n templateUrl: './comparison-app.component.html',\n styleUrls: ['./comparison-app.component.less']\n})\nexport class ComparisonAppComponent {\n files: FileModel[] = [];\n browseFilesModal = CommonModals.BrowseFiles;\n credentials: Map = new Map();\n file: Map = new Map();\n comparisonConfig: ComparisonConfig;\n activePanel: string;\n first = Files.FIRST;\n second = Files.SECOND;\n firstFileName: string = undefined;\n secondFileName: string = undefined;\n loadingFirstPanel = false;\n loadingSecondPanel = false;\n countPages = 0;\n result: CompareResult;\n filesTab = 'files';\n resultTab = 'result';\n activeTab = this.filesTab;\n resultTabDisabled = true;\n\n constructor(private _comparisonService: ComparisonService,\n private configService: ComparisonConfigService,\n uploadFilesService: UploadFilesService,\n pagePreloadService: PagePreloadService,\n private _modalService: ModalService,\n private _tabActivatorService: TabActivatorService,\n private _elementRef: ElementRef) {\n configService.updatedConfig.subscribe((config) => {\n this.comparisonConfig = config;\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.comparisonConfig.preloadResultPageCount !== 0) {\n this.checkPreload(this.first, page);\n this.checkPreload(this.second, page);\n }\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n const active = this.activePanel;\n this.setLoading(active, true);\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._comparisonService.upload(uploads.item(i), '', this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n }\n });\n\n _tabActivatorService.activeTabChange.subscribe((tabId: string) => {\n this.activeTab = tabId;\n });\n }\n\n private setLoading(panel: string, flag: boolean) {\n if (panel === this.first) {\n this.loadingFirstPanel = flag;\n } else {\n this.loadingSecondPanel = flag;\n }\n }\n\n get rewriteConfig(): boolean {\n return this.comparisonConfig ? this.comparisonConfig.rewrite : true;\n }\n\n selectDir($event: string) {\n this._comparisonService.loadFiles($event).subscribe((files: FileModel[]) => {\n let nameExt: string;\n if (this.credentials.get(this.first)) {\n nameExt = this.credentials.get(this.first).guid.split('.').pop();\n } else if (this.credentials.get(this.second)) {\n nameExt = this.credentials.get(this.second).guid.split('.').pop();\n }\n\n if (nameExt) {\n files = files.filter(function (value) {\n return value.directory || value.guid.split('.').pop() === nameExt;\n });\n }\n this.files = files || [];\n });\n }\n\n selectFile($event: string, password: string, modalId: string, param: string) {\n this.setLoading(param, true);\n this.getFile($event, password, param);\n this.selectDir('');\n this._modalService.close(modalId);\n this.clearData(param);\n }\n\n private getFile($event: string, password: string, param: string) {\n const credentials = {guid: $event, password: password};\n this.credentials.set(param, credentials);\n this._comparisonService.loadFile(credentials).subscribe((file: FileDescription) => {\n this.file.set(param, file);\n if (file) {\n const preloadResultPageCount = this.comparisonConfig.preloadResultPageCount;\n this.countPages = file.pages ? file.pages.length : 0;\n if (preloadResultPageCount > 0) {\n this.preloadPages(param, 1, preloadResultPageCount > this.countPages ? this.countPages : preloadResultPageCount);\n }\n }\n this.updateFileNames();\n this.setLoading(param, false);\n }\n );\n }\n\n clearFile(param: string) {\n this.clearData(param);\n this.credentials.delete(param);\n this.result = null;\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n private clearData(param) {\n if (!this.file || !this.file.size) {\n return;\n }\n this.file.delete(param);\n if (param === this.first) {\n this.firstFileName = undefined;\n } else {\n this.secondFileName = undefined;\n }\n }\n\n preloadPages(param: string, start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._comparisonService.loadPage(this.credentials.get(param), i).subscribe((page: PageModel) => {\n this.file.get(param).pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n const active = this.activePanel;\n this._comparisonService.upload(null, $event, this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n\n updateFileNames() {\n this.firstFileName = this.getFirstFileName();\n this.secondFileName = this.getSecondFileName();\n }\n\n getSecondFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.second) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n getFirstFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.first) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n private checkPreload(panel: string, page: number) {\n if (!this.file.get(panel)) {\n return\n }\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.get(panel).pages[i - 1].data) {\n this.preloadPages(panel, i, i);\n }\n }\n }\n\n compare() {\n if (this.credentials.size !== 2) {\n return;\n }\n this.resultTabDisabled = false;\n const arr = [];\n arr.push(this.credentials.get(this.first));\n arr.push(this.credentials.get(this.second));\n this._comparisonService.compare(arr).subscribe((result: CompareResult) => {\n this.result = result;\n\n const isZeroBasedPageId = this.result.changes.find((change) => change.pageInfo.id === 0);\n\n this.result.changes.forEach( (change) => {\n change.id = this.generateRandomInteger();\n const zeroBasedId = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n change.pageInfo.id = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n if(!this.result.pages[zeroBasedId].changes){\n this.result.pages[zeroBasedId].changes = [];\n }\n this.result.pages[zeroBasedId].changes.push(change);\n change.normalized = {\n x : change.box.x * 100 / change.pageInfo.width,\n y : change.box.y * 100 / change.pageInfo.height,\n width: change.box.width * 100 / change.pageInfo.width,\n height: change.box.height * 100 / change.pageInfo.height,\n };\n });\n }, (err => {\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }));\n this._tabActivatorService.changeActiveTab(this.resultTab);\n }\n\n generateRandomInteger() {\n function _p8(s) {\n const p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\n return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\n }\n return _p8(null) + _p8(true) + _p8(true) + _p8(null);\n }\n\n download() {\n if (!this.result) {\n return;\n }\n const credentials = {'guid': this.result.guid, 'password': ''};\n window.location.assign(this._comparisonService.getDownloadUrl(credentials));\n }\n\n hideSidePanel($event) {\n this.activeTab = $event ? this.filesTab : this.resultTab;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n\n\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileUtil,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\n\nexport class States {\n static Empty = 'empty';\n static Opened = 'opened';\n}\n\n@Component({\n selector: 'gd-add-file-panel',\n templateUrl: './add-file-panel.component.html',\n styleUrls: ['./add-file-panel.component.less']\n})\nexport class AddFilePanelComponent implements OnInit, OnChanges {\n @Input() panel: string;\n @Output() active = new EventEmitter();\n @Output() urlForUpload = new EventEmitter();\n @Output() cleanPanel = new EventEmitter();\n state = States.Empty;\n @Input() fileName: string;\n uploadDisabled = true;\n\n constructor(private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n ngOnInit() {\n }\n\n getFormatIcon() {\n return FileUtil.find(this.fileName, false).icon;\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n isEmpty() {\n return this.state === States.Empty;\n }\n\n cleanFile() {\n this.active.emit(this.panel);\n this.cleanPanel.emit(true);\n }\n\n uploadUrl(url: string) {\n if(this.uploadDisabled){\n return\n }\n if (url && (url.startsWith('http') || url.startsWith('file') || url.startsWith('ftp'))) {\n this.active.emit(this.panel);\n this.urlForUpload.emit(url);\n } else {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"Wrong url\");\n }\n }\n\n checkDisabled(url: string) {\n this.uploadDisabled = url ? url.length === 0 : true;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.fileName) {\n this.state = States.Opened;\n } else {\n this.state = States.Empty;\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {CommonModals, ModalService, UploadFilesService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-upload-file-panel',\n templateUrl: './upload-file-panel.component.html',\n styleUrls: ['./upload-file-panel.component.less']\n})\nexport class UploadFilePanelComponent implements OnInit {\n\n @Input() panel: string;\n @Output() active = new EventEmitter();\n\n constructor(private _uploadService: UploadFilesService,\n private _modalService: ModalService) {\n }\n\n ngOnInit() {\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n dropped($event) {\n if ($event) {\n this.active.emit(this.panel);\n }\n }\n}\n","import {PageModel} from \"@groupdocs.examples.angular/common-components\";\n\nexport class ComparedPageModel extends PageModel{\n changes: ChangeInfo[]\n}\n\nexport class CompareResult {\n changes: ChangeInfo[];\n pages: ComparedPageModel[];\n guid: string;\n}\n\nexport class ChangeInfo {\n pageInfo: PageInfo;\n text: string;\n type: number;\n box: Rectangle;\n id: string;\n styleChanges: StyleChange[];\n normalized: Rectangle;\n active: boolean;\n}\n\nexport class StyleChange {\n changedProperty: string;\n newValue: string;\n oldValue: string;\n}\n\nexport class Rectangle {\n x: number;\n y: number;\n width: number;\n height: number\n}\n\nexport class PageInfo {\n id: number;\n width: number;\n height: number;\n changes: ChangeInfo[];\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DifferencesService {\n\n private _activeChange = new BehaviorSubject(null);\n activeChange = this._activeChange.asObservable();\n\n constructor() {\n }\n\n setActiveChange(id : string){\n this._activeChange.next(id);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo, StyleChange } from '../models';\nimport { DifferencesService } from '../differences.service';\n\n@Component({\n selector: 'gd-comparison-difference',\n templateUrl: './difference.component.html',\n styleUrls: ['./difference.component.less']\n})\nexport class DifferenceComponent implements OnInit {\n @Input() change: ChangeInfo;\n active: boolean;\n\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n\n ngOnInit() {\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID)\n }\n\n getRgbaColor(value){\n return `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport {ChangeInfo} from \"../models\";\nimport { DifferencesService } from '../differences.service';\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Component({\n selector: 'gd-difference-highlight',\n templateUrl: './difference-highlight.component.html',\n styleUrls: ['./difference-highlight.component.less']\n})\nexport class DifferenceHighlightComponent implements OnInit{\n @Input() change: ChangeInfo;\n @Input() active: boolean;\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n ngOnInit(){\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID);\n }\n\n close(event: Event){\n this.changesService.setActiveChange(null);\n }\n\n highlight(id : string){\n this.changesService.setActiveChange(id);\n }\n}\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { DocumentComponent, WindowService } from '@groupdocs.examples.angular/common-components';\nimport {ZoomService,ZoomDirective} from '@groupdocs.examples.angular/common-components';\nimport * as jquery from 'jquery';\nimport { DifferencesService } from '../differences.service';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-result-document',\n templateUrl: './result-document.component.html',\n styleUrls: ['./result-document.component.less'], // @TODO: this is replicated from base component until styles inheritance supported added to angular\n providers : [ZoomService],\n viewProviders : [ZoomDirective]\n})\nexport class ResultDocumentComponent extends DocumentComponent implements OnInit {\n private changesService : DifferencesService;\n\n constructor(_elementRef: ElementRef,\n zoomService: ZoomService,\n changeService : DifferencesService,\n windowService: WindowService) {\n super(_elementRef, zoomService, windowService);\n this.changesService = changeService;\n }\n\n close(){\n this.changesService.setActiveChange(null)\n }\n\n ngOnInit(){\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo } from './../models';\nimport { DifferencesService } from '../differences.service';\nimport { NavigateService } from '@groupdocs.examples.angular/common-components';\n\n@Component({\n selector: 'gd-differences',\n templateUrl: './differences.component.html',\n styleUrls: ['./differences.component.less']\n})\nexport class DifferencesComponent implements OnInit {\n\n @Input() changes : ChangeInfo[] = [];\n private changesService : DifferencesService;\n private navigateService;\n\n constructor(changeService : DifferencesService,navigateService: NavigateService,) {\n this.changesService = changeService;\n this.navigateService = navigateService;\n }\n\n ngOnInit() {}\n\n\n highlightDifference(id: string,page: number,event : MouseEvent){\n event.stopPropagation();\n this.changesService.setActiveChange(id);\n this.navigateService.navigateTo(page+1);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport {APP_INITIALIZER, ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ComparisonAppComponent} from './comparison-app.component';\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport {fas} from '@fortawesome/free-solid-svg-icons';\nimport {far} from '@fortawesome/free-regular-svg-icons';\nimport {ComparisonService} from \"./comparison.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService,\n Api\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {AddFilePanelComponent} from './add-file-panel/add-file-panel.component';\nimport {UploadFilePanelComponent} from './upload-file-panel/upload-file-panel.component';\nimport {DifferenceComponent} from './difference/difference.component';\nimport {DifferenceHighlightComponent} from './difference-highlight/difference-highlight.component';\nimport { ResultDocumentComponent } from './result-document/result-document.component';\nimport { DifferencesComponent } from './differences/differences.component';\nimport { DifferencesService } from './differences.service';\nimport { ClickOutsideModule } from 'ng-click-outside';\n\nexport function initializeApp(comparisonConfigService: ComparisonConfigService) {\n const result = () => comparisonConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations: [ComparisonAppComponent, AddFilePanelComponent, UploadFilePanelComponent, DifferenceComponent, DifferenceHighlightComponent, ResultDocumentComponent, DifferencesComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule,\n ClickOutsideModule\n ],\n exports: [\n ComparisonAppComponent,\n CommonComponentsModule,\n ResultDocumentComponent,\n DifferencesComponent\n ],\n providers: [\n ComparisonService,\n ConfigService,\n DifferencesService,\n ComparisonConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ComparisonConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class ComparisonModule {\n constructor() {\n library.add(fas, far);\n }\n\n static forRoot(apiEndpoint: string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint;\n return {\n ngModule: ComparisonModule\n };\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/libs/comparison/fesm5/groupdocs.examples.angular-comparison.js b/dist/libs/comparison/fesm5/groupdocs.examples.angular-comparison.js index 1ed36977b..2e3147320 100644 --- a/dist/libs/comparison/fesm5/groupdocs.examples.angular-comparison.js +++ b/dist/libs/comparison/fesm5/groupdocs.examples.angular-comparison.js @@ -672,7 +672,7 @@ var ComparisonAppComponent = /** @class */ (function () { ComparisonAppComponent.decorators = [ { type: Component, args: [{ selector: 'gd-comparison', - template: "\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n", + template: "\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n", styles: ["@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.loader{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.upload-compare-file{height:100%;width:50%;border-right:1px solid #ccc;display:flex;align-content:center;flex-direction:column;text-align:center;flex-grow:0}.open-file-panel{display:flex;width:100%}.files-panel{background-color:#e7e7e7;display:flex;flex-direction:row;width:100%;height:100%}.result-panel{background-color:#e7e7e7;width:100%;height:100%;display:flex;align-content:center;flex-direction:column;justify-content:center;text-align:center}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:100%}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{background-color:#3e4e5a;width:100%}.row{display:flex;height:inherit}.column{width:100%}.tabs-wrapper{display:flex;justify-self:flex-end;align-self:flex-end;width:100%;justify-content:flex-end}.tabs{display:flex;margin-right:30px;align-items:flex-end;justify-content:flex-end}@media (max-width:1037px){.files-panel{flex-direction:column}.files-panel .upload-compare-file{width:100%;border-bottom:1px solid #ccc}/deep/ .gd-side-panel-wrapper{height:50%!important;top:inherit!important;bottom:0!important}}"] }] } ]; @@ -1097,11 +1097,11 @@ var ResultDocumentComponent = /** @class */ (function (_super) { ResultDocumentComponent.decorators = [ { type: Component, args: [{ selector: 'gd-result-document', - template: "
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n", + template: "
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n", // @TODO: this is replicated from base component until styles inheritance supported added to angular providers: [ZoomService], viewProviders: [ZoomDirective], - styles: [":host{overflow:scroll}.document{background-color:#e7e7e7;width:100%;height:100%;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] + styles: [".document{background-color:#e7e7e7;width:100%;height:100%;overflow-x:hidden;overflow-y:auto!important;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"] }] } ]; /** @nocollapse */ diff --git a/dist/libs/comparison/fesm5/groupdocs.examples.angular-comparison.js.map b/dist/libs/comparison/fesm5/groupdocs.examples.angular-comparison.js.map index 7e1e20116..fbb0fb45d 100644 --- a/dist/libs/comparison/fesm5/groupdocs.examples.angular-comparison.js.map +++ b/dist/libs/comparison/fesm5/groupdocs.examples.angular-comparison.js.map @@ -1 +1 @@ -{"version":3,"file":"groupdocs.examples.angular-comparison.js","sources":["ng://@groupdocs.examples.angular/comparison/lib/comparison-config.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-config.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-app.component.ts","ng://@groupdocs.examples.angular/comparison/lib/add-file-panel/add-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/upload-file-panel/upload-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/models.ts","ng://@groupdocs.examples.angular/comparison/lib/differences.service.ts","ng://@groupdocs.examples.angular/comparison/lib/difference/difference.component.ts","ng://@groupdocs.examples.angular/comparison/lib/difference-highlight/difference-highlight.component.ts","ng://@groupdocs.examples.angular/comparison/lib/result-document/result-document.component.ts","ng://@groupdocs.examples.angular/comparison/lib/differences/differences.component.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.module.ts"],"sourcesContent":["export class ComparisonConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n preloadResultPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonConfigService {\n private _comparisonConfig: BehaviorSubject = new BehaviorSubject(new ComparisonConfig());\n private _updatedConfig: Observable = this._comparisonConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.COMPARISON_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ComparisonConfig) => {\n const comparisonConfig = response;\n this._comparisonConfig.next(comparisonConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load comparison config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getComparisonApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getComparisonApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?guid=' + credentials.guid;\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n compare(arr: FileCredentials[]) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.COMPARE_FILES, {'guids': arr}, Api.httpOptionsJson);\n }\n}\n","import {Component, ElementRef} from '@angular/core';\nimport * as jquery from 'jquery';\nimport {\n CommonModals,\n FileCredentials,\n FileDescription,\n FileModel,\n ModalService, PageModel, PagePreloadService, TabActivatorService, UploadFilesService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {ComparisonService} from \"./comparison.service\";\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {CompareResult} from \"./models\";\n\nconst $ = jquery;\n\nexport class Files {\n static FIRST = 'first';\n static SECOND = 'second';\n}\n\nexport class Highlight {\n id: string;\n active = false;\n}\n\n@Component({\n selector: 'gd-comparison',\n templateUrl: './comparison-app.component.html',\n styleUrls: ['./comparison-app.component.less']\n})\nexport class ComparisonAppComponent {\n files: FileModel[] = [];\n browseFilesModal = CommonModals.BrowseFiles;\n credentials: Map = new Map();\n file: Map = new Map();\n comparisonConfig: ComparisonConfig;\n activePanel: string;\n first = Files.FIRST;\n second = Files.SECOND;\n firstFileName: string = undefined;\n secondFileName: string = undefined;\n loadingFirstPanel = false;\n loadingSecondPanel = false;\n countPages = 0;\n result: CompareResult;\n filesTab = 'files';\n resultTab = 'result';\n activeTab = this.filesTab;\n resultTabDisabled = true;\n\n constructor(private _comparisonService: ComparisonService,\n private configService: ComparisonConfigService,\n uploadFilesService: UploadFilesService,\n pagePreloadService: PagePreloadService,\n private _modalService: ModalService,\n private _tabActivatorService: TabActivatorService,\n private _elementRef: ElementRef) {\n configService.updatedConfig.subscribe((config) => {\n this.comparisonConfig = config;\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.comparisonConfig.preloadResultPageCount !== 0) {\n this.checkPreload(this.first, page);\n this.checkPreload(this.second, page);\n }\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n const active = this.activePanel;\n this.setLoading(active, true);\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._comparisonService.upload(uploads.item(i), '', this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n }\n });\n\n _tabActivatorService.activeTabChange.subscribe((tabId: string) => {\n this.activeTab = tabId;\n });\n }\n\n private setLoading(panel: string, flag: boolean) {\n if (panel === this.first) {\n this.loadingFirstPanel = flag;\n } else {\n this.loadingSecondPanel = flag;\n }\n }\n\n get rewriteConfig(): boolean {\n return this.comparisonConfig ? this.comparisonConfig.rewrite : true;\n }\n\n selectDir($event: string) {\n this._comparisonService.loadFiles($event).subscribe((files: FileModel[]) => {\n let nameExt: string;\n if (this.credentials.get(this.first)) {\n nameExt = this.credentials.get(this.first).guid.split('.').pop();\n } else if (this.credentials.get(this.second)) {\n nameExt = this.credentials.get(this.second).guid.split('.').pop();\n }\n\n if (nameExt) {\n files = files.filter(function (value) {\n return value.directory || value.guid.split('.').pop() === nameExt;\n });\n }\n this.files = files || [];\n });\n }\n\n selectFile($event: string, password: string, modalId: string, param: string) {\n this.setLoading(param, true);\n this.getFile($event, password, param);\n this.selectDir('');\n this._modalService.close(modalId);\n this.clearData(param);\n }\n\n private getFile($event: string, password: string, param: string) {\n const credentials = {guid: $event, password: password};\n this.credentials.set(param, credentials);\n this._comparisonService.loadFile(credentials).subscribe((file: FileDescription) => {\n this.file.set(param, file);\n if (file) {\n const preloadResultPageCount = this.comparisonConfig.preloadResultPageCount;\n this.countPages = file.pages ? file.pages.length : 0;\n if (preloadResultPageCount > 0) {\n this.preloadPages(param, 1, preloadResultPageCount > this.countPages ? this.countPages : preloadResultPageCount);\n }\n }\n this.updateFileNames();\n this.setLoading(param, false);\n }\n );\n }\n\n clearFile(param: string) {\n this.clearData(param);\n this.credentials.delete(param);\n this.result = null;\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n private clearData(param) {\n if (!this.file || !this.file.size) {\n return;\n }\n this.file.delete(param);\n if (param === this.first) {\n this.firstFileName = undefined;\n } else {\n this.secondFileName = undefined;\n }\n }\n\n preloadPages(param: string, start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._comparisonService.loadPage(this.credentials.get(param), i).subscribe((page: PageModel) => {\n this.file.get(param).pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n const active = this.activePanel;\n this._comparisonService.upload(null, $event, this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n\n updateFileNames() {\n this.firstFileName = this.getFirstFileName();\n this.secondFileName = this.getSecondFileName();\n }\n\n getSecondFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.second) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n getFirstFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.first) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n private checkPreload(panel: string, page: number) {\n if (!this.file.get(panel)) {\n return\n }\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.get(panel).pages[i - 1].data) {\n this.preloadPages(panel, i, i);\n }\n }\n }\n\n compare() {\n if (this.credentials.size !== 2) {\n return;\n }\n this.resultTabDisabled = false;\n const arr = [];\n arr.push(this.credentials.get(this.first));\n arr.push(this.credentials.get(this.second));\n this._comparisonService.compare(arr).subscribe((result: CompareResult) => {\n this.result = result;\n\n const isZeroBasedPageId = this.result.changes.find((change) => change.pageInfo.id === 0);\n\n this.result.changes.forEach( (change) => {\n change.id = this.generateRandomInteger();\n const zeroBasedId = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n change.pageInfo.id = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n if(!this.result.pages[zeroBasedId].changes){\n this.result.pages[zeroBasedId].changes = [];\n }\n this.result.pages[zeroBasedId].changes.push(change);\n change.normalized = {\n x : change.box.x * 100 / change.pageInfo.width,\n y : change.box.y * 100 / change.pageInfo.height,\n width: change.box.width * 100 / change.pageInfo.width,\n height: change.box.height * 100 / change.pageInfo.height,\n };\n });\n }, (err => {\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }));\n this._tabActivatorService.changeActiveTab(this.resultTab);\n }\n\n generateRandomInteger() {\n function _p8(s) {\n const p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\n return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\n }\n return _p8(null) + _p8(true) + _p8(true) + _p8(null);\n }\n\n download() {\n if (!this.result) {\n return;\n }\n const credentials = {'guid': this.result.guid, 'password': ''};\n window.location.assign(this._comparisonService.getDownloadUrl(credentials));\n }\n\n hideSidePanel($event) {\n this.activeTab = $event ? this.filesTab : this.resultTab;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n\n\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileUtil,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\n\nexport class States {\n static Empty = 'empty';\n static Opened = 'opened';\n}\n\n@Component({\n selector: 'gd-add-file-panel',\n templateUrl: './add-file-panel.component.html',\n styleUrls: ['./add-file-panel.component.less']\n})\nexport class AddFilePanelComponent implements OnInit, OnChanges {\n @Input() panel: string;\n @Output() active = new EventEmitter();\n @Output() urlForUpload = new EventEmitter();\n @Output() cleanPanel = new EventEmitter();\n state = States.Empty;\n @Input() fileName: string;\n uploadDisabled = true;\n\n constructor(private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n ngOnInit() {\n }\n\n getFormatIcon() {\n return FileUtil.find(this.fileName, false).icon;\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n isEmpty() {\n return this.state === States.Empty;\n }\n\n cleanFile() {\n this.active.emit(this.panel);\n this.cleanPanel.emit(true);\n }\n\n uploadUrl(url: string) {\n if(this.uploadDisabled){\n return\n }\n if (url && (url.startsWith('http') || url.startsWith('file') || url.startsWith('ftp'))) {\n this.active.emit(this.panel);\n this.urlForUpload.emit(url);\n } else {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"Wrong url\");\n }\n }\n\n checkDisabled(url: string) {\n this.uploadDisabled = url ? url.length === 0 : true;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.fileName) {\n this.state = States.Opened;\n } else {\n this.state = States.Empty;\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {CommonModals, ModalService, UploadFilesService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-upload-file-panel',\n templateUrl: './upload-file-panel.component.html',\n styleUrls: ['./upload-file-panel.component.less']\n})\nexport class UploadFilePanelComponent implements OnInit {\n\n @Input() panel: string;\n @Output() active = new EventEmitter();\n\n constructor(private _uploadService: UploadFilesService,\n private _modalService: ModalService) {\n }\n\n ngOnInit() {\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n dropped($event) {\n if ($event) {\n this.active.emit(this.panel);\n }\n }\n}\n","import {PageModel} from \"@groupdocs.examples.angular/common-components\";\n\nexport class ComparedPageModel extends PageModel{\n changes: ChangeInfo[]\n}\n\nexport class CompareResult {\n changes: ChangeInfo[];\n pages: ComparedPageModel[];\n guid: string;\n}\n\nexport class ChangeInfo {\n pageInfo: PageInfo;\n text: string;\n type: number;\n box: Rectangle;\n id: string;\n styleChanges: StyleChange[];\n normalized: Rectangle;\n active: boolean;\n}\n\nexport class StyleChange {\n changedProperty: string;\n newValue: string;\n oldValue: string;\n}\n\nexport class Rectangle {\n x: number;\n y: number;\n width: number;\n height: number\n}\n\nexport class PageInfo {\n id: number;\n width: number;\n height: number;\n changes: ChangeInfo[];\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DifferencesService {\n\n private _activeChange = new BehaviorSubject(null);\n activeChange = this._activeChange.asObservable();\n\n constructor() {\n }\n\n setActiveChange(id : string){\n this._activeChange.next(id);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo, StyleChange } from '../models';\nimport { DifferencesService } from '../differences.service';\n\n@Component({\n selector: 'gd-comparison-difference',\n templateUrl: './difference.component.html',\n styleUrls: ['./difference.component.less']\n})\nexport class DifferenceComponent implements OnInit {\n @Input() change: ChangeInfo;\n active: boolean;\n\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n\n ngOnInit() {\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID)\n }\n\n getRgbaColor(value){\n return `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport {ChangeInfo} from \"../models\";\nimport { DifferencesService } from '../differences.service';\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Component({\n selector: 'gd-difference-highlight',\n templateUrl: './difference-highlight.component.html',\n styleUrls: ['./difference-highlight.component.less']\n})\nexport class DifferenceHighlightComponent implements OnInit{\n @Input() change: ChangeInfo;\n @Input() active: boolean;\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n ngOnInit(){\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID);\n }\n\n close(event: Event){\n this.changesService.setActiveChange(null);\n }\n\n highlight(id : string){\n this.changesService.setActiveChange(id);\n }\n}\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { DocumentComponent, WindowService } from '@groupdocs.examples.angular/common-components';\nimport {ZoomService,ZoomDirective} from '@groupdocs.examples.angular/common-components';\nimport * as jquery from 'jquery';\nimport { DifferencesService } from '../differences.service';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-result-document',\n templateUrl: './result-document.component.html',\n styleUrls: ['./result-document.component.less'], // @TODO: this is replicated from base component until styles inheritance supported added to angular\n providers : [ZoomService],\n viewProviders : [ZoomDirective]\n})\nexport class ResultDocumentComponent extends DocumentComponent implements OnInit {\n private changesService : DifferencesService;\n\n constructor(_elementRef: ElementRef,\n zoomService: ZoomService,\n changeService : DifferencesService,\n windowService: WindowService) {\n super(_elementRef, zoomService, windowService);\n this.changesService = changeService;\n }\n\n close(){\n this.changesService.setActiveChange(null)\n }\n\n ngOnInit(){\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo } from './../models';\nimport { DifferencesService } from '../differences.service';\nimport { NavigateService } from '@groupdocs.examples.angular/common-components';\n\n@Component({\n selector: 'gd-differences',\n templateUrl: './differences.component.html',\n styleUrls: ['./differences.component.less']\n})\nexport class DifferencesComponent implements OnInit {\n\n @Input() changes : ChangeInfo[] = [];\n private changesService : DifferencesService;\n private navigateService;\n\n constructor(changeService : DifferencesService,navigateService: NavigateService,) {\n this.changesService = changeService;\n this.navigateService = navigateService;\n }\n\n ngOnInit() {}\n\n\n highlightDifference(id: string,page: number,event : MouseEvent){\n event.stopPropagation();\n this.changesService.setActiveChange(id);\n this.navigateService.navigateTo(page+1);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport {APP_INITIALIZER, ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ComparisonAppComponent} from './comparison-app.component';\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport {fas} from '@fortawesome/free-solid-svg-icons';\nimport {far} from '@fortawesome/free-regular-svg-icons';\nimport {ComparisonService} from \"./comparison.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService,\n Api\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {AddFilePanelComponent} from './add-file-panel/add-file-panel.component';\nimport {UploadFilePanelComponent} from './upload-file-panel/upload-file-panel.component';\nimport {DifferenceComponent} from './difference/difference.component';\nimport {DifferenceHighlightComponent} from './difference-highlight/difference-highlight.component';\nimport { ResultDocumentComponent } from './result-document/result-document.component';\nimport { DifferencesComponent } from './differences/differences.component';\nimport { DifferencesService } from './differences.service';\nimport { ClickOutsideModule } from 'ng-click-outside';\n\nexport function initializeApp(comparisonConfigService: ComparisonConfigService) {\n const result = () => comparisonConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations: [ComparisonAppComponent, AddFilePanelComponent, UploadFilePanelComponent, DifferenceComponent, DifferenceHighlightComponent, ResultDocumentComponent, DifferencesComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule,\n ClickOutsideModule\n ],\n exports: [\n ComparisonAppComponent,\n CommonComponentsModule,\n ResultDocumentComponent,\n DifferencesComponent\n ],\n providers: [\n ComparisonService,\n ConfigService,\n DifferencesService,\n ComparisonConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ComparisonConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class ComparisonModule {\n constructor() {\n library.add(fas, far);\n }\n\n static forRoot(apiEndpoint: string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint;\n return {\n ngModule: ComparisonModule\n };\n }\n}\n"],"names":["tslib_1.__extends"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"groupdocs.examples.angular-comparison.js","sources":["ng://@groupdocs.examples.angular/comparison/lib/comparison-config.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-config.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.service.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison-app.component.ts","ng://@groupdocs.examples.angular/comparison/lib/add-file-panel/add-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/upload-file-panel/upload-file-panel.component.ts","ng://@groupdocs.examples.angular/comparison/lib/models.ts","ng://@groupdocs.examples.angular/comparison/lib/differences.service.ts","ng://@groupdocs.examples.angular/comparison/lib/difference/difference.component.ts","ng://@groupdocs.examples.angular/comparison/lib/difference-highlight/difference-highlight.component.ts","ng://@groupdocs.examples.angular/comparison/lib/result-document/result-document.component.ts","ng://@groupdocs.examples.angular/comparison/lib/differences/differences.component.ts","ng://@groupdocs.examples.angular/comparison/lib/comparison.module.ts"],"sourcesContent":["export class ComparisonConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n preloadResultPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonConfigService {\n private _comparisonConfig: BehaviorSubject = new BehaviorSubject(new ComparisonConfig());\n private _updatedConfig: Observable = this._comparisonConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.COMPARISON_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ComparisonConfig) => {\n const comparisonConfig = response;\n this._comparisonConfig.next(comparisonConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load comparison config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComparisonService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getComparisonApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getComparisonApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?guid=' + credentials.guid;\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n compare(arr: FileCredentials[]) {\n return this._http.post(this._config.getComparisonApiEndpoint() + Api.COMPARE_FILES, {'guids': arr}, Api.httpOptionsJson);\n }\n}\n","import {Component, ElementRef} from '@angular/core';\nimport * as jquery from 'jquery';\nimport {\n CommonModals,\n FileCredentials,\n FileDescription,\n FileModel,\n ModalService, PageModel, PagePreloadService, TabActivatorService, UploadFilesService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {ComparisonService} from \"./comparison.service\";\nimport {ComparisonConfig} from \"./comparison-config\";\nimport {CompareResult} from \"./models\";\n\nconst $ = jquery;\n\nexport class Files {\n static FIRST = 'first';\n static SECOND = 'second';\n}\n\nexport class Highlight {\n id: string;\n active = false;\n}\n\n@Component({\n selector: 'gd-comparison',\n templateUrl: './comparison-app.component.html',\n styleUrls: ['./comparison-app.component.less']\n})\nexport class ComparisonAppComponent {\n files: FileModel[] = [];\n browseFilesModal = CommonModals.BrowseFiles;\n credentials: Map = new Map();\n file: Map = new Map();\n comparisonConfig: ComparisonConfig;\n activePanel: string;\n first = Files.FIRST;\n second = Files.SECOND;\n firstFileName: string = undefined;\n secondFileName: string = undefined;\n loadingFirstPanel = false;\n loadingSecondPanel = false;\n countPages = 0;\n result: CompareResult;\n filesTab = 'files';\n resultTab = 'result';\n activeTab = this.filesTab;\n resultTabDisabled = true;\n\n constructor(private _comparisonService: ComparisonService,\n private configService: ComparisonConfigService,\n uploadFilesService: UploadFilesService,\n pagePreloadService: PagePreloadService,\n private _modalService: ModalService,\n private _tabActivatorService: TabActivatorService,\n private _elementRef: ElementRef) {\n configService.updatedConfig.subscribe((config) => {\n this.comparisonConfig = config;\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.comparisonConfig.preloadResultPageCount !== 0) {\n this.checkPreload(this.first, page);\n this.checkPreload(this.second, page);\n }\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n const active = this.activePanel;\n this.setLoading(active, true);\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._comparisonService.upload(uploads.item(i), '', this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n }\n });\n\n _tabActivatorService.activeTabChange.subscribe((tabId: string) => {\n this.activeTab = tabId;\n });\n }\n\n private setLoading(panel: string, flag: boolean) {\n if (panel === this.first) {\n this.loadingFirstPanel = flag;\n } else {\n this.loadingSecondPanel = flag;\n }\n }\n\n get rewriteConfig(): boolean {\n return this.comparisonConfig ? this.comparisonConfig.rewrite : true;\n }\n\n selectDir($event: string) {\n this._comparisonService.loadFiles($event).subscribe((files: FileModel[]) => {\n let nameExt: string;\n if (this.credentials.get(this.first)) {\n nameExt = this.credentials.get(this.first).guid.split('.').pop();\n } else if (this.credentials.get(this.second)) {\n nameExt = this.credentials.get(this.second).guid.split('.').pop();\n }\n\n if (nameExt) {\n files = files.filter(function (value) {\n return value.directory || value.guid.split('.').pop() === nameExt;\n });\n }\n this.files = files || [];\n });\n }\n\n selectFile($event: string, password: string, modalId: string, param: string) {\n this.setLoading(param, true);\n this.getFile($event, password, param);\n this.selectDir('');\n this._modalService.close(modalId);\n this.clearData(param);\n }\n\n private getFile($event: string, password: string, param: string) {\n const credentials = {guid: $event, password: password};\n this.credentials.set(param, credentials);\n this._comparisonService.loadFile(credentials).subscribe((file: FileDescription) => {\n this.file.set(param, file);\n if (file) {\n const preloadResultPageCount = this.comparisonConfig.preloadResultPageCount;\n this.countPages = file.pages ? file.pages.length : 0;\n if (preloadResultPageCount > 0) {\n this.preloadPages(param, 1, preloadResultPageCount > this.countPages ? this.countPages : preloadResultPageCount);\n }\n }\n this.updateFileNames();\n this.setLoading(param, false);\n }\n );\n }\n\n clearFile(param: string) {\n this.clearData(param);\n this.credentials.delete(param);\n this.result = null;\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n private clearData(param) {\n if (!this.file || !this.file.size) {\n return;\n }\n this.file.delete(param);\n if (param === this.first) {\n this.firstFileName = undefined;\n } else {\n this.secondFileName = undefined;\n }\n }\n\n preloadPages(param: string, start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._comparisonService.loadPage(this.credentials.get(param), i).subscribe((page: PageModel) => {\n this.file.get(param).pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n const active = this.activePanel;\n this._comparisonService.upload(null, $event, this.rewriteConfig).subscribe((obj: FileCredentials) => {\n this.getFile(obj.guid, '', active);\n this.selectDir('');\n });\n }\n\n updateFileNames() {\n this.firstFileName = this.getFirstFileName();\n this.secondFileName = this.getSecondFileName();\n }\n\n getSecondFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.second) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n getFirstFileName() {\n const fileCredentials = this.credentials ? this.credentials.get(this.first) : undefined;\n return fileCredentials ? fileCredentials.guid.replace(/^.*[\\\\\\/]/, '') : '';\n }\n\n private checkPreload(panel: string, page: number) {\n if (!this.file.get(panel)) {\n return\n }\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.get(panel).pages[i - 1].data) {\n this.preloadPages(panel, i, i);\n }\n }\n }\n\n compare() {\n if (this.credentials.size !== 2) {\n return;\n }\n this.resultTabDisabled = false;\n const arr = [];\n arr.push(this.credentials.get(this.first));\n arr.push(this.credentials.get(this.second));\n this._comparisonService.compare(arr).subscribe((result: CompareResult) => {\n this.result = result;\n\n const isZeroBasedPageId = this.result.changes.find((change) => change.pageInfo.id === 0);\n\n this.result.changes.forEach( (change) => {\n change.id = this.generateRandomInteger();\n const zeroBasedId = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n change.pageInfo.id = isZeroBasedPageId ? change.pageInfo.id : change.pageInfo.id - 1;\n if(!this.result.pages[zeroBasedId].changes){\n this.result.pages[zeroBasedId].changes = [];\n }\n this.result.pages[zeroBasedId].changes.push(change);\n change.normalized = {\n x : change.box.x * 100 / change.pageInfo.width,\n y : change.box.y * 100 / change.pageInfo.height,\n width: change.box.width * 100 / change.pageInfo.width,\n height: change.box.height * 100 / change.pageInfo.height,\n };\n });\n }, (err => {\n this.resultTabDisabled = true;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }));\n this._tabActivatorService.changeActiveTab(this.resultTab);\n }\n\n generateRandomInteger() {\n function _p8(s) {\n const p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\n return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\n }\n return _p8(null) + _p8(true) + _p8(true) + _p8(null);\n }\n\n download() {\n if (!this.result) {\n return;\n }\n const credentials = {'guid': this.result.guid, 'password': ''};\n window.location.assign(this._comparisonService.getDownloadUrl(credentials));\n }\n\n hideSidePanel($event) {\n this.activeTab = $event ? this.filesTab : this.resultTab;\n this._tabActivatorService.changeActiveTab(this.filesTab);\n }\n\n\n\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileUtil,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\n\nexport class States {\n static Empty = 'empty';\n static Opened = 'opened';\n}\n\n@Component({\n selector: 'gd-add-file-panel',\n templateUrl: './add-file-panel.component.html',\n styleUrls: ['./add-file-panel.component.less']\n})\nexport class AddFilePanelComponent implements OnInit, OnChanges {\n @Input() panel: string;\n @Output() active = new EventEmitter();\n @Output() urlForUpload = new EventEmitter();\n @Output() cleanPanel = new EventEmitter();\n state = States.Empty;\n @Input() fileName: string;\n uploadDisabled = true;\n\n constructor(private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n ngOnInit() {\n }\n\n getFormatIcon() {\n return FileUtil.find(this.fileName, false).icon;\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n isEmpty() {\n return this.state === States.Empty;\n }\n\n cleanFile() {\n this.active.emit(this.panel);\n this.cleanPanel.emit(true);\n }\n\n uploadUrl(url: string) {\n if(this.uploadDisabled){\n return\n }\n if (url && (url.startsWith('http') || url.startsWith('file') || url.startsWith('ftp'))) {\n this.active.emit(this.panel);\n this.urlForUpload.emit(url);\n } else {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"Wrong url\");\n }\n }\n\n checkDisabled(url: string) {\n this.uploadDisabled = url ? url.length === 0 : true;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.fileName) {\n this.state = States.Opened;\n } else {\n this.state = States.Empty;\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {CommonModals, ModalService, UploadFilesService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-upload-file-panel',\n templateUrl: './upload-file-panel.component.html',\n styleUrls: ['./upload-file-panel.component.less']\n})\nexport class UploadFilePanelComponent implements OnInit {\n\n @Input() panel: string;\n @Output() active = new EventEmitter();\n\n constructor(private _uploadService: UploadFilesService,\n private _modalService: ModalService) {\n }\n\n ngOnInit() {\n }\n\n openModal() {\n this.active.emit(this.panel);\n this._modalService.open(CommonModals.BrowseFiles);\n }\n\n dropped($event) {\n if ($event) {\n this.active.emit(this.panel);\n }\n }\n}\n","import {PageModel} from \"@groupdocs.examples.angular/common-components\";\n\nexport class ComparedPageModel extends PageModel{\n changes: ChangeInfo[]\n}\n\nexport class CompareResult {\n changes: ChangeInfo[];\n pages: ComparedPageModel[];\n guid: string;\n}\n\nexport class ChangeInfo {\n pageInfo: PageInfo;\n text: string;\n type: number;\n box: Rectangle;\n id: string;\n styleChanges: StyleChange[];\n normalized: Rectangle;\n active: boolean;\n}\n\nexport class StyleChange {\n changedProperty: string;\n newValue: string;\n oldValue: string;\n}\n\nexport class Rectangle {\n x: number;\n y: number;\n width: number;\n height: number\n}\n\nexport class PageInfo {\n id: number;\n width: number;\n height: number;\n changes: ChangeInfo[];\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DifferencesService {\n\n private _activeChange = new BehaviorSubject(null);\n activeChange = this._activeChange.asObservable();\n\n constructor() {\n }\n\n setActiveChange(id : string){\n this._activeChange.next(id);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo, StyleChange } from '../models';\nimport { DifferencesService } from '../differences.service';\n\n@Component({\n selector: 'gd-comparison-difference',\n templateUrl: './difference.component.html',\n styleUrls: ['./difference.component.less']\n})\nexport class DifferenceComponent implements OnInit {\n @Input() change: ChangeInfo;\n active: boolean;\n\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n\n ngOnInit() {\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID)\n }\n\n getRgbaColor(value){\n return `rgba(${value.red},${value.green},${value.blue},${value.alpha})`;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport {ChangeInfo} from \"../models\";\nimport { DifferencesService } from '../differences.service';\nimport * as jquery from \"jquery\";\nconst $ = jquery;\n\n@Component({\n selector: 'gd-difference-highlight',\n templateUrl: './difference-highlight.component.html',\n styleUrls: ['./difference-highlight.component.less']\n})\nexport class DifferenceHighlightComponent implements OnInit{\n @Input() change: ChangeInfo;\n @Input() active: boolean;\n private changesService : DifferencesService;\n\n constructor(changeService : DifferencesService) {\n this.changesService = changeService;\n }\n ngOnInit(){\n this.changesService.activeChange.subscribe(activeID => this.active = this.change.id === activeID);\n }\n\n close(event: Event){\n this.changesService.setActiveChange(null);\n }\n\n highlight(id : string){\n this.changesService.setActiveChange(id);\n }\n}\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { DocumentComponent, WindowService } from '@groupdocs.examples.angular/common-components';\nimport {ZoomService,ZoomDirective} from '@groupdocs.examples.angular/common-components';\nimport * as jquery from 'jquery';\nimport { DifferencesService } from '../differences.service';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-result-document',\n templateUrl: './result-document.component.html',\n styleUrls: ['./result-document.component.less'], // @TODO: this is replicated from base component until styles inheritance supported added to angular\n providers : [ZoomService],\n viewProviders : [ZoomDirective]\n})\nexport class ResultDocumentComponent extends DocumentComponent implements OnInit {\n private changesService : DifferencesService;\n\n constructor(_elementRef: ElementRef,\n zoomService: ZoomService,\n changeService : DifferencesService,\n windowService: WindowService) {\n super(_elementRef, zoomService, windowService);\n this.changesService = changeService;\n }\n\n close(){\n this.changesService.setActiveChange(null)\n }\n\n ngOnInit(){\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChangeInfo } from './../models';\nimport { DifferencesService } from '../differences.service';\nimport { NavigateService } from '@groupdocs.examples.angular/common-components';\n\n@Component({\n selector: 'gd-differences',\n templateUrl: './differences.component.html',\n styleUrls: ['./differences.component.less']\n})\nexport class DifferencesComponent implements OnInit {\n\n @Input() changes : ChangeInfo[] = [];\n private changesService : DifferencesService;\n private navigateService;\n\n constructor(changeService : DifferencesService,navigateService: NavigateService,) {\n this.changesService = changeService;\n this.navigateService = navigateService;\n }\n\n ngOnInit() {}\n\n\n highlightDifference(id: string,page: number,event : MouseEvent){\n event.stopPropagation();\n this.changesService.setActiveChange(id);\n this.navigateService.navigateTo(page+1);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport {APP_INITIALIZER, ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ComparisonAppComponent} from './comparison-app.component';\nimport {FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport {fas} from '@fortawesome/free-solid-svg-icons';\nimport {far} from '@fortawesome/free-regular-svg-icons';\nimport {ComparisonService} from \"./comparison.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService,\n Api\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ComparisonConfigService} from \"./comparison-config.service\";\nimport {AddFilePanelComponent} from './add-file-panel/add-file-panel.component';\nimport {UploadFilePanelComponent} from './upload-file-panel/upload-file-panel.component';\nimport {DifferenceComponent} from './difference/difference.component';\nimport {DifferenceHighlightComponent} from './difference-highlight/difference-highlight.component';\nimport { ResultDocumentComponent } from './result-document/result-document.component';\nimport { DifferencesComponent } from './differences/differences.component';\nimport { DifferencesService } from './differences.service';\nimport { ClickOutsideModule } from 'ng-click-outside';\n\nexport function initializeApp(comparisonConfigService: ComparisonConfigService) {\n const result = () => comparisonConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations: [ComparisonAppComponent, AddFilePanelComponent, UploadFilePanelComponent, DifferenceComponent, DifferenceHighlightComponent, ResultDocumentComponent, DifferencesComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule,\n ClickOutsideModule\n ],\n exports: [\n ComparisonAppComponent,\n CommonComponentsModule,\n ResultDocumentComponent,\n DifferencesComponent\n ],\n providers: [\n ComparisonService,\n ConfigService,\n DifferencesService,\n ComparisonConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ComparisonConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class ComparisonModule {\n constructor() {\n library.add(fas, far);\n }\n\n static forRoot(apiEndpoint: string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint;\n return {\n ngModule: ComparisonModule\n };\n }\n}\n"],"names":["tslib_1.__extends"],"mappings":"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"} \ No newline at end of file diff --git a/dist/libs/comparison/groupdocs.examples.angular-comparison.metadata.json b/dist/libs/comparison/groupdocs.examples.angular-comparison.metadata.json index 3a1e6cadd..1573ce21e 100644 --- a/dist/libs/comparison/groupdocs.examples.angular-comparison.metadata.json +++ b/dist/libs/comparison/groupdocs.examples.angular-comparison.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"metadata":{"initializeApp":{"__symbolic":"function"},"setupLoadingInterceptor":{"__symbolic":"function","parameters":["service"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskInterceptorService","line":35,"character":13},"arguments":[{"__symbolic":"reference","name":"service"}]}},"ComparisonModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":38,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ComparisonAppComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"BrowserModule","line":41,"character":4},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"CommonComponentsModule","line":42,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":43,"character":4},{"__symbolic":"reference","module":"@fortawesome/angular-fontawesome","name":"FontAwesomeModule","line":44,"character":4},{"__symbolic":"reference","module":"ng-click-outside","name":"ClickOutsideModule","line":45,"character":4}],"exports":[{"__symbolic":"reference","name":"ComparisonAppComponent"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"CommonComponentsModule","line":49,"character":4},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"}],"providers":[{"__symbolic":"reference","name":"ComparisonService"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ConfigService","line":55,"character":4},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ComparisonConfigService"},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":59,"character":15},"useFactory":{"__symbolic":"reference","name":"initializeApp"},"deps":[{"__symbolic":"reference","name":"ComparisonConfigService"}],"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":65,"character":15},"useClass":{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ErrorInterceptorService","line":66,"character":16},"multi":true},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskService","line":69,"character":4},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":71,"character":15},"useFactory":{"__symbolic":"reference","name":"setupLoadingInterceptor"},"multi":true,"deps":[{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskService","line":74,"character":13}]}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"Files":{"__symbolic":"class","members":{},"statics":{"FIRST":"first","SECOND":"second"}},"Highlight":{"__symbolic":"class","members":{}},"ComparisonAppComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"selector":"gd-comparison","template":"\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n","styles":["@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.loader{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.upload-compare-file{height:100%;width:50%;border-right:1px solid #ccc;display:flex;align-content:center;flex-direction:column;text-align:center;flex-grow:0}.open-file-panel{display:flex;width:100%}.files-panel{background-color:#e7e7e7;display:flex;flex-direction:row;width:100%;height:100%}.result-panel{background-color:#e7e7e7;width:100%;height:100%;display:flex;align-content:center;flex-direction:column;justify-content:center;text-align:center}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:100%}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{background-color:#3e4e5a;width:100%}.row{display:flex;height:inherit}.column{width:100%}.tabs-wrapper{display:flex;justify-self:flex-end;align-self:flex-end;width:100%;justify-content:flex-end}.tabs{display:flex;margin-right:30px;align-items:flex-end;justify-content:flex-end}@media (max-width:1037px){.files-panel{flex-direction:column}.files-panel .upload-compare-file{width:100%;border-bottom:1px solid #ccc}/deep/ .gd-side-panel-wrapper{height:50%!important;top:inherit!important;bottom:0!important}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ComparisonService"},{"__symbolic":"reference","name":"ComparisonConfigService"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"UploadFilesService","line":53,"character":34},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"PagePreloadService","line":54,"character":34},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ModalService","line":55,"character":37},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"TabActivatorService","line":56,"character":44},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":57,"character":46,"context":{"typeName":"HTMLElement"},"module":"./lib/comparison-app.component"}]}]}],"setLoading":[{"__symbolic":"method"}],"selectDir":[{"__symbolic":"method"}],"selectFile":[{"__symbolic":"method"}],"getFile":[{"__symbolic":"method"}],"clearFile":[{"__symbolic":"method"}],"clearData":[{"__symbolic":"method"}],"preloadPages":[{"__symbolic":"method"}],"upload":[{"__symbolic":"method"}],"updateFileNames":[{"__symbolic":"method"}],"getSecondFileName":[{"__symbolic":"method"}],"getFirstFileName":[{"__symbolic":"method"}],"checkPreload":[{"__symbolic":"method"}],"compare":[{"__symbolic":"method"}],"generateRandomInteger":[{"__symbolic":"method"}],"download":[{"__symbolic":"method"}],"hideSidePanel":[{"__symbolic":"method"}]}},"ComparisonConfigService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":13,"character":29},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ConfigService","line":13,"character":58}]}],"load":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ComparisonConfig":{"__symbolic":"class","members":{}},"ComparisonService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":11,"character":29},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ConfigService","line":11,"character":58}]}],"loadFiles":[{"__symbolic":"method"}],"getFormats":[{"__symbolic":"method"}],"loadFile":[{"__symbolic":"method"}],"upload":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"getDownloadUrl":[{"__symbolic":"method"}],"loadPage":[{"__symbolic":"method"}],"compare":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ComparedPageModel":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"PageModel","line":2,"character":39},"members":{}},"CompareResult":{"__symbolic":"class","members":{}},"ChangeInfo":{"__symbolic":"class","members":{}},"StyleChange":{"__symbolic":"class","members":{}},"Rectangle":{"__symbolic":"class","members":{}},"PageInfo":{"__symbolic":"class","members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"gd-add-file-panel","template":"
\n
\n \n \n
\n \n {{fileName}}\n \n \n
\n","styles":[":host{border-bottom:1px solid #ccc}.wrapper{height:37px;background-color:#fff;display:flex}.upload-wrapper{display:flex;width:100%}.url-input{border:0;height:37px;width:100%;padding-left:5px;margin:0;padding-top:0;padding-bottom:0;outline:0}.compare-file-name{color:#959da5;margin:8px;width:100%;text-align:left}.ng-fa-icon{color:#959da5;margin:9px 15px 0 13px;font-size:14px}.compare-file{width:100%;border-right:2px solid #ddd}"]}]}],"members":{"panel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":20,"character":3}}]}],"urlForUpload":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":3}}]}],"cleanPanel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":22,"character":3}}]}],"fileName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ModalService","line":27,"character":37},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ExceptionMessageService","line":28,"character":42}]}],"ngOnInit":[{"__symbolic":"method"}],"getFormatIcon":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}],"cleanFile":[{"__symbolic":"method"}],"uploadUrl":[{"__symbolic":"method"}],"checkDisabled":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-upload-file-panel","template":"
\n
\n \n
\n

Drop your document here or click to select a file

\n
\n","styles":[".gd-drag-n-drop-wrap{height:100%;width:100%;background-color:#e7e7e7;text-align:center;cursor:default;left:1px;display:flex;align-content:center;flex-direction:column;justify-content:center;opacity:.9;z-index:1}.active{background-color:#bababa}.gd-drag-n-drop-wrap h2{color:#959da5;font-size:15px;margin-top:38px}.gd-drag-n-drop-icon{color:#959da5;cursor:pointer}:host{display:flex;justify-content:center;align-items:center;flex-direction:column;align-content:center;height:100%;border-bottom:1px solid #ccc}"]}]}],"members":{"panel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"UploadFilesService","line":13,"character":38},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ModalService","line":14,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"dropped":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"gd-comparison-difference","template":"
\n
\n \n \n
\n
Text edited
\n
{{change.text}}
\n
\n
\n \n \n
\n
Text added
\n
{{change.text}}
\n
\n
\n \n \n
\n
Text deleted
\n
{{change.text}}
\n
\n
\n \n \n
\n
Text added
\n
{{change.text}}
\n
\n
\n \n \n
\n
Style changed
\n
\n \n
\n \n →\n \n Highlight Color\n
\n
\n \n →\n \n Color\n
\n
\n {{style.oldValue}} → {{style.newValue}}\n Font size\n
\n
\n {{change.text}}{{change.text}}\n Bold\n
\n
\n {{change.text}}{{change.text}}\n Italic\n
\n
\n {{change.text}}{{change.text}}\n Underline\n
\n
\n
\n
\n
\n
Page {{change.pageInfo.id + 1}}
\n
\n
\n","styles":[".gd-difference{flex-flow:row wrap;border-bottom:1px solid #eee;cursor:pointer}.gd-difference.active{background-color:#f2f2f2}.gd-difference:hover{background-color:#e5e5e5}.gd-difference .gd-difference-title-wrapper{display:flex;flex-direction:row;align-content:stretch;padding:15px 15px 20px 20px}.gd-difference .gd-difference-title-wrapper fa-icon{font-size:14px}.gd-difference .gd-difference-title-wrapper .fa-arrow-right{color:#16b901}.gd-difference .gd-difference-title-wrapper .fa-pencil-alt{color:#ced600}.gd-difference .gd-difference-title-wrapper .fa-times{color:#b96401}.gd-difference .gd-difference-title-wrapper .gd-difference-body{width:100%;display:flex;flex-direction:column;padding-left:15px}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-difference-title{color:#222e35;font-size:13px;font-weight:700}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-differentce-comment{color:#959da5;font-size:13px;padding-top:10px;overflow:hidden;text-overflow:ellipsis}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-differentce-comment .color{vertical-align:text-bottom;width:14px;height:14px;display:inline-block;border:1px solid #ccc;border-radius:100%}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-differentce-comment .property{padding-left:1em}.gd-difference .gd-difference-title-wrapper .gd-difference-page{color:rgba(149,157,165,.48);font-size:11px;white-space:nowrap}"]}]}],"members":{"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"}]}],"ngOnInit":[{"__symbolic":"method"}],"getRgbaColor":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"setActiveChange":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"gd-difference-highlight","template":"\n\n\n\n","styles":[".highlight-difference{position:absolute;cursor:pointer;z-index:1}.gd-difference.active,.highlight-difference.active{box-shadow:0 0 0 9999px rgba(0,0,0,.5);z-index:999}.gd-difference-1{background-color:rgba(0,122,255,.4)}.gd-difference-2,.gd-difference-4{background-color:rgba(46,237,0,.4)}.gd-difference-3{background-color:rgba(237,0,0,.4)}.gd-difference-6{background-color:rgba(215,224,0,.4)}"]}]}],"members":{"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"}]}],"ngOnInit":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"highlight":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"DocumentComponent","line":14,"character":45},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"gd-result-document","providers":[{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ZoomService","line":11,"character":15}],"viewProviders":[{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ZoomDirective","line":12,"character":19}],"template":"
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n","styles":[":host{overflow:scroll}.document{background-color:#e7e7e7;width:100%;height:100%;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":17,"character":38,"context":{"typeName":"HTMLElement"},"module":"./lib/result-document/result-document.component"}]},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ZoomService","line":18,"character":27},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"WindowService","line":20,"character":29}]}],"close":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"gd-differences","template":"
\n \n
\n","styles":[""]}]}],"members":{"changes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"NavigateService","line":16,"character":66}]}],"ngOnInit":[{"__symbolic":"method"}],"highlightDifference":[{"__symbolic":"method"}]}}},"origins":{"initializeApp":"./lib/comparison.module","setupLoadingInterceptor":"./lib/comparison.module","ComparisonModule":"./lib/comparison.module","Files":"./lib/comparison-app.component","Highlight":"./lib/comparison-app.component","ComparisonAppComponent":"./lib/comparison-app.component","ComparisonConfigService":"./lib/comparison-config.service","ComparisonConfig":"./lib/comparison-config","ComparisonService":"./lib/comparison.service","ComparedPageModel":"./lib/models","CompareResult":"./lib/models","ChangeInfo":"./lib/models","StyleChange":"./lib/models","Rectangle":"./lib/models","PageInfo":"./lib/models","ɵa":"./lib/add-file-panel/add-file-panel.component","ɵb":"./lib/upload-file-panel/upload-file-panel.component","ɵc":"./lib/difference/difference.component","ɵd":"./lib/differences.service","ɵe":"./lib/difference-highlight/difference-highlight.component","ɵf":"./lib/result-document/result-document.component","ɵg":"./lib/differences/differences.component"},"importAs":"@groupdocs.examples.angular/comparison"} \ No newline at end of file +{"__symbolic":"module","version":4,"metadata":{"initializeApp":{"__symbolic":"function"},"setupLoadingInterceptor":{"__symbolic":"function","parameters":["service"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskInterceptorService","line":35,"character":13},"arguments":[{"__symbolic":"reference","name":"service"}]}},"ComparisonModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":38,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ComparisonAppComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"BrowserModule","line":41,"character":4},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"CommonComponentsModule","line":42,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":43,"character":4},{"__symbolic":"reference","module":"@fortawesome/angular-fontawesome","name":"FontAwesomeModule","line":44,"character":4},{"__symbolic":"reference","module":"ng-click-outside","name":"ClickOutsideModule","line":45,"character":4}],"exports":[{"__symbolic":"reference","name":"ComparisonAppComponent"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"CommonComponentsModule","line":49,"character":4},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"}],"providers":[{"__symbolic":"reference","name":"ComparisonService"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ConfigService","line":55,"character":4},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ComparisonConfigService"},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":59,"character":15},"useFactory":{"__symbolic":"reference","name":"initializeApp"},"deps":[{"__symbolic":"reference","name":"ComparisonConfigService"}],"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":65,"character":15},"useClass":{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ErrorInterceptorService","line":66,"character":16},"multi":true},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskService","line":69,"character":4},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":71,"character":15},"useFactory":{"__symbolic":"reference","name":"setupLoadingInterceptor"},"multi":true,"deps":[{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskService","line":74,"character":13}]}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"Files":{"__symbolic":"class","members":{},"statics":{"FIRST":"first","SECOND":"second"}},"Highlight":{"__symbolic":"class","members":{}},"ComparisonAppComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"selector":"gd-comparison","template":"\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n
\n
\n  \n Loading... Please wait.\n
\n \n \n
\n
\n \n \n \n \n
\n \n \n \n
\n","styles":["@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.loader{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.upload-compare-file{height:100%;width:50%;border-right:1px solid #ccc;display:flex;align-content:center;flex-direction:column;text-align:center;flex-grow:0}.open-file-panel{display:flex;width:100%}.files-panel{background-color:#e7e7e7;display:flex;flex-direction:row;width:100%;height:100%}.result-panel{background-color:#e7e7e7;width:100%;height:100%;display:flex;align-content:center;flex-direction:column;justify-content:center;text-align:center}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:100%}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{background-color:#3e4e5a;width:100%}.row{display:flex;height:inherit}.column{width:100%}.tabs-wrapper{display:flex;justify-self:flex-end;align-self:flex-end;width:100%;justify-content:flex-end}.tabs{display:flex;margin-right:30px;align-items:flex-end;justify-content:flex-end}@media (max-width:1037px){.files-panel{flex-direction:column}.files-panel .upload-compare-file{width:100%;border-bottom:1px solid #ccc}/deep/ .gd-side-panel-wrapper{height:50%!important;top:inherit!important;bottom:0!important}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ComparisonService"},{"__symbolic":"reference","name":"ComparisonConfigService"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"UploadFilesService","line":53,"character":34},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"PagePreloadService","line":54,"character":34},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ModalService","line":55,"character":37},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"TabActivatorService","line":56,"character":44},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":57,"character":46,"context":{"typeName":"HTMLElement"},"module":"./lib/comparison-app.component"}]}]}],"setLoading":[{"__symbolic":"method"}],"selectDir":[{"__symbolic":"method"}],"selectFile":[{"__symbolic":"method"}],"getFile":[{"__symbolic":"method"}],"clearFile":[{"__symbolic":"method"}],"clearData":[{"__symbolic":"method"}],"preloadPages":[{"__symbolic":"method"}],"upload":[{"__symbolic":"method"}],"updateFileNames":[{"__symbolic":"method"}],"getSecondFileName":[{"__symbolic":"method"}],"getFirstFileName":[{"__symbolic":"method"}],"checkPreload":[{"__symbolic":"method"}],"compare":[{"__symbolic":"method"}],"generateRandomInteger":[{"__symbolic":"method"}],"download":[{"__symbolic":"method"}],"hideSidePanel":[{"__symbolic":"method"}]}},"ComparisonConfigService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":13,"character":29},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ConfigService","line":13,"character":58}]}],"load":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ComparisonConfig":{"__symbolic":"class","members":{}},"ComparisonService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":11,"character":29},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ConfigService","line":11,"character":58}]}],"loadFiles":[{"__symbolic":"method"}],"getFormats":[{"__symbolic":"method"}],"loadFile":[{"__symbolic":"method"}],"upload":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"getDownloadUrl":[{"__symbolic":"method"}],"loadPage":[{"__symbolic":"method"}],"compare":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ComparedPageModel":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"PageModel","line":2,"character":39},"members":{}},"CompareResult":{"__symbolic":"class","members":{}},"ChangeInfo":{"__symbolic":"class","members":{}},"StyleChange":{"__symbolic":"class","members":{}},"Rectangle":{"__symbolic":"class","members":{}},"PageInfo":{"__symbolic":"class","members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"gd-add-file-panel","template":"
\n
\n \n \n
\n \n {{fileName}}\n \n \n
\n","styles":[":host{border-bottom:1px solid #ccc}.wrapper{height:37px;background-color:#fff;display:flex}.upload-wrapper{display:flex;width:100%}.url-input{border:0;height:37px;width:100%;padding-left:5px;margin:0;padding-top:0;padding-bottom:0;outline:0}.compare-file-name{color:#959da5;margin:8px;width:100%;text-align:left}.ng-fa-icon{color:#959da5;margin:9px 15px 0 13px;font-size:14px}.compare-file{width:100%;border-right:2px solid #ddd}"]}]}],"members":{"panel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":20,"character":3}}]}],"urlForUpload":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":3}}]}],"cleanPanel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":22,"character":3}}]}],"fileName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ModalService","line":27,"character":37},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ExceptionMessageService","line":28,"character":42}]}],"ngOnInit":[{"__symbolic":"method"}],"getFormatIcon":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}],"cleanFile":[{"__symbolic":"method"}],"uploadUrl":[{"__symbolic":"method"}],"checkDisabled":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"gd-upload-file-panel","template":"
\n
\n \n
\n

Drop your document here or click to select a file

\n
\n","styles":[".gd-drag-n-drop-wrap{height:100%;width:100%;background-color:#e7e7e7;text-align:center;cursor:default;left:1px;display:flex;align-content:center;flex-direction:column;justify-content:center;opacity:.9;z-index:1}.active{background-color:#bababa}.gd-drag-n-drop-wrap h2{color:#959da5;font-size:15px;margin-top:38px}.gd-drag-n-drop-icon{color:#959da5;cursor:pointer}:host{display:flex;justify-content:center;align-items:center;flex-direction:column;align-content:center;height:100%;border-bottom:1px solid #ccc}"]}]}],"members":{"panel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"UploadFilesService","line":13,"character":38},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ModalService","line":14,"character":37}]}],"ngOnInit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"dropped":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"gd-comparison-difference","template":"
\n
\n \n \n
\n
Text edited
\n
{{change.text}}
\n
\n
\n \n \n
\n
Text added
\n
{{change.text}}
\n
\n
\n \n \n
\n
Text deleted
\n
{{change.text}}
\n
\n
\n \n \n
\n
Text added
\n
{{change.text}}
\n
\n
\n \n \n
\n
Style changed
\n
\n \n
\n \n →\n \n Highlight Color\n
\n
\n \n →\n \n Color\n
\n
\n {{style.oldValue}} → {{style.newValue}}\n Font size\n
\n
\n {{change.text}}{{change.text}}\n Bold\n
\n
\n {{change.text}}{{change.text}}\n Italic\n
\n
\n {{change.text}}{{change.text}}\n Underline\n
\n
\n
\n
\n
\n
Page {{change.pageInfo.id + 1}}
\n
\n
\n","styles":[".gd-difference{flex-flow:row wrap;border-bottom:1px solid #eee;cursor:pointer}.gd-difference.active{background-color:#f2f2f2}.gd-difference:hover{background-color:#e5e5e5}.gd-difference .gd-difference-title-wrapper{display:flex;flex-direction:row;align-content:stretch;padding:15px 15px 20px 20px}.gd-difference .gd-difference-title-wrapper fa-icon{font-size:14px}.gd-difference .gd-difference-title-wrapper .fa-arrow-right{color:#16b901}.gd-difference .gd-difference-title-wrapper .fa-pencil-alt{color:#ced600}.gd-difference .gd-difference-title-wrapper .fa-times{color:#b96401}.gd-difference .gd-difference-title-wrapper .gd-difference-body{width:100%;display:flex;flex-direction:column;padding-left:15px}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-difference-title{color:#222e35;font-size:13px;font-weight:700}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-differentce-comment{color:#959da5;font-size:13px;padding-top:10px;overflow:hidden;text-overflow:ellipsis}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-differentce-comment .color{vertical-align:text-bottom;width:14px;height:14px;display:inline-block;border:1px solid #ccc;border-radius:100%}.gd-difference .gd-difference-title-wrapper .gd-difference-body .gd-differentce-comment .property{padding-left:1em}.gd-difference .gd-difference-title-wrapper .gd-difference-page{color:rgba(149,157,165,.48);font-size:11px;white-space:nowrap}"]}]}],"members":{"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"}]}],"ngOnInit":[{"__symbolic":"method"}],"getRgbaColor":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"setActiveChange":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"gd-difference-highlight","template":"\n\n\n\n","styles":[".highlight-difference{position:absolute;cursor:pointer;z-index:1}.gd-difference.active,.highlight-difference.active{box-shadow:0 0 0 9999px rgba(0,0,0,.5);z-index:999}.gd-difference-1{background-color:rgba(0,122,255,.4)}.gd-difference-2,.gd-difference-4{background-color:rgba(46,237,0,.4)}.gd-difference-3{background-color:rgba(237,0,0,.4)}.gd-difference-6{background-color:rgba(215,224,0,.4)}"]}]}],"members":{"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"}]}],"ngOnInit":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"highlight":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"DocumentComponent","line":14,"character":45},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"gd-result-document","providers":[{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ZoomService","line":11,"character":15}],"viewProviders":[{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ZoomDirective","line":12,"character":19}],"template":"
Please wait...
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n","styles":[".document{background-color:#e7e7e7;width:100%;height:100%;overflow-x:hidden;overflow-y:auto!important;transition:.4s;padding:0;margin:0;position:relative}.page{position:relative;display:inline-block;background-color:#fff;margin:20px;box-shadow:0 3px 6px rgba(0,0,0,.16);transition:.3s}.wait{position:absolute;top:55px;left:Calc(30%)}.panzoom{transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 50% 0;display:flex;justify-content:center;flex-wrap:wrap}.gd-zoomed{margin:10px 98px}.highlights{position:absolute;top:0;left:0;bottom:0;right:0}@media (max-width:1037px){.document{overflow-x:auto!important}.panzoom{flex-direction:column}.page{min-width:unset!important;min-height:unset!important;margin:5px 0}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":17,"character":38,"context":{"typeName":"HTMLElement"},"module":"./lib/result-document/result-document.component"}]},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ZoomService","line":18,"character":27},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"WindowService","line":20,"character":29}]}],"close":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"gd-differences","template":"
\n \n
\n","styles":[""]}]}],"members":{"changes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"NavigateService","line":16,"character":66}]}],"ngOnInit":[{"__symbolic":"method"}],"highlightDifference":[{"__symbolic":"method"}]}}},"origins":{"initializeApp":"./lib/comparison.module","setupLoadingInterceptor":"./lib/comparison.module","ComparisonModule":"./lib/comparison.module","Files":"./lib/comparison-app.component","Highlight":"./lib/comparison-app.component","ComparisonAppComponent":"./lib/comparison-app.component","ComparisonConfigService":"./lib/comparison-config.service","ComparisonConfig":"./lib/comparison-config","ComparisonService":"./lib/comparison.service","ComparedPageModel":"./lib/models","CompareResult":"./lib/models","ChangeInfo":"./lib/models","StyleChange":"./lib/models","Rectangle":"./lib/models","PageInfo":"./lib/models","ɵa":"./lib/add-file-panel/add-file-panel.component","ɵb":"./lib/upload-file-panel/upload-file-panel.component","ɵc":"./lib/difference/difference.component","ɵd":"./lib/differences.service","ɵe":"./lib/difference-highlight/difference-highlight.component","ɵf":"./lib/result-document/result-document.component","ɵg":"./lib/differences/differences.component"},"importAs":"@groupdocs.examples.angular/comparison"} \ No newline at end of file diff --git a/dist/libs/comparison/package.json b/dist/libs/comparison/package.json index 710e94e24..c2b93000b 100644 --- a/dist/libs/comparison/package.json +++ b/dist/libs/comparison/package.json @@ -1,6 +1,6 @@ { "name": "@groupdocs.examples.angular/comparison", - "version": "0.4.22", + "version": "0.4.19", "description": "Angular application that allows to comapre documents supported by GroupDocs.Comparison library", "license": "MIT", "publishConfig": { diff --git a/dist/libs/conversion/package.json b/dist/libs/conversion/package.json index 12ad23460..3a0b4f0f1 100644 --- a/dist/libs/conversion/package.json +++ b/dist/libs/conversion/package.json @@ -1,6 +1,6 @@ { "name": "@groupdocs.examples.angular/conversion", - "version": "0.4.22", + "version": "0.4.19", "description": "Angular application that allows to convert documents supported by groupdocs libraries APIs", "license": "MIT", "publishConfig": { diff --git a/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.js b/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.js index edb3a85e7..794c1b787 100644 --- a/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.js +++ b/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.js @@ -1103,7 +1103,7 @@ EditorAppComponent.decorators = [ { type: core.Component, args: [{ selector: 'gd-editor-angular-root', - template: "\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n", + template: "\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n", styles: ["@import url(https://fonts.googleapis.com/css?family=Open+Sans&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.current-page-number{margin:0 15px;font-size:14px;color:#959da5}*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:text}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:calc(100% - 90px)}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{width:100%}/deep/ .gd-wrapper{padding:96px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;outline:0}/deep/ .dropdown-menu{min-width:unset!important}.format-select{margin:0 15px}.palette{position:absolute;top:90px;z-index:100}.background-color-picker{left:700px}.color-picker{left:750px}.bg-color-pic{border-radius:100%;border:1px solid #ccc;position:absolute;height:8px;width:8px;right:6px;bottom:6px}/deep/ .button.inactive{color:#ccc!important}/deep/ .gd-editor-buttons .button .tooltip{margin-top:45px;margin-left:-36px}/deep/ .gd-edit.active{background-color:#7e8991;border-radius:5px}/deep/ .gd-edit.active i{color:#fff}/deep/ .page{width:800px}/deep/ .save-as-button-icon{font-size:11px;left:22px!important;top:13px!important}.save-button{position:absolute;top:-5px;left:21px}@media (max-width:1037px){/deep/ .panzoom{zoom:.4;margin-top:160px}}"] }] } ]; diff --git a/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.js.map b/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.js.map index c8a7750d2..b7bd46ca9 100644 --- a/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.js.map +++ b/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"groupdocs.examples.angular-editor.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/editor/lib/editor.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-app.component.ts","ng://@groupdocs.examples.angular/editor/lib/create.document-modal/create.document-modal.component.ts","ng://@groupdocs.examples.angular/editor/lib/editor.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getEditorApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getEditorApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getEditorApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n}\n","export class EditorConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n createNewFile: boolean;\n preloadPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {EditorConfig} from \"./editor-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorConfigService {\n private _editorConfig: BehaviorSubject = new BehaviorSubject(new EditorConfig());\n private _updatedConfig: Observable = this._editorConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.EDITOR_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: EditorConfig) => {\n const editorConfig = response;\n this._editorConfig.next(editorConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load editor config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Component, AfterViewInit, OnInit} from '@angular/core';\nimport {EditorService} from \"./editor.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n PasswordService,\n FileCredentials,\n CommonModals,\n PageModel,\n FormattingService,\n Formatting,\n BackFormattingService,\n OnCloseService,\n SaveFile,\n SelectionService,\n EditHtmlService,\n RenderPrintService,\n WindowService,\n LoadingMaskService, Option\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfig} from \"./editor-config\";\nimport {EditorConfigService} from \"./editor-config.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-editor-angular-root',\n templateUrl: './editor-app.component.html',\n styleUrls: ['./editor-app.component.less']\n})\nexport class EditorAppComponent implements OnInit, AfterViewInit {\n title = 'editor';\n files: FileModel[] = [];\n file: FileDescription;\n editorConfig: EditorConfig;\n formatDisabled = !this.file;\n downloadDisabled = true;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n isDesktop: boolean;\n formatting: Formatting = Formatting.DEFAULT;\n fontSizeOptions = FormattingService.getFontSizeOptions();\n fontOptions = FormattingService.getFontOptions();\n bgColorPickerShow = false;\n colorPickerShow = false;\n active = false;\n private textBackup: string;\n private isIE = false;\n isLoading: boolean;\n fileWasDropped: false;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n configService: EditorConfigService,\n uploadFilesService: UploadFilesService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _formattingService: FormattingService,\n private _backFormattingService: BackFormattingService,\n private _onCloseService: OnCloseService,\n private _selectionService: SelectionService,\n private _htmlService: EditHtmlService,\n private _renderPrintService: RenderPrintService,\n private _loadingMaskService: LoadingMaskService,\n ) {\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n configService.updatedConfig.subscribe((editorConfig) => {\n this.editorConfig = editorConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._editorService.upload(uploads.item(i), '', this.editorConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n });\n\n this._backFormattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._backFormattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._backFormattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._backFormattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._backFormattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._backFormattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._backFormattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._backFormattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._backFormattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._backFormattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._formattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._formattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._formattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._formattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._formattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._formattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._htmlService.htmlContent.subscribe((text: string) => {\n if (this.file && this.file.pages) {\n this.textBackup = text;\n }\n });\n }\n\n ngOnInit() {\n if (this.editorConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.editorConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n }\n\n get rewriteConfig(): boolean {\n return this.editorConfig ? this.editorConfig.rewrite : true;\n }\n\n get downloadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.editorConfig ? this.editorConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.editorConfig ? this.editorConfig.browse : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.editorConfig ? this.editorConfig.enableRightClick : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.editorConfig ? this.editorConfig.pageSelector : true;\n }\n\n get createNewFileConfig(): boolean {\n return this.editorConfig ? this.editorConfig.createNewFile : true;\n }\n\n openModal(id: string) {\n if (this.file) {\n this.file.pages[0].editable = false;\n }\n this._modalService.open(id);\n }\n\n openSave() {\n if (!this.formatDisabled) {\n this.openModal(CommonModals.CreateDocument);\n }\n }\n\n selectDir($event: string) {\n this._editorService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n createFile() {\n this.file = new FileDescription();\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n page.data = '';\n page.number = 1;\n page.editable = true;\n this.file.pages = [];\n this.file.pages.push(page);\n this.file.guid = \"new document.docx\";\n this.credentials = new FileCredentials(\"new document.docx\", \"\");\n this.formatDisabled = false;\n this.downloadDisabled = true;\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = new FileCredentials($event, password);\n this._editorService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.loadFile(file);\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n if(isIE) {\n const observer = new MutationObserver(function (mutations) {\n if($(\".documentMainContent\").length > 0 ){\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n observer.disconnect();\n }\n });\n observer.observe(document, {attributes: false, childList: true, characterData: false, subtree: true});\n }\n }\n );\n this.clearData();\n this._modalService.close(modalId);\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private loadFile(file: FileDescription) {\n this.file = file;\n if (this.file && this.file.pages[0]) {\n this.file.pages[0].editable = true;\n this.file.pages[0].width = 595;\n this.file.pages[0].height = 842;\n this.textBackup = this.file.pages[0].data;\n }\n this.formatDisabled = !this.file;\n this.downloadDisabled = false;\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n upload($event: string) {\n this._editorService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n selectFontSize($event: Option) {\n if (this.formatDisabled)\n return;\n $(\".gd-wrapper\").off(\"keyup\");\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFontSize($event.value);\n $(\".gd-wrapper\").on(\"keyup\", () => {\n const fontElements = document.getElementsByTagName(\"font\");\n for (let i = 0, len = fontElements.length; i < len; ++i) {\n if (fontElements[i].getAttribute('size') === \"7\") {\n fontElements[i].removeAttribute(\"size\");\n fontElements[i].style.fontSize = $event + \"px\";\n }\n }\n });\n }\n\n selectFont($event: Option) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFont($event.value);\n }\n\n toggleColorPicker(bg: boolean) {\n\n if (this.formatDisabled) {\n return;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (bg) {\n this.bgColorPickerShow = !this.bgColorPickerShow;\n this.colorPickerShow = false;\n } else {\n this.colorPickerShow = !this.colorPickerShow;\n this.bgColorPickerShow = false;\n }\n }\n\n selectColor($event: string) {\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (this.bgColorPickerShow) {\n this.bgColorPickerShow = false;\n this._formattingService.changeFormatBgColor($event);\n } else {\n this.colorPickerShow = false;\n this._formattingService.changeFormatColor($event);\n }\n }\n\n toggleBold(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatBold(!this.formatting.bold);\n }\n\n toggleUndo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Undo();\n }\n\n toggleRedo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Redo();\n }\n\n toggleItalic(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatItalic(!this.formatting.italic);\n }\n\n toggleUnderline(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatUnderline(!this.formatting.underline);\n }\n\n hideAll($event) {\n if (($event.target.parentElement && $event.target.parentElement.attributes['name'] &&\n $event.target.parentElement.attributes['name'].value === 'button') ||\n ($event.target.parentElement.parentElement &&\n $event.target.parentElement.parentElement.attributes['name'] &&\n $event.target.parentElement.parentElement.attributes['name'].value === 'button')) {\n\n this._onCloseService.close(true);\n return;\n }\n this.colorPickerShow = false;\n this.bgColorPickerShow = false;\n this._onCloseService.close(true);\n }\n\n toggleStrikeout(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatStrikeout(!this.formatting.strikeout);\n }\n\n toggleAlign(align: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if (align === this.formatting.align) {\n align = 'full';\n }\n this._formattingService.changeFormatAlign(align);\n this.formatting.align = align;\n }\n\n toggleList(list: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n\n if (list === this.formatting.list) {\n this.formatting.list = \"\";\n } else {\n this.formatting.list = list;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatList(list);\n }\n\n downloadFile() {\n if (this.downloadDisabled)\n return;\n window.location.assign(this._editorService.getDownloadUrl(this.credentials));\n }\n\n save(){\n if (this.formatDisabled)\n return;\n if(this.credentials) {\n if (this.file.guid === \"new document.docx\") {\n this.openModal(CommonModals.CreateDocument);\n } else {\n this.saveFile(this.credentials);\n }\n }\n }\n\n saveFile(credentials: FileCredentials) {\n if (!this.file || !this.file.pages)\n return;\n const saveFile = new SaveFile(credentials.guid, credentials.password, this.textBackup);\n this._editorService.save(saveFile).subscribe((loadFile: FileDescription) => {\n this.loadFile(loadFile);\n this.credentials = new FileCredentials(loadFile.guid, credentials.password);\n this._modalService.open(CommonModals.OperationSuccess);\n });\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if(this.file.pages) {\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n // using of the replace is required to fix issue with padding for intire print content\n page.data = this.textBackup.replace('', 'body { padding: 96px; } ');\n const printHtml = [page];\n this._renderPrintService.changePages(printHtml);\n }\n }\n\n onCloseModal($event) {\n if (this.file && $event) {\n if(this.isIE) {\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n } else {\n this.file.pages[0].editable = true;\n }\n this._selectionService.restoreSelection();\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileCredentials,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {EditorService} from \"../editor.service\";\n\n@Component({\n selector: 'gd-create-document-modal',\n templateUrl: './create.document-modal.component.html',\n styleUrls: ['./create.document-modal.component.less']\n})\nexport class CreateDocumentModalComponent implements OnInit {\n @Input() file: FileCredentials;\n @Output() savingFile: EventEmitter = new EventEmitter();\n @Output() closing = new EventEmitter();\n private _format: string;\n formats;\n FILE_NAME_REGEX = /^.*[\\\\\\/]/;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n get format() {\n return this._format;\n }\n\n ngOnInit() {\n this.loadFormats();\n }\n\n loadFormats() {\n this._editorService.getFormats().subscribe((formats: string[]) => {\n this.formats = this.formatOptions(formats);\n this._format = \"Docx\";\n }\n );\n }\n\n selectFormat($event: any) {\n this._format = $event.value;\n }\n\n createFormatOption(val: string) {\n return {value: val, name: val}\n }\n\n formatOptions(formats) {\n const allTypes = new Array();\n for (let i = 0; i < formats.length; i++) {\n allTypes.push(this.createFormatOption(formats[i]));\n }\n return allTypes;\n }\n\n save(name: string) {\n let fileName = \"\";\n if (name && name !== \"\") {\n fileName = name + \".\" + this._format;\n } else if (!this.file) {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"File name is empty\");\n }\n this._modalService.close(CommonModals.CreateDocument);\n const guid = fileName !== \"\" ? fileName : this.file.guid;\n const password = this.file ? this.file.password : '';\n this.savingFile.emit(new FileCredentials(guid, password));\n }\n\n refresh($event: boolean) {\n if (!$event) {\n this.closing.emit(true);\n }\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {EditorAppComponent} from './editor-app.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport {CreateDocumentModalComponent} from './create.document-modal/create.document-modal.component';\nimport {EditorService} from \"./editor.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService, Api\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfigService} from \"./editor-config.service\";\n\nexport function initializeApp(editorConfigService: EditorConfigService) {\n const result = () => editorConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations :[EditorAppComponent,CreateDocumentModalComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n CreateDocumentModalComponent,\n EditorAppComponent,\n CommonComponentsModule\n ],\n providers: [\n EditorService,\n ConfigService,\n EditorConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [EditorConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class EditorModule {\n constructor(){\n library.add(fas,far);\n }\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: EditorModule\n };\n }\n}\n"],"names":["Api","Injectable","HttpClient","ConfigService","BehaviorSubject","CommonModals","Formatting","FormattingService","FileDescription","PageModel","FileCredentials","tslib_1.__values","SaveFile","Component","ModalService","UploadFilesService","PasswordService","WindowService","BackFormattingService","OnCloseService","SelectionService","EditHtmlService","RenderPrintService","LoadingMaskService","EventEmitter","ExceptionMessageService","Input","Output","LoadingMaskInterceptorService","library","fas","far","NgModule","BrowserModule","CommonComponentsModule","HttpClientModule","FontAwesomeModule","APP_INITIALIZER","HTTP_INTERCEPTORS","ErrorInterceptorService"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"groupdocs.examples.angular-editor.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/editor/lib/editor.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-app.component.ts","ng://@groupdocs.examples.angular/editor/lib/create.document-modal/create.document-modal.component.ts","ng://@groupdocs.examples.angular/editor/lib/editor.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getEditorApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getEditorApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getEditorApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n}\n","export class EditorConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n createNewFile: boolean;\n preloadPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {EditorConfig} from \"./editor-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorConfigService {\n private _editorConfig: BehaviorSubject = new BehaviorSubject(new EditorConfig());\n private _updatedConfig: Observable = this._editorConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.EDITOR_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: EditorConfig) => {\n const editorConfig = response;\n this._editorConfig.next(editorConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load editor config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Component, AfterViewInit, OnInit} from '@angular/core';\nimport {EditorService} from \"./editor.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n PasswordService,\n FileCredentials,\n CommonModals,\n PageModel,\n FormattingService,\n Formatting,\n BackFormattingService,\n OnCloseService,\n SaveFile,\n SelectionService,\n EditHtmlService,\n RenderPrintService,\n WindowService,\n LoadingMaskService, Option\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfig} from \"./editor-config\";\nimport {EditorConfigService} from \"./editor-config.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-editor-angular-root',\n templateUrl: './editor-app.component.html',\n styleUrls: ['./editor-app.component.less']\n})\nexport class EditorAppComponent implements OnInit, AfterViewInit {\n title = 'editor';\n files: FileModel[] = [];\n file: FileDescription;\n editorConfig: EditorConfig;\n formatDisabled = !this.file;\n downloadDisabled = true;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n isDesktop: boolean;\n formatting: Formatting = Formatting.DEFAULT;\n fontSizeOptions = FormattingService.getFontSizeOptions();\n fontOptions = FormattingService.getFontOptions();\n bgColorPickerShow = false;\n colorPickerShow = false;\n active = false;\n private textBackup: string;\n private isIE = false;\n isLoading: boolean;\n fileWasDropped: false;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n configService: EditorConfigService,\n uploadFilesService: UploadFilesService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _formattingService: FormattingService,\n private _backFormattingService: BackFormattingService,\n private _onCloseService: OnCloseService,\n private _selectionService: SelectionService,\n private _htmlService: EditHtmlService,\n private _renderPrintService: RenderPrintService,\n private _loadingMaskService: LoadingMaskService,\n ) {\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n configService.updatedConfig.subscribe((editorConfig) => {\n this.editorConfig = editorConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._editorService.upload(uploads.item(i), '', this.editorConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n });\n\n this._backFormattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._backFormattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._backFormattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._backFormattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._backFormattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._backFormattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._backFormattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._backFormattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._backFormattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._backFormattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._formattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._formattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._formattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._formattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._formattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._formattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._htmlService.htmlContent.subscribe((text: string) => {\n if (this.file && this.file.pages) {\n this.textBackup = text;\n }\n });\n }\n\n ngOnInit() {\n if (this.editorConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.editorConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n }\n\n get rewriteConfig(): boolean {\n return this.editorConfig ? this.editorConfig.rewrite : true;\n }\n\n get downloadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.editorConfig ? this.editorConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.editorConfig ? this.editorConfig.browse : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.editorConfig ? this.editorConfig.enableRightClick : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.editorConfig ? this.editorConfig.pageSelector : true;\n }\n\n get createNewFileConfig(): boolean {\n return this.editorConfig ? this.editorConfig.createNewFile : true;\n }\n\n openModal(id: string) {\n if (this.file) {\n this.file.pages[0].editable = false;\n }\n this._modalService.open(id);\n }\n\n openSave() {\n if (!this.formatDisabled) {\n this.openModal(CommonModals.CreateDocument);\n }\n }\n\n selectDir($event: string) {\n this._editorService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n createFile() {\n this.file = new FileDescription();\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n page.data = '';\n page.number = 1;\n page.editable = true;\n this.file.pages = [];\n this.file.pages.push(page);\n this.file.guid = \"new document.docx\";\n this.credentials = new FileCredentials(\"new document.docx\", \"\");\n this.formatDisabled = false;\n this.downloadDisabled = true;\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = new FileCredentials($event, password);\n this._editorService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.loadFile(file);\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n if(isIE) {\n const observer = new MutationObserver(function (mutations) {\n if($(\".documentMainContent\").length > 0 ){\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n observer.disconnect();\n }\n });\n observer.observe(document, {attributes: false, childList: true, characterData: false, subtree: true});\n }\n }\n );\n this.clearData();\n this._modalService.close(modalId);\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private loadFile(file: FileDescription) {\n this.file = file;\n if (this.file && this.file.pages[0]) {\n this.file.pages[0].editable = true;\n this.file.pages[0].width = 595;\n this.file.pages[0].height = 842;\n this.textBackup = this.file.pages[0].data;\n }\n this.formatDisabled = !this.file;\n this.downloadDisabled = false;\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n upload($event: string) {\n this._editorService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n selectFontSize($event: Option) {\n if (this.formatDisabled)\n return;\n $(\".gd-wrapper\").off(\"keyup\");\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFontSize($event.value);\n $(\".gd-wrapper\").on(\"keyup\", () => {\n const fontElements = document.getElementsByTagName(\"font\");\n for (let i = 0, len = fontElements.length; i < len; ++i) {\n if (fontElements[i].getAttribute('size') === \"7\") {\n fontElements[i].removeAttribute(\"size\");\n fontElements[i].style.fontSize = $event + \"px\";\n }\n }\n });\n }\n\n selectFont($event: Option) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFont($event.value);\n }\n\n toggleColorPicker(bg: boolean) {\n\n if (this.formatDisabled) {\n return;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (bg) {\n this.bgColorPickerShow = !this.bgColorPickerShow;\n this.colorPickerShow = false;\n } else {\n this.colorPickerShow = !this.colorPickerShow;\n this.bgColorPickerShow = false;\n }\n }\n\n selectColor($event: string) {\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (this.bgColorPickerShow) {\n this.bgColorPickerShow = false;\n this._formattingService.changeFormatBgColor($event);\n } else {\n this.colorPickerShow = false;\n this._formattingService.changeFormatColor($event);\n }\n }\n\n toggleBold(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatBold(!this.formatting.bold);\n }\n\n toggleUndo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Undo();\n }\n\n toggleRedo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Redo();\n }\n\n toggleItalic(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatItalic(!this.formatting.italic);\n }\n\n toggleUnderline(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatUnderline(!this.formatting.underline);\n }\n\n hideAll($event) {\n if (($event.target.parentElement && $event.target.parentElement.attributes['name'] &&\n $event.target.parentElement.attributes['name'].value === 'button') ||\n ($event.target.parentElement.parentElement &&\n $event.target.parentElement.parentElement.attributes['name'] &&\n $event.target.parentElement.parentElement.attributes['name'].value === 'button')) {\n\n this._onCloseService.close(true);\n return;\n }\n this.colorPickerShow = false;\n this.bgColorPickerShow = false;\n this._onCloseService.close(true);\n }\n\n toggleStrikeout(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatStrikeout(!this.formatting.strikeout);\n }\n\n toggleAlign(align: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if (align === this.formatting.align) {\n align = 'full';\n }\n this._formattingService.changeFormatAlign(align);\n this.formatting.align = align;\n }\n\n toggleList(list: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n\n if (list === this.formatting.list) {\n this.formatting.list = \"\";\n } else {\n this.formatting.list = list;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatList(list);\n }\n\n downloadFile() {\n if (this.downloadDisabled)\n return;\n window.location.assign(this._editorService.getDownloadUrl(this.credentials));\n }\n\n save(){\n if (this.formatDisabled)\n return;\n if(this.credentials) {\n if (this.file.guid === \"new document.docx\") {\n this.openModal(CommonModals.CreateDocument);\n } else {\n this.saveFile(this.credentials);\n }\n }\n }\n\n saveFile(credentials: FileCredentials) {\n if (!this.file || !this.file.pages)\n return;\n const saveFile = new SaveFile(credentials.guid, credentials.password, this.textBackup);\n this._editorService.save(saveFile).subscribe((loadFile: FileDescription) => {\n this.loadFile(loadFile);\n this.credentials = new FileCredentials(loadFile.guid, credentials.password);\n this._modalService.open(CommonModals.OperationSuccess);\n });\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if(this.file.pages) {\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n // using of the replace is required to fix issue with padding for intire print content\n page.data = this.textBackup.replace('', 'body { padding: 96px; } ');\n const printHtml = [page];\n this._renderPrintService.changePages(printHtml);\n }\n }\n\n onCloseModal($event) {\n if (this.file && $event) {\n if(this.isIE) {\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n } else {\n this.file.pages[0].editable = true;\n }\n this._selectionService.restoreSelection();\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileCredentials,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {EditorService} from \"../editor.service\";\n\n@Component({\n selector: 'gd-create-document-modal',\n templateUrl: './create.document-modal.component.html',\n styleUrls: ['./create.document-modal.component.less']\n})\nexport class CreateDocumentModalComponent implements OnInit {\n @Input() file: FileCredentials;\n @Output() savingFile: EventEmitter = new EventEmitter();\n @Output() closing = new EventEmitter();\n private _format: string;\n formats;\n FILE_NAME_REGEX = /^.*[\\\\\\/]/;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n get format() {\n return this._format;\n }\n\n ngOnInit() {\n this.loadFormats();\n }\n\n loadFormats() {\n this._editorService.getFormats().subscribe((formats: string[]) => {\n this.formats = this.formatOptions(formats);\n this._format = \"Docx\";\n }\n );\n }\n\n selectFormat($event: any) {\n this._format = $event.value;\n }\n\n createFormatOption(val: string) {\n return {value: val, name: val}\n }\n\n formatOptions(formats) {\n const allTypes = new Array();\n for (let i = 0; i < formats.length; i++) {\n allTypes.push(this.createFormatOption(formats[i]));\n }\n return allTypes;\n }\n\n save(name: string) {\n let fileName = \"\";\n if (name && name !== \"\") {\n fileName = name + \".\" + this._format;\n } else if (!this.file) {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"File name is empty\");\n }\n this._modalService.close(CommonModals.CreateDocument);\n const guid = fileName !== \"\" ? fileName : this.file.guid;\n const password = this.file ? this.file.password : '';\n this.savingFile.emit(new FileCredentials(guid, password));\n }\n\n refresh($event: boolean) {\n if (!$event) {\n this.closing.emit(true);\n }\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {EditorAppComponent} from './editor-app.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport {CreateDocumentModalComponent} from './create.document-modal/create.document-modal.component';\nimport {EditorService} from \"./editor.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService, Api\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfigService} from \"./editor-config.service\";\n\nexport function initializeApp(editorConfigService: EditorConfigService) {\n const result = () => editorConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations :[EditorAppComponent,CreateDocumentModalComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n CreateDocumentModalComponent,\n EditorAppComponent,\n CommonComponentsModule\n ],\n providers: [\n EditorService,\n ConfigService,\n EditorConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [EditorConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class EditorModule {\n constructor(){\n library.add(fas,far);\n }\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: EditorModule\n };\n }\n}\n"],"names":["Api","Injectable","HttpClient","ConfigService","BehaviorSubject","CommonModals","Formatting","FormattingService","FileDescription","PageModel","FileCredentials","tslib_1.__values","SaveFile","Component","ModalService","UploadFilesService","PasswordService","WindowService","BackFormattingService","OnCloseService","SelectionService","EditHtmlService","RenderPrintService","LoadingMaskService","EventEmitter","ExceptionMessageService","Input","Output","LoadingMaskInterceptorService","library","fas","far","NgModule","BrowserModule","CommonComponentsModule","HttpClientModule","FontAwesomeModule","APP_INITIALIZER","HTTP_INTERCEPTORS","ErrorInterceptorService"],"mappings":"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"} \ No newline at end of file diff --git a/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.min.js b/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.min.js index 710317482..3a64feeab 100644 --- a/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.min.js +++ b/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/platform-browser"),require("@angular/core"),require("@angular/common/http"),require("@groupdocs.examples.angular/common-components"),require("rxjs"),require("jquery"),require("@fortawesome/angular-fontawesome"),require("@fortawesome/fontawesome-svg-core"),require("@fortawesome/free-solid-svg-icons"),require("@fortawesome/free-regular-svg-icons")):"function"==typeof define&&define.amd?define("@groupdocs.examples.angular/editor",["exports","@angular/platform-browser","@angular/core","@angular/common/http","@groupdocs.examples.angular/common-components","rxjs","jquery","@fortawesome/angular-fontawesome","@fortawesome/fontawesome-svg-core","@fortawesome/free-solid-svg-icons","@fortawesome/free-regular-svg-icons"],t):t(((e=e||self).groupdocs=e.groupdocs||{},e.groupdocs.examples=e.groupdocs.examples||{},e.groupdocs.examples.angular=e.groupdocs.examples.angular||{},e.groupdocs.examples.angular.editor={}),e.ng.platformBrowser,e.ng.core,e.ng.common.http,e.commonComponents,e.rxjs,e.jquery,e.angularFontawesome,e.fontawesomeSvgCore,e.freeSolidSvgIcons,e.freeRegularSvgIcons)}(this,function(e,t,o,i,n,r,a,s,l,c,d){"use strict";var g=function(){function e(e,t){this._http=e,this._config=t}return e.prototype.loadFiles=function(e){return this._http.post(this._config.getEditorApiEndpoint()+n.Api.LOAD_FILE_TREE,{path:e},n.Api.httpOptionsJson)},e.prototype.getFormats=function(){return this._http.get(this._config.getEditorApiEndpoint()+n.Api.LOAD_FORMATS,n.Api.httpOptionsJson)},e.prototype.loadFile=function(e){return this._http.post(this._config.getEditorApiEndpoint()+n.Api.LOAD_DOCUMENT_DESCRIPTION,e,n.Api.httpOptionsJson)},e.prototype.upload=function(e,t,o){var i=new FormData;return i.append("file",e),i.append("rewrite",String(o)),t&&i.append("url",t),this._http.post(this._config.getEditorApiEndpoint()+n.Api.UPLOAD_DOCUMENTS,i)},e.prototype.save=function(e){return this._http.post(this._config.getEditorApiEndpoint()+n.Api.SAVE_FILE,e,n.Api.httpOptionsJson)},e.prototype.getDownloadUrl=function(e){return this._config.getEditorApiEndpoint()+n.Api.DOWNLOAD_DOCUMENTS+"/?path="+e.guid},e.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:n.ConfigService}]},e.ngInjectableDef=o.ɵɵdefineInjectable({factory:function(){return new e(o.ɵɵinject(i.HttpClient),o.ɵɵinject(n.ConfigService))},token:e,providedIn:"root"}),e}(),p=function(){},f=function(){function e(e,t){this._http=e,this._config=t,this._editorConfig=new r.BehaviorSubject(new p),this._updatedConfig=this._editorConfig.asObservable()}return Object.defineProperty(e.prototype,"updatedConfig",{get:function(){return this._updatedConfig},enumerable:!0,configurable:!0}),e.prototype.load=function(){var e=this;return new Promise(function(t,o){var i=e._config.getConfigEndpoint(n.Api.EDITOR_APP);e._http.get(i,n.Api.httpOptionsJson).toPromise().then(function(o){var i=o;e._editorConfig.next(i),t()}).catch(function(e){o("Could not load editor config: "+JSON.stringify(e))})})},e.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:n.ConfigService}]},e.ngInjectableDef=o.ɵɵdefineInjectable({factory:function(){return new e(o.ɵɵinject(i.HttpClient),o.ɵɵinject(n.ConfigService))},token:e,providedIn:"root"}),e}(),u=a,m=function(){function e(e,t,o,i,r,a,s,l,c,d,g,p,f){var u=this;this._editorService=e,this._modalService=t,this._windowService=a,this._formattingService=s,this._backFormattingService=l,this._onCloseService=c,this._selectionService=d,this._htmlService=g,this._renderPrintService=p,this._loadingMaskService=f,this.title="editor",this.files=[],this.formatDisabled=!this.file,this.downloadDisabled=!0,this.browseFilesModal=n.CommonModals.BrowseFiles,this.formatting=n.Formatting.DEFAULT,this.fontSizeOptions=n.FormattingService.getFontSizeOptions(),this.fontOptions=n.FormattingService.getFontOptions(),this.bgColorPickerShow=!1,this.colorPickerShow=!1,this.active=!1,this.isIE=!1,this.isIE=/*@cc_on!@*/!!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent),o.updatedConfig.subscribe(function(e){u.editorConfig=e}),i.uploadsChange.subscribe(function(e){if(e){var t=void 0;for(t=0;t',e.number=1,e.editable=!0,this.file.pages=[],this.file.pages.push(e),this.file.guid="new document.docx",this.credentials=new n.FileCredentials("new document.docx",""),this.formatDisabled=!1,this.downloadDisabled=!0},e.prototype.selectFile=function(e,t,o){var i=this;this.credentials=new n.FileCredentials(e,t),this._editorService.loadFile(this.credentials).subscribe(function(e){if(i.loadFile(e),/*@cc_on!@*/!!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent)){var t=new MutationObserver(function(e){u(".documentMainContent").length>0&&(u(".documentMainContent").attr("contentEditable","true"),t.disconnect())});t.observe(document,{attributes:!1,childList:!0,characterData:!1,subtree:!0})}}),this.clearData(),this._modalService.close(o)},e.prototype.fileDropped=function(e){this.fileWasDropped=e},e.prototype.loadFile=function(e){this.file=e,this.file&&this.file.pages[0]&&(this.file.pages[0].editable=!0,this.file.pages[0].width=595,this.file.pages[0].height=842,this.textBackup=this.file.pages[0].data),this.formatDisabled=!this.file,this.downloadDisabled=!1},e.prototype.clearData=function(){var e,t;if(this.file&&this.file.pages)try{for(var o=function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],o=0;return t?t.call(e):{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}}}(this.file.pages),i=o.next();!i.done;i=o.next()){i.value.data=null}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}},e.prototype.upload=function(e){var t=this;this._editorService.upload(null,e,this.rewriteConfig).subscribe(function(){t.selectDir("")})},e.prototype.selectFontSize=function(e){this.formatDisabled||(u(".gd-wrapper").off("keyup"),this.isIE&&(this._selectionService.restoreSelection(),this._selectionService.captureSelection()),this._formattingService.changeFormatFontSize(e.value),u(".gd-wrapper").on("keyup",function(){for(var t=document.getElementsByTagName("font"),o=0,i=t.length;o","body { padding: 96px; } ");var t=[e];this._renderPrintService.changePages(t)}},e.prototype.onCloseModal=function(e){this.file&&e&&(this.isIE?u(".documentMainContent").attr("contentEditable","true"):this.file.pages[0].editable=!0,this._selectionService.restoreSelection())},e.decorators=[{type:o.Component,args:[{selector:"gd-editor-angular-root",template:'\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n',styles:["@import url(https://fonts.googleapis.com/css?family=Open+Sans&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.current-page-number{margin:0 15px;font-size:14px;color:#959da5}*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:text}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:calc(100% - 90px)}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{width:100%}/deep/ .gd-wrapper{padding:96px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;outline:0}/deep/ .dropdown-menu{min-width:unset!important}.format-select{margin:0 15px}.palette{position:absolute;top:90px;z-index:100}.background-color-picker{left:700px}.color-picker{left:750px}.bg-color-pic{border-radius:100%;border:1px solid #ccc;position:absolute;height:8px;width:8px;right:6px;bottom:6px}/deep/ .button.inactive{color:#ccc!important}/deep/ .gd-editor-buttons .button .tooltip{margin-top:45px;margin-left:-36px}/deep/ .gd-edit.active{background-color:#7e8991;border-radius:5px}/deep/ .gd-edit.active i{color:#fff}/deep/ .page{width:800px}/deep/ .save-as-button-icon{font-size:11px;left:22px!important;top:13px!important}.save-button{position:absolute;top:-5px;left:21px}@media (max-width:1037px){/deep/ .panzoom{zoom:.4;margin-top:160px}}"]}]}],e.ctorParameters=function(){return[{type:g},{type:n.ModalService},{type:f},{type:n.UploadFilesService},{type:n.PasswordService},{type:n.WindowService},{type:n.FormattingService},{type:n.BackFormattingService},{type:n.OnCloseService},{type:n.SelectionService},{type:n.EditHtmlService},{type:n.RenderPrintService},{type:n.LoadingMaskService}]},e}(),h=function(){function e(e,t,i){this._editorService=e,this._modalService=t,this._excMessageService=i,this.savingFile=new o.EventEmitter,this.closing=new o.EventEmitter,this.FILE_NAME_REGEX=/^.*[\\\/]/}return Object.defineProperty(e.prototype,"format",{get:function(){return this._format},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.loadFormats()},e.prototype.loadFormats=function(){var e=this;this._editorService.getFormats().subscribe(function(t){e.formats=e.formatOptions(t),e._format="Docx"})},e.prototype.selectFormat=function(e){this._format=e.value},e.prototype.createFormatOption=function(e){return{value:e,name:e}},e.prototype.formatOptions=function(e){for(var t=new Array,o=0;o\n
\n
\n \n \n \n \n Save\n
\n
\n\n',styles:[".gd-create-wrap{display:flex;flex-direction:column;margin:24px}.gd-create-wrap label{font-size:14px;color:#acacac;padding-bottom:12px}.gd-create-wrap input{margin-bottom:20px;border:1px solid #6e6e6e!important;padding:9px 0 9px 10px;font-size:14px}.gd-create-wrap gd-button{align-self:flex-end}.gd-create-wrap ::ng-deep .button ::ng-deep .text{font-size:10px!important}#gd-create-document-section{width:468px}::ng-deep .gd-select-format .dropdown-menu{height:167px;overflow:hidden;overflow-y:auto;top:239px!important;min-width:0!important;width:65px;border:none!important}::ng-deep .gd-select-format .dropdown-menu .option{font-size:10px;color:#6e6e6e}::ng-deep .gd-select-format .dropdown-menu .option:hover{background-color:#4b566c!important}::ng-deep .select{height:35px;width:63px;border:1px solid #6e6e6e;color:#6e6e6e!important;display:flex;align-items:center;justify-content:space-between}::ng-deep .select .selected-value{padding:9px 0 9px 8px}::ng-deep .select .nav-caret{margin-right:8px}@media (max-width:1037px){#gd-create-document-section{width:100%}}"]}]}],e.ctorParameters=function(){return[{type:g},{type:n.ModalService},{type:n.ExceptionMessageService}]},e.propDecorators={file:[{type:o.Input}],savingFile:[{type:o.Output}],closing:[{type:o.Output}]},e}();function b(e){return function(){return e.load()}}function v(e){return new n.LoadingMaskInterceptorService(e)}var S=function(){function e(){l.library.add(c.fas,d.far)}return e.forRoot=function(t){return n.Api.DEFAULT_API_ENDPOINT=t,{ngModule:e}},e.decorators=[{type:o.NgModule,args:[{declarations:[m,h],imports:[t.BrowserModule,n.CommonComponentsModule,i.HttpClientModule,s.FontAwesomeModule],exports:[h,m,n.CommonComponentsModule],providers:[g,n.ConfigService,f,{provide:o.APP_INITIALIZER,useFactory:b,deps:[f],multi:!0},{provide:i.HTTP_INTERCEPTORS,useClass:n.ErrorInterceptorService,multi:!0},n.LoadingMaskService,{provide:i.HTTP_INTERCEPTORS,useFactory:v,multi:!0,deps:[n.LoadingMaskService]}]}]}],e.ctorParameters=function(){return[]},e}();e.CreateDocumentModalComponent=h,e.EditorAppComponent=m,e.EditorConfig=p,e.EditorConfigService=f,e.EditorModule=S,e.EditorService=g,e.initializeApp=b,e.setupLoadingInterceptor=v,Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/platform-browser"),require("@angular/core"),require("@angular/common/http"),require("@groupdocs.examples.angular/common-components"),require("rxjs"),require("jquery"),require("@fortawesome/angular-fontawesome"),require("@fortawesome/fontawesome-svg-core"),require("@fortawesome/free-solid-svg-icons"),require("@fortawesome/free-regular-svg-icons")):"function"==typeof define&&define.amd?define("@groupdocs.examples.angular/editor",["exports","@angular/platform-browser","@angular/core","@angular/common/http","@groupdocs.examples.angular/common-components","rxjs","jquery","@fortawesome/angular-fontawesome","@fortawesome/fontawesome-svg-core","@fortawesome/free-solid-svg-icons","@fortawesome/free-regular-svg-icons"],t):t(((e=e||self).groupdocs=e.groupdocs||{},e.groupdocs.examples=e.groupdocs.examples||{},e.groupdocs.examples.angular=e.groupdocs.examples.angular||{},e.groupdocs.examples.angular.editor={}),e.ng.platformBrowser,e.ng.core,e.ng.common.http,e.commonComponents,e.rxjs,e.jquery,e.angularFontawesome,e.fontawesomeSvgCore,e.freeSolidSvgIcons,e.freeRegularSvgIcons)}(this,function(e,t,o,i,n,r,a,s,l,c,d){"use strict";var g=function(){function e(e,t){this._http=e,this._config=t}return e.prototype.loadFiles=function(e){return this._http.post(this._config.getEditorApiEndpoint()+n.Api.LOAD_FILE_TREE,{path:e},n.Api.httpOptionsJson)},e.prototype.getFormats=function(){return this._http.get(this._config.getEditorApiEndpoint()+n.Api.LOAD_FORMATS,n.Api.httpOptionsJson)},e.prototype.loadFile=function(e){return this._http.post(this._config.getEditorApiEndpoint()+n.Api.LOAD_DOCUMENT_DESCRIPTION,e,n.Api.httpOptionsJson)},e.prototype.upload=function(e,t,o){var i=new FormData;return i.append("file",e),i.append("rewrite",String(o)),t&&i.append("url",t),this._http.post(this._config.getEditorApiEndpoint()+n.Api.UPLOAD_DOCUMENTS,i)},e.prototype.save=function(e){return this._http.post(this._config.getEditorApiEndpoint()+n.Api.SAVE_FILE,e,n.Api.httpOptionsJson)},e.prototype.getDownloadUrl=function(e){return this._config.getEditorApiEndpoint()+n.Api.DOWNLOAD_DOCUMENTS+"/?path="+e.guid},e.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:n.ConfigService}]},e.ngInjectableDef=o.ɵɵdefineInjectable({factory:function(){return new e(o.ɵɵinject(i.HttpClient),o.ɵɵinject(n.ConfigService))},token:e,providedIn:"root"}),e}(),p=function(){},f=function(){function e(e,t){this._http=e,this._config=t,this._editorConfig=new r.BehaviorSubject(new p),this._updatedConfig=this._editorConfig.asObservable()}return Object.defineProperty(e.prototype,"updatedConfig",{get:function(){return this._updatedConfig},enumerable:!0,configurable:!0}),e.prototype.load=function(){var e=this;return new Promise(function(t,o){var i=e._config.getConfigEndpoint(n.Api.EDITOR_APP);e._http.get(i,n.Api.httpOptionsJson).toPromise().then(function(o){var i=o;e._editorConfig.next(i),t()}).catch(function(e){o("Could not load editor config: "+JSON.stringify(e))})})},e.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:n.ConfigService}]},e.ngInjectableDef=o.ɵɵdefineInjectable({factory:function(){return new e(o.ɵɵinject(i.HttpClient),o.ɵɵinject(n.ConfigService))},token:e,providedIn:"root"}),e}(),u=a,m=function(){function e(e,t,o,i,r,a,s,l,c,d,g,p,f){var u=this;this._editorService=e,this._modalService=t,this._windowService=a,this._formattingService=s,this._backFormattingService=l,this._onCloseService=c,this._selectionService=d,this._htmlService=g,this._renderPrintService=p,this._loadingMaskService=f,this.title="editor",this.files=[],this.formatDisabled=!this.file,this.downloadDisabled=!0,this.browseFilesModal=n.CommonModals.BrowseFiles,this.formatting=n.Formatting.DEFAULT,this.fontSizeOptions=n.FormattingService.getFontSizeOptions(),this.fontOptions=n.FormattingService.getFontOptions(),this.bgColorPickerShow=!1,this.colorPickerShow=!1,this.active=!1,this.isIE=!1,this.isIE=/*@cc_on!@*/!!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent),o.updatedConfig.subscribe(function(e){u.editorConfig=e}),i.uploadsChange.subscribe(function(e){if(e){var t=void 0;for(t=0;t',e.number=1,e.editable=!0,this.file.pages=[],this.file.pages.push(e),this.file.guid="new document.docx",this.credentials=new n.FileCredentials("new document.docx",""),this.formatDisabled=!1,this.downloadDisabled=!0},e.prototype.selectFile=function(e,t,o){var i=this;this.credentials=new n.FileCredentials(e,t),this._editorService.loadFile(this.credentials).subscribe(function(e){if(i.loadFile(e),/*@cc_on!@*/!!/(MSIE|Trident\/|Edge\/)/i.test(navigator.userAgent)){var t=new MutationObserver(function(e){u(".documentMainContent").length>0&&(u(".documentMainContent").attr("contentEditable","true"),t.disconnect())});t.observe(document,{attributes:!1,childList:!0,characterData:!1,subtree:!0})}}),this.clearData(),this._modalService.close(o)},e.prototype.fileDropped=function(e){this.fileWasDropped=e},e.prototype.loadFile=function(e){this.file=e,this.file&&this.file.pages[0]&&(this.file.pages[0].editable=!0,this.file.pages[0].width=595,this.file.pages[0].height=842,this.textBackup=this.file.pages[0].data),this.formatDisabled=!this.file,this.downloadDisabled=!1},e.prototype.clearData=function(){var e,t;if(this.file&&this.file.pages)try{for(var o=function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],o=0;return t?t.call(e):{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}}}(this.file.pages),i=o.next();!i.done;i=o.next()){i.value.data=null}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}},e.prototype.upload=function(e){var t=this;this._editorService.upload(null,e,this.rewriteConfig).subscribe(function(){t.selectDir("")})},e.prototype.selectFontSize=function(e){this.formatDisabled||(u(".gd-wrapper").off("keyup"),this.isIE&&(this._selectionService.restoreSelection(),this._selectionService.captureSelection()),this._formattingService.changeFormatFontSize(e.value),u(".gd-wrapper").on("keyup",function(){for(var t=document.getElementsByTagName("font"),o=0,i=t.length;o","body { padding: 96px; } ");var t=[e];this._renderPrintService.changePages(t)}},e.prototype.onCloseModal=function(e){this.file&&e&&(this.isIE?u(".documentMainContent").attr("contentEditable","true"):this.file.pages[0].editable=!0,this._selectionService.restoreSelection())},e.decorators=[{type:o.Component,args:[{selector:"gd-editor-angular-root",template:'\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n',styles:["@import url(https://fonts.googleapis.com/css?family=Open+Sans&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.current-page-number{margin:0 15px;font-size:14px;color:#959da5}*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:text}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:calc(100% - 90px)}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{width:100%}/deep/ .gd-wrapper{padding:96px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;outline:0}/deep/ .dropdown-menu{min-width:unset!important}.format-select{margin:0 15px}.palette{position:absolute;top:90px;z-index:100}.background-color-picker{left:700px}.color-picker{left:750px}.bg-color-pic{border-radius:100%;border:1px solid #ccc;position:absolute;height:8px;width:8px;right:6px;bottom:6px}/deep/ .button.inactive{color:#ccc!important}/deep/ .gd-editor-buttons .button .tooltip{margin-top:45px;margin-left:-36px}/deep/ .gd-edit.active{background-color:#7e8991;border-radius:5px}/deep/ .gd-edit.active i{color:#fff}/deep/ .page{width:800px}/deep/ .save-as-button-icon{font-size:11px;left:22px!important;top:13px!important}.save-button{position:absolute;top:-5px;left:21px}@media (max-width:1037px){/deep/ .panzoom{zoom:.4;margin-top:160px}}"]}]}],e.ctorParameters=function(){return[{type:g},{type:n.ModalService},{type:f},{type:n.UploadFilesService},{type:n.PasswordService},{type:n.WindowService},{type:n.FormattingService},{type:n.BackFormattingService},{type:n.OnCloseService},{type:n.SelectionService},{type:n.EditHtmlService},{type:n.RenderPrintService},{type:n.LoadingMaskService}]},e}(),h=function(){function e(e,t,i){this._editorService=e,this._modalService=t,this._excMessageService=i,this.savingFile=new o.EventEmitter,this.closing=new o.EventEmitter,this.FILE_NAME_REGEX=/^.*[\\\/]/}return Object.defineProperty(e.prototype,"format",{get:function(){return this._format},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.loadFormats()},e.prototype.loadFormats=function(){var e=this;this._editorService.getFormats().subscribe(function(t){e.formats=e.formatOptions(t),e._format="Docx"})},e.prototype.selectFormat=function(e){this._format=e.value},e.prototype.createFormatOption=function(e){return{value:e,name:e}},e.prototype.formatOptions=function(e){for(var t=new Array,o=0;o\n
\n
\n \n \n \n \n Save\n
\n
\n\n',styles:[".gd-create-wrap{display:flex;flex-direction:column;margin:24px}.gd-create-wrap label{font-size:14px;color:#acacac;padding-bottom:12px}.gd-create-wrap input{margin-bottom:20px;border:1px solid #6e6e6e!important;padding:9px 0 9px 10px;font-size:14px}.gd-create-wrap gd-button{align-self:flex-end}.gd-create-wrap ::ng-deep .button ::ng-deep .text{font-size:10px!important}#gd-create-document-section{width:468px}::ng-deep .gd-select-format .dropdown-menu{height:167px;overflow:hidden;overflow-y:auto;top:239px!important;min-width:0!important;width:65px;border:none!important}::ng-deep .gd-select-format .dropdown-menu .option{font-size:10px;color:#6e6e6e}::ng-deep .gd-select-format .dropdown-menu .option:hover{background-color:#4b566c!important}::ng-deep .select{height:35px;width:63px;border:1px solid #6e6e6e;color:#6e6e6e!important;display:flex;align-items:center;justify-content:space-between}::ng-deep .select .selected-value{padding:9px 0 9px 8px}::ng-deep .select .nav-caret{margin-right:8px}@media (max-width:1037px){#gd-create-document-section{width:100%}}"]}]}],e.ctorParameters=function(){return[{type:g},{type:n.ModalService},{type:n.ExceptionMessageService}]},e.propDecorators={file:[{type:o.Input}],savingFile:[{type:o.Output}],closing:[{type:o.Output}]},e}();function b(e){return function(){return e.load()}}function v(e){return new n.LoadingMaskInterceptorService(e)}var S=function(){function e(){l.library.add(c.fas,d.far)}return e.forRoot=function(t){return n.Api.DEFAULT_API_ENDPOINT=t,{ngModule:e}},e.decorators=[{type:o.NgModule,args:[{declarations:[m,h],imports:[t.BrowserModule,n.CommonComponentsModule,i.HttpClientModule,s.FontAwesomeModule],exports:[h,m,n.CommonComponentsModule],providers:[g,n.ConfigService,f,{provide:o.APP_INITIALIZER,useFactory:b,deps:[f],multi:!0},{provide:i.HTTP_INTERCEPTORS,useClass:n.ErrorInterceptorService,multi:!0},n.LoadingMaskService,{provide:i.HTTP_INTERCEPTORS,useFactory:v,multi:!0,deps:[n.LoadingMaskService]}]}]}],e.ctorParameters=function(){return[]},e}();e.CreateDocumentModalComponent=h,e.EditorAppComponent=m,e.EditorConfig=p,e.EditorConfigService=f,e.EditorModule=S,e.EditorService=g,e.initializeApp=b,e.setupLoadingInterceptor=v,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=groupdocs.examples.angular-editor.umd.min.js.map \ No newline at end of file diff --git a/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.min.js.map b/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.min.js.map index 9496720f6..b49f65e0f 100644 --- a/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.min.js.map +++ b/dist/libs/editor/bundles/groupdocs.examples.angular-editor.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["ng://@groupdocs.examples.angular/editor/lib/editor.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-app.component.ts","../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/editor/lib/create.document-modal/create.document-modal.component.ts","ng://@groupdocs.examples.angular/editor/lib/editor.module.ts"],"names":["EditorService","_http","_config","this","prototype","loadFiles","path","post","getEditorApiEndpoint","Api","LOAD_FILE_TREE","httpOptionsJson","getFormats","get","LOAD_FORMATS","loadFile","credentials","LOAD_DOCUMENT_DESCRIPTION","upload","file","url","rewrite","formData","FormData","append","String","UPLOAD_DOCUMENTS","save","SAVE_FILE","getDownloadUrl","DOWNLOAD_DOCUMENTS","guid","Injectable","args","providedIn","HttpClient","ConfigService","EditorConfig","EditorConfigService","_editorConfig","BehaviorSubject","_updatedConfig","asObservable","Object","defineProperty","load","_this","Promise","resolve","reject","configEndpoint","getConfigEndpoint","EDITOR_APP","toPromise","then","response","editorConfig","next","catch","JSON","stringify","$","jquery","EditorAppComponent","_editorService","_modalService","configService","uploadFilesService","passwordService","_windowService","_formattingService","_backFormattingService","_onCloseService","_selectionService","_htmlService","_renderPrintService","_loadingMaskService","title","files","formatDisabled","downloadDisabled","browseFilesModal","CommonModals","BrowseFiles","formatting","Formatting","DEFAULT","fontSizeOptions","FormattingService","getFontSizeOptions","fontOptions","getFontOptions","bgColorPickerShow","colorPickerShow","active","isIE","test","navigator","userAgent","updatedConfig","subscribe","uploadsChange","uploads","i","length","item","obj","fileWasDropped","selectFile","selectDir","passChange","pass","PasswordRequired","isDesktop","onResize","w","formatBoldChange","bold","formatItalicChange","italic","formatUnderlineChange","underline","formatColorChange","color","formatBgColorChange","bgcolor","bgColor","formatFontSizeChange","fontSize","formatFontChange","font","formatStrikeoutChange","strikeout","formatAlignChange","align","formatListChange","list","htmlContent","text","pages","textBackup","ngOnInit","defaultDocument","isLoading","ngAfterViewInit","onLoadingChanged","loading","download","print","browse","enableRightClick","pageSelector","createNewFile","openModal","id","editable","open","openSave","CreateDocument","$event","ptToPx","pt","onRightClick","enableRightClickConfig","createFile","FileDescription","page","PageModel","width","height","data","number","push","FileCredentials","password","modalId","observer_1","MutationObserver","mutations","attr","disconnect","observe","document","attributes","childList","characterData","subtree","clearData","close","fileDropped","_b","o","m","Symbol","iterator","call","value","done","tslib_1.__values","_c","rewriteConfig","selectFontSize","off","restoreSelection","captureSelection","changeFormatFontSize","on","fontElements","getElementsByTagName","len","getAttribute","removeAttribute","style","selectFont","event","preventDefault","stopPropagation","changeFormatFont","toggleColorPicker","bg","selectColor","changeFormatBgColor","changeFormatColor","toggleBold","changeFormatBold","toggleUndo","Undo","toggleRedo","Redo","toggleItalic","changeFormatItalic","toggleUnderline","changeFormatUnderline","hideAll","target","parentElement","toggleStrikeout","changeFormatStrikeout","toggleAlign","changeFormatAlign","toggleList","changeFormatList","downloadFile","window","location","assign","saveFile","SaveFile","OperationSuccess","printFile","replace","printHtml","changePages","onCloseModal","Component","selector","template","ModalService","UploadFilesService","PasswordService","WindowService","BackFormattingService","OnCloseService","SelectionService","EditHtmlService","RenderPrintService","LoadingMaskService","CreateDocumentModalComponent","_excMessageService","savingFile","EventEmitter","closing","FILE_NAME_REGEX","_format","loadFormats","formats","formatOptions","selectFormat","createFormatOption","val","name","allTypes","Array","fileName","ErrorMessage","changeMessage","emit","refresh","ExceptionMessageService","Input","Output","initializeApp","editorConfigService","setupLoadingInterceptor","service","LoadingMaskInterceptorService","EditorModule","library","add","fas","far","forRoot","apiEndpoint","DEFAULT_API_ENDPOINT","ngModule","NgModule","declarations","imports","BrowserModule","CommonComponentsModule","HttpClientModule","FontAwesomeModule","exports","providers","provide","APP_INITIALIZER","useFactory","deps","multi","HTTP_INTERCEPTORS","useClass","ErrorInterceptorService"],"mappings":"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","sourcesContent":["import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getEditorApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getEditorApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getEditorApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n}\n","export class EditorConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n createNewFile: boolean;\n preloadPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {EditorConfig} from \"./editor-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorConfigService {\n private _editorConfig: BehaviorSubject = new BehaviorSubject(new EditorConfig());\n private _updatedConfig: Observable = this._editorConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.EDITOR_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: EditorConfig) => {\n const editorConfig = response;\n this._editorConfig.next(editorConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load editor config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Component, AfterViewInit, OnInit} from '@angular/core';\nimport {EditorService} from \"./editor.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n PasswordService,\n FileCredentials,\n CommonModals,\n PageModel,\n FormattingService,\n Formatting,\n BackFormattingService,\n OnCloseService,\n SaveFile,\n SelectionService,\n EditHtmlService,\n RenderPrintService,\n WindowService,\n LoadingMaskService, Option\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfig} from \"./editor-config\";\nimport {EditorConfigService} from \"./editor-config.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-editor-angular-root',\n templateUrl: './editor-app.component.html',\n styleUrls: ['./editor-app.component.less']\n})\nexport class EditorAppComponent implements OnInit, AfterViewInit {\n title = 'editor';\n files: FileModel[] = [];\n file: FileDescription;\n editorConfig: EditorConfig;\n formatDisabled = !this.file;\n downloadDisabled = true;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n isDesktop: boolean;\n formatting: Formatting = Formatting.DEFAULT;\n fontSizeOptions = FormattingService.getFontSizeOptions();\n fontOptions = FormattingService.getFontOptions();\n bgColorPickerShow = false;\n colorPickerShow = false;\n active = false;\n private textBackup: string;\n private isIE = false;\n isLoading: boolean;\n fileWasDropped: false;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n configService: EditorConfigService,\n uploadFilesService: UploadFilesService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _formattingService: FormattingService,\n private _backFormattingService: BackFormattingService,\n private _onCloseService: OnCloseService,\n private _selectionService: SelectionService,\n private _htmlService: EditHtmlService,\n private _renderPrintService: RenderPrintService,\n private _loadingMaskService: LoadingMaskService,\n ) {\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n configService.updatedConfig.subscribe((editorConfig) => {\n this.editorConfig = editorConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._editorService.upload(uploads.item(i), '', this.editorConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n });\n\n this._backFormattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._backFormattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._backFormattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._backFormattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._backFormattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._backFormattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._backFormattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._backFormattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._backFormattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._backFormattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._formattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._formattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._formattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._formattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._formattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._formattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._htmlService.htmlContent.subscribe((text: string) => {\n if (this.file && this.file.pages) {\n this.textBackup = text;\n }\n });\n }\n\n ngOnInit() {\n if (this.editorConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.editorConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n }\n\n get rewriteConfig(): boolean {\n return this.editorConfig ? this.editorConfig.rewrite : true;\n }\n\n get downloadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.editorConfig ? this.editorConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.editorConfig ? this.editorConfig.browse : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.editorConfig ? this.editorConfig.enableRightClick : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.editorConfig ? this.editorConfig.pageSelector : true;\n }\n\n get createNewFileConfig(): boolean {\n return this.editorConfig ? this.editorConfig.createNewFile : true;\n }\n\n openModal(id: string) {\n if (this.file) {\n this.file.pages[0].editable = false;\n }\n this._modalService.open(id);\n }\n\n openSave() {\n if (!this.formatDisabled) {\n this.openModal(CommonModals.CreateDocument);\n }\n }\n\n selectDir($event: string) {\n this._editorService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n createFile() {\n this.file = new FileDescription();\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n page.data = '';\n page.number = 1;\n page.editable = true;\n this.file.pages = [];\n this.file.pages.push(page);\n this.file.guid = \"new document.docx\";\n this.credentials = new FileCredentials(\"new document.docx\", \"\");\n this.formatDisabled = false;\n this.downloadDisabled = true;\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = new FileCredentials($event, password);\n this._editorService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.loadFile(file);\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n if(isIE) {\n const observer = new MutationObserver(function (mutations) {\n if($(\".documentMainContent\").length > 0 ){\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n observer.disconnect();\n }\n });\n observer.observe(document, {attributes: false, childList: true, characterData: false, subtree: true});\n }\n }\n );\n this.clearData();\n this._modalService.close(modalId);\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private loadFile(file: FileDescription) {\n this.file = file;\n if (this.file && this.file.pages[0]) {\n this.file.pages[0].editable = true;\n this.file.pages[0].width = 595;\n this.file.pages[0].height = 842;\n this.textBackup = this.file.pages[0].data;\n }\n this.formatDisabled = !this.file;\n this.downloadDisabled = false;\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n upload($event: string) {\n this._editorService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n selectFontSize($event: Option) {\n if (this.formatDisabled)\n return;\n $(\".gd-wrapper\").off(\"keyup\");\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFontSize($event.value);\n $(\".gd-wrapper\").on(\"keyup\", () => {\n const fontElements = document.getElementsByTagName(\"font\");\n for (let i = 0, len = fontElements.length; i < len; ++i) {\n if (fontElements[i].getAttribute('size') === \"7\") {\n fontElements[i].removeAttribute(\"size\");\n fontElements[i].style.fontSize = $event + \"px\";\n }\n }\n });\n }\n\n selectFont($event: Option) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFont($event.value);\n }\n\n toggleColorPicker(bg: boolean) {\n\n if (this.formatDisabled) {\n return;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (bg) {\n this.bgColorPickerShow = !this.bgColorPickerShow;\n this.colorPickerShow = false;\n } else {\n this.colorPickerShow = !this.colorPickerShow;\n this.bgColorPickerShow = false;\n }\n }\n\n selectColor($event: string) {\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (this.bgColorPickerShow) {\n this.bgColorPickerShow = false;\n this._formattingService.changeFormatBgColor($event);\n } else {\n this.colorPickerShow = false;\n this._formattingService.changeFormatColor($event);\n }\n }\n\n toggleBold(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatBold(!this.formatting.bold);\n }\n\n toggleUndo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Undo();\n }\n\n toggleRedo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Redo();\n }\n\n toggleItalic(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatItalic(!this.formatting.italic);\n }\n\n toggleUnderline(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatUnderline(!this.formatting.underline);\n }\n\n hideAll($event) {\n if (($event.target.parentElement && $event.target.parentElement.attributes['name'] &&\n $event.target.parentElement.attributes['name'].value === 'button') ||\n ($event.target.parentElement.parentElement &&\n $event.target.parentElement.parentElement.attributes['name'] &&\n $event.target.parentElement.parentElement.attributes['name'].value === 'button')) {\n\n this._onCloseService.close(true);\n return;\n }\n this.colorPickerShow = false;\n this.bgColorPickerShow = false;\n this._onCloseService.close(true);\n }\n\n toggleStrikeout(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatStrikeout(!this.formatting.strikeout);\n }\n\n toggleAlign(align: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if (align === this.formatting.align) {\n align = 'full';\n }\n this._formattingService.changeFormatAlign(align);\n this.formatting.align = align;\n }\n\n toggleList(list: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n\n if (list === this.formatting.list) {\n this.formatting.list = \"\";\n } else {\n this.formatting.list = list;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatList(list);\n }\n\n downloadFile() {\n if (this.downloadDisabled)\n return;\n window.location.assign(this._editorService.getDownloadUrl(this.credentials));\n }\n\n save(){\n if (this.formatDisabled)\n return;\n if(this.credentials) {\n if (this.file.guid === \"new document.docx\") {\n this.openModal(CommonModals.CreateDocument);\n } else {\n this.saveFile(this.credentials);\n }\n }\n }\n\n saveFile(credentials: FileCredentials) {\n if (!this.file || !this.file.pages)\n return;\n const saveFile = new SaveFile(credentials.guid, credentials.password, this.textBackup);\n this._editorService.save(saveFile).subscribe((loadFile: FileDescription) => {\n this.loadFile(loadFile);\n this.credentials = new FileCredentials(loadFile.guid, credentials.password);\n this._modalService.open(CommonModals.OperationSuccess);\n });\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if(this.file.pages) {\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n // using of the replace is required to fix issue with padding for intire print content\n page.data = this.textBackup.replace('', 'body { padding: 96px; } ');\n const printHtml = [page];\n this._renderPrintService.changePages(printHtml);\n }\n }\n\n onCloseModal($event) {\n if (this.file && $event) {\n if(this.isIE) {\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n } else {\n this.file.pages[0].editable = true;\n }\n this._selectionService.restoreSelection();\n }\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileCredentials,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {EditorService} from \"../editor.service\";\n\n@Component({\n selector: 'gd-create-document-modal',\n templateUrl: './create.document-modal.component.html',\n styleUrls: ['./create.document-modal.component.less']\n})\nexport class CreateDocumentModalComponent implements OnInit {\n @Input() file: FileCredentials;\n @Output() savingFile: EventEmitter = new EventEmitter();\n @Output() closing = new EventEmitter();\n private _format: string;\n formats;\n FILE_NAME_REGEX = /^.*[\\\\\\/]/;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n get format() {\n return this._format;\n }\n\n ngOnInit() {\n this.loadFormats();\n }\n\n loadFormats() {\n this._editorService.getFormats().subscribe((formats: string[]) => {\n this.formats = this.formatOptions(formats);\n this._format = \"Docx\";\n }\n );\n }\n\n selectFormat($event: any) {\n this._format = $event.value;\n }\n\n createFormatOption(val: string) {\n return {value: val, name: val}\n }\n\n formatOptions(formats) {\n const allTypes = new Array();\n for (let i = 0; i < formats.length; i++) {\n allTypes.push(this.createFormatOption(formats[i]));\n }\n return allTypes;\n }\n\n save(name: string) {\n let fileName = \"\";\n if (name && name !== \"\") {\n fileName = name + \".\" + this._format;\n } else if (!this.file) {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"File name is empty\");\n }\n this._modalService.close(CommonModals.CreateDocument);\n const guid = fileName !== \"\" ? fileName : this.file.guid;\n const password = this.file ? this.file.password : '';\n this.savingFile.emit(new FileCredentials(guid, password));\n }\n\n refresh($event: boolean) {\n if (!$event) {\n this.closing.emit(true);\n }\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {EditorAppComponent} from './editor-app.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport {CreateDocumentModalComponent} from './create.document-modal/create.document-modal.component';\nimport {EditorService} from \"./editor.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService, Api\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfigService} from \"./editor-config.service\";\n\nexport function initializeApp(editorConfigService: EditorConfigService) {\n const result = () => editorConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations :[EditorAppComponent,CreateDocumentModalComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n CreateDocumentModalComponent,\n EditorAppComponent,\n CommonComponentsModule\n ],\n providers: [\n EditorService,\n ConfigService,\n EditorConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [EditorConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class EditorModule {\n constructor(){\n library.add(fas,far);\n }\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: EditorModule\n };\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["ng://@groupdocs.examples.angular/editor/lib/editor.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-app.component.ts","../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/editor/lib/create.document-modal/create.document-modal.component.ts","ng://@groupdocs.examples.angular/editor/lib/editor.module.ts"],"names":["EditorService","_http","_config","this","prototype","loadFiles","path","post","getEditorApiEndpoint","Api","LOAD_FILE_TREE","httpOptionsJson","getFormats","get","LOAD_FORMATS","loadFile","credentials","LOAD_DOCUMENT_DESCRIPTION","upload","file","url","rewrite","formData","FormData","append","String","UPLOAD_DOCUMENTS","save","SAVE_FILE","getDownloadUrl","DOWNLOAD_DOCUMENTS","guid","Injectable","args","providedIn","HttpClient","ConfigService","EditorConfig","EditorConfigService","_editorConfig","BehaviorSubject","_updatedConfig","asObservable","Object","defineProperty","load","_this","Promise","resolve","reject","configEndpoint","getConfigEndpoint","EDITOR_APP","toPromise","then","response","editorConfig","next","catch","JSON","stringify","$","jquery","EditorAppComponent","_editorService","_modalService","configService","uploadFilesService","passwordService","_windowService","_formattingService","_backFormattingService","_onCloseService","_selectionService","_htmlService","_renderPrintService","_loadingMaskService","title","files","formatDisabled","downloadDisabled","browseFilesModal","CommonModals","BrowseFiles","formatting","Formatting","DEFAULT","fontSizeOptions","FormattingService","getFontSizeOptions","fontOptions","getFontOptions","bgColorPickerShow","colorPickerShow","active","isIE","test","navigator","userAgent","updatedConfig","subscribe","uploadsChange","uploads","i","length","item","obj","fileWasDropped","selectFile","selectDir","passChange","pass","PasswordRequired","isDesktop","onResize","w","formatBoldChange","bold","formatItalicChange","italic","formatUnderlineChange","underline","formatColorChange","color","formatBgColorChange","bgcolor","bgColor","formatFontSizeChange","fontSize","formatFontChange","font","formatStrikeoutChange","strikeout","formatAlignChange","align","formatListChange","list","htmlContent","text","pages","textBackup","ngOnInit","defaultDocument","isLoading","ngAfterViewInit","onLoadingChanged","loading","download","print","browse","enableRightClick","pageSelector","createNewFile","openModal","id","editable","open","openSave","CreateDocument","$event","ptToPx","pt","onRightClick","enableRightClickConfig","createFile","FileDescription","page","PageModel","width","height","data","number","push","FileCredentials","password","modalId","observer_1","MutationObserver","mutations","attr","disconnect","observe","document","attributes","childList","characterData","subtree","clearData","close","fileDropped","_b","o","m","Symbol","iterator","call","value","done","tslib_1.__values","_c","rewriteConfig","selectFontSize","off","restoreSelection","captureSelection","changeFormatFontSize","on","fontElements","getElementsByTagName","len","getAttribute","removeAttribute","style","selectFont","event","preventDefault","stopPropagation","changeFormatFont","toggleColorPicker","bg","selectColor","changeFormatBgColor","changeFormatColor","toggleBold","changeFormatBold","toggleUndo","Undo","toggleRedo","Redo","toggleItalic","changeFormatItalic","toggleUnderline","changeFormatUnderline","hideAll","target","parentElement","toggleStrikeout","changeFormatStrikeout","toggleAlign","changeFormatAlign","toggleList","changeFormatList","downloadFile","window","location","assign","saveFile","SaveFile","OperationSuccess","printFile","replace","printHtml","changePages","onCloseModal","Component","selector","template","ModalService","UploadFilesService","PasswordService","WindowService","BackFormattingService","OnCloseService","SelectionService","EditHtmlService","RenderPrintService","LoadingMaskService","CreateDocumentModalComponent","_excMessageService","savingFile","EventEmitter","closing","FILE_NAME_REGEX","_format","loadFormats","formats","formatOptions","selectFormat","createFormatOption","val","name","allTypes","Array","fileName","ErrorMessage","changeMessage","emit","refresh","ExceptionMessageService","Input","Output","initializeApp","editorConfigService","setupLoadingInterceptor","service","LoadingMaskInterceptorService","EditorModule","library","add","fas","far","forRoot","apiEndpoint","DEFAULT_API_ENDPOINT","ngModule","NgModule","declarations","imports","BrowserModule","CommonComponentsModule","HttpClientModule","FontAwesomeModule","exports","providers","provide","APP_INITIALIZER","useFactory","deps","multi","HTTP_INTERCEPTORS","useClass","ErrorInterceptorService"],"mappings":"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","sourcesContent":["import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getEditorApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getEditorApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getEditorApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n}\n","export class EditorConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n createNewFile: boolean;\n preloadPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {EditorConfig} from \"./editor-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorConfigService {\n private _editorConfig: BehaviorSubject = new BehaviorSubject(new EditorConfig());\n private _updatedConfig: Observable = this._editorConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.EDITOR_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: EditorConfig) => {\n const editorConfig = response;\n this._editorConfig.next(editorConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load editor config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Component, AfterViewInit, OnInit} from '@angular/core';\nimport {EditorService} from \"./editor.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n PasswordService,\n FileCredentials,\n CommonModals,\n PageModel,\n FormattingService,\n Formatting,\n BackFormattingService,\n OnCloseService,\n SaveFile,\n SelectionService,\n EditHtmlService,\n RenderPrintService,\n WindowService,\n LoadingMaskService, Option\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfig} from \"./editor-config\";\nimport {EditorConfigService} from \"./editor-config.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-editor-angular-root',\n templateUrl: './editor-app.component.html',\n styleUrls: ['./editor-app.component.less']\n})\nexport class EditorAppComponent implements OnInit, AfterViewInit {\n title = 'editor';\n files: FileModel[] = [];\n file: FileDescription;\n editorConfig: EditorConfig;\n formatDisabled = !this.file;\n downloadDisabled = true;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n isDesktop: boolean;\n formatting: Formatting = Formatting.DEFAULT;\n fontSizeOptions = FormattingService.getFontSizeOptions();\n fontOptions = FormattingService.getFontOptions();\n bgColorPickerShow = false;\n colorPickerShow = false;\n active = false;\n private textBackup: string;\n private isIE = false;\n isLoading: boolean;\n fileWasDropped: false;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n configService: EditorConfigService,\n uploadFilesService: UploadFilesService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _formattingService: FormattingService,\n private _backFormattingService: BackFormattingService,\n private _onCloseService: OnCloseService,\n private _selectionService: SelectionService,\n private _htmlService: EditHtmlService,\n private _renderPrintService: RenderPrintService,\n private _loadingMaskService: LoadingMaskService,\n ) {\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n configService.updatedConfig.subscribe((editorConfig) => {\n this.editorConfig = editorConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._editorService.upload(uploads.item(i), '', this.editorConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n });\n\n this._backFormattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._backFormattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._backFormattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._backFormattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._backFormattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._backFormattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._backFormattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._backFormattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._backFormattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._backFormattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._formattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._formattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._formattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._formattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._formattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._formattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._htmlService.htmlContent.subscribe((text: string) => {\n if (this.file && this.file.pages) {\n this.textBackup = text;\n }\n });\n }\n\n ngOnInit() {\n if (this.editorConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.editorConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n }\n\n get rewriteConfig(): boolean {\n return this.editorConfig ? this.editorConfig.rewrite : true;\n }\n\n get downloadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.editorConfig ? this.editorConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.editorConfig ? this.editorConfig.browse : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.editorConfig ? this.editorConfig.enableRightClick : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.editorConfig ? this.editorConfig.pageSelector : true;\n }\n\n get createNewFileConfig(): boolean {\n return this.editorConfig ? this.editorConfig.createNewFile : true;\n }\n\n openModal(id: string) {\n if (this.file) {\n this.file.pages[0].editable = false;\n }\n this._modalService.open(id);\n }\n\n openSave() {\n if (!this.formatDisabled) {\n this.openModal(CommonModals.CreateDocument);\n }\n }\n\n selectDir($event: string) {\n this._editorService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n createFile() {\n this.file = new FileDescription();\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n page.data = '';\n page.number = 1;\n page.editable = true;\n this.file.pages = [];\n this.file.pages.push(page);\n this.file.guid = \"new document.docx\";\n this.credentials = new FileCredentials(\"new document.docx\", \"\");\n this.formatDisabled = false;\n this.downloadDisabled = true;\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = new FileCredentials($event, password);\n this._editorService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.loadFile(file);\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n if(isIE) {\n const observer = new MutationObserver(function (mutations) {\n if($(\".documentMainContent\").length > 0 ){\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n observer.disconnect();\n }\n });\n observer.observe(document, {attributes: false, childList: true, characterData: false, subtree: true});\n }\n }\n );\n this.clearData();\n this._modalService.close(modalId);\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private loadFile(file: FileDescription) {\n this.file = file;\n if (this.file && this.file.pages[0]) {\n this.file.pages[0].editable = true;\n this.file.pages[0].width = 595;\n this.file.pages[0].height = 842;\n this.textBackup = this.file.pages[0].data;\n }\n this.formatDisabled = !this.file;\n this.downloadDisabled = false;\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n upload($event: string) {\n this._editorService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n selectFontSize($event: Option) {\n if (this.formatDisabled)\n return;\n $(\".gd-wrapper\").off(\"keyup\");\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFontSize($event.value);\n $(\".gd-wrapper\").on(\"keyup\", () => {\n const fontElements = document.getElementsByTagName(\"font\");\n for (let i = 0, len = fontElements.length; i < len; ++i) {\n if (fontElements[i].getAttribute('size') === \"7\") {\n fontElements[i].removeAttribute(\"size\");\n fontElements[i].style.fontSize = $event + \"px\";\n }\n }\n });\n }\n\n selectFont($event: Option) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFont($event.value);\n }\n\n toggleColorPicker(bg: boolean) {\n\n if (this.formatDisabled) {\n return;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (bg) {\n this.bgColorPickerShow = !this.bgColorPickerShow;\n this.colorPickerShow = false;\n } else {\n this.colorPickerShow = !this.colorPickerShow;\n this.bgColorPickerShow = false;\n }\n }\n\n selectColor($event: string) {\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (this.bgColorPickerShow) {\n this.bgColorPickerShow = false;\n this._formattingService.changeFormatBgColor($event);\n } else {\n this.colorPickerShow = false;\n this._formattingService.changeFormatColor($event);\n }\n }\n\n toggleBold(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatBold(!this.formatting.bold);\n }\n\n toggleUndo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Undo();\n }\n\n toggleRedo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Redo();\n }\n\n toggleItalic(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatItalic(!this.formatting.italic);\n }\n\n toggleUnderline(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatUnderline(!this.formatting.underline);\n }\n\n hideAll($event) {\n if (($event.target.parentElement && $event.target.parentElement.attributes['name'] &&\n $event.target.parentElement.attributes['name'].value === 'button') ||\n ($event.target.parentElement.parentElement &&\n $event.target.parentElement.parentElement.attributes['name'] &&\n $event.target.parentElement.parentElement.attributes['name'].value === 'button')) {\n\n this._onCloseService.close(true);\n return;\n }\n this.colorPickerShow = false;\n this.bgColorPickerShow = false;\n this._onCloseService.close(true);\n }\n\n toggleStrikeout(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatStrikeout(!this.formatting.strikeout);\n }\n\n toggleAlign(align: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if (align === this.formatting.align) {\n align = 'full';\n }\n this._formattingService.changeFormatAlign(align);\n this.formatting.align = align;\n }\n\n toggleList(list: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n\n if (list === this.formatting.list) {\n this.formatting.list = \"\";\n } else {\n this.formatting.list = list;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatList(list);\n }\n\n downloadFile() {\n if (this.downloadDisabled)\n return;\n window.location.assign(this._editorService.getDownloadUrl(this.credentials));\n }\n\n save(){\n if (this.formatDisabled)\n return;\n if(this.credentials) {\n if (this.file.guid === \"new document.docx\") {\n this.openModal(CommonModals.CreateDocument);\n } else {\n this.saveFile(this.credentials);\n }\n }\n }\n\n saveFile(credentials: FileCredentials) {\n if (!this.file || !this.file.pages)\n return;\n const saveFile = new SaveFile(credentials.guid, credentials.password, this.textBackup);\n this._editorService.save(saveFile).subscribe((loadFile: FileDescription) => {\n this.loadFile(loadFile);\n this.credentials = new FileCredentials(loadFile.guid, credentials.password);\n this._modalService.open(CommonModals.OperationSuccess);\n });\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if(this.file.pages) {\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n // using of the replace is required to fix issue with padding for intire print content\n page.data = this.textBackup.replace('', 'body { padding: 96px; } ');\n const printHtml = [page];\n this._renderPrintService.changePages(printHtml);\n }\n }\n\n onCloseModal($event) {\n if (this.file && $event) {\n if(this.isIE) {\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n } else {\n this.file.pages[0].editable = true;\n }\n this._selectionService.restoreSelection();\n }\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileCredentials,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {EditorService} from \"../editor.service\";\n\n@Component({\n selector: 'gd-create-document-modal',\n templateUrl: './create.document-modal.component.html',\n styleUrls: ['./create.document-modal.component.less']\n})\nexport class CreateDocumentModalComponent implements OnInit {\n @Input() file: FileCredentials;\n @Output() savingFile: EventEmitter = new EventEmitter();\n @Output() closing = new EventEmitter();\n private _format: string;\n formats;\n FILE_NAME_REGEX = /^.*[\\\\\\/]/;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n get format() {\n return this._format;\n }\n\n ngOnInit() {\n this.loadFormats();\n }\n\n loadFormats() {\n this._editorService.getFormats().subscribe((formats: string[]) => {\n this.formats = this.formatOptions(formats);\n this._format = \"Docx\";\n }\n );\n }\n\n selectFormat($event: any) {\n this._format = $event.value;\n }\n\n createFormatOption(val: string) {\n return {value: val, name: val}\n }\n\n formatOptions(formats) {\n const allTypes = new Array();\n for (let i = 0; i < formats.length; i++) {\n allTypes.push(this.createFormatOption(formats[i]));\n }\n return allTypes;\n }\n\n save(name: string) {\n let fileName = \"\";\n if (name && name !== \"\") {\n fileName = name + \".\" + this._format;\n } else if (!this.file) {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"File name is empty\");\n }\n this._modalService.close(CommonModals.CreateDocument);\n const guid = fileName !== \"\" ? fileName : this.file.guid;\n const password = this.file ? this.file.password : '';\n this.savingFile.emit(new FileCredentials(guid, password));\n }\n\n refresh($event: boolean) {\n if (!$event) {\n this.closing.emit(true);\n }\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {EditorAppComponent} from './editor-app.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport {CreateDocumentModalComponent} from './create.document-modal/create.document-modal.component';\nimport {EditorService} from \"./editor.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService, Api\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfigService} from \"./editor-config.service\";\n\nexport function initializeApp(editorConfigService: EditorConfigService) {\n const result = () => editorConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations :[EditorAppComponent,CreateDocumentModalComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n CreateDocumentModalComponent,\n EditorAppComponent,\n CommonComponentsModule\n ],\n providers: [\n EditorService,\n ConfigService,\n EditorConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [EditorConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class EditorModule {\n constructor(){\n library.add(fas,far);\n }\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: EditorModule\n };\n }\n}\n"]} \ No newline at end of file diff --git a/dist/libs/editor/esm2015/lib/editor-app.component.js b/dist/libs/editor/esm2015/lib/editor-app.component.js index eba75766f..d57cbad50 100644 --- a/dist/libs/editor/esm2015/lib/editor-app.component.js +++ b/dist/libs/editor/esm2015/lib/editor-app.component.js @@ -747,7 +747,7 @@ export class EditorAppComponent { EditorAppComponent.decorators = [ { type: Component, args: [{ selector: 'gd-editor-angular-root', - template: "\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n", + template: "\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n", styles: ["@import url(https://fonts.googleapis.com/css?family=Open+Sans&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.current-page-number{margin:0 15px;font-size:14px;color:#959da5}*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:text}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:calc(100% - 90px)}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{width:100%}/deep/ .gd-wrapper{padding:96px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;outline:0}/deep/ .dropdown-menu{min-width:unset!important}.format-select{margin:0 15px}.palette{position:absolute;top:90px;z-index:100}.background-color-picker{left:700px}.color-picker{left:750px}.bg-color-pic{border-radius:100%;border:1px solid #ccc;position:absolute;height:8px;width:8px;right:6px;bottom:6px}/deep/ .button.inactive{color:#ccc!important}/deep/ .gd-editor-buttons .button .tooltip{margin-top:45px;margin-left:-36px}/deep/ .gd-edit.active{background-color:#7e8991;border-radius:5px}/deep/ .gd-edit.active i{color:#fff}/deep/ .page{width:800px}/deep/ .save-as-button-icon{font-size:11px;left:22px!important;top:13px!important}.save-button{position:absolute;top:-5px;left:21px}@media (max-width:1037px){/deep/ .panzoom{zoom:.4;margin-top:160px}}"] }] } ]; @@ -863,4 +863,4 @@ if (false) { */ EditorAppComponent.prototype._loadingMaskService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWFwcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvZWRpdG9yLyIsInNvdXJjZXMiOlsibGliL2VkaXRvci1hcHAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUNMLGVBQWUsRUFFZixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixlQUFlLEVBQ2YsWUFBWSxFQUNaLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixrQkFBa0IsRUFDbkIsTUFBTSwrQ0FBK0MsQ0FBQztBQUV2RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQzs7TUFDM0IsQ0FBQyxHQUFHLE1BQU07QUFPaEIsTUFBTSxPQUFPLGtCQUFrQjs7Ozs7Ozs7Ozs7Ozs7OztJQXFCN0IsWUFBb0IsY0FBNkIsRUFDN0IsYUFBMkIsRUFDbkMsYUFBa0MsRUFDbEMsa0JBQXNDLEVBQ3RDLGVBQWdDLEVBQ3hCLGNBQTZCLEVBQzdCLGtCQUFxQyxFQUNyQyxzQkFBNkMsRUFDN0MsZUFBK0IsRUFDL0IsaUJBQW1DLEVBQ25DLFlBQTZCLEVBQzdCLG1CQUF1QyxFQUN2QyxtQkFBdUM7UUFadkMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWM7UUFJM0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtR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QXFEOzs7OztJQUNyRCw2Q0FBdUM7Ozs7O0lBQ3ZDLCtDQUEyQzs7Ozs7SUFDM0MsMENBQXFDOzs7OztJQUNyQyxpREFBK0M7Ozs7O0lBQy9DLGlEQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFZGl0b3JTZXJ2aWNlfSBmcm9tIFwiLi9lZGl0b3Iuc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgRmlsZURlc2NyaXB0aW9uLFxuICBGaWxlTW9kZWwsXG4gIE1vZGFsU2VydmljZSxcbiAgVXBsb2FkRmlsZXNTZXJ2aWNlLFxuICBQYXNzd29yZFNlcnZpY2UsXG4gIEZpbGVDcmVkZW50aWFscyxcbiAgQ29tbW9uTW9kYWxzLFxuICBQYWdlTW9kZWwsXG4gIEZvcm1hdHRpbmdTZXJ2aWNlLFxuICBGb3JtYXR0aW5nLFxuICBCYWNrRm9ybWF0dGluZ1NlcnZpY2UsXG4gIE9uQ2xvc2VTZXJ2aWNlLFxuICBTYXZlRmlsZSxcbiAgU2VsZWN0aW9uU2VydmljZSxcbiAgRWRpdEh0bWxTZXJ2aWNlLFxuICBSZW5kZXJQcmludFNlcnZpY2UsXG4gIFdpbmRvd1NlcnZpY2UsXG4gIExvYWRpbmdNYXNrU2VydmljZSwgT3B0aW9uXG59IGZyb20gJ0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cyc7XG5pbXBvcnQge0VkaXRvckNvbmZpZ30gZnJvbSBcIi4vZWRpdG9yLWNvbmZpZ1wiO1xuaW1wb3J0IHtFZGl0b3JDb25maWdTZXJ2aWNlfSBmcm9tIFwiLi9lZGl0b3ItY29uZmlnLnNlcnZpY2VcIjtcbmltcG9ydCAqIGFzIGpxdWVyeSBmcm9tICdqcXVlcnknO1xuY29uc3QgJCA9IGpxdWVyeTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2QtZWRpdG9yLWFuZ3VsYXItcm9vdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3ItYXBwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLWFwcC5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvckFwcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCAge1xuICB0aXRsZSA9ICdlZGl0b3InO1xuICBmaWxlczogRmlsZU1vZGVsW10gPSBbXTtcbiAgZmlsZTogRmlsZURlc2NyaXB0aW9uO1xuICBlZGl0b3JDb25maWc6IEVkaXRvckNvbmZpZztcbiAgZm9ybWF0RGlzYWJsZWQgPSAhdGhpcy5maWxlO1xuICBkb3dubG9hZERpc2FibGVkID0gdHJ1ZTtcbiAgY3JlZGVudGlhbHM6IEZpbGVDcmVkZW50aWFscztcbiAgYnJvd3NlRmlsZXNNb2RhbCA9IENvbW1vbk1vZGFscy5Ccm93c2VGaWxlcztcbiAgaXNEZXNrdG9wOiBib29sZWFuO1xuICBmb3JtYXR0aW5nOiBGb3JtYXR0aW5nID0gRm9ybWF0dGluZy5ERUZBVUxUO1xuICBmb250U2l6ZU9wdGlvbnMgPSBGb3JtYXR0aW5nU2VydmljZS5nZXRGb250U2l6ZU9wdGlvbnMoKTtcbiAgZm9udE9wdGlvbnMgPSBGb3JtYXR0aW5nU2VydmljZS5nZXRGb250T3B0aW9ucygpO1xuICBiZ0NvbG9yUGlja2VyU2hvdyA9IGZhbHNlO1xuICBjb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgYWN0aXZlID0gZmFsc2U7XG4gIHByaXZhdGUgdGV4dEJhY2t1cDogc3RyaW5nO1xuICBwcml2YXRlIGlzSUUgPSBmYWxzZTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBmaWxlV2FzRHJvcHBlZDogZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgICAgICAgICAgIGNvbmZpZ1NlcnZpY2U6IEVkaXRvckNvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHVwbG9hZEZpbGVzU2VydmljZTogVXBsb2FkRmlsZXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwYXNzd29yZFNlcnZpY2U6IFBhc3N3b3JkU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd2luZG93U2VydmljZTogV2luZG93U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZm9ybWF0dGluZ1NlcnZpY2U6IEZvcm1hdHRpbmdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9iYWNrRm9ybWF0dGluZ1NlcnZpY2U6IEJhY2tGb3JtYXR0aW5nU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfb25DbG9zZVNlcnZpY2U6IE9uQ2xvc2VTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9zZWxlY3Rpb25TZXJ2aWNlOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9odG1sU2VydmljZTogRWRpdEh0bWxTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJQcmludFNlcnZpY2U6IFJlbmRlclByaW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9hZGluZ01hc2tTZXJ2aWNlOiBMb2FkaW5nTWFza1NlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuaXNJRSA9IC8qQGNjX29uIUAqL2ZhbHNlIHx8ICEhLyhNU0lFfFRyaWRlbnRcXC98RWRnZVxcLykvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgIGNvbmZpZ1NlcnZpY2UudXBkYXRlZENvbmZpZy5zdWJzY3JpYmUoKGVkaXRvckNvbmZpZykgPT4ge1xuICAgICAgdGhpcy5lZGl0b3JDb25maWcgPSBlZGl0b3JDb25maWc7XG4gICAgfSk7XG5cbiAgICB1cGxvYWRGaWxlc1NlcnZpY2UudXBsb2Fkc0NoYW5nZS5zdWJzY3JpYmUoKHVwbG9hZHMpID0+IHtcbiAgICAgIGlmICh1cGxvYWRzKSB7XG4gICAgICAgIGxldCBpOiBudW1iZXI7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB1cGxvYWRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGhpcy5fZWRpdG9yU2VydmljZS51cGxvYWQodXBsb2Fkcy5pdGVtKGkpLCAnJywgdGhpcy5lZGl0b3JDb25maWcucmV3cml0ZSkuc3Vic2NyaWJlKChvYmo6IEZpbGVDcmVkZW50aWFscykgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWxlV2FzRHJvcHBlZCA/IHRoaXMuc2VsZWN0RmlsZShvYmouZ3VpZCwgJycsICcnKSA6IHRoaXMuc2VsZWN0RGlyKCcnKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcGFzc3dvcmRTZXJ2aWNlLnBhc3NDaGFuZ2Uuc3Vic2NyaWJlKChwYXNzOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0RmlsZSh0aGlzLmNyZWRlbnRpYWxzLmd1aWQsIHBhc3MsIENvbW1vbk1vZGFscy5QYXNzd29yZFJlcXVpcmVkKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaXNEZXNrdG9wID0gX3dpbmRvd1NlcnZpY2UuaXNEZXNrdG9wKCk7XG4gICAgX3dpbmRvd1NlcnZpY2Uub25SZXNpemUuc3Vic2NyaWJlKCh3KSA9PiB7XG4gICAgICB0aGlzLmlzRGVza3RvcCA9IF93aW5kb3dTZXJ2aWNlLmlzRGVza3RvcCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEJvbGRDaGFuZ2Uuc3Vic2NyaWJlKChib2xkOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYm9sZCA9IGJvbGQ7XG4gICAgfSk7XG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEl0YWxpY0NoYW5nZS5zdWJzY3JpYmUoKGl0YWxpYzogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLml0YWxpYyA9IGl0YWxpYztcbiAgICB9KTtcbiAgICB0aGlzLl9iYWNrRm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0VW5kZXJsaW5lQ2hhbmdlLnN1YnNjcmliZSgodW5kZXJsaW5lOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcudW5kZXJsaW5lID0gdW5kZXJsaW5lO1xuICAgIH0pO1xuICAgIHRoaXMuX2JhY2tGb3JtYXR0aW5nU2VydmljZS5mb3JtYXRDb2xvckNoYW5nZS5zdWJzY3JpYmUoKGNvbG9yOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5jb2xvciA9IGNvbG9yO1xuICAgIH0pO1xuICAgIHRoaXMuX2JhY2tGb3JtYXR0aW5nU2VydmljZS5mb3JtYXRCZ0NvbG9yQ2hhbmdlLnN1YnNjcmliZSgoYmdjb2xvcjogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYmdDb2xvciA9IGJnY29sb3I7XG4gICAgfSk7XG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEZvbnRTaXplQ2hhbmdlLnN1YnNjcmliZSgoZm9udFNpemU6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmZvbnRTaXplID0gZm9udFNpemU7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9iYWNrRm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0Rm9udENoYW5nZS5zdWJzY3JpYmUoKGZvbnQ6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmZvbnQgPSBmb250O1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdFN0cmlrZW91dENoYW5nZS5zdWJzY3JpYmUoKHN0cmlrZW91dDogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLnN0cmlrZW91dCA9IHN0cmlrZW91dDtcbiAgICB9KTtcblxuICAgIHRoaXMuX2JhY2tGb3JtYXR0aW5nU2VydmljZS5mb3JtYXRBbGlnbkNoYW5nZS5zdWJzY3JpYmUoKGFsaWduOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5hbGlnbiA9IGFsaWduO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdExpc3RDaGFuZ2Uuc3Vic2NyaWJlKChsaXN0OiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5saXN0ID0gbGlzdDtcbiAgICB9KTtcblxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEJvbGRDaGFuZ2Uuc3Vic2NyaWJlKChib2xkOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYm9sZCA9IGJvbGQ7XG4gICAgfSk7XG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0SXRhbGljQ2hhbmdlLnN1YnNjcmliZSgoaXRhbGljOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuaXRhbGljID0gaXRhbGljO1xuICAgIH0pO1xuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdFVuZGVybGluZUNoYW5nZS5zdWJzY3JpYmUoKHVuZGVybGluZTogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLnVuZGVybGluZSA9IHVuZGVybGluZTtcbiAgICB9KTtcbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5mb3JtYXRDb2xvckNoYW5nZS5zdWJzY3JpYmUoKGNvbG9yOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5jb2xvciA9IGNvbG9yO1xuICAgIH0pO1xuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEJnQ29sb3JDaGFuZ2Uuc3Vic2NyaWJlKChiZ2NvbG9yOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5iZ0NvbG9yID0gYmdjb2xvcjtcbiAgICB9KTtcbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5mb3JtYXRGb250U2l6ZUNoYW5nZS5zdWJzY3JpYmUoKGZvbnRTaXplOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5mb250U2l6ZSA9IGZvbnRTaXplO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0Rm9udENoYW5nZS5zdWJzY3JpYmUoKGZvbnQ6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmZvbnQgPSBmb250O1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0U3RyaWtlb3V0Q2hhbmdlLnN1YnNjcmliZSgoc3RyaWtlb3V0OiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuc3RyaWtlb3V0ID0gc3RyaWtlb3V0O1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0QWxpZ25DaGFuZ2Uuc3Vic2NyaWJlKChhbGlnbjogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYWxpZ24gPSBhbGlnbjtcbiAgICB9KTtcblxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdExpc3RDaGFuZ2Uuc3Vic2NyaWJlKChsaXN0OiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5saXN0ID0gbGlzdDtcbiAgICB9KTtcblxuICAgIHRoaXMuX2h0bWxTZXJ2aWNlLmh0bWxDb250ZW50LnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAodGhpcy5maWxlICYmIHRoaXMuZmlsZS5wYWdlcykge1xuICAgICAgICB0aGlzLnRleHRCYWNrdXAgPSB0ZXh0O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZWRpdG9yQ29uZmlnLmRlZmF1bHREb2N1bWVudCAhPT0gXCJcIil7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdEZpbGUodGhpcy5lZGl0b3JDb25maWcuZGVmYXVsdERvY3VtZW50LCBcIlwiLCBcIlwiKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fbG9hZGluZ01hc2tTZXJ2aWNlXG4gICAgLm9uTG9hZGluZ0NoYW5nZWRcbiAgICAuc3Vic2NyaWJlKChsb2FkaW5nOiBib29sZWFuKSA9PiB0aGlzLmlzTG9hZGluZyA9IGxvYWRpbmcpO1xuICB9XG5cbiAgZ2V0IHJld3JpdGVDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcucmV3cml0ZSA6IHRydWU7XG4gIH1cblxuICBnZXQgZG93bmxvYWRDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcuZG93bmxvYWQgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHVwbG9hZENvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JDb25maWcgPyB0aGlzLmVkaXRvckNvbmZpZy51cGxvYWQgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHByaW50Q29uZmlnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRvckNvbmZpZyA/IHRoaXMuZWRpdG9yQ29uZmlnLnByaW50IDogdHJ1ZTtcbiAgfVxuXG4gIGdldCBicm93c2VDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcuYnJvd3NlIDogdHJ1ZTtcbiAgfVxuXG4gIGdldCBlbmFibGVSaWdodENsaWNrQ29uZmlnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRvckNvbmZpZyA/IHRoaXMuZWRpdG9yQ29uZmlnLmVuYWJsZVJpZ2h0Q2xpY2sgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHBhZ2VTZWxlY3RvckNvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JDb25maWcgPyB0aGlzLmVkaXRvckNvbmZpZy5wYWdlU2VsZWN0b3IgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IGNyZWF0ZU5ld0ZpbGVDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcuY3JlYXRlTmV3RmlsZSA6IHRydWU7XG4gIH1cblxuICBvcGVuTW9kYWwoaWQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZpbGUpIHtcbiAgICAgIHRoaXMuZmlsZS5wYWdlc1swXS5lZGl0YWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9tb2RhbFNlcnZpY2Uub3BlbihpZCk7XG4gIH1cblxuICBvcGVuU2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybWF0RGlzYWJsZWQpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKENvbW1vbk1vZGFscy5DcmVhdGVEb2N1bWVudCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0RGlyKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5fZWRpdG9yU2VydmljZS5sb2FkRmlsZXMoJGV2ZW50KS5zdWJzY3JpYmUoKGZpbGVzOiBGaWxlTW9kZWxbXSkgPT4gdGhpcy5maWxlcyA9IGZpbGVzIHx8IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgcHRUb1B4KHB0OiBudW1iZXIpIHtcbiAgICAvL3B0ICogOTYgLyA3MiA9IHB4LlxuICAgIHJldHVybiBwdCAqIDk2IC8gNzI7XG4gIH1cblxuICBvblJpZ2h0Q2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlUmlnaHRDbGlja0NvbmZpZztcbiAgfVxuXG4gIGNyZWF0ZUZpbGUoKSB7XG4gICAgdGhpcy5maWxlID0gbmV3IEZpbGVEZXNjcmlwdGlvbigpO1xuICAgIGNvbnN0IHBhZ2UgPSBuZXcgUGFnZU1vZGVsO1xuICAgIHBhZ2Uud2lkdGggPSA1OTU7XG4gICAgcGFnZS5oZWlnaHQgPSA4NDI7XG4gICAgcGFnZS5kYXRhID0gJzwhRE9DVFlQRSBIVE1MPjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9XCJjb250ZW50LXR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+JztcbiAgICBwYWdlLm51bWJlciA9IDE7XG4gICAgcGFnZS5lZGl0YWJsZSA9IHRydWU7XG4gICAgdGhpcy5maWxlLnBhZ2VzID0gW107XG4gICAgdGhpcy5maWxlLnBhZ2VzLnB1c2gocGFnZSk7XG4gICAgdGhpcy5maWxlLmd1aWQgPSBcIm5ldyBkb2N1bWVudC5kb2N4XCI7XG4gICAgdGhpcy5jcmVkZW50aWFscyA9IG5ldyBGaWxlQ3JlZGVudGlhbHMoXCJuZXcgZG9jdW1lbnQuZG9jeFwiLCBcIlwiKTtcbiAgICB0aGlzLmZvcm1hdERpc2FibGVkID0gZmFsc2U7XG4gICAgdGhpcy5kb3dubG9hZERpc2FibGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHNlbGVjdEZpbGUoJGV2ZW50OiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIG1vZGFsSWQ6IHN0cmluZykge1xuICAgIHRoaXMuY3JlZGVudGlhbHMgPSBuZXcgRmlsZUNyZWRlbnRpYWxzKCRldmVudCwgcGFzc3dvcmQpO1xuICAgIHRoaXMuX2VkaXRvclNlcnZpY2UubG9hZEZpbGUodGhpcy5jcmVkZW50aWFscykuc3Vic2NyaWJlKChmaWxlOiBGaWxlRGVzY3JpcHRpb24pID0+IHtcbiAgICAgICAgdGhpcy5sb2FkRmlsZShmaWxlKTtcbiAgICAgICAgY29uc3QgaXNJRSA9IC8qQGNjX29uIUAqL2ZhbHNlIHx8ICEhLyhNU0lFfFRyaWRlbnRcXC98RWRnZVxcLykvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgICAgICBpZihpc0lFKSB7XG4gICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAobXV0YXRpb25zKSB7XG4gICAgICAgICAgICBpZigkKFwiLmRvY3VtZW50TWFpbkNvbnRlbnRcIikubGVuZ3RoID4gMCApe1xuICAgICAgICAgICAgICAkKFwiLmRvY3VtZW50TWFpbkNvbnRlbnRcIikuYXR0cihcImNvbnRlbnRFZGl0YWJsZVwiLCBcInRydWVcIik7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LCB7YXR0cmlidXRlczogZmFsc2UsIGNoaWxkTGlzdDogdHJ1ZSwgY2hhcmFjdGVyRGF0YTogZmFsc2UsIHN1YnRyZWU6IHRydWV9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5jbGVhckRhdGEoKTtcbiAgICB0aGlzLl9tb2RhbFNlcnZpY2UuY2xvc2UobW9kYWxJZCk7XG4gIH1cblxuICBmaWxlRHJvcHBlZCgkZXZlbnQpe1xuICAgIHRoaXMuZmlsZVdhc0Ryb3BwZWQgPSAkZXZlbnQ7XG4gIH1cblxuICBwcml2YXRlIGxvYWRGaWxlKGZpbGU6IEZpbGVEZXNjcmlwdGlvbikge1xuICAgIHRoaXMuZmlsZSA9IGZpbGU7XG4gICAgaWYgKHRoaXMuZmlsZSAmJiB0aGlzLmZpbGUucGFnZXNbMF0pIHtcbiAgICAgIHRoaXMuZmlsZS5wYWdlc1swXS5lZGl0YWJsZSA9IHRydWU7XG4gICAgICB0aGlzLmZpbGUucGFnZXNbMF0ud2lkdGggPSA1OTU7XG4gICAgICB0aGlzLmZpbGUucGFnZXNbMF0uaGVpZ2h0ID0gODQyO1xuICAgICAgdGhpcy50ZXh0QmFja3VwID0gdGhpcy5maWxlLnBhZ2VzWzBdLmRhdGE7XG4gICAgfVxuICAgIHRoaXMuZm9ybWF0RGlzYWJsZWQgPSAhdGhpcy5maWxlO1xuICAgIHRoaXMuZG93bmxvYWREaXNhYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckRhdGEoKSB7XG4gICAgaWYgKCF0aGlzLmZpbGUgfHwgIXRoaXMuZmlsZS5wYWdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHBhZ2Ugb2YgdGhpcy5maWxlLnBhZ2VzKSB7XG4gICAgICBwYWdlLmRhdGEgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHVwbG9hZCgkZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuX2VkaXRvclNlcnZpY2UudXBsb2FkKG51bGwsICRldmVudCwgdGhpcy5yZXdyaXRlQ29uZmlnKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3REaXIoJycpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0Rm9udFNpemUoJGV2ZW50OiBPcHRpb24pIHtcbiAgICBpZiAodGhpcy5mb3JtYXREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICAkKFwiLmdkLXdyYXBwZXJcIikub2ZmKFwia2V5dXBcIik7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRGb250U2l6ZSgkZXZlbnQudmFsdWUpO1xuICAgICQoXCIuZ2Qtd3JhcHBlclwiKS5vbihcImtleXVwXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGZvbnRFbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiZm9udFwiKTtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBmb250RWxlbWVudHMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgICAgaWYgKGZvbnRFbGVtZW50c1tpXS5nZXRBdHRyaWJ1dGUoJ3NpemUnKSA9PT0gXCI3XCIpIHtcbiAgICAgICAgICBmb250RWxlbWVudHNbaV0ucmVtb3ZlQXR0cmlidXRlKFwic2l6ZVwiKTtcbiAgICAgICAgICBmb250RWxlbWVudHNbaV0uc3R5bGUuZm9udFNpemUgPSAkZXZlbnQgKyBcInB4XCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdEZvbnQoJGV2ZW50OiBPcHRpb24pIHtcbiAgICBpZiAodGhpcy5mb3JtYXREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmNhcHR1cmVTZWxlY3Rpb24oKTtcbiAgICB9XG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuY2hhbmdlRm9ybWF0Rm9udCgkZXZlbnQudmFsdWUpO1xuICB9XG5cbiAgdG9nZ2xlQ29sb3JQaWNrZXIoYmc6IGJvb2xlYW4pIHtcblxuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmNhcHR1cmVTZWxlY3Rpb24oKTtcbiAgICB9XG4gICAgaWYgKGJnKSB7XG4gICAgICB0aGlzLmJnQ29sb3JQaWNrZXJTaG93ID0gIXRoaXMuYmdDb2xvclBpY2tlclNob3c7XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU2hvdyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU2hvdyA9ICF0aGlzLmNvbG9yUGlja2VyU2hvdztcbiAgICAgIHRoaXMuYmdDb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDb2xvcigkZXZlbnQ6IHN0cmluZykge1xuICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmNhcHR1cmVTZWxlY3Rpb24oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmdDb2xvclBpY2tlclNob3cpIHtcbiAgICAgIHRoaXMuYmdDb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdEJnQ29sb3IoJGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdENvbG9yKCRldmVudCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlQm9sZChldmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRCb2xkKCF0aGlzLmZvcm1hdHRpbmcuYm9sZCk7XG4gIH1cblxuICB0b2dnbGVVbmRvKCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuVW5kbygpO1xuICB9XG5cbiAgdG9nZ2xlUmVkbygpIHtcbiAgICBpZiAodGhpcy5mb3JtYXREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLlJlZG8oKTtcbiAgfVxuXG4gIHRvZ2dsZUl0YWxpYyhldmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRJdGFsaWMoIXRoaXMuZm9ybWF0dGluZy5pdGFsaWMpO1xuICB9XG5cbiAgdG9nZ2xlVW5kZXJsaW5lKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZm9ybWF0RGlzYWJsZWQpXG4gICAgICByZXR1cm47XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZih0aGlzLmlzSUUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UucmVzdG9yZVNlbGVjdGlvbigpO1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5jYXB0dXJlU2VsZWN0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdFVuZGVybGluZSghdGhpcy5mb3JtYXR0aW5nLnVuZGVybGluZSk7XG4gIH1cblxuICBoaWRlQWxsKCRldmVudCkge1xuICAgIGlmICgoJGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50ICYmICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5hdHRyaWJ1dGVzWyduYW1lJ10gJiZcbiAgICAgICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5hdHRyaWJ1dGVzWyduYW1lJ10udmFsdWUgPT09ICdidXR0b24nKSB8fFxuICAgICAgKCRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50ICYmXG4gICAgICAkZXZlbnQudGFyZ2V0LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5hdHRyaWJ1dGVzWyduYW1lJ10gJiZcbiAgICAgICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmF0dHJpYnV0ZXNbJ25hbWUnXS52YWx1ZSA9PT0gJ2J1dHRvbicpKSB7XG5cbiAgICAgIHRoaXMuX29uQ2xvc2VTZXJ2aWNlLmNsb3NlKHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbG9yUGlja2VyU2hvdyA9IGZhbHNlO1xuICAgIHRoaXMuYmdDb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICB0aGlzLl9vbkNsb3NlU2VydmljZS5jbG9zZSh0cnVlKTtcbiAgfVxuXG4gIHRvZ2dsZVN0cmlrZW91dChldmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRTdHJpa2VvdXQoIXRoaXMuZm9ybWF0dGluZy5zdHJpa2VvdXQpO1xuICB9XG5cbiAgdG9nZ2xlQWxpZ24oYWxpZ246IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKGFsaWduID09PSB0aGlzLmZvcm1hdHRpbmcuYWxpZ24pIHtcbiAgICAgIGFsaWduID0gJ2Z1bGwnO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRBbGlnbihhbGlnbik7XG4gICAgdGhpcy5mb3JtYXR0aW5nLmFsaWduID0gYWxpZ247XG4gIH1cblxuICB0b2dnbGVMaXN0KGxpc3Q6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAobGlzdCA9PT0gdGhpcy5mb3JtYXR0aW5nLmxpc3QpIHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5saXN0ID0gXCJcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmxpc3QgPSBsaXN0O1xuICAgIH1cbiAgICBpZih0aGlzLmlzSUUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UucmVzdG9yZVNlbGVjdGlvbigpO1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5jYXB0dXJlU2VsZWN0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdExpc3QobGlzdCk7XG4gIH1cblxuICBkb3dubG9hZEZpbGUoKSB7XG4gICAgaWYgKHRoaXMuZG93bmxvYWREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMuX2VkaXRvclNlcnZpY2UuZ2V0RG93bmxvYWRVcmwodGhpcy5jcmVkZW50aWFscykpO1xuICB9XG5cbiAgc2F2ZSgpe1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGlmKHRoaXMuY3JlZGVudGlhbHMpIHtcbiAgICAgIGlmICh0aGlzLmZpbGUuZ3VpZCA9PT0gXCJuZXcgZG9jdW1lbnQuZG9jeFwiKSB7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsKENvbW1vbk1vZGFscy5DcmVhdGVEb2N1bWVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNhdmVGaWxlKHRoaXMuY3JlZGVudGlhbHMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gc2F2ZUZpbGUoY3JlZGVudGlhbHM6IEZpbGVDcmVkZW50aWFscykge1xuICAgIGlmICghdGhpcy5maWxlIHx8ICF0aGlzLmZpbGUucGFnZXMpXG4gICAgICByZXR1cm47XG4gICAgY29uc3Qgc2F2ZUZpbGUgPSBuZXcgU2F2ZUZpbGUoY3JlZGVudGlhbHMuZ3VpZCwgY3JlZGVudGlhbHMucGFzc3dvcmQsIHRoaXMudGV4dEJhY2t1cCk7XG4gICAgdGhpcy5fZWRpdG9yU2VydmljZS5zYXZlKHNhdmVGaWxlKS5zdWJzY3JpYmUoKGxvYWRGaWxlOiBGaWxlRGVzY3JpcHRpb24pID0+IHtcbiAgICAgIHRoaXMubG9hZEZpbGUobG9hZEZpbGUpO1xuICAgICAgdGhpcy5jcmVkZW50aWFscyA9IG5ldyBGaWxlQ3JlZGVudGlhbHMobG9hZEZpbGUuZ3VpZCwgY3JlZGVudGlhbHMucGFzc3dvcmQpO1xuICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm9wZW4oQ29tbW9uTW9kYWxzLk9wZXJhdGlvblN1Y2Nlc3MpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpbnRGaWxlKCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGlmKHRoaXMuZmlsZS5wYWdlcykge1xuICAgICAgY29uc3QgcGFnZSA9IG5ldyBQYWdlTW9kZWw7XG4gICAgICBwYWdlLndpZHRoID0gNTk1O1xuICAgICAgcGFnZS5oZWlnaHQgPSA4NDI7XG4gICAgICAvLyB1c2luZyBvZiB0aGUgcmVwbGFjZSBpcyByZXF1aXJlZCB0byBmaXggaXNzdWUgd2l0aCBwYWRkaW5nIGZvciBpbnRpcmUgcHJpbnQgY29udGVudFxuICAgICAgcGFnZS5kYXRhID0gdGhpcy50ZXh0QmFja3VwLnJlcGxhY2UoJzwvc3R5bGU+JywgJ2JvZHkgeyBwYWRkaW5nOiA5NnB4OyB9IDwvc3R5bGU+Jyk7XG4gICAgICBjb25zdCBwcmludEh0bWwgPSBbcGFnZV07XG4gICAgICB0aGlzLl9yZW5kZXJQcmludFNlcnZpY2UuY2hhbmdlUGFnZXMocHJpbnRIdG1sKTtcbiAgICB9XG4gIH1cblxuICBvbkNsb3NlTW9kYWwoJGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZmlsZSAmJiAkZXZlbnQpIHtcbiAgICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgICAkKFwiLmRvY3VtZW50TWFpbkNvbnRlbnRcIikuYXR0cihcImNvbnRlbnRFZGl0YWJsZVwiLCBcInRydWVcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbGUucGFnZXNbMF0uZWRpdGFibGUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWFwcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvZWRpdG9yLyIsInNvdXJjZXMiOlsibGliL2VkaXRvci1hcHAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUNMLGVBQWUsRUFFZixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixlQUFlLEVBQ2YsWUFBWSxFQUNaLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixrQkFBa0IsRUFDbkIsTUFBTSwrQ0FBK0MsQ0FBQztBQUV2RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQzs7TUFDM0IsQ0FBQyxHQUFHLE1BQU07QUFPaEIsTUFBTSxPQUFPLGtCQUFrQjs7Ozs7Ozs7Ozs7Ozs7OztJQXFCN0IsWUFBb0IsY0FBNkIsRUFDN0IsYUFBMkIsRUFDbkMsYUFBa0MsRUFDbEMsa0JBQXNDLEVBQ3RDLGVBQWdDLEVBQ3hCLGNBQTZCLEVBQzdCLGtCQUFxQyxFQUNyQyxzQkFBNkMsRUFDN0MsZUFBK0IsRUFDL0IsaUJBQW1DLEVBQ25DLFlBQTZCLEVBQzdCLG1CQUF1QyxFQUN2QyxtQkFBdUM7UUFadkMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWM7UUFJM0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtR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QXFEOzs7OztJQUNyRCw2Q0FBdUM7Ozs7O0lBQ3ZDLCtDQUEyQzs7Ozs7SUFDM0MsMENBQXFDOzs7OztJQUNyQyxpREFBK0M7Ozs7O0lBQy9DLGlEQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFZGl0b3JTZXJ2aWNlfSBmcm9tIFwiLi9lZGl0b3Iuc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgRmlsZURlc2NyaXB0aW9uLFxuICBGaWxlTW9kZWwsXG4gIE1vZGFsU2VydmljZSxcbiAgVXBsb2FkRmlsZXNTZXJ2aWNlLFxuICBQYXNzd29yZFNlcnZpY2UsXG4gIEZpbGVDcmVkZW50aWFscyxcbiAgQ29tbW9uTW9kYWxzLFxuICBQYWdlTW9kZWwsXG4gIEZvcm1hdHRpbmdTZXJ2aWNlLFxuICBGb3JtYXR0aW5nLFxuICBCYWNrRm9ybWF0dGluZ1NlcnZpY2UsXG4gIE9uQ2xvc2VTZXJ2aWNlLFxuICBTYXZlRmlsZSxcbiAgU2VsZWN0aW9uU2VydmljZSxcbiAgRWRpdEh0bWxTZXJ2aWNlLFxuICBSZW5kZXJQcmludFNlcnZpY2UsXG4gIFdpbmRvd1NlcnZpY2UsXG4gIExvYWRpbmdNYXNrU2VydmljZSwgT3B0aW9uXG59IGZyb20gJ0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cyc7XG5pbXBvcnQge0VkaXRvckNvbmZpZ30gZnJvbSBcIi4vZWRpdG9yLWNvbmZpZ1wiO1xuaW1wb3J0IHtFZGl0b3JDb25maWdTZXJ2aWNlfSBmcm9tIFwiLi9lZGl0b3ItY29uZmlnLnNlcnZpY2VcIjtcbmltcG9ydCAqIGFzIGpxdWVyeSBmcm9tICdqcXVlcnknO1xuY29uc3QgJCA9IGpxdWVyeTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2QtZWRpdG9yLWFuZ3VsYXItcm9vdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3ItYXBwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLWFwcC5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvckFwcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCAge1xuICB0aXRsZSA9ICdlZGl0b3InO1xuICBmaWxlczogRmlsZU1vZGVsW10gPSBbXTtcbiAgZmlsZTogRmlsZURlc2NyaXB0aW9uO1xuICBlZGl0b3JDb25maWc6IEVkaXRvckNvbmZpZztcbiAgZm9ybWF0RGlzYWJsZWQgPSAhdGhpcy5maWxlO1xuICBkb3dubG9hZERpc2FibGVkID0gdHJ1ZTtcbiAgY3JlZGVudGlhbHM6IEZpbGVDcmVkZW50aWFscztcbiAgYnJvd3NlRmlsZXNNb2RhbCA9IENvbW1vbk1vZGFscy5Ccm93c2VGaWxlcztcbiAgaXNEZXNrdG9wOiBib29sZWFuO1xuICBmb3JtYXR0aW5nOiBGb3JtYXR0aW5nID0gRm9ybWF0dGluZy5ERUZBVUxUO1xuICBmb250U2l6ZU9wdGlvbnMgPSBGb3JtYXR0aW5nU2VydmljZS5nZXRGb250U2l6ZU9wdGlvbnMoKTtcbiAgZm9udE9wdGlvbnMgPSBGb3JtYXR0aW5nU2VydmljZS5nZXRGb250T3B0aW9ucygpO1xuICBiZ0NvbG9yUGlja2VyU2hvdyA9IGZhbHNlO1xuICBjb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgYWN0aXZlID0gZmFsc2U7XG4gIHByaXZhdGUgdGV4dEJhY2t1cDogc3RyaW5nO1xuICBwcml2YXRlIGlzSUUgPSBmYWxzZTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBmaWxlV2FzRHJvcHBlZDogZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgICAgICAgICAgIGNvbmZpZ1NlcnZpY2U6IEVkaXRvckNvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHVwbG9hZEZpbGVzU2VydmljZTogVXBsb2FkRmlsZXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwYXNzd29yZFNlcnZpY2U6IFBhc3N3b3JkU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd2luZG93U2VydmljZTogV2luZG93U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZm9ybWF0dGluZ1NlcnZpY2U6IEZvcm1hdHRpbmdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9iYWNrRm9ybWF0dGluZ1NlcnZpY2U6IEJhY2tGb3JtYXR0aW5nU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfb25DbG9zZVNlcnZpY2U6IE9uQ2xvc2VTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9zZWxlY3Rpb25TZXJ2aWNlOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9odG1sU2VydmljZTogRWRpdEh0bWxTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJQcmludFNlcnZpY2U6IFJlbmRlclByaW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9hZGluZ01hc2tTZXJ2aWNlOiBMb2FkaW5nTWFza1NlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuaXNJRSA9IC8qQGNjX29uIUAqL2ZhbHNlIHx8ICEhLyhNU0lFfFRyaWRlbnRcXC98RWRnZVxcLykvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgIGNvbmZpZ1NlcnZpY2UudXBkYXRlZENvbmZpZy5zdWJzY3JpYmUoKGVkaXRvckNvbmZpZykgPT4ge1xuICAgICAgdGhpcy5lZGl0b3JDb25maWcgPSBlZGl0b3JDb25maWc7XG4gICAgfSk7XG5cbiAgICB1cGxvYWRGaWxlc1NlcnZpY2UudXBsb2Fkc0NoYW5nZS5zdWJzY3JpYmUoKHVwbG9hZHMpID0+IHtcbiAgICAgIGlmICh1cGxvYWRzKSB7XG4gICAgICAgIGxldCBpOiBudW1iZXI7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB1cGxvYWRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGhpcy5fZWRpdG9yU2VydmljZS51cGxvYWQodXBsb2Fkcy5pdGVtKGkpLCAnJywgdGhpcy5lZGl0b3JDb25maWcucmV3cml0ZSkuc3Vic2NyaWJlKChvYmo6IEZpbGVDcmVkZW50aWFscykgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWxlV2FzRHJvcHBlZCA/IHRoaXMuc2VsZWN0RmlsZShvYmouZ3VpZCwgJycsICcnKSA6IHRoaXMuc2VsZWN0RGlyKCcnKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcGFzc3dvcmRTZXJ2aWNlLnBhc3NDaGFuZ2Uuc3Vic2NyaWJlKChwYXNzOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0RmlsZSh0aGlzLmNyZWRlbnRpYWxzLmd1aWQsIHBhc3MsIENvbW1vbk1vZGFscy5QYXNzd29yZFJlcXVpcmVkKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaXNEZXNrdG9wID0gX3dpbmRvd1NlcnZpY2UuaXNEZXNrdG9wKCk7XG4gICAgX3dpbmRvd1NlcnZpY2Uub25SZXNpemUuc3Vic2NyaWJlKCh3KSA9PiB7XG4gICAgICB0aGlzLmlzRGVza3RvcCA9IF93aW5kb3dTZXJ2aWNlLmlzRGVza3RvcCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEJvbGRDaGFuZ2Uuc3Vic2NyaWJlKChib2xkOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYm9sZCA9IGJvbGQ7XG4gICAgfSk7XG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEl0YWxpY0NoYW5nZS5zdWJzY3JpYmUoKGl0YWxpYzogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLml0YWxpYyA9IGl0YWxpYztcbiAgICB9KTtcbiAgICB0aGlzLl9iYWNrRm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0VW5kZXJsaW5lQ2hhbmdlLnN1YnNjcmliZSgodW5kZXJsaW5lOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcudW5kZXJsaW5lID0gdW5kZXJsaW5lO1xuICAgIH0pO1xuICAgIHRoaXMuX2JhY2tGb3JtYXR0aW5nU2VydmljZS5mb3JtYXRDb2xvckNoYW5nZS5zdWJzY3JpYmUoKGNvbG9yOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5jb2xvciA9IGNvbG9yO1xuICAgIH0pO1xuICAgIHRoaXMuX2JhY2tGb3JtYXR0aW5nU2VydmljZS5mb3JtYXRCZ0NvbG9yQ2hhbmdlLnN1YnNjcmliZSgoYmdjb2xvcjogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYmdDb2xvciA9IGJnY29sb3I7XG4gICAgfSk7XG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEZvbnRTaXplQ2hhbmdlLnN1YnNjcmliZSgoZm9udFNpemU6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmZvbnRTaXplID0gZm9udFNpemU7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9iYWNrRm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0Rm9udENoYW5nZS5zdWJzY3JpYmUoKGZvbnQ6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmZvbnQgPSBmb250O1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdFN0cmlrZW91dENoYW5nZS5zdWJzY3JpYmUoKHN0cmlrZW91dDogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLnN0cmlrZW91dCA9IHN0cmlrZW91dDtcbiAgICB9KTtcblxuICAgIHRoaXMuX2JhY2tGb3JtYXR0aW5nU2VydmljZS5mb3JtYXRBbGlnbkNoYW5nZS5zdWJzY3JpYmUoKGFsaWduOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5hbGlnbiA9IGFsaWduO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdExpc3RDaGFuZ2Uuc3Vic2NyaWJlKChsaXN0OiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5saXN0ID0gbGlzdDtcbiAgICB9KTtcblxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEJvbGRDaGFuZ2Uuc3Vic2NyaWJlKChib2xkOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYm9sZCA9IGJvbGQ7XG4gICAgfSk7XG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0SXRhbGljQ2hhbmdlLnN1YnNjcmliZSgoaXRhbGljOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuaXRhbGljID0gaXRhbGljO1xuICAgIH0pO1xuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdFVuZGVybGluZUNoYW5nZS5zdWJzY3JpYmUoKHVuZGVybGluZTogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLnVuZGVybGluZSA9IHVuZGVybGluZTtcbiAgICB9KTtcbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5mb3JtYXRDb2xvckNoYW5nZS5zdWJzY3JpYmUoKGNvbG9yOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5jb2xvciA9IGNvbG9yO1xuICAgIH0pO1xuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEJnQ29sb3JDaGFuZ2Uuc3Vic2NyaWJlKChiZ2NvbG9yOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5iZ0NvbG9yID0gYmdjb2xvcjtcbiAgICB9KTtcbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5mb3JtYXRGb250U2l6ZUNoYW5nZS5zdWJzY3JpYmUoKGZvbnRTaXplOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5mb250U2l6ZSA9IGZvbnRTaXplO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0Rm9udENoYW5nZS5zdWJzY3JpYmUoKGZvbnQ6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmZvbnQgPSBmb250O1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0U3RyaWtlb3V0Q2hhbmdlLnN1YnNjcmliZSgoc3RyaWtlb3V0OiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuc3RyaWtlb3V0ID0gc3RyaWtlb3V0O1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0QWxpZ25DaGFuZ2Uuc3Vic2NyaWJlKChhbGlnbjogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYWxpZ24gPSBhbGlnbjtcbiAgICB9KTtcblxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdExpc3RDaGFuZ2Uuc3Vic2NyaWJlKChsaXN0OiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5saXN0ID0gbGlzdDtcbiAgICB9KTtcblxuICAgIHRoaXMuX2h0bWxTZXJ2aWNlLmh0bWxDb250ZW50LnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAodGhpcy5maWxlICYmIHRoaXMuZmlsZS5wYWdlcykge1xuICAgICAgICB0aGlzLnRleHRCYWNrdXAgPSB0ZXh0O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZWRpdG9yQ29uZmlnLmRlZmF1bHREb2N1bWVudCAhPT0gXCJcIil7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdEZpbGUodGhpcy5lZGl0b3JDb25maWcuZGVmYXVsdERvY3VtZW50LCBcIlwiLCBcIlwiKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fbG9hZGluZ01hc2tTZXJ2aWNlXG4gICAgLm9uTG9hZGluZ0NoYW5nZWRcbiAgICAuc3Vic2NyaWJlKChsb2FkaW5nOiBib29sZWFuKSA9PiB0aGlzLmlzTG9hZGluZyA9IGxvYWRpbmcpO1xuICB9XG5cbiAgZ2V0IHJld3JpdGVDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcucmV3cml0ZSA6IHRydWU7XG4gIH1cblxuICBnZXQgZG93bmxvYWRDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcuZG93bmxvYWQgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHVwbG9hZENvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JDb25maWcgPyB0aGlzLmVkaXRvckNvbmZpZy51cGxvYWQgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHByaW50Q29uZmlnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRvckNvbmZpZyA/IHRoaXMuZWRpdG9yQ29uZmlnLnByaW50IDogdHJ1ZTtcbiAgfVxuXG4gIGdldCBicm93c2VDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcuYnJvd3NlIDogdHJ1ZTtcbiAgfVxuXG4gIGdldCBlbmFibGVSaWdodENsaWNrQ29uZmlnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRvckNvbmZpZyA/IHRoaXMuZWRpdG9yQ29uZmlnLmVuYWJsZVJpZ2h0Q2xpY2sgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHBhZ2VTZWxlY3RvckNvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JDb25maWcgPyB0aGlzLmVkaXRvckNvbmZpZy5wYWdlU2VsZWN0b3IgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IGNyZWF0ZU5ld0ZpbGVDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcuY3JlYXRlTmV3RmlsZSA6IHRydWU7XG4gIH1cblxuICBvcGVuTW9kYWwoaWQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZpbGUpIHtcbiAgICAgIHRoaXMuZmlsZS5wYWdlc1swXS5lZGl0YWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9tb2RhbFNlcnZpY2Uub3BlbihpZCk7XG4gIH1cblxuICBvcGVuU2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybWF0RGlzYWJsZWQpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKENvbW1vbk1vZGFscy5DcmVhdGVEb2N1bWVudCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0RGlyKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5fZWRpdG9yU2VydmljZS5sb2FkRmlsZXMoJGV2ZW50KS5zdWJzY3JpYmUoKGZpbGVzOiBGaWxlTW9kZWxbXSkgPT4gdGhpcy5maWxlcyA9IGZpbGVzIHx8IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgcHRUb1B4KHB0OiBudW1iZXIpIHtcbiAgICAvL3B0ICogOTYgLyA3MiA9IHB4LlxuICAgIHJldHVybiBwdCAqIDk2IC8gNzI7XG4gIH1cblxuICBvblJpZ2h0Q2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlUmlnaHRDbGlja0NvbmZpZztcbiAgfVxuXG4gIGNyZWF0ZUZpbGUoKSB7XG4gICAgdGhpcy5maWxlID0gbmV3IEZpbGVEZXNjcmlwdGlvbigpO1xuICAgIGNvbnN0IHBhZ2UgPSBuZXcgUGFnZU1vZGVsO1xuICAgIHBhZ2Uud2lkdGggPSA1OTU7XG4gICAgcGFnZS5oZWlnaHQgPSA4NDI7XG4gICAgcGFnZS5kYXRhID0gJzwhRE9DVFlQRSBIVE1MPjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9XCJjb250ZW50LXR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+JztcbiAgICBwYWdlLm51bWJlciA9IDE7XG4gICAgcGFnZS5lZGl0YWJsZSA9IHRydWU7XG4gICAgdGhpcy5maWxlLnBhZ2VzID0gW107XG4gICAgdGhpcy5maWxlLnBhZ2VzLnB1c2gocGFnZSk7XG4gICAgdGhpcy5maWxlLmd1aWQgPSBcIm5ldyBkb2N1bWVudC5kb2N4XCI7XG4gICAgdGhpcy5jcmVkZW50aWFscyA9IG5ldyBGaWxlQ3JlZGVudGlhbHMoXCJuZXcgZG9jdW1lbnQuZG9jeFwiLCBcIlwiKTtcbiAgICB0aGlzLmZvcm1hdERpc2FibGVkID0gZmFsc2U7XG4gICAgdGhpcy5kb3dubG9hZERpc2FibGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHNlbGVjdEZpbGUoJGV2ZW50OiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIG1vZGFsSWQ6IHN0cmluZykge1xuICAgIHRoaXMuY3JlZGVudGlhbHMgPSBuZXcgRmlsZUNyZWRlbnRpYWxzKCRldmVudCwgcGFzc3dvcmQpO1xuICAgIHRoaXMuX2VkaXRvclNlcnZpY2UubG9hZEZpbGUodGhpcy5jcmVkZW50aWFscykuc3Vic2NyaWJlKChmaWxlOiBGaWxlRGVzY3JpcHRpb24pID0+IHtcbiAgICAgICAgdGhpcy5sb2FkRmlsZShmaWxlKTtcbiAgICAgICAgY29uc3QgaXNJRSA9IC8qQGNjX29uIUAqL2ZhbHNlIHx8ICEhLyhNU0lFfFRyaWRlbnRcXC98RWRnZVxcLykvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgICAgICBpZihpc0lFKSB7XG4gICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAobXV0YXRpb25zKSB7XG4gICAgICAgICAgICBpZigkKFwiLmRvY3VtZW50TWFpbkNvbnRlbnRcIikubGVuZ3RoID4gMCApe1xuICAgICAgICAgICAgICAkKFwiLmRvY3VtZW50TWFpbkNvbnRlbnRcIikuYXR0cihcImNvbnRlbnRFZGl0YWJsZVwiLCBcInRydWVcIik7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LCB7YXR0cmlidXRlczogZmFsc2UsIGNoaWxkTGlzdDogdHJ1ZSwgY2hhcmFjdGVyRGF0YTogZmFsc2UsIHN1YnRyZWU6IHRydWV9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5jbGVhckRhdGEoKTtcbiAgICB0aGlzLl9tb2RhbFNlcnZpY2UuY2xvc2UobW9kYWxJZCk7XG4gIH1cblxuICBmaWxlRHJvcHBlZCgkZXZlbnQpe1xuICAgIHRoaXMuZmlsZVdhc0Ryb3BwZWQgPSAkZXZlbnQ7XG4gIH1cblxuICBwcml2YXRlIGxvYWRGaWxlKGZpbGU6IEZpbGVEZXNjcmlwdGlvbikge1xuICAgIHRoaXMuZmlsZSA9IGZpbGU7XG4gICAgaWYgKHRoaXMuZmlsZSAmJiB0aGlzLmZpbGUucGFnZXNbMF0pIHtcbiAgICAgIHRoaXMuZmlsZS5wYWdlc1swXS5lZGl0YWJsZSA9IHRydWU7XG4gICAgICB0aGlzLmZpbGUucGFnZXNbMF0ud2lkdGggPSA1OTU7XG4gICAgICB0aGlzLmZpbGUucGFnZXNbMF0uaGVpZ2h0ID0gODQyO1xuICAgICAgdGhpcy50ZXh0QmFja3VwID0gdGhpcy5maWxlLnBhZ2VzWzBdLmRhdGE7XG4gICAgfVxuICAgIHRoaXMuZm9ybWF0RGlzYWJsZWQgPSAhdGhpcy5maWxlO1xuICAgIHRoaXMuZG93bmxvYWREaXNhYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckRhdGEoKSB7XG4gICAgaWYgKCF0aGlzLmZpbGUgfHwgIXRoaXMuZmlsZS5wYWdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHBhZ2Ugb2YgdGhpcy5maWxlLnBhZ2VzKSB7XG4gICAgICBwYWdlLmRhdGEgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHVwbG9hZCgkZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuX2VkaXRvclNlcnZpY2UudXBsb2FkKG51bGwsICRldmVudCwgdGhpcy5yZXdyaXRlQ29uZmlnKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3REaXIoJycpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0Rm9udFNpemUoJGV2ZW50OiBPcHRpb24pIHtcbiAgICBpZiAodGhpcy5mb3JtYXREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICAkKFwiLmdkLXdyYXBwZXJcIikub2ZmKFwia2V5dXBcIik7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRGb250U2l6ZSgkZXZlbnQudmFsdWUpO1xuICAgICQoXCIuZ2Qtd3JhcHBlclwiKS5vbihcImtleXVwXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGZvbnRFbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiZm9udFwiKTtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBmb250RWxlbWVudHMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgICAgaWYgKGZvbnRFbGVtZW50c1tpXS5nZXRBdHRyaWJ1dGUoJ3NpemUnKSA9PT0gXCI3XCIpIHtcbiAgICAgICAgICBmb250RWxlbWVudHNbaV0ucmVtb3ZlQXR0cmlidXRlKFwic2l6ZVwiKTtcbiAgICAgICAgICBmb250RWxlbWVudHNbaV0uc3R5bGUuZm9udFNpemUgPSAkZXZlbnQgKyBcInB4XCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdEZvbnQoJGV2ZW50OiBPcHRpb24pIHtcbiAgICBpZiAodGhpcy5mb3JtYXREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmNhcHR1cmVTZWxlY3Rpb24oKTtcbiAgICB9XG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuY2hhbmdlRm9ybWF0Rm9udCgkZXZlbnQudmFsdWUpO1xuICB9XG5cbiAgdG9nZ2xlQ29sb3JQaWNrZXIoYmc6IGJvb2xlYW4pIHtcblxuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmNhcHR1cmVTZWxlY3Rpb24oKTtcbiAgICB9XG4gICAgaWYgKGJnKSB7XG4gICAgICB0aGlzLmJnQ29sb3JQaWNrZXJTaG93ID0gIXRoaXMuYmdDb2xvclBpY2tlclNob3c7XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU2hvdyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU2hvdyA9ICF0aGlzLmNvbG9yUGlja2VyU2hvdztcbiAgICAgIHRoaXMuYmdDb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDb2xvcigkZXZlbnQ6IHN0cmluZykge1xuICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmNhcHR1cmVTZWxlY3Rpb24oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmdDb2xvclBpY2tlclNob3cpIHtcbiAgICAgIHRoaXMuYmdDb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdEJnQ29sb3IoJGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdENvbG9yKCRldmVudCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlQm9sZChldmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRCb2xkKCF0aGlzLmZvcm1hdHRpbmcuYm9sZCk7XG4gIH1cblxuICB0b2dnbGVVbmRvKCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuVW5kbygpO1xuICB9XG5cbiAgdG9nZ2xlUmVkbygpIHtcbiAgICBpZiAodGhpcy5mb3JtYXREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLlJlZG8oKTtcbiAgfVxuXG4gIHRvZ2dsZUl0YWxpYyhldmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRJdGFsaWMoIXRoaXMuZm9ybWF0dGluZy5pdGFsaWMpO1xuICB9XG5cbiAgdG9nZ2xlVW5kZXJsaW5lKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZm9ybWF0RGlzYWJsZWQpXG4gICAgICByZXR1cm47XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZih0aGlzLmlzSUUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UucmVzdG9yZVNlbGVjdGlvbigpO1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5jYXB0dXJlU2VsZWN0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdFVuZGVybGluZSghdGhpcy5mb3JtYXR0aW5nLnVuZGVybGluZSk7XG4gIH1cblxuICBoaWRlQWxsKCRldmVudCkge1xuICAgIGlmICgoJGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50ICYmICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5hdHRyaWJ1dGVzWyduYW1lJ10gJiZcbiAgICAgICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5hdHRyaWJ1dGVzWyduYW1lJ10udmFsdWUgPT09ICdidXR0b24nKSB8fFxuICAgICAgKCRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50ICYmXG4gICAgICAkZXZlbnQudGFyZ2V0LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5hdHRyaWJ1dGVzWyduYW1lJ10gJiZcbiAgICAgICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmF0dHJpYnV0ZXNbJ25hbWUnXS52YWx1ZSA9PT0gJ2J1dHRvbicpKSB7XG5cbiAgICAgIHRoaXMuX29uQ2xvc2VTZXJ2aWNlLmNsb3NlKHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbG9yUGlja2VyU2hvdyA9IGZhbHNlO1xuICAgIHRoaXMuYmdDb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICB0aGlzLl9vbkNsb3NlU2VydmljZS5jbG9zZSh0cnVlKTtcbiAgfVxuXG4gIHRvZ2dsZVN0cmlrZW91dChldmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRTdHJpa2VvdXQoIXRoaXMuZm9ybWF0dGluZy5zdHJpa2VvdXQpO1xuICB9XG5cbiAgdG9nZ2xlQWxpZ24oYWxpZ246IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKGFsaWduID09PSB0aGlzLmZvcm1hdHRpbmcuYWxpZ24pIHtcbiAgICAgIGFsaWduID0gJ2Z1bGwnO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRBbGlnbihhbGlnbik7XG4gICAgdGhpcy5mb3JtYXR0aW5nLmFsaWduID0gYWxpZ247XG4gIH1cblxuICB0b2dnbGVMaXN0KGxpc3Q6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAobGlzdCA9PT0gdGhpcy5mb3JtYXR0aW5nLmxpc3QpIHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5saXN0ID0gXCJcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmxpc3QgPSBsaXN0O1xuICAgIH1cbiAgICBpZih0aGlzLmlzSUUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UucmVzdG9yZVNlbGVjdGlvbigpO1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5jYXB0dXJlU2VsZWN0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdExpc3QobGlzdCk7XG4gIH1cblxuICBkb3dubG9hZEZpbGUoKSB7XG4gICAgaWYgKHRoaXMuZG93bmxvYWREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMuX2VkaXRvclNlcnZpY2UuZ2V0RG93bmxvYWRVcmwodGhpcy5jcmVkZW50aWFscykpO1xuICB9XG5cbiAgc2F2ZSgpe1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGlmKHRoaXMuY3JlZGVudGlhbHMpIHtcbiAgICAgIGlmICh0aGlzLmZpbGUuZ3VpZCA9PT0gXCJuZXcgZG9jdW1lbnQuZG9jeFwiKSB7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsKENvbW1vbk1vZGFscy5DcmVhdGVEb2N1bWVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNhdmVGaWxlKHRoaXMuY3JlZGVudGlhbHMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gc2F2ZUZpbGUoY3JlZGVudGlhbHM6IEZpbGVDcmVkZW50aWFscykge1xuICAgIGlmICghdGhpcy5maWxlIHx8ICF0aGlzLmZpbGUucGFnZXMpXG4gICAgICByZXR1cm47XG4gICAgY29uc3Qgc2F2ZUZpbGUgPSBuZXcgU2F2ZUZpbGUoY3JlZGVudGlhbHMuZ3VpZCwgY3JlZGVudGlhbHMucGFzc3dvcmQsIHRoaXMudGV4dEJhY2t1cCk7XG4gICAgdGhpcy5fZWRpdG9yU2VydmljZS5zYXZlKHNhdmVGaWxlKS5zdWJzY3JpYmUoKGxvYWRGaWxlOiBGaWxlRGVzY3JpcHRpb24pID0+IHtcbiAgICAgIHRoaXMubG9hZEZpbGUobG9hZEZpbGUpO1xuICAgICAgdGhpcy5jcmVkZW50aWFscyA9IG5ldyBGaWxlQ3JlZGVudGlhbHMobG9hZEZpbGUuZ3VpZCwgY3JlZGVudGlhbHMucGFzc3dvcmQpO1xuICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm9wZW4oQ29tbW9uTW9kYWxzLk9wZXJhdGlvblN1Y2Nlc3MpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpbnRGaWxlKCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGlmKHRoaXMuZmlsZS5wYWdlcykge1xuICAgICAgY29uc3QgcGFnZSA9IG5ldyBQYWdlTW9kZWw7XG4gICAgICBwYWdlLndpZHRoID0gNTk1O1xuICAgICAgcGFnZS5oZWlnaHQgPSA4NDI7XG4gICAgICAvLyB1c2luZyBvZiB0aGUgcmVwbGFjZSBpcyByZXF1aXJlZCB0byBmaXggaXNzdWUgd2l0aCBwYWRkaW5nIGZvciBpbnRpcmUgcHJpbnQgY29udGVudFxuICAgICAgcGFnZS5kYXRhID0gdGhpcy50ZXh0QmFja3VwLnJlcGxhY2UoJzwvc3R5bGU+JywgJ2JvZHkgeyBwYWRkaW5nOiA5NnB4OyB9IDwvc3R5bGU+Jyk7XG4gICAgICBjb25zdCBwcmludEh0bWwgPSBbcGFnZV07XG4gICAgICB0aGlzLl9yZW5kZXJQcmludFNlcnZpY2UuY2hhbmdlUGFnZXMocHJpbnRIdG1sKTtcbiAgICB9XG4gIH1cblxuICBvbkNsb3NlTW9kYWwoJGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZmlsZSAmJiAkZXZlbnQpIHtcbiAgICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgICAkKFwiLmRvY3VtZW50TWFpbkNvbnRlbnRcIikuYXR0cihcImNvbnRlbnRFZGl0YWJsZVwiLCBcInRydWVcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbGUucGFnZXNbMF0uZWRpdGFibGUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/dist/libs/editor/esm5/lib/editor-app.component.js b/dist/libs/editor/esm5/lib/editor-app.component.js index 8264620c4..fbc3e2a7b 100644 --- a/dist/libs/editor/esm5/lib/editor-app.component.js +++ b/dist/libs/editor/esm5/lib/editor-app.component.js @@ -900,7 +900,7 @@ var EditorAppComponent = /** @class */ (function () { EditorAppComponent.decorators = [ { type: Component, args: [{ selector: 'gd-editor-angular-root', - template: "\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n", + template: "\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n", styles: ["@import url(https://fonts.googleapis.com/css?family=Open+Sans&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.current-page-number{margin:0 15px;font-size:14px;color:#959da5}*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:text}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:calc(100% - 90px)}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{width:100%}/deep/ .gd-wrapper{padding:96px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;outline:0}/deep/ .dropdown-menu{min-width:unset!important}.format-select{margin:0 15px}.palette{position:absolute;top:90px;z-index:100}.background-color-picker{left:700px}.color-picker{left:750px}.bg-color-pic{border-radius:100%;border:1px solid #ccc;position:absolute;height:8px;width:8px;right:6px;bottom:6px}/deep/ .button.inactive{color:#ccc!important}/deep/ .gd-editor-buttons .button .tooltip{margin-top:45px;margin-left:-36px}/deep/ .gd-edit.active{background-color:#7e8991;border-radius:5px}/deep/ .gd-edit.active i{color:#fff}/deep/ .page{width:800px}/deep/ .save-as-button-icon{font-size:11px;left:22px!important;top:13px!important}.save-button{position:absolute;top:-5px;left:21px}@media (max-width:1037px){/deep/ .panzoom{zoom:.4;margin-top:160px}}"] }] } ]; @@ -1019,4 +1019,4 @@ if (false) { */ EditorAppComponent.prototype._loadingMaskService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWFwcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvZWRpdG9yLyIsInNvdXJjZXMiOlsibGliL2VkaXRvci1hcHAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxlQUFlLEVBRWYsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsZUFBZSxFQUNmLFlBQVksRUFDWixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixxQkFBcUIsRUFDckIsY0FBYyxFQUNkLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ25CLE1BQU0sK0NBQStDLENBQUM7QUFFdkQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7O0lBQzNCLENBQUMsR0FBRyxNQUFNO0FBRWhCO0lBMEJFLDRCQUFvQixjQUE2QixFQUM3QixhQUEyQixFQUNuQyxhQUFrQyxFQUNsQyxrQkFBc0MsRUFDdEMsZUFBZ0MsRUFDeEIsY0FBNkIsRUFDN0Isa0JBQXFDLEVBQ3JDLHNCQUE2QyxFQUM3QyxlQUErQixFQUMvQixpQkFBbUMsRUFDbkMsWUFBNkIsRUFDN0IsbUJBQXVDLEVBQ3ZDLG1CQUF1QztRQVozRCxpQkFrSEM7UUFsSG1CLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBSTNCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsMkJBQXNCLEdBQXRC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NkI7O0lBQzdCLDhDQUE0Qzs7SUFDNUMsdUNBQW1COztJQUNuQix3Q0FBNEM7O0lBQzVDLDZDQUF5RDs7SUFDekQseUNBQWlEOztJQUNqRCwrQ0FBMEI7O0lBQzFCLDZDQUF3Qjs7SUFDeEIsb0NBQWU7Ozs7O0lBQ2Ysd0NBQTJCOzs7OztJQUMzQixrQ0FBcUI7O0lBQ3JCLHVDQUFtQjs7SUFDbkIsNENBQXNCOzs7OztJQUVWLDRDQUFxQzs7Ozs7SUFDckMsMkNBQW1DOzs7OztJQUluQyw0Q0FBcUM7Ozs7O0lBQ3JDLGdEQUE2Qzs7Ozs7SUFDN0Msb0RBQXFEOzs7OztJQUNyRCw2Q0FBdUM7Ozs7O0lBQ3ZDLCtDQUEyQzs7Ozs7SUFDM0MsMENBQXFDOzs7OztJQUNyQyxpREFBK0M7Ozs7O0lBQy9DLGlEQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFZGl0b3JTZXJ2aWNlfSBmcm9tIFwiLi9lZGl0b3Iuc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgRmlsZURlc2NyaXB0aW9uLFxuICBGaWxlTW9kZWwsXG4gIE1vZGFsU2VydmljZSxcbiAgVXBsb2FkRmlsZXNTZXJ2aWNlLFxuICBQYXNzd29yZFNlcnZpY2UsXG4gIEZpbGVDcmVkZW50aWFscyxcbiAgQ29tbW9uTW9kYWxzLFxuICBQYWdlTW9kZWwsXG4gIEZvcm1hdHRpbmdTZXJ2aWNlLFxuICBGb3JtYXR0aW5nLFxuICBCYWNrRm9ybWF0dGluZ1NlcnZpY2UsXG4gIE9uQ2xvc2VTZXJ2aWNlLFxuICBTYXZlRmlsZSxcbiAgU2VsZWN0aW9uU2VydmljZSxcbiAgRWRpdEh0bWxTZXJ2aWNlLFxuICBSZW5kZXJQcmludFNlcnZpY2UsXG4gIFdpbmRvd1NlcnZpY2UsXG4gIExvYWRpbmdNYXNrU2VydmljZSwgT3B0aW9uXG59IGZyb20gJ0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cyc7XG5pbXBvcnQge0VkaXRvckNvbmZpZ30gZnJvbSBcIi4vZWRpdG9yLWNvbmZpZ1wiO1xuaW1wb3J0IHtFZGl0b3JDb25maWdTZXJ2aWNlfSBmcm9tIFwiLi9lZGl0b3ItY29uZmlnLnNlcnZpY2VcIjtcbmltcG9ydCAqIGFzIGpxdWVyeSBmcm9tICdqcXVlcnknO1xuY29uc3QgJCA9IGpxdWVyeTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2QtZWRpdG9yLWFuZ3VsYXItcm9vdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3ItYXBwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLWFwcC5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvckFwcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCAge1xuICB0aXRsZSA9ICdlZGl0b3InO1xuICBmaWxlczogRmlsZU1vZGVsW10gPSBbXTtcbiAgZmlsZTogRmlsZURlc2NyaXB0aW9uO1xuICBlZGl0b3JDb25maWc6IEVkaXRvckNvbmZpZztcbiAgZm9ybWF0RGlzYWJsZWQgPSAhdGhpcy5maWxlO1xuICBkb3dubG9hZERpc2FibGVkID0gdHJ1ZTtcbiAgY3JlZGVudGlhbHM6IEZpbGVDcmVkZW50aWFscztcbiAgYnJvd3NlRmlsZXNNb2RhbCA9IENvbW1vbk1vZGFscy5Ccm93c2VGaWxlcztcbiAgaXNEZXNrdG9wOiBib29sZWFuO1xuICBmb3JtYXR0aW5nOiBGb3JtYXR0aW5nID0gRm9ybWF0dGluZy5ERUZBVUxUO1xuICBmb250U2l6ZU9wdGlvbnMgPSBGb3JtYXR0aW5nU2VydmljZS5nZXRGb250U2l6ZU9wdGlvbnMoKTtcbiAgZm9udE9wdGlvbnMgPSBGb3JtYXR0aW5nU2VydmljZS5nZXRGb250T3B0aW9ucygpO1xuICBiZ0NvbG9yUGlja2VyU2hvdyA9IGZhbHNlO1xuICBjb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgYWN0aXZlID0gZmFsc2U7XG4gIHByaXZhdGUgdGV4dEJhY2t1cDogc3RyaW5nO1xuICBwcml2YXRlIGlzSUUgPSBmYWxzZTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBmaWxlV2FzRHJvcHBlZDogZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgICAgICAgICAgIGNvbmZpZ1NlcnZpY2U6IEVkaXRvckNvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHVwbG9hZEZpbGVzU2VydmljZTogVXBsb2FkRmlsZXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwYXNzd29yZFNlcnZpY2U6IFBhc3N3b3JkU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd2luZG93U2VydmljZTogV2luZG93U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZm9ybWF0dGluZ1NlcnZpY2U6IEZvcm1hdHRpbmdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9iYWNrRm9ybWF0dGluZ1NlcnZpY2U6IEJhY2tGb3JtYXR0aW5nU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfb25DbG9zZVNlcnZpY2U6IE9uQ2xvc2VTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9zZWxlY3Rpb25TZXJ2aWNlOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9odG1sU2VydmljZTogRWRpdEh0bWxTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJQcmludFNlcnZpY2U6IFJlbmRlclByaW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9hZGluZ01hc2tTZXJ2aWNlOiBMb2FkaW5nTWFza1NlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuaXNJRSA9IC8qQGNjX29uIUAqL2ZhbHNlIHx8ICEhLyhNU0lFfFRyaWRlbnRcXC98RWRnZVxcLykvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgIGNvbmZpZ1NlcnZpY2UudXBkYXRlZENvbmZpZy5zdWJzY3JpYmUoKGVkaXRvckNvbmZpZykgPT4ge1xuICAgICAgdGhpcy5lZGl0b3JDb25maWcgPSBlZGl0b3JDb25maWc7XG4gICAgfSk7XG5cbiAgICB1cGxvYWRGaWxlc1NlcnZpY2UudXBsb2Fkc0NoYW5nZS5zdWJzY3JpYmUoKHVwbG9hZHMpID0+IHtcbiAgICAgIGlmICh1cGxvYWRzKSB7XG4gICAgICAgIGxldCBpOiBudW1iZXI7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB1cGxvYWRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGhpcy5fZWRpdG9yU2VydmljZS51cGxvYWQodXBsb2Fkcy5pdGVtKGkpLCAnJywgdGhpcy5lZGl0b3JDb25maWcucmV3cml0ZSkuc3Vic2NyaWJlKChvYmo6IEZpbGVDcmVkZW50aWFscykgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWxlV2FzRHJvcHBlZCA/IHRoaXMuc2VsZWN0RmlsZShvYmouZ3VpZCwgJycsICcnKSA6IHRoaXMuc2VsZWN0RGlyKCcnKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcGFzc3dvcmRTZXJ2aWNlLnBhc3NDaGFuZ2Uuc3Vic2NyaWJlKChwYXNzOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0RmlsZSh0aGlzLmNyZWRlbnRpYWxzLmd1aWQsIHBhc3MsIENvbW1vbk1vZGFscy5QYXNzd29yZFJlcXVpcmVkKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaXNEZXNrdG9wID0gX3dpbmRvd1NlcnZpY2UuaXNEZXNrdG9wKCk7XG4gICAgX3dpbmRvd1NlcnZpY2Uub25SZXNpemUuc3Vic2NyaWJlKCh3KSA9PiB7XG4gICAgICB0aGlzLmlzRGVza3RvcCA9IF93aW5kb3dTZXJ2aWNlLmlzRGVza3RvcCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEJvbGRDaGFuZ2Uuc3Vic2NyaWJlKChib2xkOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYm9sZCA9IGJvbGQ7XG4gICAgfSk7XG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEl0YWxpY0NoYW5nZS5zdWJzY3JpYmUoKGl0YWxpYzogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLml0YWxpYyA9IGl0YWxpYztcbiAgICB9KTtcbiAgICB0aGlzLl9iYWNrRm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0VW5kZXJsaW5lQ2hhbmdlLnN1YnNjcmliZSgodW5kZXJsaW5lOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcudW5kZXJsaW5lID0gdW5kZXJsaW5lO1xuICAgIH0pO1xuICAgIHRoaXMuX2JhY2tGb3JtYXR0aW5nU2VydmljZS5mb3JtYXRDb2xvckNoYW5nZS5zdWJzY3JpYmUoKGNvbG9yOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5jb2xvciA9IGNvbG9yO1xuICAgIH0pO1xuICAgIHRoaXMuX2JhY2tGb3JtYXR0aW5nU2VydmljZS5mb3JtYXRCZ0NvbG9yQ2hhbmdlLnN1YnNjcmliZSgoYmdjb2xvcjogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYmdDb2xvciA9IGJnY29sb3I7XG4gICAgfSk7XG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEZvbnRTaXplQ2hhbmdlLnN1YnNjcmliZSgoZm9udFNpemU6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmZvbnRTaXplID0gZm9udFNpemU7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9iYWNrRm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0Rm9udENoYW5nZS5zdWJzY3JpYmUoKGZvbnQ6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmZvbnQgPSBmb250O1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdFN0cmlrZW91dENoYW5nZS5zdWJzY3JpYmUoKHN0cmlrZW91dDogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLnN0cmlrZW91dCA9IHN0cmlrZW91dDtcbiAgICB9KTtcblxuICAgIHRoaXMuX2JhY2tGb3JtYXR0aW5nU2VydmljZS5mb3JtYXRBbGlnbkNoYW5nZS5zdWJzY3JpYmUoKGFsaWduOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5hbGlnbiA9IGFsaWduO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdExpc3RDaGFuZ2Uuc3Vic2NyaWJlKChsaXN0OiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5saXN0ID0gbGlzdDtcbiAgICB9KTtcblxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEJvbGRDaGFuZ2Uuc3Vic2NyaWJlKChib2xkOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYm9sZCA9IGJvbGQ7XG4gICAgfSk7XG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0SXRhbGljQ2hhbmdlLnN1YnNjcmliZSgoaXRhbGljOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuaXRhbGljID0gaXRhbGljO1xuICAgIH0pO1xuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdFVuZGVybGluZUNoYW5nZS5zdWJzY3JpYmUoKHVuZGVybGluZTogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLnVuZGVybGluZSA9IHVuZGVybGluZTtcbiAgICB9KTtcbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5mb3JtYXRDb2xvckNoYW5nZS5zdWJzY3JpYmUoKGNvbG9yOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5jb2xvciA9IGNvbG9yO1xuICAgIH0pO1xuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEJnQ29sb3JDaGFuZ2Uuc3Vic2NyaWJlKChiZ2NvbG9yOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5iZ0NvbG9yID0gYmdjb2xvcjtcbiAgICB9KTtcbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5mb3JtYXRGb250U2l6ZUNoYW5nZS5zdWJzY3JpYmUoKGZvbnRTaXplOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5mb250U2l6ZSA9IGZvbnRTaXplO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0Rm9udENoYW5nZS5zdWJzY3JpYmUoKGZvbnQ6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmZvbnQgPSBmb250O1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0U3RyaWtlb3V0Q2hhbmdlLnN1YnNjcmliZSgoc3RyaWtlb3V0OiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuc3RyaWtlb3V0ID0gc3RyaWtlb3V0O1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0QWxpZ25DaGFuZ2Uuc3Vic2NyaWJlKChhbGlnbjogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYWxpZ24gPSBhbGlnbjtcbiAgICB9KTtcblxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdExpc3RDaGFuZ2Uuc3Vic2NyaWJlKChsaXN0OiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5saXN0ID0gbGlzdDtcbiAgICB9KTtcblxuICAgIHRoaXMuX2h0bWxTZXJ2aWNlLmh0bWxDb250ZW50LnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAodGhpcy5maWxlICYmIHRoaXMuZmlsZS5wYWdlcykge1xuICAgICAgICB0aGlzLnRleHRCYWNrdXAgPSB0ZXh0O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZWRpdG9yQ29uZmlnLmRlZmF1bHREb2N1bWVudCAhPT0gXCJcIil7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdEZpbGUodGhpcy5lZGl0b3JDb25maWcuZGVmYXVsdERvY3VtZW50LCBcIlwiLCBcIlwiKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fbG9hZGluZ01hc2tTZXJ2aWNlXG4gICAgLm9uTG9hZGluZ0NoYW5nZWRcbiAgICAuc3Vic2NyaWJlKChsb2FkaW5nOiBib29sZWFuKSA9PiB0aGlzLmlzTG9hZGluZyA9IGxvYWRpbmcpO1xuICB9XG5cbiAgZ2V0IHJld3JpdGVDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcucmV3cml0ZSA6IHRydWU7XG4gIH1cblxuICBnZXQgZG93bmxvYWRDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcuZG93bmxvYWQgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHVwbG9hZENvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JDb25maWcgPyB0aGlzLmVkaXRvckNvbmZpZy51cGxvYWQgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHByaW50Q29uZmlnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRvckNvbmZpZyA/IHRoaXMuZWRpdG9yQ29uZmlnLnByaW50IDogdHJ1ZTtcbiAgfVxuXG4gIGdldCBicm93c2VDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcuYnJvd3NlIDogdHJ1ZTtcbiAgfVxuXG4gIGdldCBlbmFibGVSaWdodENsaWNrQ29uZmlnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRvckNvbmZpZyA/IHRoaXMuZWRpdG9yQ29uZmlnLmVuYWJsZVJpZ2h0Q2xpY2sgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHBhZ2VTZWxlY3RvckNvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JDb25maWcgPyB0aGlzLmVkaXRvckNvbmZpZy5wYWdlU2VsZWN0b3IgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IGNyZWF0ZU5ld0ZpbGVDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcuY3JlYXRlTmV3RmlsZSA6IHRydWU7XG4gIH1cblxuICBvcGVuTW9kYWwoaWQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZpbGUpIHtcbiAgICAgIHRoaXMuZmlsZS5wYWdlc1swXS5lZGl0YWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9tb2RhbFNlcnZpY2Uub3BlbihpZCk7XG4gIH1cblxuICBvcGVuU2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybWF0RGlzYWJsZWQpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKENvbW1vbk1vZGFscy5DcmVhdGVEb2N1bWVudCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0RGlyKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5fZWRpdG9yU2VydmljZS5sb2FkRmlsZXMoJGV2ZW50KS5zdWJzY3JpYmUoKGZpbGVzOiBGaWxlTW9kZWxbXSkgPT4gdGhpcy5maWxlcyA9IGZpbGVzIHx8IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgcHRUb1B4KHB0OiBudW1iZXIpIHtcbiAgICAvL3B0ICogOTYgLyA3MiA9IHB4LlxuICAgIHJldHVybiBwdCAqIDk2IC8gNzI7XG4gIH1cblxuICBvblJpZ2h0Q2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlUmlnaHRDbGlja0NvbmZpZztcbiAgfVxuXG4gIGNyZWF0ZUZpbGUoKSB7XG4gICAgdGhpcy5maWxlID0gbmV3IEZpbGVEZXNjcmlwdGlvbigpO1xuICAgIGNvbnN0IHBhZ2UgPSBuZXcgUGFnZU1vZGVsO1xuICAgIHBhZ2Uud2lkdGggPSA1OTU7XG4gICAgcGFnZS5oZWlnaHQgPSA4NDI7XG4gICAgcGFnZS5kYXRhID0gJzwhRE9DVFlQRSBIVE1MPjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9XCJjb250ZW50LXR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+JztcbiAgICBwYWdlLm51bWJlciA9IDE7XG4gICAgcGFnZS5lZGl0YWJsZSA9IHRydWU7XG4gICAgdGhpcy5maWxlLnBhZ2VzID0gW107XG4gICAgdGhpcy5maWxlLnBhZ2VzLnB1c2gocGFnZSk7XG4gICAgdGhpcy5maWxlLmd1aWQgPSBcIm5ldyBkb2N1bWVudC5kb2N4XCI7XG4gICAgdGhpcy5jcmVkZW50aWFscyA9IG5ldyBGaWxlQ3JlZGVudGlhbHMoXCJuZXcgZG9jdW1lbnQuZG9jeFwiLCBcIlwiKTtcbiAgICB0aGlzLmZvcm1hdERpc2FibGVkID0gZmFsc2U7XG4gICAgdGhpcy5kb3dubG9hZERpc2FibGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHNlbGVjdEZpbGUoJGV2ZW50OiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIG1vZGFsSWQ6IHN0cmluZykge1xuICAgIHRoaXMuY3JlZGVudGlhbHMgPSBuZXcgRmlsZUNyZWRlbnRpYWxzKCRldmVudCwgcGFzc3dvcmQpO1xuICAgIHRoaXMuX2VkaXRvclNlcnZpY2UubG9hZEZpbGUodGhpcy5jcmVkZW50aWFscykuc3Vic2NyaWJlKChmaWxlOiBGaWxlRGVzY3JpcHRpb24pID0+IHtcbiAgICAgICAgdGhpcy5sb2FkRmlsZShmaWxlKTtcbiAgICAgICAgY29uc3QgaXNJRSA9IC8qQGNjX29uIUAqL2ZhbHNlIHx8ICEhLyhNU0lFfFRyaWRlbnRcXC98RWRnZVxcLykvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgICAgICBpZihpc0lFKSB7XG4gICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAobXV0YXRpb25zKSB7XG4gICAgICAgICAgICBpZigkKFwiLmRvY3VtZW50TWFpbkNvbnRlbnRcIikubGVuZ3RoID4gMCApe1xuICAgICAgICAgICAgICAkKFwiLmRvY3VtZW50TWFpbkNvbnRlbnRcIikuYXR0cihcImNvbnRlbnRFZGl0YWJsZVwiLCBcInRydWVcIik7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LCB7YXR0cmlidXRlczogZmFsc2UsIGNoaWxkTGlzdDogdHJ1ZSwgY2hhcmFjdGVyRGF0YTogZmFsc2UsIHN1YnRyZWU6IHRydWV9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5jbGVhckRhdGEoKTtcbiAgICB0aGlzLl9tb2RhbFNlcnZpY2UuY2xvc2UobW9kYWxJZCk7XG4gIH1cblxuICBmaWxlRHJvcHBlZCgkZXZlbnQpe1xuICAgIHRoaXMuZmlsZVdhc0Ryb3BwZWQgPSAkZXZlbnQ7XG4gIH1cblxuICBwcml2YXRlIGxvYWRGaWxlKGZpbGU6IEZpbGVEZXNjcmlwdGlvbikge1xuICAgIHRoaXMuZmlsZSA9IGZpbGU7XG4gICAgaWYgKHRoaXMuZmlsZSAmJiB0aGlzLmZpbGUucGFnZXNbMF0pIHtcbiAgICAgIHRoaXMuZmlsZS5wYWdlc1swXS5lZGl0YWJsZSA9IHRydWU7XG4gICAgICB0aGlzLmZpbGUucGFnZXNbMF0ud2lkdGggPSA1OTU7XG4gICAgICB0aGlzLmZpbGUucGFnZXNbMF0uaGVpZ2h0ID0gODQyO1xuICAgICAgdGhpcy50ZXh0QmFja3VwID0gdGhpcy5maWxlLnBhZ2VzWzBdLmRhdGE7XG4gICAgfVxuICAgIHRoaXMuZm9ybWF0RGlzYWJsZWQgPSAhdGhpcy5maWxlO1xuICAgIHRoaXMuZG93bmxvYWREaXNhYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckRhdGEoKSB7XG4gICAgaWYgKCF0aGlzLmZpbGUgfHwgIXRoaXMuZmlsZS5wYWdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHBhZ2Ugb2YgdGhpcy5maWxlLnBhZ2VzKSB7XG4gICAgICBwYWdlLmRhdGEgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHVwbG9hZCgkZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuX2VkaXRvclNlcnZpY2UudXBsb2FkKG51bGwsICRldmVudCwgdGhpcy5yZXdyaXRlQ29uZmlnKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3REaXIoJycpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0Rm9udFNpemUoJGV2ZW50OiBPcHRpb24pIHtcbiAgICBpZiAodGhpcy5mb3JtYXREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICAkKFwiLmdkLXdyYXBwZXJcIikub2ZmKFwia2V5dXBcIik7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRGb250U2l6ZSgkZXZlbnQudmFsdWUpO1xuICAgICQoXCIuZ2Qtd3JhcHBlclwiKS5vbihcImtleXVwXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGZvbnRFbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiZm9udFwiKTtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBmb250RWxlbWVudHMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgICAgaWYgKGZvbnRFbGVtZW50c1tpXS5nZXRBdHRyaWJ1dGUoJ3NpemUnKSA9PT0gXCI3XCIpIHtcbiAgICAgICAgICBmb250RWxlbWVudHNbaV0ucmVtb3ZlQXR0cmlidXRlKFwic2l6ZVwiKTtcbiAgICAgICAgICBmb250RWxlbWVudHNbaV0uc3R5bGUuZm9udFNpemUgPSAkZXZlbnQgKyBcInB4XCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdEZvbnQoJGV2ZW50OiBPcHRpb24pIHtcbiAgICBpZiAodGhpcy5mb3JtYXREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmNhcHR1cmVTZWxlY3Rpb24oKTtcbiAgICB9XG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuY2hhbmdlRm9ybWF0Rm9udCgkZXZlbnQudmFsdWUpO1xuICB9XG5cbiAgdG9nZ2xlQ29sb3JQaWNrZXIoYmc6IGJvb2xlYW4pIHtcblxuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmNhcHR1cmVTZWxlY3Rpb24oKTtcbiAgICB9XG4gICAgaWYgKGJnKSB7XG4gICAgICB0aGlzLmJnQ29sb3JQaWNrZXJTaG93ID0gIXRoaXMuYmdDb2xvclBpY2tlclNob3c7XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU2hvdyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU2hvdyA9ICF0aGlzLmNvbG9yUGlja2VyU2hvdztcbiAgICAgIHRoaXMuYmdDb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDb2xvcigkZXZlbnQ6IHN0cmluZykge1xuICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmNhcHR1cmVTZWxlY3Rpb24oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmdDb2xvclBpY2tlclNob3cpIHtcbiAgICAgIHRoaXMuYmdDb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdEJnQ29sb3IoJGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdENvbG9yKCRldmVudCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlQm9sZChldmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRCb2xkKCF0aGlzLmZvcm1hdHRpbmcuYm9sZCk7XG4gIH1cblxuICB0b2dnbGVVbmRvKCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuVW5kbygpO1xuICB9XG5cbiAgdG9nZ2xlUmVkbygpIHtcbiAgICBpZiAodGhpcy5mb3JtYXREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLlJlZG8oKTtcbiAgfVxuXG4gIHRvZ2dsZUl0YWxpYyhldmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRJdGFsaWMoIXRoaXMuZm9ybWF0dGluZy5pdGFsaWMpO1xuICB9XG5cbiAgdG9nZ2xlVW5kZXJsaW5lKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZm9ybWF0RGlzYWJsZWQpXG4gICAgICByZXR1cm47XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZih0aGlzLmlzSUUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UucmVzdG9yZVNlbGVjdGlvbigpO1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5jYXB0dXJlU2VsZWN0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdFVuZGVybGluZSghdGhpcy5mb3JtYXR0aW5nLnVuZGVybGluZSk7XG4gIH1cblxuICBoaWRlQWxsKCRldmVudCkge1xuICAgIGlmICgoJGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50ICYmICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5hdHRyaWJ1dGVzWyduYW1lJ10gJiZcbiAgICAgICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5hdHRyaWJ1dGVzWyduYW1lJ10udmFsdWUgPT09ICdidXR0b24nKSB8fFxuICAgICAgKCRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50ICYmXG4gICAgICAkZXZlbnQudGFyZ2V0LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5hdHRyaWJ1dGVzWyduYW1lJ10gJiZcbiAgICAgICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmF0dHJpYnV0ZXNbJ25hbWUnXS52YWx1ZSA9PT0gJ2J1dHRvbicpKSB7XG5cbiAgICAgIHRoaXMuX29uQ2xvc2VTZXJ2aWNlLmNsb3NlKHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbG9yUGlja2VyU2hvdyA9IGZhbHNlO1xuICAgIHRoaXMuYmdDb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICB0aGlzLl9vbkNsb3NlU2VydmljZS5jbG9zZSh0cnVlKTtcbiAgfVxuXG4gIHRvZ2dsZVN0cmlrZW91dChldmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRTdHJpa2VvdXQoIXRoaXMuZm9ybWF0dGluZy5zdHJpa2VvdXQpO1xuICB9XG5cbiAgdG9nZ2xlQWxpZ24oYWxpZ246IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKGFsaWduID09PSB0aGlzLmZvcm1hdHRpbmcuYWxpZ24pIHtcbiAgICAgIGFsaWduID0gJ2Z1bGwnO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRBbGlnbihhbGlnbik7XG4gICAgdGhpcy5mb3JtYXR0aW5nLmFsaWduID0gYWxpZ247XG4gIH1cblxuICB0b2dnbGVMaXN0KGxpc3Q6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAobGlzdCA9PT0gdGhpcy5mb3JtYXR0aW5nLmxpc3QpIHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5saXN0ID0gXCJcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmxpc3QgPSBsaXN0O1xuICAgIH1cbiAgICBpZih0aGlzLmlzSUUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UucmVzdG9yZVNlbGVjdGlvbigpO1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5jYXB0dXJlU2VsZWN0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdExpc3QobGlzdCk7XG4gIH1cblxuICBkb3dubG9hZEZpbGUoKSB7XG4gICAgaWYgKHRoaXMuZG93bmxvYWREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMuX2VkaXRvclNlcnZpY2UuZ2V0RG93bmxvYWRVcmwodGhpcy5jcmVkZW50aWFscykpO1xuICB9XG5cbiAgc2F2ZSgpe1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGlmKHRoaXMuY3JlZGVudGlhbHMpIHtcbiAgICAgIGlmICh0aGlzLmZpbGUuZ3VpZCA9PT0gXCJuZXcgZG9jdW1lbnQuZG9jeFwiKSB7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsKENvbW1vbk1vZGFscy5DcmVhdGVEb2N1bWVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNhdmVGaWxlKHRoaXMuY3JlZGVudGlhbHMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gc2F2ZUZpbGUoY3JlZGVudGlhbHM6IEZpbGVDcmVkZW50aWFscykge1xuICAgIGlmICghdGhpcy5maWxlIHx8ICF0aGlzLmZpbGUucGFnZXMpXG4gICAgICByZXR1cm47XG4gICAgY29uc3Qgc2F2ZUZpbGUgPSBuZXcgU2F2ZUZpbGUoY3JlZGVudGlhbHMuZ3VpZCwgY3JlZGVudGlhbHMucGFzc3dvcmQsIHRoaXMudGV4dEJhY2t1cCk7XG4gICAgdGhpcy5fZWRpdG9yU2VydmljZS5zYXZlKHNhdmVGaWxlKS5zdWJzY3JpYmUoKGxvYWRGaWxlOiBGaWxlRGVzY3JpcHRpb24pID0+IHtcbiAgICAgIHRoaXMubG9hZEZpbGUobG9hZEZpbGUpO1xuICAgICAgdGhpcy5jcmVkZW50aWFscyA9IG5ldyBGaWxlQ3JlZGVudGlhbHMobG9hZEZpbGUuZ3VpZCwgY3JlZGVudGlhbHMucGFzc3dvcmQpO1xuICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm9wZW4oQ29tbW9uTW9kYWxzLk9wZXJhdGlvblN1Y2Nlc3MpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpbnRGaWxlKCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGlmKHRoaXMuZmlsZS5wYWdlcykge1xuICAgICAgY29uc3QgcGFnZSA9IG5ldyBQYWdlTW9kZWw7XG4gICAgICBwYWdlLndpZHRoID0gNTk1O1xuICAgICAgcGFnZS5oZWlnaHQgPSA4NDI7XG4gICAgICAvLyB1c2luZyBvZiB0aGUgcmVwbGFjZSBpcyByZXF1aXJlZCB0byBmaXggaXNzdWUgd2l0aCBwYWRkaW5nIGZvciBpbnRpcmUgcHJpbnQgY29udGVudFxuICAgICAgcGFnZS5kYXRhID0gdGhpcy50ZXh0QmFja3VwLnJlcGxhY2UoJzwvc3R5bGU+JywgJ2JvZHkgeyBwYWRkaW5nOiA5NnB4OyB9IDwvc3R5bGU+Jyk7XG4gICAgICBjb25zdCBwcmludEh0bWwgPSBbcGFnZV07XG4gICAgICB0aGlzLl9yZW5kZXJQcmludFNlcnZpY2UuY2hhbmdlUGFnZXMocHJpbnRIdG1sKTtcbiAgICB9XG4gIH1cblxuICBvbkNsb3NlTW9kYWwoJGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZmlsZSAmJiAkZXZlbnQpIHtcbiAgICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgICAkKFwiLmRvY3VtZW50TWFpbkNvbnRlbnRcIikuYXR0cihcImNvbnRlbnRFZGl0YWJsZVwiLCBcInRydWVcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbGUucGFnZXNbMF0uZWRpdGFibGUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWFwcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvZWRpdG9yLyIsInNvdXJjZXMiOlsibGliL2VkaXRvci1hcHAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxlQUFlLEVBRWYsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsZUFBZSxFQUNmLFlBQVksRUFDWixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixxQkFBcUIsRUFDckIsY0FBYyxFQUNkLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ25CLE1BQU0sK0NBQStDLENBQUM7QUFFdkQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7O0lBQzNCLENBQUMsR0FBRyxNQUFNO0FBRWhCO0lBMEJFLDRCQUFvQixjQUE2QixFQUM3QixhQUEyQixFQUNuQyxhQUFrQyxFQUNsQyxrQkFBc0MsRUFDdEMsZUFBZ0MsRUFDeEIsY0FBNkIsRUFDN0Isa0JBQXFDLEVBQ3JDLHNCQUE2QyxFQUM3QyxlQUErQixFQUMvQixpQkFBbUMsRUFDbkMsWUFBNkIsRUFDN0IsbUJBQXVDLEVBQ3ZDLG1CQUF1QztRQVozRCxpQkFrSEM7UUFsSG1CLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBSTNCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsMkJBQXNCLEdBQXRC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NkI7O0lBQzdCLDhDQUE0Qzs7SUFDNUMsdUNBQW1COztJQUNuQix3Q0FBNEM7O0lBQzVDLDZDQUF5RDs7SUFDekQseUNBQWlEOztJQUNqRCwrQ0FBMEI7O0lBQzFCLDZDQUF3Qjs7SUFDeEIsb0NBQWU7Ozs7O0lBQ2Ysd0NBQTJCOzs7OztJQUMzQixrQ0FBcUI7O0lBQ3JCLHVDQUFtQjs7SUFDbkIsNENBQXNCOzs7OztJQUVWLDRDQUFxQzs7Ozs7SUFDckMsMkNBQW1DOzs7OztJQUluQyw0Q0FBcUM7Ozs7O0lBQ3JDLGdEQUE2Qzs7Ozs7SUFDN0Msb0RBQXFEOzs7OztJQUNyRCw2Q0FBdUM7Ozs7O0lBQ3ZDLCtDQUEyQzs7Ozs7SUFDM0MsMENBQXFDOzs7OztJQUNyQyxpREFBK0M7Ozs7O0lBQy9DLGlEQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFZGl0b3JTZXJ2aWNlfSBmcm9tIFwiLi9lZGl0b3Iuc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgRmlsZURlc2NyaXB0aW9uLFxuICBGaWxlTW9kZWwsXG4gIE1vZGFsU2VydmljZSxcbiAgVXBsb2FkRmlsZXNTZXJ2aWNlLFxuICBQYXNzd29yZFNlcnZpY2UsXG4gIEZpbGVDcmVkZW50aWFscyxcbiAgQ29tbW9uTW9kYWxzLFxuICBQYWdlTW9kZWwsXG4gIEZvcm1hdHRpbmdTZXJ2aWNlLFxuICBGb3JtYXR0aW5nLFxuICBCYWNrRm9ybWF0dGluZ1NlcnZpY2UsXG4gIE9uQ2xvc2VTZXJ2aWNlLFxuICBTYXZlRmlsZSxcbiAgU2VsZWN0aW9uU2VydmljZSxcbiAgRWRpdEh0bWxTZXJ2aWNlLFxuICBSZW5kZXJQcmludFNlcnZpY2UsXG4gIFdpbmRvd1NlcnZpY2UsXG4gIExvYWRpbmdNYXNrU2VydmljZSwgT3B0aW9uXG59IGZyb20gJ0Bncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50cyc7XG5pbXBvcnQge0VkaXRvckNvbmZpZ30gZnJvbSBcIi4vZWRpdG9yLWNvbmZpZ1wiO1xuaW1wb3J0IHtFZGl0b3JDb25maWdTZXJ2aWNlfSBmcm9tIFwiLi9lZGl0b3ItY29uZmlnLnNlcnZpY2VcIjtcbmltcG9ydCAqIGFzIGpxdWVyeSBmcm9tICdqcXVlcnknO1xuY29uc3QgJCA9IGpxdWVyeTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2QtZWRpdG9yLWFuZ3VsYXItcm9vdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3ItYXBwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLWFwcC5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvckFwcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCAge1xuICB0aXRsZSA9ICdlZGl0b3InO1xuICBmaWxlczogRmlsZU1vZGVsW10gPSBbXTtcbiAgZmlsZTogRmlsZURlc2NyaXB0aW9uO1xuICBlZGl0b3JDb25maWc6IEVkaXRvckNvbmZpZztcbiAgZm9ybWF0RGlzYWJsZWQgPSAhdGhpcy5maWxlO1xuICBkb3dubG9hZERpc2FibGVkID0gdHJ1ZTtcbiAgY3JlZGVudGlhbHM6IEZpbGVDcmVkZW50aWFscztcbiAgYnJvd3NlRmlsZXNNb2RhbCA9IENvbW1vbk1vZGFscy5Ccm93c2VGaWxlcztcbiAgaXNEZXNrdG9wOiBib29sZWFuO1xuICBmb3JtYXR0aW5nOiBGb3JtYXR0aW5nID0gRm9ybWF0dGluZy5ERUZBVUxUO1xuICBmb250U2l6ZU9wdGlvbnMgPSBGb3JtYXR0aW5nU2VydmljZS5nZXRGb250U2l6ZU9wdGlvbnMoKTtcbiAgZm9udE9wdGlvbnMgPSBGb3JtYXR0aW5nU2VydmljZS5nZXRGb250T3B0aW9ucygpO1xuICBiZ0NvbG9yUGlja2VyU2hvdyA9IGZhbHNlO1xuICBjb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgYWN0aXZlID0gZmFsc2U7XG4gIHByaXZhdGUgdGV4dEJhY2t1cDogc3RyaW5nO1xuICBwcml2YXRlIGlzSUUgPSBmYWxzZTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBmaWxlV2FzRHJvcHBlZDogZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgICAgICAgICAgIGNvbmZpZ1NlcnZpY2U6IEVkaXRvckNvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHVwbG9hZEZpbGVzU2VydmljZTogVXBsb2FkRmlsZXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwYXNzd29yZFNlcnZpY2U6IFBhc3N3b3JkU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd2luZG93U2VydmljZTogV2luZG93U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZm9ybWF0dGluZ1NlcnZpY2U6IEZvcm1hdHRpbmdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9iYWNrRm9ybWF0dGluZ1NlcnZpY2U6IEJhY2tGb3JtYXR0aW5nU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfb25DbG9zZVNlcnZpY2U6IE9uQ2xvc2VTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9zZWxlY3Rpb25TZXJ2aWNlOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9odG1sU2VydmljZTogRWRpdEh0bWxTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJQcmludFNlcnZpY2U6IFJlbmRlclByaW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9hZGluZ01hc2tTZXJ2aWNlOiBMb2FkaW5nTWFza1NlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuaXNJRSA9IC8qQGNjX29uIUAqL2ZhbHNlIHx8ICEhLyhNU0lFfFRyaWRlbnRcXC98RWRnZVxcLykvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgIGNvbmZpZ1NlcnZpY2UudXBkYXRlZENvbmZpZy5zdWJzY3JpYmUoKGVkaXRvckNvbmZpZykgPT4ge1xuICAgICAgdGhpcy5lZGl0b3JDb25maWcgPSBlZGl0b3JDb25maWc7XG4gICAgfSk7XG5cbiAgICB1cGxvYWRGaWxlc1NlcnZpY2UudXBsb2Fkc0NoYW5nZS5zdWJzY3JpYmUoKHVwbG9hZHMpID0+IHtcbiAgICAgIGlmICh1cGxvYWRzKSB7XG4gICAgICAgIGxldCBpOiBudW1iZXI7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB1cGxvYWRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGhpcy5fZWRpdG9yU2VydmljZS51cGxvYWQodXBsb2Fkcy5pdGVtKGkpLCAnJywgdGhpcy5lZGl0b3JDb25maWcucmV3cml0ZSkuc3Vic2NyaWJlKChvYmo6IEZpbGVDcmVkZW50aWFscykgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWxlV2FzRHJvcHBlZCA/IHRoaXMuc2VsZWN0RmlsZShvYmouZ3VpZCwgJycsICcnKSA6IHRoaXMuc2VsZWN0RGlyKCcnKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcGFzc3dvcmRTZXJ2aWNlLnBhc3NDaGFuZ2Uuc3Vic2NyaWJlKChwYXNzOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0RmlsZSh0aGlzLmNyZWRlbnRpYWxzLmd1aWQsIHBhc3MsIENvbW1vbk1vZGFscy5QYXNzd29yZFJlcXVpcmVkKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaXNEZXNrdG9wID0gX3dpbmRvd1NlcnZpY2UuaXNEZXNrdG9wKCk7XG4gICAgX3dpbmRvd1NlcnZpY2Uub25SZXNpemUuc3Vic2NyaWJlKCh3KSA9PiB7XG4gICAgICB0aGlzLmlzRGVza3RvcCA9IF93aW5kb3dTZXJ2aWNlLmlzRGVza3RvcCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEJvbGRDaGFuZ2Uuc3Vic2NyaWJlKChib2xkOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYm9sZCA9IGJvbGQ7XG4gICAgfSk7XG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEl0YWxpY0NoYW5nZS5zdWJzY3JpYmUoKGl0YWxpYzogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLml0YWxpYyA9IGl0YWxpYztcbiAgICB9KTtcbiAgICB0aGlzLl9iYWNrRm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0VW5kZXJsaW5lQ2hhbmdlLnN1YnNjcmliZSgodW5kZXJsaW5lOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcudW5kZXJsaW5lID0gdW5kZXJsaW5lO1xuICAgIH0pO1xuICAgIHRoaXMuX2JhY2tGb3JtYXR0aW5nU2VydmljZS5mb3JtYXRDb2xvckNoYW5nZS5zdWJzY3JpYmUoKGNvbG9yOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5jb2xvciA9IGNvbG9yO1xuICAgIH0pO1xuICAgIHRoaXMuX2JhY2tGb3JtYXR0aW5nU2VydmljZS5mb3JtYXRCZ0NvbG9yQ2hhbmdlLnN1YnNjcmliZSgoYmdjb2xvcjogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYmdDb2xvciA9IGJnY29sb3I7XG4gICAgfSk7XG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEZvbnRTaXplQ2hhbmdlLnN1YnNjcmliZSgoZm9udFNpemU6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmZvbnRTaXplID0gZm9udFNpemU7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9iYWNrRm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0Rm9udENoYW5nZS5zdWJzY3JpYmUoKGZvbnQ6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmZvbnQgPSBmb250O1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdFN0cmlrZW91dENoYW5nZS5zdWJzY3JpYmUoKHN0cmlrZW91dDogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLnN0cmlrZW91dCA9IHN0cmlrZW91dDtcbiAgICB9KTtcblxuICAgIHRoaXMuX2JhY2tGb3JtYXR0aW5nU2VydmljZS5mb3JtYXRBbGlnbkNoYW5nZS5zdWJzY3JpYmUoKGFsaWduOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5hbGlnbiA9IGFsaWduO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fYmFja0Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdExpc3RDaGFuZ2Uuc3Vic2NyaWJlKChsaXN0OiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5saXN0ID0gbGlzdDtcbiAgICB9KTtcblxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEJvbGRDaGFuZ2Uuc3Vic2NyaWJlKChib2xkOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYm9sZCA9IGJvbGQ7XG4gICAgfSk7XG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0SXRhbGljQ2hhbmdlLnN1YnNjcmliZSgoaXRhbGljOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuaXRhbGljID0gaXRhbGljO1xuICAgIH0pO1xuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdFVuZGVybGluZUNoYW5nZS5zdWJzY3JpYmUoKHVuZGVybGluZTogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLnVuZGVybGluZSA9IHVuZGVybGluZTtcbiAgICB9KTtcbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5mb3JtYXRDb2xvckNoYW5nZS5zdWJzY3JpYmUoKGNvbG9yOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5jb2xvciA9IGNvbG9yO1xuICAgIH0pO1xuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdEJnQ29sb3JDaGFuZ2Uuc3Vic2NyaWJlKChiZ2NvbG9yOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5iZ0NvbG9yID0gYmdjb2xvcjtcbiAgICB9KTtcbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5mb3JtYXRGb250U2l6ZUNoYW5nZS5zdWJzY3JpYmUoKGZvbnRTaXplOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5mb250U2l6ZSA9IGZvbnRTaXplO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0Rm9udENoYW5nZS5zdWJzY3JpYmUoKGZvbnQ6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmZvbnQgPSBmb250O1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0U3RyaWtlb3V0Q2hhbmdlLnN1YnNjcmliZSgoc3RyaWtlb3V0OiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuc3RyaWtlb3V0ID0gc3RyaWtlb3V0O1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuZm9ybWF0QWxpZ25DaGFuZ2Uuc3Vic2NyaWJlKChhbGlnbjogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRpbmcuYWxpZ24gPSBhbGlnbjtcbiAgICB9KTtcblxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmZvcm1hdExpc3RDaGFuZ2Uuc3Vic2NyaWJlKChsaXN0OiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5saXN0ID0gbGlzdDtcbiAgICB9KTtcblxuICAgIHRoaXMuX2h0bWxTZXJ2aWNlLmh0bWxDb250ZW50LnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAodGhpcy5maWxlICYmIHRoaXMuZmlsZS5wYWdlcykge1xuICAgICAgICB0aGlzLnRleHRCYWNrdXAgPSB0ZXh0O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZWRpdG9yQ29uZmlnLmRlZmF1bHREb2N1bWVudCAhPT0gXCJcIil7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdEZpbGUodGhpcy5lZGl0b3JDb25maWcuZGVmYXVsdERvY3VtZW50LCBcIlwiLCBcIlwiKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fbG9hZGluZ01hc2tTZXJ2aWNlXG4gICAgLm9uTG9hZGluZ0NoYW5nZWRcbiAgICAuc3Vic2NyaWJlKChsb2FkaW5nOiBib29sZWFuKSA9PiB0aGlzLmlzTG9hZGluZyA9IGxvYWRpbmcpO1xuICB9XG5cbiAgZ2V0IHJld3JpdGVDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcucmV3cml0ZSA6IHRydWU7XG4gIH1cblxuICBnZXQgZG93bmxvYWRDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcuZG93bmxvYWQgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHVwbG9hZENvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JDb25maWcgPyB0aGlzLmVkaXRvckNvbmZpZy51cGxvYWQgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHByaW50Q29uZmlnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRvckNvbmZpZyA/IHRoaXMuZWRpdG9yQ29uZmlnLnByaW50IDogdHJ1ZTtcbiAgfVxuXG4gIGdldCBicm93c2VDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcuYnJvd3NlIDogdHJ1ZTtcbiAgfVxuXG4gIGdldCBlbmFibGVSaWdodENsaWNrQ29uZmlnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRvckNvbmZpZyA/IHRoaXMuZWRpdG9yQ29uZmlnLmVuYWJsZVJpZ2h0Q2xpY2sgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHBhZ2VTZWxlY3RvckNvbmZpZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JDb25maWcgPyB0aGlzLmVkaXRvckNvbmZpZy5wYWdlU2VsZWN0b3IgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IGNyZWF0ZU5ld0ZpbGVDb25maWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yQ29uZmlnID8gdGhpcy5lZGl0b3JDb25maWcuY3JlYXRlTmV3RmlsZSA6IHRydWU7XG4gIH1cblxuICBvcGVuTW9kYWwoaWQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZpbGUpIHtcbiAgICAgIHRoaXMuZmlsZS5wYWdlc1swXS5lZGl0YWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9tb2RhbFNlcnZpY2Uub3BlbihpZCk7XG4gIH1cblxuICBvcGVuU2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybWF0RGlzYWJsZWQpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKENvbW1vbk1vZGFscy5DcmVhdGVEb2N1bWVudCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0RGlyKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5fZWRpdG9yU2VydmljZS5sb2FkRmlsZXMoJGV2ZW50KS5zdWJzY3JpYmUoKGZpbGVzOiBGaWxlTW9kZWxbXSkgPT4gdGhpcy5maWxlcyA9IGZpbGVzIHx8IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgcHRUb1B4KHB0OiBudW1iZXIpIHtcbiAgICAvL3B0ICogOTYgLyA3MiA9IHB4LlxuICAgIHJldHVybiBwdCAqIDk2IC8gNzI7XG4gIH1cblxuICBvblJpZ2h0Q2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlUmlnaHRDbGlja0NvbmZpZztcbiAgfVxuXG4gIGNyZWF0ZUZpbGUoKSB7XG4gICAgdGhpcy5maWxlID0gbmV3IEZpbGVEZXNjcmlwdGlvbigpO1xuICAgIGNvbnN0IHBhZ2UgPSBuZXcgUGFnZU1vZGVsO1xuICAgIHBhZ2Uud2lkdGggPSA1OTU7XG4gICAgcGFnZS5oZWlnaHQgPSA4NDI7XG4gICAgcGFnZS5kYXRhID0gJzwhRE9DVFlQRSBIVE1MPjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9XCJjb250ZW50LXR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+JztcbiAgICBwYWdlLm51bWJlciA9IDE7XG4gICAgcGFnZS5lZGl0YWJsZSA9IHRydWU7XG4gICAgdGhpcy5maWxlLnBhZ2VzID0gW107XG4gICAgdGhpcy5maWxlLnBhZ2VzLnB1c2gocGFnZSk7XG4gICAgdGhpcy5maWxlLmd1aWQgPSBcIm5ldyBkb2N1bWVudC5kb2N4XCI7XG4gICAgdGhpcy5jcmVkZW50aWFscyA9IG5ldyBGaWxlQ3JlZGVudGlhbHMoXCJuZXcgZG9jdW1lbnQuZG9jeFwiLCBcIlwiKTtcbiAgICB0aGlzLmZvcm1hdERpc2FibGVkID0gZmFsc2U7XG4gICAgdGhpcy5kb3dubG9hZERpc2FibGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHNlbGVjdEZpbGUoJGV2ZW50OiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIG1vZGFsSWQ6IHN0cmluZykge1xuICAgIHRoaXMuY3JlZGVudGlhbHMgPSBuZXcgRmlsZUNyZWRlbnRpYWxzKCRldmVudCwgcGFzc3dvcmQpO1xuICAgIHRoaXMuX2VkaXRvclNlcnZpY2UubG9hZEZpbGUodGhpcy5jcmVkZW50aWFscykuc3Vic2NyaWJlKChmaWxlOiBGaWxlRGVzY3JpcHRpb24pID0+IHtcbiAgICAgICAgdGhpcy5sb2FkRmlsZShmaWxlKTtcbiAgICAgICAgY29uc3QgaXNJRSA9IC8qQGNjX29uIUAqL2ZhbHNlIHx8ICEhLyhNU0lFfFRyaWRlbnRcXC98RWRnZVxcLykvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgICAgICBpZihpc0lFKSB7XG4gICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAobXV0YXRpb25zKSB7XG4gICAgICAgICAgICBpZigkKFwiLmRvY3VtZW50TWFpbkNvbnRlbnRcIikubGVuZ3RoID4gMCApe1xuICAgICAgICAgICAgICAkKFwiLmRvY3VtZW50TWFpbkNvbnRlbnRcIikuYXR0cihcImNvbnRlbnRFZGl0YWJsZVwiLCBcInRydWVcIik7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LCB7YXR0cmlidXRlczogZmFsc2UsIGNoaWxkTGlzdDogdHJ1ZSwgY2hhcmFjdGVyRGF0YTogZmFsc2UsIHN1YnRyZWU6IHRydWV9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5jbGVhckRhdGEoKTtcbiAgICB0aGlzLl9tb2RhbFNlcnZpY2UuY2xvc2UobW9kYWxJZCk7XG4gIH1cblxuICBmaWxlRHJvcHBlZCgkZXZlbnQpe1xuICAgIHRoaXMuZmlsZVdhc0Ryb3BwZWQgPSAkZXZlbnQ7XG4gIH1cblxuICBwcml2YXRlIGxvYWRGaWxlKGZpbGU6IEZpbGVEZXNjcmlwdGlvbikge1xuICAgIHRoaXMuZmlsZSA9IGZpbGU7XG4gICAgaWYgKHRoaXMuZmlsZSAmJiB0aGlzLmZpbGUucGFnZXNbMF0pIHtcbiAgICAgIHRoaXMuZmlsZS5wYWdlc1swXS5lZGl0YWJsZSA9IHRydWU7XG4gICAgICB0aGlzLmZpbGUucGFnZXNbMF0ud2lkdGggPSA1OTU7XG4gICAgICB0aGlzLmZpbGUucGFnZXNbMF0uaGVpZ2h0ID0gODQyO1xuICAgICAgdGhpcy50ZXh0QmFja3VwID0gdGhpcy5maWxlLnBhZ2VzWzBdLmRhdGE7XG4gICAgfVxuICAgIHRoaXMuZm9ybWF0RGlzYWJsZWQgPSAhdGhpcy5maWxlO1xuICAgIHRoaXMuZG93bmxvYWREaXNhYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckRhdGEoKSB7XG4gICAgaWYgKCF0aGlzLmZpbGUgfHwgIXRoaXMuZmlsZS5wYWdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHBhZ2Ugb2YgdGhpcy5maWxlLnBhZ2VzKSB7XG4gICAgICBwYWdlLmRhdGEgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHVwbG9hZCgkZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuX2VkaXRvclNlcnZpY2UudXBsb2FkKG51bGwsICRldmVudCwgdGhpcy5yZXdyaXRlQ29uZmlnKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3REaXIoJycpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0Rm9udFNpemUoJGV2ZW50OiBPcHRpb24pIHtcbiAgICBpZiAodGhpcy5mb3JtYXREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICAkKFwiLmdkLXdyYXBwZXJcIikub2ZmKFwia2V5dXBcIik7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRGb250U2l6ZSgkZXZlbnQudmFsdWUpO1xuICAgICQoXCIuZ2Qtd3JhcHBlclwiKS5vbihcImtleXVwXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGZvbnRFbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiZm9udFwiKTtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBmb250RWxlbWVudHMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgICAgaWYgKGZvbnRFbGVtZW50c1tpXS5nZXRBdHRyaWJ1dGUoJ3NpemUnKSA9PT0gXCI3XCIpIHtcbiAgICAgICAgICBmb250RWxlbWVudHNbaV0ucmVtb3ZlQXR0cmlidXRlKFwic2l6ZVwiKTtcbiAgICAgICAgICBmb250RWxlbWVudHNbaV0uc3R5bGUuZm9udFNpemUgPSAkZXZlbnQgKyBcInB4XCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdEZvbnQoJGV2ZW50OiBPcHRpb24pIHtcbiAgICBpZiAodGhpcy5mb3JtYXREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmNhcHR1cmVTZWxlY3Rpb24oKTtcbiAgICB9XG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuY2hhbmdlRm9ybWF0Rm9udCgkZXZlbnQudmFsdWUpO1xuICB9XG5cbiAgdG9nZ2xlQ29sb3JQaWNrZXIoYmc6IGJvb2xlYW4pIHtcblxuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmNhcHR1cmVTZWxlY3Rpb24oKTtcbiAgICB9XG4gICAgaWYgKGJnKSB7XG4gICAgICB0aGlzLmJnQ29sb3JQaWNrZXJTaG93ID0gIXRoaXMuYmdDb2xvclBpY2tlclNob3c7XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU2hvdyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU2hvdyA9ICF0aGlzLmNvbG9yUGlja2VyU2hvdztcbiAgICAgIHRoaXMuYmdDb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDb2xvcigkZXZlbnQ6IHN0cmluZykge1xuICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmNhcHR1cmVTZWxlY3Rpb24oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmdDb2xvclBpY2tlclNob3cpIHtcbiAgICAgIHRoaXMuYmdDb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdEJnQ29sb3IoJGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdENvbG9yKCRldmVudCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlQm9sZChldmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRCb2xkKCF0aGlzLmZvcm1hdHRpbmcuYm9sZCk7XG4gIH1cblxuICB0b2dnbGVVbmRvKCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5fZm9ybWF0dGluZ1NlcnZpY2UuVW5kbygpO1xuICB9XG5cbiAgdG9nZ2xlUmVkbygpIHtcbiAgICBpZiAodGhpcy5mb3JtYXREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLlJlZG8oKTtcbiAgfVxuXG4gIHRvZ2dsZUl0YWxpYyhldmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRJdGFsaWMoIXRoaXMuZm9ybWF0dGluZy5pdGFsaWMpO1xuICB9XG5cbiAgdG9nZ2xlVW5kZXJsaW5lKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZm9ybWF0RGlzYWJsZWQpXG4gICAgICByZXR1cm47XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZih0aGlzLmlzSUUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UucmVzdG9yZVNlbGVjdGlvbigpO1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5jYXB0dXJlU2VsZWN0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdFVuZGVybGluZSghdGhpcy5mb3JtYXR0aW5nLnVuZGVybGluZSk7XG4gIH1cblxuICBoaWRlQWxsKCRldmVudCkge1xuICAgIGlmICgoJGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50ICYmICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5hdHRyaWJ1dGVzWyduYW1lJ10gJiZcbiAgICAgICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5hdHRyaWJ1dGVzWyduYW1lJ10udmFsdWUgPT09ICdidXR0b24nKSB8fFxuICAgICAgKCRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50ICYmXG4gICAgICAkZXZlbnQudGFyZ2V0LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5hdHRyaWJ1dGVzWyduYW1lJ10gJiZcbiAgICAgICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmF0dHJpYnV0ZXNbJ25hbWUnXS52YWx1ZSA9PT0gJ2J1dHRvbicpKSB7XG5cbiAgICAgIHRoaXMuX29uQ2xvc2VTZXJ2aWNlLmNsb3NlKHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbG9yUGlja2VyU2hvdyA9IGZhbHNlO1xuICAgIHRoaXMuYmdDb2xvclBpY2tlclNob3cgPSBmYWxzZTtcbiAgICB0aGlzLl9vbkNsb3NlU2VydmljZS5jbG9zZSh0cnVlKTtcbiAgfVxuXG4gIHRvZ2dsZVN0cmlrZW91dChldmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYodGhpcy5pc0lFKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnJlc3RvcmVTZWxlY3Rpb24oKTtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuY2FwdHVyZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRTdHJpa2VvdXQoIXRoaXMuZm9ybWF0dGluZy5zdHJpa2VvdXQpO1xuICB9XG5cbiAgdG9nZ2xlQWxpZ24oYWxpZ246IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKGFsaWduID09PSB0aGlzLmZvcm1hdHRpbmcuYWxpZ24pIHtcbiAgICAgIGFsaWduID0gJ2Z1bGwnO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtYXR0aW5nU2VydmljZS5jaGFuZ2VGb3JtYXRBbGlnbihhbGlnbik7XG4gICAgdGhpcy5mb3JtYXR0aW5nLmFsaWduID0gYWxpZ247XG4gIH1cblxuICB0b2dnbGVMaXN0KGxpc3Q6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAobGlzdCA9PT0gdGhpcy5mb3JtYXR0aW5nLmxpc3QpIHtcbiAgICAgIHRoaXMuZm9ybWF0dGluZy5saXN0ID0gXCJcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtYXR0aW5nLmxpc3QgPSBsaXN0O1xuICAgIH1cbiAgICBpZih0aGlzLmlzSUUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UucmVzdG9yZVNlbGVjdGlvbigpO1xuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5jYXB0dXJlU2VsZWN0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuX2Zvcm1hdHRpbmdTZXJ2aWNlLmNoYW5nZUZvcm1hdExpc3QobGlzdCk7XG4gIH1cblxuICBkb3dubG9hZEZpbGUoKSB7XG4gICAgaWYgKHRoaXMuZG93bmxvYWREaXNhYmxlZClcbiAgICAgIHJldHVybjtcbiAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHRoaXMuX2VkaXRvclNlcnZpY2UuZ2V0RG93bmxvYWRVcmwodGhpcy5jcmVkZW50aWFscykpO1xuICB9XG5cbiAgc2F2ZSgpe1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGlmKHRoaXMuY3JlZGVudGlhbHMpIHtcbiAgICAgIGlmICh0aGlzLmZpbGUuZ3VpZCA9PT0gXCJuZXcgZG9jdW1lbnQuZG9jeFwiKSB7XG4gICAgICAgIHRoaXMub3Blbk1vZGFsKENvbW1vbk1vZGFscy5DcmVhdGVEb2N1bWVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNhdmVGaWxlKHRoaXMuY3JlZGVudGlhbHMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gc2F2ZUZpbGUoY3JlZGVudGlhbHM6IEZpbGVDcmVkZW50aWFscykge1xuICAgIGlmICghdGhpcy5maWxlIHx8ICF0aGlzLmZpbGUucGFnZXMpXG4gICAgICByZXR1cm47XG4gICAgY29uc3Qgc2F2ZUZpbGUgPSBuZXcgU2F2ZUZpbGUoY3JlZGVudGlhbHMuZ3VpZCwgY3JlZGVudGlhbHMucGFzc3dvcmQsIHRoaXMudGV4dEJhY2t1cCk7XG4gICAgdGhpcy5fZWRpdG9yU2VydmljZS5zYXZlKHNhdmVGaWxlKS5zdWJzY3JpYmUoKGxvYWRGaWxlOiBGaWxlRGVzY3JpcHRpb24pID0+IHtcbiAgICAgIHRoaXMubG9hZEZpbGUobG9hZEZpbGUpO1xuICAgICAgdGhpcy5jcmVkZW50aWFscyA9IG5ldyBGaWxlQ3JlZGVudGlhbHMobG9hZEZpbGUuZ3VpZCwgY3JlZGVudGlhbHMucGFzc3dvcmQpO1xuICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm9wZW4oQ29tbW9uTW9kYWxzLk9wZXJhdGlvblN1Y2Nlc3MpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpbnRGaWxlKCkge1xuICAgIGlmICh0aGlzLmZvcm1hdERpc2FibGVkKVxuICAgICAgcmV0dXJuO1xuICAgIGlmKHRoaXMuZmlsZS5wYWdlcykge1xuICAgICAgY29uc3QgcGFnZSA9IG5ldyBQYWdlTW9kZWw7XG4gICAgICBwYWdlLndpZHRoID0gNTk1O1xuICAgICAgcGFnZS5oZWlnaHQgPSA4NDI7XG4gICAgICAvLyB1c2luZyBvZiB0aGUgcmVwbGFjZSBpcyByZXF1aXJlZCB0byBmaXggaXNzdWUgd2l0aCBwYWRkaW5nIGZvciBpbnRpcmUgcHJpbnQgY29udGVudFxuICAgICAgcGFnZS5kYXRhID0gdGhpcy50ZXh0QmFja3VwLnJlcGxhY2UoJzwvc3R5bGU+JywgJ2JvZHkgeyBwYWRkaW5nOiA5NnB4OyB9IDwvc3R5bGU+Jyk7XG4gICAgICBjb25zdCBwcmludEh0bWwgPSBbcGFnZV07XG4gICAgICB0aGlzLl9yZW5kZXJQcmludFNlcnZpY2UuY2hhbmdlUGFnZXMocHJpbnRIdG1sKTtcbiAgICB9XG4gIH1cblxuICBvbkNsb3NlTW9kYWwoJGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZmlsZSAmJiAkZXZlbnQpIHtcbiAgICAgIGlmKHRoaXMuaXNJRSkge1xuICAgICAgICAkKFwiLmRvY3VtZW50TWFpbkNvbnRlbnRcIikuYXR0cihcImNvbnRlbnRFZGl0YWJsZVwiLCBcInRydWVcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbGUucGFnZXNbMF0uZWRpdGFibGUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXN0b3JlU2VsZWN0aW9uKCk7XG4gICAgfVxuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/dist/libs/editor/fesm2015/groupdocs.examples.angular-editor.js b/dist/libs/editor/fesm2015/groupdocs.examples.angular-editor.js index d13254461..d62c15b9d 100644 --- a/dist/libs/editor/fesm2015/groupdocs.examples.angular-editor.js +++ b/dist/libs/editor/fesm2015/groupdocs.examples.angular-editor.js @@ -900,7 +900,7 @@ class EditorAppComponent { EditorAppComponent.decorators = [ { type: Component, args: [{ selector: 'gd-editor-angular-root', - template: "\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n", + template: "\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n", styles: ["@import url(https://fonts.googleapis.com/css?family=Open+Sans&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.current-page-number{margin:0 15px;font-size:14px;color:#959da5}*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:text}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:calc(100% - 90px)}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{width:100%}/deep/ .gd-wrapper{padding:96px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;outline:0}/deep/ .dropdown-menu{min-width:unset!important}.format-select{margin:0 15px}.palette{position:absolute;top:90px;z-index:100}.background-color-picker{left:700px}.color-picker{left:750px}.bg-color-pic{border-radius:100%;border:1px solid #ccc;position:absolute;height:8px;width:8px;right:6px;bottom:6px}/deep/ .button.inactive{color:#ccc!important}/deep/ .gd-editor-buttons .button .tooltip{margin-top:45px;margin-left:-36px}/deep/ .gd-edit.active{background-color:#7e8991;border-radius:5px}/deep/ .gd-edit.active i{color:#fff}/deep/ .page{width:800px}/deep/ .save-as-button-icon{font-size:11px;left:22px!important;top:13px!important}.save-button{position:absolute;top:-5px;left:21px}@media (max-width:1037px){/deep/ .panzoom{zoom:.4;margin-top:160px}}"] }] } ]; diff --git a/dist/libs/editor/fesm2015/groupdocs.examples.angular-editor.js.map b/dist/libs/editor/fesm2015/groupdocs.examples.angular-editor.js.map index 1a112e981..297ea5e43 100644 --- a/dist/libs/editor/fesm2015/groupdocs.examples.angular-editor.js.map +++ b/dist/libs/editor/fesm2015/groupdocs.examples.angular-editor.js.map @@ -1 +1 @@ -{"version":3,"file":"groupdocs.examples.angular-editor.js","sources":["ng://@groupdocs.examples.angular/editor/lib/editor.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-app.component.ts","ng://@groupdocs.examples.angular/editor/lib/create.document-modal/create.document-modal.component.ts","ng://@groupdocs.examples.angular/editor/lib/editor.module.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getEditorApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getEditorApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getEditorApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n}\n","export class EditorConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n createNewFile: boolean;\n preloadPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {EditorConfig} from \"./editor-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorConfigService {\n private _editorConfig: BehaviorSubject = new BehaviorSubject(new EditorConfig());\n private _updatedConfig: Observable = this._editorConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.EDITOR_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: EditorConfig) => {\n const editorConfig = response;\n this._editorConfig.next(editorConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load editor config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Component, AfterViewInit, OnInit} from '@angular/core';\nimport {EditorService} from \"./editor.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n PasswordService,\n FileCredentials,\n CommonModals,\n PageModel,\n FormattingService,\n Formatting,\n BackFormattingService,\n OnCloseService,\n SaveFile,\n SelectionService,\n EditHtmlService,\n RenderPrintService,\n WindowService,\n LoadingMaskService, Option\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfig} from \"./editor-config\";\nimport {EditorConfigService} from \"./editor-config.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-editor-angular-root',\n templateUrl: './editor-app.component.html',\n styleUrls: ['./editor-app.component.less']\n})\nexport class EditorAppComponent implements OnInit, AfterViewInit {\n title = 'editor';\n files: FileModel[] = [];\n file: FileDescription;\n editorConfig: EditorConfig;\n formatDisabled = !this.file;\n downloadDisabled = true;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n isDesktop: boolean;\n formatting: Formatting = Formatting.DEFAULT;\n fontSizeOptions = FormattingService.getFontSizeOptions();\n fontOptions = FormattingService.getFontOptions();\n bgColorPickerShow = false;\n colorPickerShow = false;\n active = false;\n private textBackup: string;\n private isIE = false;\n isLoading: boolean;\n fileWasDropped: false;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n configService: EditorConfigService,\n uploadFilesService: UploadFilesService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _formattingService: FormattingService,\n private _backFormattingService: BackFormattingService,\n private _onCloseService: OnCloseService,\n private _selectionService: SelectionService,\n private _htmlService: EditHtmlService,\n private _renderPrintService: RenderPrintService,\n private _loadingMaskService: LoadingMaskService,\n ) {\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n configService.updatedConfig.subscribe((editorConfig) => {\n this.editorConfig = editorConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._editorService.upload(uploads.item(i), '', this.editorConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n });\n\n this._backFormattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._backFormattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._backFormattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._backFormattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._backFormattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._backFormattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._backFormattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._backFormattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._backFormattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._backFormattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._formattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._formattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._formattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._formattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._formattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._formattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._htmlService.htmlContent.subscribe((text: string) => {\n if (this.file && this.file.pages) {\n this.textBackup = text;\n }\n });\n }\n\n ngOnInit() {\n if (this.editorConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.editorConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n }\n\n get rewriteConfig(): boolean {\n return this.editorConfig ? this.editorConfig.rewrite : true;\n }\n\n get downloadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.editorConfig ? this.editorConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.editorConfig ? this.editorConfig.browse : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.editorConfig ? this.editorConfig.enableRightClick : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.editorConfig ? this.editorConfig.pageSelector : true;\n }\n\n get createNewFileConfig(): boolean {\n return this.editorConfig ? this.editorConfig.createNewFile : true;\n }\n\n openModal(id: string) {\n if (this.file) {\n this.file.pages[0].editable = false;\n }\n this._modalService.open(id);\n }\n\n openSave() {\n if (!this.formatDisabled) {\n this.openModal(CommonModals.CreateDocument);\n }\n }\n\n selectDir($event: string) {\n this._editorService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n createFile() {\n this.file = new FileDescription();\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n page.data = '';\n page.number = 1;\n page.editable = true;\n this.file.pages = [];\n this.file.pages.push(page);\n this.file.guid = \"new document.docx\";\n this.credentials = new FileCredentials(\"new document.docx\", \"\");\n this.formatDisabled = false;\n this.downloadDisabled = true;\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = new FileCredentials($event, password);\n this._editorService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.loadFile(file);\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n if(isIE) {\n const observer = new MutationObserver(function (mutations) {\n if($(\".documentMainContent\").length > 0 ){\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n observer.disconnect();\n }\n });\n observer.observe(document, {attributes: false, childList: true, characterData: false, subtree: true});\n }\n }\n );\n this.clearData();\n this._modalService.close(modalId);\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private loadFile(file: FileDescription) {\n this.file = file;\n if (this.file && this.file.pages[0]) {\n this.file.pages[0].editable = true;\n this.file.pages[0].width = 595;\n this.file.pages[0].height = 842;\n this.textBackup = this.file.pages[0].data;\n }\n this.formatDisabled = !this.file;\n this.downloadDisabled = false;\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n upload($event: string) {\n this._editorService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n selectFontSize($event: Option) {\n if (this.formatDisabled)\n return;\n $(\".gd-wrapper\").off(\"keyup\");\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFontSize($event.value);\n $(\".gd-wrapper\").on(\"keyup\", () => {\n const fontElements = document.getElementsByTagName(\"font\");\n for (let i = 0, len = fontElements.length; i < len; ++i) {\n if (fontElements[i].getAttribute('size') === \"7\") {\n fontElements[i].removeAttribute(\"size\");\n fontElements[i].style.fontSize = $event + \"px\";\n }\n }\n });\n }\n\n selectFont($event: Option) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFont($event.value);\n }\n\n toggleColorPicker(bg: boolean) {\n\n if (this.formatDisabled) {\n return;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (bg) {\n this.bgColorPickerShow = !this.bgColorPickerShow;\n this.colorPickerShow = false;\n } else {\n this.colorPickerShow = !this.colorPickerShow;\n this.bgColorPickerShow = false;\n }\n }\n\n selectColor($event: string) {\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (this.bgColorPickerShow) {\n this.bgColorPickerShow = false;\n this._formattingService.changeFormatBgColor($event);\n } else {\n this.colorPickerShow = false;\n this._formattingService.changeFormatColor($event);\n }\n }\n\n toggleBold(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatBold(!this.formatting.bold);\n }\n\n toggleUndo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Undo();\n }\n\n toggleRedo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Redo();\n }\n\n toggleItalic(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatItalic(!this.formatting.italic);\n }\n\n toggleUnderline(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatUnderline(!this.formatting.underline);\n }\n\n hideAll($event) {\n if (($event.target.parentElement && $event.target.parentElement.attributes['name'] &&\n $event.target.parentElement.attributes['name'].value === 'button') ||\n ($event.target.parentElement.parentElement &&\n $event.target.parentElement.parentElement.attributes['name'] &&\n $event.target.parentElement.parentElement.attributes['name'].value === 'button')) {\n\n this._onCloseService.close(true);\n return;\n }\n this.colorPickerShow = false;\n this.bgColorPickerShow = false;\n this._onCloseService.close(true);\n }\n\n toggleStrikeout(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatStrikeout(!this.formatting.strikeout);\n }\n\n toggleAlign(align: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if (align === this.formatting.align) {\n align = 'full';\n }\n this._formattingService.changeFormatAlign(align);\n this.formatting.align = align;\n }\n\n toggleList(list: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n\n if (list === this.formatting.list) {\n this.formatting.list = \"\";\n } else {\n this.formatting.list = list;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatList(list);\n }\n\n downloadFile() {\n if (this.downloadDisabled)\n return;\n window.location.assign(this._editorService.getDownloadUrl(this.credentials));\n }\n\n save(){\n if (this.formatDisabled)\n return;\n if(this.credentials) {\n if (this.file.guid === \"new document.docx\") {\n this.openModal(CommonModals.CreateDocument);\n } else {\n this.saveFile(this.credentials);\n }\n }\n }\n\n saveFile(credentials: FileCredentials) {\n if (!this.file || !this.file.pages)\n return;\n const saveFile = new SaveFile(credentials.guid, credentials.password, this.textBackup);\n this._editorService.save(saveFile).subscribe((loadFile: FileDescription) => {\n this.loadFile(loadFile);\n this.credentials = new FileCredentials(loadFile.guid, credentials.password);\n this._modalService.open(CommonModals.OperationSuccess);\n });\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if(this.file.pages) {\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n // using of the replace is required to fix issue with padding for intire print content\n page.data = this.textBackup.replace('', 'body { padding: 96px; } ');\n const printHtml = [page];\n this._renderPrintService.changePages(printHtml);\n }\n }\n\n onCloseModal($event) {\n if (this.file && $event) {\n if(this.isIE) {\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n } else {\n this.file.pages[0].editable = true;\n }\n this._selectionService.restoreSelection();\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileCredentials,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {EditorService} from \"../editor.service\";\n\n@Component({\n selector: 'gd-create-document-modal',\n templateUrl: './create.document-modal.component.html',\n styleUrls: ['./create.document-modal.component.less']\n})\nexport class CreateDocumentModalComponent implements OnInit {\n @Input() file: FileCredentials;\n @Output() savingFile: EventEmitter = new EventEmitter();\n @Output() closing = new EventEmitter();\n private _format: string;\n formats;\n FILE_NAME_REGEX = /^.*[\\\\\\/]/;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n get format() {\n return this._format;\n }\n\n ngOnInit() {\n this.loadFormats();\n }\n\n loadFormats() {\n this._editorService.getFormats().subscribe((formats: string[]) => {\n this.formats = this.formatOptions(formats);\n this._format = \"Docx\";\n }\n );\n }\n\n selectFormat($event: any) {\n this._format = $event.value;\n }\n\n createFormatOption(val: string) {\n return {value: val, name: val}\n }\n\n formatOptions(formats) {\n const allTypes = new Array();\n for (let i = 0; i < formats.length; i++) {\n allTypes.push(this.createFormatOption(formats[i]));\n }\n return allTypes;\n }\n\n save(name: string) {\n let fileName = \"\";\n if (name && name !== \"\") {\n fileName = name + \".\" + this._format;\n } else if (!this.file) {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"File name is empty\");\n }\n this._modalService.close(CommonModals.CreateDocument);\n const guid = fileName !== \"\" ? fileName : this.file.guid;\n const password = this.file ? this.file.password : '';\n this.savingFile.emit(new FileCredentials(guid, password));\n }\n\n refresh($event: boolean) {\n if (!$event) {\n this.closing.emit(true);\n }\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {EditorAppComponent} from './editor-app.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport {CreateDocumentModalComponent} from './create.document-modal/create.document-modal.component';\nimport {EditorService} from \"./editor.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService, Api\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfigService} from \"./editor-config.service\";\n\nexport function initializeApp(editorConfigService: EditorConfigService) {\n const result = () => editorConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations :[EditorAppComponent,CreateDocumentModalComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n CreateDocumentModalComponent,\n EditorAppComponent,\n CommonComponentsModule\n ],\n providers: [\n EditorService,\n ConfigService,\n EditorConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [EditorConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class EditorModule {\n constructor(){\n library.add(fas,far);\n }\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: EditorModule\n };\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"groupdocs.examples.angular-editor.js","sources":["ng://@groupdocs.examples.angular/editor/lib/editor.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-app.component.ts","ng://@groupdocs.examples.angular/editor/lib/create.document-modal/create.document-modal.component.ts","ng://@groupdocs.examples.angular/editor/lib/editor.module.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getEditorApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getEditorApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getEditorApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n}\n","export class EditorConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n createNewFile: boolean;\n preloadPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {EditorConfig} from \"./editor-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorConfigService {\n private _editorConfig: BehaviorSubject = new BehaviorSubject(new EditorConfig());\n private _updatedConfig: Observable = this._editorConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.EDITOR_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: EditorConfig) => {\n const editorConfig = response;\n this._editorConfig.next(editorConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load editor config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Component, AfterViewInit, OnInit} from '@angular/core';\nimport {EditorService} from \"./editor.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n PasswordService,\n FileCredentials,\n CommonModals,\n PageModel,\n FormattingService,\n Formatting,\n BackFormattingService,\n OnCloseService,\n SaveFile,\n SelectionService,\n EditHtmlService,\n RenderPrintService,\n WindowService,\n LoadingMaskService, Option\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfig} from \"./editor-config\";\nimport {EditorConfigService} from \"./editor-config.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-editor-angular-root',\n templateUrl: './editor-app.component.html',\n styleUrls: ['./editor-app.component.less']\n})\nexport class EditorAppComponent implements OnInit, AfterViewInit {\n title = 'editor';\n files: FileModel[] = [];\n file: FileDescription;\n editorConfig: EditorConfig;\n formatDisabled = !this.file;\n downloadDisabled = true;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n isDesktop: boolean;\n formatting: Formatting = Formatting.DEFAULT;\n fontSizeOptions = FormattingService.getFontSizeOptions();\n fontOptions = FormattingService.getFontOptions();\n bgColorPickerShow = false;\n colorPickerShow = false;\n active = false;\n private textBackup: string;\n private isIE = false;\n isLoading: boolean;\n fileWasDropped: false;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n configService: EditorConfigService,\n uploadFilesService: UploadFilesService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _formattingService: FormattingService,\n private _backFormattingService: BackFormattingService,\n private _onCloseService: OnCloseService,\n private _selectionService: SelectionService,\n private _htmlService: EditHtmlService,\n private _renderPrintService: RenderPrintService,\n private _loadingMaskService: LoadingMaskService,\n ) {\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n configService.updatedConfig.subscribe((editorConfig) => {\n this.editorConfig = editorConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._editorService.upload(uploads.item(i), '', this.editorConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n });\n\n this._backFormattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._backFormattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._backFormattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._backFormattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._backFormattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._backFormattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._backFormattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._backFormattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._backFormattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._backFormattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._formattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._formattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._formattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._formattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._formattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._formattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._htmlService.htmlContent.subscribe((text: string) => {\n if (this.file && this.file.pages) {\n this.textBackup = text;\n }\n });\n }\n\n ngOnInit() {\n if (this.editorConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.editorConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n }\n\n get rewriteConfig(): boolean {\n return this.editorConfig ? this.editorConfig.rewrite : true;\n }\n\n get downloadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.editorConfig ? this.editorConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.editorConfig ? this.editorConfig.browse : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.editorConfig ? this.editorConfig.enableRightClick : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.editorConfig ? this.editorConfig.pageSelector : true;\n }\n\n get createNewFileConfig(): boolean {\n return this.editorConfig ? this.editorConfig.createNewFile : true;\n }\n\n openModal(id: string) {\n if (this.file) {\n this.file.pages[0].editable = false;\n }\n this._modalService.open(id);\n }\n\n openSave() {\n if (!this.formatDisabled) {\n this.openModal(CommonModals.CreateDocument);\n }\n }\n\n selectDir($event: string) {\n this._editorService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n createFile() {\n this.file = new FileDescription();\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n page.data = '';\n page.number = 1;\n page.editable = true;\n this.file.pages = [];\n this.file.pages.push(page);\n this.file.guid = \"new document.docx\";\n this.credentials = new FileCredentials(\"new document.docx\", \"\");\n this.formatDisabled = false;\n this.downloadDisabled = true;\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = new FileCredentials($event, password);\n this._editorService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.loadFile(file);\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n if(isIE) {\n const observer = new MutationObserver(function (mutations) {\n if($(\".documentMainContent\").length > 0 ){\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n observer.disconnect();\n }\n });\n observer.observe(document, {attributes: false, childList: true, characterData: false, subtree: true});\n }\n }\n );\n this.clearData();\n this._modalService.close(modalId);\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private loadFile(file: FileDescription) {\n this.file = file;\n if (this.file && this.file.pages[0]) {\n this.file.pages[0].editable = true;\n this.file.pages[0].width = 595;\n this.file.pages[0].height = 842;\n this.textBackup = this.file.pages[0].data;\n }\n this.formatDisabled = !this.file;\n this.downloadDisabled = false;\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n upload($event: string) {\n this._editorService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n selectFontSize($event: Option) {\n if (this.formatDisabled)\n return;\n $(\".gd-wrapper\").off(\"keyup\");\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFontSize($event.value);\n $(\".gd-wrapper\").on(\"keyup\", () => {\n const fontElements = document.getElementsByTagName(\"font\");\n for (let i = 0, len = fontElements.length; i < len; ++i) {\n if (fontElements[i].getAttribute('size') === \"7\") {\n fontElements[i].removeAttribute(\"size\");\n fontElements[i].style.fontSize = $event + \"px\";\n }\n }\n });\n }\n\n selectFont($event: Option) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFont($event.value);\n }\n\n toggleColorPicker(bg: boolean) {\n\n if (this.formatDisabled) {\n return;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (bg) {\n this.bgColorPickerShow = !this.bgColorPickerShow;\n this.colorPickerShow = false;\n } else {\n this.colorPickerShow = !this.colorPickerShow;\n this.bgColorPickerShow = false;\n }\n }\n\n selectColor($event: string) {\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (this.bgColorPickerShow) {\n this.bgColorPickerShow = false;\n this._formattingService.changeFormatBgColor($event);\n } else {\n this.colorPickerShow = false;\n this._formattingService.changeFormatColor($event);\n }\n }\n\n toggleBold(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatBold(!this.formatting.bold);\n }\n\n toggleUndo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Undo();\n }\n\n toggleRedo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Redo();\n }\n\n toggleItalic(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatItalic(!this.formatting.italic);\n }\n\n toggleUnderline(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatUnderline(!this.formatting.underline);\n }\n\n hideAll($event) {\n if (($event.target.parentElement && $event.target.parentElement.attributes['name'] &&\n $event.target.parentElement.attributes['name'].value === 'button') ||\n ($event.target.parentElement.parentElement &&\n $event.target.parentElement.parentElement.attributes['name'] &&\n $event.target.parentElement.parentElement.attributes['name'].value === 'button')) {\n\n this._onCloseService.close(true);\n return;\n }\n this.colorPickerShow = false;\n this.bgColorPickerShow = false;\n this._onCloseService.close(true);\n }\n\n toggleStrikeout(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatStrikeout(!this.formatting.strikeout);\n }\n\n toggleAlign(align: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if (align === this.formatting.align) {\n align = 'full';\n }\n this._formattingService.changeFormatAlign(align);\n this.formatting.align = align;\n }\n\n toggleList(list: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n\n if (list === this.formatting.list) {\n this.formatting.list = \"\";\n } else {\n this.formatting.list = list;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatList(list);\n }\n\n downloadFile() {\n if (this.downloadDisabled)\n return;\n window.location.assign(this._editorService.getDownloadUrl(this.credentials));\n }\n\n save(){\n if (this.formatDisabled)\n return;\n if(this.credentials) {\n if (this.file.guid === \"new document.docx\") {\n this.openModal(CommonModals.CreateDocument);\n } else {\n this.saveFile(this.credentials);\n }\n }\n }\n\n saveFile(credentials: FileCredentials) {\n if (!this.file || !this.file.pages)\n return;\n const saveFile = new SaveFile(credentials.guid, credentials.password, this.textBackup);\n this._editorService.save(saveFile).subscribe((loadFile: FileDescription) => {\n this.loadFile(loadFile);\n this.credentials = new FileCredentials(loadFile.guid, credentials.password);\n this._modalService.open(CommonModals.OperationSuccess);\n });\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if(this.file.pages) {\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n // using of the replace is required to fix issue with padding for intire print content\n page.data = this.textBackup.replace('', 'body { padding: 96px; } ');\n const printHtml = [page];\n this._renderPrintService.changePages(printHtml);\n }\n }\n\n onCloseModal($event) {\n if (this.file && $event) {\n if(this.isIE) {\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n } else {\n this.file.pages[0].editable = true;\n }\n this._selectionService.restoreSelection();\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileCredentials,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {EditorService} from \"../editor.service\";\n\n@Component({\n selector: 'gd-create-document-modal',\n templateUrl: './create.document-modal.component.html',\n styleUrls: ['./create.document-modal.component.less']\n})\nexport class CreateDocumentModalComponent implements OnInit {\n @Input() file: FileCredentials;\n @Output() savingFile: EventEmitter = new EventEmitter();\n @Output() closing = new EventEmitter();\n private _format: string;\n formats;\n FILE_NAME_REGEX = /^.*[\\\\\\/]/;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n get format() {\n return this._format;\n }\n\n ngOnInit() {\n this.loadFormats();\n }\n\n loadFormats() {\n this._editorService.getFormats().subscribe((formats: string[]) => {\n this.formats = this.formatOptions(formats);\n this._format = \"Docx\";\n }\n );\n }\n\n selectFormat($event: any) {\n this._format = $event.value;\n }\n\n createFormatOption(val: string) {\n return {value: val, name: val}\n }\n\n formatOptions(formats) {\n const allTypes = new Array();\n for (let i = 0; i < formats.length; i++) {\n allTypes.push(this.createFormatOption(formats[i]));\n }\n return allTypes;\n }\n\n save(name: string) {\n let fileName = \"\";\n if (name && name !== \"\") {\n fileName = name + \".\" + this._format;\n } else if (!this.file) {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"File name is empty\");\n }\n this._modalService.close(CommonModals.CreateDocument);\n const guid = fileName !== \"\" ? fileName : this.file.guid;\n const password = this.file ? this.file.password : '';\n this.savingFile.emit(new FileCredentials(guid, password));\n }\n\n refresh($event: boolean) {\n if (!$event) {\n this.closing.emit(true);\n }\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {EditorAppComponent} from './editor-app.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport {CreateDocumentModalComponent} from './create.document-modal/create.document-modal.component';\nimport {EditorService} from \"./editor.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService, Api\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfigService} from \"./editor-config.service\";\n\nexport function initializeApp(editorConfigService: EditorConfigService) {\n const result = () => editorConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations :[EditorAppComponent,CreateDocumentModalComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n CreateDocumentModalComponent,\n EditorAppComponent,\n CommonComponentsModule\n ],\n providers: [\n EditorService,\n ConfigService,\n EditorConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [EditorConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class EditorModule {\n constructor(){\n library.add(fas,far);\n }\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: EditorModule\n };\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/libs/editor/fesm5/groupdocs.examples.angular-editor.js b/dist/libs/editor/fesm5/groupdocs.examples.angular-editor.js index a456f9f28..a4d2b0f81 100644 --- a/dist/libs/editor/fesm5/groupdocs.examples.angular-editor.js +++ b/dist/libs/editor/fesm5/groupdocs.examples.angular-editor.js @@ -1083,7 +1083,7 @@ var EditorAppComponent = /** @class */ (function () { EditorAppComponent.decorators = [ { type: Component, args: [{ selector: 'gd-editor-angular-root', - template: "\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n", + template: "\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n", styles: ["@import url(https://fonts.googleapis.com/css?family=Open+Sans&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.current-page-number{margin:0 15px;font-size:14px;color:#959da5}*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:text}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:calc(100% - 90px)}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{width:100%}/deep/ .gd-wrapper{padding:96px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;outline:0}/deep/ .dropdown-menu{min-width:unset!important}.format-select{margin:0 15px}.palette{position:absolute;top:90px;z-index:100}.background-color-picker{left:700px}.color-picker{left:750px}.bg-color-pic{border-radius:100%;border:1px solid #ccc;position:absolute;height:8px;width:8px;right:6px;bottom:6px}/deep/ .button.inactive{color:#ccc!important}/deep/ .gd-editor-buttons .button .tooltip{margin-top:45px;margin-left:-36px}/deep/ .gd-edit.active{background-color:#7e8991;border-radius:5px}/deep/ .gd-edit.active i{color:#fff}/deep/ .page{width:800px}/deep/ .save-as-button-icon{font-size:11px;left:22px!important;top:13px!important}.save-button{position:absolute;top:-5px;left:21px}@media (max-width:1037px){/deep/ .panzoom{zoom:.4;margin-top:160px}}"] }] } ]; diff --git a/dist/libs/editor/fesm5/groupdocs.examples.angular-editor.js.map b/dist/libs/editor/fesm5/groupdocs.examples.angular-editor.js.map index e2976096d..e82950583 100644 --- a/dist/libs/editor/fesm5/groupdocs.examples.angular-editor.js.map +++ b/dist/libs/editor/fesm5/groupdocs.examples.angular-editor.js.map @@ -1 +1 @@ -{"version":3,"file":"groupdocs.examples.angular-editor.js","sources":["ng://@groupdocs.examples.angular/editor/lib/editor.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-app.component.ts","ng://@groupdocs.examples.angular/editor/lib/create.document-modal/create.document-modal.component.ts","ng://@groupdocs.examples.angular/editor/lib/editor.module.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getEditorApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getEditorApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getEditorApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n}\n","export class EditorConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n createNewFile: boolean;\n preloadPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {EditorConfig} from \"./editor-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorConfigService {\n private _editorConfig: BehaviorSubject = new BehaviorSubject(new EditorConfig());\n private _updatedConfig: Observable = this._editorConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.EDITOR_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: EditorConfig) => {\n const editorConfig = response;\n this._editorConfig.next(editorConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load editor config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Component, AfterViewInit, OnInit} from '@angular/core';\nimport {EditorService} from \"./editor.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n PasswordService,\n FileCredentials,\n CommonModals,\n PageModel,\n FormattingService,\n Formatting,\n BackFormattingService,\n OnCloseService,\n SaveFile,\n SelectionService,\n EditHtmlService,\n RenderPrintService,\n WindowService,\n LoadingMaskService, Option\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfig} from \"./editor-config\";\nimport {EditorConfigService} from \"./editor-config.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-editor-angular-root',\n templateUrl: './editor-app.component.html',\n styleUrls: ['./editor-app.component.less']\n})\nexport class EditorAppComponent implements OnInit, AfterViewInit {\n title = 'editor';\n files: FileModel[] = [];\n file: FileDescription;\n editorConfig: EditorConfig;\n formatDisabled = !this.file;\n downloadDisabled = true;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n isDesktop: boolean;\n formatting: Formatting = Formatting.DEFAULT;\n fontSizeOptions = FormattingService.getFontSizeOptions();\n fontOptions = FormattingService.getFontOptions();\n bgColorPickerShow = false;\n colorPickerShow = false;\n active = false;\n private textBackup: string;\n private isIE = false;\n isLoading: boolean;\n fileWasDropped: false;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n configService: EditorConfigService,\n uploadFilesService: UploadFilesService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _formattingService: FormattingService,\n private _backFormattingService: BackFormattingService,\n private _onCloseService: OnCloseService,\n private _selectionService: SelectionService,\n private _htmlService: EditHtmlService,\n private _renderPrintService: RenderPrintService,\n private _loadingMaskService: LoadingMaskService,\n ) {\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n configService.updatedConfig.subscribe((editorConfig) => {\n this.editorConfig = editorConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._editorService.upload(uploads.item(i), '', this.editorConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n });\n\n this._backFormattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._backFormattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._backFormattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._backFormattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._backFormattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._backFormattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._backFormattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._backFormattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._backFormattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._backFormattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._formattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._formattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._formattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._formattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._formattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._formattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._htmlService.htmlContent.subscribe((text: string) => {\n if (this.file && this.file.pages) {\n this.textBackup = text;\n }\n });\n }\n\n ngOnInit() {\n if (this.editorConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.editorConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n }\n\n get rewriteConfig(): boolean {\n return this.editorConfig ? this.editorConfig.rewrite : true;\n }\n\n get downloadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.editorConfig ? this.editorConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.editorConfig ? this.editorConfig.browse : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.editorConfig ? this.editorConfig.enableRightClick : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.editorConfig ? this.editorConfig.pageSelector : true;\n }\n\n get createNewFileConfig(): boolean {\n return this.editorConfig ? this.editorConfig.createNewFile : true;\n }\n\n openModal(id: string) {\n if (this.file) {\n this.file.pages[0].editable = false;\n }\n this._modalService.open(id);\n }\n\n openSave() {\n if (!this.formatDisabled) {\n this.openModal(CommonModals.CreateDocument);\n }\n }\n\n selectDir($event: string) {\n this._editorService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n createFile() {\n this.file = new FileDescription();\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n page.data = '';\n page.number = 1;\n page.editable = true;\n this.file.pages = [];\n this.file.pages.push(page);\n this.file.guid = \"new document.docx\";\n this.credentials = new FileCredentials(\"new document.docx\", \"\");\n this.formatDisabled = false;\n this.downloadDisabled = true;\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = new FileCredentials($event, password);\n this._editorService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.loadFile(file);\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n if(isIE) {\n const observer = new MutationObserver(function (mutations) {\n if($(\".documentMainContent\").length > 0 ){\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n observer.disconnect();\n }\n });\n observer.observe(document, {attributes: false, childList: true, characterData: false, subtree: true});\n }\n }\n );\n this.clearData();\n this._modalService.close(modalId);\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private loadFile(file: FileDescription) {\n this.file = file;\n if (this.file && this.file.pages[0]) {\n this.file.pages[0].editable = true;\n this.file.pages[0].width = 595;\n this.file.pages[0].height = 842;\n this.textBackup = this.file.pages[0].data;\n }\n this.formatDisabled = !this.file;\n this.downloadDisabled = false;\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n upload($event: string) {\n this._editorService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n selectFontSize($event: Option) {\n if (this.formatDisabled)\n return;\n $(\".gd-wrapper\").off(\"keyup\");\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFontSize($event.value);\n $(\".gd-wrapper\").on(\"keyup\", () => {\n const fontElements = document.getElementsByTagName(\"font\");\n for (let i = 0, len = fontElements.length; i < len; ++i) {\n if (fontElements[i].getAttribute('size') === \"7\") {\n fontElements[i].removeAttribute(\"size\");\n fontElements[i].style.fontSize = $event + \"px\";\n }\n }\n });\n }\n\n selectFont($event: Option) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFont($event.value);\n }\n\n toggleColorPicker(bg: boolean) {\n\n if (this.formatDisabled) {\n return;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (bg) {\n this.bgColorPickerShow = !this.bgColorPickerShow;\n this.colorPickerShow = false;\n } else {\n this.colorPickerShow = !this.colorPickerShow;\n this.bgColorPickerShow = false;\n }\n }\n\n selectColor($event: string) {\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (this.bgColorPickerShow) {\n this.bgColorPickerShow = false;\n this._formattingService.changeFormatBgColor($event);\n } else {\n this.colorPickerShow = false;\n this._formattingService.changeFormatColor($event);\n }\n }\n\n toggleBold(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatBold(!this.formatting.bold);\n }\n\n toggleUndo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Undo();\n }\n\n toggleRedo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Redo();\n }\n\n toggleItalic(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatItalic(!this.formatting.italic);\n }\n\n toggleUnderline(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatUnderline(!this.formatting.underline);\n }\n\n hideAll($event) {\n if (($event.target.parentElement && $event.target.parentElement.attributes['name'] &&\n $event.target.parentElement.attributes['name'].value === 'button') ||\n ($event.target.parentElement.parentElement &&\n $event.target.parentElement.parentElement.attributes['name'] &&\n $event.target.parentElement.parentElement.attributes['name'].value === 'button')) {\n\n this._onCloseService.close(true);\n return;\n }\n this.colorPickerShow = false;\n this.bgColorPickerShow = false;\n this._onCloseService.close(true);\n }\n\n toggleStrikeout(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatStrikeout(!this.formatting.strikeout);\n }\n\n toggleAlign(align: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if (align === this.formatting.align) {\n align = 'full';\n }\n this._formattingService.changeFormatAlign(align);\n this.formatting.align = align;\n }\n\n toggleList(list: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n\n if (list === this.formatting.list) {\n this.formatting.list = \"\";\n } else {\n this.formatting.list = list;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatList(list);\n }\n\n downloadFile() {\n if (this.downloadDisabled)\n return;\n window.location.assign(this._editorService.getDownloadUrl(this.credentials));\n }\n\n save(){\n if (this.formatDisabled)\n return;\n if(this.credentials) {\n if (this.file.guid === \"new document.docx\") {\n this.openModal(CommonModals.CreateDocument);\n } else {\n this.saveFile(this.credentials);\n }\n }\n }\n\n saveFile(credentials: FileCredentials) {\n if (!this.file || !this.file.pages)\n return;\n const saveFile = new SaveFile(credentials.guid, credentials.password, this.textBackup);\n this._editorService.save(saveFile).subscribe((loadFile: FileDescription) => {\n this.loadFile(loadFile);\n this.credentials = new FileCredentials(loadFile.guid, credentials.password);\n this._modalService.open(CommonModals.OperationSuccess);\n });\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if(this.file.pages) {\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n // using of the replace is required to fix issue with padding for intire print content\n page.data = this.textBackup.replace('', 'body { padding: 96px; } ');\n const printHtml = [page];\n this._renderPrintService.changePages(printHtml);\n }\n }\n\n onCloseModal($event) {\n if (this.file && $event) {\n if(this.isIE) {\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n } else {\n this.file.pages[0].editable = true;\n }\n this._selectionService.restoreSelection();\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileCredentials,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {EditorService} from \"../editor.service\";\n\n@Component({\n selector: 'gd-create-document-modal',\n templateUrl: './create.document-modal.component.html',\n styleUrls: ['./create.document-modal.component.less']\n})\nexport class CreateDocumentModalComponent implements OnInit {\n @Input() file: FileCredentials;\n @Output() savingFile: EventEmitter = new EventEmitter();\n @Output() closing = new EventEmitter();\n private _format: string;\n formats;\n FILE_NAME_REGEX = /^.*[\\\\\\/]/;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n get format() {\n return this._format;\n }\n\n ngOnInit() {\n this.loadFormats();\n }\n\n loadFormats() {\n this._editorService.getFormats().subscribe((formats: string[]) => {\n this.formats = this.formatOptions(formats);\n this._format = \"Docx\";\n }\n );\n }\n\n selectFormat($event: any) {\n this._format = $event.value;\n }\n\n createFormatOption(val: string) {\n return {value: val, name: val}\n }\n\n formatOptions(formats) {\n const allTypes = new Array();\n for (let i = 0; i < formats.length; i++) {\n allTypes.push(this.createFormatOption(formats[i]));\n }\n return allTypes;\n }\n\n save(name: string) {\n let fileName = \"\";\n if (name && name !== \"\") {\n fileName = name + \".\" + this._format;\n } else if (!this.file) {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"File name is empty\");\n }\n this._modalService.close(CommonModals.CreateDocument);\n const guid = fileName !== \"\" ? fileName : this.file.guid;\n const password = this.file ? this.file.password : '';\n this.savingFile.emit(new FileCredentials(guid, password));\n }\n\n refresh($event: boolean) {\n if (!$event) {\n this.closing.emit(true);\n }\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {EditorAppComponent} from './editor-app.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport {CreateDocumentModalComponent} from './create.document-modal/create.document-modal.component';\nimport {EditorService} from \"./editor.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService, Api\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfigService} from \"./editor-config.service\";\n\nexport function initializeApp(editorConfigService: EditorConfigService) {\n const result = () => editorConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations :[EditorAppComponent,CreateDocumentModalComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n CreateDocumentModalComponent,\n EditorAppComponent,\n CommonComponentsModule\n ],\n providers: [\n EditorService,\n ConfigService,\n EditorConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [EditorConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class EditorModule {\n constructor(){\n library.add(fas,far);\n }\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: EditorModule\n };\n }\n}\n"],"names":["tslib_1.__values"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"groupdocs.examples.angular-editor.js","sources":["ng://@groupdocs.examples.angular/editor/lib/editor.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.ts","ng://@groupdocs.examples.angular/editor/lib/editor-config.service.ts","ng://@groupdocs.examples.angular/editor/lib/editor-app.component.ts","ng://@groupdocs.examples.angular/editor/lib/create.document-modal/create.document-modal.component.ts","ng://@groupdocs.examples.angular/editor/lib/editor.module.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {\n Api, ConfigService, FileCredentials, SaveFile\n} from \"@groupdocs.examples.angular/common-components\"\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n getFormats() {\n return this._http.get(this._config.getEditorApiEndpoint() + Api.LOAD_FORMATS, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getEditorApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n save(file: SaveFile) {\n return this._http.post(this._config.getEditorApiEndpoint() + Api.SAVE_FILE, file, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getEditorApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n}\n","export class EditorConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n createNewFile: boolean;\n preloadPageCount: 0;\n}\n","import {Injectable} from '@angular/core';\nimport {EditorConfig} from \"./editor-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorConfigService {\n private _editorConfig: BehaviorSubject = new BehaviorSubject(new EditorConfig());\n private _updatedConfig: Observable = this._editorConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.EDITOR_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: EditorConfig) => {\n const editorConfig = response;\n this._editorConfig.next(editorConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load editor config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {Component, AfterViewInit, OnInit} from '@angular/core';\nimport {EditorService} from \"./editor.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n PasswordService,\n FileCredentials,\n CommonModals,\n PageModel,\n FormattingService,\n Formatting,\n BackFormattingService,\n OnCloseService,\n SaveFile,\n SelectionService,\n EditHtmlService,\n RenderPrintService,\n WindowService,\n LoadingMaskService, Option\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfig} from \"./editor-config\";\nimport {EditorConfigService} from \"./editor-config.service\";\nimport * as jquery from 'jquery';\nconst $ = jquery;\n\n@Component({\n selector: 'gd-editor-angular-root',\n templateUrl: './editor-app.component.html',\n styleUrls: ['./editor-app.component.less']\n})\nexport class EditorAppComponent implements OnInit, AfterViewInit {\n title = 'editor';\n files: FileModel[] = [];\n file: FileDescription;\n editorConfig: EditorConfig;\n formatDisabled = !this.file;\n downloadDisabled = true;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n isDesktop: boolean;\n formatting: Formatting = Formatting.DEFAULT;\n fontSizeOptions = FormattingService.getFontSizeOptions();\n fontOptions = FormattingService.getFontOptions();\n bgColorPickerShow = false;\n colorPickerShow = false;\n active = false;\n private textBackup: string;\n private isIE = false;\n isLoading: boolean;\n fileWasDropped: false;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n configService: EditorConfigService,\n uploadFilesService: UploadFilesService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _formattingService: FormattingService,\n private _backFormattingService: BackFormattingService,\n private _onCloseService: OnCloseService,\n private _selectionService: SelectionService,\n private _htmlService: EditHtmlService,\n private _renderPrintService: RenderPrintService,\n private _loadingMaskService: LoadingMaskService,\n ) {\n this.isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n configService.updatedConfig.subscribe((editorConfig) => {\n this.editorConfig = editorConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._editorService.upload(uploads.item(i), '', this.editorConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n });\n\n this._backFormattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._backFormattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._backFormattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._backFormattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._backFormattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._backFormattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._backFormattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._backFormattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._backFormattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._backFormattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._formattingService.formatBoldChange.subscribe((bold: boolean) => {\n this.formatting.bold = bold;\n });\n this._formattingService.formatItalicChange.subscribe((italic: boolean) => {\n this.formatting.italic = italic;\n });\n this._formattingService.formatUnderlineChange.subscribe((underline: boolean) => {\n this.formatting.underline = underline;\n });\n this._formattingService.formatColorChange.subscribe((color: string) => {\n this.formatting.color = color;\n });\n this._formattingService.formatBgColorChange.subscribe((bgcolor: string) => {\n this.formatting.bgColor = bgcolor;\n });\n this._formattingService.formatFontSizeChange.subscribe((fontSize: number) => {\n this.formatting.fontSize = fontSize;\n });\n\n this._formattingService.formatFontChange.subscribe((font: string) => {\n this.formatting.font = font;\n });\n\n this._formattingService.formatStrikeoutChange.subscribe((strikeout: boolean) => {\n this.formatting.strikeout = strikeout;\n });\n\n this._formattingService.formatAlignChange.subscribe((align: string) => {\n this.formatting.align = align;\n });\n\n this._formattingService.formatListChange.subscribe((list: string) => {\n this.formatting.list = list;\n });\n\n this._htmlService.htmlContent.subscribe((text: string) => {\n if (this.file && this.file.pages) {\n this.textBackup = text;\n }\n });\n }\n\n ngOnInit() {\n if (this.editorConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.editorConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n }\n\n get rewriteConfig(): boolean {\n return this.editorConfig ? this.editorConfig.rewrite : true;\n }\n\n get downloadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.editorConfig ? this.editorConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.editorConfig ? this.editorConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.editorConfig ? this.editorConfig.browse : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.editorConfig ? this.editorConfig.enableRightClick : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.editorConfig ? this.editorConfig.pageSelector : true;\n }\n\n get createNewFileConfig(): boolean {\n return this.editorConfig ? this.editorConfig.createNewFile : true;\n }\n\n openModal(id: string) {\n if (this.file) {\n this.file.pages[0].editable = false;\n }\n this._modalService.open(id);\n }\n\n openSave() {\n if (!this.formatDisabled) {\n this.openModal(CommonModals.CreateDocument);\n }\n }\n\n selectDir($event: string) {\n this._editorService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n createFile() {\n this.file = new FileDescription();\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n page.data = '';\n page.number = 1;\n page.editable = true;\n this.file.pages = [];\n this.file.pages.push(page);\n this.file.guid = \"new document.docx\";\n this.credentials = new FileCredentials(\"new document.docx\", \"\");\n this.formatDisabled = false;\n this.downloadDisabled = true;\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = new FileCredentials($event, password);\n this._editorService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.loadFile(file);\n const isIE = /*@cc_on!@*/false || !!/(MSIE|Trident\\/|Edge\\/)/i.test(navigator.userAgent);\n if(isIE) {\n const observer = new MutationObserver(function (mutations) {\n if($(\".documentMainContent\").length > 0 ){\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n observer.disconnect();\n }\n });\n observer.observe(document, {attributes: false, childList: true, characterData: false, subtree: true});\n }\n }\n );\n this.clearData();\n this._modalService.close(modalId);\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private loadFile(file: FileDescription) {\n this.file = file;\n if (this.file && this.file.pages[0]) {\n this.file.pages[0].editable = true;\n this.file.pages[0].width = 595;\n this.file.pages[0].height = 842;\n this.textBackup = this.file.pages[0].data;\n }\n this.formatDisabled = !this.file;\n this.downloadDisabled = false;\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n upload($event: string) {\n this._editorService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n selectFontSize($event: Option) {\n if (this.formatDisabled)\n return;\n $(\".gd-wrapper\").off(\"keyup\");\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFontSize($event.value);\n $(\".gd-wrapper\").on(\"keyup\", () => {\n const fontElements = document.getElementsByTagName(\"font\");\n for (let i = 0, len = fontElements.length; i < len; ++i) {\n if (fontElements[i].getAttribute('size') === \"7\") {\n fontElements[i].removeAttribute(\"size\");\n fontElements[i].style.fontSize = $event + \"px\";\n }\n }\n });\n }\n\n selectFont($event: Option) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatFont($event.value);\n }\n\n toggleColorPicker(bg: boolean) {\n\n if (this.formatDisabled) {\n return;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (bg) {\n this.bgColorPickerShow = !this.bgColorPickerShow;\n this.colorPickerShow = false;\n } else {\n this.colorPickerShow = !this.colorPickerShow;\n this.bgColorPickerShow = false;\n }\n }\n\n selectColor($event: string) {\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n if (this.bgColorPickerShow) {\n this.bgColorPickerShow = false;\n this._formattingService.changeFormatBgColor($event);\n } else {\n this.colorPickerShow = false;\n this._formattingService.changeFormatColor($event);\n }\n }\n\n toggleBold(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatBold(!this.formatting.bold);\n }\n\n toggleUndo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Undo();\n }\n\n toggleRedo() {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n this._formattingService.Redo();\n }\n\n toggleItalic(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatItalic(!this.formatting.italic);\n }\n\n toggleUnderline(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatUnderline(!this.formatting.underline);\n }\n\n hideAll($event) {\n if (($event.target.parentElement && $event.target.parentElement.attributes['name'] &&\n $event.target.parentElement.attributes['name'].value === 'button') ||\n ($event.target.parentElement.parentElement &&\n $event.target.parentElement.parentElement.attributes['name'] &&\n $event.target.parentElement.parentElement.attributes['name'].value === 'button')) {\n\n this._onCloseService.close(true);\n return;\n }\n this.colorPickerShow = false;\n this.bgColorPickerShow = false;\n this._onCloseService.close(true);\n }\n\n toggleStrikeout(event) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatStrikeout(!this.formatting.strikeout);\n }\n\n toggleAlign(align: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n if (align === this.formatting.align) {\n align = 'full';\n }\n this._formattingService.changeFormatAlign(align);\n this.formatting.align = align;\n }\n\n toggleList(list: string) {\n if (this.formatDisabled)\n return;\n event.preventDefault();\n event.stopPropagation();\n\n if (list === this.formatting.list) {\n this.formatting.list = \"\";\n } else {\n this.formatting.list = list;\n }\n if(this.isIE) {\n this._selectionService.restoreSelection();\n this._selectionService.captureSelection();\n }\n this._formattingService.changeFormatList(list);\n }\n\n downloadFile() {\n if (this.downloadDisabled)\n return;\n window.location.assign(this._editorService.getDownloadUrl(this.credentials));\n }\n\n save(){\n if (this.formatDisabled)\n return;\n if(this.credentials) {\n if (this.file.guid === \"new document.docx\") {\n this.openModal(CommonModals.CreateDocument);\n } else {\n this.saveFile(this.credentials);\n }\n }\n }\n\n saveFile(credentials: FileCredentials) {\n if (!this.file || !this.file.pages)\n return;\n const saveFile = new SaveFile(credentials.guid, credentials.password, this.textBackup);\n this._editorService.save(saveFile).subscribe((loadFile: FileDescription) => {\n this.loadFile(loadFile);\n this.credentials = new FileCredentials(loadFile.guid, credentials.password);\n this._modalService.open(CommonModals.OperationSuccess);\n });\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if(this.file.pages) {\n const page = new PageModel;\n page.width = 595;\n page.height = 842;\n // using of the replace is required to fix issue with padding for intire print content\n page.data = this.textBackup.replace('', 'body { padding: 96px; } ');\n const printHtml = [page];\n this._renderPrintService.changePages(printHtml);\n }\n }\n\n onCloseModal($event) {\n if (this.file && $event) {\n if(this.isIE) {\n $(\".documentMainContent\").attr(\"contentEditable\", \"true\");\n } else {\n this.file.pages[0].editable = true;\n }\n this._selectionService.restoreSelection();\n }\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {\n CommonModals,\n ExceptionMessageService,\n FileCredentials,\n ModalService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {EditorService} from \"../editor.service\";\n\n@Component({\n selector: 'gd-create-document-modal',\n templateUrl: './create.document-modal.component.html',\n styleUrls: ['./create.document-modal.component.less']\n})\nexport class CreateDocumentModalComponent implements OnInit {\n @Input() file: FileCredentials;\n @Output() savingFile: EventEmitter = new EventEmitter();\n @Output() closing = new EventEmitter();\n private _format: string;\n formats;\n FILE_NAME_REGEX = /^.*[\\\\\\/]/;\n\n constructor(private _editorService: EditorService,\n private _modalService: ModalService,\n private _excMessageService: ExceptionMessageService) {\n }\n\n get format() {\n return this._format;\n }\n\n ngOnInit() {\n this.loadFormats();\n }\n\n loadFormats() {\n this._editorService.getFormats().subscribe((formats: string[]) => {\n this.formats = this.formatOptions(formats);\n this._format = \"Docx\";\n }\n );\n }\n\n selectFormat($event: any) {\n this._format = $event.value;\n }\n\n createFormatOption(val: string) {\n return {value: val, name: val}\n }\n\n formatOptions(formats) {\n const allTypes = new Array();\n for (let i = 0; i < formats.length; i++) {\n allTypes.push(this.createFormatOption(formats[i]));\n }\n return allTypes;\n }\n\n save(name: string) {\n let fileName = \"\";\n if (name && name !== \"\") {\n fileName = name + \".\" + this._format;\n } else if (!this.file) {\n this._modalService.open(CommonModals.ErrorMessage);\n this._excMessageService.changeMessage(\"File name is empty\");\n }\n this._modalService.close(CommonModals.CreateDocument);\n const guid = fileName !== \"\" ? fileName : this.file.guid;\n const password = this.file ? this.file.password : '';\n this.savingFile.emit(new FileCredentials(guid, password));\n }\n\n refresh($event: boolean) {\n if (!$event) {\n this.closing.emit(true);\n }\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {EditorAppComponent} from './editor-app.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport {CreateDocumentModalComponent} from './create.document-modal/create.document-modal.component';\nimport {EditorService} from \"./editor.service\";\nimport {\n CommonComponentsModule,\n ErrorInterceptorService,\n ConfigService,\n LoadingMaskService,\n LoadingMaskInterceptorService, Api\n} from '@groupdocs.examples.angular/common-components';\nimport {EditorConfigService} from \"./editor-config.service\";\n\nexport function initializeApp(editorConfigService: EditorConfigService) {\n const result = () => editorConfigService.load();\n return result;\n}\n\n// NOTE: this is required during library compilation see https://github.com/angular/angular/issues/23629#issuecomment-440942981\n// @dynamic\nexport function setupLoadingInterceptor(service: LoadingMaskService) {\n return new LoadingMaskInterceptorService(service);\n}\n\n@NgModule({\n declarations :[EditorAppComponent,CreateDocumentModalComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n CreateDocumentModalComponent,\n EditorAppComponent,\n CommonComponentsModule\n ],\n providers: [\n EditorService,\n ConfigService,\n EditorConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [EditorConfigService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n LoadingMaskService,\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: setupLoadingInterceptor,\n multi: true,\n deps: [LoadingMaskService]\n }\n ]\n})\nexport class EditorModule {\n constructor(){\n library.add(fas,far);\n }\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: EditorModule\n };\n }\n}\n"],"names":["tslib_1.__values"],"mappings":"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"} \ No newline at end of file diff --git a/dist/libs/editor/groupdocs.examples.angular-editor.metadata.json b/dist/libs/editor/groupdocs.examples.angular-editor.metadata.json index b2a880ee4..ece8fda42 100644 --- a/dist/libs/editor/groupdocs.examples.angular-editor.metadata.json +++ b/dist/libs/editor/groupdocs.examples.angular-editor.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"metadata":{"initializeApp":{"__symbolic":"function"},"setupLoadingInterceptor":{"__symbolic":"function","parameters":["service"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskInterceptorService","line":27,"character":13},"arguments":[{"__symbolic":"reference","name":"service"}]}},"EditorModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":30,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"EditorAppComponent"},{"__symbolic":"reference","name":"CreateDocumentModalComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"BrowserModule","line":33,"character":4},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"CommonComponentsModule","line":34,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":35,"character":4},{"__symbolic":"reference","module":"@fortawesome/angular-fontawesome","name":"FontAwesomeModule","line":36,"character":4}],"exports":[{"__symbolic":"reference","name":"CreateDocumentModalComponent"},{"__symbolic":"reference","name":"EditorAppComponent"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"CommonComponentsModule","line":41,"character":4}],"providers":[{"__symbolic":"reference","name":"EditorService"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ConfigService","line":45,"character":4},{"__symbolic":"reference","name":"EditorConfigService"},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":48,"character":15},"useFactory":{"__symbolic":"reference","name":"initializeApp"},"deps":[{"__symbolic":"reference","name":"EditorConfigService"}],"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":54,"character":15},"useClass":{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ErrorInterceptorService","line":55,"character":16},"multi":true},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskService","line":58,"character":4},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":60,"character":15},"useFactory":{"__symbolic":"reference","name":"setupLoadingInterceptor"},"multi":true,"deps":[{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskService","line":63,"character":13}]}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"EditorAppComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":27,"character":1},"arguments":[{"selector":"gd-editor-angular-root","template":"\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n","styles":["@import url(https://fonts.googleapis.com/css?family=Open+Sans&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.current-page-number{margin:0 15px;font-size:14px;color:#959da5}*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:text}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:calc(100% - 90px)}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{width:100%}/deep/ .gd-wrapper{padding:96px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;outline:0}/deep/ .dropdown-menu{min-width:unset!important}.format-select{margin:0 15px}.palette{position:absolute;top:90px;z-index:100}.background-color-picker{left:700px}.color-picker{left:750px}.bg-color-pic{border-radius:100%;border:1px solid #ccc;position:absolute;height:8px;width:8px;right:6px;bottom:6px}/deep/ .button.inactive{color:#ccc!important}/deep/ .gd-editor-buttons .button .tooltip{margin-top:45px;margin-left:-36px}/deep/ .gd-edit.active{background-color:#7e8991;border-radius:5px}/deep/ .gd-edit.active i{color:#fff}/deep/ .page{width:800px}/deep/ .save-as-button-icon{font-size:11px;left:22px!important;top:13px!important}.save-button{position:absolute;top:-5px;left:21px}@media (max-width:1037px){/deep/ .panzoom{zoom:.4;margin-top:160px}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EditorService"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ModalService","line":54,"character":37},{"__symbolic":"reference","name":"EditorConfigService"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"UploadFilesService","line":56,"character":34},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"PasswordService","line":57,"character":31},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"WindowService","line":58,"character":38},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"FormattingService","line":59,"character":42},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"BackFormattingService","line":60,"character":46},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"OnCloseService","line":61,"character":39},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"SelectionService","line":62,"character":41},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"EditHtmlService","line":63,"character":36},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"RenderPrintService","line":64,"character":43},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskService","line":65,"character":43}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"openSave":[{"__symbolic":"method"}],"selectDir":[{"__symbolic":"method"}],"ptToPx":[{"__symbolic":"method"}],"onRightClick":[{"__symbolic":"method"}],"createFile":[{"__symbolic":"method"}],"selectFile":[{"__symbolic":"method"}],"fileDropped":[{"__symbolic":"method"}],"loadFile":[{"__symbolic":"method"}],"clearData":[{"__symbolic":"method"}],"upload":[{"__symbolic":"method"}],"selectFontSize":[{"__symbolic":"method"}],"selectFont":[{"__symbolic":"method"}],"toggleColorPicker":[{"__symbolic":"method"}],"selectColor":[{"__symbolic":"method"}],"toggleBold":[{"__symbolic":"method"}],"toggleUndo":[{"__symbolic":"method"}],"toggleRedo":[{"__symbolic":"method"}],"toggleItalic":[{"__symbolic":"method"}],"toggleUnderline":[{"__symbolic":"method"}],"hideAll":[{"__symbolic":"method"}],"toggleStrikeout":[{"__symbolic":"method"}],"toggleAlign":[{"__symbolic":"method"}],"toggleList":[{"__symbolic":"method"}],"downloadFile":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"saveFile":[{"__symbolic":"method"}],"printFile":[{"__symbolic":"method"}],"onCloseModal":[{"__symbolic":"method"}]}},"EditorConfigService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":13,"character":29},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ConfigService","line":13,"character":58}]}],"load":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"EditorConfig":{"__symbolic":"class","members":{}},"EditorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":11,"character":29},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ConfigService","line":11,"character":58}]}],"loadFiles":[{"__symbolic":"method"}],"getFormats":[{"__symbolic":"method"}],"loadFile":[{"__symbolic":"method"}],"upload":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"getDownloadUrl":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"CreateDocumentModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"gd-create-document-modal","template":"\n
\n
\n \n \n \n \n Save\n
\n
\n
\n","styles":[".gd-create-wrap{display:flex;flex-direction:column;margin:24px}.gd-create-wrap label{font-size:14px;color:#acacac;padding-bottom:12px}.gd-create-wrap input{margin-bottom:20px;border:1px solid #6e6e6e!important;padding:9px 0 9px 10px;font-size:14px}.gd-create-wrap gd-button{align-self:flex-end}.gd-create-wrap ::ng-deep .button ::ng-deep .text{font-size:10px!important}#gd-create-document-section{width:468px}::ng-deep .gd-select-format .dropdown-menu{height:167px;overflow:hidden;overflow-y:auto;top:239px!important;min-width:0!important;width:65px;border:none!important}::ng-deep .gd-select-format .dropdown-menu .option{font-size:10px;color:#6e6e6e}::ng-deep .gd-select-format .dropdown-menu .option:hover{background-color:#4b566c!important}::ng-deep .select{height:35px;width:63px;border:1px solid #6e6e6e;color:#6e6e6e!important;display:flex;align-items:center;justify-content:space-between}::ng-deep .select .selected-value{padding:9px 0 9px 8px}::ng-deep .select .nav-caret{margin-right:8px}@media (max-width:1037px){#gd-create-document-section{width:100%}}"]}]}],"members":{"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"savingFile":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"closing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EditorService"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ModalService","line":23,"character":37},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ExceptionMessageService","line":24,"character":42}]}],"ngOnInit":[{"__symbolic":"method"}],"loadFormats":[{"__symbolic":"method"}],"selectFormat":[{"__symbolic":"method"}],"createFormatOption":[{"__symbolic":"method"}],"formatOptions":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}]}}},"origins":{"initializeApp":"./lib/editor.module","setupLoadingInterceptor":"./lib/editor.module","EditorModule":"./lib/editor.module","EditorAppComponent":"./lib/editor-app.component","EditorConfigService":"./lib/editor-config.service","EditorConfig":"./lib/editor-config","EditorService":"./lib/editor.service","CreateDocumentModalComponent":"./lib/create.document-modal/create.document-modal.component"},"importAs":"@groupdocs.examples.angular/editor"} \ No newline at end of file +{"__symbolic":"module","version":4,"metadata":{"initializeApp":{"__symbolic":"function"},"setupLoadingInterceptor":{"__symbolic":"function","parameters":["service"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskInterceptorService","line":27,"character":13},"arguments":[{"__symbolic":"reference","name":"service"}]}},"EditorModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":30,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"EditorAppComponent"},{"__symbolic":"reference","name":"CreateDocumentModalComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"BrowserModule","line":33,"character":4},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"CommonComponentsModule","line":34,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":35,"character":4},{"__symbolic":"reference","module":"@fortawesome/angular-fontawesome","name":"FontAwesomeModule","line":36,"character":4}],"exports":[{"__symbolic":"reference","name":"CreateDocumentModalComponent"},{"__symbolic":"reference","name":"EditorAppComponent"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"CommonComponentsModule","line":41,"character":4}],"providers":[{"__symbolic":"reference","name":"EditorService"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ConfigService","line":45,"character":4},{"__symbolic":"reference","name":"EditorConfigService"},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":48,"character":15},"useFactory":{"__symbolic":"reference","name":"initializeApp"},"deps":[{"__symbolic":"reference","name":"EditorConfigService"}],"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":54,"character":15},"useClass":{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ErrorInterceptorService","line":55,"character":16},"multi":true},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskService","line":58,"character":4},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":60,"character":15},"useFactory":{"__symbolic":"reference","name":"setupLoadingInterceptor"},"multi":true,"deps":[{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskService","line":63,"character":13}]}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]}},"EditorAppComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":27,"character":1},"arguments":[{"selector":"gd-editor-angular-root","template":"\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n \n
\n \n Click to open file
\n Or drop file here\n
\n \n \n \n \n \n
\n","styles":["@import url(https://fonts.googleapis.com/css?family=Open+Sans&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.current-page-number{margin:0 15px;font-size:14px;color:#959da5}*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:text}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.doc-panel{display:flex;height:inherit}.gd-document{width:100%;height:calc(100% - 90px)}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{width:100%}/deep/ .gd-wrapper{padding:96px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;outline:0}/deep/ .dropdown-menu{min-width:unset!important}.format-select{margin:0 15px}.palette{position:absolute;top:90px;z-index:100}.background-color-picker{left:700px}.color-picker{left:750px}.bg-color-pic{border-radius:100%;border:1px solid #ccc;position:absolute;height:8px;width:8px;right:6px;bottom:6px}/deep/ .button.inactive{color:#ccc!important}/deep/ .gd-editor-buttons .button .tooltip{margin-top:45px;margin-left:-36px}/deep/ .gd-edit.active{background-color:#7e8991;border-radius:5px}/deep/ .gd-edit.active i{color:#fff}/deep/ .page{width:800px}/deep/ .save-as-button-icon{font-size:11px;left:22px!important;top:13px!important}.save-button{position:absolute;top:-5px;left:21px}@media (max-width:1037px){/deep/ .panzoom{zoom:.4;margin-top:160px}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EditorService"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ModalService","line":54,"character":37},{"__symbolic":"reference","name":"EditorConfigService"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"UploadFilesService","line":56,"character":34},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"PasswordService","line":57,"character":31},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"WindowService","line":58,"character":38},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"FormattingService","line":59,"character":42},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"BackFormattingService","line":60,"character":46},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"OnCloseService","line":61,"character":39},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"SelectionService","line":62,"character":41},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"EditHtmlService","line":63,"character":36},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"RenderPrintService","line":64,"character":43},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"LoadingMaskService","line":65,"character":43}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"openSave":[{"__symbolic":"method"}],"selectDir":[{"__symbolic":"method"}],"ptToPx":[{"__symbolic":"method"}],"onRightClick":[{"__symbolic":"method"}],"createFile":[{"__symbolic":"method"}],"selectFile":[{"__symbolic":"method"}],"fileDropped":[{"__symbolic":"method"}],"loadFile":[{"__symbolic":"method"}],"clearData":[{"__symbolic":"method"}],"upload":[{"__symbolic":"method"}],"selectFontSize":[{"__symbolic":"method"}],"selectFont":[{"__symbolic":"method"}],"toggleColorPicker":[{"__symbolic":"method"}],"selectColor":[{"__symbolic":"method"}],"toggleBold":[{"__symbolic":"method"}],"toggleUndo":[{"__symbolic":"method"}],"toggleRedo":[{"__symbolic":"method"}],"toggleItalic":[{"__symbolic":"method"}],"toggleUnderline":[{"__symbolic":"method"}],"hideAll":[{"__symbolic":"method"}],"toggleStrikeout":[{"__symbolic":"method"}],"toggleAlign":[{"__symbolic":"method"}],"toggleList":[{"__symbolic":"method"}],"downloadFile":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"saveFile":[{"__symbolic":"method"}],"printFile":[{"__symbolic":"method"}],"onCloseModal":[{"__symbolic":"method"}]}},"EditorConfigService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":13,"character":29},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ConfigService","line":13,"character":58}]}],"load":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"EditorConfig":{"__symbolic":"class","members":{}},"EditorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":11,"character":29},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ConfigService","line":11,"character":58}]}],"loadFiles":[{"__symbolic":"method"}],"getFormats":[{"__symbolic":"method"}],"loadFile":[{"__symbolic":"method"}],"upload":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"getDownloadUrl":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"CreateDocumentModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"gd-create-document-modal","template":"\n
\n
\n \n \n \n \n Save\n
\n
\n
\n","styles":[".gd-create-wrap{display:flex;flex-direction:column;margin:24px}.gd-create-wrap label{font-size:14px;color:#acacac;padding-bottom:12px}.gd-create-wrap input{margin-bottom:20px;border:1px solid #6e6e6e!important;padding:9px 0 9px 10px;font-size:14px}.gd-create-wrap gd-button{align-self:flex-end}.gd-create-wrap ::ng-deep .button ::ng-deep .text{font-size:10px!important}#gd-create-document-section{width:468px}::ng-deep .gd-select-format .dropdown-menu{height:167px;overflow:hidden;overflow-y:auto;top:239px!important;min-width:0!important;width:65px;border:none!important}::ng-deep .gd-select-format .dropdown-menu .option{font-size:10px;color:#6e6e6e}::ng-deep .gd-select-format .dropdown-menu .option:hover{background-color:#4b566c!important}::ng-deep .select{height:35px;width:63px;border:1px solid #6e6e6e;color:#6e6e6e!important;display:flex;align-items:center;justify-content:space-between}::ng-deep .select .selected-value{padding:9px 0 9px 8px}::ng-deep .select .nav-caret{margin-right:8px}@media (max-width:1037px){#gd-create-document-section{width:100%}}"]}]}],"members":{"file":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"savingFile":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"closing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EditorService"},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ModalService","line":23,"character":37},{"__symbolic":"reference","module":"@groupdocs.examples.angular/common-components","name":"ExceptionMessageService","line":24,"character":42}]}],"ngOnInit":[{"__symbolic":"method"}],"loadFormats":[{"__symbolic":"method"}],"selectFormat":[{"__symbolic":"method"}],"createFormatOption":[{"__symbolic":"method"}],"formatOptions":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}]}}},"origins":{"initializeApp":"./lib/editor.module","setupLoadingInterceptor":"./lib/editor.module","EditorModule":"./lib/editor.module","EditorAppComponent":"./lib/editor-app.component","EditorConfigService":"./lib/editor-config.service","EditorConfig":"./lib/editor-config","EditorService":"./lib/editor.service","CreateDocumentModalComponent":"./lib/create.document-modal/create.document-modal.component"},"importAs":"@groupdocs.examples.angular/editor"} \ No newline at end of file diff --git a/dist/libs/editor/package.json b/dist/libs/editor/package.json index 9cb59ece6..0ed3f4d7f 100644 --- a/dist/libs/editor/package.json +++ b/dist/libs/editor/package.json @@ -1,6 +1,6 @@ { "name": "@groupdocs.examples.angular/editor", - "version": "0.4.22", + "version": "0.4.19", "description": "Angular application that allows to edit documents supported by groupdocs libraries APIs", "license": "MIT", "publishConfig": { diff --git a/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.js b/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.js index f65a098c1..aadfc661f 100644 --- a/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.js +++ b/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.js @@ -1114,14 +1114,13 @@ * @return {?} */ function () { - // TODO: this is temporary needed to remove unneeded spaces and BOM symbol - // which leads to undesired spaces on the top of the docs pages + // TODO: investigate the root cause of unneded spaces this.pages.forEach((/** * @param {?} page * @return {?} */ function (page) { - page.data = page.data.replace(/>\s+<').replace(/\uFEFF/g, ""); + page.data = page.data.replace(/>\s+<'); })); }; /** diff --git a/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.js.map b/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.js.map index fee7eb46c..76ca30b15 100644 --- a/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.js.map +++ b/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"groupdocs.examples.angular-viewer.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/viewer/lib/viewer.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-app.component.ts","ng://@groupdocs.examples.angular/viewer/lib/thumbnails/thumbnails.component.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {Api, ConfigService, FileCredentials} from \"@groupdocs.examples.angular/common-components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getViewerApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n rotate(credentials: FileCredentials, angle: number, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.ROTATE_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'pages': [page],\n 'angle': angle\n }, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getViewerApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n\n loadPrint(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n\n loadPrintPdf(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT_PDF, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJsonResponseTypeBlob);\n }\n\n loadThumbnails(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_THUMBNAILS, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n}\n","export class ViewerConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n htmlMode: boolean;\n preloadPageCount: 0;\n zoom: boolean;\n search: boolean;\n thumbnails: boolean;\n rotate: boolean;\n cache: boolean;\n saveRotateState: boolean;\n watermarkText: string;\n printAllowed: boolean;\n}\n","import {Injectable} from '@angular/core';\nimport {ViewerConfig} from \"./viewer-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerConfigService {\n private _viewerConfig: BehaviorSubject = new BehaviorSubject(new ViewerConfig());\n private _updatedConfig: Observable = this._viewerConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.VIEWER_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ViewerConfig) => {\n const viewerConfig = response;\n this._viewerConfig.next(viewerConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load viewer config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {AfterViewInit, Component, ElementRef, ViewChildren, QueryList, OnInit} from '@angular/core';\nimport {ViewerService} from \"./viewer.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n NavigateService,\n PagePreloadService,\n PageModel,\n ZoomService,\n RotatedPage,\n RenderPrintService,\n FileUtil,\n PasswordService,\n FileCredentials, CommonModals, LoadingMaskService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfig} from \"./viewer-config\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {WindowService} from \"@groupdocs.examples.angular/common-components\";\n//import * as Hammer from 'hammerjs';\n\n@Component({\n selector: 'gd-viewer',\n templateUrl: './viewer-app.component.html',\n styleUrls: ['./viewer-app.component.less']\n})\nexport class ViewerAppComponent implements OnInit, AfterViewInit {\n title = 'viewer';\n files: FileModel[] = [];\n file: FileDescription;\n viewerConfig: ViewerConfig;\n countPages = 0;\n formatDisabled = !this.file;\n showThumbnails = false;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n showSearch = false;\n isDesktop: boolean;\n isLoading: boolean;\n\n _zoom = 100;\n _pageWidth: number;\n _pageHeight: number;\n options;\n //@ViewChildren('docPanel') docPanelComponent: QueryList;\n fileWasDropped = false;\n formatIcon: string;\n\n constructor(private _viewerService: ViewerService,\n private _modalService: ModalService,\n configService: ViewerConfigService,\n uploadFilesService: UploadFilesService,\n private _navigateService: NavigateService,\n private _zoomService: ZoomService,\n pagePreloadService: PagePreloadService,\n private _renderPrintService: RenderPrintService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _loadingMaskService: LoadingMaskService) {\n\n configService.updatedConfig.subscribe((viewerConfig) => {\n this.viewerConfig = viewerConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._viewerService.upload(uploads.item(i), '', this.viewerConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.viewerConfig.preloadPageCount !== 0) {\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.pages[i - 1].data) {\n this.preloadPages(i, i);\n }\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n this.refreshZoom();\n });\n }\n\n ngOnInit() {\n if (this.viewerConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.viewerConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n\n this.refreshZoom();\n\n // this.docPanelComponent.changes.subscribe((comps: QueryList) =>\n // {\n // comps.toArray().forEach((item) => {\n // const hammer = new Hammer(item.nativeElement);\n // hammer.get('pinch').set({ enable: true });\n // });\n // });\n }\n\n get rewriteConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rewrite : true;\n }\n\n get zoomConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.zoom : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.pageSelector : true;\n }\n\n get searchConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.search : true;\n }\n\n get thumbnailsConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.thumbnails : true;\n }\n\n get rotateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rotate : true;\n }\n\n get downloadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.browse : true;\n }\n\n get htmlModeConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.htmlMode : true;\n }\n\n get saveRotateStateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.saveRotateState : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.enableRightClick : true;\n }\n\n get currentPage(): number {\n return this._navigateService.currentPage;\n }\n\n openModal(id: string) {\n this._modalService.open(id);\n }\n\n closeModal(id: string) {\n this._modalService.close(id);\n }\n\n selectDir($event: string) {\n this._viewerService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = {guid: $event, password: password};\n this._viewerService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.file = file;\n this.formatDisabled = !this.file;\n if (file) {\n if (file.pages && file.pages[0]) {\n this._pageHeight = file.pages[0].height;\n this._pageWidth = file.pages[0].width;\n this.options = this.zoomOptions();\n this.refreshZoom();\n }\n const preloadPageCount = this.viewerConfig.preloadPageCount;\n const countPages = file.pages ? file.pages.length : 0;\n if (preloadPageCount > 0) {\n this.preloadPages(1, preloadPageCount > countPages ? countPages : preloadPageCount);\n }\n this._navigateService.countPages = countPages;\n this._navigateService.currentPage = 1;\n this.countPages = countPages;\n }\n }\n );\n if (modalId) {\n this._modalService.close(modalId);\n }\n this.clearData();\n }\n\n preloadPages(start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._viewerService.loadPage(this.credentials, i).subscribe((page: PageModel) => {\n this.file.pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n this._viewerService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n nextPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.nextPage();\n }\n\n prevPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.prevPage();\n }\n\n toLastPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toLastPage();\n }\n\n toFirstPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toFirstPage();\n }\n\n navigateToPage(page: number) {\n if (this.formatDisabled)\n return;\n this._navigateService.navigateTo(page);\n }\n\n zoomIn() {\n if (this.formatDisabled)\n return;\n if (this._zoom < 490) {\n this.zoom = this._zoom + 10;\n }\n }\n\n zoomOut() {\n if (this.formatDisabled)\n return;\n if (this._zoom > 30) {\n this.zoom = this._zoom - 10;\n }\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n private getFitToWidth() {\n // Images and Excel-related files receiving dimensions in px from server\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const offsetWidth = pageWidth ? pageWidth : window.innerWidth;\n\n return (pageHeight > pageWidth && Math.round(offsetWidth / window.innerWidth) < 2) ? 200 - Math.round(offsetWidth * 100 / window.innerWidth) : Math.round(window.innerWidth * 100 / offsetWidth);\n }\n\n private getFitToHeight() {\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const windowHeight = (pageHeight > pageWidth) ? window.innerHeight - 100 : window.innerHeight + 100;\n const offsetHeight = pageHeight ? pageHeight : windowHeight;\n\n return (pageHeight > pageWidth) ? Math.round(windowHeight * 100 / offsetHeight) : Math.round(offsetHeight * 100 / windowHeight);\n }\n\n zoomOptions() {\n const width = this.getFitToWidth();\n const height = this.getFitToHeight();\n return this._zoomService.zoomOptions(width, height);\n }\n\n set zoom(zoom) {\n this._zoom = zoom;\n this._zoomService.changeZoom(this._zoom);\n }\n\n get zoom() {\n return this._zoom;\n }\n\n selectZoom($event: any) {\n this.zoom = $event.value;\n }\n\n rotate(deg: number) {\n if (this.formatDisabled)\n return;\n const pageNumber = this._navigateService.currentPage;\n\n if (this.saveRotateStateConfig && this.file) {\n this._viewerService.rotate(this.credentials, deg, pageNumber).subscribe((data: RotatedPage[]) => {\n for (const page of data) {\n const pageModel = this.file.pages[page.pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n this.changeAngle(pageModel, page.angle);\n }\n }\n })\n } else {\n const pageModel = this.file.pages[pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n const angle = pageModel.angle + deg;\n if (angle > 360) {\n this.changeAngle(pageModel, 90);\n } else if (angle < -360) {\n this.changeAngle(pageModel, -90);\n } else {\n this.changeAngle(pageModel, angle);\n }\n }\n }\n }\n\n private changeAngle(page: PageModel, angle: number) {\n page.angle = angle;\n }\n\n downloadFile() {\n if (this.formatDisabled)\n return;\n window.location.assign(this._viewerService.getDownloadUrl(this.credentials));\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if (this.viewerConfig.preloadPageCount !== 0) {\n if (FileUtil.find(this.file.guid, false).format === \"Portable Document Format\") {\n this._viewerService.loadPrintPdf(this.credentials).subscribe(blob => {\n const file = new Blob([blob], {type: 'application/pdf'});\n this._renderPrintService.changeBlob(file);\n });\n } else {\n this._viewerService.loadPrint(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this._renderPrintService.changePages(this.file.pages);\n });\n }\n } else {\n this._renderPrintService.changePages(this.file.pages);\n }\n }\n\n openThumbnails() {\n if (this.formatDisabled)\n return;\n\n if (this.showThumbnails) {\n this.showThumbnails = false;\n return;\n }\n\n if (this.viewerConfig.preloadPageCount === 0) {\n this.showThumbnails = true;\n } else {\n this._viewerService.loadThumbnails(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this.showThumbnails = true;\n })\n }\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n openSearch() {\n if (this.formatDisabled)\n return;\n this.showSearch = !this.showSearch;\n }\n\n // onPinchIn($event){\n // this.zoomOut();\n // }\n\n // onPinchOut($event){\n // this.zoomIn();\n // }\n\n private refreshZoom() {\n this.formatIcon = this.file ? FileUtil.find(this.file.guid, false).icon : null;\n this.zoom = this._windowService.isDesktop() ? 100 : this.getFitToWidth();\n }\n}\n","import {Component, Input, OnInit, OnDestroy, AfterViewInit, OnChanges} from '@angular/core';\nimport {NavigateService, PageModel, ZoomService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-thumbnails',\n templateUrl: './thumbnails.component.html',\n styleUrls: ['./thumbnails.component.less']\n})\nexport class ThumbnailsComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n\n @Input() pages: PageModel[];\n @Input() guid: string;\n @Input() mode: boolean;\n @Input() isHtmlMode: boolean;\n\n constructor(private _navigateService: NavigateService, private _zoomService: ZoomService) {\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n // TODO: this is temporary needed to remove unneeded spaces and BOM symbol \n // which leads to undesired spaces on the top of the docs pages\n this.pages.forEach(page => {\n page.data = page.data.replace(/>\\s+<').replace(/\\uFEFF/g,\"\");\n });\n }\n\n ngAfterViewInit() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n ngOnDestroy() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n imgData(data: string) {\n const dataImagePngBase64 = 'data:image/png;base64,';\n if (!this.isHtmlMode) {\n return dataImagePngBase64 + data;\n }\n return dataImagePngBase64;\n }\n\n getScale(x: number, y: number) {\n return Math.min(190 / x, 190 / y);\n }\n\n openPage(pageNumber: number) {\n this._navigateService.navigateTo(pageNumber);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ViewerAppComponent} from './viewer-app.component';\nimport { Api, CommonComponentsModule, ErrorInterceptorService } from '@groupdocs.examples.angular/common-components';\nimport {ViewerService} from \"./viewer.service\";\nimport {ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {ThumbnailsComponent} from './thumbnails/thumbnails.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nexport function initializeApp(viewerConfigService: ViewerConfigService) {\n const result = () => viewerConfigService.load();\n return result;\n}\n\n@NgModule({\n declarations: [\n ViewerAppComponent,\n ThumbnailsComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n ViewerAppComponent,\n ThumbnailsComponent,\n CommonComponentsModule\n ],\n providers: [\n ViewerService,\n ConfigService,\n ViewerConfigService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ViewerConfigService], multi: true\n }\n ]\n})\nexport class ViewerModule {\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: ViewerModule\n };\n }\n}\n"],"names":["Api","Injectable","HttpClient","ConfigService","BehaviorSubject","CommonModals","tslib_1.__values","FileUtil","Component","ModalService","UploadFilesService","NavigateService","ZoomService","PagePreloadService","RenderPrintService","PasswordService","WindowService","LoadingMaskService","Input","NgModule","BrowserModule","CommonComponentsModule","HttpClientModule","FontAwesomeModule","HTTP_INTERCEPTORS","ErrorInterceptorService","APP_INITIALIZER"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"groupdocs.examples.angular-viewer.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/viewer/lib/viewer.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-app.component.ts","ng://@groupdocs.examples.angular/viewer/lib/thumbnails/thumbnails.component.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {Api, ConfigService, FileCredentials} from \"@groupdocs.examples.angular/common-components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getViewerApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n rotate(credentials: FileCredentials, angle: number, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.ROTATE_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'pages': [page],\n 'angle': angle\n }, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getViewerApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n\n loadPrint(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n\n loadPrintPdf(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT_PDF, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJsonResponseTypeBlob);\n }\n\n loadThumbnails(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_THUMBNAILS, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n}\n","export class ViewerConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n htmlMode: boolean;\n preloadPageCount: 0;\n zoom: boolean;\n search: boolean;\n thumbnails: boolean;\n rotate: boolean;\n cache: boolean;\n saveRotateState: boolean;\n watermarkText: string;\n printAllowed: boolean;\n}\n","import {Injectable} from '@angular/core';\nimport {ViewerConfig} from \"./viewer-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerConfigService {\n private _viewerConfig: BehaviorSubject = new BehaviorSubject(new ViewerConfig());\n private _updatedConfig: Observable = this._viewerConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.VIEWER_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ViewerConfig) => {\n const viewerConfig = response;\n this._viewerConfig.next(viewerConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load viewer config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {AfterViewInit, Component, ElementRef, ViewChildren, QueryList, OnInit} from '@angular/core';\nimport {ViewerService} from \"./viewer.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n NavigateService,\n PagePreloadService,\n PageModel,\n ZoomService,\n RotatedPage,\n RenderPrintService,\n FileUtil,\n PasswordService,\n FileCredentials, CommonModals, LoadingMaskService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfig} from \"./viewer-config\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {WindowService} from \"@groupdocs.examples.angular/common-components\";\n//import * as Hammer from 'hammerjs';\n\n@Component({\n selector: 'gd-viewer',\n templateUrl: './viewer-app.component.html',\n styleUrls: ['./viewer-app.component.less']\n})\nexport class ViewerAppComponent implements OnInit, AfterViewInit {\n title = 'viewer';\n files: FileModel[] = [];\n file: FileDescription;\n viewerConfig: ViewerConfig;\n countPages = 0;\n formatDisabled = !this.file;\n showThumbnails = false;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n showSearch = false;\n isDesktop: boolean;\n isLoading: boolean;\n\n _zoom = 100;\n _pageWidth: number;\n _pageHeight: number;\n options;\n //@ViewChildren('docPanel') docPanelComponent: QueryList;\n fileWasDropped = false;\n formatIcon: string;\n\n constructor(private _viewerService: ViewerService,\n private _modalService: ModalService,\n configService: ViewerConfigService,\n uploadFilesService: UploadFilesService,\n private _navigateService: NavigateService,\n private _zoomService: ZoomService,\n pagePreloadService: PagePreloadService,\n private _renderPrintService: RenderPrintService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _loadingMaskService: LoadingMaskService) {\n\n configService.updatedConfig.subscribe((viewerConfig) => {\n this.viewerConfig = viewerConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._viewerService.upload(uploads.item(i), '', this.viewerConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.viewerConfig.preloadPageCount !== 0) {\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.pages[i - 1].data) {\n this.preloadPages(i, i);\n }\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n this.refreshZoom();\n });\n }\n\n ngOnInit() {\n if (this.viewerConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.viewerConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n\n this.refreshZoom();\n\n // this.docPanelComponent.changes.subscribe((comps: QueryList) =>\n // {\n // comps.toArray().forEach((item) => {\n // const hammer = new Hammer(item.nativeElement);\n // hammer.get('pinch').set({ enable: true });\n // });\n // });\n }\n\n get rewriteConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rewrite : true;\n }\n\n get zoomConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.zoom : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.pageSelector : true;\n }\n\n get searchConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.search : true;\n }\n\n get thumbnailsConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.thumbnails : true;\n }\n\n get rotateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rotate : true;\n }\n\n get downloadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.browse : true;\n }\n\n get htmlModeConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.htmlMode : true;\n }\n\n get saveRotateStateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.saveRotateState : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.enableRightClick : true;\n }\n\n get currentPage(): number {\n return this._navigateService.currentPage;\n }\n\n openModal(id: string) {\n this._modalService.open(id);\n }\n\n closeModal(id: string) {\n this._modalService.close(id);\n }\n\n selectDir($event: string) {\n this._viewerService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = {guid: $event, password: password};\n this._viewerService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.file = file;\n this.formatDisabled = !this.file;\n if (file) {\n if (file.pages && file.pages[0]) {\n this._pageHeight = file.pages[0].height;\n this._pageWidth = file.pages[0].width;\n this.options = this.zoomOptions();\n this.refreshZoom();\n }\n const preloadPageCount = this.viewerConfig.preloadPageCount;\n const countPages = file.pages ? file.pages.length : 0;\n if (preloadPageCount > 0) {\n this.preloadPages(1, preloadPageCount > countPages ? countPages : preloadPageCount);\n }\n this._navigateService.countPages = countPages;\n this._navigateService.currentPage = 1;\n this.countPages = countPages;\n }\n }\n );\n if (modalId) {\n this._modalService.close(modalId);\n }\n this.clearData();\n }\n\n preloadPages(start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._viewerService.loadPage(this.credentials, i).subscribe((page: PageModel) => {\n this.file.pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n this._viewerService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n nextPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.nextPage();\n }\n\n prevPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.prevPage();\n }\n\n toLastPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toLastPage();\n }\n\n toFirstPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toFirstPage();\n }\n\n navigateToPage(page: number) {\n if (this.formatDisabled)\n return;\n this._navigateService.navigateTo(page);\n }\n\n zoomIn() {\n if (this.formatDisabled)\n return;\n if (this._zoom < 490) {\n this.zoom = this._zoom + 10;\n }\n }\n\n zoomOut() {\n if (this.formatDisabled)\n return;\n if (this._zoom > 30) {\n this.zoom = this._zoom - 10;\n }\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n private getFitToWidth() {\n // Images and Excel-related files receiving dimensions in px from server\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const offsetWidth = pageWidth ? pageWidth : window.innerWidth;\n\n return (pageHeight > pageWidth && Math.round(offsetWidth / window.innerWidth) < 2) ? 200 - Math.round(offsetWidth * 100 / window.innerWidth) : Math.round(window.innerWidth * 100 / offsetWidth);\n }\n\n private getFitToHeight() {\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const windowHeight = (pageHeight > pageWidth) ? window.innerHeight - 100 : window.innerHeight + 100;\n const offsetHeight = pageHeight ? pageHeight : windowHeight;\n\n return (pageHeight > pageWidth) ? Math.round(windowHeight * 100 / offsetHeight) : Math.round(offsetHeight * 100 / windowHeight);\n }\n\n zoomOptions() {\n const width = this.getFitToWidth();\n const height = this.getFitToHeight();\n return this._zoomService.zoomOptions(width, height);\n }\n\n set zoom(zoom) {\n this._zoom = zoom;\n this._zoomService.changeZoom(this._zoom);\n }\n\n get zoom() {\n return this._zoom;\n }\n\n selectZoom($event: any) {\n this.zoom = $event.value;\n }\n\n rotate(deg: number) {\n if (this.formatDisabled)\n return;\n const pageNumber = this._navigateService.currentPage;\n\n if (this.saveRotateStateConfig && this.file) {\n this._viewerService.rotate(this.credentials, deg, pageNumber).subscribe((data: RotatedPage[]) => {\n for (const page of data) {\n const pageModel = this.file.pages[page.pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n this.changeAngle(pageModel, page.angle);\n }\n }\n })\n } else {\n const pageModel = this.file.pages[pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n const angle = pageModel.angle + deg;\n if (angle > 360) {\n this.changeAngle(pageModel, 90);\n } else if (angle < -360) {\n this.changeAngle(pageModel, -90);\n } else {\n this.changeAngle(pageModel, angle);\n }\n }\n }\n }\n\n private changeAngle(page: PageModel, angle: number) {\n page.angle = angle;\n }\n\n downloadFile() {\n if (this.formatDisabled)\n return;\n window.location.assign(this._viewerService.getDownloadUrl(this.credentials));\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if (this.viewerConfig.preloadPageCount !== 0) {\n if (FileUtil.find(this.file.guid, false).format === \"Portable Document Format\") {\n this._viewerService.loadPrintPdf(this.credentials).subscribe(blob => {\n const file = new Blob([blob], {type: 'application/pdf'});\n this._renderPrintService.changeBlob(file);\n });\n } else {\n this._viewerService.loadPrint(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this._renderPrintService.changePages(this.file.pages);\n });\n }\n } else {\n this._renderPrintService.changePages(this.file.pages);\n }\n }\n\n openThumbnails() {\n if (this.formatDisabled)\n return;\n\n if (this.showThumbnails) {\n this.showThumbnails = false;\n return;\n }\n\n if (this.viewerConfig.preloadPageCount === 0) {\n this.showThumbnails = true;\n } else {\n this._viewerService.loadThumbnails(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this.showThumbnails = true;\n })\n }\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n openSearch() {\n if (this.formatDisabled)\n return;\n this.showSearch = !this.showSearch;\n }\n\n // onPinchIn($event){\n // this.zoomOut();\n // }\n\n // onPinchOut($event){\n // this.zoomIn();\n // }\n\n private refreshZoom() {\n this.formatIcon = this.file ? FileUtil.find(this.file.guid, false).icon : null;\n this.zoom = this._windowService.isDesktop() ? 100 : this.getFitToWidth();\n }\n}\n","import {Component, Input, OnInit, OnDestroy, AfterViewInit, OnChanges} from '@angular/core';\nimport {NavigateService, PageModel, ZoomService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-thumbnails',\n templateUrl: './thumbnails.component.html',\n styleUrls: ['./thumbnails.component.less']\n})\nexport class ThumbnailsComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n\n @Input() pages: PageModel[];\n @Input() guid: string;\n @Input() mode: boolean;\n @Input() isHtmlMode: boolean;\n\n constructor(private _navigateService: NavigateService, private _zoomService: ZoomService) {\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n // TODO: investigate the root cause of unneded spaces\n this.pages.forEach(page => {\n page.data = page.data.replace(/>\\s+<');\n });\n }\n\n ngAfterViewInit() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n ngOnDestroy() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n imgData(data: string) {\n const dataImagePngBase64 = 'data:image/png;base64,';\n if (!this.isHtmlMode) {\n return dataImagePngBase64 + data;\n }\n return dataImagePngBase64;\n }\n\n getScale(x: number, y: number) {\n return Math.min(190 / x, 190 / y);\n }\n\n openPage(pageNumber: number) {\n this._navigateService.navigateTo(pageNumber);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ViewerAppComponent} from './viewer-app.component';\nimport { Api, CommonComponentsModule, ErrorInterceptorService } from '@groupdocs.examples.angular/common-components';\nimport {ViewerService} from \"./viewer.service\";\nimport {ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {ThumbnailsComponent} from './thumbnails/thumbnails.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nexport function initializeApp(viewerConfigService: ViewerConfigService) {\n const result = () => viewerConfigService.load();\n return result;\n}\n\n@NgModule({\n declarations: [\n ViewerAppComponent,\n ThumbnailsComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n ViewerAppComponent,\n ThumbnailsComponent,\n CommonComponentsModule\n ],\n providers: [\n ViewerService,\n ConfigService,\n ViewerConfigService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ViewerConfigService], multi: true\n }\n ]\n})\nexport class ViewerModule {\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: ViewerModule\n };\n }\n}\n"],"names":["Api","Injectable","HttpClient","ConfigService","BehaviorSubject","CommonModals","tslib_1.__values","FileUtil","Component","ModalService","UploadFilesService","NavigateService","ZoomService","PagePreloadService","RenderPrintService","PasswordService","WindowService","LoadingMaskService","Input","NgModule","BrowserModule","CommonComponentsModule","HttpClientModule","FontAwesomeModule","HTTP_INTERCEPTORS","ErrorInterceptorService","APP_INITIALIZER"],"mappings":"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"} \ No newline at end of file diff --git a/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.min.js b/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.min.js index 926563ab5..8df0af1a8 100644 --- a/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.min.js +++ b/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/platform-browser"),require("@angular/core"),require("@angular/common/http"),require("@groupdocs.examples.angular/common-components"),require("rxjs"),require("@fortawesome/angular-fontawesome")):"function"==typeof define&&define.amd?define("@groupdocs.examples.angular/viewer",["exports","@angular/platform-browser","@angular/core","@angular/common/http","@groupdocs.examples.angular/common-components","rxjs","@fortawesome/angular-fontawesome"],t):t(((e=e||self).groupdocs=e.groupdocs||{},e.groupdocs.examples=e.groupdocs.examples||{},e.groupdocs.examples.angular=e.groupdocs.examples.angular||{},e.groupdocs.examples.angular.viewer={}),e.ng.platformBrowser,e.ng.core,e.ng.common.http,e.commonComponents,e.rxjs,e.angularFontawesome)}(this,function(e,t,o,i,n,r,a){"use strict";function s(e){var t="function"==typeof Symbol&&e[Symbol.iterator],o=0;return t?t.call(e):{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}}}var p=function(){function e(e,t){this._http=e,this._config=t}return e.prototype.loadFiles=function(e){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.LOAD_FILE_TREE,{path:e},n.Api.httpOptionsJson)},e.prototype.loadFile=function(e){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.LOAD_DOCUMENT_DESCRIPTION,e,n.Api.httpOptionsJson)},e.prototype.upload=function(e,t,o){var i=new FormData;return i.append("file",e),i.append("rewrite",String(o)),t&&i.append("url",t),this._http.post(this._config.getViewerApiEndpoint()+n.Api.UPLOAD_DOCUMENTS,i)},e.prototype.loadPage=function(e,t){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.LOAD_DOCUMENT_PAGE,{guid:e.guid,password:e.password,page:t},n.Api.httpOptionsJson)},e.prototype.rotate=function(e,t,o){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.ROTATE_DOCUMENT_PAGE,{guid:e.guid,password:e.password,pages:[o],angle:t},n.Api.httpOptionsJson)},e.prototype.getDownloadUrl=function(e){return this._config.getViewerApiEndpoint()+n.Api.DOWNLOAD_DOCUMENTS+"/?path="+e.guid},e.prototype.loadPrint=function(e){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.LOAD_PRINT,{guid:e.guid,password:e.password},n.Api.httpOptionsJson)},e.prototype.loadPrintPdf=function(e){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.LOAD_PRINT_PDF,{guid:e.guid,password:e.password},n.Api.httpOptionsJsonResponseTypeBlob)},e.prototype.loadThumbnails=function(e){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.LOAD_THUMBNAILS,{guid:e.guid,password:e.password},n.Api.httpOptionsJson)},e.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:n.ConfigService}]},e.ngInjectableDef=o.ɵɵdefineInjectable({factory:function(){return new e(o.ɵɵinject(i.HttpClient),o.ɵɵinject(n.ConfigService))},token:e,providedIn:"root"}),e}(),l=function(){},g=function(){function e(e,t){this._http=e,this._config=t,this._viewerConfig=new r.BehaviorSubject(new l),this._updatedConfig=this._viewerConfig.asObservable()}return Object.defineProperty(e.prototype,"updatedConfig",{get:function(){return this._updatedConfig},enumerable:!0,configurable:!0}),e.prototype.load=function(){var e=this;return new Promise(function(t,o){var i=e._config.getConfigEndpoint(n.Api.VIEWER_APP);e._http.get(i,n.Api.httpOptionsJson).toPromise().then(function(o){var i=o;e._viewerConfig.next(i),t()}).catch(function(e){o("Could not load viewer config: "+JSON.stringify(e))})})},e.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:n.ConfigService}]},e.ngInjectableDef=o.ɵɵdefineInjectable({factory:function(){return new e(o.ɵɵinject(i.HttpClient),o.ɵɵinject(n.ConfigService))},token:e,providedIn:"root"}),e}(),c=function(){function e(e,t,o,i,r,a,s,p,l,g,c){var d=this;this._viewerService=e,this._modalService=t,this._navigateService=r,this._zoomService=a,this._renderPrintService=p,this._windowService=g,this._loadingMaskService=c,this.title="viewer",this.files=[],this.countPages=0,this.formatDisabled=!this.file,this.showThumbnails=!1,this.browseFilesModal=n.CommonModals.BrowseFiles,this.showSearch=!1,this._zoom=100,this.fileWasDropped=!1,o.updatedConfig.subscribe(function(e){d.viewerConfig=e}),i.uploadsChange.subscribe(function(e){if(e){var t=void 0;for(t=0;t0&&t<=d.countPages&&!d.file.pages[t-1].data&&d.preloadPages(t,t)}),l.passChange.subscribe(function(e){d.selectFile(d.credentials.guid,e,n.CommonModals.PasswordRequired)}),this.isDesktop=g.isDesktop(),g.onResize.subscribe(function(e){d.isDesktop=g.isDesktop(),d.refreshZoom()})}return e.prototype.ngOnInit=function(){""!==this.viewerConfig.defaultDocument&&(this.isLoading=!0,this.selectFile(this.viewerConfig.defaultDocument,"",""))},e.prototype.ngAfterViewInit=function(){var e=this;this._loadingMaskService.onLoadingChanged.subscribe(function(t){return e.isLoading=t}),this.refreshZoom()},Object.defineProperty(e.prototype,"rewriteConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.rewrite},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"zoomConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.zoom},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pageSelectorConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.pageSelector},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"searchConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.search},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"thumbnailsConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.thumbnails},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rotateConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.rotate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"downloadConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.download},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"uploadConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.upload},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"printConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.print},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"browseConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.browse},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"htmlModeConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.htmlMode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"saveRotateStateConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.saveRotateState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"enableRightClickConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.enableRightClick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentPage",{get:function(){return this._navigateService.currentPage},enumerable:!0,configurable:!0}),e.prototype.openModal=function(e){this._modalService.open(e)},e.prototype.closeModal=function(e){this._modalService.close(e)},e.prototype.selectDir=function(e){var t=this;this._viewerService.loadFiles(e).subscribe(function(e){return t.files=e||[]})},e.prototype.selectFile=function(e,t,o){var i=this;this.credentials={guid:e,password:t},this._viewerService.loadFile(this.credentials).subscribe(function(e){if(i.file=e,i.formatDisabled=!i.file,e){e.pages&&e.pages[0]&&(i._pageHeight=e.pages[0].height,i._pageWidth=e.pages[0].width,i.options=i.zoomOptions(),i.refreshZoom());var t=i.viewerConfig.preloadPageCount,o=e.pages?e.pages.length:0;t>0&&i.preloadPages(1,t>o?o:t),i._navigateService.countPages=o,i._navigateService.currentPage=1,i.countPages=o}}),o&&this._modalService.close(o),this.clearData()},e.prototype.preloadPages=function(e,t){for(var o=this,i=function(e){n._viewerService.loadPage(n.credentials,e).subscribe(function(t){o.file.pages[e-1]=t})},n=this,r=e;r<=t;r++)i(r)},e.prototype.upload=function(e){var t=this;this._viewerService.upload(null,e,this.rewriteConfig).subscribe(function(){t.selectDir("")})},e.prototype.nextPage=function(){this.formatDisabled||this._navigateService.nextPage()},e.prototype.prevPage=function(){this.formatDisabled||this._navigateService.prevPage()},e.prototype.toLastPage=function(){this.formatDisabled||this._navigateService.toLastPage()},e.prototype.toFirstPage=function(){this.formatDisabled||this._navigateService.toFirstPage()},e.prototype.navigateToPage=function(e){this.formatDisabled||this._navigateService.navigateTo(e)},e.prototype.zoomIn=function(){this.formatDisabled||this._zoom<490&&(this.zoom=this._zoom+10)},e.prototype.zoomOut=function(){this.formatDisabled||this._zoom>30&&(this.zoom=this._zoom-10)},e.prototype.fileDropped=function(e){this.fileWasDropped=e},e.prototype.ptToPx=function(e){return 96*e/72},e.prototype.getFitToWidth=function(){var e=!this.formatIcon||"file-excel"!==this.formatIcon&&"file-image"!==this.formatIcon?this.ptToPx(this._pageWidth):this._pageWidth,t=!this.formatIcon||"file-excel"!==this.formatIcon&&"file-image"!==this.formatIcon?this.ptToPx(this._pageHeight):this._pageHeight,o=e||window.innerWidth;return t>e&&Math.round(o/window.innerWidth)<2?200-Math.round(100*o/window.innerWidth):Math.round(100*window.innerWidth/o)},e.prototype.getFitToHeight=function(){var e=!this.formatIcon||"file-excel"!==this.formatIcon&&"file-image"!==this.formatIcon?this.ptToPx(this._pageWidth):this._pageWidth,t=!this.formatIcon||"file-excel"!==this.formatIcon&&"file-image"!==this.formatIcon?this.ptToPx(this._pageHeight):this._pageHeight,o=t>e?window.innerHeight-100:window.innerHeight+100,i=t||o;return t>e?Math.round(100*o/i):Math.round(100*i/o)},e.prototype.zoomOptions=function(){var e=this.getFitToWidth(),t=this.getFitToHeight();return this._zoomService.zoomOptions(e,t)},Object.defineProperty(e.prototype,"zoom",{get:function(){return this._zoom},set:function(e){this._zoom=e,this._zoomService.changeZoom(this._zoom)},enumerable:!0,configurable:!0}),e.prototype.selectZoom=function(e){this.zoom=e.value},e.prototype.rotate=function(e){var t=this;if(!this.formatDisabled){var o=this._navigateService.currentPage;if(this.saveRotateStateConfig&&this.file)this._viewerService.rotate(this.credentials,e,o).subscribe(function(e){var o,i;try{for(var n=s(e),r=n.next();!r.done;r=n.next()){var a=r.value,p=t.file.pages[a.pageNumber-1];t.file&&t.file.pages&&p&&t.changeAngle(p,a.angle)}}catch(e){o={error:e}}finally{try{r&&!r.done&&(i=n.return)&&i.call(n)}finally{if(o)throw o.error}}});else{var i=this.file.pages[o-1];if(this.file&&this.file.pages&&i){var n=i.angle+e;n>360?this.changeAngle(i,90):n<-360?this.changeAngle(i,-90):this.changeAngle(i,n)}}}},e.prototype.changeAngle=function(e,t){e.angle=t},e.prototype.downloadFile=function(){this.formatDisabled||window.location.assign(this._viewerService.getDownloadUrl(this.credentials))},e.prototype.printFile=function(){var e=this;this.formatDisabled||(0!==this.viewerConfig.preloadPageCount?"Portable Document Format"===n.FileUtil.find(this.file.guid,!1).format?this._viewerService.loadPrintPdf(this.credentials).subscribe(function(t){var o=new Blob([t],{type:"application/pdf"});e._renderPrintService.changeBlob(o)}):this._viewerService.loadPrint(this.credentials).subscribe(function(t){e.file.pages=t.pages,e._renderPrintService.changePages(e.file.pages)}):this._renderPrintService.changePages(this.file.pages))},e.prototype.openThumbnails=function(){var e=this;this.formatDisabled||(this.showThumbnails?this.showThumbnails=!1:0===this.viewerConfig.preloadPageCount?this.showThumbnails=!0:this._viewerService.loadThumbnails(this.credentials).subscribe(function(t){e.file.pages=t.pages,e.showThumbnails=!0}))},e.prototype.clearData=function(){var e,t;if(this.file&&this.file.pages)try{for(var o=s(this.file.pages),i=o.next();!i.done;i=o.next()){i.value.data=null}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}},e.prototype.onRightClick=function(e){return this.enableRightClickConfig},e.prototype.openSearch=function(){this.formatDisabled||(this.showSearch=!this.showSearch)},e.prototype.refreshZoom=function(){this.formatIcon=this.file?n.FileUtil.find(this.file.guid,!1).icon:null,this.zoom=this._windowService.isDesktop()?100:this.getFitToWidth()},e.decorators=[{type:o.Component,args:[{selector:"gd-viewer",template:'\n
\n
\n \n \n \n\n \n \n \n\n \n \n
{{currentPage}}/{{countPages}}
\n \n \n\n \n \n\n \n \n\n \n \n\n \n
\n
\n
\n \n\n \n
\n\n \n Click to open file
\n Or drop file here\n
\n\n \n\n \n \n
\n',styles:["@import url(https://fonts.googleapis.com/css?family=Open+Sans&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.gd-document,/deep/ .document{-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important}.current-page-number{margin-left:7px;font-size:14px;color:#959da5;width:37px;height:37px;line-height:37px;text-align:center}.current-page-number.active{color:#fff}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.doc-panel{display:flex;height:calc(100vh - 60px);flex-direction:row}.thumbnails-button{position:absolute;right:3px}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{background-color:#3e4e5a;width:100%}::ng-deep .tools .button,::ng-deep .tools .nav-caret,::ng-deep .tools .selected-value{color:#fff!important}::ng-deep .tools .button.inactive,::ng-deep .tools .nav-caret.inactive,::ng-deep .tools .selected-value.inactive{color:#959da5!important}::ng-deep .tools .button{flex-flow:column}::ng-deep .tools .dropdown-menu .option{color:#6e6e6e!important}::ng-deep .tools .dropdown-menu .option:hover{background-color:#4b566c!important}::ng-deep .tools .icon-button{margin:0 0 0 7px!important}::ng-deep .tools .select{width:65px;height:37px;margin-left:7px;line-height:37px;text-align:center}@media (max-width:1037px){.current-page-number,.mobile-hide{display:none}::ng-deep .tools gd-button:nth-child(1)>.icon-button{margin:0 0 0 10px!important}::ng-deep .tools .icon-button{height:60px;width:60px}::ng-deep .tools .gd-nav-search-btn .icon-button{height:37px;width:37px}::ng-deep .tools .gd-nav-search-btn .button{font-size:14px}}"]}]}],e.ctorParameters=function(){return[{type:p},{type:n.ModalService},{type:g},{type:n.UploadFilesService},{type:n.NavigateService},{type:n.ZoomService},{type:n.PagePreloadService},{type:n.RenderPrintService},{type:n.PasswordService},{type:n.WindowService},{type:n.LoadingMaskService}]},e}(),d=function(){function e(e,t){this._navigateService=e,this._zoomService=t}return e.prototype.ngOnInit=function(){},e.prototype.ngOnChanges=function(){this.pages.forEach(function(e){e.data=e.data.replace(/>\s+<").replace(/\uFEFF/g,"")})},e.prototype.ngAfterViewInit=function(){this._zoomService.changeZoom(this._zoomService.zoom)},e.prototype.ngOnDestroy=function(){this._zoomService.changeZoom(this._zoomService.zoom)},e.prototype.imgData=function(e){return this.isHtmlMode?"data:image/png;base64,":"data:image/png;base64,"+e},e.prototype.getScale=function(e,t){return Math.min(190/e,190/t)},e.prototype.openPage=function(e){this._navigateService.navigateTo(e)},e.decorators=[{type:o.Component,args:[{selector:"gd-thumbnails",template:'
\n
\n
\n
\n
\n \n
\n
\n
\n
\n',styles:[":host{flex:0 0 300px;background:#f5f5f5;color:#fff;overflow-y:auto;display:block;transition:margin-left .2s;height:100%}.gd-page{width:272px;height:272px;transition:.3s;background-color:#e7e7e7;cursor:pointer;margin:14px 14px 0}.gd-page:hover{background-color:silver}.gd-wrapper{transform:translate(-50%,-50%);left:50%;top:50%;position:relative;background-color:#fff;box-shadow:0 4px 12px -4px rgba(0,0,0,.38)}.gd-wrapper /deep/ img{width:inherit}.gd-thumbnails::-webkit-scrollbar{width:0;background-color:#f5f5f5}.gd-thumbnails-panzoom>.gd-thumbnails-landscape{margin:-134px 0 -1px 12px}.gd-thumbnails .gd-page-image{height:inherit;margin-left:153px!important}.gd-thumbnails-landscape-image{margin:-90px 0 -23px!important}.gd-thumbnails-landscape-image-rotated{margin:126px 0 -3px -104px!important}"]}]}],e.ctorParameters=function(){return[{type:n.NavigateService},{type:n.ZoomService}]},e.propDecorators={pages:[{type:o.Input}],guid:[{type:o.Input}],mode:[{type:o.Input}],isHtmlMode:[{type:o.Input}]},e}();function f(e){return function(){return e.load()}}var u=function(){function e(){}return e.forRoot=function(t){return n.Api.DEFAULT_API_ENDPOINT=t,{ngModule:e}},e.decorators=[{type:o.NgModule,args:[{declarations:[c,d],imports:[t.BrowserModule,n.CommonComponentsModule,i.HttpClientModule,a.FontAwesomeModule],exports:[c,d,n.CommonComponentsModule],providers:[p,n.ConfigService,g,{provide:i.HTTP_INTERCEPTORS,useClass:n.ErrorInterceptorService,multi:!0},{provide:o.APP_INITIALIZER,useFactory:f,deps:[g],multi:!0}]}]}],e}();e.ViewerAppComponent=c,e.ViewerConfigService=g,e.ViewerModule=u,e.ViewerService=p,e.initializeApp=f,e.ɵa=d,Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/platform-browser"),require("@angular/core"),require("@angular/common/http"),require("@groupdocs.examples.angular/common-components"),require("rxjs"),require("@fortawesome/angular-fontawesome")):"function"==typeof define&&define.amd?define("@groupdocs.examples.angular/viewer",["exports","@angular/platform-browser","@angular/core","@angular/common/http","@groupdocs.examples.angular/common-components","rxjs","@fortawesome/angular-fontawesome"],t):t(((e=e||self).groupdocs=e.groupdocs||{},e.groupdocs.examples=e.groupdocs.examples||{},e.groupdocs.examples.angular=e.groupdocs.examples.angular||{},e.groupdocs.examples.angular.viewer={}),e.ng.platformBrowser,e.ng.core,e.ng.common.http,e.commonComponents,e.rxjs,e.angularFontawesome)}(this,function(e,t,o,i,n,r,a){"use strict";function s(e){var t="function"==typeof Symbol&&e[Symbol.iterator],o=0;return t?t.call(e):{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}}}var p=function(){function e(e,t){this._http=e,this._config=t}return e.prototype.loadFiles=function(e){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.LOAD_FILE_TREE,{path:e},n.Api.httpOptionsJson)},e.prototype.loadFile=function(e){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.LOAD_DOCUMENT_DESCRIPTION,e,n.Api.httpOptionsJson)},e.prototype.upload=function(e,t,o){var i=new FormData;return i.append("file",e),i.append("rewrite",String(o)),t&&i.append("url",t),this._http.post(this._config.getViewerApiEndpoint()+n.Api.UPLOAD_DOCUMENTS,i)},e.prototype.loadPage=function(e,t){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.LOAD_DOCUMENT_PAGE,{guid:e.guid,password:e.password,page:t},n.Api.httpOptionsJson)},e.prototype.rotate=function(e,t,o){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.ROTATE_DOCUMENT_PAGE,{guid:e.guid,password:e.password,pages:[o],angle:t},n.Api.httpOptionsJson)},e.prototype.getDownloadUrl=function(e){return this._config.getViewerApiEndpoint()+n.Api.DOWNLOAD_DOCUMENTS+"/?path="+e.guid},e.prototype.loadPrint=function(e){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.LOAD_PRINT,{guid:e.guid,password:e.password},n.Api.httpOptionsJson)},e.prototype.loadPrintPdf=function(e){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.LOAD_PRINT_PDF,{guid:e.guid,password:e.password},n.Api.httpOptionsJsonResponseTypeBlob)},e.prototype.loadThumbnails=function(e){return this._http.post(this._config.getViewerApiEndpoint()+n.Api.LOAD_THUMBNAILS,{guid:e.guid,password:e.password},n.Api.httpOptionsJson)},e.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:n.ConfigService}]},e.ngInjectableDef=o.ɵɵdefineInjectable({factory:function(){return new e(o.ɵɵinject(i.HttpClient),o.ɵɵinject(n.ConfigService))},token:e,providedIn:"root"}),e}(),l=function(){},g=function(){function e(e,t){this._http=e,this._config=t,this._viewerConfig=new r.BehaviorSubject(new l),this._updatedConfig=this._viewerConfig.asObservable()}return Object.defineProperty(e.prototype,"updatedConfig",{get:function(){return this._updatedConfig},enumerable:!0,configurable:!0}),e.prototype.load=function(){var e=this;return new Promise(function(t,o){var i=e._config.getConfigEndpoint(n.Api.VIEWER_APP);e._http.get(i,n.Api.httpOptionsJson).toPromise().then(function(o){var i=o;e._viewerConfig.next(i),t()}).catch(function(e){o("Could not load viewer config: "+JSON.stringify(e))})})},e.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:n.ConfigService}]},e.ngInjectableDef=o.ɵɵdefineInjectable({factory:function(){return new e(o.ɵɵinject(i.HttpClient),o.ɵɵinject(n.ConfigService))},token:e,providedIn:"root"}),e}(),c=function(){function e(e,t,o,i,r,a,s,p,l,g,c){var d=this;this._viewerService=e,this._modalService=t,this._navigateService=r,this._zoomService=a,this._renderPrintService=p,this._windowService=g,this._loadingMaskService=c,this.title="viewer",this.files=[],this.countPages=0,this.formatDisabled=!this.file,this.showThumbnails=!1,this.browseFilesModal=n.CommonModals.BrowseFiles,this.showSearch=!1,this._zoom=100,this.fileWasDropped=!1,o.updatedConfig.subscribe(function(e){d.viewerConfig=e}),i.uploadsChange.subscribe(function(e){if(e){var t=void 0;for(t=0;t0&&t<=d.countPages&&!d.file.pages[t-1].data&&d.preloadPages(t,t)}),l.passChange.subscribe(function(e){d.selectFile(d.credentials.guid,e,n.CommonModals.PasswordRequired)}),this.isDesktop=g.isDesktop(),g.onResize.subscribe(function(e){d.isDesktop=g.isDesktop(),d.refreshZoom()})}return e.prototype.ngOnInit=function(){""!==this.viewerConfig.defaultDocument&&(this.isLoading=!0,this.selectFile(this.viewerConfig.defaultDocument,"",""))},e.prototype.ngAfterViewInit=function(){var e=this;this._loadingMaskService.onLoadingChanged.subscribe(function(t){return e.isLoading=t}),this.refreshZoom()},Object.defineProperty(e.prototype,"rewriteConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.rewrite},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"zoomConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.zoom},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pageSelectorConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.pageSelector},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"searchConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.search},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"thumbnailsConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.thumbnails},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rotateConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.rotate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"downloadConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.download},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"uploadConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.upload},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"printConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.print},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"browseConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.browse},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"htmlModeConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.htmlMode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"saveRotateStateConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.saveRotateState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"enableRightClickConfig",{get:function(){return!this.viewerConfig||this.viewerConfig.enableRightClick},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentPage",{get:function(){return this._navigateService.currentPage},enumerable:!0,configurable:!0}),e.prototype.openModal=function(e){this._modalService.open(e)},e.prototype.closeModal=function(e){this._modalService.close(e)},e.prototype.selectDir=function(e){var t=this;this._viewerService.loadFiles(e).subscribe(function(e){return t.files=e||[]})},e.prototype.selectFile=function(e,t,o){var i=this;this.credentials={guid:e,password:t},this._viewerService.loadFile(this.credentials).subscribe(function(e){if(i.file=e,i.formatDisabled=!i.file,e){e.pages&&e.pages[0]&&(i._pageHeight=e.pages[0].height,i._pageWidth=e.pages[0].width,i.options=i.zoomOptions(),i.refreshZoom());var t=i.viewerConfig.preloadPageCount,o=e.pages?e.pages.length:0;t>0&&i.preloadPages(1,t>o?o:t),i._navigateService.countPages=o,i._navigateService.currentPage=1,i.countPages=o}}),o&&this._modalService.close(o),this.clearData()},e.prototype.preloadPages=function(e,t){for(var o=this,i=function(e){n._viewerService.loadPage(n.credentials,e).subscribe(function(t){o.file.pages[e-1]=t})},n=this,r=e;r<=t;r++)i(r)},e.prototype.upload=function(e){var t=this;this._viewerService.upload(null,e,this.rewriteConfig).subscribe(function(){t.selectDir("")})},e.prototype.nextPage=function(){this.formatDisabled||this._navigateService.nextPage()},e.prototype.prevPage=function(){this.formatDisabled||this._navigateService.prevPage()},e.prototype.toLastPage=function(){this.formatDisabled||this._navigateService.toLastPage()},e.prototype.toFirstPage=function(){this.formatDisabled||this._navigateService.toFirstPage()},e.prototype.navigateToPage=function(e){this.formatDisabled||this._navigateService.navigateTo(e)},e.prototype.zoomIn=function(){this.formatDisabled||this._zoom<490&&(this.zoom=this._zoom+10)},e.prototype.zoomOut=function(){this.formatDisabled||this._zoom>30&&(this.zoom=this._zoom-10)},e.prototype.fileDropped=function(e){this.fileWasDropped=e},e.prototype.ptToPx=function(e){return 96*e/72},e.prototype.getFitToWidth=function(){var e=!this.formatIcon||"file-excel"!==this.formatIcon&&"file-image"!==this.formatIcon?this.ptToPx(this._pageWidth):this._pageWidth,t=!this.formatIcon||"file-excel"!==this.formatIcon&&"file-image"!==this.formatIcon?this.ptToPx(this._pageHeight):this._pageHeight,o=e||window.innerWidth;return t>e&&Math.round(o/window.innerWidth)<2?200-Math.round(100*o/window.innerWidth):Math.round(100*window.innerWidth/o)},e.prototype.getFitToHeight=function(){var e=!this.formatIcon||"file-excel"!==this.formatIcon&&"file-image"!==this.formatIcon?this.ptToPx(this._pageWidth):this._pageWidth,t=!this.formatIcon||"file-excel"!==this.formatIcon&&"file-image"!==this.formatIcon?this.ptToPx(this._pageHeight):this._pageHeight,o=t>e?window.innerHeight-100:window.innerHeight+100,i=t||o;return t>e?Math.round(100*o/i):Math.round(100*i/o)},e.prototype.zoomOptions=function(){var e=this.getFitToWidth(),t=this.getFitToHeight();return this._zoomService.zoomOptions(e,t)},Object.defineProperty(e.prototype,"zoom",{get:function(){return this._zoom},set:function(e){this._zoom=e,this._zoomService.changeZoom(this._zoom)},enumerable:!0,configurable:!0}),e.prototype.selectZoom=function(e){this.zoom=e.value},e.prototype.rotate=function(e){var t=this;if(!this.formatDisabled){var o=this._navigateService.currentPage;if(this.saveRotateStateConfig&&this.file)this._viewerService.rotate(this.credentials,e,o).subscribe(function(e){var o,i;try{for(var n=s(e),r=n.next();!r.done;r=n.next()){var a=r.value,p=t.file.pages[a.pageNumber-1];t.file&&t.file.pages&&p&&t.changeAngle(p,a.angle)}}catch(e){o={error:e}}finally{try{r&&!r.done&&(i=n.return)&&i.call(n)}finally{if(o)throw o.error}}});else{var i=this.file.pages[o-1];if(this.file&&this.file.pages&&i){var n=i.angle+e;n>360?this.changeAngle(i,90):n<-360?this.changeAngle(i,-90):this.changeAngle(i,n)}}}},e.prototype.changeAngle=function(e,t){e.angle=t},e.prototype.downloadFile=function(){this.formatDisabled||window.location.assign(this._viewerService.getDownloadUrl(this.credentials))},e.prototype.printFile=function(){var e=this;this.formatDisabled||(0!==this.viewerConfig.preloadPageCount?"Portable Document Format"===n.FileUtil.find(this.file.guid,!1).format?this._viewerService.loadPrintPdf(this.credentials).subscribe(function(t){var o=new Blob([t],{type:"application/pdf"});e._renderPrintService.changeBlob(o)}):this._viewerService.loadPrint(this.credentials).subscribe(function(t){e.file.pages=t.pages,e._renderPrintService.changePages(e.file.pages)}):this._renderPrintService.changePages(this.file.pages))},e.prototype.openThumbnails=function(){var e=this;this.formatDisabled||(this.showThumbnails?this.showThumbnails=!1:0===this.viewerConfig.preloadPageCount?this.showThumbnails=!0:this._viewerService.loadThumbnails(this.credentials).subscribe(function(t){e.file.pages=t.pages,e.showThumbnails=!0}))},e.prototype.clearData=function(){var e,t;if(this.file&&this.file.pages)try{for(var o=s(this.file.pages),i=o.next();!i.done;i=o.next()){i.value.data=null}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}},e.prototype.onRightClick=function(e){return this.enableRightClickConfig},e.prototype.openSearch=function(){this.formatDisabled||(this.showSearch=!this.showSearch)},e.prototype.refreshZoom=function(){this.formatIcon=this.file?n.FileUtil.find(this.file.guid,!1).icon:null,this.zoom=this._windowService.isDesktop()?100:this.getFitToWidth()},e.decorators=[{type:o.Component,args:[{selector:"gd-viewer",template:'\n
\n
\n \n \n \n\n \n \n \n\n \n \n
{{currentPage}}/{{countPages}}
\n \n \n\n \n \n\n \n \n\n \n \n\n \n
\n
\n
\n \n\n \n
\n\n \n Click to open file
\n Or drop file here\n
\n\n \n\n \n \n
\n',styles:["@import url(https://fonts.googleapis.com/css?family=Open+Sans&display=swap);:host *{font-family:'Open Sans',Arial,Helvetica,sans-serif}.gd-document,/deep/ .document{-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important}.current-page-number{margin-left:7px;font-size:14px;color:#959da5;width:37px;height:37px;line-height:37px;text-align:center}.current-page-number.active{color:#fff}.wrapper{align-items:stretch;height:100%;width:100%;position:fixed;top:0;bottom:0;left:0;right:0}.doc-panel{display:flex;height:calc(100vh - 60px);flex-direction:row}.thumbnails-button{position:absolute;right:3px}.top-panel{display:flex;align-items:center;width:100%}.toolbar-panel{background-color:#3e4e5a;width:100%}::ng-deep .tools .button,::ng-deep .tools .nav-caret,::ng-deep .tools .selected-value{color:#fff!important}::ng-deep .tools .button.inactive,::ng-deep .tools .nav-caret.inactive,::ng-deep .tools .selected-value.inactive{color:#959da5!important}::ng-deep .tools .button{flex-flow:column}::ng-deep .tools .dropdown-menu .option{color:#6e6e6e!important}::ng-deep .tools .dropdown-menu .option:hover{background-color:#4b566c!important}::ng-deep .tools .icon-button{margin:0 0 0 7px!important}::ng-deep .tools .select{width:65px;height:37px;margin-left:7px;line-height:37px;text-align:center}@media (max-width:1037px){.current-page-number,.mobile-hide{display:none}::ng-deep .tools gd-button:nth-child(1)>.icon-button{margin:0 0 0 10px!important}::ng-deep .tools .icon-button{height:60px;width:60px}::ng-deep .tools .gd-nav-search-btn .icon-button{height:37px;width:37px}::ng-deep .tools .gd-nav-search-btn .button{font-size:14px}}"]}]}],e.ctorParameters=function(){return[{type:p},{type:n.ModalService},{type:g},{type:n.UploadFilesService},{type:n.NavigateService},{type:n.ZoomService},{type:n.PagePreloadService},{type:n.RenderPrintService},{type:n.PasswordService},{type:n.WindowService},{type:n.LoadingMaskService}]},e}(),d=function(){function e(e,t){this._navigateService=e,this._zoomService=t}return e.prototype.ngOnInit=function(){},e.prototype.ngOnChanges=function(){this.pages.forEach(function(e){e.data=e.data.replace(/>\s+<")})},e.prototype.ngAfterViewInit=function(){this._zoomService.changeZoom(this._zoomService.zoom)},e.prototype.ngOnDestroy=function(){this._zoomService.changeZoom(this._zoomService.zoom)},e.prototype.imgData=function(e){return this.isHtmlMode?"data:image/png;base64,":"data:image/png;base64,"+e},e.prototype.getScale=function(e,t){return Math.min(190/e,190/t)},e.prototype.openPage=function(e){this._navigateService.navigateTo(e)},e.decorators=[{type:o.Component,args:[{selector:"gd-thumbnails",template:'
\n
\n
\n
\n
\n \n
\n
\n
\n
\n',styles:[":host{flex:0 0 300px;background:#f5f5f5;color:#fff;overflow-y:auto;display:block;transition:margin-left .2s;height:100%}.gd-page{width:272px;height:272px;transition:.3s;background-color:#e7e7e7;cursor:pointer;margin:14px 14px 0}.gd-page:hover{background-color:silver}.gd-wrapper{transform:translate(-50%,-50%);left:50%;top:50%;position:relative;background-color:#fff;box-shadow:0 4px 12px -4px rgba(0,0,0,.38)}.gd-wrapper /deep/ img{width:inherit}.gd-thumbnails::-webkit-scrollbar{width:0;background-color:#f5f5f5}.gd-thumbnails-panzoom>.gd-thumbnails-landscape{margin:-134px 0 -1px 12px}.gd-thumbnails .gd-page-image{height:inherit;margin-left:153px!important}.gd-thumbnails-landscape-image{margin:-90px 0 -23px!important}.gd-thumbnails-landscape-image-rotated{margin:126px 0 -3px -104px!important}"]}]}],e.ctorParameters=function(){return[{type:n.NavigateService},{type:n.ZoomService}]},e.propDecorators={pages:[{type:o.Input}],guid:[{type:o.Input}],mode:[{type:o.Input}],isHtmlMode:[{type:o.Input}]},e}();function f(e){return function(){return e.load()}}var u=function(){function e(){}return e.forRoot=function(t){return n.Api.DEFAULT_API_ENDPOINT=t,{ngModule:e}},e.decorators=[{type:o.NgModule,args:[{declarations:[c,d],imports:[t.BrowserModule,n.CommonComponentsModule,i.HttpClientModule,a.FontAwesomeModule],exports:[c,d,n.CommonComponentsModule],providers:[p,n.ConfigService,g,{provide:i.HTTP_INTERCEPTORS,useClass:n.ErrorInterceptorService,multi:!0},{provide:o.APP_INITIALIZER,useFactory:f,deps:[g],multi:!0}]}]}],e}();e.ViewerAppComponent=c,e.ViewerConfigService=g,e.ViewerModule=u,e.ViewerService=p,e.initializeApp=f,e.ɵa=d,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=groupdocs.examples.angular-viewer.umd.min.js.map \ No newline at end of file diff --git a/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.min.js.map b/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.min.js.map index 9d0b31c8e..654326086 100644 --- a/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.min.js.map +++ b/dist/libs/viewer/bundles/groupdocs.examples.angular-viewer.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/viewer/lib/viewer.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-app.component.ts","ng://@groupdocs.examples.angular/viewer/lib/thumbnails/thumbnails.component.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer.module.ts"],"names":["__values","o","m","Symbol","iterator","i","call","next","length","value","done","ViewerService","_http","_config","this","prototype","loadFiles","path","post","getViewerApiEndpoint","Api","LOAD_FILE_TREE","httpOptionsJson","loadFile","credentials","LOAD_DOCUMENT_DESCRIPTION","upload","file","url","rewrite","formData","FormData","append","String","UPLOAD_DOCUMENTS","loadPage","page","LOAD_DOCUMENT_PAGE","guid","password","rotate","angle","ROTATE_DOCUMENT_PAGE","pages","getDownloadUrl","DOWNLOAD_DOCUMENTS","loadPrint","LOAD_PRINT","loadPrintPdf","LOAD_PRINT_PDF","httpOptionsJsonResponseTypeBlob","loadThumbnails","LOAD_THUMBNAILS","Injectable","args","providedIn","HttpClient","ConfigService","ViewerConfig","ViewerConfigService","_viewerConfig","BehaviorSubject","_updatedConfig","asObservable","Object","defineProperty","load","_this","Promise","resolve","reject","configEndpoint","getConfigEndpoint","VIEWER_APP","get","toPromise","then","response","viewerConfig","catch","JSON","stringify","ViewerAppComponent","_viewerService","_modalService","configService","uploadFilesService","_navigateService","_zoomService","pagePreloadService","_renderPrintService","passwordService","_windowService","_loadingMaskService","title","files","countPages","formatDisabled","showThumbnails","browseFilesModal","CommonModals","BrowseFiles","showSearch","_zoom","fileWasDropped","updatedConfig","subscribe","uploadsChange","uploads","item","obj","selectFile","selectDir","checkPreload","preloadPageCount","data","preloadPages","passChange","pass","PasswordRequired","isDesktop","onResize","w","refreshZoom","ngOnInit","defaultDocument","isLoading","ngAfterViewInit","onLoadingChanged","loading","zoom","pageSelector","search","thumbnails","download","print","browse","htmlMode","saveRotateState","enableRightClick","currentPage","openModal","id","open","closeModal","close","$event","modalId","_pageHeight","height","_pageWidth","width","options","zoomOptions","clearData","start","end","this_1","rewriteConfig","nextPage","prevPage","toLastPage","toFirstPage","navigateToPage","navigateTo","zoomIn","zoomOut","fileDropped","ptToPx","pt","getFitToWidth","pageWidth","formatIcon","pageHeight","offsetWidth","window","innerWidth","Math","round","getFitToHeight","windowHeight","innerHeight","offsetHeight","changeZoom","selectZoom","deg","pageNumber","saveRotateStateConfig","data_1","tslib_1.__values","data_1_1","pageModel","changeAngle","downloadFile","location","assign","printFile","FileUtil","find","format","blob","Blob","type","changeBlob","changePages","openThumbnails","_b","_c","onRightClick","enableRightClickConfig","openSearch","icon","Component","selector","template","ModalService","UploadFilesService","NavigateService","ZoomService","PagePreloadService","RenderPrintService","PasswordService","WindowService","LoadingMaskService","ThumbnailsComponent","ngOnChanges","forEach","replace","ngOnDestroy","imgData","isHtmlMode","getScale","x","y","min","openPage","Input","initializeApp","viewerConfigService","ViewerModule","forRoot","apiEndpoint","DEFAULT_API_ENDPOINT","ngModule","NgModule","declarations","imports","BrowserModule","CommonComponentsModule","HttpClientModule","FontAwesomeModule","exports","providers","provide","HTTP_INTERCEPTORS","useClass","ErrorInterceptorService","multi","APP_INITIALIZER","useFactory","deps"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {Api, ConfigService, FileCredentials} from \"@groupdocs.examples.angular/common-components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getViewerApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n rotate(credentials: FileCredentials, angle: number, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.ROTATE_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'pages': [page],\n 'angle': angle\n }, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getViewerApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n\n loadPrint(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n\n loadPrintPdf(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT_PDF, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJsonResponseTypeBlob);\n }\n\n loadThumbnails(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_THUMBNAILS, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n}\n","export class ViewerConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n htmlMode: boolean;\n preloadPageCount: 0;\n zoom: boolean;\n search: boolean;\n thumbnails: boolean;\n rotate: boolean;\n cache: boolean;\n saveRotateState: boolean;\n watermarkText: string;\n printAllowed: boolean;\n}\n","import {Injectable} from '@angular/core';\nimport {ViewerConfig} from \"./viewer-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerConfigService {\n private _viewerConfig: BehaviorSubject = new BehaviorSubject(new ViewerConfig());\n private _updatedConfig: Observable = this._viewerConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.VIEWER_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ViewerConfig) => {\n const viewerConfig = response;\n this._viewerConfig.next(viewerConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load viewer config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {AfterViewInit, Component, ElementRef, ViewChildren, QueryList, OnInit} from '@angular/core';\nimport {ViewerService} from \"./viewer.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n NavigateService,\n PagePreloadService,\n PageModel,\n ZoomService,\n RotatedPage,\n RenderPrintService,\n FileUtil,\n PasswordService,\n FileCredentials, CommonModals, LoadingMaskService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfig} from \"./viewer-config\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {WindowService} from \"@groupdocs.examples.angular/common-components\";\n//import * as Hammer from 'hammerjs';\n\n@Component({\n selector: 'gd-viewer',\n templateUrl: './viewer-app.component.html',\n styleUrls: ['./viewer-app.component.less']\n})\nexport class ViewerAppComponent implements OnInit, AfterViewInit {\n title = 'viewer';\n files: FileModel[] = [];\n file: FileDescription;\n viewerConfig: ViewerConfig;\n countPages = 0;\n formatDisabled = !this.file;\n showThumbnails = false;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n showSearch = false;\n isDesktop: boolean;\n isLoading: boolean;\n\n _zoom = 100;\n _pageWidth: number;\n _pageHeight: number;\n options;\n //@ViewChildren('docPanel') docPanelComponent: QueryList;\n fileWasDropped = false;\n formatIcon: string;\n\n constructor(private _viewerService: ViewerService,\n private _modalService: ModalService,\n configService: ViewerConfigService,\n uploadFilesService: UploadFilesService,\n private _navigateService: NavigateService,\n private _zoomService: ZoomService,\n pagePreloadService: PagePreloadService,\n private _renderPrintService: RenderPrintService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _loadingMaskService: LoadingMaskService) {\n\n configService.updatedConfig.subscribe((viewerConfig) => {\n this.viewerConfig = viewerConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._viewerService.upload(uploads.item(i), '', this.viewerConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.viewerConfig.preloadPageCount !== 0) {\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.pages[i - 1].data) {\n this.preloadPages(i, i);\n }\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n this.refreshZoom();\n });\n }\n\n ngOnInit() {\n if (this.viewerConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.viewerConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n\n this.refreshZoom();\n\n // this.docPanelComponent.changes.subscribe((comps: QueryList) =>\n // {\n // comps.toArray().forEach((item) => {\n // const hammer = new Hammer(item.nativeElement);\n // hammer.get('pinch').set({ enable: true });\n // });\n // });\n }\n\n get rewriteConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rewrite : true;\n }\n\n get zoomConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.zoom : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.pageSelector : true;\n }\n\n get searchConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.search : true;\n }\n\n get thumbnailsConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.thumbnails : true;\n }\n\n get rotateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rotate : true;\n }\n\n get downloadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.browse : true;\n }\n\n get htmlModeConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.htmlMode : true;\n }\n\n get saveRotateStateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.saveRotateState : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.enableRightClick : true;\n }\n\n get currentPage(): number {\n return this._navigateService.currentPage;\n }\n\n openModal(id: string) {\n this._modalService.open(id);\n }\n\n closeModal(id: string) {\n this._modalService.close(id);\n }\n\n selectDir($event: string) {\n this._viewerService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = {guid: $event, password: password};\n this._viewerService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.file = file;\n this.formatDisabled = !this.file;\n if (file) {\n if (file.pages && file.pages[0]) {\n this._pageHeight = file.pages[0].height;\n this._pageWidth = file.pages[0].width;\n this.options = this.zoomOptions();\n this.refreshZoom();\n }\n const preloadPageCount = this.viewerConfig.preloadPageCount;\n const countPages = file.pages ? file.pages.length : 0;\n if (preloadPageCount > 0) {\n this.preloadPages(1, preloadPageCount > countPages ? countPages : preloadPageCount);\n }\n this._navigateService.countPages = countPages;\n this._navigateService.currentPage = 1;\n this.countPages = countPages;\n }\n }\n );\n if (modalId) {\n this._modalService.close(modalId);\n }\n this.clearData();\n }\n\n preloadPages(start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._viewerService.loadPage(this.credentials, i).subscribe((page: PageModel) => {\n this.file.pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n this._viewerService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n nextPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.nextPage();\n }\n\n prevPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.prevPage();\n }\n\n toLastPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toLastPage();\n }\n\n toFirstPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toFirstPage();\n }\n\n navigateToPage(page: number) {\n if (this.formatDisabled)\n return;\n this._navigateService.navigateTo(page);\n }\n\n zoomIn() {\n if (this.formatDisabled)\n return;\n if (this._zoom < 490) {\n this.zoom = this._zoom + 10;\n }\n }\n\n zoomOut() {\n if (this.formatDisabled)\n return;\n if (this._zoom > 30) {\n this.zoom = this._zoom - 10;\n }\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n private getFitToWidth() {\n // Images and Excel-related files receiving dimensions in px from server\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const offsetWidth = pageWidth ? pageWidth : window.innerWidth;\n\n return (pageHeight > pageWidth && Math.round(offsetWidth / window.innerWidth) < 2) ? 200 - Math.round(offsetWidth * 100 / window.innerWidth) : Math.round(window.innerWidth * 100 / offsetWidth);\n }\n\n private getFitToHeight() {\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const windowHeight = (pageHeight > pageWidth) ? window.innerHeight - 100 : window.innerHeight + 100;\n const offsetHeight = pageHeight ? pageHeight : windowHeight;\n\n return (pageHeight > pageWidth) ? Math.round(windowHeight * 100 / offsetHeight) : Math.round(offsetHeight * 100 / windowHeight);\n }\n\n zoomOptions() {\n const width = this.getFitToWidth();\n const height = this.getFitToHeight();\n return this._zoomService.zoomOptions(width, height);\n }\n\n set zoom(zoom) {\n this._zoom = zoom;\n this._zoomService.changeZoom(this._zoom);\n }\n\n get zoom() {\n return this._zoom;\n }\n\n selectZoom($event: any) {\n this.zoom = $event.value;\n }\n\n rotate(deg: number) {\n if (this.formatDisabled)\n return;\n const pageNumber = this._navigateService.currentPage;\n\n if (this.saveRotateStateConfig && this.file) {\n this._viewerService.rotate(this.credentials, deg, pageNumber).subscribe((data: RotatedPage[]) => {\n for (const page of data) {\n const pageModel = this.file.pages[page.pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n this.changeAngle(pageModel, page.angle);\n }\n }\n })\n } else {\n const pageModel = this.file.pages[pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n const angle = pageModel.angle + deg;\n if (angle > 360) {\n this.changeAngle(pageModel, 90);\n } else if (angle < -360) {\n this.changeAngle(pageModel, -90);\n } else {\n this.changeAngle(pageModel, angle);\n }\n }\n }\n }\n\n private changeAngle(page: PageModel, angle: number) {\n page.angle = angle;\n }\n\n downloadFile() {\n if (this.formatDisabled)\n return;\n window.location.assign(this._viewerService.getDownloadUrl(this.credentials));\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if (this.viewerConfig.preloadPageCount !== 0) {\n if (FileUtil.find(this.file.guid, false).format === \"Portable Document Format\") {\n this._viewerService.loadPrintPdf(this.credentials).subscribe(blob => {\n const file = new Blob([blob], {type: 'application/pdf'});\n this._renderPrintService.changeBlob(file);\n });\n } else {\n this._viewerService.loadPrint(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this._renderPrintService.changePages(this.file.pages);\n });\n }\n } else {\n this._renderPrintService.changePages(this.file.pages);\n }\n }\n\n openThumbnails() {\n if (this.formatDisabled)\n return;\n\n if (this.showThumbnails) {\n this.showThumbnails = false;\n return;\n }\n\n if (this.viewerConfig.preloadPageCount === 0) {\n this.showThumbnails = true;\n } else {\n this._viewerService.loadThumbnails(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this.showThumbnails = true;\n })\n }\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n openSearch() {\n if (this.formatDisabled)\n return;\n this.showSearch = !this.showSearch;\n }\n\n // onPinchIn($event){\n // this.zoomOut();\n // }\n\n // onPinchOut($event){\n // this.zoomIn();\n // }\n\n private refreshZoom() {\n this.formatIcon = this.file ? FileUtil.find(this.file.guid, false).icon : null;\n this.zoom = this._windowService.isDesktop() ? 100 : this.getFitToWidth();\n }\n}\n","import {Component, Input, OnInit, OnDestroy, AfterViewInit, OnChanges} from '@angular/core';\nimport {NavigateService, PageModel, ZoomService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-thumbnails',\n templateUrl: './thumbnails.component.html',\n styleUrls: ['./thumbnails.component.less']\n})\nexport class ThumbnailsComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n\n @Input() pages: PageModel[];\n @Input() guid: string;\n @Input() mode: boolean;\n @Input() isHtmlMode: boolean;\n\n constructor(private _navigateService: NavigateService, private _zoomService: ZoomService) {\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n // TODO: this is temporary needed to remove unneeded spaces and BOM symbol \n // which leads to undesired spaces on the top of the docs pages\n this.pages.forEach(page => {\n page.data = page.data.replace(/>\\s+<').replace(/\\uFEFF/g,\"\");\n });\n }\n\n ngAfterViewInit() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n ngOnDestroy() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n imgData(data: string) {\n const dataImagePngBase64 = 'data:image/png;base64,';\n if (!this.isHtmlMode) {\n return dataImagePngBase64 + data;\n }\n return dataImagePngBase64;\n }\n\n getScale(x: number, y: number) {\n return Math.min(190 / x, 190 / y);\n }\n\n openPage(pageNumber: number) {\n this._navigateService.navigateTo(pageNumber);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ViewerAppComponent} from './viewer-app.component';\nimport { Api, CommonComponentsModule, ErrorInterceptorService } from '@groupdocs.examples.angular/common-components';\nimport {ViewerService} from \"./viewer.service\";\nimport {ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {ThumbnailsComponent} from './thumbnails/thumbnails.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nexport function initializeApp(viewerConfigService: ViewerConfigService) {\n const result = () => viewerConfigService.load();\n return result;\n}\n\n@NgModule({\n declarations: [\n ViewerAppComponent,\n ThumbnailsComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n ViewerAppComponent,\n ThumbnailsComponent,\n CommonComponentsModule\n ],\n providers: [\n ViewerService,\n ConfigService,\n ViewerConfigService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ViewerConfigService], multi: true\n }\n ]\n})\nexport class ViewerModule {\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: ViewerModule\n };\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@groupdocs.examples.angular/viewer/lib/viewer.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-app.component.ts","ng://@groupdocs.examples.angular/viewer/lib/thumbnails/thumbnails.component.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer.module.ts"],"names":["__values","o","m","Symbol","iterator","i","call","next","length","value","done","ViewerService","_http","_config","this","prototype","loadFiles","path","post","getViewerApiEndpoint","Api","LOAD_FILE_TREE","httpOptionsJson","loadFile","credentials","LOAD_DOCUMENT_DESCRIPTION","upload","file","url","rewrite","formData","FormData","append","String","UPLOAD_DOCUMENTS","loadPage","page","LOAD_DOCUMENT_PAGE","guid","password","rotate","angle","ROTATE_DOCUMENT_PAGE","pages","getDownloadUrl","DOWNLOAD_DOCUMENTS","loadPrint","LOAD_PRINT","loadPrintPdf","LOAD_PRINT_PDF","httpOptionsJsonResponseTypeBlob","loadThumbnails","LOAD_THUMBNAILS","Injectable","args","providedIn","HttpClient","ConfigService","ViewerConfig","ViewerConfigService","_viewerConfig","BehaviorSubject","_updatedConfig","asObservable","Object","defineProperty","load","_this","Promise","resolve","reject","configEndpoint","getConfigEndpoint","VIEWER_APP","get","toPromise","then","response","viewerConfig","catch","JSON","stringify","ViewerAppComponent","_viewerService","_modalService","configService","uploadFilesService","_navigateService","_zoomService","pagePreloadService","_renderPrintService","passwordService","_windowService","_loadingMaskService","title","files","countPages","formatDisabled","showThumbnails","browseFilesModal","CommonModals","BrowseFiles","showSearch","_zoom","fileWasDropped","updatedConfig","subscribe","uploadsChange","uploads","item","obj","selectFile","selectDir","checkPreload","preloadPageCount","data","preloadPages","passChange","pass","PasswordRequired","isDesktop","onResize","w","refreshZoom","ngOnInit","defaultDocument","isLoading","ngAfterViewInit","onLoadingChanged","loading","zoom","pageSelector","search","thumbnails","download","print","browse","htmlMode","saveRotateState","enableRightClick","currentPage","openModal","id","open","closeModal","close","$event","modalId","_pageHeight","height","_pageWidth","width","options","zoomOptions","clearData","start","end","this_1","rewriteConfig","nextPage","prevPage","toLastPage","toFirstPage","navigateToPage","navigateTo","zoomIn","zoomOut","fileDropped","ptToPx","pt","getFitToWidth","pageWidth","formatIcon","pageHeight","offsetWidth","window","innerWidth","Math","round","getFitToHeight","windowHeight","innerHeight","offsetHeight","changeZoom","selectZoom","deg","pageNumber","saveRotateStateConfig","data_1","tslib_1.__values","data_1_1","pageModel","changeAngle","downloadFile","location","assign","printFile","FileUtil","find","format","blob","Blob","type","changeBlob","changePages","openThumbnails","_b","_c","onRightClick","enableRightClickConfig","openSearch","icon","Component","selector","template","ModalService","UploadFilesService","NavigateService","ZoomService","PagePreloadService","RenderPrintService","PasswordService","WindowService","LoadingMaskService","ThumbnailsComponent","ngOnChanges","forEach","replace","ngOnDestroy","imgData","isHtmlMode","getScale","x","y","min","openPage","Input","initializeApp","viewerConfigService","ViewerModule","forRoot","apiEndpoint","DEFAULT_API_ENDPOINT","ngModule","NgModule","declarations","imports","BrowserModule","CommonComponentsModule","HttpClientModule","FontAwesomeModule","exports","providers","provide","HTTP_INTERCEPTORS","useClass","ErrorInterceptorService","multi","APP_INITIALIZER","useFactory","deps"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {Api, ConfigService, FileCredentials} from \"@groupdocs.examples.angular/common-components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getViewerApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n rotate(credentials: FileCredentials, angle: number, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.ROTATE_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'pages': [page],\n 'angle': angle\n }, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getViewerApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n\n loadPrint(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n\n loadPrintPdf(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT_PDF, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJsonResponseTypeBlob);\n }\n\n loadThumbnails(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_THUMBNAILS, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n}\n","export class ViewerConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n htmlMode: boolean;\n preloadPageCount: 0;\n zoom: boolean;\n search: boolean;\n thumbnails: boolean;\n rotate: boolean;\n cache: boolean;\n saveRotateState: boolean;\n watermarkText: string;\n printAllowed: boolean;\n}\n","import {Injectable} from '@angular/core';\nimport {ViewerConfig} from \"./viewer-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerConfigService {\n private _viewerConfig: BehaviorSubject = new BehaviorSubject(new ViewerConfig());\n private _updatedConfig: Observable = this._viewerConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.VIEWER_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ViewerConfig) => {\n const viewerConfig = response;\n this._viewerConfig.next(viewerConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load viewer config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {AfterViewInit, Component, ElementRef, ViewChildren, QueryList, OnInit} from '@angular/core';\nimport {ViewerService} from \"./viewer.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n NavigateService,\n PagePreloadService,\n PageModel,\n ZoomService,\n RotatedPage,\n RenderPrintService,\n FileUtil,\n PasswordService,\n FileCredentials, CommonModals, LoadingMaskService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfig} from \"./viewer-config\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {WindowService} from \"@groupdocs.examples.angular/common-components\";\n//import * as Hammer from 'hammerjs';\n\n@Component({\n selector: 'gd-viewer',\n templateUrl: './viewer-app.component.html',\n styleUrls: ['./viewer-app.component.less']\n})\nexport class ViewerAppComponent implements OnInit, AfterViewInit {\n title = 'viewer';\n files: FileModel[] = [];\n file: FileDescription;\n viewerConfig: ViewerConfig;\n countPages = 0;\n formatDisabled = !this.file;\n showThumbnails = false;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n showSearch = false;\n isDesktop: boolean;\n isLoading: boolean;\n\n _zoom = 100;\n _pageWidth: number;\n _pageHeight: number;\n options;\n //@ViewChildren('docPanel') docPanelComponent: QueryList;\n fileWasDropped = false;\n formatIcon: string;\n\n constructor(private _viewerService: ViewerService,\n private _modalService: ModalService,\n configService: ViewerConfigService,\n uploadFilesService: UploadFilesService,\n private _navigateService: NavigateService,\n private _zoomService: ZoomService,\n pagePreloadService: PagePreloadService,\n private _renderPrintService: RenderPrintService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _loadingMaskService: LoadingMaskService) {\n\n configService.updatedConfig.subscribe((viewerConfig) => {\n this.viewerConfig = viewerConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._viewerService.upload(uploads.item(i), '', this.viewerConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.viewerConfig.preloadPageCount !== 0) {\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.pages[i - 1].data) {\n this.preloadPages(i, i);\n }\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n this.refreshZoom();\n });\n }\n\n ngOnInit() {\n if (this.viewerConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.viewerConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n\n this.refreshZoom();\n\n // this.docPanelComponent.changes.subscribe((comps: QueryList) =>\n // {\n // comps.toArray().forEach((item) => {\n // const hammer = new Hammer(item.nativeElement);\n // hammer.get('pinch').set({ enable: true });\n // });\n // });\n }\n\n get rewriteConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rewrite : true;\n }\n\n get zoomConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.zoom : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.pageSelector : true;\n }\n\n get searchConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.search : true;\n }\n\n get thumbnailsConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.thumbnails : true;\n }\n\n get rotateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rotate : true;\n }\n\n get downloadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.browse : true;\n }\n\n get htmlModeConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.htmlMode : true;\n }\n\n get saveRotateStateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.saveRotateState : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.enableRightClick : true;\n }\n\n get currentPage(): number {\n return this._navigateService.currentPage;\n }\n\n openModal(id: string) {\n this._modalService.open(id);\n }\n\n closeModal(id: string) {\n this._modalService.close(id);\n }\n\n selectDir($event: string) {\n this._viewerService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = {guid: $event, password: password};\n this._viewerService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.file = file;\n this.formatDisabled = !this.file;\n if (file) {\n if (file.pages && file.pages[0]) {\n this._pageHeight = file.pages[0].height;\n this._pageWidth = file.pages[0].width;\n this.options = this.zoomOptions();\n this.refreshZoom();\n }\n const preloadPageCount = this.viewerConfig.preloadPageCount;\n const countPages = file.pages ? file.pages.length : 0;\n if (preloadPageCount > 0) {\n this.preloadPages(1, preloadPageCount > countPages ? countPages : preloadPageCount);\n }\n this._navigateService.countPages = countPages;\n this._navigateService.currentPage = 1;\n this.countPages = countPages;\n }\n }\n );\n if (modalId) {\n this._modalService.close(modalId);\n }\n this.clearData();\n }\n\n preloadPages(start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._viewerService.loadPage(this.credentials, i).subscribe((page: PageModel) => {\n this.file.pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n this._viewerService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n nextPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.nextPage();\n }\n\n prevPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.prevPage();\n }\n\n toLastPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toLastPage();\n }\n\n toFirstPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toFirstPage();\n }\n\n navigateToPage(page: number) {\n if (this.formatDisabled)\n return;\n this._navigateService.navigateTo(page);\n }\n\n zoomIn() {\n if (this.formatDisabled)\n return;\n if (this._zoom < 490) {\n this.zoom = this._zoom + 10;\n }\n }\n\n zoomOut() {\n if (this.formatDisabled)\n return;\n if (this._zoom > 30) {\n this.zoom = this._zoom - 10;\n }\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n private getFitToWidth() {\n // Images and Excel-related files receiving dimensions in px from server\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const offsetWidth = pageWidth ? pageWidth : window.innerWidth;\n\n return (pageHeight > pageWidth && Math.round(offsetWidth / window.innerWidth) < 2) ? 200 - Math.round(offsetWidth * 100 / window.innerWidth) : Math.round(window.innerWidth * 100 / offsetWidth);\n }\n\n private getFitToHeight() {\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const windowHeight = (pageHeight > pageWidth) ? window.innerHeight - 100 : window.innerHeight + 100;\n const offsetHeight = pageHeight ? pageHeight : windowHeight;\n\n return (pageHeight > pageWidth) ? Math.round(windowHeight * 100 / offsetHeight) : Math.round(offsetHeight * 100 / windowHeight);\n }\n\n zoomOptions() {\n const width = this.getFitToWidth();\n const height = this.getFitToHeight();\n return this._zoomService.zoomOptions(width, height);\n }\n\n set zoom(zoom) {\n this._zoom = zoom;\n this._zoomService.changeZoom(this._zoom);\n }\n\n get zoom() {\n return this._zoom;\n }\n\n selectZoom($event: any) {\n this.zoom = $event.value;\n }\n\n rotate(deg: number) {\n if (this.formatDisabled)\n return;\n const pageNumber = this._navigateService.currentPage;\n\n if (this.saveRotateStateConfig && this.file) {\n this._viewerService.rotate(this.credentials, deg, pageNumber).subscribe((data: RotatedPage[]) => {\n for (const page of data) {\n const pageModel = this.file.pages[page.pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n this.changeAngle(pageModel, page.angle);\n }\n }\n })\n } else {\n const pageModel = this.file.pages[pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n const angle = pageModel.angle + deg;\n if (angle > 360) {\n this.changeAngle(pageModel, 90);\n } else if (angle < -360) {\n this.changeAngle(pageModel, -90);\n } else {\n this.changeAngle(pageModel, angle);\n }\n }\n }\n }\n\n private changeAngle(page: PageModel, angle: number) {\n page.angle = angle;\n }\n\n downloadFile() {\n if (this.formatDisabled)\n return;\n window.location.assign(this._viewerService.getDownloadUrl(this.credentials));\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if (this.viewerConfig.preloadPageCount !== 0) {\n if (FileUtil.find(this.file.guid, false).format === \"Portable Document Format\") {\n this._viewerService.loadPrintPdf(this.credentials).subscribe(blob => {\n const file = new Blob([blob], {type: 'application/pdf'});\n this._renderPrintService.changeBlob(file);\n });\n } else {\n this._viewerService.loadPrint(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this._renderPrintService.changePages(this.file.pages);\n });\n }\n } else {\n this._renderPrintService.changePages(this.file.pages);\n }\n }\n\n openThumbnails() {\n if (this.formatDisabled)\n return;\n\n if (this.showThumbnails) {\n this.showThumbnails = false;\n return;\n }\n\n if (this.viewerConfig.preloadPageCount === 0) {\n this.showThumbnails = true;\n } else {\n this._viewerService.loadThumbnails(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this.showThumbnails = true;\n })\n }\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n openSearch() {\n if (this.formatDisabled)\n return;\n this.showSearch = !this.showSearch;\n }\n\n // onPinchIn($event){\n // this.zoomOut();\n // }\n\n // onPinchOut($event){\n // this.zoomIn();\n // }\n\n private refreshZoom() {\n this.formatIcon = this.file ? FileUtil.find(this.file.guid, false).icon : null;\n this.zoom = this._windowService.isDesktop() ? 100 : this.getFitToWidth();\n }\n}\n","import {Component, Input, OnInit, OnDestroy, AfterViewInit, OnChanges} from '@angular/core';\nimport {NavigateService, PageModel, ZoomService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-thumbnails',\n templateUrl: './thumbnails.component.html',\n styleUrls: ['./thumbnails.component.less']\n})\nexport class ThumbnailsComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n\n @Input() pages: PageModel[];\n @Input() guid: string;\n @Input() mode: boolean;\n @Input() isHtmlMode: boolean;\n\n constructor(private _navigateService: NavigateService, private _zoomService: ZoomService) {\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n // TODO: investigate the root cause of unneded spaces\n this.pages.forEach(page => {\n page.data = page.data.replace(/>\\s+<');\n });\n }\n\n ngAfterViewInit() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n ngOnDestroy() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n imgData(data: string) {\n const dataImagePngBase64 = 'data:image/png;base64,';\n if (!this.isHtmlMode) {\n return dataImagePngBase64 + data;\n }\n return dataImagePngBase64;\n }\n\n getScale(x: number, y: number) {\n return Math.min(190 / x, 190 / y);\n }\n\n openPage(pageNumber: number) {\n this._navigateService.navigateTo(pageNumber);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ViewerAppComponent} from './viewer-app.component';\nimport { Api, CommonComponentsModule, ErrorInterceptorService } from '@groupdocs.examples.angular/common-components';\nimport {ViewerService} from \"./viewer.service\";\nimport {ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {ThumbnailsComponent} from './thumbnails/thumbnails.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nexport function initializeApp(viewerConfigService: ViewerConfigService) {\n const result = () => viewerConfigService.load();\n return result;\n}\n\n@NgModule({\n declarations: [\n ViewerAppComponent,\n ThumbnailsComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n ViewerAppComponent,\n ThumbnailsComponent,\n CommonComponentsModule\n ],\n providers: [\n ViewerService,\n ConfigService,\n ViewerConfigService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ViewerConfigService], multi: true\n }\n ]\n})\nexport class ViewerModule {\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: ViewerModule\n };\n }\n}\n"]} \ No newline at end of file diff --git a/dist/libs/viewer/esm2015/lib/thumbnails/thumbnails.component.js b/dist/libs/viewer/esm2015/lib/thumbnails/thumbnails.component.js index d8c053ac6..5024f806d 100644 --- a/dist/libs/viewer/esm2015/lib/thumbnails/thumbnails.component.js +++ b/dist/libs/viewer/esm2015/lib/thumbnails/thumbnails.component.js @@ -22,14 +22,13 @@ export class ThumbnailsComponent { * @return {?} */ ngOnChanges() { - // TODO: this is temporary needed to remove unneeded spaces and BOM symbol - // which leads to undesired spaces on the top of the docs pages + // TODO: investigate the root cause of unneded spaces this.pages.forEach((/** * @param {?} page * @return {?} */ page => { - page.data = page.data.replace(/>\s+<').replace(/\uFEFF/g, ""); + page.data = page.data.replace(/>\s+<'); })); } /** @@ -110,4 +109,4 @@ if (false) { */ ThumbnailsComponent.prototype._zoomService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvdmlld2VyLyIsInNvdXJjZXMiOlsibGliL3RodW1ibmFpbHMvdGh1bWJuYWlscy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUE4QyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsZUFBZSxFQUFhLFdBQVcsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBT3RHLE1BQU0sT0FBTyxtQkFBbUI7Ozs7O0lBTzlCLFlBQW9CLGdCQUFpQyxFQUFVLFlBQXlCO1FBQXBFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYTtJQUN4RixDQUFDOzs7O0lBRUQsUUFBUTtJQUNSLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsMkVBQTJFO1FBQzNFLCtEQUErRDtRQUMvRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87Ozs7UUFBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7OztJQUVELE9BQU8sQ0FBQyxJQUFZOztjQUNaLGtCQUFrQixHQUFHLHdCQUF3QjtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixPQUFPLGtCQUFrQixHQUFHLElBQUksQ0FBQztTQUNsQztRQUNELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQzs7Ozs7O0lBRUQsUUFBUSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7OztJQUVELFFBQVEsQ0FBQyxVQUFrQjtRQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OztZQWhERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLDQ4QkFBMEM7O2FBRTNDOzs7O1lBTk8sZUFBZTtZQUFhLFdBQVc7OztvQkFTNUMsS0FBSzttQkFDTCxLQUFLO21CQUNMLEtBQUs7eUJBQ0wsS0FBSzs7OztJQUhOLG9DQUE0Qjs7SUFDNUIsbUNBQXNCOztJQUN0QixtQ0FBdUI7O0lBQ3ZCLHlDQUE2Qjs7Ozs7SUFFakIsK0NBQXlDOzs7OztJQUFFLDJDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRlU2VydmljZSwgUGFnZU1vZGVsLCBab29tU2VydmljZX0gZnJvbSBcIkBncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50c1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZC10aHVtYm5haWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RodW1ibmFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90aHVtYm5haWxzLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGh1bWJuYWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHBhZ2VzOiBQYWdlTW9kZWxbXTtcbiAgQElucHV0KCkgZ3VpZDogc3RyaW5nO1xuICBASW5wdXQoKSBtb2RlOiBib29sZWFuO1xuICBASW5wdXQoKSBpc0h0bWxNb2RlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX25hdmlnYXRlU2VydmljZTogTmF2aWdhdGVTZXJ2aWNlLCBwcml2YXRlIF96b29tU2VydmljZTogWm9vbVNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgLy8gVE9ETzogdGhpcyBpcyB0ZW1wb3JhcnkgbmVlZGVkIHRvIHJlbW92ZSB1bm5lZWRlZCBzcGFjZXMgYW5kIEJPTSBzeW1ib2wgXG4gICAgLy8gd2hpY2ggbGVhZHMgdG8gdW5kZXNpcmVkIHNwYWNlcyBvbiB0aGUgdG9wIG9mIHRoZSBkb2NzIHBhZ2VzXG4gICAgdGhpcy5wYWdlcy5mb3JFYWNoKHBhZ2UgPT4ge1xuICAgICAgcGFnZS5kYXRhID0gcGFnZS5kYXRhLnJlcGxhY2UoLz5cXHMrPC9nLCc+PCcpLnJlcGxhY2UoL1xcdUZFRkYvZyxcIlwiKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLl96b29tU2VydmljZS5jaGFuZ2Vab29tKHRoaXMuX3pvb21TZXJ2aWNlLnpvb20pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fem9vbVNlcnZpY2UuY2hhbmdlWm9vbSh0aGlzLl96b29tU2VydmljZS56b29tKTtcbiAgfVxuXG4gIGltZ0RhdGEoZGF0YTogc3RyaW5nKSB7XG4gICAgY29uc3QgZGF0YUltYWdlUG5nQmFzZTY0ID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnO1xuICAgIGlmICghdGhpcy5pc0h0bWxNb2RlKSB7XG4gICAgICByZXR1cm4gZGF0YUltYWdlUG5nQmFzZTY0ICsgZGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGFJbWFnZVBuZ0Jhc2U2NDtcbiAgfVxuXG4gIGdldFNjYWxlKHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIE1hdGgubWluKDE5MCAvIHgsIDE5MCAvIHkpO1xuICB9XG5cbiAgb3BlblBhZ2UocGFnZU51bWJlcjogbnVtYmVyKSB7XG4gICAgdGhpcy5fbmF2aWdhdGVTZXJ2aWNlLm5hdmlnYXRlVG8ocGFnZU51bWJlcik7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvdmlld2VyLyIsInNvdXJjZXMiOlsibGliL3RodW1ibmFpbHMvdGh1bWJuYWlscy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUE4QyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsZUFBZSxFQUFhLFdBQVcsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBT3RHLE1BQU0sT0FBTyxtQkFBbUI7Ozs7O0lBTzlCLFlBQW9CLGdCQUFpQyxFQUFVLFlBQXlCO1FBQXBFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYTtJQUN4RixDQUFDOzs7O0lBRUQsUUFBUTtJQUNSLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QscURBQXFEO1FBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTzs7OztRQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7OztJQUVELE9BQU8sQ0FBQyxJQUFZOztjQUNaLGtCQUFrQixHQUFHLHdCQUF3QjtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixPQUFPLGtCQUFrQixHQUFHLElBQUksQ0FBQztTQUNsQztRQUNELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQzs7Ozs7O0lBRUQsUUFBUSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7OztJQUVELFFBQVEsQ0FBQyxVQUFrQjtRQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OztZQS9DRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLDQ4QkFBMEM7O2FBRTNDOzs7O1lBTk8sZUFBZTtZQUFhLFdBQVc7OztvQkFTNUMsS0FBSzttQkFDTCxLQUFLO21CQUNMLEtBQUs7eUJBQ0wsS0FBSzs7OztJQUhOLG9DQUE0Qjs7SUFDNUIsbUNBQXNCOztJQUN0QixtQ0FBdUI7O0lBQ3ZCLHlDQUE2Qjs7Ozs7SUFFakIsK0NBQXlDOzs7OztJQUFFLDJDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRlU2VydmljZSwgUGFnZU1vZGVsLCBab29tU2VydmljZX0gZnJvbSBcIkBncm91cGRvY3MuZXhhbXBsZXMuYW5ndWxhci9jb21tb24tY29tcG9uZW50c1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZC10aHVtYm5haWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RodW1ibmFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90aHVtYm5haWxzLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGh1bWJuYWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHBhZ2VzOiBQYWdlTW9kZWxbXTtcbiAgQElucHV0KCkgZ3VpZDogc3RyaW5nO1xuICBASW5wdXQoKSBtb2RlOiBib29sZWFuO1xuICBASW5wdXQoKSBpc0h0bWxNb2RlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX25hdmlnYXRlU2VydmljZTogTmF2aWdhdGVTZXJ2aWNlLCBwcml2YXRlIF96b29tU2VydmljZTogWm9vbVNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgdGhlIHJvb3QgY2F1c2Ugb2YgdW5uZWRlZCBzcGFjZXNcbiAgICB0aGlzLnBhZ2VzLmZvckVhY2gocGFnZSA9PiB7XG4gICAgICBwYWdlLmRhdGEgPSBwYWdlLmRhdGEucmVwbGFjZSgvPlxccys8L2csJz48Jyk7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fem9vbVNlcnZpY2UuY2hhbmdlWm9vbSh0aGlzLl96b29tU2VydmljZS56b29tKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3pvb21TZXJ2aWNlLmNoYW5nZVpvb20odGhpcy5fem9vbVNlcnZpY2Uuem9vbSk7XG4gIH1cblxuICBpbWdEYXRhKGRhdGE6IHN0cmluZykge1xuICAgIGNvbnN0IGRhdGFJbWFnZVBuZ0Jhc2U2NCA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJztcbiAgICBpZiAoIXRoaXMuaXNIdG1sTW9kZSkge1xuICAgICAgcmV0dXJuIGRhdGFJbWFnZVBuZ0Jhc2U2NCArIGRhdGE7XG4gICAgfVxuICAgIHJldHVybiBkYXRhSW1hZ2VQbmdCYXNlNjQ7XG4gIH1cblxuICBnZXRTY2FsZSh4OiBudW1iZXIsIHk6IG51bWJlcikge1xuICAgIHJldHVybiBNYXRoLm1pbigxOTAgLyB4LCAxOTAgLyB5KTtcbiAgfVxuXG4gIG9wZW5QYWdlKHBhZ2VOdW1iZXI6IG51bWJlcikge1xuICAgIHRoaXMuX25hdmlnYXRlU2VydmljZS5uYXZpZ2F0ZVRvKHBhZ2VOdW1iZXIpO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/dist/libs/viewer/esm5/lib/thumbnails/thumbnails.component.js b/dist/libs/viewer/esm5/lib/thumbnails/thumbnails.component.js index be14f36ce..614abb275 100644 --- a/dist/libs/viewer/esm5/lib/thumbnails/thumbnails.component.js +++ b/dist/libs/viewer/esm5/lib/thumbnails/thumbnails.component.js @@ -24,14 +24,13 @@ var ThumbnailsComponent = /** @class */ (function () { * @return {?} */ function () { - // TODO: this is temporary needed to remove unneeded spaces and BOM symbol - // which leads to undesired spaces on the top of the docs pages + // TODO: investigate the root cause of unneded spaces this.pages.forEach((/** * @param {?} page * @return {?} */ function (page) { - page.data = page.data.replace(/>\s+<').replace(/\uFEFF/g, ""); + page.data = page.data.replace(/>\s+<'); })); }; /** @@ -133,4 +132,4 @@ if (false) { */ ThumbnailsComponent.prototype._zoomService; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvdmlld2VyLyIsInNvdXJjZXMiOlsibGliL3RodW1ibmFpbHMvdGh1bWJuYWlscy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUE4QyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsZUFBZSxFQUFhLFdBQVcsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBRXRHO0lBWUUsNkJBQW9CLGdCQUFpQyxFQUFVLFlBQXlCO1FBQXBFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYTtJQUN4RixDQUFDOzs7O0lBRUQsc0NBQVE7OztJQUFSO0lBQ0EsQ0FBQzs7OztJQUVELHlDQUFXOzs7SUFBWDtRQUNFLDJFQUEyRTtRQUMzRSwrREFBK0Q7UUFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxJQUFJO1lBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUMsRUFBRSxDQUFDLENBQUM7UUFDckUsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsNkNBQWU7OztJQUFmO1FBQ0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7O0lBRUQseUNBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7OztJQUVELHFDQUFPOzs7O0lBQVAsVUFBUSxJQUFZOztZQUNaLGtCQUFrQixHQUFHLHdCQUF3QjtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixPQUFPLGtCQUFrQixHQUFHLElBQUksQ0FBQztTQUNsQztRQUNELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQzs7Ozs7O0lBRUQsc0NBQVE7Ozs7O0lBQVIsVUFBUyxDQUFTLEVBQUUsQ0FBUztRQUMzQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7Ozs7SUFFRCxzQ0FBUTs7OztJQUFSLFVBQVMsVUFBa0I7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxDQUFDOztnQkFoREYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6Qiw0OEJBQTBDOztpQkFFM0M7Ozs7Z0JBTk8sZUFBZTtnQkFBYSxXQUFXOzs7d0JBUzVDLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLOzZCQUNMLEtBQUs7O0lBdUNSLDBCQUFDO0NBQUEsQUFqREQsSUFpREM7U0E1Q1ksbUJBQW1COzs7SUFFOUIsb0NBQTRCOztJQUM1QixtQ0FBc0I7O0lBQ3RCLG1DQUF1Qjs7SUFDdkIseUNBQTZCOzs7OztJQUVqQiwrQ0FBeUM7Ozs7O0lBQUUsMkNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGVTZXJ2aWNlLCBQYWdlTW9kZWwsIFpvb21TZXJ2aWNlfSBmcm9tIFwiQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dkLXRodW1ibmFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJuYWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RodW1ibmFpbHMuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUaHVtYm5haWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgcGFnZXM6IFBhZ2VNb2RlbFtdO1xuICBASW5wdXQoKSBndWlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1vZGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzSHRtbE1vZGU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbmF2aWdhdGVTZXJ2aWNlOiBOYXZpZ2F0ZVNlcnZpY2UsIHByaXZhdGUgX3pvb21TZXJ2aWNlOiBab29tU2VydmljZSkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICAvLyBUT0RPOiB0aGlzIGlzIHRlbXBvcmFyeSBuZWVkZWQgdG8gcmVtb3ZlIHVubmVlZGVkIHNwYWNlcyBhbmQgQk9NIHN5bWJvbCBcbiAgICAvLyB3aGljaCBsZWFkcyB0byB1bmRlc2lyZWQgc3BhY2VzIG9uIHRoZSB0b3Agb2YgdGhlIGRvY3MgcGFnZXNcbiAgICB0aGlzLnBhZ2VzLmZvckVhY2gocGFnZSA9PiB7XG4gICAgICBwYWdlLmRhdGEgPSBwYWdlLmRhdGEucmVwbGFjZSgvPlxccys8L2csJz48JykucmVwbGFjZSgvXFx1RkVGRi9nLFwiXCIpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX3pvb21TZXJ2aWNlLmNoYW5nZVpvb20odGhpcy5fem9vbVNlcnZpY2Uuem9vbSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl96b29tU2VydmljZS5jaGFuZ2Vab29tKHRoaXMuX3pvb21TZXJ2aWNlLnpvb20pO1xuICB9XG5cbiAgaW1nRGF0YShkYXRhOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkYXRhSW1hZ2VQbmdCYXNlNjQgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LCc7XG4gICAgaWYgKCF0aGlzLmlzSHRtbE1vZGUpIHtcbiAgICAgIHJldHVybiBkYXRhSW1hZ2VQbmdCYXNlNjQgKyBkYXRhO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YUltYWdlUG5nQmFzZTY0O1xuICB9XG5cbiAgZ2V0U2NhbGUoeDogbnVtYmVyLCB5OiBudW1iZXIpIHtcbiAgICByZXR1cm4gTWF0aC5taW4oMTkwIC8geCwgMTkwIC8geSk7XG4gIH1cblxuICBvcGVuUGFnZShwYWdlTnVtYmVyOiBudW1iZXIpIHtcbiAgICB0aGlzLl9uYXZpZ2F0ZVNlcnZpY2UubmF2aWdhdGVUbyhwYWdlTnVtYmVyKTtcbiAgfVxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JvdXBkb2NzLmV4YW1wbGVzLmFuZ3VsYXIvdmlld2VyLyIsInNvdXJjZXMiOlsibGliL3RodW1ibmFpbHMvdGh1bWJuYWlscy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUE4QyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsZUFBZSxFQUFhLFdBQVcsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBRXRHO0lBWUUsNkJBQW9CLGdCQUFpQyxFQUFVLFlBQXlCO1FBQXBFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYTtJQUN4RixDQUFDOzs7O0lBRUQsc0NBQVE7OztJQUFSO0lBQ0EsQ0FBQzs7OztJQUVELHlDQUFXOzs7SUFBWDtRQUNFLHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87Ozs7UUFBQyxVQUFBLElBQUk7WUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsNkNBQWU7OztJQUFmO1FBQ0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7O0lBRUQseUNBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7OztJQUVELHFDQUFPOzs7O0lBQVAsVUFBUSxJQUFZOztZQUNaLGtCQUFrQixHQUFHLHdCQUF3QjtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixPQUFPLGtCQUFrQixHQUFHLElBQUksQ0FBQztTQUNsQztRQUNELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQzs7Ozs7O0lBRUQsc0NBQVE7Ozs7O0lBQVIsVUFBUyxDQUFTLEVBQUUsQ0FBUztRQUMzQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7Ozs7SUFFRCxzQ0FBUTs7OztJQUFSLFVBQVMsVUFBa0I7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxDQUFDOztnQkEvQ0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6Qiw0OEJBQTBDOztpQkFFM0M7Ozs7Z0JBTk8sZUFBZTtnQkFBYSxXQUFXOzs7d0JBUzVDLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLOzZCQUNMLEtBQUs7O0lBc0NSLDBCQUFDO0NBQUEsQUFoREQsSUFnREM7U0EzQ1ksbUJBQW1COzs7SUFFOUIsb0NBQTRCOztJQUM1QixtQ0FBc0I7O0lBQ3RCLG1DQUF1Qjs7SUFDdkIseUNBQTZCOzs7OztJQUVqQiwrQ0FBeUM7Ozs7O0lBQUUsMkNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGVTZXJ2aWNlLCBQYWdlTW9kZWwsIFpvb21TZXJ2aWNlfSBmcm9tIFwiQGdyb3VwZG9jcy5leGFtcGxlcy5hbmd1bGFyL2NvbW1vbi1jb21wb25lbnRzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dkLXRodW1ibmFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJuYWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RodW1ibmFpbHMuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUaHVtYm5haWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgcGFnZXM6IFBhZ2VNb2RlbFtdO1xuICBASW5wdXQoKSBndWlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1vZGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzSHRtbE1vZGU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbmF2aWdhdGVTZXJ2aWNlOiBOYXZpZ2F0ZVNlcnZpY2UsIHByaXZhdGUgX3pvb21TZXJ2aWNlOiBab29tU2VydmljZSkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSB0aGUgcm9vdCBjYXVzZSBvZiB1bm5lZGVkIHNwYWNlc1xuICAgIHRoaXMucGFnZXMuZm9yRWFjaChwYWdlID0+IHtcbiAgICAgIHBhZ2UuZGF0YSA9IHBhZ2UuZGF0YS5yZXBsYWNlKC8+XFxzKzwvZywnPjwnKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLl96b29tU2VydmljZS5jaGFuZ2Vab29tKHRoaXMuX3pvb21TZXJ2aWNlLnpvb20pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fem9vbVNlcnZpY2UuY2hhbmdlWm9vbSh0aGlzLl96b29tU2VydmljZS56b29tKTtcbiAgfVxuXG4gIGltZ0RhdGEoZGF0YTogc3RyaW5nKSB7XG4gICAgY29uc3QgZGF0YUltYWdlUG5nQmFzZTY0ID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnO1xuICAgIGlmICghdGhpcy5pc0h0bWxNb2RlKSB7XG4gICAgICByZXR1cm4gZGF0YUltYWdlUG5nQmFzZTY0ICsgZGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGFJbWFnZVBuZ0Jhc2U2NDtcbiAgfVxuXG4gIGdldFNjYWxlKHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIE1hdGgubWluKDE5MCAvIHgsIDE5MCAvIHkpO1xuICB9XG5cbiAgb3BlblBhZ2UocGFnZU51bWJlcjogbnVtYmVyKSB7XG4gICAgdGhpcy5fbmF2aWdhdGVTZXJ2aWNlLm5hdmlnYXRlVG8ocGFnZU51bWJlcik7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/dist/libs/viewer/fesm2015/groupdocs.examples.angular-viewer.js b/dist/libs/viewer/fesm2015/groupdocs.examples.angular-viewer.js index 383aa4748..dfbe2e759 100644 --- a/dist/libs/viewer/fesm2015/groupdocs.examples.angular-viewer.js +++ b/dist/libs/viewer/fesm2015/groupdocs.examples.angular-viewer.js @@ -832,14 +832,13 @@ class ThumbnailsComponent { * @return {?} */ ngOnChanges() { - // TODO: this is temporary needed to remove unneeded spaces and BOM symbol - // which leads to undesired spaces on the top of the docs pages + // TODO: investigate the root cause of unneded spaces this.pages.forEach((/** * @param {?} page * @return {?} */ page => { - page.data = page.data.replace(/>\s+<').replace(/\uFEFF/g, ""); + page.data = page.data.replace(/>\s+<'); })); } /** diff --git a/dist/libs/viewer/fesm2015/groupdocs.examples.angular-viewer.js.map b/dist/libs/viewer/fesm2015/groupdocs.examples.angular-viewer.js.map index 866f5044f..538e55553 100644 --- a/dist/libs/viewer/fesm2015/groupdocs.examples.angular-viewer.js.map +++ b/dist/libs/viewer/fesm2015/groupdocs.examples.angular-viewer.js.map @@ -1 +1 @@ -{"version":3,"file":"groupdocs.examples.angular-viewer.js","sources":["ng://@groupdocs.examples.angular/viewer/lib/viewer.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-app.component.ts","ng://@groupdocs.examples.angular/viewer/lib/thumbnails/thumbnails.component.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer.module.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {Api, ConfigService, FileCredentials} from \"@groupdocs.examples.angular/common-components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getViewerApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n rotate(credentials: FileCredentials, angle: number, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.ROTATE_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'pages': [page],\n 'angle': angle\n }, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getViewerApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n\n loadPrint(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n\n loadPrintPdf(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT_PDF, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJsonResponseTypeBlob);\n }\n\n loadThumbnails(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_THUMBNAILS, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n}\n","export class ViewerConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n htmlMode: boolean;\n preloadPageCount: 0;\n zoom: boolean;\n search: boolean;\n thumbnails: boolean;\n rotate: boolean;\n cache: boolean;\n saveRotateState: boolean;\n watermarkText: string;\n printAllowed: boolean;\n}\n","import {Injectable} from '@angular/core';\nimport {ViewerConfig} from \"./viewer-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerConfigService {\n private _viewerConfig: BehaviorSubject = new BehaviorSubject(new ViewerConfig());\n private _updatedConfig: Observable = this._viewerConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.VIEWER_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ViewerConfig) => {\n const viewerConfig = response;\n this._viewerConfig.next(viewerConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load viewer config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {AfterViewInit, Component, ElementRef, ViewChildren, QueryList, OnInit} from '@angular/core';\nimport {ViewerService} from \"./viewer.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n NavigateService,\n PagePreloadService,\n PageModel,\n ZoomService,\n RotatedPage,\n RenderPrintService,\n FileUtil,\n PasswordService,\n FileCredentials, CommonModals, LoadingMaskService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfig} from \"./viewer-config\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {WindowService} from \"@groupdocs.examples.angular/common-components\";\n//import * as Hammer from 'hammerjs';\n\n@Component({\n selector: 'gd-viewer',\n templateUrl: './viewer-app.component.html',\n styleUrls: ['./viewer-app.component.less']\n})\nexport class ViewerAppComponent implements OnInit, AfterViewInit {\n title = 'viewer';\n files: FileModel[] = [];\n file: FileDescription;\n viewerConfig: ViewerConfig;\n countPages = 0;\n formatDisabled = !this.file;\n showThumbnails = false;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n showSearch = false;\n isDesktop: boolean;\n isLoading: boolean;\n\n _zoom = 100;\n _pageWidth: number;\n _pageHeight: number;\n options;\n //@ViewChildren('docPanel') docPanelComponent: QueryList;\n fileWasDropped = false;\n formatIcon: string;\n\n constructor(private _viewerService: ViewerService,\n private _modalService: ModalService,\n configService: ViewerConfigService,\n uploadFilesService: UploadFilesService,\n private _navigateService: NavigateService,\n private _zoomService: ZoomService,\n pagePreloadService: PagePreloadService,\n private _renderPrintService: RenderPrintService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _loadingMaskService: LoadingMaskService) {\n\n configService.updatedConfig.subscribe((viewerConfig) => {\n this.viewerConfig = viewerConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._viewerService.upload(uploads.item(i), '', this.viewerConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.viewerConfig.preloadPageCount !== 0) {\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.pages[i - 1].data) {\n this.preloadPages(i, i);\n }\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n this.refreshZoom();\n });\n }\n\n ngOnInit() {\n if (this.viewerConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.viewerConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n\n this.refreshZoom();\n\n // this.docPanelComponent.changes.subscribe((comps: QueryList) =>\n // {\n // comps.toArray().forEach((item) => {\n // const hammer = new Hammer(item.nativeElement);\n // hammer.get('pinch').set({ enable: true });\n // });\n // });\n }\n\n get rewriteConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rewrite : true;\n }\n\n get zoomConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.zoom : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.pageSelector : true;\n }\n\n get searchConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.search : true;\n }\n\n get thumbnailsConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.thumbnails : true;\n }\n\n get rotateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rotate : true;\n }\n\n get downloadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.browse : true;\n }\n\n get htmlModeConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.htmlMode : true;\n }\n\n get saveRotateStateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.saveRotateState : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.enableRightClick : true;\n }\n\n get currentPage(): number {\n return this._navigateService.currentPage;\n }\n\n openModal(id: string) {\n this._modalService.open(id);\n }\n\n closeModal(id: string) {\n this._modalService.close(id);\n }\n\n selectDir($event: string) {\n this._viewerService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = {guid: $event, password: password};\n this._viewerService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.file = file;\n this.formatDisabled = !this.file;\n if (file) {\n if (file.pages && file.pages[0]) {\n this._pageHeight = file.pages[0].height;\n this._pageWidth = file.pages[0].width;\n this.options = this.zoomOptions();\n this.refreshZoom();\n }\n const preloadPageCount = this.viewerConfig.preloadPageCount;\n const countPages = file.pages ? file.pages.length : 0;\n if (preloadPageCount > 0) {\n this.preloadPages(1, preloadPageCount > countPages ? countPages : preloadPageCount);\n }\n this._navigateService.countPages = countPages;\n this._navigateService.currentPage = 1;\n this.countPages = countPages;\n }\n }\n );\n if (modalId) {\n this._modalService.close(modalId);\n }\n this.clearData();\n }\n\n preloadPages(start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._viewerService.loadPage(this.credentials, i).subscribe((page: PageModel) => {\n this.file.pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n this._viewerService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n nextPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.nextPage();\n }\n\n prevPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.prevPage();\n }\n\n toLastPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toLastPage();\n }\n\n toFirstPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toFirstPage();\n }\n\n navigateToPage(page: number) {\n if (this.formatDisabled)\n return;\n this._navigateService.navigateTo(page);\n }\n\n zoomIn() {\n if (this.formatDisabled)\n return;\n if (this._zoom < 490) {\n this.zoom = this._zoom + 10;\n }\n }\n\n zoomOut() {\n if (this.formatDisabled)\n return;\n if (this._zoom > 30) {\n this.zoom = this._zoom - 10;\n }\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n private getFitToWidth() {\n // Images and Excel-related files receiving dimensions in px from server\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const offsetWidth = pageWidth ? pageWidth : window.innerWidth;\n\n return (pageHeight > pageWidth && Math.round(offsetWidth / window.innerWidth) < 2) ? 200 - Math.round(offsetWidth * 100 / window.innerWidth) : Math.round(window.innerWidth * 100 / offsetWidth);\n }\n\n private getFitToHeight() {\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const windowHeight = (pageHeight > pageWidth) ? window.innerHeight - 100 : window.innerHeight + 100;\n const offsetHeight = pageHeight ? pageHeight : windowHeight;\n\n return (pageHeight > pageWidth) ? Math.round(windowHeight * 100 / offsetHeight) : Math.round(offsetHeight * 100 / windowHeight);\n }\n\n zoomOptions() {\n const width = this.getFitToWidth();\n const height = this.getFitToHeight();\n return this._zoomService.zoomOptions(width, height);\n }\n\n set zoom(zoom) {\n this._zoom = zoom;\n this._zoomService.changeZoom(this._zoom);\n }\n\n get zoom() {\n return this._zoom;\n }\n\n selectZoom($event: any) {\n this.zoom = $event.value;\n }\n\n rotate(deg: number) {\n if (this.formatDisabled)\n return;\n const pageNumber = this._navigateService.currentPage;\n\n if (this.saveRotateStateConfig && this.file) {\n this._viewerService.rotate(this.credentials, deg, pageNumber).subscribe((data: RotatedPage[]) => {\n for (const page of data) {\n const pageModel = this.file.pages[page.pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n this.changeAngle(pageModel, page.angle);\n }\n }\n })\n } else {\n const pageModel = this.file.pages[pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n const angle = pageModel.angle + deg;\n if (angle > 360) {\n this.changeAngle(pageModel, 90);\n } else if (angle < -360) {\n this.changeAngle(pageModel, -90);\n } else {\n this.changeAngle(pageModel, angle);\n }\n }\n }\n }\n\n private changeAngle(page: PageModel, angle: number) {\n page.angle = angle;\n }\n\n downloadFile() {\n if (this.formatDisabled)\n return;\n window.location.assign(this._viewerService.getDownloadUrl(this.credentials));\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if (this.viewerConfig.preloadPageCount !== 0) {\n if (FileUtil.find(this.file.guid, false).format === \"Portable Document Format\") {\n this._viewerService.loadPrintPdf(this.credentials).subscribe(blob => {\n const file = new Blob([blob], {type: 'application/pdf'});\n this._renderPrintService.changeBlob(file);\n });\n } else {\n this._viewerService.loadPrint(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this._renderPrintService.changePages(this.file.pages);\n });\n }\n } else {\n this._renderPrintService.changePages(this.file.pages);\n }\n }\n\n openThumbnails() {\n if (this.formatDisabled)\n return;\n\n if (this.showThumbnails) {\n this.showThumbnails = false;\n return;\n }\n\n if (this.viewerConfig.preloadPageCount === 0) {\n this.showThumbnails = true;\n } else {\n this._viewerService.loadThumbnails(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this.showThumbnails = true;\n })\n }\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n openSearch() {\n if (this.formatDisabled)\n return;\n this.showSearch = !this.showSearch;\n }\n\n // onPinchIn($event){\n // this.zoomOut();\n // }\n\n // onPinchOut($event){\n // this.zoomIn();\n // }\n\n private refreshZoom() {\n this.formatIcon = this.file ? FileUtil.find(this.file.guid, false).icon : null;\n this.zoom = this._windowService.isDesktop() ? 100 : this.getFitToWidth();\n }\n}\n","import {Component, Input, OnInit, OnDestroy, AfterViewInit, OnChanges} from '@angular/core';\nimport {NavigateService, PageModel, ZoomService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-thumbnails',\n templateUrl: './thumbnails.component.html',\n styleUrls: ['./thumbnails.component.less']\n})\nexport class ThumbnailsComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n\n @Input() pages: PageModel[];\n @Input() guid: string;\n @Input() mode: boolean;\n @Input() isHtmlMode: boolean;\n\n constructor(private _navigateService: NavigateService, private _zoomService: ZoomService) {\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n // TODO: this is temporary needed to remove unneeded spaces and BOM symbol \n // which leads to undesired spaces on the top of the docs pages\n this.pages.forEach(page => {\n page.data = page.data.replace(/>\\s+<').replace(/\\uFEFF/g,\"\");\n });\n }\n\n ngAfterViewInit() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n ngOnDestroy() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n imgData(data: string) {\n const dataImagePngBase64 = 'data:image/png;base64,';\n if (!this.isHtmlMode) {\n return dataImagePngBase64 + data;\n }\n return dataImagePngBase64;\n }\n\n getScale(x: number, y: number) {\n return Math.min(190 / x, 190 / y);\n }\n\n openPage(pageNumber: number) {\n this._navigateService.navigateTo(pageNumber);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ViewerAppComponent} from './viewer-app.component';\nimport { Api, CommonComponentsModule, ErrorInterceptorService } from '@groupdocs.examples.angular/common-components';\nimport {ViewerService} from \"./viewer.service\";\nimport {ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {ThumbnailsComponent} from './thumbnails/thumbnails.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nexport function initializeApp(viewerConfigService: ViewerConfigService) {\n const result = () => viewerConfigService.load();\n return result;\n}\n\n@NgModule({\n declarations: [\n ViewerAppComponent,\n ThumbnailsComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n ViewerAppComponent,\n ThumbnailsComponent,\n CommonComponentsModule\n ],\n providers: [\n ViewerService,\n ConfigService,\n ViewerConfigService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ViewerConfigService], multi: true\n }\n ]\n})\nexport class ViewerModule {\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: ViewerModule\n };\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"groupdocs.examples.angular-viewer.js","sources":["ng://@groupdocs.examples.angular/viewer/lib/viewer.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-app.component.ts","ng://@groupdocs.examples.angular/viewer/lib/thumbnails/thumbnails.component.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer.module.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {Api, ConfigService, FileCredentials} from \"@groupdocs.examples.angular/common-components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getViewerApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n rotate(credentials: FileCredentials, angle: number, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.ROTATE_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'pages': [page],\n 'angle': angle\n }, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getViewerApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n\n loadPrint(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n\n loadPrintPdf(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT_PDF, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJsonResponseTypeBlob);\n }\n\n loadThumbnails(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_THUMBNAILS, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n}\n","export class ViewerConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n htmlMode: boolean;\n preloadPageCount: 0;\n zoom: boolean;\n search: boolean;\n thumbnails: boolean;\n rotate: boolean;\n cache: boolean;\n saveRotateState: boolean;\n watermarkText: string;\n printAllowed: boolean;\n}\n","import {Injectable} from '@angular/core';\nimport {ViewerConfig} from \"./viewer-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerConfigService {\n private _viewerConfig: BehaviorSubject = new BehaviorSubject(new ViewerConfig());\n private _updatedConfig: Observable = this._viewerConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.VIEWER_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ViewerConfig) => {\n const viewerConfig = response;\n this._viewerConfig.next(viewerConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load viewer config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {AfterViewInit, Component, ElementRef, ViewChildren, QueryList, OnInit} from '@angular/core';\nimport {ViewerService} from \"./viewer.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n NavigateService,\n PagePreloadService,\n PageModel,\n ZoomService,\n RotatedPage,\n RenderPrintService,\n FileUtil,\n PasswordService,\n FileCredentials, CommonModals, LoadingMaskService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfig} from \"./viewer-config\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {WindowService} from \"@groupdocs.examples.angular/common-components\";\n//import * as Hammer from 'hammerjs';\n\n@Component({\n selector: 'gd-viewer',\n templateUrl: './viewer-app.component.html',\n styleUrls: ['./viewer-app.component.less']\n})\nexport class ViewerAppComponent implements OnInit, AfterViewInit {\n title = 'viewer';\n files: FileModel[] = [];\n file: FileDescription;\n viewerConfig: ViewerConfig;\n countPages = 0;\n formatDisabled = !this.file;\n showThumbnails = false;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n showSearch = false;\n isDesktop: boolean;\n isLoading: boolean;\n\n _zoom = 100;\n _pageWidth: number;\n _pageHeight: number;\n options;\n //@ViewChildren('docPanel') docPanelComponent: QueryList;\n fileWasDropped = false;\n formatIcon: string;\n\n constructor(private _viewerService: ViewerService,\n private _modalService: ModalService,\n configService: ViewerConfigService,\n uploadFilesService: UploadFilesService,\n private _navigateService: NavigateService,\n private _zoomService: ZoomService,\n pagePreloadService: PagePreloadService,\n private _renderPrintService: RenderPrintService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _loadingMaskService: LoadingMaskService) {\n\n configService.updatedConfig.subscribe((viewerConfig) => {\n this.viewerConfig = viewerConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._viewerService.upload(uploads.item(i), '', this.viewerConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.viewerConfig.preloadPageCount !== 0) {\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.pages[i - 1].data) {\n this.preloadPages(i, i);\n }\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n this.refreshZoom();\n });\n }\n\n ngOnInit() {\n if (this.viewerConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.viewerConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n\n this.refreshZoom();\n\n // this.docPanelComponent.changes.subscribe((comps: QueryList) =>\n // {\n // comps.toArray().forEach((item) => {\n // const hammer = new Hammer(item.nativeElement);\n // hammer.get('pinch').set({ enable: true });\n // });\n // });\n }\n\n get rewriteConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rewrite : true;\n }\n\n get zoomConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.zoom : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.pageSelector : true;\n }\n\n get searchConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.search : true;\n }\n\n get thumbnailsConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.thumbnails : true;\n }\n\n get rotateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rotate : true;\n }\n\n get downloadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.browse : true;\n }\n\n get htmlModeConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.htmlMode : true;\n }\n\n get saveRotateStateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.saveRotateState : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.enableRightClick : true;\n }\n\n get currentPage(): number {\n return this._navigateService.currentPage;\n }\n\n openModal(id: string) {\n this._modalService.open(id);\n }\n\n closeModal(id: string) {\n this._modalService.close(id);\n }\n\n selectDir($event: string) {\n this._viewerService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = {guid: $event, password: password};\n this._viewerService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.file = file;\n this.formatDisabled = !this.file;\n if (file) {\n if (file.pages && file.pages[0]) {\n this._pageHeight = file.pages[0].height;\n this._pageWidth = file.pages[0].width;\n this.options = this.zoomOptions();\n this.refreshZoom();\n }\n const preloadPageCount = this.viewerConfig.preloadPageCount;\n const countPages = file.pages ? file.pages.length : 0;\n if (preloadPageCount > 0) {\n this.preloadPages(1, preloadPageCount > countPages ? countPages : preloadPageCount);\n }\n this._navigateService.countPages = countPages;\n this._navigateService.currentPage = 1;\n this.countPages = countPages;\n }\n }\n );\n if (modalId) {\n this._modalService.close(modalId);\n }\n this.clearData();\n }\n\n preloadPages(start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._viewerService.loadPage(this.credentials, i).subscribe((page: PageModel) => {\n this.file.pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n this._viewerService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n nextPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.nextPage();\n }\n\n prevPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.prevPage();\n }\n\n toLastPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toLastPage();\n }\n\n toFirstPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toFirstPage();\n }\n\n navigateToPage(page: number) {\n if (this.formatDisabled)\n return;\n this._navigateService.navigateTo(page);\n }\n\n zoomIn() {\n if (this.formatDisabled)\n return;\n if (this._zoom < 490) {\n this.zoom = this._zoom + 10;\n }\n }\n\n zoomOut() {\n if (this.formatDisabled)\n return;\n if (this._zoom > 30) {\n this.zoom = this._zoom - 10;\n }\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n private getFitToWidth() {\n // Images and Excel-related files receiving dimensions in px from server\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const offsetWidth = pageWidth ? pageWidth : window.innerWidth;\n\n return (pageHeight > pageWidth && Math.round(offsetWidth / window.innerWidth) < 2) ? 200 - Math.round(offsetWidth * 100 / window.innerWidth) : Math.round(window.innerWidth * 100 / offsetWidth);\n }\n\n private getFitToHeight() {\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const windowHeight = (pageHeight > pageWidth) ? window.innerHeight - 100 : window.innerHeight + 100;\n const offsetHeight = pageHeight ? pageHeight : windowHeight;\n\n return (pageHeight > pageWidth) ? Math.round(windowHeight * 100 / offsetHeight) : Math.round(offsetHeight * 100 / windowHeight);\n }\n\n zoomOptions() {\n const width = this.getFitToWidth();\n const height = this.getFitToHeight();\n return this._zoomService.zoomOptions(width, height);\n }\n\n set zoom(zoom) {\n this._zoom = zoom;\n this._zoomService.changeZoom(this._zoom);\n }\n\n get zoom() {\n return this._zoom;\n }\n\n selectZoom($event: any) {\n this.zoom = $event.value;\n }\n\n rotate(deg: number) {\n if (this.formatDisabled)\n return;\n const pageNumber = this._navigateService.currentPage;\n\n if (this.saveRotateStateConfig && this.file) {\n this._viewerService.rotate(this.credentials, deg, pageNumber).subscribe((data: RotatedPage[]) => {\n for (const page of data) {\n const pageModel = this.file.pages[page.pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n this.changeAngle(pageModel, page.angle);\n }\n }\n })\n } else {\n const pageModel = this.file.pages[pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n const angle = pageModel.angle + deg;\n if (angle > 360) {\n this.changeAngle(pageModel, 90);\n } else if (angle < -360) {\n this.changeAngle(pageModel, -90);\n } else {\n this.changeAngle(pageModel, angle);\n }\n }\n }\n }\n\n private changeAngle(page: PageModel, angle: number) {\n page.angle = angle;\n }\n\n downloadFile() {\n if (this.formatDisabled)\n return;\n window.location.assign(this._viewerService.getDownloadUrl(this.credentials));\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if (this.viewerConfig.preloadPageCount !== 0) {\n if (FileUtil.find(this.file.guid, false).format === \"Portable Document Format\") {\n this._viewerService.loadPrintPdf(this.credentials).subscribe(blob => {\n const file = new Blob([blob], {type: 'application/pdf'});\n this._renderPrintService.changeBlob(file);\n });\n } else {\n this._viewerService.loadPrint(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this._renderPrintService.changePages(this.file.pages);\n });\n }\n } else {\n this._renderPrintService.changePages(this.file.pages);\n }\n }\n\n openThumbnails() {\n if (this.formatDisabled)\n return;\n\n if (this.showThumbnails) {\n this.showThumbnails = false;\n return;\n }\n\n if (this.viewerConfig.preloadPageCount === 0) {\n this.showThumbnails = true;\n } else {\n this._viewerService.loadThumbnails(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this.showThumbnails = true;\n })\n }\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n openSearch() {\n if (this.formatDisabled)\n return;\n this.showSearch = !this.showSearch;\n }\n\n // onPinchIn($event){\n // this.zoomOut();\n // }\n\n // onPinchOut($event){\n // this.zoomIn();\n // }\n\n private refreshZoom() {\n this.formatIcon = this.file ? FileUtil.find(this.file.guid, false).icon : null;\n this.zoom = this._windowService.isDesktop() ? 100 : this.getFitToWidth();\n }\n}\n","import {Component, Input, OnInit, OnDestroy, AfterViewInit, OnChanges} from '@angular/core';\nimport {NavigateService, PageModel, ZoomService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-thumbnails',\n templateUrl: './thumbnails.component.html',\n styleUrls: ['./thumbnails.component.less']\n})\nexport class ThumbnailsComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n\n @Input() pages: PageModel[];\n @Input() guid: string;\n @Input() mode: boolean;\n @Input() isHtmlMode: boolean;\n\n constructor(private _navigateService: NavigateService, private _zoomService: ZoomService) {\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n // TODO: investigate the root cause of unneded spaces\n this.pages.forEach(page => {\n page.data = page.data.replace(/>\\s+<');\n });\n }\n\n ngAfterViewInit() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n ngOnDestroy() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n imgData(data: string) {\n const dataImagePngBase64 = 'data:image/png;base64,';\n if (!this.isHtmlMode) {\n return dataImagePngBase64 + data;\n }\n return dataImagePngBase64;\n }\n\n getScale(x: number, y: number) {\n return Math.min(190 / x, 190 / y);\n }\n\n openPage(pageNumber: number) {\n this._navigateService.navigateTo(pageNumber);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ViewerAppComponent} from './viewer-app.component';\nimport { Api, CommonComponentsModule, ErrorInterceptorService } from '@groupdocs.examples.angular/common-components';\nimport {ViewerService} from \"./viewer.service\";\nimport {ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {ThumbnailsComponent} from './thumbnails/thumbnails.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nexport function initializeApp(viewerConfigService: ViewerConfigService) {\n const result = () => viewerConfigService.load();\n return result;\n}\n\n@NgModule({\n declarations: [\n ViewerAppComponent,\n ThumbnailsComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n ViewerAppComponent,\n ThumbnailsComponent,\n CommonComponentsModule\n ],\n providers: [\n ViewerService,\n ConfigService,\n ViewerConfigService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ViewerConfigService], multi: true\n }\n ]\n})\nexport class ViewerModule {\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: ViewerModule\n };\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/libs/viewer/fesm5/groupdocs.examples.angular-viewer.js b/dist/libs/viewer/fesm5/groupdocs.examples.angular-viewer.js index 90665aeed..e85bb1f0b 100644 --- a/dist/libs/viewer/fesm5/groupdocs.examples.angular-viewer.js +++ b/dist/libs/viewer/fesm5/groupdocs.examples.angular-viewer.js @@ -1090,14 +1090,13 @@ var ThumbnailsComponent = /** @class */ (function () { * @return {?} */ function () { - // TODO: this is temporary needed to remove unneeded spaces and BOM symbol - // which leads to undesired spaces on the top of the docs pages + // TODO: investigate the root cause of unneded spaces this.pages.forEach((/** * @param {?} page * @return {?} */ function (page) { - page.data = page.data.replace(/>\s+<').replace(/\uFEFF/g, ""); + page.data = page.data.replace(/>\s+<'); })); }; /** diff --git a/dist/libs/viewer/fesm5/groupdocs.examples.angular-viewer.js.map b/dist/libs/viewer/fesm5/groupdocs.examples.angular-viewer.js.map index b983564d4..816fed55e 100644 --- a/dist/libs/viewer/fesm5/groupdocs.examples.angular-viewer.js.map +++ b/dist/libs/viewer/fesm5/groupdocs.examples.angular-viewer.js.map @@ -1 +1 @@ -{"version":3,"file":"groupdocs.examples.angular-viewer.js","sources":["ng://@groupdocs.examples.angular/viewer/lib/viewer.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-app.component.ts","ng://@groupdocs.examples.angular/viewer/lib/thumbnails/thumbnails.component.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer.module.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {Api, ConfigService, FileCredentials} from \"@groupdocs.examples.angular/common-components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getViewerApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n rotate(credentials: FileCredentials, angle: number, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.ROTATE_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'pages': [page],\n 'angle': angle\n }, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getViewerApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n\n loadPrint(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n\n loadPrintPdf(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT_PDF, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJsonResponseTypeBlob);\n }\n\n loadThumbnails(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_THUMBNAILS, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n}\n","export class ViewerConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n htmlMode: boolean;\n preloadPageCount: 0;\n zoom: boolean;\n search: boolean;\n thumbnails: boolean;\n rotate: boolean;\n cache: boolean;\n saveRotateState: boolean;\n watermarkText: string;\n printAllowed: boolean;\n}\n","import {Injectable} from '@angular/core';\nimport {ViewerConfig} from \"./viewer-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerConfigService {\n private _viewerConfig: BehaviorSubject = new BehaviorSubject(new ViewerConfig());\n private _updatedConfig: Observable = this._viewerConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.VIEWER_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ViewerConfig) => {\n const viewerConfig = response;\n this._viewerConfig.next(viewerConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load viewer config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {AfterViewInit, Component, ElementRef, ViewChildren, QueryList, OnInit} from '@angular/core';\nimport {ViewerService} from \"./viewer.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n NavigateService,\n PagePreloadService,\n PageModel,\n ZoomService,\n RotatedPage,\n RenderPrintService,\n FileUtil,\n PasswordService,\n FileCredentials, CommonModals, LoadingMaskService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfig} from \"./viewer-config\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {WindowService} from \"@groupdocs.examples.angular/common-components\";\n//import * as Hammer from 'hammerjs';\n\n@Component({\n selector: 'gd-viewer',\n templateUrl: './viewer-app.component.html',\n styleUrls: ['./viewer-app.component.less']\n})\nexport class ViewerAppComponent implements OnInit, AfterViewInit {\n title = 'viewer';\n files: FileModel[] = [];\n file: FileDescription;\n viewerConfig: ViewerConfig;\n countPages = 0;\n formatDisabled = !this.file;\n showThumbnails = false;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n showSearch = false;\n isDesktop: boolean;\n isLoading: boolean;\n\n _zoom = 100;\n _pageWidth: number;\n _pageHeight: number;\n options;\n //@ViewChildren('docPanel') docPanelComponent: QueryList;\n fileWasDropped = false;\n formatIcon: string;\n\n constructor(private _viewerService: ViewerService,\n private _modalService: ModalService,\n configService: ViewerConfigService,\n uploadFilesService: UploadFilesService,\n private _navigateService: NavigateService,\n private _zoomService: ZoomService,\n pagePreloadService: PagePreloadService,\n private _renderPrintService: RenderPrintService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _loadingMaskService: LoadingMaskService) {\n\n configService.updatedConfig.subscribe((viewerConfig) => {\n this.viewerConfig = viewerConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._viewerService.upload(uploads.item(i), '', this.viewerConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.viewerConfig.preloadPageCount !== 0) {\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.pages[i - 1].data) {\n this.preloadPages(i, i);\n }\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n this.refreshZoom();\n });\n }\n\n ngOnInit() {\n if (this.viewerConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.viewerConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n\n this.refreshZoom();\n\n // this.docPanelComponent.changes.subscribe((comps: QueryList) =>\n // {\n // comps.toArray().forEach((item) => {\n // const hammer = new Hammer(item.nativeElement);\n // hammer.get('pinch').set({ enable: true });\n // });\n // });\n }\n\n get rewriteConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rewrite : true;\n }\n\n get zoomConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.zoom : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.pageSelector : true;\n }\n\n get searchConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.search : true;\n }\n\n get thumbnailsConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.thumbnails : true;\n }\n\n get rotateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rotate : true;\n }\n\n get downloadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.browse : true;\n }\n\n get htmlModeConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.htmlMode : true;\n }\n\n get saveRotateStateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.saveRotateState : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.enableRightClick : true;\n }\n\n get currentPage(): number {\n return this._navigateService.currentPage;\n }\n\n openModal(id: string) {\n this._modalService.open(id);\n }\n\n closeModal(id: string) {\n this._modalService.close(id);\n }\n\n selectDir($event: string) {\n this._viewerService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = {guid: $event, password: password};\n this._viewerService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.file = file;\n this.formatDisabled = !this.file;\n if (file) {\n if (file.pages && file.pages[0]) {\n this._pageHeight = file.pages[0].height;\n this._pageWidth = file.pages[0].width;\n this.options = this.zoomOptions();\n this.refreshZoom();\n }\n const preloadPageCount = this.viewerConfig.preloadPageCount;\n const countPages = file.pages ? file.pages.length : 0;\n if (preloadPageCount > 0) {\n this.preloadPages(1, preloadPageCount > countPages ? countPages : preloadPageCount);\n }\n this._navigateService.countPages = countPages;\n this._navigateService.currentPage = 1;\n this.countPages = countPages;\n }\n }\n );\n if (modalId) {\n this._modalService.close(modalId);\n }\n this.clearData();\n }\n\n preloadPages(start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._viewerService.loadPage(this.credentials, i).subscribe((page: PageModel) => {\n this.file.pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n this._viewerService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n nextPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.nextPage();\n }\n\n prevPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.prevPage();\n }\n\n toLastPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toLastPage();\n }\n\n toFirstPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toFirstPage();\n }\n\n navigateToPage(page: number) {\n if (this.formatDisabled)\n return;\n this._navigateService.navigateTo(page);\n }\n\n zoomIn() {\n if (this.formatDisabled)\n return;\n if (this._zoom < 490) {\n this.zoom = this._zoom + 10;\n }\n }\n\n zoomOut() {\n if (this.formatDisabled)\n return;\n if (this._zoom > 30) {\n this.zoom = this._zoom - 10;\n }\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n private getFitToWidth() {\n // Images and Excel-related files receiving dimensions in px from server\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const offsetWidth = pageWidth ? pageWidth : window.innerWidth;\n\n return (pageHeight > pageWidth && Math.round(offsetWidth / window.innerWidth) < 2) ? 200 - Math.round(offsetWidth * 100 / window.innerWidth) : Math.round(window.innerWidth * 100 / offsetWidth);\n }\n\n private getFitToHeight() {\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const windowHeight = (pageHeight > pageWidth) ? window.innerHeight - 100 : window.innerHeight + 100;\n const offsetHeight = pageHeight ? pageHeight : windowHeight;\n\n return (pageHeight > pageWidth) ? Math.round(windowHeight * 100 / offsetHeight) : Math.round(offsetHeight * 100 / windowHeight);\n }\n\n zoomOptions() {\n const width = this.getFitToWidth();\n const height = this.getFitToHeight();\n return this._zoomService.zoomOptions(width, height);\n }\n\n set zoom(zoom) {\n this._zoom = zoom;\n this._zoomService.changeZoom(this._zoom);\n }\n\n get zoom() {\n return this._zoom;\n }\n\n selectZoom($event: any) {\n this.zoom = $event.value;\n }\n\n rotate(deg: number) {\n if (this.formatDisabled)\n return;\n const pageNumber = this._navigateService.currentPage;\n\n if (this.saveRotateStateConfig && this.file) {\n this._viewerService.rotate(this.credentials, deg, pageNumber).subscribe((data: RotatedPage[]) => {\n for (const page of data) {\n const pageModel = this.file.pages[page.pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n this.changeAngle(pageModel, page.angle);\n }\n }\n })\n } else {\n const pageModel = this.file.pages[pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n const angle = pageModel.angle + deg;\n if (angle > 360) {\n this.changeAngle(pageModel, 90);\n } else if (angle < -360) {\n this.changeAngle(pageModel, -90);\n } else {\n this.changeAngle(pageModel, angle);\n }\n }\n }\n }\n\n private changeAngle(page: PageModel, angle: number) {\n page.angle = angle;\n }\n\n downloadFile() {\n if (this.formatDisabled)\n return;\n window.location.assign(this._viewerService.getDownloadUrl(this.credentials));\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if (this.viewerConfig.preloadPageCount !== 0) {\n if (FileUtil.find(this.file.guid, false).format === \"Portable Document Format\") {\n this._viewerService.loadPrintPdf(this.credentials).subscribe(blob => {\n const file = new Blob([blob], {type: 'application/pdf'});\n this._renderPrintService.changeBlob(file);\n });\n } else {\n this._viewerService.loadPrint(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this._renderPrintService.changePages(this.file.pages);\n });\n }\n } else {\n this._renderPrintService.changePages(this.file.pages);\n }\n }\n\n openThumbnails() {\n if (this.formatDisabled)\n return;\n\n if (this.showThumbnails) {\n this.showThumbnails = false;\n return;\n }\n\n if (this.viewerConfig.preloadPageCount === 0) {\n this.showThumbnails = true;\n } else {\n this._viewerService.loadThumbnails(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this.showThumbnails = true;\n })\n }\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n openSearch() {\n if (this.formatDisabled)\n return;\n this.showSearch = !this.showSearch;\n }\n\n // onPinchIn($event){\n // this.zoomOut();\n // }\n\n // onPinchOut($event){\n // this.zoomIn();\n // }\n\n private refreshZoom() {\n this.formatIcon = this.file ? FileUtil.find(this.file.guid, false).icon : null;\n this.zoom = this._windowService.isDesktop() ? 100 : this.getFitToWidth();\n }\n}\n","import {Component, Input, OnInit, OnDestroy, AfterViewInit, OnChanges} from '@angular/core';\nimport {NavigateService, PageModel, ZoomService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-thumbnails',\n templateUrl: './thumbnails.component.html',\n styleUrls: ['./thumbnails.component.less']\n})\nexport class ThumbnailsComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n\n @Input() pages: PageModel[];\n @Input() guid: string;\n @Input() mode: boolean;\n @Input() isHtmlMode: boolean;\n\n constructor(private _navigateService: NavigateService, private _zoomService: ZoomService) {\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n // TODO: this is temporary needed to remove unneeded spaces and BOM symbol \n // which leads to undesired spaces on the top of the docs pages\n this.pages.forEach(page => {\n page.data = page.data.replace(/>\\s+<').replace(/\\uFEFF/g,\"\");\n });\n }\n\n ngAfterViewInit() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n ngOnDestroy() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n imgData(data: string) {\n const dataImagePngBase64 = 'data:image/png;base64,';\n if (!this.isHtmlMode) {\n return dataImagePngBase64 + data;\n }\n return dataImagePngBase64;\n }\n\n getScale(x: number, y: number) {\n return Math.min(190 / x, 190 / y);\n }\n\n openPage(pageNumber: number) {\n this._navigateService.navigateTo(pageNumber);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ViewerAppComponent} from './viewer-app.component';\nimport { Api, CommonComponentsModule, ErrorInterceptorService } from '@groupdocs.examples.angular/common-components';\nimport {ViewerService} from \"./viewer.service\";\nimport {ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {ThumbnailsComponent} from './thumbnails/thumbnails.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nexport function initializeApp(viewerConfigService: ViewerConfigService) {\n const result = () => viewerConfigService.load();\n return result;\n}\n\n@NgModule({\n declarations: [\n ViewerAppComponent,\n ThumbnailsComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n ViewerAppComponent,\n ThumbnailsComponent,\n CommonComponentsModule\n ],\n providers: [\n ViewerService,\n ConfigService,\n ViewerConfigService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ViewerConfigService], multi: true\n }\n ]\n})\nexport class ViewerModule {\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: ViewerModule\n };\n }\n}\n"],"names":["tslib_1.__values"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"groupdocs.examples.angular-viewer.js","sources":["ng://@groupdocs.examples.angular/viewer/lib/viewer.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-config.service.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer-app.component.ts","ng://@groupdocs.examples.angular/viewer/lib/thumbnails/thumbnails.component.ts","ng://@groupdocs.examples.angular/viewer/lib/viewer.module.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {Api, ConfigService, FileCredentials} from \"@groupdocs.examples.angular/common-components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerService {\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n loadFiles(path: string) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_FILE_TREE, {'path': path}, Api.httpOptionsJson);\n }\n\n loadFile(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_DESCRIPTION, credentials, Api.httpOptionsJson);\n }\n\n upload(file: File, url: string, rewrite: boolean) {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append('rewrite', String(rewrite));\n if (url) {\n formData.append(\"url\", url);\n }\n\n return this._http.post(this._config.getViewerApiEndpoint() + Api.UPLOAD_DOCUMENTS, formData);\n }\n\n loadPage(credentials: FileCredentials, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'page': page\n }, Api.httpOptionsJson);\n }\n\n rotate(credentials: FileCredentials, angle: number, page: number) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.ROTATE_DOCUMENT_PAGE, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n 'pages': [page],\n 'angle': angle\n }, Api.httpOptionsJson);\n }\n\n getDownloadUrl(credentials: FileCredentials) {\n return this._config.getViewerApiEndpoint() + Api.DOWNLOAD_DOCUMENTS + '/?path=' + credentials.guid;\n }\n\n loadPrint(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n\n loadPrintPdf(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_PRINT_PDF, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJsonResponseTypeBlob);\n }\n\n loadThumbnails(credentials: FileCredentials) {\n return this._http.post(this._config.getViewerApiEndpoint() + Api.LOAD_THUMBNAILS, {\n 'guid': credentials.guid,\n 'password': credentials.password,\n }, Api.httpOptionsJson);\n }\n}\n","export class ViewerConfig {\n rewrite: boolean;\n pageSelector: boolean;\n download: boolean;\n upload: boolean;\n print: boolean;\n browse: boolean;\n enableRightClick: boolean;\n\n filesDirectory: string;\n fontsDirectory: string;\n defaultDocument: string;\n htmlMode: boolean;\n preloadPageCount: 0;\n zoom: boolean;\n search: boolean;\n thumbnails: boolean;\n rotate: boolean;\n cache: boolean;\n saveRotateState: boolean;\n watermarkText: string;\n printAllowed: boolean;\n}\n","import {Injectable} from '@angular/core';\nimport {ViewerConfig} from \"./viewer-config\";\nimport {Api, ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerConfigService {\n private _viewerConfig: BehaviorSubject = new BehaviorSubject(new ViewerConfig());\n private _updatedConfig: Observable = this._viewerConfig.asObservable();\n\n constructor(private _http: HttpClient, private _config: ConfigService) {\n }\n\n get updatedConfig() {\n return this._updatedConfig;\n }\n\n load() {\n return new Promise((resolve, reject) => {\n const configEndpoint = this._config.getConfigEndpoint(Api.VIEWER_APP);\n this._http.get(configEndpoint, Api.httpOptionsJson).toPromise().then((response: ViewerConfig) => {\n const viewerConfig = response;\n this._viewerConfig.next(viewerConfig);\n resolve();\n }).catch((response: any) => {\n reject(`Could not load viewer config: ${JSON.stringify(response)}`);\n });\n });\n }\n\n}\n","import {AfterViewInit, Component, ElementRef, ViewChildren, QueryList, OnInit} from '@angular/core';\nimport {ViewerService} from \"./viewer.service\";\nimport {\n FileDescription,\n FileModel,\n ModalService,\n UploadFilesService,\n NavigateService,\n PagePreloadService,\n PageModel,\n ZoomService,\n RotatedPage,\n RenderPrintService,\n FileUtil,\n PasswordService,\n FileCredentials, CommonModals, LoadingMaskService\n} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfig} from \"./viewer-config\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {WindowService} from \"@groupdocs.examples.angular/common-components\";\n//import * as Hammer from 'hammerjs';\n\n@Component({\n selector: 'gd-viewer',\n templateUrl: './viewer-app.component.html',\n styleUrls: ['./viewer-app.component.less']\n})\nexport class ViewerAppComponent implements OnInit, AfterViewInit {\n title = 'viewer';\n files: FileModel[] = [];\n file: FileDescription;\n viewerConfig: ViewerConfig;\n countPages = 0;\n formatDisabled = !this.file;\n showThumbnails = false;\n credentials: FileCredentials;\n browseFilesModal = CommonModals.BrowseFiles;\n showSearch = false;\n isDesktop: boolean;\n isLoading: boolean;\n\n _zoom = 100;\n _pageWidth: number;\n _pageHeight: number;\n options;\n //@ViewChildren('docPanel') docPanelComponent: QueryList;\n fileWasDropped = false;\n formatIcon: string;\n\n constructor(private _viewerService: ViewerService,\n private _modalService: ModalService,\n configService: ViewerConfigService,\n uploadFilesService: UploadFilesService,\n private _navigateService: NavigateService,\n private _zoomService: ZoomService,\n pagePreloadService: PagePreloadService,\n private _renderPrintService: RenderPrintService,\n passwordService: PasswordService,\n private _windowService: WindowService,\n private _loadingMaskService: LoadingMaskService) {\n\n configService.updatedConfig.subscribe((viewerConfig) => {\n this.viewerConfig = viewerConfig;\n });\n\n uploadFilesService.uploadsChange.subscribe((uploads) => {\n if (uploads) {\n let i: number;\n for (i = 0; i < uploads.length; i++) {\n this._viewerService.upload(uploads.item(i), '', this.viewerConfig.rewrite).subscribe((obj: FileCredentials) => {\n this.fileWasDropped ? this.selectFile(obj.guid, '', '') : this.selectDir('');\n });\n }\n }\n });\n\n pagePreloadService.checkPreload.subscribe((page: number) => {\n if (this.viewerConfig.preloadPageCount !== 0) {\n for (let i = page; i < page + 2; i++) {\n if (i > 0 && i <= this.countPages && !this.file.pages[i - 1].data) {\n this.preloadPages(i, i);\n }\n }\n }\n });\n\n passwordService.passChange.subscribe((pass: string) => {\n this.selectFile(this.credentials.guid, pass, CommonModals.PasswordRequired);\n });\n\n this.isDesktop = _windowService.isDesktop();\n _windowService.onResize.subscribe((w) => {\n this.isDesktop = _windowService.isDesktop();\n this.refreshZoom();\n });\n }\n\n ngOnInit() {\n if (this.viewerConfig.defaultDocument !== \"\"){\n this.isLoading = true;\n this.selectFile(this.viewerConfig.defaultDocument, \"\", \"\");\n }\n }\n\n ngAfterViewInit() {\n this._loadingMaskService\n .onLoadingChanged\n .subscribe((loading: boolean) => this.isLoading = loading);\n\n this.refreshZoom();\n\n // this.docPanelComponent.changes.subscribe((comps: QueryList) =>\n // {\n // comps.toArray().forEach((item) => {\n // const hammer = new Hammer(item.nativeElement);\n // hammer.get('pinch').set({ enable: true });\n // });\n // });\n }\n\n get rewriteConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rewrite : true;\n }\n\n get zoomConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.zoom : true;\n }\n\n get pageSelectorConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.pageSelector : true;\n }\n\n get searchConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.search : true;\n }\n\n get thumbnailsConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.thumbnails : true;\n }\n\n get rotateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.rotate : true;\n }\n\n get downloadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.download : true;\n }\n\n get uploadConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.upload : true;\n }\n\n get printConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.print : true;\n }\n\n get browseConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.browse : true;\n }\n\n get htmlModeConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.htmlMode : true;\n }\n\n get saveRotateStateConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.saveRotateState : true;\n }\n\n get enableRightClickConfig(): boolean {\n return this.viewerConfig ? this.viewerConfig.enableRightClick : true;\n }\n\n get currentPage(): number {\n return this._navigateService.currentPage;\n }\n\n openModal(id: string) {\n this._modalService.open(id);\n }\n\n closeModal(id: string) {\n this._modalService.close(id);\n }\n\n selectDir($event: string) {\n this._viewerService.loadFiles($event).subscribe((files: FileModel[]) => this.files = files || []);\n }\n\n selectFile($event: string, password: string, modalId: string) {\n this.credentials = {guid: $event, password: password};\n this._viewerService.loadFile(this.credentials).subscribe((file: FileDescription) => {\n this.file = file;\n this.formatDisabled = !this.file;\n if (file) {\n if (file.pages && file.pages[0]) {\n this._pageHeight = file.pages[0].height;\n this._pageWidth = file.pages[0].width;\n this.options = this.zoomOptions();\n this.refreshZoom();\n }\n const preloadPageCount = this.viewerConfig.preloadPageCount;\n const countPages = file.pages ? file.pages.length : 0;\n if (preloadPageCount > 0) {\n this.preloadPages(1, preloadPageCount > countPages ? countPages : preloadPageCount);\n }\n this._navigateService.countPages = countPages;\n this._navigateService.currentPage = 1;\n this.countPages = countPages;\n }\n }\n );\n if (modalId) {\n this._modalService.close(modalId);\n }\n this.clearData();\n }\n\n preloadPages(start: number, end: number) {\n for (let i = start; i <= end; i++) {\n this._viewerService.loadPage(this.credentials, i).subscribe((page: PageModel) => {\n this.file.pages[i - 1] = page;\n });\n }\n }\n\n upload($event: string) {\n this._viewerService.upload(null, $event, this.rewriteConfig).subscribe(() => {\n this.selectDir('');\n });\n }\n\n nextPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.nextPage();\n }\n\n prevPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.prevPage();\n }\n\n toLastPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toLastPage();\n }\n\n toFirstPage() {\n if (this.formatDisabled)\n return;\n this._navigateService.toFirstPage();\n }\n\n navigateToPage(page: number) {\n if (this.formatDisabled)\n return;\n this._navigateService.navigateTo(page);\n }\n\n zoomIn() {\n if (this.formatDisabled)\n return;\n if (this._zoom < 490) {\n this.zoom = this._zoom + 10;\n }\n }\n\n zoomOut() {\n if (this.formatDisabled)\n return;\n if (this._zoom > 30) {\n this.zoom = this._zoom - 10;\n }\n }\n\n fileDropped($event){\n this.fileWasDropped = $event;\n }\n\n private ptToPx(pt: number) {\n //pt * 96 / 72 = px.\n return pt * 96 / 72;\n }\n\n private getFitToWidth() {\n // Images and Excel-related files receiving dimensions in px from server\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const offsetWidth = pageWidth ? pageWidth : window.innerWidth;\n\n return (pageHeight > pageWidth && Math.round(offsetWidth / window.innerWidth) < 2) ? 200 - Math.round(offsetWidth * 100 / window.innerWidth) : Math.round(window.innerWidth * 100 / offsetWidth);\n }\n\n private getFitToHeight() {\n const pageWidth = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageWidth : this.ptToPx(this._pageWidth);\n const pageHeight = this.formatIcon && (this.formatIcon === \"file-excel\" || this.formatIcon === \"file-image\") ? this._pageHeight : this.ptToPx(this._pageHeight);\n const windowHeight = (pageHeight > pageWidth) ? window.innerHeight - 100 : window.innerHeight + 100;\n const offsetHeight = pageHeight ? pageHeight : windowHeight;\n\n return (pageHeight > pageWidth) ? Math.round(windowHeight * 100 / offsetHeight) : Math.round(offsetHeight * 100 / windowHeight);\n }\n\n zoomOptions() {\n const width = this.getFitToWidth();\n const height = this.getFitToHeight();\n return this._zoomService.zoomOptions(width, height);\n }\n\n set zoom(zoom) {\n this._zoom = zoom;\n this._zoomService.changeZoom(this._zoom);\n }\n\n get zoom() {\n return this._zoom;\n }\n\n selectZoom($event: any) {\n this.zoom = $event.value;\n }\n\n rotate(deg: number) {\n if (this.formatDisabled)\n return;\n const pageNumber = this._navigateService.currentPage;\n\n if (this.saveRotateStateConfig && this.file) {\n this._viewerService.rotate(this.credentials, deg, pageNumber).subscribe((data: RotatedPage[]) => {\n for (const page of data) {\n const pageModel = this.file.pages[page.pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n this.changeAngle(pageModel, page.angle);\n }\n }\n })\n } else {\n const pageModel = this.file.pages[pageNumber - 1];\n if (this.file && this.file.pages && pageModel) {\n const angle = pageModel.angle + deg;\n if (angle > 360) {\n this.changeAngle(pageModel, 90);\n } else if (angle < -360) {\n this.changeAngle(pageModel, -90);\n } else {\n this.changeAngle(pageModel, angle);\n }\n }\n }\n }\n\n private changeAngle(page: PageModel, angle: number) {\n page.angle = angle;\n }\n\n downloadFile() {\n if (this.formatDisabled)\n return;\n window.location.assign(this._viewerService.getDownloadUrl(this.credentials));\n }\n\n printFile() {\n if (this.formatDisabled)\n return;\n if (this.viewerConfig.preloadPageCount !== 0) {\n if (FileUtil.find(this.file.guid, false).format === \"Portable Document Format\") {\n this._viewerService.loadPrintPdf(this.credentials).subscribe(blob => {\n const file = new Blob([blob], {type: 'application/pdf'});\n this._renderPrintService.changeBlob(file);\n });\n } else {\n this._viewerService.loadPrint(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this._renderPrintService.changePages(this.file.pages);\n });\n }\n } else {\n this._renderPrintService.changePages(this.file.pages);\n }\n }\n\n openThumbnails() {\n if (this.formatDisabled)\n return;\n\n if (this.showThumbnails) {\n this.showThumbnails = false;\n return;\n }\n\n if (this.viewerConfig.preloadPageCount === 0) {\n this.showThumbnails = true;\n } else {\n this._viewerService.loadThumbnails(this.credentials).subscribe((data: FileDescription) => {\n this.file.pages = data.pages;\n this.showThumbnails = true;\n })\n }\n }\n\n private clearData() {\n if (!this.file || !this.file.pages) {\n return;\n }\n for (const page of this.file.pages) {\n page.data = null;\n }\n }\n\n onRightClick($event: MouseEvent) {\n return this.enableRightClickConfig;\n }\n\n openSearch() {\n if (this.formatDisabled)\n return;\n this.showSearch = !this.showSearch;\n }\n\n // onPinchIn($event){\n // this.zoomOut();\n // }\n\n // onPinchOut($event){\n // this.zoomIn();\n // }\n\n private refreshZoom() {\n this.formatIcon = this.file ? FileUtil.find(this.file.guid, false).icon : null;\n this.zoom = this._windowService.isDesktop() ? 100 : this.getFitToWidth();\n }\n}\n","import {Component, Input, OnInit, OnDestroy, AfterViewInit, OnChanges} from '@angular/core';\nimport {NavigateService, PageModel, ZoomService} from \"@groupdocs.examples.angular/common-components\";\n\n@Component({\n selector: 'gd-thumbnails',\n templateUrl: './thumbnails.component.html',\n styleUrls: ['./thumbnails.component.less']\n})\nexport class ThumbnailsComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n\n @Input() pages: PageModel[];\n @Input() guid: string;\n @Input() mode: boolean;\n @Input() isHtmlMode: boolean;\n\n constructor(private _navigateService: NavigateService, private _zoomService: ZoomService) {\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n // TODO: investigate the root cause of unneded spaces\n this.pages.forEach(page => {\n page.data = page.data.replace(/>\\s+<');\n });\n }\n\n ngAfterViewInit() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n ngOnDestroy() {\n this._zoomService.changeZoom(this._zoomService.zoom);\n }\n\n imgData(data: string) {\n const dataImagePngBase64 = 'data:image/png;base64,';\n if (!this.isHtmlMode) {\n return dataImagePngBase64 + data;\n }\n return dataImagePngBase64;\n }\n\n getScale(x: number, y: number) {\n return Math.min(190 / x, 190 / y);\n }\n\n openPage(pageNumber: number) {\n this._navigateService.navigateTo(pageNumber);\n }\n}\n","import {BrowserModule} from '@angular/platform-browser';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {ViewerAppComponent} from './viewer-app.component';\nimport { Api, CommonComponentsModule, ErrorInterceptorService } from '@groupdocs.examples.angular/common-components';\nimport {ViewerService} from \"./viewer.service\";\nimport {ConfigService} from \"@groupdocs.examples.angular/common-components\";\nimport {ViewerConfigService} from \"./viewer-config.service\";\nimport {ThumbnailsComponent} from './thumbnails/thumbnails.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nexport function initializeApp(viewerConfigService: ViewerConfigService) {\n const result = () => viewerConfigService.load();\n return result;\n}\n\n@NgModule({\n declarations: [\n ViewerAppComponent,\n ThumbnailsComponent],\n imports: [\n BrowserModule,\n CommonComponentsModule,\n HttpClientModule,\n FontAwesomeModule\n ],\n exports : [\n ViewerAppComponent,\n ThumbnailsComponent,\n CommonComponentsModule\n ],\n providers: [\n ViewerService,\n ConfigService,\n ViewerConfigService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptorService,\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ViewerConfigService], multi: true\n }\n ]\n})\nexport class ViewerModule {\n static forRoot(apiEndpoint : string): ModuleWithProviders {\n Api.DEFAULT_API_ENDPOINT = apiEndpoint\n return {\n ngModule: ViewerModule\n };\n }\n}\n"],"names":["tslib_1.__values"],"mappings":"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"} \ No newline at end of file diff --git a/dist/libs/viewer/lib/viewer-app.component.d.ts b/dist/libs/viewer/lib/viewer-app.component.d.ts index 6a73dcb56..5e56d1a9e 100644 --- a/dist/libs/viewer/lib/viewer-app.component.d.ts +++ b/dist/libs/viewer/lib/viewer-app.component.d.ts @@ -1,9 +1,8 @@ import { AfterViewInit, OnInit } from '@angular/core'; import { ViewerService } from "./viewer.service"; -import { FileDescription, FileModel, ModalService, UploadFilesService, NavigateService, PagePreloadService, ZoomService, RenderPrintService, PasswordService, FileCredentials, LoadingMaskService } from "@groupdocs.examples.angular/common-components"; +import { FileDescription, FileModel, ModalService, UploadFilesService, NavigateService, PagePreloadService, ZoomService, RenderPrintService, PasswordService, RotationService, WindowService, FileCredentials, LoadingMaskService } from "@groupdocs.examples.angular/common-components"; import { ViewerConfig } from "./viewer-config"; import { ViewerConfigService } from "./viewer-config.service"; -import { WindowService } from "@groupdocs.examples.angular/common-components"; export declare class ViewerAppComponent implements OnInit, AfterViewInit { private _viewerService; private _modalService; @@ -12,6 +11,7 @@ export declare class ViewerAppComponent implements OnInit, AfterViewInit { private _renderPrintService; private _windowService; private _loadingMaskService; + private _rotationService; title: string; files: FileModel[]; file: FileDescription; @@ -30,7 +30,7 @@ export declare class ViewerAppComponent implements OnInit, AfterViewInit { options: any; fileWasDropped: boolean; formatIcon: string; - constructor(_viewerService: ViewerService, _modalService: ModalService, configService: ViewerConfigService, uploadFilesService: UploadFilesService, _navigateService: NavigateService, _zoomService: ZoomService, pagePreloadService: PagePreloadService, _renderPrintService: RenderPrintService, passwordService: PasswordService, _windowService: WindowService, _loadingMaskService: LoadingMaskService); + constructor(_viewerService: ViewerService, _modalService: ModalService, configService: ViewerConfigService, uploadFilesService: UploadFilesService, _navigateService: NavigateService, _zoomService: ZoomService, pagePreloadService: PagePreloadService, _renderPrintService: RenderPrintService, passwordService: PasswordService, _windowService: WindowService, _loadingMaskService: LoadingMaskService, _rotationService: RotationService); ngOnInit(): void; ngAfterViewInit(): void; readonly rewriteConfig: boolean; diff --git a/dist/libs/viewer/package.json b/dist/libs/viewer/package.json index bdc5c25ab..cedcd5186 100644 --- a/dist/libs/viewer/package.json +++ b/dist/libs/viewer/package.json @@ -1,6 +1,6 @@ { "name": "@groupdocs.examples.angular/viewer", - "version": "0.4.22", + "version": "0.4.19", "description": "Angular application that allows to display and manipulate documents supported by groupdocs libraries APIs", "license": "MIT", "publishConfig": { diff --git a/lerna.json b/lerna.json index f2974b133..5a8b7cff1 100644 --- a/lerna.json +++ b/lerna.json @@ -2,5 +2,5 @@ "packages": [ "dist/libs/*" ], - "version": "0.4.22" + "version": "0.4.19" } diff --git a/libs/common-components/src/index.ts b/libs/common-components/src/index.ts index e65bf2863..4500b8ac0 100644 --- a/libs/common-components/src/index.ts +++ b/libs/common-components/src/index.ts @@ -9,8 +9,10 @@ export * from './lib/page-preload.service'; export * from './lib/zoom.service'; export * from './lib/render-print.service'; export * from './lib/error-interceptor.service'; +export * from './lib/custom-hammer-config'; export * from './lib/exception-message.service'; export * from './lib/password.service'; +export * from './lib/rotation.service'; export * from './lib/window.service'; export * from './lib/viewport.service'; export * from './lib/browse-files-modal/browse-files-modal.component'; diff --git a/libs/common-components/src/lib/common-components.module.ts b/libs/common-components/src/lib/common-components.module.ts index 0deb1a975..8ee10f12b 100644 --- a/libs/common-components/src/lib/common-components.module.ts +++ b/libs/common-components/src/lib/common-components.module.ts @@ -35,7 +35,9 @@ import {ErrorModalComponent} from './error-modal/error-modal.component'; import {PasswordRequiredComponent} from './password-required/password-required.component'; import {ExceptionMessageService} from "./exception-message.service"; import {PasswordService} from "./password.service"; +import {RotationService} from "./rotation.service"; import {ErrorInterceptorService} from "./error-interceptor.service"; +import {CustomHammerConfig} from "./custom-hammer-config"; import {SearchComponent} from './search/search.component'; import {SearchableDirective} from './searchable.directive'; import {SearchService} from "./search.service"; @@ -75,7 +77,9 @@ const providers = [ConfigService, ZoomService, ExceptionMessageService, PasswordService, + RotationService, ErrorInterceptorService, + CustomHammerConfig, SearchService, WindowService, ViewportService, diff --git a/libs/common-components/src/lib/custom-hammer-config.ts b/libs/common-components/src/lib/custom-hammer-config.ts new file mode 100644 index 000000000..eb8f2ed29 --- /dev/null +++ b/libs/common-components/src/lib/custom-hammer-config.ts @@ -0,0 +1,18 @@ +import { HammerGestureConfig } from '@angular/platform-browser'; +import * as Hammer from 'hammerjs'; + +export class CustomHammerConfig extends HammerGestureConfig { + overrides = { + // override default settings + 'pinch': { + direction: Hammer.DIRECTION_ALL, + enable: true, + dropRecognizeWith: 'rotate' + }, + 'rotate': { + direction: Hammer.DIRECTION_ALL, + enable: true, + requireFailure: 'pinch' + } + }; +} \ No newline at end of file diff --git a/libs/common-components/src/lib/document/document.component.html b/libs/common-components/src/lib/document/document.component.html index 42e2134fa..8c7d9b48b 100644 --- a/libs/common-components/src/lib/document/document.component.html +++ b/libs/common-components/src/lib/document/document.component.html @@ -1,6 +1,7 @@
Please wait...
+ (pinchend)="onPinchEnd($event)" (pan)="onPan($event)" (panend)="onPanEnd($event)" + (rotatestart)="onRotateStart($event)" (rotateend)="onRotateEnd($event)">
, private _zoomService: ZoomService, - private _windowService: WindowService) { + private _windowService: WindowService, + private _rotationServcie: RotationService) { _zoomService.zoomChange.subscribe((val: number) => { this.zoom = val; @@ -197,6 +200,7 @@ export class DocumentComponent implements OnInit, AfterViewChecked, AfterViewIni }; onPinch($event){ + console.log("pinch"); if (this.pinchCenter === null) { this.pinchCenter = this.rawCenter($event); const offsetX = this.pinchCenter.x*this.scale - (-this.x*this.scale + Math.min(this.viewportWidth, this.curWidth)/2); @@ -214,6 +218,7 @@ export class DocumentComponent implements OnInit, AfterViewChecked, AfterViewIni } onPinchEnd($event){ + console.log("pinchEnd"); this.updateLastScale(); this.updateLastPos(); this.pinchCenter = null; @@ -240,4 +245,30 @@ export class DocumentComponent implements OnInit, AfterViewChecked, AfterViewIni } } } + + onRotateStart($event){ + this.initialRotation = $event.rotation; + console.log("rotateStart: " + $event.rotation + ' ' + $event.angle); + } + + onRotateEnd($event){ + console.log("rotateEnd: " + $event.rotation + ' ' + $event.angle); + if ($event.rotation > 0 && this.initialRotation > 0) { + if ($event.rotation > this.initialRotation && ($event.rotation - this.initialRotation > 45)) { + this._rotationServcie.setRotationAngle(90); + } + else if ($event.rotation < this.initialRotation && (this.initialRotation - $event.rotation > 45)) { + this._rotationServcie.setRotationAngle(-90); + } + } + // case with negative values + else { + if (this.initialRotation > $event.rotation && ($event.rotation - this.initialRotation > 45)) { + this._rotationServcie.setRotationAngle(-90); + } + else if (this.initialRotation < $event.rotation && (this.initialRotation - $event.rotation > 45)) { + this._rotationServcie.setRotationAngle(90); + } + } + } } diff --git a/libs/common-components/src/lib/page/page.component.less b/libs/common-components/src/lib/page/page.component.less index 278c51886..3a64a6067 100644 --- a/libs/common-components/src/lib/page/page.component.less +++ b/libs/common-components/src/lib/page/page.component.less @@ -12,7 +12,7 @@ width: 100%; } -/deep/ .gd-highlight { +.gd-highlight { background-color: yellow; } diff --git a/libs/common-components/src/lib/page/page.component.ts b/libs/common-components/src/lib/page/page.component.ts index 3ddfb92fd..04277e74a 100644 --- a/libs/common-components/src/lib/page/page.component.ts +++ b/libs/common-components/src/lib/page/page.component.ts @@ -27,9 +27,8 @@ export class PageComponent implements OnInit, OnChanges { } ngOnChanges(changes: SimpleChanges): void { - // TODO: this is temporary needed to remove unneeded spaces and BOM symbol - // which leads to undesired spaces on the top of the docs pages - this.data = this.data !== null ? this.data.replace(/>\s+<').replace(/\uFEFF/g,"") : null; + // TODO: this is needed for test purpose to reduce unneeded top-margin + this.data = this.data !== null ? this.data.replace(/>\s+<') : null; const dataImagePngBase64 = 'data:image/png;base64,'; this.imgData = dataImagePngBase64; if (!this.isHtml) { diff --git a/libs/common-components/src/lib/rotation.service.spec.ts b/libs/common-components/src/lib/rotation.service.spec.ts new file mode 100644 index 000000000..1a0df2900 --- /dev/null +++ b/libs/common-components/src/lib/rotation.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { RotationService } from './rotation.service'; + +describe('RotationService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: RotationService = TestBed.get(RotationService); + expect(service).toBeTruthy(); + }); +}); diff --git a/libs/common-components/src/lib/rotation.service.ts b/libs/common-components/src/lib/rotation.service.ts new file mode 100644 index 000000000..8ce9c0c29 --- /dev/null +++ b/libs/common-components/src/lib/rotation.service.ts @@ -0,0 +1,17 @@ +import {Observable, Subject} from "rxjs"; + +export class RotationService { + private _observerRotationAngle: Subject = new Subject(); + private readonly _rotationAngleChange: Observable = this._observerRotationAngle.asObservable(); + + constructor() { + } + + get rotationAngleChange(): Observable { + return this._rotationAngleChange; + } + + setRotationAngle(angle: number) { + this._observerRotationAngle.next(angle); + } +} diff --git a/libs/common-components/src/lib/search/search.component.html b/libs/common-components/src/lib/search/search.component.html index c894a4007..edade5bba 100644 --- a/libs/common-components/src/lib/search/search.component.html +++ b/libs/common-components/src/lib/search/search.component.html @@ -1,5 +1,5 @@
- +
{{current}} of {{total}}
diff --git a/libs/common-components/src/lib/searchable.directive.ts b/libs/common-components/src/lib/searchable.directive.ts index 00ec38ccc..98942c8f6 100644 --- a/libs/common-components/src/lib/searchable.directive.ts +++ b/libs/common-components/src/lib/searchable.directive.ts @@ -67,7 +67,7 @@ export class SearchableDirective { if (currentEl) { const options = { left: 0, - top: ($(currentEl).offset().top) + el.parentElement.parentElement.scrollTop - 150, + top: ($(currentEl).offset().top * currentZoom) + el.parentElement.scrollTop - 150, }; // using polyfill el.parentElement.parentElement.scroll(options); diff --git a/libs/comparison/src/lib/result-document/result-document.component.ts b/libs/comparison/src/lib/result-document/result-document.component.ts index 004af675f..f563e5a8b 100644 --- a/libs/comparison/src/lib/result-document/result-document.component.ts +++ b/libs/comparison/src/lib/result-document/result-document.component.ts @@ -1,5 +1,5 @@ import { Component, ElementRef, Input, OnInit } from '@angular/core'; -import { DocumentComponent, WindowService } from '@groupdocs.examples.angular/common-components'; +import { DocumentComponent, WindowService, RotationService } from '@groupdocs.examples.angular/common-components'; import {ZoomService,ZoomDirective} from '@groupdocs.examples.angular/common-components'; import * as jquery from 'jquery'; import { DifferencesService } from '../differences.service'; @@ -18,8 +18,9 @@ export class ResultDocumentComponent extends DocumentComponent implements OnInit constructor(_elementRef: ElementRef, zoomService: ZoomService, changeService : DifferencesService, - windowService: WindowService) { - super(_elementRef, zoomService, windowService); + windowService: WindowService, + rotationService: RotationService) { + super(_elementRef, zoomService, windowService, rotationService); this.changesService = changeService; } diff --git a/libs/viewer/src/lib/thumbnails/thumbnails.component.ts b/libs/viewer/src/lib/thumbnails/thumbnails.component.ts index b2d5e972f..ce2e9e688 100644 --- a/libs/viewer/src/lib/thumbnails/thumbnails.component.ts +++ b/libs/viewer/src/lib/thumbnails/thumbnails.component.ts @@ -20,10 +20,9 @@ export class ThumbnailsComponent implements OnInit, OnChanges, AfterViewInit, On } ngOnChanges() { - // TODO: this is temporary needed to remove unneeded spaces and BOM symbol - // which leads to undesired spaces on the top of the docs pages + // TODO: investigate the root cause of unneded spaces this.pages.forEach(page => { - page.data = page.data.replace(/>\s+<').replace(/\uFEFF/g,""); + page.data = page.data.replace(/>\s+<'); }); } diff --git a/libs/viewer/src/lib/viewer-app.component.ts b/libs/viewer/src/lib/viewer-app.component.ts index 9dad9d827..eeeecd9e7 100644 --- a/libs/viewer/src/lib/viewer-app.component.ts +++ b/libs/viewer/src/lib/viewer-app.component.ts @@ -13,11 +13,12 @@ import { RenderPrintService, FileUtil, PasswordService, + RotationService, + WindowService, FileCredentials, CommonModals, LoadingMaskService } from "@groupdocs.examples.angular/common-components"; import {ViewerConfig} from "./viewer-config"; import {ViewerConfigService} from "./viewer-config.service"; -import {WindowService} from "@groupdocs.examples.angular/common-components"; //import * as Hammer from 'hammerjs'; @Component({ @@ -57,7 +58,8 @@ export class ViewerAppComponent implements OnInit, AfterViewInit { private _renderPrintService: RenderPrintService, passwordService: PasswordService, private _windowService: WindowService, - private _loadingMaskService: LoadingMaskService) { + private _loadingMaskService: LoadingMaskService, + private _rotationService: RotationService) { configService.updatedConfig.subscribe((viewerConfig) => { this.viewerConfig = viewerConfig; @@ -93,6 +95,10 @@ export class ViewerAppComponent implements OnInit, AfterViewInit { this.isDesktop = _windowService.isDesktop(); this.refreshZoom(); }); + + this._rotationService.rotationAngleChange.subscribe((angle: number) => { + this.rotate(angle); + }); } ngOnInit() { diff --git a/libs/viewer/src/lib/viewer.module.ts b/libs/viewer/src/lib/viewer.module.ts index c78163266..cb17741a2 100644 --- a/libs/viewer/src/lib/viewer.module.ts +++ b/libs/viewer/src/lib/viewer.module.ts @@ -1,8 +1,8 @@ -import {BrowserModule} from '@angular/platform-browser'; +import {BrowserModule, HAMMER_GESTURE_CONFIG} from '@angular/platform-browser'; import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core'; import {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http'; import {ViewerAppComponent} from './viewer-app.component'; -import { Api, CommonComponentsModule, ErrorInterceptorService } from '@groupdocs.examples.angular/common-components'; +import { Api, CommonComponentsModule, ErrorInterceptorService, CustomHammerConfig } from '@groupdocs.examples.angular/common-components'; import {ViewerService} from "./viewer.service"; import {ConfigService} from "@groupdocs.examples.angular/common-components"; import {ViewerConfigService} from "./viewer-config.service"; @@ -42,6 +42,10 @@ export function initializeApp(viewerConfigService: ViewerConfigService) { provide: APP_INITIALIZER, useFactory: initializeApp, deps: [ViewerConfigService], multi: true + }, + { + provide: HAMMER_GESTURE_CONFIG, + useClass: CustomHammerConfig } ] })