{"version":3,"file":"txtextcontrol-tx-ng-ds-document-editor.mjs","sources":["../../../projects/tx-ng-ds-document-editor/src/lib/document-editor.component.ts","../../../projects/tx-ng-ds-document-editor/src/lib/document-editor.component.html","../../../projects/tx-ng-ds-document-editor/src/lib/document-editor.module.ts","../../../projects/tx-ng-ds-document-editor/src/public-api.ts","../../../projects/tx-ng-ds-document-editor/src/txtextcontrol-tx-ng-ds-document-editor.ts"],"sourcesContent":["import { Component, OnInit, Injectable, Input, ElementRef, ViewChild, HostBinding } from '@angular/core';\r\n\r\ndeclare const TXTextControl: any;\r\n\r\n@Component({\r\n   selector: 'tx-ds-document-editor',\r\n   templateUrl: './document-editor.component.html',\r\n   styleUrls: ['./document-editor.component.css']\r\n})\r\n@Injectable()\r\nexport class DocumentEditorComponent implements OnInit {\r\n   @ViewChild('txDocumentEditorContainer', { static: true }) containerDiv: ElementRef;\r\n\r\n   constructor(private hostElement: ElementRef) { }\r\n\r\n   @Input() width: string;\r\n   @Input() height: string;\r\n   @Input() documentData: string;\r\n   @Input() documentFileFormat: string;\r\n   @Input() jsonData: string;\r\n   @Input() serviceURL: string;\r\n   @Input() editMode: string = 'Edit';\r\n   @Input() contextMenusEnabled: boolean = true;\r\n   @Input() formattingPrinter: string = '';\r\n   @Input() culture: string = '';\r\n   @Input() uiCulture: string = '';\r\n   @Input() userNames: string[] = [];\r\n   @Input() reconnectTimeout: number = 0;\r\n   @Input() oauthClientID: string;\r\n   @Input() oauthClientSecret: string;\r\n   @Input() accessToken: string;\r\n   @Input() customQueryParams: any = {};\r\n\r\n   ngOnInit(): void {\r\n      // Remove confidential information before rendering the page\r\n      this.hostElement.nativeElement.removeAttribute(\"oauthClientID\");\r\n      this.hostElement.nativeElement.removeAttribute(\"oauthClientSecret\");\r\n\r\n      if (!this.serviceURL.toLowerCase().startsWith('http://') && !this.serviceURL.toLowerCase().startsWith('https://')) {\r\n         throw new Error(`Invalid service URL ${this.serviceURL}`);\r\n      }\r\n   }\r\n\r\n   ngAfterViewInit(): void {\r\n      this.init();\r\n   }\r\n\r\n   private init(): void {\r\n      // Dynamically add necessary script to dom\r\n      let elemScript = document.createElement('script');\r\n      elemScript.src = `${this.serviceURL}/documenteditor/JS/ds-server-document-editor.js`;\r\n      elemScript.addEventListener(\"load\", () => {\r\n         // Fire \"editor loaded\" event (TXTextControl object exists from now on)\r\n         var evt = new CustomEvent(\"dsDocumentEditorLoaded\", { detail: { /* Empty event argument */ } })\r\n         document.dispatchEvent(evt);\r\n\r\n         // Initialize editor\r\n         let settings: any = {\r\n            containerID: 'txDocumentEditorContainer',\r\n            serviceURL: this.serviceURL,\r\n            editorSettings: {\r\n               culture: this.culture,\r\n               uiCulture: this.uiCulture,\r\n               editMode: DocumentEditorComponent.editModeFromString(this.editMode),\r\n               contextMenusEnabled: this.contextMenusEnabled,\r\n               formattingPrinter: this.formattingPrinter,\r\n               reconnectTimeout: this.reconnectTimeout,\r\n               userNames: this.userNames,\r\n               customQueryParams: this.customQueryParams\r\n            }\r\n         };\r\n\r\n         if (this.accessToken) {\r\n            settings.authSettings = {\r\n               accessToken: this.accessToken\r\n            }\r\n         }\r\n         else if (this.oauthClientID) {\r\n            settings.authSettings = {\r\n               clientId: this.oauthClientID,\r\n               clientSecret: this.oauthClientSecret\r\n            };\r\n         }\r\n\r\n         TXTextControl.init(settings);\r\n         \r\n         if (this.documentData) {\r\n            TXTextControl.addEventListener('textControlLoaded', () => {\r\n               let streamType = DocumentEditorComponent.streamTypeFromDocumentFileFormat(this.documentFileFormat);\r\n               TXTextControl.loadDocument(streamType, this.documentData);\r\n            });\r\n         }\r\n         if (this.jsonData) {\r\n            TXTextControl.addEventListener('ribbonTabsLoaded', () => {\r\n               TXTextControl.loadJsonData(this.jsonData);\r\n            });\r\n         }\r\n      });\r\n      this.containerDiv.nativeElement.appendChild(elemScript);\r\n   }\r\n\r\n   private static editModeFromString(value: string): number {\r\n      switch (value) {\r\n         case 'Edit': return 1;\r\n         case 'ReadAndSelect': return 2;\r\n         case 'ReadOnly': return 3;\r\n         case 'UsePassword': return 2048;\r\n      }\r\n      return 1;   // EditMode.Edit\r\n   }\r\n\r\n   private static streamTypeFromDocumentFileFormat(value: string): number {\r\n      switch (value.trim().toUpperCase()) {\r\n         case 'HTML': return 4; // StreamType.HTMLFormat\r\n         case 'RTF': return 8; // StreamType.RichTextFormat\r\n         case 'TXT': return 16; // StreamType.PlainText\r\n         case 'TX': return 32; // StreamType.InternalUnicodeFormat\r\n         case 'DOC': return 64; // StreamType.MSWord\r\n         case 'PDF': return 512; // StreamType.AdobePDF\r\n         case 'DOCX': return 1024; // StreamType.WordprocessingML\r\n         case 'XLSX': return 4096; // StreamType.SpreadsheetML\r\n      }\r\n\r\n      return 4;   // StreamType.HTMLFormat\r\n   }\r\n}\r\n","<div id=\"txDocumentEditorContainer\" #txDocumentEditorContainer [ngStyle]=\"{ 'width': width, 'height': height, 'display': 'inline-block' }\">\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DocumentEditorComponent } from './document-editor.component';\r\n\r\n@NgModule({\r\n   declarations: [DocumentEditorComponent],\r\n   imports: [CommonModule],\r\n   exports: [DocumentEditorComponent]\r\n})\r\nexport class DocumentEditorModule { }\r\n","/*\r\n * Public API Surface of tx-ng-ds-document-editor\r\n */\r\n\r\nexport * from './lib/document-editor.module';\r\nexport * from './lib/document-editor.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}