@qbs-sign/sign-lib 2.1.26-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qbs-sign-sign-lib.mjs","sources":["../../../projects/sign-lib/src/lib/sign-lib.service.ts","../../../projects/sign-lib/src/services/state.service.ts","../../../projects/sign-lib/src/version.ts","../../../projects/sign-lib/src/services/telemetry.service.ts","../../../projects/sign-lib/src/helpers/scroll-helper.ts","../../../projects/sign-lib/src/helpers/translation-label-keys.ts","../../../projects/sign-lib/src/services/base.service.ts","../../../projects/sign-lib/src/services/otp.service.ts","../../../projects/sign-lib/src/services/sign.service.ts","../../../projects/sign-lib/src/services/document.service.ts","../../../projects/sign-lib/src/services/labels.service.ts","../../../projects/sign-lib/src/helpers/tanslate.pipe.ts","../../../projects/sign-lib/src/components/view-files/view-files.component.ts","../../../projects/sign-lib/src/components/view-files/view-files.component.html","../../../projects/sign-lib/src/lib/sign-lib.component.ts","../../../projects/sign-lib/src/lib/sign-lib.module.ts","../../../projects/sign-lib/src/public-api.ts","../../../projects/sign-lib/src/qbs-sign-sign-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SignLibService {\n constructor() {}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SignConfig } from '../interfaces/sign-config.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StateService {\n private defaultConfig: SignConfig = {\n InputConfig: {\n AppDataId: '',\n PhoneNumber: '',\n StepId: '',\n Token: '',\n BaseUrl: '',\n SignMode: 'client',\n AutoSign: false,\n },\n UrisConfig: {\n QualifiedSmsApiUrl: '/web/evrotrust/doc-sign/send-otp',\n QualifiedSignApiUrl: '/web/evrotrust/doc-sign/otp',\n\n SmsApiUrl: '/web/doc-sign/send-otp',\n SignApiUrl: '/web/doc-sign/otp',\n DocsApiUrl: '/web/doc-sign/view',\n AutoSignApiUrl: '/web/doc-sign/auto',\n LabelsApiUrl: '/public/infrastructure/labels',\n },\n HeaderBackgroundColor: '#fffff',\n HeaderLogo: 'https://placeholderlogo.com/img/placeholder-logo-1.png',\n Show15DaysAgreement: true,\n OrderId: '',\n FirstName: '',\n LastName: '',\n PhoneNumber: '',\n PDFs: [],\n CallbackURL: '',\n RedirectURL: '',\n LabelTranslations: [],\n };\n\n // Instance-scoped configs\n private configs: Map<string, SignConfig> = new Map();\n private configSources: Map<string, BehaviorSubject<SignConfig>> = new Map();\n private notificationSources: Map<string, BehaviorSubject<string>> = new Map();\n\n // Default instance for backward compatibility\n public get config(): SignConfig {\n return this.getConfig('default');\n }\n\n public get config$() {\n return this.getConfig$('default');\n }\n\n public get notification() {\n return this.getNotification('default');\n }\n\n public getConfig(instanceId: string = 'default'): SignConfig {\n if (!this.configs.has(instanceId)) {\n this.configs.set(instanceId, { ...this.defaultConfig });\n }\n return this.configs.get(instanceId)!;\n }\n\n public getConfig$(instanceId: string = 'default') {\n if (!this.configSources.has(instanceId)) {\n const config = this.getConfig(instanceId);\n this.configSources.set(instanceId, new BehaviorSubject(config));\n }\n return this.configSources.get(instanceId)!.asObservable();\n }\n\n public getNotification(instanceId: string = 'default') {\n if (!this.notificationSources.has(instanceId)) {\n this.notificationSources.set(instanceId, new BehaviorSubject(''));\n }\n return this.notificationSources.get(instanceId)!.asObservable();\n }\n\n public configSet(config: SignConfig, instanceId: string = 'default') {\n this.configs.set(instanceId, config);\n\n if (!this.configSources.has(instanceId)) {\n this.configSources.set(instanceId, new BehaviorSubject(config));\n } else {\n this.configSources.get(instanceId)!.next(config);\n }\n\n // If this config has translations, share them with ALL instances\n if (config.LabelTranslations && config.LabelTranslations.length > 0) {\n // Share with all existing instances\n for (const [id, existingConfig] of this.configs.entries()) {\n if (\n id !== instanceId &&\n (!existingConfig.LabelTranslations ||\n existingConfig.LabelTranslations.length === 0)\n ) {\n existingConfig.LabelTranslations = [...config.LabelTranslations];\n this.configSources.get(id)?.next(existingConfig);\n }\n }\n }\n }\n\n public notify(notification: string, instanceId: string = 'default') {\n if (!this.notificationSources.has(instanceId)) {\n this.notificationSources.set(\n instanceId,\n new BehaviorSubject(notification)\n );\n } else {\n this.notificationSources.get(instanceId)!.next(notification);\n }\n }\n\n constructor() {}\n\n public get data() {\n return JSON.parse(localStorage.getItem('data') || '{}');\n }\n\n public set data(value: any) {\n localStorage.setItem('data', JSON.stringify(value));\n }\n\n // Cleanup method to remove instance data when no longer needed\n public cleanupInstance(instanceId: string) {\n this.configs.delete(instanceId);\n this.configSources.get(instanceId)?.complete();\n this.configSources.delete(instanceId);\n this.notificationSources.get(instanceId)?.complete();\n this.notificationSources.delete(instanceId);\n }\n}\n","// Auto-updated by npm version scripts — do not edit manually.\nexport const version = '2.1.26-dev.1';\n","import { Injectable } from '@angular/core';\nimport {\n faro,\n getWebInstrumentations,\n initializeFaro,\n LogLevel,\n} from '@grafana/faro-web-sdk';\nimport { TracingInstrumentation } from '@grafana/faro-web-tracing';\nimport { version } from '../version';\n\nexport interface TelemetryConfig {\n collectorUrl?: string;\n appName?: string;\n appVersion?: string;\n environment?: string;\n tracingEnabled?: boolean;\n propagateTraceHeaderCorsUrls?: string;\n}\n\nconst DEFAULT_COLLECTOR_URL = 'https://telemetry.id-kyc.com/collect';\n\ntype TelemetryContext = Record<string, string>;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TelemetryService {\n private initialized = false;\n\n initialize(config: TelemetryConfig = {}): void {\n if (this.initialized) return;\n\n const collectorUrl = (config.collectorUrl ?? DEFAULT_COLLECTOR_URL).trim();\n if (!collectorUrl || collectorUrl.startsWith('_PLACEHOLDER_')) return;\n\n const tracingEnabled = config.tracingEnabled ?? true;\n const instrumentations = [...getWebInstrumentations()];\n\n if (tracingEnabled) {\n instrumentations.push(\n new TracingInstrumentation({\n instrumentationOptions: {\n propagateTraceHeaderCorsUrls: this.parseCorsUrls(\n config.propagateTraceHeaderCorsUrls ?? '',\n ),\n },\n }),\n );\n }\n\n initializeFaro({\n url: collectorUrl,\n app: {\n name: config.appName ?? 'qbs-sign',\n version: config.appVersion ?? version,\n environment: config.environment ?? 'prod',\n },\n instrumentations,\n });\n\n this.initialized = true;\n }\n\n trackEvent(name: string, attributes: TelemetryContext = {}): void {\n if (!this.initialized) return;\n faro.api.pushEvent(name, attributes, 'qbs-sign', { skipDedupe: true });\n }\n\n trackLog(level: LogLevel, args: unknown[], context: TelemetryContext = {}): void {\n if (!this.initialized) return;\n faro.api.pushLog(args, { level, context, skipDedupe: true });\n }\n\n trackError(error: unknown, context: TelemetryContext = {}): void {\n if (!this.initialized) return;\n faro.api.pushError(this.toError(error), {\n type: 'manual',\n context,\n skipDedupe: true,\n });\n }\n\n private parseCorsUrls(value: string): Array<string | RegExp> {\n return value\n .split(',')\n .map((e) => e.trim())\n .filter(Boolean)\n .map((e) => (e.startsWith('/') && e.endsWith('/') ? new RegExp(e.slice(1, -1)) : e));\n }\n\n private toError(error: unknown): Error {\n if (error instanceof Error) return error;\n if (typeof error === 'string') return new Error(error);\n try {\n return new Error(JSON.stringify(error, null, 2));\n } catch {\n return new Error(String(error));\n }\n }\n}\n","export function smoothScroll(target: HTMLElement, duration: number) {\n const start = window.scrollY;\n const targetPosition = target.getBoundingClientRect().top + start;\n const distance = targetPosition - start;\n let startTime: number | null = null;\n \n function animation(currentTime: number) {\n if (startTime === null) startTime = currentTime;\n const timeElapsed = currentTime - startTime;\n const run = ease(timeElapsed, start, distance, duration);\n window.scrollTo(0, run);\n if (timeElapsed < duration) requestAnimationFrame(animation);\n }\n \n function ease(t: number, b: number, c: number, d: number) {\n t /= d / 2;\n if (t < 1) return c / 2 * t * t + b;\n t--;\n return -c / 2 * (t * (t - 2) - 1) + b;\n }\n \n requestAnimationFrame(animation);\n }\n ","export class LabelKeys {\n DocumentOf: string = 'signComponent.viewfiles.documentOf';\n NoSignedDocs: string = 'signComponent.viewfiles.noSignedDocs';\n Agreement: string = 'signComponent.viewfiles.agreement';\n Sign: string = 'signComponent.viewfiles.sign';\n SendCode: string = 'signComponent.viewfiles.sendCode';\n PhoneNumber: string = 'signComponent.viewfiles.phoneNumber';\n FirstName: string = 'signComponent.viewfiles.firstName';\n LastName: string = 'signComponent.viewfiles.lastName';\n Confirm: string = 'signComponent.viewfiles.confirm';\n CheckCode: string = 'signComponent.viewfiles.checkCode';\n InsertCode: string = 'signComponent.viewfiles.insertCode';\n SignDocuments: string = 'signComponent.viewfiles.signDocuments';\n InvalidCode: string = 'signComponent.viewfiles.invalidCode';\n Success: string = 'signComponent.viewfiles.success';\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { StateService } from './state.service';\n\nexport abstract class BaseService {\n protected instanceId: string = 'default';\n\n getHeaders(instanceId?: string): HttpHeaders {\n const configToUse = this.state.getConfig(instanceId || this.instanceId);\n return new HttpHeaders({\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${configToUse.InputConfig.Token}`,\n });\n }\n\n // Keep backward compatibility\n get headers(): HttpHeaders {\n return this.getHeaders();\n }\n\n constructor(protected http: HttpClient, protected state: StateService) {}\n\n setInstanceId(instanceId: string) {\n this.instanceId = instanceId;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { OtpInterface } from '../interfaces/otp.interface';\nimport { BaseService } from './base.service';\nimport { HttpClient } from '@angular/common/http';\nimport { StateService } from './state.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OtpService extends BaseService implements OtpInterface {\n constructor(http: HttpClient, state: StateService) {\n super(http, state);\n }\n\n sendOTP(documentId: string, instanceId?: string): any {\n const configToUse = this.state.getConfig(instanceId || this.instanceId);\n let url = configToUse.InputConfig.BaseUrl;\n\n if (configToUse.InputConfig.SignQualified) {\n url += configToUse.UrisConfig.QualifiedSmsApiUrl;\n } else {\n url += configToUse.UrisConfig.SmsApiUrl;\n }\n\n const body = {\n appDataId: configToUse.InputConfig.AppDataId,\n stepId: configToUse.InputConfig.StepId,\n documentId: documentId,\n phoneNumber: configToUse.PhoneNumber,\n };\n\n return this.http.post<any>(url, body, {\n headers: this.getHeaders(instanceId),\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SignInterface } from '../interfaces/sign.interface';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { StateService } from './state.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SignService extends BaseService implements SignInterface {\n constructor(http: HttpClient, state: StateService) {\n super(http, state);\n }\n\n signPDF(\n pdfId: string,\n otpCode: string,\n instanceId?: string\n ): Observable<string> {\n const configToUse = this.state.getConfig(instanceId || this.instanceId);\n let url = configToUse.InputConfig.BaseUrl;\n\n if (configToUse.InputConfig.SignQualified) {\n url += configToUse.UrisConfig.QualifiedSignApiUrl;\n } else {\n url += configToUse.UrisConfig.SignApiUrl;\n }\n\n const body = {\n appDataId: configToUse.InputConfig.AppDataId,\n stepId: configToUse.InputConfig.StepId,\n documentId: pdfId,\n otp: otpCode,\n phoneNumber: configToUse.PhoneNumber,\n signMode: configToUse.InputConfig.SignMode,\n ipAddress: '0.0.0.0',\n };\n\n return this.http.post<any>(url, body, {\n headers: this.getHeaders(instanceId),\n });\n }\n\n autoSignPdfs(instanceId?: string): Observable<any> {\n const configToUse = this.state.getConfig(instanceId || this.instanceId);\n const url = `${configToUse.InputConfig.BaseUrl}${configToUse.UrisConfig.AutoSignApiUrl}`;\n const body = {\n appDataId: configToUse.InputConfig.AppDataId,\n stepId: configToUse.InputConfig.StepId,\n signMode: configToUse.InputConfig.SignMode\n };\n\n return this.http.post<any>(url, body, {\n headers: this.getHeaders(instanceId),\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DocumentsServiceInterface } from '../interfaces/document.interface';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { StateService } from './state.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentService\n extends BaseService\n implements DocumentsServiceInterface\n{\n constructor(http: HttpClient, state: StateService) {\n super(http, state);\n }\n\n getDocumentsToBeSigned(instanceId?: string): Observable<any> {\n const configToUse = this.state.getConfig(instanceId || this.instanceId);\n const url = `${configToUse.InputConfig.BaseUrl}${configToUse.UrisConfig.DocsApiUrl}`;\n const body = {\n appDataId: configToUse.InputConfig.AppDataId,\n stepId: configToUse.InputConfig.StepId,\n };\n\n return this.http.post<any>(url, body, { headers: this.getHeaders(instanceId) });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LabelsServiceInterface } from '../interfaces/labels.interface';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { StateService } from './state.service';\nimport { LabelKeys } from '../helpers/translation-label-keys';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LabelsService implements LabelsServiceInterface {\n constructor(private http: HttpClient, private state: StateService) {}\n\n getLabels(instanceId?: string): Observable<any> {\n const configToUse = this.state.getConfig(instanceId || 'default');\n return this.http.get<any>(\n `${configToUse.InputConfig.BaseUrl}${configToUse.UrisConfig.LabelsApiUrl}?AppSiteId=SignComponent`\n );\n }\n}\n","import { OnDestroy, OnInit, Pipe, PipeTransform } from '@angular/core';\nimport { StateService } from '../services/state.service';\nimport { LabelsService } from '../services/labels.service';\nimport { SignConfig } from '../interfaces/sign-config.interface';\nimport { LabelMapping } from '../interfaces/labels.interface';\nimport { ChangeDetectorRef } from '@angular/core';\n\n@Pipe({\n name: 'translate',\n pure: false,\n standalone: false,\n})\nexport class TranslatePipe implements PipeTransform, OnInit, OnDestroy {\n private config: SignConfig;\n private subscription: any;\n private isLoading: boolean = false;\n\n constructor(\n private stateService: StateService,\n private labelsService: LabelsService,\n private cdr: ChangeDetectorRef,\n ) {\n this.config = this.stateService.config;\n }\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n ngOnInit(): void {\n this.subscription = this.stateService.config$.subscribe((config: any) => {\n this.config = config;\n });\n }\n\n loadLabelsIfNecessary() {\n if (this.config.LabelTranslations.length === 0 && this.isLoading === false) {\n if (this.config.InputConfig.BaseUrl) {\n this.isLoading = true;\n \n this.labelsService.getLabels('default').subscribe((labels: LabelMapping[]) => {\n this.config.LabelTranslations = labels;\n this.isLoading = false;\n \n // Update the default config\n this.stateService.configSet(this.config, 'default');\n \n this.cdr.detectChanges();\n },\n (error) => {\n console.error('🔷 TranslatePipe: Failed to load translation labels:', error);\n this.isLoading = false;\n });\n } else {\n console.warn('🔷 TranslatePipe: No BaseUrl available for loading translations');\n }\n }\n }\n\n transform(value: any, args?: any[]): any {\n this.loadLabelsIfNecessary();\n\n var translatedValue = this.config.LabelTranslations.find(\n (t) => t.labelName == value\n )?.labelValue;\n\n if (!translatedValue) {\n return value;\n }\n\n if (args?.length && args?.length > 0) {\n args.forEach((arg, index) => {\n translatedValue = translatedValue!.replace(`{${index}}`, arg);\n });\n }\n\n return translatedValue;\n }\n}\n","import {\n Component,\n ElementRef,\n ViewChild,\n AfterViewChecked,\n OnInit,\n OnDestroy,\n Input,\n} from '@angular/core';\nimport { ChangeDetectorRef } from '@angular/core';\nimport { smoothScroll } from '../../helpers/scroll-helper';\nimport { LabelKeys } from '../../helpers/translation-label-keys';\nimport { StateService } from '../../services/state.service';\nimport { OtpService } from '../../services/otp.service';\nimport { SignService } from '../../services/sign.service';\nimport { DocumentService } from '../../services/document.service';\nimport { SignConfig } from '../../interfaces/sign-config.interface';\nimport { SignDocument } from '../../interfaces/document.interface';\n\n@Component({\n selector: 'lib-view-files',\n templateUrl: './view-files.component.html',\n styleUrls: ['./view-files.component.css'],\n standalone: false,\n})\nexport class ViewFilesComponent implements AfterViewChecked, OnInit, OnDestroy {\n @ViewChild('codeContainer') codeContainer!: ElementRef;\n @Input() instanceId: string = 'default';\n\n currentIndex: number = 0;\n showPdfContainer: boolean = false;\n showCodeContainer: boolean = false;\n showCodeError: boolean = false;\n showPhoneError: boolean = false;\n showSendCodeError: boolean = false;\n otpFlow: boolean = false;\n isPhoneNumberDisabled = true;\n isFirstNameProvided = false;\n isLastNameProvided = false;\n codeSent: boolean = false;\n scrollPending: boolean = false;\n config!: SignConfig;\n labelKeys: LabelKeys = new LabelKeys();\n otpCode: string = '';\n currentPdf = '';\n subscription: any;\n isLoading: boolean = false;\n isSigningDocument: boolean = false;\n isSendingCode: boolean = false;\n showSuccessSigned: boolean = false;\n showNoSignedDocuments: boolean = false;\n showErrorSigned: boolean = false;\n private hasInitialized: boolean = false;\n private documentsLoadingInProgress: boolean = false;\n private lastInstanceId: string = '';\n\n constructor(\n private cdr: ChangeDetectorRef,\n private state: StateService,\n private otpService: OtpService,\n private signService: SignService,\n private documentService: DocumentService\n ) {\n // Don't initialize config here - instanceId is not set yet by Angular\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n // Cleanup instance data when component is destroyed\n if (this.lastInstanceId) {\n this.state.cleanupInstance(this.lastInstanceId);\n }\n }\n\n ngOnInit() {\n if (\n this.config &&\n this.config.InputConfig.Styles &&\n typeof this.config.InputConfig.Styles.buttonStyles !== 'object'\n ) {\n throw new Error(\n `Invalid config.InputConfig.Styles.buttonStyles: Expected an object.\\n\\nExample usage:\\nconfig = {\\n ...,\\n InputConfig: {\\n Styles: {\\n buttonStyles: {\\n backgroundColor: '#b9193f',\\n color: '#1a1818',\\n border: '6px solid',\\n borderColor: '#bf3929',\\n borderRadius: '12px',\\n padding: '10px 30px',\\n fontFamily: 'Trebuchet MS, sans-serif',\\n fontSize: '16px',\\n letterSpacing: '0px',\\n width: 'auto',\\n height: 'auto',\\n minWidth: '80px',\\n minHeight: 'fit-content',\\n maxWidth: 'fit-content',\\n maxHeight: 'fit-content'\\n }\\n }\\n }\\n}\\n`\n );\n }\n\n // Check if instanceId has changed - if so, reset initialization\n if (this.lastInstanceId !== this.instanceId) {\n // Clean up previous instance if it exists\n if (this.lastInstanceId) {\n this.state.cleanupInstance(this.lastInstanceId);\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n // Reset initialization state for new instance\n this.hasInitialized = false;\n this.lastInstanceId = this.instanceId;\n\n // Reset component state\n this.resetComponentState();\n }\n\n if (this.hasInitialized) return;\n this.hasInitialized = true;\n\n // Now instanceId is properly set by Angular's @Input\n this.config = this.state.getConfig(this.instanceId);\n this.isPhoneNumberDisabled = this.config.PhoneNumber ? true : false;\n this.isFirstNameProvided = !!this.config.FirstName;\n this.isLastNameProvided = !!this.config.LastName;\n\n // Set up subscription to config changes for this instance\n this.subscription = this.state\n .getConfig$(this.instanceId)\n .subscribe(async (config: any) => {\n if (!config) return;\n\n this.config = config;\n this.isPhoneNumberDisabled = this.config.PhoneNumber ? true : false;\n this.isFirstNameProvided = !!this.config.FirstName;\n this.isLastNameProvided = !!this.config.LastName;\n\n if (\n this.config.InputConfig?.AppDataId &&\n this.config.InputConfig?.StepId\n ) {\n if (this.config.InputConfig.AutoSign) {\n this.otpFlow = false;\n this.showPdfContainer = false;\n this.proceedSigning();\n } else {\n this.loadDocuments();\n }\n } else {\n this.resetLoadingState();\n }\n });\n\n // Initial check for existing config\n if (\n this.config?.InputConfig?.AppDataId &&\n this.config?.InputConfig?.StepId\n ) {\n this.loadDocuments();\n } else {\n this.resetLoadingState();\n }\n }\n\n private resetComponentState() {\n // Reset all component state variables\n this.currentIndex = 0;\n this.showPdfContainer = false;\n this.showCodeContainer = false;\n this.showCodeError = false;\n this.showPhoneError = false;\n this.showSendCodeError = false;\n this.otpFlow = false;\n this.codeSent = false;\n this.scrollPending = false;\n this.otpCode = '';\n this.currentPdf = '';\n this.isLoading = false;\n this.isSigningDocument = false;\n this.isSendingCode = false;\n this.showSuccessSigned = false;\n this.showNoSignedDocuments = false;\n this.showErrorSigned = false;\n this.documentsLoadingInProgress = false;\n }\n\n private resetLoadingState() {\n this.isLoading = false;\n this.documentsLoadingInProgress = false;\n this.cdr.markForCheck();\n }\n\n loadDocuments() {\n // Prevent multiple simultaneous loads\n if (this.documentsLoadingInProgress) {\n return;\n }\n\n // Reset error states\n this.showNoSignedDocuments = false;\n this.showErrorSigned = false;\n\n this.documentsLoadingInProgress = true;\n this.isLoading = true;\n this.cdr.markForCheck();\n\n // Add timeout to prevent infinite loading\n const loadingTimeout = setTimeout(() => {\n console.error('🔷 ViewFilesComponent: Loading timeout - forcing reset');\n this.resetLoadingState();\n this.showNoSignedDocuments = true;\n }, 30000);\n\n try {\n if (!this.config.PDFs || this.config.PDFs.length === 0) {\n this.documentService.getDocumentsToBeSigned(this.instanceId).subscribe({\n next: (docsToSign) => {\n clearTimeout(loadingTimeout);\n this.resetLoadingState();\n\n if (docsToSign && docsToSign.length > 0) {\n this.config.PDFs = this.convertToSignDocuments(docsToSign);\n this.showPdfContainer = true;\n this.refreshCurrentPDF();\n this.otpFlow = true;\n this.showNoSignedDocuments = false;\n } else {\n this.showPdfContainer = false;\n this.showNoSignedDocuments = true;\n }\n\n // Force change detection\n setTimeout(() => {\n this.cdr.detectChanges();\n }, 100);\n },\n error: (error) => {\n clearTimeout(loadingTimeout);\n console.error(\n '🔷 ViewFilesComponent: Error fetching documents:',\n error\n );\n this.resetLoadingState();\n this.showPdfContainer = false;\n this.showNoSignedDocuments = true;\n this.cdr.markForCheck();\n },\n });\n } else {\n clearTimeout(loadingTimeout);\n // Documents already loaded\n this.resetLoadingState();\n this.showPdfContainer = this.config.PDFs.length > 0;\n if (this.showPdfContainer) {\n this.refreshCurrentPDF();\n this.otpFlow = true;\n } else {\n this.showNoSignedDocuments = true;\n }\n this.cdr.markForCheck();\n }\n } catch (ex) {\n clearTimeout(loadingTimeout);\n console.error('🔷 ViewFilesComponent: Exception in loadDocuments:', ex);\n this.resetLoadingState();\n this.showPdfContainer = false;\n this.showNoSignedDocuments = true;\n this.cdr.markForCheck();\n }\n }\n\n convertToSignDocuments(documents: any): SignDocument[] {\n return documents.map((d: any) => {\n return {\n id: d.id,\n name: d.name,\n data: d.data,\n pdfData: this.getB64ForSrc(d.data),\n isSigned: false,\n isAgreementChecked: this.config.InputConfig.ShowConfirm == false,\n } as SignDocument;\n });\n }\n\n ngAfterViewChecked() {\n if (this.scrollPending && this.codeContainer) {\n smoothScroll(this.codeContainer.nativeElement, 300);\n this.scrollPending = false;\n }\n }\n\n nextPdf() {\n if (this.currentIndex < this.config.PDFs.length - 1) {\n this.currentIndex++;\n this.refreshCurrentPDF();\n }\n }\n\n previousPdf() {\n if (this.currentIndex > 0) {\n this.currentIndex--;\n this.refreshCurrentPDF();\n }\n }\n\n refreshCurrentPDF() {\n this.currentPdf = this.config.PDFs[this.currentIndex].pdfData;\n }\n\n proceedSigning() {\n if (this.otpFlow) {\n if (!this.config.PDFs[this.currentIndex].isAgreementChecked) {\n return;\n }\n\n this.showCodeContainer = true;\n\n // If phone is pre-provided, skip to send code directly\n // Otherwise show the form so user can enter phone (and name if needed)\n if (this.isPhoneNumberDisabled) {\n this.codeSent = true;\n this.sendCode();\n } else {\n this.codeSent = false;\n }\n } else {\n if (!this.isSigningDocument) {\n this.showPdfContainer = false;\n this.isSigningDocument = true;\n this.signService.autoSignPdfs(this.instanceId).subscribe({\n next: (data) => {\n this.isSigningDocument = false;\n if (data && data.length > 0) {\n this.showSuccessSigned = true;\n } else {\n this.showNoSignedDocuments = true;\n }\n this.state.notify('success', this.instanceId);\n },\n error: (err) => {\n this.isSigningDocument = false;\n this.showErrorSigned = true;\n },\n });\n }\n }\n }\n\n get canSendCode(): boolean {\n return !!this.config.PhoneNumber;\n }\n\n sendCode() {\n this.isSendingCode = true;\n this.showCodeError = false;\n this.showSendCodeError = false;\n this.showPhoneError = false;\n\n if (this.config.PhoneNumber) {\n const docId = this.config.PDFs[this.currentIndex].id;\n if (docId) {\n this.otpService.sendOTP(docId, this.instanceId).subscribe({\n next: () => {\n this.isSendingCode = false;\n this.codeSent = true;\n },\n error: (err: string) => {\n this.isSendingCode = false;\n this.showSendCodeError = true;\n console.error('Error sending code', err);\n },\n });\n }\n } else {\n this.isSendingCode = false;\n this.showPhoneError = true;\n }\n }\n\n retrySendCode() {\n this.showSendCodeError = false;\n this.showPhoneError = false;\n }\n\n signDocuments() {\n this.showCodeError = false;\n this.showErrorSigned = false;\n\n if (this.otpCode) {\n this.isSigningDocument = true;\n this.signService\n .signPDF(\n this.config.PDFs[this.currentIndex].id,\n this.otpCode,\n this.instanceId\n )\n .subscribe({\n next: (data) => {\n this.isSigningDocument = false;\n this.otpCode = '';\n this.showCodeError = false;\n\n // Mark all documents as signed\n this.config.PDFs.forEach((i) => (i.isSigned = true));\n\n // If all documents are signed mark as success\n if (!this.config.PDFs.find((d) => !d.isSigned)) {\n this.showSuccessSigned = true;\n this.state.notify('success', this.instanceId);\n }\n this.showCodeContainer = false;\n },\n error: (err) => {\n this.isSigningDocument = false;\n if (err && err.status === 498) {\n this.showCodeError = true;\n } else {\n this.showErrorSigned = true;\n }\n },\n });\n } else {\n this.showCodeError = true;\n }\n }\n\n getB64ForSrc(b64Value: string) {\n return `data:application/pdf;base64,${b64Value}`;\n }\n\n retry() {\n this.showCodeContainer = true;\n this.codeSent = false;\n this.showPhoneError = false;\n this.showCodeError = false;\n this.showErrorSigned = false;\n }\n}\n","<!-- Loading State -->\n<div class=\"loading-section\" *ngIf=\"isLoading === true\">\n <div class=\"loading-spinner\"></div>\n <p class=\"loading-text\">{{ \"loading\" | translate }}...</p>\n</div>\n\n<!-- Signing Document State -->\n<div class=\"loading-section\" *ngIf=\"isSigningDocument === true\">\n <div class=\"loading-spinner\"></div>\n <p class=\"loading-text\">\n {{ \"signComponent.viewfiles.signingDocuments\" | translate }}...\n </p>\n</div>\n\n<div *ngIf=\"isLoading === false\">\n <!-- PDF Viewer -->\n <div *ngIf=\"showPdfContainer\" class=\"pdf-viewer-container\">\n <div class=\"documents-navigation\">\n <button\n (click)=\"previousPdf()\"\n [disabled]=\"currentIndex === 0 || isSigningDocument === true\"\n class=\"nav-button\"\n >\n &#8592;\n </button>\n\n <p class=\"file-info font-paragraph\">\n {{\n labelKeys.DocumentOf\n | translate : [currentIndex + 1, config.PDFs.length]\n }}\n </p>\n\n <button\n (click)=\"nextPdf()\"\n [disabled]=\"\n currentIndex === config.PDFs.length - 1 ||\n isSigningDocument === true ||\n showCodeContainer === true\n \"\n class=\"nav-button\"\n >\n &#8594;\n </button>\n </div>\n\n <pdf-viewer\n [src]=\"currentPdf\"\n [render-text]=\"true\"\n [original-size]=\"false\"\n [external-link-target]=\"'blank'\"\n class=\"pdf-viewer\"\n ></pdf-viewer>\n </div>\n\n <!-- No Signed Documents -->\n <div *ngIf=\"showNoSignedDocuments\" class=\"no-files font-paragraph\">\n <p>{{ labelKeys.NoSignedDocs | translate }}</p>\n </div>\n\n <!-- Agreement Section -->\n <div\n class=\"agreement-section\"\n *ngIf=\"\n config.PDFs.length > 0 &&\n !config.PDFs[currentIndex].isSigned &&\n !showCodeContainer\n \"\n >\n <div class=\"agreement-content\">\n <p class=\"font-paragraph\">\n {{ labelKeys.Agreement | translate }}\n </p>\n\n <div\n class=\"agreement-confirm-section\"\n *ngIf=\"config.InputConfig.ShowConfirm != false\"\n >\n <input\n class=\"checkbox component-checkbox\"\n type=\"checkbox\"\n id=\"termsCheckbox\"\n [(ngModel)]=\"config.PDFs[currentIndex].isAgreementChecked\"\n />\n <label\n for=\"termsCheckbox\"\n class=\"checkbox-confirm-label component-checkbox-label\"\n >{{ labelKeys.Confirm | translate }}</label\n >\n </div>\n </div>\n\n <button\n (click)=\"proceedSigning()\"\n [disabled]=\"!config.PDFs[currentIndex].isAgreementChecked\"\n class=\"sign-button\"\n [ngStyle]=\"config.InputConfig.Styles?.buttonStyles\"\n >\n {{ labelKeys.Sign | translate }}\n </button>\n </div>\n\n <!-- OTP / Send Code Flow -->\n <div\n #codeContainer\n class=\"send-code-container\"\n *ngIf=\"\n showCodeContainer &&\n config.PDFs.length > 0 &&\n config.PDFs[currentIndex].isSigned === false\n \"\n >\n <!-- Phase 1: Send Code (with name + phone inputs) -->\n <div class=\"send-code-content\" *ngIf=\"!codeSent\">\n <h2 class=\"font-heading-2\">{{ labelKeys.SendCode | translate }}</h2>\n\n <!-- First Name input (when not provided in config) -->\n <div *ngIf=\"!isFirstNameProvided\" class=\"name-input-group\">\n <label for=\"firstName\">\n {{ labelKeys.FirstName | translate }}\n </label>\n <input\n type=\"text\"\n id=\"firstName\"\n [(ngModel)]=\"config.FirstName\"\n />\n </div>\n\n <!-- Last Name input (when not provided in config) -->\n <div *ngIf=\"!isLastNameProvided\" class=\"name-input-group\">\n <label for=\"lastName\">\n {{ labelKeys.LastName | translate }}\n </label>\n <input\n type=\"text\"\n id=\"lastName\"\n [(ngModel)]=\"config.LastName\"\n />\n </div>\n\n <!-- Phone Number input -->\n <label class=\"component-camp-text-label\" for=\"phoneNumber\">\n {{ labelKeys.PhoneNumber | translate }}\n </label>\n <input\n class=\"component-camp-text\"\n type=\"text\"\n id=\"phoneNumber\"\n [(ngModel)]=\"config.PhoneNumber\"\n [disabled]=\"isPhoneNumberDisabled\"\n required\n />\n\n <button\n type=\"button\"\n (click)=\"sendCode()\"\n [disabled]=\"isSendingCode || !canSendCode\"\n [ngStyle]=\"config.InputConfig.Styles?.buttonStyles\"\n >\n {{\n isSendingCode\n ? (\"signComponent.viewfiles.sending\" | translate) + \"...\"\n : (labelKeys.SendCode | translate)\n }}\n </button>\n\n <!-- Phone validation error -->\n <div *ngIf=\"showPhoneError\">\n <p class=\"error-message\">\n {{ \"signComponent.viewfiles.invalidPhoneNumber\" | translate }}\n </p>\n </div>\n\n <!-- Send code error -->\n <div *ngIf=\"showSendCodeError\">\n <p class=\"error-message\">\n {{ \"signComponent.viewfiles.errorSigning\" | translate }}\n </p>\n <button\n (click)=\"retrySendCode()\"\n class=\"retry-button\"\n [ngStyle]=\"config.InputConfig.Styles?.buttonStyles\"\n >\n {{ \"signComponent.viewfiles.retry\" | translate }}\n </button>\n </div>\n </div>\n\n <!-- Phase 2: Enter OTP Code -->\n <div class=\"code-sent-content\" *ngIf=\"codeSent\">\n <h2 class=\"font-heading-2\">{{ labelKeys.CheckCode | translate }}</h2>\n <label class=\"component-camp-text-label\" for=\"code-sent\">\n {{ labelKeys.InsertCode | translate }}\n </label>\n <input\n class=\"component-camp-text\"\n type=\"text\"\n id=\"code-sent\"\n autocomplete=\"off\"\n [(ngModel)]=\"otpCode\"\n required\n />\n <button\n (click)=\"signDocuments()\"\n [disabled]=\"isSigningDocument\"\n [ngStyle]=\"config.InputConfig.Styles?.buttonStyles\"\n >\n {{\n isSigningDocument\n ? (\"signComponent.viewfiles.signing\" | translate) + \"...\"\n : (\"signComponent.viewfiles.signDocument\" | translate)\n }}\n </button>\n\n <!-- Invalid OTP code error -->\n <div *ngIf=\"showCodeError\">\n <p class=\"error-message\">{{ labelKeys.InvalidCode | translate }}</p>\n <button\n (click)=\"retry()\"\n class=\"retry-button\"\n [ngStyle]=\"config.InputConfig.Styles?.buttonStyles\"\n >\n {{ \"signComponent.viewfiles.retry\" | translate }}\n </button>\n </div>\n </div>\n </div>\n\n <!-- Success State -->\n <div class=\"success-section\" *ngIf=\"showSuccessSigned\">\n <div class=\"success-content\">\n <p class=\"font-paragraph success-message\">\n {{ \"signComponent.viewfiles.documentIsSigned\" | translate }}\n </p>\n </div>\n </div>\n\n <!-- Error State (with retry) -->\n <div class=\"success-section\" *ngIf=\"showErrorSigned\">\n <div class=\"success-content\">\n <p class=\"font-paragraph error-message\">\n {{ \"signComponent.viewfiles.errorSigning\" | translate }}\n </p>\n <button\n (click)=\"retry()\"\n class=\"retry-button\"\n [ngStyle]=\"config.InputConfig.Styles?.buttonStyles\"\n >\n {{ \"signComponent.viewfiles.retry\" | translate }}\n </button>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { StateService } from '../services/state.service';\nimport { TelemetryService } from '../services/telemetry.service';\nimport { InputConfig } from '../interfaces/input-config.interface';\nimport { SignConfig } from '../interfaces/sign-config.interface';\n\n@Component({\n selector: 'lib-sign',\n template: `<lib-view-files\n *ngIf=\"config\"\n [instanceId]=\"instanceId\"\n ></lib-view-files>`,\n styles: [],\n standalone: false,\n})\nexport class SignLibComponent implements OnInit {\n @Input() config: InputConfig | undefined = undefined;\n @Input() instanceId: string = '';\n @Output() event = new EventEmitter();\n\n private signConfig!: SignConfig;\n\n constructor(private state: StateService, private telemetry: TelemetryService) {}\n\n async ngOnInit(): Promise<void> {\n this.event.emit('loaded');\n\n // Generate instanceId if not provided\n if (!this.instanceId) {\n this.instanceId = 'sign-lib-' + Math.random().toString(36).substr(2, 9);\n }\n\n if (typeof this.config === 'string') {\n try {\n this.config = JSON.parse(this.config);\n } catch (error) {\n console.error('Invalid config: ', error);\n }\n }\n\n if (this.config) {\n this.telemetry.initialize(this.config.Telemetry ?? {});\n\n // Create a fresh signConfig for this instance - don't reuse the old one!\n this.signConfig = this.state.getConfig(this.instanceId);\n\n // Update with new input config\n this.signConfig.InputConfig = this.config;\n this.signConfig.InputConfig.AppDataId = this.config.AppDataId || 'n/a';\n this.signConfig.InputConfig.StepId = this.config.StepId || 'n/a';\n this.signConfig.InputConfig.PhoneNumber =\n this.config.PhoneNumber || 'n/a';\n this.signConfig.PhoneNumber = this.config.PhoneNumber || 'n/a';\n\n // Ensure PDFs array is empty for new instance\n this.signConfig.PDFs = [];\n\n this.signConfig.LabelTranslations = Object.entries(\n this.config.Labels || {}\n ).map((i: any) => {\n return {\n labelName: 'signComponent.viewfiles.' + i[0],\n labelValue: i[1],\n };\n });\n\n // IMPORTANT: Also update the default config with connection info so TranslatePipe can work\n const defaultConfig = this.state.getConfig('default');\n if (\n !defaultConfig.InputConfig.BaseUrl ||\n defaultConfig.InputConfig.BaseUrl === ''\n ) {\n defaultConfig.InputConfig.BaseUrl = this.config.BaseUrl;\n defaultConfig.InputConfig.Token = this.config.Token;\n this.state.configSet(defaultConfig, 'default');\n }\n\n // Preserve existing translations if they exist in any instance\n const existingTranslations = defaultConfig.LabelTranslations;\n if (existingTranslations && existingTranslations.length > 0) {\n this.signConfig.LabelTranslations = [...existingTranslations];\n }\n\n // Use instance-scoped state\n this.state.configSet(this.signConfig, this.instanceId);\n\n this.state.getNotification(this.instanceId).subscribe((message: any) => {\n if (message) {\n this.event.emit(message);\n }\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SignLibComponent } from './sign-lib.component';\nimport { ViewFilesComponent } from '../components/view-files/view-files.component';\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '../helpers/tanslate.pipe';\n\n@NgModule({\n declarations: [SignLibComponent, ViewFilesComponent, TranslatePipe],\n imports: [PdfViewerModule, CommonModule, HttpClientModule, FormsModule],\n exports: [SignLibComponent],\n providers: [TranslatePipe],\n})\nexport class SignLibModule {}\n","/*\n * Public API Surface of sign-lib\n */\n\nexport * from './lib/sign-lib.service';\nexport * from './lib/sign-lib.component';\nexport * from './lib/sign-lib.module';\nexport * from './interfaces/sign-config.interface';\nexport * from './services/telemetry.service';\nexport * from './version';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.StateService","i1.StateService","i2.LabelsService","i2.OtpService","i3.SignService","i4.DocumentService","i8.TranslatePipe","i2.TelemetryService","i3","i4.ViewFilesComponent"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function smoothScroll(target: HTMLElement, duration: number): void;
@@ -0,0 +1,20 @@
1
+ import { OnDestroy, OnInit, PipeTransform } from '@angular/core';
2
+ import { StateService } from '../services/state.service';
3
+ import { LabelsService } from '../services/labels.service';
4
+ import { ChangeDetectorRef } from '@angular/core';
5
+ import * as i0 from "@angular/core";
6
+ export declare class TranslatePipe implements PipeTransform, OnInit, OnDestroy {
7
+ private stateService;
8
+ private labelsService;
9
+ private cdr;
10
+ private config;
11
+ private subscription;
12
+ private isLoading;
13
+ constructor(stateService: StateService, labelsService: LabelsService, cdr: ChangeDetectorRef);
14
+ ngOnDestroy(): void;
15
+ ngOnInit(): void;
16
+ loadLabelsIfNecessary(): void;
17
+ transform(value: any, args?: any[]): any;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<TranslatePipe, never>;
19
+ static ɵpipe: i0.ɵɵPipeDeclaration<TranslatePipe, "translate", false>;
20
+ }
@@ -0,0 +1,16 @@
1
+ export declare class LabelKeys {
2
+ DocumentOf: string;
3
+ NoSignedDocs: string;
4
+ Agreement: string;
5
+ Sign: string;
6
+ SendCode: string;
7
+ PhoneNumber: string;
8
+ FirstName: string;
9
+ LastName: string;
10
+ Confirm: string;
11
+ CheckCode: string;
12
+ InsertCode: string;
13
+ SignDocuments: string;
14
+ InvalidCode: string;
15
+ Success: string;
16
+ }
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@qbs-sign/sign-lib" />
5
+ export * from './public-api';
@@ -0,0 +1,11 @@
1
+ export interface SignDocument {
2
+ id: string;
3
+ name: string;
4
+ data: string;
5
+ pdfData: string;
6
+ isSigned: boolean;
7
+ isAgreementChecked: boolean;
8
+ }
9
+ export interface DocumentsServiceInterface {
10
+ getDocumentsToBeSigned(): any;
11
+ }
@@ -0,0 +1,19 @@
1
+ import { TelemetryConfig } from '../services/telemetry.service';
2
+ export interface InputConfig {
3
+ AppDataId: string;
4
+ PhoneNumber: string;
5
+ StepId: string;
6
+ Token: string;
7
+ BaseUrl: string;
8
+ SignMode: string | null;
9
+ ShowConfirm?: boolean | null;
10
+ SignQualified?: boolean | null;
11
+ Labels?: any;
12
+ AutoSign: boolean;
13
+ Styles?: {
14
+ buttonStyles: {
15
+ [key: string]: string;
16
+ };
17
+ };
18
+ Telemetry?: TelemetryConfig;
19
+ }
@@ -0,0 +1,7 @@
1
+ export interface LabelsServiceInterface {
2
+ getLabels(): any;
3
+ }
4
+ export interface LabelMapping {
5
+ labelName: string;
6
+ labelValue: string;
7
+ }
@@ -0,0 +1,3 @@
1
+ export interface OtpInterface {
2
+ sendOTP(documentId: string): any;
3
+ }
@@ -0,0 +1,32 @@
1
+ import { SignDocument } from './document.interface';
2
+ import { InputConfig } from './input-config.interface';
3
+ import { LabelMapping } from './labels.interface';
4
+ export interface UrisConfig {
5
+ QualifiedSmsApiUrl: string | null;
6
+ QualifiedSignApiUrl: string | null;
7
+ SmsApiUrl: string;
8
+ SignApiUrl: string;
9
+ DocsApiUrl: string;
10
+ AutoSignApiUrl: string;
11
+ LabelsApiUrl: string;
12
+ }
13
+ export interface Styles {
14
+ buttonStyles?: {
15
+ [key: string]: string;
16
+ };
17
+ }
18
+ export interface SignConfig {
19
+ InputConfig: InputConfig;
20
+ UrisConfig: UrisConfig;
21
+ HeaderBackgroundColor?: string;
22
+ HeaderLogo?: string;
23
+ Show15DaysAgreement?: boolean;
24
+ OrderId: string;
25
+ FirstName: string;
26
+ LastName: string;
27
+ PhoneNumber: string;
28
+ PDFs: SignDocument[];
29
+ CallbackURL: string;
30
+ RedirectURL: string;
31
+ LabelTranslations: LabelMapping[];
32
+ }
@@ -0,0 +1,5 @@
1
+ import { Observable } from "rxjs";
2
+ export interface SignInterface {
3
+ signPDF(pdfId: string, otpCode: string): Observable<string>;
4
+ autoSignPdfs(): Observable<any>;
5
+ }
@@ -0,0 +1,17 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { StateService } from '../services/state.service';
3
+ import { TelemetryService } from '../services/telemetry.service';
4
+ import { InputConfig } from '../interfaces/input-config.interface';
5
+ import * as i0 from "@angular/core";
6
+ export declare class SignLibComponent implements OnInit {
7
+ private state;
8
+ private telemetry;
9
+ config: InputConfig | undefined;
10
+ instanceId: string;
11
+ event: EventEmitter<any>;
12
+ private signConfig;
13
+ constructor(state: StateService, telemetry: TelemetryService);
14
+ ngOnInit(): Promise<void>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<SignLibComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<SignLibComponent, "lib-sign", never, { "config": { "alias": "config"; "required": false; }; "instanceId": { "alias": "instanceId"; "required": false; }; }, { "event": "event"; }, never, never, false, never>;
17
+ }
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./sign-lib.component";
3
+ import * as i2 from "../components/view-files/view-files.component";
4
+ import * as i3 from "../helpers/tanslate.pipe";
5
+ import * as i4 from "ng2-pdf-viewer";
6
+ import * as i5 from "@angular/common";
7
+ import * as i6 from "@angular/common/http";
8
+ import * as i7 from "@angular/forms";
9
+ export declare class SignLibModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<SignLibModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SignLibModule, [typeof i1.SignLibComponent, typeof i2.ViewFilesComponent, typeof i3.TranslatePipe], [typeof i4.PdfViewerModule, typeof i5.CommonModule, typeof i6.HttpClientModule, typeof i7.FormsModule], [typeof i1.SignLibComponent]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<SignLibModule>;
13
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SignLibService {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<SignLibService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<SignLibService>;
6
+ }
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@qbs-sign/sign-lib",
3
+ "version": "2.1.26-dev.1",
4
+ "peerDependencies": {
5
+ "@angular/common": "^18.2.8",
6
+ "@angular/core": "^18.2.8",
7
+ "@grafana/faro-web-sdk": "^2.3.1",
8
+ "@grafana/faro-web-tracing": "^2.3.1",
9
+ "pdfjs-dist": "^4.4.168",
10
+ "ng2-pdf-viewer": "^10.2.2"
11
+ },
12
+ "dependencies": {
13
+ "tslib": "^2.3.0"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "sideEffects": false,
19
+ "module": "fesm2022/qbs-sign-sign-lib.mjs",
20
+ "typings": "index.d.ts",
21
+ "exports": {
22
+ "./package.json": {
23
+ "default": "./package.json"
24
+ },
25
+ ".": {
26
+ "types": "./index.d.ts",
27
+ "default": "./fesm2022/qbs-sign-sign-lib.mjs"
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,6 @@
1
+ export * from './lib/sign-lib.service';
2
+ export * from './lib/sign-lib.component';
3
+ export * from './lib/sign-lib.module';
4
+ export * from './interfaces/sign-config.interface';
5
+ export * from './services/telemetry.service';
6
+ export * from './version';
@@ -0,0 +1,11 @@
1
+ import { HttpClient, HttpHeaders } from '@angular/common/http';
2
+ import { StateService } from './state.service';
3
+ export declare abstract class BaseService {
4
+ protected http: HttpClient;
5
+ protected state: StateService;
6
+ protected instanceId: string;
7
+ getHeaders(instanceId?: string): HttpHeaders;
8
+ get headers(): HttpHeaders;
9
+ constructor(http: HttpClient, state: StateService);
10
+ setInstanceId(instanceId: string): void;
11
+ }
@@ -0,0 +1,12 @@
1
+ import { DocumentsServiceInterface } from '../interfaces/document.interface';
2
+ import { BaseService } from './base.service';
3
+ import { Observable } from 'rxjs';
4
+ import { HttpClient } from '@angular/common/http';
5
+ import { StateService } from './state.service';
6
+ import * as i0 from "@angular/core";
7
+ export declare class DocumentService extends BaseService implements DocumentsServiceInterface {
8
+ constructor(http: HttpClient, state: StateService);
9
+ getDocumentsToBeSigned(instanceId?: string): Observable<any>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<DocumentService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<DocumentService>;
12
+ }
@@ -0,0 +1,13 @@
1
+ import { LabelsServiceInterface } from '../interfaces/labels.interface';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { StateService } from './state.service';
4
+ import { Observable } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ export declare class LabelsService implements LabelsServiceInterface {
7
+ private http;
8
+ private state;
9
+ constructor(http: HttpClient, state: StateService);
10
+ getLabels(instanceId?: string): Observable<any>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<LabelsService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<LabelsService>;
13
+ }
@@ -0,0 +1,11 @@
1
+ import { OtpInterface } from '../interfaces/otp.interface';
2
+ import { BaseService } from './base.service';
3
+ import { HttpClient } from '@angular/common/http';
4
+ import { StateService } from './state.service';
5
+ import * as i0 from "@angular/core";
6
+ export declare class OtpService extends BaseService implements OtpInterface {
7
+ constructor(http: HttpClient, state: StateService);
8
+ sendOTP(documentId: string, instanceId?: string): any;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<OtpService, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<OtpService>;
11
+ }
@@ -0,0 +1,13 @@
1
+ import { SignInterface } from '../interfaces/sign.interface';
2
+ import { BaseService } from './base.service';
3
+ import { Observable } from 'rxjs';
4
+ import { HttpClient } from '@angular/common/http';
5
+ import { StateService } from './state.service';
6
+ import * as i0 from "@angular/core";
7
+ export declare class SignService extends BaseService implements SignInterface {
8
+ constructor(http: HttpClient, state: StateService);
9
+ signPDF(pdfId: string, otpCode: string, instanceId?: string): Observable<string>;
10
+ autoSignPdfs(instanceId?: string): Observable<any>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<SignService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<SignService>;
13
+ }
@@ -0,0 +1,22 @@
1
+ import { SignConfig } from '../interfaces/sign-config.interface';
2
+ import * as i0 from "@angular/core";
3
+ export declare class StateService {
4
+ private defaultConfig;
5
+ private configs;
6
+ private configSources;
7
+ private notificationSources;
8
+ get config(): SignConfig;
9
+ get config$(): import("rxjs").Observable<SignConfig>;
10
+ get notification(): import("rxjs").Observable<string>;
11
+ getConfig(instanceId?: string): SignConfig;
12
+ getConfig$(instanceId?: string): import("rxjs").Observable<SignConfig>;
13
+ getNotification(instanceId?: string): import("rxjs").Observable<string>;
14
+ configSet(config: SignConfig, instanceId?: string): void;
15
+ notify(notification: string, instanceId?: string): void;
16
+ constructor();
17
+ get data(): any;
18
+ set data(value: any);
19
+ cleanupInstance(instanceId: string): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<StateService, never>;
21
+ static ɵprov: i0.ɵɵInjectableDeclaration<StateService>;
22
+ }
@@ -0,0 +1,23 @@
1
+ import { LogLevel } from '@grafana/faro-web-sdk';
2
+ import * as i0 from "@angular/core";
3
+ export interface TelemetryConfig {
4
+ collectorUrl?: string;
5
+ appName?: string;
6
+ appVersion?: string;
7
+ environment?: string;
8
+ tracingEnabled?: boolean;
9
+ propagateTraceHeaderCorsUrls?: string;
10
+ }
11
+ type TelemetryContext = Record<string, string>;
12
+ export declare class TelemetryService {
13
+ private initialized;
14
+ initialize(config?: TelemetryConfig): void;
15
+ trackEvent(name: string, attributes?: TelemetryContext): void;
16
+ trackLog(level: LogLevel, args: unknown[], context?: TelemetryContext): void;
17
+ trackError(error: unknown, context?: TelemetryContext): void;
18
+ private parseCorsUrls;
19
+ private toError;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<TelemetryService, never>;
21
+ static ɵprov: i0.ɵɵInjectableDeclaration<TelemetryService>;
22
+ }
23
+ export {};
package/version.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const version = "2.1.26-dev.1";