UNPKG

@cauca-911/devextreme

Version:

Run `npm install @cauca-911/devextreme --save` to add this library to your project

1 lines 76.6 kB
{"version":3,"file":"cauca-911-devextreme.mjs","sources":["../../../projects/cauca-devextreme/src/lib/cauca-data-grid/cauca-data-grid.component.ts","../../../projects/cauca-devextreme/src/lib/cauca-data-grid/cauca-data-grid.component.html","../../../projects/cauca-devextreme/src/lib/cauca-date-box/cauca-date-box.component.ts","../../../projects/cauca-devextreme/src/lib/cauca-popup-confirm/cauca-popup-confirm.component.ts","../../../projects/cauca-devextreme/src/lib/cauca-popup-confirm/cauca-popup-confirm.component.html","../../../projects/cauca-devextreme/src/lib/cauca-popup-edit/cauca-popup-edit-cancel-event.ts","../../../projects/cauca-devextreme/src/lib/cauca-popup-edit/cauca-popup-edit.component.ts","../../../projects/cauca-devextreme/src/lib/cauca-popup-edit/cauca-popup-edit.component.html","../../../projects/cauca-devextreme/src/lib/cauca-text-area-limited/cauca-text-area-limited.component.html","../../../projects/cauca-devextreme/src/lib/cauca-text-area-limited/cauca-text-area-limited.component.ts","../../../projects/cauca-devextreme/src/lib/cauca-text-box-multiple-langue/cauca-text-box-multiple-langue.component.html","../../../projects/cauca-devextreme/src/lib/cauca-text-box-multiple-langue/cauca-text-box-multiple-langue.component.ts","../../../projects/cauca-devextreme/src/lib/cauca-devextreme.service.ts","../../../projects/cauca-devextreme/src/lib/cauca-devextreme.component.ts","../../../projects/cauca-devextreme/src/lib/cauca-devextreme.component.html","../../../projects/cauca-devextreme/src/lib/cauca-devextreme.module.ts","../../../projects/cauca-devextreme/src/public-api.ts","../../../projects/cauca-devextreme/src/cauca-911-devextreme.ts"],"sourcesContent":["import { Component, ElementRef, Input, NgZone, OnInit, PlatformRef, TransferState } from '@angular/core';\nimport {\n DxDataGridComponent,\n DxTemplateHost, INestedOptionContainer,\n IterableDifferHelper, NestedOptionHost,\n WatcherHelper\n} from 'devextreme-angular';\n\nimport { Location, LocationStrategy, PathLocationStrategy } from '@angular/common';\nimport { exportDataGrid } from 'devextreme/excel_exporter';\nimport { Workbook } from 'exceljs';\nimport { saveAs } from 'file-saver';\nimport { exportDataGrid as exportDataGridToPdf } from 'devextreme/pdf_exporter';\nimport { jsPDF } from 'jspdf';\n\n@Component({\n selector: 'cauca-dx-data-grid',\n templateUrl: './cauca-data-grid.component.html',\n styleUrls: ['./cauca-data-grid.component.scss'],\n providers: [NestedOptionHost, Location, { provide: LocationStrategy, useClass: PathLocationStrategy }],\n standalone: false\n})\nexport class CaucaDataGridComponent extends DxDataGridComponent implements OnInit, INestedOptionContainer {\n @Input() public allowPrint = false;\n @Input() public allowExports = false;\n @Input() public allowLocationEditing = true;\n @Input() public fileName = '';\n\n private isEditing = false;\n\n public constructor(\n element: ElementRef,\n ngZone: NgZone,\n templateHost: DxTemplateHost,\n watcherHelper: WatcherHelper,\n idh: IterableDifferHelper,\n optionHost: NestedOptionHost,\n transferState: TransferState,\n platform: PlatformRef,\n private location: Location,\n locationStrategy: LocationStrategy\n ) {\n super(element, ngZone, templateHost, watcherHelper, idh, optionHost, transferState, platform);\n this.hoverStateEnabled = true;\n this.rowAlternationEnabled = true;\n this.showBorders = true;\n this.filterRow = {\n visible: true,\n };\n this.pager = {\n showPageSizeSelector: true,\n showNavigationButtons: true,\n showInfo: true,\n visible: true,\n };\n\n optionHost.setHost(this);\n\n locationStrategy.onPopState(() => {\n if (this.isEditing) {\n this.isEditing = false;\n this.instance.cancelEditData();\n }\n });\n }\n\n public ngOnInit(): void {\n super.ngOnInit();\n this.onToolbarPreparing.subscribe((e: any) => this.toolbarPreparing(e));\n this.onInitialized.subscribe((e: any) => this.initialized(e));\n this.onExporting.subscribe((e:any) => this.exporting(e));\n this.export = {\n allowExportSelectedData: true,\n enabled: this.allowExports,\n formats: ['xlsx', 'pdf'],\n };\n }\n\n public exporting(e:any): void{\n if (e.format == 'xlsx'){\n this.convertGridAsExcel(this);\n } else if (e.format=='pdf'){\n this.convertGridAsPdf(this);\n }\n }\n\n private toolbarPreparing(e: any): void {\n const toolbarItems = e.toolbarOptions.items;\n this.addPrintButton(toolbarItems, e.element);\n }\n\n private addPrintButton(toolbarItems: any, elementToPrint: HTMLDivElement): void {\n if (this.allowPrint) {\n toolbarItems.push({\n widget: 'dxButton',\n location: 'after',\n options: {\n icon: 'print',\n onClick: (_ev: any) => {\n this.printGridAsPage(elementToPrint);\n },\n }\n });\n }\n }\n\n private initialized(e: any): void {\n const options = e.component.option('editing');\n options.popup.onShowing = (_ev: any) => {\n if (this.allowLocationEditing) {\n this.location.go(this.location.path() + '#editing');\n }\n this.isEditing = true;\n };\n options.popup.onHiding = (_ev: any) => {\n if (this.isEditing && this.allowLocationEditing) {\n this.location.back();\n }\n this.isEditing = false;\n };\n }\n\n private printGridAsPage(element: HTMLDivElement): void {\n element.classList.add('only-div-to-print');\n\n window.print();\n\n setTimeout(() => {\n element.classList.remove('only-div-to-print');\n }, 1000);\n }\n\n private convertGridAsPdf(dataGridComponent: CaucaDataGridComponent): void {\n const doc = new jsPDF();\n exportDataGridToPdf({\n jsPDFDocument: doc,\n component: dataGridComponent.instance\n }).then(() => {\n if (this.fileName.length == 0)\n this.fileName = 'exportPdf';\n\n doc.save(this.fileName + '.pdf');\n })\n }\n\n private convertGridAsExcel(dataGridComponent: CaucaDataGridComponent) {\n const workbook = new Workbook();\n const worksheet = workbook.addWorksheet('Page principale');\n\n exportDataGrid({\n component: dataGridComponent.instance,\n worksheet: worksheet,\n autoFilterEnabled: true,\n customizeCell: (options) => {\n options.excelCell.font = {\n name: 'Arial', size: 12 ,\n bold: options.gridCell.rowType === 'header'|| options.gridCell.rowType ==='columnheader'|| options.gridCell.rowType === 'group'};\n options.excelCell.alignment = { horizontal: 'left', vertical: 'middle'};\n }\n }).then(() => {\n const columns = worksheet.columns;\n columns.forEach(column => {\n column.width = 50;\n });\n\n let fileNameToSave = this.fileName;\n if (fileNameToSave.length === 0)\n fileNameToSave = 'exportExcel';\n\n workbook.xlsx.writeBuffer()\n .then(function(buffer: BlobPart) {\n saveAs(new Blob([buffer], { type: 'application/octet-stream' }), fileNameToSave + '.xlsx');\n });\n });\n }\n}\n","<ng-content></ng-content>","import { Component, ElementRef, NgZone, OnInit, PlatformRef, TransferState } from '@angular/core';\nimport {\n DxDateBoxComponent,\n DxTemplateHost,\n IterableDifferHelper, NestedOptionHost,\n WatcherHelper\n} from 'devextreme-angular';\n\n\n@Component({\n selector: 'cauca-dx-date-box',\n templateUrl: './cauca-date-box.component.html',\n styleUrls: ['./cauca-date-box.component.scss'],\n standalone: false\n})\nexport class CaucaDateBoxComponent extends DxDateBoxComponent implements OnInit {\n public constructor(\n element: ElementRef,\n ngZone: NgZone,\n templateHost: DxTemplateHost,\n watcherHelper: WatcherHelper,\n idh: IterableDifferHelper,\n optionHost: NestedOptionHost,\n transferState: TransferState,\n platform: PlatformRef,\n ) {\n super(element, ngZone, templateHost, watcherHelper, idh, optionHost, transferState, platform);\n this.type = 'datetime';\n this.displayFormat = 'dd/MM/yyyy HH:mm';\n this.openOnFieldClick = true;\n }\n\n public ngOnInit(): void {\n super.ngOnInit();\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@cauca-911/core';\n\n@Component({\n selector: 'cauca-popup-confirm',\n templateUrl: './cauca-popup-confirm.component.html',\n styleUrls: ['./cauca-popup-confirm.component.scss'],\n standalone: false\n})\nexport class CaucaPopupConfirmComponent implements OnInit {\n @Input() public title = '';\n @Input() public text = '';\n @Input() public showTitle = false;\n\n @Input() public visible: boolean;\n @Output() public visibleChange = new EventEmitter<boolean>();\n\n @Output() public okClick = new EventEmitter<void>();\n @Output() public cancelClick = new EventEmitter<void>();\n @Output() public doneClick = new EventEmitter<boolean>();\n\n public barItems: any = {\n ['ok']: {\n widget: 'dxButton',\n location: 'center',\n visible: true,\n options: {text: ''},\n toolbar: 'bottom',\n parent: this,\n onClick: CaucaPopupConfirmComponent.onOkClick\n },\n ['cancel']: {\n widget: 'dxButton',\n location: 'center',\n visible: true,\n options: {text: ''},\n toolbar: 'bottom',\n parent: this,\n onClick: CaucaPopupConfirmComponent.onCancelClick\n },\n ['close']: {\n widget: 'dxButton',\n location: 'center',\n visible: true,\n options: {text: ''},\n toolbar: 'bottom',\n parent: this,\n onClick: CaucaPopupConfirmComponent.onCancelClick\n },\n ['save']: {\n widget: 'dxButton',\n location: 'center',\n visible: true,\n options: {text: ''},\n toolbar: 'bottom',\n parent: this,\n onClick: CaucaPopupConfirmComponent.onOkClick\n },\n ['yes']: {\n widget: 'dxButton',\n location: 'center',\n visible: true,\n options: {text: ''},\n toolbar: 'bottom',\n parent: this,\n onClick: CaucaPopupConfirmComponent.onOkClick\n },\n ['no']: {\n widget: 'dxButton',\n location: 'center',\n visible: true,\n options: {text: ''},\n toolbar: 'bottom',\n parent: this,\n onClick: CaucaPopupConfirmComponent.onCancelClick\n }\n };\n\n public bottomToolbarItems = [this.barItems.ok];\n\n public translationKeyParent = 'devextreme.popupconfirm';\n public translationKeys = ['buttonsave', 'buttonok', 'buttoncancel', 'buttonyes', 'buttonno', 'buttonclose'];\n\n public types = {\n ok: 'ok',\n cancel: 'cancel',\n close: 'close',\n yesno: 'yesno',\n okcancel: 'okcancel',\n okclose: 'okclose',\n savecancel: 'savecancel'\n };\n\n public constructor(private translate: TranslateService) {\n }\n\n @Input()\n public set type(name: string) {\n switch (name) {\n case this.types.cancel :\n this.bottomToolbarItems = [this.barItems.cancel];\n break;\n case this.types.close :\n this.bottomToolbarItems = [this.barItems.close];\n break;\n case this.types.yesno :\n this.bottomToolbarItems = [this.barItems.yes, this.barItems.no];\n break;\n case this.types.okcancel :\n this.bottomToolbarItems = [this.barItems.ok, this.barItems.cancel];\n break;\n case this.types.okclose :\n this.bottomToolbarItems = [this.barItems.ok, this.barItems.close];\n break;\n case this.types.savecancel :\n this.bottomToolbarItems = [this.barItems.save, this.barItems.cancel];\n break;\n default:\n this.bottomToolbarItems = [this.barItems.ok];\n break;\n }\n }\n\n public static onOkClick(e: any): void {\n e.itemData.parent.okClick.emit();\n e.itemData.parent.doneClick.emit(true);\n }\n\n public static onCancelClick(e: any): void {\n e.itemData.parent.cancelClick.emit();\n e.itemData.parent.doneClick.emit(false);\n }\n\n public ngOnInit(): void {\n this.getTranslations();\n }\n\n public getTranslations(): void {\n const keys = this.translationKeys.map((key: string) => [this.translationKeyParent, key].join('.'));\n this.translate.get(keys).subscribe((translations: any) => {\n this.initBarText(translations);\n });\n }\n\n public onVisibleChange(): void {\n this.visibleChange.emit(this.visible);\n }\n\n public initBarText(translations: string[]): void {\n this.barItems.ok.options.text = translations[[this.translationKeyParent, 'buttonok'].join('.')];\n this.barItems.cancel.options.text = translations[[this.translationKeyParent, 'buttoncancel'].join('.')];\n this.barItems.save.options.text = translations[[this.translationKeyParent, 'buttonsave'].join('.')];\n this.barItems.yes.options.text = translations[[this.translationKeyParent, 'buttonyes'].join('.')];\n this.barItems.no.options.text = translations[[this.translationKeyParent, 'buttonno'].join('.')];\n this.barItems.close.options.text = translations[[this.translationKeyParent, 'buttonclose'].join('.')];\n }\n\n public popupHidden(): void {\n this.visible = false;\n this.onVisibleChange();\n }\n\n}\n","<div>\n <dx-popup\n class=\"popup\"\n [showTitle]=\"showTitle\"\n [title]=\"title\"\n height=\"auto\"\n width=\"auto\"\n [dragEnabled]=\"false\"\n [showCloseButton]=\"true\"\n [hideOnOutsideClick]=\"false\"\n [(visible)]=\"visible\"\n [toolbarItems]=\"bottomToolbarItems\"\n (onHidden)=\"popupHidden()\">\n <div>{{text}}</div>\n <ng-content></ng-content>\n </dx-popup>\n</div>\n","import { CaucaPopupEditComponent } from './cauca-popup-edit.component';\r\n\r\nexport class CaucaPopupEditCancelEvent {\r\n private caucaPopupEditComponent: CaucaPopupEditComponent;\r\n\r\n public constructor(caucaPopupEditComponent: CaucaPopupEditComponent) {\r\n this.caucaPopupEditComponent = caucaPopupEditComponent;\r\n }\r\n\r\n public cancel(): void {\r\n this.caucaPopupEditComponent.cancelSave();\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output, OnInit, ViewChild, InputSignal, input, ModelSignal, model } from '@angular/core';\nimport { TranslateService } from '@cauca-911/core';\nimport { DxPopupComponent } from 'devextreme-angular';\nimport { CaucaPopupEditCancelEvent } from './cauca-popup-edit-cancel-event';\n\n@Component({\n selector: 'cauca-popup-edit',\n templateUrl: './cauca-popup-edit.component.html',\n styleUrls: ['./cauca-popup-edit.component.scss'],\n standalone: false\n})\nexport class CaucaPopupEditComponent implements OnInit {\n public bottomToolbarItems: any;\n public types = {\n savecancel: 'savecancel',\n okcancel: 'okcancel'\n };\n\n public title: InputSignal<string> = input('');\n public visible: ModelSignal<boolean> = model(true);\n @Output() public visibleChange = new EventEmitter<boolean>();\n @Output() public popupShowing = new EventEmitter<any>();\n @Output() public popupShown = new EventEmitter<any>();\n @Output() public save = new EventEmitter<CaucaPopupEditCancelEvent>();\n @ViewChild(DxPopupComponent) public popup: DxPopupComponent;\n\n private readonly translationKeyParent = 'devextreme.popupedit';\n private readonly translationKeys = ['buttonsave', 'buttonok', 'buttoncancel'];\n private canSaveState: boolean = true;\n private okButtonComponent: any;\n private saveButtonComponent: any;\n private cancelEvent: CaucaPopupEditCancelEvent;\n private isSaving: boolean = false;\n\n private barItems: any = {\n ['ok']: {\n widget: 'dxButton',\n location: 'after',\n visible: true,\n options: {\n text: '',\n disabled: false,\n onInitialized: (ev: any) => {\n this.okButtonComponent = ev.component;\n },\n onClick: (_ev: any) => {\n this.saveButtonClick();\n },\n },\n toolbar: 'bottom',\n },\n ['save']: {\n widget: 'dxButton',\n location: 'after',\n visible: true,\n options: {\n text: '',\n disabled: false,\n onInitialized: (ev: any) => {\n this.saveButtonComponent = ev.component;\n },\n onClick: (_ev: any) => {\n this.saveButtonClick();\n },\n },\n toolbar: 'bottom',\n },\n ['cancel']: {\n widget: 'dxButton',\n location: 'after',\n visible: true,\n options: {\n text: '',\n disabled: false,\n onClick: (_ev: any) => {\n this.cancelButtonClick();\n },\n },\n toolbar: 'bottom',\n }\n };\n\n public constructor(private translateService: TranslateService) {\n this.bottomToolbarItems = [this.barItems['save'], this.barItems['cancel']];\n this.cancelEvent = new CaucaPopupEditCancelEvent(this);\n }\n\n @Input()\n public get canSave(): boolean {\n return this.canSaveState;\n }\n public set canSave(value: boolean) {\n this.canSaveState = value;\n this.updateButtonDisabledState();\n }\n\n @Input()\n public set type(name: string) {\n switch (name) {\n case this.types.okcancel:\n this.bottomToolbarItems = [this.barItems.ok, this.barItems.cancel];\n break;\n default:\n this.bottomToolbarItems = [this.barItems.save, this.barItems.cancel];\n break;\n }\n }\n\n public ngOnInit(): void {\n this.getTranslations();\n }\n\n public getTranslations(): void {\n const keys = this.translationKeys.map((key: string) => `${this.translationKeyParent}.${key}`);\n this.translateService.get(keys).subscribe((translations: any) => {\n this.initBarText(translations);\n });\n }\n\n public onHidden(): void {\n this.isSaving = false;\n this.updateButtonDisabledState();\n this.visible.set(false);\n this.emitVisibleChange();\n }\n\n public onShowing(e: any): void {\n this.updateButtonDisabledState();\n this.emitVisibleChange();\n this.popupShowing.emit(e);\n }\n\n public onShown(e: any): void {\n this.popupShown.emit(e);\n }\n\n public cancelSave(): void {\n this.isSaving = false;\n this.updateButtonDisabledState();\n }\n\n private emitVisibleChange(): void {\n this.visibleChange.emit(this.visible());\n }\n\n private initBarText(translations: string[]): void {\n this.barItems.save.options.text = translations[`${this.translationKeyParent}.buttonsave`];\n this.barItems.ok.options.text = translations[`${this.translationKeyParent}.buttonok`];\n this.barItems.cancel.options.text = translations[`${this.translationKeyParent}.buttoncancel`];\n }\n\n private saveButtonClick(): void {\n this.isSaving = true;\n this.updateButtonDisabledState();\n this.save.emit(this.cancelEvent);\n }\n\n private cancelButtonClick(): void {\n this.visible.set(false);\n }\n\n private saveButtonDisabledState(): boolean {\n return !this.canSave || this.isSaving;\n }\n\n private updateButtonDisabledState(): void {\n if (this.okButtonComponent) {\n this.okButtonComponent.option('disabled', this.saveButtonDisabledState());\n }\n if (this.saveButtonComponent) {\n this.saveButtonComponent.option('disabled', this.saveButtonDisabledState());\n }\n }\n}\n","<dx-popup\n class=\"popup\"\n [showTitle]=\"true\"\n [title]=\"title\"\n [dragEnabled]=\"false\"\n [showCloseButton]=\"true\"\n [hideOnOutsideClick]=\"false\"\n [(visible)]=\"visible\"\n [toolbarItems]=\"bottomToolbarItems\"\n (onHidden)=\"onHidden()\"\n (onShowing)=\"onShowing($event)\"\n (onShown)=\"onShown($event)\"\n >\n <ng-content></ng-content>\n</dx-popup>\n","<dx-text-area\n [(value)]=\"value\"\n [maxLength]=\"maxChar\"\n minHeight=\"50\"\n valueChangeEvent=\"keyup\"\n [autoResizeEnabled]=\"true\"\n (onValueChanged)=\"changed($event)\">\n</dx-text-area>\n<div class=\"limit\">\n <span *ngIf=\"format === 'sms'\">{{'devextreme.numberOfSms' | translate}} : {{getNumberOfSms()}}</span>\n <span *ngIf=\"format === 'text'\">{{'devextreme.numberOfChar' | translate}} : {{getNumberOfChar()}}</span>\n</div>\n<div *ngIf=\"format === 'sms' && (charsToAvoid.length > 0 || charsToReplace.length > 0)\" [class.replaceChars]=\"charsToReplace.length > 0\" [class.avoidChars]=\"charsToAvoid.length > 0\">\n {{'devextreme.usingCharactersThatCanMakeCountBigger' | translate}}\n</div>\n<div *ngIf=\"format === 'sms' && charsToReplace.length > 0\" class=\"replaceChars\">\n {{'devextreme.youShouldReplaceTheFollowingCharacters' | translate}}:\n <span *ngFor=\"let char of charsToReplace; let i = index\">{{i > 0 ? ', ' : ''}}<strong>{{char}}</strong></span>.\n</div>\n<div *ngIf=\"format === 'sms' && charsToAvoid.length > 0\" class=\"avoidChars\">\n {{'devextreme.youShouldAvoidTheFollowingCharacters' | translate}}:\n <span *ngFor=\"let char of charsToAvoid; let i = index\">{{i > 0 ? ', ' : ''}}<strong>{{char}}</strong></span>.\n</div>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { DxTextAreaComponent } from 'devextreme-angular';\n\n@Component({\n selector: 'cauca-dx-text-area-limited',\n templateUrl: './cauca-text-area-limited.component.html',\n styleUrls: ['./cauca-text-area-limited.component.scss'],\n standalone: false\n})\nexport class CaucaTextAreaLimitedComponent implements OnInit {\n @ViewChild(DxTextAreaComponent, {static: false}) public textarea: DxTextAreaComponent;\n @Input() public value = '';\n @Input() public maxChar = 225;\n @Input() public format = 'text';\n @Output() public valueChanged = new EventEmitter();\n\n public charsToAvoid: string[] = [];\n public charsToReplace: string[] = [];\n public replaceChars: { [char: string]: string } = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n â: 'a', Â: 'A',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n ê: 'e', ë: 'e', Ê: 'E', Ë: 'E',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n ï: 'i', Ï: 'I',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n û: 'u', Û: 'U',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n ç: 'c', '’': '\\'', '`': '\"', '“': '\"', '”': '\"', '~': '-', '¬': '-', '|': '-'\n };\n\n // eslint-disable-next-line max-len\n private gsm7bitChars = '@£$¥èéùìòÇ\\\\nØø\\\\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\\\\\"#¤%&\\'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà';\n private gsm7bitCharsExt = '\\\\^{}\\\\\\\\\\\\[~\\\\]|€';\n private gsm7bitRegExp = RegExp('^[' + this.gsm7bitChars + ']*$');\n private gsm7bitExtRegExp = RegExp('^[' + this.gsm7bitChars + this.gsm7bitCharsExt + ']*$');\n private gsm7bitExtOnlyRegExp = RegExp('^[' + this.gsm7bitCharsExt + ']*$');\n private messageLength = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GSM7: 160,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GSM7ext: 160,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n UTF16: 70\n };\n private multiMessageLength = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GSM7: 153,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n GSM7ext: 153,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n UTF16: 67\n };\n\n public ngOnInit(): void {\n if (this.format === 'sms') {\n this.maxChar = 0;\n }\n }\n\n public changed(e: any): void {\n this.value = e.value;\n this.valueChanged.emit(e);\n }\n\n public getNumberOfSms(): number {\n if (!this.value) {\n return 0;\n }\n\n const length = this.countSmsChars(this.value);\n const charset = this.getCharset(this.value);\n const perMessage = (length > this.messageLength[charset] ? this.multiMessageLength[charset] : this.messageLength[charset]);\n\n this.listUTF16Chars();\n return Math.ceil(length / perMessage);\n }\n\n public getNumberOfChar(): string {\n return `${this.value ? this.value.length : 0}/${this.maxChar}`;\n }\n\n private listUTF16Chars(): void {\n const charToAvoidOrReplace = this.value.replace(new RegExp('([' + this.gsm7bitChars + ']+)', 'g'), '');\n const charToReplace = charToAvoidOrReplace.replace(new RegExp('([' + this.gsm7bitCharsExt + ']+)', 'g'), '');\n const charToAvoid = charToAvoidOrReplace.match(new RegExp('([' + this.gsm7bitCharsExt + ']+)', 'g'));\n\n this.charsToAvoid = charToAvoid || [];\n this.charsToReplace = charToReplace ? charToReplace.split('') : [];\n }\n\n private countSmsChars(text: string): number {\n let length = text.length;\n const charset = this.getCharset(text);\n\n if (charset === 'GSM7ext') {\n length += this.countGsm7bitExt(text);\n }\n\n return length;\n }\n\n private countGsm7bitExt(text: string): number {\n let char2;\n const chars = () => {\n let _i; let _len;\n const _results = [];\n\n for (_i = 0, _len = text.length; _i < _len; _i++) {\n char2 = text[_i];\n if (char2.match(this.gsm7bitExtOnlyRegExp) != null) {\n _results.push(char2);\n }\n }\n return _results;\n };\n\n return chars.length;\n }\n\n private getCharset(text: string): string {\n switch (false) {\n case text.match(this.gsm7bitRegExp) == null:\n return 'GSM7';\n case text.match(this.gsm7bitExtRegExp) == null:\n return 'GSM7ext';\n default:\n return 'UTF16';\n }\n }\n}\n","<dx-tab-panel\n [dataSource]=\"tabs\"\n [selectedIndex]=\"selectedIndex\"\n (onSelectionChanged)=\"onTagChanged()\">\n <div *dxTemplate=\"let lang of 'title'\">\n <span [class]=\"isValidLang[lang.languageCode] ? '' : 'text-error'\">{{lang.text}}</span>\n <span *ngIf=\"!isValidLang[lang.languageCode]\" class=\"icon-error\">\n <i class=\"dx-icon-info\"></i>\n </span>\n </div>\n <div *dxTemplate=\"let lang of 'item'\">\n <div *ngIf=\"localizationField\">\n <dx-text-box\n [maxLength]=\"maxLength\"\n [placeholder]=\"lang.text\"\n [(value)]=\"value[getLocalizationIndex(lang.languageCode)][localizationField]\"\n valueChangeEvent=\"keyup\"\n (onValueChanged)=\"onValueChanged()\">\n </dx-text-box>\n <dx-button\n *ngIf=\"hasAutoTranslateEvent\"\n (click)=\"autoTranslateClicked(lang.languageCode, value[getLocalizationIndex(lang.languageCode)][localizationField])\"\n [text]=\"'devextreme.autoTranslate' | translate\" icon=\"mat-icon g_translate\"\n ></dx-button>\n </div>\n <div *ngIf=\"!localizationField\">\n <dx-text-box\n [maxLength]=\"maxLength\"\n [placeholder]=\"lang.text\"\n [(value)]=\"value[lang.languageCode]\"\n valueChangeEvent=\"keyup\"\n (onValueChanged)=\"onValueChanged()\">\n </dx-text-box>\n <dx-button\n *ngIf=\"hasAutoTranslateEvent\"\n (click)=\"autoTranslateClicked(lang.languageCode, value[lang.languageCode])\"\n [text]=\"'devextreme.autoTranslate' | translate\" icon=\"mat-icon g_translate\"\n ></dx-button>\n </div>\n </div>\n</dx-tab-panel>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateService, Configuration, CaucaCoreService } from '@cauca-911/core';\n\n@Component({\n selector: 'cauca-dx-text-box-multiple-langue',\n templateUrl: './cauca-text-box-multiple-langue.component.html',\n styleUrls: ['./cauca-text-box-multiple-langue.component.scss'],\n standalone: false\n})\nexport class CaucaTextBoxMultipleLangueComponent implements OnInit {\n @Output()\n public valueChange = new EventEmitter();\n @Output()\n public autoTranslate = new EventEmitter();\n @Input()\n public localizationField: string;\n @Input()\n public maxLength: number = null;\n @Input()\n public availableLanguages: string[] = [];\n\n public isValid = true;\n public isValidLang: any = {};\n public config: Configuration;\n public tabs: {\n languageCode: string;\n text: string;\n }[] = [];\n public selectedIndex = 0;\n public hasAutoTranslateEvent = false;\n\n private values: any = [];\n private validation = {\n isRequired: false\n };\n\n public constructor(\n coreService: CaucaCoreService,\n private translate: TranslateService,\n ) {\n this.config = coreService.getConfig();\n }\n\n @Input('isRequired')\n public get isRequired(): boolean {\n return this.validation.isRequired;\n }\n public set isRequired(value: boolean) {\n this.validation.isRequired = value;\n this.validate();\n }\n\n @Input('value')\n public get value(): any {\n return this.values;\n }\n public set value(value: any) {\n this.values = [];\n\n if (typeof(value) === 'string' || typeof(value) === 'undefined') {\n for (const i of this.config.languages) {\n const valueLang = {};\n valueLang['languageCode'] = i;\n valueLang[this.localizationField] = value || '';\n\n this.values.push(valueLang);\n }\n } else if (typeof(value) === 'object') {\n this.values = value;\n }\n }\n\n public ngOnInit(): void {\n this.initializeLanguages();\n this.hasAutoTranslateEvent = this.autoTranslate.observed;\n }\n\n public getLocalizationIndex(languageCode: string): number {\n const index = this.values.findIndex((l: any) => l.languageCode === languageCode);\n\n if (index === -1) {\n const value = {};\n value['languageCode'] = languageCode;\n value[this.localizationField] = '';\n\n this.values.push(value);\n return this.values.length - 1;\n }\n\n return index;\n }\n\n public validate(): void {\n let isValid = true;\n\n this.config.languages.forEach((lang: string) => {\n if ('findIndex' in this.values) {\n const index = this.values.findIndex((l: any) => l.languageCode === lang);\n\n if (this.validation.isRequired && (index === -1 || !this.values[index][this.localizationField])) {\n isValid = false;\n this.isValidLang[lang] = false;\n } else {\n this.isValidLang[lang] = true;\n }\n } else {\n if (this.validation.isRequired && !this.values[lang]) {\n isValid = false;\n this.isValidLang[lang] = false;\n } else {\n this.isValidLang[lang] = true;\n }\n }\n });\n\n this.isValid = isValid;\n }\n\n public onTagChanged(): void {\n this.validate();\n }\n\n public onValueChanged(): void {\n if (this.values) {\n this.validate();\n }\n\n this.valueChange.emit(this.values);\n }\n\n public autoTranslateClicked(languageCode: string, text: string): void {\n this.autoTranslate.emit({\n languageCode,\n text,\n });\n }\n\n private initializeLanguages(): void {\n let languageCodes = this.config.languages;\n if (this.availableLanguages.length > 0){\n languageCodes = this.availableLanguages;\n }\n\n this.translate.get(languageCodes).subscribe((labels: any) => {\n this.loadLanguageTabs(labels);\n });\n }\n\n private loadLanguageTabs(languages: any): void {\n this.tabs = [];\n for (const i in languages) {\n if (languages[i]) {\n this.isValidLang[i] = true;\n this.tabs.push({\n languageCode: i,\n text: languages[i],\n });\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CaucaDevextremeService {\n\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'cauca-devextreme',\n templateUrl: './cauca-devextreme.component.html',\n styleUrls: ['./cauca-devextreme.component.scss'],\n standalone: false\n})\nexport class CaucaDevextremeComponent {\n\n}\n","<div>{{'core.noGenericComponentOnThisLibrary' | translate}}</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DxDataGridModule } from 'devextreme-angular/ui/data-grid';\nimport { DxButtonModule } from 'devextreme-angular/ui/button';\nimport { DxDateBoxModule } from 'devextreme-angular/ui/date-box';\nimport { DxPopupModule } from 'devextreme-angular/ui/popup';\nimport { DxTabPanelModule } from 'devextreme-angular/ui/tab-panel';\nimport { DxTextAreaModule } from 'devextreme-angular/ui/text-area';\nimport { DxTextBoxModule } from 'devextreme-angular/ui/text-box';\nimport { DxValidatorModule } from 'devextreme-angular/ui/validator';\nimport { DxTemplateHost, WatcherHelper, IterableDifferHelper, NestedOptionHost } from 'devextreme-angular';\nimport { CaucaCoreForChildModule } from '@cauca-911/core';\nimport { CaucaDevextremeComponent } from './cauca-devextreme.component';\nimport { CaucaDataGridComponent } from './cauca-data-grid/cauca-data-grid.component';\nimport { CaucaDateBoxComponent } from './cauca-date-box/cauca-date-box.component';\nimport { CaucaPopupConfirmComponent } from './cauca-popup-confirm/cauca-popup-confirm.component';\nimport { CaucaPopupEditComponent } from './cauca-popup-edit/cauca-popup-edit.component';\nimport { CaucaTextAreaLimitedComponent } from './cauca-text-area-limited/cauca-text-area-limited.component';\nimport { CaucaTextBoxMultipleLangueComponent } from './cauca-text-box-multiple-langue/cauca-text-box-multiple-langue.component';\n\n@NgModule({\n declarations: [\n CaucaDevextremeComponent,\n CaucaDataGridComponent,\n CaucaDateBoxComponent,\n CaucaPopupConfirmComponent,\n CaucaPopupEditComponent,\n CaucaTextAreaLimitedComponent,\n CaucaTextBoxMultipleLangueComponent,\n ],\n imports: [\n CommonModule,\n CaucaCoreForChildModule,\n DxButtonModule,\n DxDateBoxModule,\n DxDataGridModule,\n DxPopupModule,\n DxTabPanelModule,\n DxTextBoxModule,\n DxTextAreaModule,\n DxValidatorModule,\n ],\n exports: [\n CaucaDevextremeComponent,\n CaucaDataGridComponent,\n CaucaDateBoxComponent,\n CaucaPopupConfirmComponent,\n CaucaPopupEditComponent,\n CaucaTextAreaLimitedComponent,\n CaucaTextBoxMultipleLangueComponent,\n DxDataGridModule,\n ],\n providers: [\n DxTemplateHost,\n WatcherHelper,\n IterableDifferHelper,\n NestedOptionHost,\n ]\n})\nexport class CaucaDevextremeModule { }\n","/*\n * Public API Surface of devextreme\n */\nexport * from './lib/cauca-data-grid/cauca-data-grid.component';\nexport * from './lib/cauca-date-box/cauca-date-box.component';\nexport * from './lib/cauca-popup-confirm/cauca-popup-confirm.component';\nexport * from './lib/cauca-popup-edit/cauca-popup-edit.component';\nexport * from './lib/cauca-popup-edit/cauca-popup-edit-cancel-event';\nexport * from './lib/cauca-text-area-limited/cauca-text-area-limited.component';\nexport * from './lib/cauca-text-box-multiple-langue/cauca-text-box-multiple-langue.component';\nexport * from './lib/cauca-devextreme.service';\nexport * from './lib/cauca-devextreme.component';\nexport * from './lib/cauca-devextreme.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["exportDataGridToPdf","exportDataGrid","_c0","i1"],"mappings":"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