{"version":3,"file":"txtextcontrol-tx-ng-document-editor.mjs","sources":["../../../projects/tx-ng-document-editor/src/lib/document-editor/color.ts","../../../projects/tx-ng-document-editor/src/lib/document-editor/tx-settings.ts","../../../projects/tx-ng-document-editor/src/lib/document-editor/document-editor.component.ts","../../../projects/tx-ng-document-editor/src/lib/document-editor/document-editor.component.html","../../../projects/tx-ng-document-editor/src/lib/tx-ng-document-editor.module.ts","../../../projects/tx-ng-document-editor/src/public_api.ts","../../../projects/tx-ng-document-editor/src/txtextcontrol-tx-ng-document-editor.ts"],"sourcesContent":["export class Color {\r\n   public R: number = 0;\r\n   public G: number = 0;\r\n   public B: number = 0;\r\n   public A: number = 0xFF;\r\n\r\n   constructor(r: number, g: number, b: number, a: number = 0xFF) {\r\n      this.R = r;\r\n      this.G = g;\r\n      this.B = b;\r\n      this.A = a;\r\n   }\r\n\r\n   toHexString() : string {\r\n      return `#${pad(this.R.toString(16))}${pad(this.G.toString(16))}${pad(this.B.toString(16))}`\r\n   }\r\n\r\n   public static fromHexString(value: string) : Color {\r\n      let r: string, g: string, b: string;            \r\n\r\n      if (!value || value[0] != '#' || (value.length != 7 && value.length != 4)) {\r\n         throw new Error('String is not a hex color value.');\r\n      }\r\n\r\n      if (value.length === 7) {\r\n         r = value.substring(1, 3);\r\n         g = value.substring(3, 5);\r\n         b = value.substring(5, 7);\r\n         return new Color(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16));\r\n      }\r\n      else {\r\n         r = value[1];\r\n         g = value[2];\r\n         b = value[3];\r\n         return new Color(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16));\r\n      }\r\n   }\r\n}\r\n\r\nfunction pad(num: any, size: number = 2) : string {\r\n   let result : string = num + '';\r\n   while (result.length < size) result = '0' + result;\r\n   return result;\r\n}\r\n","import { Color } from \"./color\";\r\n\r\nexport class TXSettings {\r\n   public readonly IsMVC: boolean = false;\r\n   public readonly IsNodeJs: boolean = true;\r\n   public readonly NoPrintEndpoint = true;\r\n   public readonly NoFileSystemAccess = true;   // No file system access on the web server\r\n   public readonly replaceContainer: boolean = true;\r\n   public readonly containerID: string = '__txWebControlTempContainer';\r\n   \r\n   public ConnectionID: string = '';\r\n   public DocumentTargetMarkers: boolean = true;\r\n   public BackColor: Color = new Color(0xFF, 0xFF, 0xFF);\r\n   public StatusBarColor: Color = new Color(0x2B, 0x56, 0x9A);\r\n   public EditMode: number = 1;\r\n   public ContextMenusEnabled: boolean = true;\r\n   public SaveDocumentQuestionDialogEnabled: boolean = true;\r\n   public TableGridLines: boolean = true;\r\n   public TextFrameMarkerLines: boolean = true;\r\n   public ControlChars: boolean = false;\r\n   public TextFieldsEditable: boolean = false;\r\n   public FormattingPrinter: string = '';\r\n   public Culture: string = '';\r\n   public UICulture: string = '';\r\n   public UserNames: string[] = [];\r\n   public ReconnectTimeout: number = 0;\r\n\r\n   constructor(public WebSocketURL: string = '') { }\r\n\r\n   public 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","import { Component, OnInit, Input, ElementRef, ViewChild } from '@angular/core';\r\nimport { TXSettings } from \"./tx-settings\";\r\nimport { Color } from './color';\r\n\r\n@Component({\r\n   selector: 'tx-document-editor',\r\n   templateUrl: './document-editor.component.html',\r\n   styleUrls: ['./document-editor.component.css']\r\n})\r\nexport class DocumentEditorComponent implements OnInit {\r\n   private connectionID: string;\r\n\r\n   constructor(private hostElement: ElementRef) {\r\n      // Generate connection id\r\n      this.connectionID = generateRandomID(21);\r\n   }\r\n\r\n   private static readonly DefaultSettings: TXSettings = new TXSettings();\r\n\r\n   @Input() width: string;\r\n   @Input() height: string;\r\n   @Input() documentTargetMarkers: boolean = DocumentEditorComponent.DefaultSettings.DocumentTargetMarkers;\r\n   @Input() backColor: string = DocumentEditorComponent.DefaultSettings.BackColor.toHexString();\r\n   @Input() statusBarColor: string = DocumentEditorComponent.DefaultSettings.StatusBarColor.toHexString();\r\n   @Input() editMode: string = 'Edit';\r\n   @Input() contextMenusEnabled: boolean = DocumentEditorComponent.DefaultSettings.ContextMenusEnabled;\r\n   @Input() saveDocumentQuestionDialogEnabled: boolean = DocumentEditorComponent.DefaultSettings.SaveDocumentQuestionDialogEnabled;\r\n   @Input() tableGridLines: boolean = DocumentEditorComponent.DefaultSettings.TableGridLines;\r\n   @Input() textFrameMarkerLines: boolean = DocumentEditorComponent.DefaultSettings.TextFrameMarkerLines;\r\n   @Input() controlChars: boolean = DocumentEditorComponent.DefaultSettings.ControlChars;\r\n   @Input() textFieldsEditable: boolean = DocumentEditorComponent.DefaultSettings.TextFieldsEditable;\r\n   @Input() formattingPrinter: string = DocumentEditorComponent.DefaultSettings.FormattingPrinter;\r\n   @Input() culture: string = DocumentEditorComponent.DefaultSettings.Culture;\r\n   @Input() uiCulture: string = DocumentEditorComponent.DefaultSettings.UICulture;\r\n   @Input() userNames: string[] = DocumentEditorComponent.DefaultSettings.UserNames;\r\n   @Input() reconnectTimeout: number = DocumentEditorComponent.DefaultSettings.ReconnectTimeout;\r\n   @Input() webSocketURL: string = DocumentEditorComponent.DefaultSettings.WebSocketURL;\r\n\r\n   ngOnInit() {\r\n      let self = this;\r\n\r\n      // Throw error if WebSocketURL is not specified\r\n      if (!this.webSocketURL) {\r\n         throw new Error('Please provide a WebSocket URL.');\r\n      }\r\n\r\n      // Add TX Text Control script to host element\r\n      let httpUrl = this.webSocketURL.replace(/^ws/, 'http');\r\n      // Split URL into path and query string\r\n      let url = new URL(httpUrl);\r\n      httpUrl = url.origin + url.pathname;\r\n      let queryString = url.searchParams.toString();\r\n\r\n      let elemScript = document.createElement('script');\r\n      elemScript.onload = function () {\r\n         // Call TXTextControl.init() with settings\r\n         let elemScriptInit = document.createElement('script');\r\n         elemScriptInit.type = 'module';\r\n         elemScriptInit.text = `\r\n            // Initialize TX Text Control\r\n            TXTextControl.init(${JSON.stringify(self.settings)});\r\n            // Fire \"txDocumentEditorLoaded\" event to notify that the main TXTextControl object is ready\r\n            var evt = new CustomEvent(\"txDocumentEditorLoaded\", { detail: { /* Empty event argument */ } })\r\n            document.dispatchEvent(evt);\r\n         `;\r\n         self.hostElement.nativeElement.appendChild(elemScriptInit);\r\n      };\r\n      // Call the GetResource endpoint with the name of the script and append a possible query string\r\n      elemScript.src = `${httpUrl}/GetResource?name=tx-document-editor.min.js${(queryString ? `&${queryString}` : '')}`;\r\n      this.hostElement.nativeElement.appendChild(elemScript);\r\n\r\n      // Set stuff on host element\r\n      this.hostElement.nativeElement.style.display = 'inline-block';\r\n      this.hostElement.nativeElement.style.width = this.width;\r\n      this.hostElement.nativeElement.style.height = this.height;\r\n   }\r\n\r\n   get settings(): TXSettings {\r\n      let settings = new TXSettings(this.webSocketURL);\r\n\r\n      settings.ConnectionID = this.connectionID\r\n      settings.DocumentTargetMarkers = this.documentTargetMarkers;\r\n      settings.BackColor = Color.fromHexString(this.backColor);\r\n      settings.StatusBarColor = Color.fromHexString(this.statusBarColor);\r\n      settings.EditMode = TXSettings.editModeFromString(this.editMode);\r\n      settings.ContextMenusEnabled = this.contextMenusEnabled;\r\n      settings.SaveDocumentQuestionDialogEnabled = this.saveDocumentQuestionDialogEnabled;\r\n      settings.TableGridLines = this.tableGridLines;\r\n      settings.TextFrameMarkerLines = this.textFrameMarkerLines;\r\n      settings.ControlChars = this.controlChars;\r\n      settings.TextFieldsEditable = this.textFieldsEditable;\r\n      settings.FormattingPrinter = this.formattingPrinter;\r\n      settings.Culture = this.culture;\r\n      settings.UICulture = this.uiCulture;\r\n      settings.UserNames = this.userNames;\r\n      settings.ReconnectTimeout = this.reconnectTimeout;\r\n      settings.WebSocketURL = this.webSocketURL;\r\n\r\n      return settings;\r\n   }\r\n}\r\n\r\nconst ConIDCharset: string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_';\r\n\r\n/**\r\n * Generates a random string with a given length.\r\n * @param length Length of the generated ID in characters.\r\n */\r\nfunction generateRandomID(length: number): string {\r\n   if (length < 1) throw new Error('ID must be at least one character long.');\r\n\r\n   let result: string = '';\r\n\r\n   for (var i = 0; i < length; ++i) {\r\n      result += ConIDCharset.charAt(Math.floor(Math.random() * ConIDCharset.length));\r\n   }\r\n\r\n   return result;\r\n}\r\n","<div id=\"__txWebControlTempContainer\" style=\"display:inline-block;position:relative;width:100%;height:100%\">\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { DocumentEditorComponent } from './document-editor/document-editor.component';\r\n\r\n@NgModule({\r\n  declarations: [DocumentEditorComponent],\r\n  imports: [\r\n  ],\r\n  exports: [DocumentEditorComponent]\r\n})\r\nexport class DocumentEditorModule { }\r\n","/*\r\n * Public API Surface of tx-ng-document-editor\r\n */\r\n\r\nexport * from './lib/tx-ng-document-editor.module';\r\nexport * from './lib/document-editor/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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"}