{"version":3,"file":"csvbox-angular2.mjs","sources":["../../../projects/angular-adapter/src/lib/utils/insertCSS.ts","../../../projects/angular-adapter/src/lib/angular-adapter.component.ts","../../../projects/angular-adapter/src/public-api.ts","../../../projects/angular-adapter/src/csvbox-angular2.ts"],"sourcesContent":["let styleElement: HTMLStyleElement\r\n\r\nconst GLOBAL_CSS = `\r\n.csvbox-holder {\r\n  z-index: 2147483647;\r\n  position: fixed;\r\n  top: 0;\r\n  bottom: 0;\r\n  left: 0;\r\n  right: 0;\r\n  display: none;\r\n}\r\n.csvbox-holder iframe {\r\n  height: 100%;\r\n  width: 100%;\r\n  position: absolute;\r\n  top: 0px;\r\n  left: 0px;\r\n}\r\n`\r\n\r\nexport const insertCSS = (): void => {\r\n  if (styleElement) {\r\n    return\r\n  }\r\n\r\n  styleElement = document.createElement('style')\r\n  styleElement.setAttribute('type', 'text/css')\r\n  const head = document.querySelector('head');\r\n  if (head) {\r\n    head.appendChild(styleElement);\r\n  }\r\n\r\n  styleElement.textContent = GLOBAL_CSS\r\n}\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  ViewChild,\r\n  Input,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  SecurityContext,\r\n  AfterContentInit\r\n} from '@angular/core';\r\n\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { insertCSS } from './utils/insertCSS';\r\n\r\nconst appVersion = '1.1.16';\r\n\r\n@Component({\r\n  selector: 'csvbox-button',\r\n  standalone: true,\r\n  template: `\r\n    <div>\r\n      <button [disabled]=\"disabled\" #initiator (click)=\"openModal()\" [attr.data-csvbox-token]=\"uuid\">\r\n        <ng-content></ng-content>\r\n      </button>\r\n    </div>\r\n  `\r\n})\r\n\r\nexport class CSVBoxButtonComponent implements OnInit, OnChanges, AfterContentInit {\r\n\r\n  isModalShown = false;\r\n\r\n  @ViewChild('initiator', { static: false }) initiator: any;\r\n  @Input() onImport?: (success: boolean, metadata?: any) => void;\r\n  @Input() onReady?: () => void;\r\n  @Input() onClose?: () => void;\r\n  @Input() onSubmit?: (metadata: any) => void;\r\n\r\n  @Input() isImported?: (success: boolean, metadata?: any) => void;\r\n  @Input() isReady?: () => void;\r\n  @Input() isClosed?: () => void;\r\n  @Input() isSubmitted?: (metadata: any) => void;\r\n\r\n  @Input() importerReady?: () => void;\r\n  @Input() closed?: () => void;\r\n  @Input() submitted?: () => void;\r\n  @Input() imported?: (success: boolean, metadata?: any) => void;\r\n  @Input() loadStarted?: () => void;\r\n\r\n  @Input() user: { [key: string]: any } | null = null;\r\n  @Input() dynamicColumns: { [key: string]: any } | null = null;\r\n  @Input() licenseKey: string | null = null;\r\n  @Input() options: { [key: string]: any } | null = null;\r\n  @Input() uuid: string = '';\r\n  @Input() customDomain: string | null = null;\r\n  @Input() dataLocation: string | null = null;\r\n  @Input() language: string | null = null;\r\n  @Input() environment: { [key: string]: any } | null = null;\r\n\r\n  @Input() theme: string | null = null;\r\n\r\n  @Input() isIframeLoaded: boolean = false;\r\n  @Input() openModalOnIframeLoad: boolean = false;\r\n\r\n  @Input() lazy: boolean = false;\r\n\r\n  safeUrl: SafeUrl | null = null;\r\n\r\n  iframe: HTMLIFrameElement | null = null;\r\n\r\n  @Input() disabled: boolean = true;\r\n\r\n  constructor(public sanitizer: DomSanitizer) {}\r\n\r\n  holder: HTMLDivElement | null = null;\r\n\r\n  ngOnInit(): void {\r\n    this.uuid = this.generateUuid();\r\n    let domain = this.customDomain ? this.customDomain : \"app.csvbox.io\";\r\n    if (this.dataLocation) { domain = `${this.dataLocation}-${domain}`; }\r\n    let iframeUrl = `https://${domain}/embed/${this.licenseKey}`;\r\n    iframeUrl += `?library-version=${appVersion}`;\r\n    iframeUrl += \"&framework=angular\";\r\n    if (this.dataLocation) {\r\n      iframeUrl += \"&preventRedirect\";\r\n    }\r\n    if (this.language) {\r\n      iframeUrl += \"&language=\" + this.language;\r\n    }\r\n    if (this.theme) {\r\n      iframeUrl += \"&theme=\" + this.theme;\r\n    }\r\n    if (this.environment) {\r\n      const environment = JSON.stringify(this.environment).replace(/['\"]/g, (match) => '\\\\' + match);\r\n      iframeUrl += `&env=${environment}`;\r\n    }\r\n    this.safeUrl = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, this.sanitizer.bypassSecurityTrustResourceUrl(iframeUrl));\r\n  }\r\n\r\n  generateUuid(): string {\r\n    return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes['user'] && changes['user'].currentValue !== changes['user'].previousValue) {\r\n      this.updateUserVariable(changes['user'].currentValue);\r\n    }\r\n  }\r\n\r\n  updateUserVariable(data: { [key: string]: any }): void {\r\n    this.user = data;\r\n    if (this.iframe && this.iframe.contentWindow) {\r\n      this.iframe.contentWindow.postMessage({\r\n        \"customer\": data\r\n      }, \"*\");\r\n    }\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    window.addEventListener(\"message\", (event: MessageEvent) => {\r\n      if (event && typeof event.data === \"object\") {\r\n        if (event.data && event.data.data && event.data.data.unique_token === this.uuid) {\r\n          if (event.data.type && event.data.type === \"data-on-submit\") {\r\n            const metadata = event.data.data;\r\n            metadata[\"column_mappings\"] = event.data.column_mapping;\r\n            delete metadata[\"unique_token\"];\r\n            if (this.onSubmit) this.onSubmit(metadata);\r\n            if (this.isSubmitted) this.isSubmitted(metadata);\r\n            if (this.submitted) this.submitted();\r\n          } else if (event.data.type && event.data.type === \"data-push-status\") {\r\n            if (event.data.data.import_status === \"success\") {\r\n              if (event.data.row_data) {\r\n                const primary_row_data = event.data.row_data;\r\n                const headers = event.data.headers;\r\n                const rows: any[] = [];\r\n                const dynamic_columns_indexes = event.data.dynamicColumnsIndexes;\r\n                const virtual_columns_indexes = event.data.virtualColumnsIndexes || [];\r\n\r\n                primary_row_data.forEach((row_data: any) => {\r\n                  const x: { [key: string]: any } = {};\r\n                  const dynamic_columns: { [key: string]: any } = {};\r\n                  const virtual_data: { [key: string]: any } = {};\r\n\r\n                  row_data.data && row_data.data.forEach((col: any, i: number) => {\r\n                    if (col === undefined) { col = \"\"; }\r\n\r\n                    if (dynamic_columns_indexes.includes(i)) {\r\n                      dynamic_columns[headers[i]] = col;\r\n                    } else if (virtual_columns_indexes.includes(i)) {\r\n                      virtual_data[headers[i]] = col;\r\n                    } else {\r\n                      x[headers[i]] = col;\r\n                    }\r\n                  });\r\n                  if (row_data && row_data.unmapped_data) {\r\n                    x[\"_unmapped_data\"] = row_data.unmapped_data;\r\n                  }\r\n                  if (dynamic_columns && Object.keys(dynamic_columns).length > 0) {\r\n                    x[\"_dynamic_data\"] = dynamic_columns;\r\n                  }\r\n                  if (virtual_data && Object.keys(virtual_data).length > 0) {\r\n                    x[\"_virtual_data\"] = virtual_data;\r\n                  }\r\n                  rows.push(x);\r\n                });\r\n                const metadata = event.data.data;\r\n                metadata[\"rows\"] = rows;\r\n                metadata[\"column_mappings\"] = event.data.column_mapping;\r\n                metadata[\"raw_columns\"] = event.data.raw_columns;\r\n                metadata[\"ignored_columns\"] = event.data.ignored_column_row;\r\n                delete metadata[\"unique_token\"];\r\n                if (this.onImport) this.onImport(true, metadata);\r\n                if (this.isImported) this.isImported(true, metadata);\r\n                if (this.imported) this.imported(true, metadata);\r\n              } else {\r\n                const metadata = event.data.data;\r\n                delete metadata[\"unique_token\"];\r\n                if (this.onImport) this.onImport(true, metadata);\r\n                if (this.isImported) this.isImported(true, metadata);\r\n                if (this.imported) this.imported(true, metadata);\r\n              }\r\n            } else {\r\n              const metadata = event.data.data;\r\n              delete metadata[\"unique_token\"];\r\n              if (this.onImport) this.onImport(false, metadata);\r\n              if (this.isImported) this.isImported(false, metadata);\r\n              if (this.imported) this.imported(false, metadata);\r\n            }\r\n          } else if (event.data.type && event.data.type === \"csvbox-modal-hidden\") {\r\n            if (this.holder) this.holder.style.display = 'none';\r\n            this.isModalShown = false;\r\n            if (this.onClose) this.onClose();\r\n            if (this.isClosed) this.isClosed();\r\n            if (this.closed) this.closed();\r\n          } else if (event.data.type && event.data.type === \"csvbox-upload-successful\") {\r\n            if (this.onImport) this.onImport(true);\r\n            if (this.isImported) this.isImported(true);\r\n            if (this.imported) this.imported(true);\r\n          } else if (event.data.type && event.data.type === \"csvbox-upload-failed\") {\r\n            if (this.onImport) this.onImport(false);\r\n            if (this.isImported) this.isImported(false);\r\n            if (this.imported) this.imported(false);\r\n          }\r\n        }\r\n      }\r\n    }, false);\r\n\r\n    if (this.lazy) {\r\n      this.disabled = false;\r\n    } else {\r\n      this.disabled = true;\r\n      this.initImporter();\r\n    }\r\n  }\r\n\r\n  initImporter(): void {\r\n    if (this.loadStarted) this.loadStarted();\r\n\r\n    insertCSS();\r\n\r\n    const iframe = document.createElement(\"iframe\");\r\n    this.iframe = iframe;\r\n    iframe.setAttribute(\"src\", this.safeUrl?.toString() || '');\r\n    iframe.frameBorder = \"0\";\r\n\r\n    const self = this;\r\n    iframe.onload = function () {\r\n      if (self.onReady) self.onReady();\r\n      if (self.isReady) self.isReady();\r\n      if (self.importerReady) self.importerReady();\r\n\r\n      self.disabled = false;\r\n      self.isIframeLoaded = true;\r\n      if (self.iframe && self.iframe.contentWindow) {\r\n        self.iframe.contentWindow.postMessage({\r\n          \"customer\": self.user ? self.user : null,\r\n          \"columns\": self.dynamicColumns ? self.dynamicColumns : null,\r\n          \"options\": self.options ? self.options : null,\r\n          \"unique_token\": self.uuid\r\n        }, \"*\");\r\n      }\r\n      if (self.openModalOnIframeLoad) {\r\n        self.openModal();\r\n      }\r\n    }\r\n\r\n    this.holder = document.createElement('div');\r\n    this.holder.classList.add('csvbox-holder');\r\n    this.holder.setAttribute('id', `csvbox-embed-${this.uuid}`);\r\n    this.holder.appendChild(iframe);\r\n\r\n    document.body.insertAdjacentElement(\r\n      'beforeend', this.holder\r\n    );\r\n  }\r\n\r\n  openModal(): void {\r\n    if (this.lazy) {\r\n      if (!this.iframe) {\r\n        this.openModalOnIframeLoad = true;\r\n        this.initImporter();\r\n        return;\r\n      }\r\n    }\r\n    if (!this.isModalShown) {\r\n      if (this.isIframeLoaded) {\r\n        this.isModalShown = true;\r\n        if (this.holder) this.holder.style.display = 'block';\r\n        if (this.iframe && this.iframe.contentWindow) {\r\n          this.iframe.contentWindow.postMessage('openModal', '*');\r\n        }\r\n      } else {\r\n        this.openModalOnIframeLoad = true;\r\n      }\r\n    }\r\n  }\r\n}\r\n","/*\n * Public API Surface of angular-adapter\n */\n\n\nexport * from './lib/angular-adapter.component';\nexport * from './lib/interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}