cmat 0.0.47 → 0.0.49
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.
- package/components/cascade/index.d.ts +2 -1
- package/fesm2022/cmat-components-adapter.mjs +9 -9
- package/fesm2022/cmat-components-breadcrumb.mjs +9 -9
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/cmat-components-card.mjs +3 -3
- package/fesm2022/cmat-components-card.mjs.map +1 -1
- package/fesm2022/cmat-components-carousel.mjs +12 -12
- package/fesm2022/cmat-components-carousel.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +15 -12
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +3 -3
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
- package/fesm2022/cmat-components-custom-formly.mjs +87 -87
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +3 -3
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-drawer.mjs +6 -6
- package/fesm2022/cmat-components-drawer.mjs.map +1 -1
- package/fesm2022/cmat-components-fullscreen.mjs +3 -3
- package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
- package/fesm2022/cmat-components-highlight.mjs +6 -6
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-image-viewer.mjs +3 -3
- package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
- package/fesm2022/cmat-components-json-editor.mjs +3 -3
- package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-knob-input.mjs +3 -3
- package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
- package/fesm2022/cmat-components-masonry.mjs +3 -3
- package/fesm2022/cmat-components-masonry.mjs.map +1 -1
- package/fesm2022/cmat-components-material-color-picker.mjs +3 -3
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +43 -45
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +39 -39
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-opt-input.mjs +3 -3
- package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
- package/fesm2022/cmat-components-org-chart.mjs +9 -9
- package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
- package/fesm2022/cmat-components-pagination.mjs +12 -12
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +9 -9
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +9 -9
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +3 -3
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
- package/fesm2022/cmat-components-qrcode.mjs +3 -3
- package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +3 -3
- package/fesm2022/cmat-components-rating.mjs.map +1 -1
- package/fesm2022/cmat-components-select-search.mjs +9 -9
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-table.mjs +3 -3
- package/fesm2022/cmat-components-select-table.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +3 -3
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-speed-dial.mjs +9 -9
- package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +12 -12
- package/fesm2022/cmat-components-timeline.mjs.map +1 -1
- package/fesm2022/cmat-components-toast.mjs +9 -9
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +18 -18
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-treetable.mjs +6 -6
- package/fesm2022/cmat-components-treetable.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +9 -9
- package/fesm2022/cmat-components-upload.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
- package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
- package/fesm2022/cmat-directives-arrow-cursor.mjs +3 -3
- package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-data-exporter.mjs +21 -21
- package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
- package/fesm2022/cmat-directives-debounce.mjs +9 -9
- package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
- package/fesm2022/cmat-directives-digit-only.mjs +6 -6
- package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-lib-mock-api.mjs +6 -6
- package/fesm2022/cmat-pipes-bytes.mjs +3 -3
- package/fesm2022/cmat-pipes-date-format.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-secure.mjs +3 -3
- package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
- package/fesm2022/cmat-services-alert.mjs +3 -3
- package/fesm2022/cmat-services-config.mjs +6 -6
- package/fesm2022/cmat-services-confirmation.mjs +6 -6
- package/fesm2022/cmat-services-data.mjs +3 -3
- package/fesm2022/cmat-services-export-as.mjs +3 -3
- package/fesm2022/cmat-services-loading.mjs +6 -6
- package/fesm2022/cmat-services-local-storage.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs +3 -3
- package/fesm2022/cmat-services-platform.mjs +3 -3
- package/fesm2022/cmat-services-splash-screen.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs +3 -3
- package/fesm2022/cmat-services-translation.mjs +3 -3
- package/fesm2022/cmat-services-utils.mjs +3 -3
- package/package.json +36 -36
- package/styles/components/input.scss +4 -4
- package/styles/overrides/angular-material.scss +62 -63
- package/styles/overrides/fullcalendar.scss +17 -17
- package/styles/overrides/quill.scss +14 -14
- package/styles/tailwind.scss +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-directives-arrow-cursor.mjs","sources":["../../../projects/cmat/directives/arrow-cursor/arrow-cursor.directive.ts","../../../projects/cmat/directives/arrow-cursor/cmat-directives-arrow-cursor.ts"],"sourcesContent":["import { Directive, AfterViewInit, OnDestroy, Input, HostListener, Output, EventEmitter, DOCUMENT, inject } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\n\r\n@Directive({\r\n selector: '[cmatArrowCursor]'\r\n})\r\nexport class CmatArrowCursorDirective implements AfterViewInit, OnDestroy {\r\n @Input() animationDuration: number = 0.3;\r\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\r\n @Input() enabled: boolean = false;\r\n @Input() selector: string = '.carousel-arrow-cursor';\r\n @Output() clickEvent: EventEmitter<string | null> = new EventEmitter<string | null>();\r\n\r\n cursorAnimationFrame: any;\r\n isPhone: boolean;\r\n arrowCursor: HTMLDivElement | null = null;\r\n cursorClientX: number;\r\n cursorClientY: number;\r\n cursorIcon: SVGElement | null;\r\n cursorSide: string | null;\r\n oldCursorSide: string | null;\r\n\r\n private _document = inject<Document>(DOCUMENT);\r\n private _cmatMediaWatcherService = inject(CmatMediaWatcherService);\r\n\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n @HostListener('mouseenter', ['$event'])\r\n public onMouseEnter(event: any): void {\r\n if (!this.isPhone && this.enabled) {\r\n this.arrowCursor ??= this._document.querySelector(this.selector);\r\n if (this.cursorIcon == null) {\r\n this.cursorIcon = this.arrowCursor?.querySelector('.arrow-cursor-icon') ?? null;\r\n this.cursorSide = null;\r\n\r\n if (this.cursorIcon) {\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,-135deg) scale3d(0.5,0.5,1)';\r\n this.cursorIcon.style.opacity = '0';\r\n }\r\n }\r\n\r\n this.cursorAnimationFrame = requestAnimationFrame(this.moveCursor.bind(this));\r\n this.cursorClientX = event.clientX;\r\n this.cursorClientY = event.clientY;\r\n\r\n let t = 0;\r\n\r\n if (this.orientation === 'horizontal') {\r\n this.cursorSide = this.cursorClientX > window.innerWidth / 2 ? 'right' : 'left';\r\n\r\n t = (this.cursorClientY < (event.target.getBoundingClientRect().top + event.target.getBoundingClientRect().height / 2))\r\n ? -135\r\n : (this.cursorSide === 'right' ? 135 : -315);\r\n } else {\r\n this.cursorSide = this.cursorClientY > window.innerHeight / 2 ? 'down' : 'up';\r\n\r\n t = (this.cursorClientX < (event.target.getBoundingClientRect().left + event.target.getBoundingClientRect().width / 2))\r\n ? 135\r\n : (this.cursorSide === 'down' ? -135 : 45);\r\n }\r\n\r\n if (this.cursorIcon) {\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,' + t + 'deg)';\r\n\r\n this.cursorIcon.style.transition = this.animationDuration + 's';\r\n\r\n switch (this.cursorSide) {\r\n case 'left':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,-180deg)';\r\n break;\r\n case 'up':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,-90deg)';\r\n break;\r\n case 'right':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,0deg)';\r\n break;\r\n case 'down':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,90deg)';\r\n break;\r\n }\r\n\r\n this.cursorIcon.style.opacity = '1';\r\n }\r\n }\r\n }\r\n\r\n @HostListener('mouseleave', ['$event'])\r\n public onMouseLeave(event: any): void {\r\n if (!this.isPhone && this.enabled) {\r\n let t = 0;\r\n\r\n if (this.orientation === 'horizontal') {\r\n t = (this.cursorClientY < (event.target.getBoundingClientRect().top + event.target.getBoundingClientRect().height / 2))\r\n ? (('right' === this.cursorSide) ? -135 : -45)\r\n : (('right' === this.cursorSide) ? 135 : -315);\r\n } else {\r\n t = (this.cursorClientX < (event.target.getBoundingClientRect().left + event.target.getBoundingClientRect().width / 2))\r\n ? (('down' === this.cursorSide) ? 225 : -225)\r\n : (('down' === this.cursorSide) ? -45 : 45);\r\n }\r\n\r\n if (this.cursorIcon) {\r\n this.cursorIcon.style.transition = this.animationDuration + 's';\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,' + t + 'deg) scale3d(0.3,0.3,1)';\r\n this.cursorIcon.style.opacity = '0';\r\n }\r\n\r\n window.cancelAnimationFrame(this.cursorAnimationFrame);\r\n }\r\n }\r\n\r\n @HostListener('mousemove', ['$event'])\r\n public onMouseOver(event: any): void {\r\n if (!this.isPhone && this.cursorIcon && this.enabled) {\r\n this.cursorClientX = event.clientX;\r\n this.cursorClientY = event.clientY;\r\n\r\n if (this.orientation === 'horizontal') {\r\n this.cursorSide = this.cursorClientX > window.innerWidth / 2 ? 'right' : 'left';\r\n } else {\r\n this.cursorSide = this.cursorClientY > window.innerHeight / 2 ? 'down' : 'up';\r\n }\r\n\r\n if (this.oldCursorSide !== this.cursorSide) {\r\n this.cursorIcon.style.transition = this.animationDuration + 's';\r\n switch (this.cursorSide) {\r\n case 'left':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,-180deg)';\r\n break;\r\n case 'up':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,-90deg)';\r\n break;\r\n case 'right':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,0deg)';\r\n break;\r\n case 'down':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,90deg)';\r\n break;\r\n }\r\n this.oldCursorSide = this.cursorSide;\r\n }\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: Event): void {\r\n if (!this.isPhone && this.cursorIcon && this.enabled) {\r\n this.clickEvent.emit(this.cursorSide);\r\n\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this.isPhone = !matchingAliases.includes('lg');\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.cursorAnimationFrame) {\r\n window.cancelAnimationFrame(this.cursorAnimationFrame);\r\n }\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n moveCursor(): void {\r\n if (!this.isPhone && this.arrowCursor && this.enabled) {\r\n this.arrowCursor.style.transform = 'translate3d(' + this.cursorClientX + 'px,' + this.cursorClientY + 'px,0px)';\r\n\r\n this.cursorAnimationFrame = requestAnimationFrame(this.moveCursor.bind(this));\r\n }\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAOa,wBAAwB,CAAA;AAHrC,IAAA,WAAA,GAAA;QAIa,IAAA,CAAA,iBAAiB,GAAW,GAAG;QAC/B,IAAA,CAAA,WAAW,GAA8B,YAAY;QACrD,IAAA,CAAA,OAAO,GAAY,KAAK;QACxB,IAAA,CAAA,QAAQ,GAAW,wBAAwB;AAC1C,QAAA,IAAA,CAAA,UAAU,GAAgC,IAAI,YAAY,EAAiB;QAIrF,IAAA,CAAA,WAAW,GAA0B,IAAI;AAOjC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAW,QAAQ,CAAC;AACtC,QAAA,IAAA,CAAA,wBAAwB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAE1D,QAAA,IAAA,CAAA,eAAe,GAAiB,IAAI,OAAO,EAAO;AAwJ7D,IAAA;AArJU,IAAA,YAAY,CAAC,KAAU,EAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAA,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChE,YAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;AACzB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,oBAAoB,CAAC,IAAI,IAAI;AAC/E,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AAEtB,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;oBACjB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,4CAA4C;oBAC9E,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;gBACvC;YACJ;AAEA,YAAA,IAAI,CAAC,oBAAoB,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO;YAElC,IAAI,CAAC,GAAG,CAAC;AAET,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;gBACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM;gBAE/E,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;sBAChH,CAAC;AACH,uBAAG,IAAI,CAAC,UAAU,KAAK,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;YACpD;iBAAO;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI;gBAE7E,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;AAClH,sBAAE;AACF,uBAAG,IAAI,CAAC,UAAU,KAAK,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;YAClD;AAEA,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,iBAAiB,GAAG,CAAC,GAAG,MAAM;AAEhE,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,GAAG,GAAG;AAE/D,gBAAA,QAAQ,IAAI,CAAC,UAAU;AACnB,oBAAA,KAAK,MAAM;wBACP,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,yBAAyB;wBAC3D;AACJ,oBAAA,KAAK,IAAI;wBACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,wBAAwB;wBAC1D;AACJ,oBAAA,KAAK,OAAO;wBACR,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,sBAAsB;wBACxD;AACJ,oBAAA,KAAK,MAAM;wBACP,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,uBAAuB;wBACzD;;gBAGR,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;YACvC;QACJ;IACJ;AAGO,IAAA,YAAY,CAAC,KAAU,EAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,IAAI,CAAC,GAAG,CAAC;AAET,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;gBACnC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAClH,uBAAG,CAAC,OAAO,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE;AAC7C,uBAAG,CAAC,OAAO,KAAK,IAAI,CAAC,UAAU,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;YACtD;iBAAO;gBACH,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;AAClH,uBAAG,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,IAAI,GAAG,GAAG,CAAC,GAAG;AAC5C,uBAAG,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACnD;AAEA,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,GAAG,GAAG;AAC/D,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,iBAAiB,GAAG,CAAC,GAAG,yBAAyB;gBACnF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;YACvC;AAEA,YAAA,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAC1D;IACJ;AAGO,IAAA,WAAW,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE;AAClD,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO;AAElC,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;gBACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM;YACnF;iBAAO;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI;YACjF;YAEA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,EAAE;AACxC,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,GAAG,GAAG;AAC/D,gBAAA,QAAQ,IAAI,CAAC,UAAU;AACnB,oBAAA,KAAK,MAAM;wBACP,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,yBAAyB;wBAC3D;AACJ,oBAAA,KAAK,IAAI;wBACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,wBAAwB;wBAC1D;AACJ,oBAAA,KAAK,OAAO;wBACR,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,sBAAsB;wBACxD;AACJ,oBAAA,KAAK,MAAM;wBACP,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,uBAAuB;wBACzD;;AAER,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU;YACxC;QACJ;IACJ;AAGA,IAAA,OAAO,CAAC,KAAY,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE;YAClD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAErC,KAAK,CAAC,eAAe,EAAE;QAC3B;IACJ;IAEA,eAAe,GAAA;QACX,IAAI,CAAC,wBAAwB,CAAC;AACzB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,EAAE,eAAe,EAAE,KAAI;YAC/B,IAAI,CAAC,OAAO,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;AAClD,QAAA,CAAC,CAAC;IACV;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAC1D;QACA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACnC;IAEA,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE;YACnD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,SAAS;AAE/G,YAAA,IAAI,CAAC,oBAAoB,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjF;IACJ;8GAzKS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;8BAEY,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACS,UAAU,EAAA,CAAA;sBAAnB;gBAiBM,YAAY,EAAA,CAAA;sBADlB,YAAY;uBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;gBA4D/B,YAAY,EAAA,CAAA;sBADlB,YAAY;uBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;gBA0B/B,WAAW,EAAA,CAAA;sBADjB,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;gBAkCrC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;ACjJrC;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"cmat-directives-arrow-cursor.mjs","sources":["../../../projects/cmat/directives/arrow-cursor/arrow-cursor.directive.ts","../../../projects/cmat/directives/arrow-cursor/cmat-directives-arrow-cursor.ts"],"sourcesContent":["import { Directive, AfterViewInit, OnDestroy, Input, HostListener, Output, EventEmitter, DOCUMENT, inject } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\n\r\n@Directive({\r\n selector: '[cmatArrowCursor]'\r\n})\r\nexport class CmatArrowCursorDirective implements AfterViewInit, OnDestroy {\r\n @Input() animationDuration: number = 0.3;\r\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\r\n @Input() enabled: boolean = false;\r\n @Input() selector: string = '.carousel-arrow-cursor';\r\n @Output() clickEvent: EventEmitter<string | null> = new EventEmitter<string | null>();\r\n\r\n cursorAnimationFrame: any;\r\n isPhone: boolean;\r\n arrowCursor: HTMLDivElement | null = null;\r\n cursorClientX: number;\r\n cursorClientY: number;\r\n cursorIcon: SVGElement | null;\r\n cursorSide: string | null;\r\n oldCursorSide: string | null;\r\n\r\n private _document = inject<Document>(DOCUMENT);\r\n private _cmatMediaWatcherService = inject(CmatMediaWatcherService);\r\n\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n @HostListener('mouseenter', ['$event'])\r\n public onMouseEnter(event: any): void {\r\n if (!this.isPhone && this.enabled) {\r\n this.arrowCursor ??= this._document.querySelector(this.selector);\r\n if (this.cursorIcon == null) {\r\n this.cursorIcon = this.arrowCursor?.querySelector('.arrow-cursor-icon') ?? null;\r\n this.cursorSide = null;\r\n\r\n if (this.cursorIcon) {\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,-135deg) scale3d(0.5,0.5,1)';\r\n this.cursorIcon.style.opacity = '0';\r\n }\r\n }\r\n\r\n this.cursorAnimationFrame = requestAnimationFrame(this.moveCursor.bind(this));\r\n this.cursorClientX = event.clientX;\r\n this.cursorClientY = event.clientY;\r\n\r\n let t = 0;\r\n\r\n if (this.orientation === 'horizontal') {\r\n this.cursorSide = this.cursorClientX > window.innerWidth / 2 ? 'right' : 'left';\r\n\r\n t = (this.cursorClientY < (event.target.getBoundingClientRect().top + event.target.getBoundingClientRect().height / 2))\r\n ? -135\r\n : (this.cursorSide === 'right' ? 135 : -315);\r\n } else {\r\n this.cursorSide = this.cursorClientY > window.innerHeight / 2 ? 'down' : 'up';\r\n\r\n t = (this.cursorClientX < (event.target.getBoundingClientRect().left + event.target.getBoundingClientRect().width / 2))\r\n ? 135\r\n : (this.cursorSide === 'down' ? -135 : 45);\r\n }\r\n\r\n if (this.cursorIcon) {\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,' + t + 'deg)';\r\n\r\n this.cursorIcon.style.transition = this.animationDuration + 's';\r\n\r\n switch (this.cursorSide) {\r\n case 'left':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,-180deg)';\r\n break;\r\n case 'up':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,-90deg)';\r\n break;\r\n case 'right':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,0deg)';\r\n break;\r\n case 'down':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,90deg)';\r\n break;\r\n }\r\n\r\n this.cursorIcon.style.opacity = '1';\r\n }\r\n }\r\n }\r\n\r\n @HostListener('mouseleave', ['$event'])\r\n public onMouseLeave(event: any): void {\r\n if (!this.isPhone && this.enabled) {\r\n let t = 0;\r\n\r\n if (this.orientation === 'horizontal') {\r\n t = (this.cursorClientY < (event.target.getBoundingClientRect().top + event.target.getBoundingClientRect().height / 2))\r\n ? (('right' === this.cursorSide) ? -135 : -45)\r\n : (('right' === this.cursorSide) ? 135 : -315);\r\n } else {\r\n t = (this.cursorClientX < (event.target.getBoundingClientRect().left + event.target.getBoundingClientRect().width / 2))\r\n ? (('down' === this.cursorSide) ? 225 : -225)\r\n : (('down' === this.cursorSide) ? -45 : 45);\r\n }\r\n\r\n if (this.cursorIcon) {\r\n this.cursorIcon.style.transition = this.animationDuration + 's';\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,' + t + 'deg) scale3d(0.3,0.3,1)';\r\n this.cursorIcon.style.opacity = '0';\r\n }\r\n\r\n window.cancelAnimationFrame(this.cursorAnimationFrame);\r\n }\r\n }\r\n\r\n @HostListener('mousemove', ['$event'])\r\n public onMouseOver(event: any): void {\r\n if (!this.isPhone && this.cursorIcon && this.enabled) {\r\n this.cursorClientX = event.clientX;\r\n this.cursorClientY = event.clientY;\r\n\r\n if (this.orientation === 'horizontal') {\r\n this.cursorSide = this.cursorClientX > window.innerWidth / 2 ? 'right' : 'left';\r\n } else {\r\n this.cursorSide = this.cursorClientY > window.innerHeight / 2 ? 'down' : 'up';\r\n }\r\n\r\n if (this.oldCursorSide !== this.cursorSide) {\r\n this.cursorIcon.style.transition = this.animationDuration + 's';\r\n switch (this.cursorSide) {\r\n case 'left':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,-180deg)';\r\n break;\r\n case 'up':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,-90deg)';\r\n break;\r\n case 'right':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,0deg)';\r\n break;\r\n case 'down':\r\n this.cursorIcon.style.transform = 'rotate3d(0,0,1,90deg)';\r\n break;\r\n }\r\n this.oldCursorSide = this.cursorSide;\r\n }\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: Event): void {\r\n if (!this.isPhone && this.cursorIcon && this.enabled) {\r\n this.clickEvent.emit(this.cursorSide);\r\n\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this.isPhone = !matchingAliases.includes('lg');\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.cursorAnimationFrame) {\r\n window.cancelAnimationFrame(this.cursorAnimationFrame);\r\n }\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n moveCursor(): void {\r\n if (!this.isPhone && this.arrowCursor && this.enabled) {\r\n this.arrowCursor.style.transform = 'translate3d(' + this.cursorClientX + 'px,' + this.cursorClientY + 'px,0px)';\r\n\r\n this.cursorAnimationFrame = requestAnimationFrame(this.moveCursor.bind(this));\r\n }\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -8,10 +8,10 @@ class CmatAutofocusDirective {
|
|
|
8
8
|
this.element.nativeElement.focus();
|
|
9
9
|
}, 0);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
12
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatAutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.5", type: CmatAutofocusDirective, isStandalone: true, selector: "[cmatAutofocus]", ngImport: i0 }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatAutofocusDirective, decorators: [{
|
|
15
15
|
type: Directive,
|
|
16
16
|
args: [{
|
|
17
17
|
selector: '[cmatAutofocus]'
|
|
@@ -106,10 +106,10 @@ class CsvExporterService extends WorksheetExporter {
|
|
|
106
106
|
getMimeType() {
|
|
107
107
|
return MIME_CSV;
|
|
108
108
|
}
|
|
109
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
110
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CsvExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
110
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CsvExporterService, providedIn: 'root' }); }
|
|
111
111
|
}
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CsvExporterService, decorators: [{
|
|
113
113
|
type: Injectable,
|
|
114
114
|
args: [{
|
|
115
115
|
providedIn: 'root'
|
|
@@ -130,10 +130,10 @@ class JsonExporterService extends FileExporter {
|
|
|
130
130
|
getMimeType() {
|
|
131
131
|
return MIME_JSON;
|
|
132
132
|
}
|
|
133
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
134
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: JsonExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
134
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: JsonExporterService, providedIn: 'root' }); }
|
|
135
135
|
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: JsonExporterService, decorators: [{
|
|
137
137
|
type: Injectable,
|
|
138
138
|
args: [{
|
|
139
139
|
providedIn: 'root'
|
|
@@ -164,10 +164,10 @@ class TxtExporterService extends FileExporter {
|
|
|
164
164
|
return TAB;
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
168
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
167
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: TxtExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
168
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: TxtExporterService, providedIn: 'root' }); }
|
|
169
169
|
}
|
|
170
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: TxtExporterService, decorators: [{
|
|
171
171
|
type: Injectable,
|
|
172
172
|
args: [{
|
|
173
173
|
providedIn: 'root'
|
|
@@ -211,10 +211,10 @@ class XlsExporterService extends WorksheetExporter {
|
|
|
211
211
|
_convertToWch(columnWidths) {
|
|
212
212
|
return columnWidths.map(width => ({ wch: width }));
|
|
213
213
|
}
|
|
214
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
215
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
214
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: XlsExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
215
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: XlsExporterService, providedIn: 'root' }); }
|
|
216
216
|
}
|
|
217
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: XlsExporterService, decorators: [{
|
|
218
218
|
type: Injectable,
|
|
219
219
|
args: [{
|
|
220
220
|
providedIn: 'root'
|
|
@@ -228,10 +228,10 @@ class XlsxExporterService extends XlsExporterService {
|
|
|
228
228
|
getMimeType() {
|
|
229
229
|
return MIME_EXCEL_XLSX;
|
|
230
230
|
}
|
|
231
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
232
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
231
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: XlsxExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
232
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: XlsxExporterService, providedIn: 'root' }); }
|
|
233
233
|
}
|
|
234
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
234
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: XlsxExporterService, decorators: [{
|
|
235
235
|
type: Injectable,
|
|
236
236
|
args: [{
|
|
237
237
|
providedIn: 'root'
|
|
@@ -263,10 +263,10 @@ class ServiceLocatorService {
|
|
|
263
263
|
return this._injector.get(XlsxExporterService);
|
|
264
264
|
}
|
|
265
265
|
}
|
|
266
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
267
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
266
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: ServiceLocatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
267
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: ServiceLocatorService, providedIn: 'root' }); }
|
|
268
268
|
}
|
|
269
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: ServiceLocatorService, decorators: [{
|
|
270
270
|
type: Injectable,
|
|
271
271
|
args: [{
|
|
272
272
|
providedIn: 'root'
|
|
@@ -296,10 +296,10 @@ class CmatDataExporterDirective {
|
|
|
296
296
|
_loadExporter(exportType) {
|
|
297
297
|
this._exporterService = this._serviceLocator.getService(exportType);
|
|
298
298
|
}
|
|
299
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
300
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
299
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatDataExporterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
300
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.5", type: CmatDataExporterDirective, isStandalone: true, selector: "button[cmatDataExporter]", inputs: { dataSource: "dataSource", exportColumns: "exportColumns", options: "options", exportType: "exportType" }, usesOnChanges: true, ngImport: i0 }); }
|
|
301
301
|
}
|
|
302
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
302
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatDataExporterDirective, decorators: [{
|
|
303
303
|
type: Directive,
|
|
304
304
|
args: [{
|
|
305
305
|
selector: 'button[cmatDataExporter]'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-directives-data-exporter.mjs","sources":["../../../projects/cmat/directives/data-exporter/options.ts","../../../projects/cmat/directives/data-exporter/mime.ts","../../../projects/cmat/directives/data-exporter/constants.ts","../../../projects/cmat/directives/data-exporter/services/file-util.ts","../../../projects/cmat/directives/data-exporter/services/exporters/file-exporter.ts","../../../projects/cmat/directives/data-exporter/services/exporters/worksheet-exporter.ts","../../../projects/cmat/directives/data-exporter/services/exporters/csv-exporter.service.ts","../../../projects/cmat/directives/data-exporter/services/exporters/json-exporter.service.ts","../../../projects/cmat/directives/data-exporter/services/exporters/txt-exporter.service.ts","../../../projects/cmat/directives/data-exporter/services/exporters/xls-exporter.service.ts","../../../projects/cmat/directives/data-exporter/services/exporters/xlsx-exporter.service.ts","../../../projects/cmat/directives/data-exporter/services/service-locator.service.ts","../../../projects/cmat/directives/data-exporter/data-exporter.directive.ts","../../../projects/cmat/directives/data-exporter/cmat-directives-data-exporter.ts"],"sourcesContent":["import { WritingOptions } from 'xlsx';\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\nexport interface ExporterListInfo {\r\n code: string;\r\n label: string;\r\n}\r\n\r\nexport enum ExportType {\r\n XLS = 'xls',\r\n XLSX = 'xlsx',\r\n CSV = 'csv',\r\n TXT = 'txt',\r\n JSON = 'json'\r\n}\r\n\r\nexport interface Options {\r\n fileName?: string;\r\n}\r\n\r\nexport interface TxtOptions extends Options {\r\n delimiter?: string;\r\n}\r\n\r\nexport interface ExcelOptions extends Options, Omit<WritingOptions, 'bookType'> {\r\n columnWidths: number[];\r\n}\r\n","export class Mime {\r\n extension: string;\r\n contentTypeHeader: string;\r\n\r\n constructor(extension: string, contentTypeHeader: string) {\r\n this.extension = extension;\r\n this.contentTypeHeader = contentTypeHeader;\r\n }\r\n}\r\n","import { Mime } from './mime';\r\nimport { ExportType } from './options';\r\n\r\nexport const TYPE_ARRAY = 'array';\r\nexport const CHAR_SET_UTF = ';charset=utf-';\r\nexport const CHAR_SET_UTF_8 = CHAR_SET_UTF + '8';\r\nexport const CONTENT_TYPE_TEXT = ExportType.TXT + '/';\r\nexport const CONTENT_TYPE_APPLICATION = 'application/';\r\nexport const CONTENT_TYPE_EXCEL = CONTENT_TYPE_APPLICATION + 'octet-stream';\r\nexport const CONTENT_TYPE_JSON = CONTENT_TYPE_APPLICATION + 'json';\r\nexport const DOT = '.';\r\nexport const COMMA = ',';\r\nexport const EXTENSION_XLS = DOT + ExportType.XLS;\r\nexport const EXTENSION_XLSX = DOT + ExportType.XLSX;\r\nexport const EXTENSION_CSV = DOT + ExportType.CSV;\r\nexport const EXTENSION_JSON = DOT + ExportType.JSON;\r\nexport const EXTENSION_TEXT = DOT + ExportType.TXT;\r\nexport const MIME_EXCEL_XLS = new Mime(EXTENSION_XLS, CONTENT_TYPE_EXCEL + CHAR_SET_UTF_8);\r\nexport const MIME_EXCEL_XLSX = new Mime(EXTENSION_XLSX, CONTENT_TYPE_EXCEL + CHAR_SET_UTF_8);\r\nexport const MIME_JSON = new Mime(EXTENSION_JSON, CONTENT_TYPE_JSON + CHAR_SET_UTF_8);\r\nexport const MIME_TXT = new Mime(EXTENSION_TEXT, CONTENT_TYPE_TEXT + ExportType.TXT + CHAR_SET_UTF_8);\r\nexport const MIME_CSV = new Mime(EXTENSION_CSV, CONTENT_TYPE_TEXT + ExportType.CSV + CHAR_SET_UTF_8);\r\nexport const REF = '!ref';\r\nexport const XLS_REGEX = DOT + '*.' + ExportType.XLS + '$';\r\nexport const RETURN = '\\n';\r\nexport const TAB = '\\t';\r\nexport const XLSX_COLS = '!cols';\r\nexport const BOM = '\\uFEFF';\r\n","import * as FileSaver from 'file-saver-es';\r\nimport { DOT, XLS_REGEX } from '../constants';\r\nimport { Mime } from '../mime';\r\nimport { ExportType, Options } from '../options';\r\n\r\nexport class FileUtil {\r\n public static save(content: string, mime: Mime, options?: Options):void {\r\n const blob = new Blob([content], {type: mime.contentTypeHeader});\r\n let fileName = '附件';\r\n if (options?.fileName) {\r\n fileName = options.fileName;\r\n }\r\n FileSaver.saveAs(blob, fileName + mime.extension);\r\n }\r\n\r\n\r\n public static isXls(fileName: string): boolean {\r\n return fileName.toLowerCase().match(XLS_REGEX) != null;\r\n }\r\n\r\n public static identifyExportType(fileName?: string): ExportType {\r\n if (fileName && FileUtil.isXls(fileName)) {\r\n return ExportType.XLS;\r\n } else {\r\n return ExportType.XLSX;\r\n }\r\n }\r\n\r\n public static removeExtension(options?: Options):void {\r\n if (options)\r\n options.fileName = options.fileName?.split(DOT)[0];\r\n }\r\n}\r\n","import { Exporter } from './exporter';\r\nimport { Mime } from '../../mime';\r\nimport { Options } from '../../options';\r\nimport { FileUtil } from '../file-util';\r\n\r\nexport abstract class FileExporter<T extends Options> implements Exporter<T> {\r\n public export(rows: any[], options?: T): void {\r\n if (!rows) {\r\n throw new Error('Empty json array is provided, rows parameter is mandatory!');\r\n }\r\n const mimeType = this.getMimeType();\r\n void this.createContent(rows, options).then((content) => {\r\n FileUtil.save(content, mimeType, options);\r\n });\r\n }\r\n\r\n public abstract createContent(rows: any[], options?: T): Promise<any>;\r\n public abstract getMimeType(): Mime;\r\n}\r\n","import { WorkSheet } from 'xlsx';\r\nimport { FileExporter } from './file-exporter';\r\nimport { Mime } from '../../mime';\r\nimport { Options } from '../../options';\r\n\r\nexport abstract class WorksheetExporter<T extends Options> extends FileExporter<T> {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async createContent(rows: any[], options?: T): Promise<any> {\r\n const workSheet: WorkSheet = (await import('xlsx')).utils.json_to_sheet(rows, {\r\n skipHeader: true // we don't want to see object properties as our headers\r\n });\r\n return await this.workSheetToContent(workSheet, options);\r\n }\r\n public abstract workSheetToContent(workSheet: WorkSheet, options?: T): Promise<any>;\r\n public abstract override getMimeType(): Mime;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { WorkSheet } from 'xlsx';\r\nimport { WorksheetExporter } from './worksheet-exporter';\r\nimport { BOM, COMMA, MIME_CSV } from '../../constants';\r\nimport { Mime } from '../../mime';\r\nimport { TxtOptions } from '../../options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CsvExporterService extends WorksheetExporter<TxtOptions> {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async workSheetToContent(worksheet: WorkSheet, options?: TxtOptions): Promise<any> {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n const content = (await import('xlsx')).utils.sheet_to_csv(worksheet, { FS: options?.delimiter ?? COMMA });\r\n return BOM + content;\r\n }\r\n\r\n public getMimeType(): Mime {\r\n return MIME_CSV;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FileExporter } from './file-exporter';\r\nimport { MIME_JSON } from '../../constants';\r\nimport { Mime } from '../../mime';\r\nimport { Options } from '../../options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JsonExporterService extends FileExporter<Options> {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n public async createContent(rows: any[], options?: Options): Promise<any> {\r\n return await new Promise((resolve) => {\r\n resolve(JSON.stringify(rows));\r\n });;\r\n }\r\n public getMimeType(): Mime {\r\n return MIME_JSON;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FileExporter } from './file-exporter';\r\nimport { MIME_TXT, RETURN, TAB } from '../../constants';\r\nimport { Mime } from '../../mime';\r\nimport { TxtOptions } from '../../options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TxtExporterService extends FileExporter<TxtOptions> {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async createContent(rows: any[], options?: TxtOptions): Promise<any> {\r\n return await new Promise((resolve) => {\r\n let content = '';\r\n rows.forEach((element) => {\r\n content += Object.values(element).join(this._getDelimiter(options)) + RETURN;\r\n });\r\n\r\n resolve(JSON.stringify(content));\r\n });\r\n }\r\n\r\n public getMimeType(): Mime {\r\n return MIME_TXT;\r\n }\r\n\r\n private _getDelimiter(options?: TxtOptions): string {\r\n if (options?.delimiter) {\r\n return options.delimiter;\r\n } else {\r\n return TAB;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { WorkSheet } from 'xlsx';\r\nimport { WorksheetExporter } from './worksheet-exporter';\r\nimport { MIME_EXCEL_XLS, TYPE_ARRAY, XLSX_COLS } from '../../constants';\r\nimport { Mime } from '../../mime';\r\nimport { ExcelOptions } from '../../options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XlsExporterService extends WorksheetExporter<ExcelOptions> {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async workSheetToContent(worksheet: WorkSheet, options: ExcelOptions = {} as ExcelOptions): Promise<any> {\r\n const { utils, write } = await import('xlsx');\r\n const workBook = utils.book_new();\r\n\r\n this._correctTypes(options);\r\n utils.book_append_sheet(workBook, worksheet, options.sheet);\r\n\r\n if (options.columnWidths) {\r\n worksheet[XLSX_COLS] = this._convertToWch(options.columnWidths);\r\n } else {\r\n const jsonTable = utils.sheet_to_json<string | number[]>(worksheet, {\r\n header: 1,\r\n raw: true,\r\n rawNumbers: true,\r\n });\r\n const maxRowSize = Math.max(...jsonTable.map(row => row.length));\r\n\r\n const wchArray = Array.from({ length: maxRowSize }).map((_, rowIndex) => {\r\n const row = Array.from({ length: jsonTable.length }).map(\r\n (_, i) => String(jsonTable[i][rowIndex] ?? '').length\r\n );\r\n\r\n return { wch: Math.max(...row)*3 > 40 ? 40 : Math.max(...row)*3 };\r\n });\r\n worksheet[XLSX_COLS] = wchArray;\r\n }\r\n\r\n return write(workBook, options);\r\n }\r\n\r\n public getMimeType(): Mime {\r\n return MIME_EXCEL_XLS;\r\n }\r\n\r\n private _correctTypes(options: ExcelOptions): void {\r\n options.type ??= TYPE_ARRAY;\r\n (options as any).bookType = this.getMimeType().extension.replace('.', ''); // sheetjs requires bookingType for excel format\r\n }\r\n\r\n private _convertToWch(columnWidths: number[]): { wch: number }[] {\r\n return columnWidths.map(width => ({ wch: width }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { XlsExporterService } from './xls-exporter.service';\r\nimport { MIME_EXCEL_XLSX } from '../../constants';\r\nimport { Mime } from '../../mime';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XlsxExporterService extends XlsExporterService {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n public override getMimeType(): Mime {\r\n return MIME_EXCEL_XLSX;\r\n }\r\n}\r\n","import { Injectable, Injector, inject } from '@angular/core';\r\nimport { ExportType, Options } from '../options';\r\nimport { CsvExporterService } from './exporters/csv-exporter.service';\r\nimport { Exporter } from './exporters/exporter';\r\nimport { JsonExporterService } from './exporters/json-exporter.service';\r\nimport { TxtExporterService } from './exporters/txt-exporter.service';\r\nimport { XlsExporterService } from './exporters/xls-exporter.service';\r\nimport { XlsxExporterService } from './exporters/xlsx-exporter.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServiceLocatorService {\r\n private _injector = inject(Injector);\r\n\r\n public getService(exportType: ExportType | 'xls' | 'xlsx' | 'csv' | 'txt' | 'json'): Exporter<Options> {\r\n switch (exportType) {\r\n case 'xls':\r\n case ExportType.XLS:\r\n return this._injector.get<XlsExporterService>(XlsExporterService);\r\n case 'xlsx':\r\n case ExportType.XLSX:\r\n return this._injector.get<XlsxExporterService>(XlsxExporterService);\r\n case 'json':\r\n case ExportType.JSON:\r\n return this._injector.get<JsonExporterService>(JsonExporterService);\r\n case 'txt':\r\n case ExportType.TXT:\r\n return this._injector.get<TxtExporterService>(TxtExporterService);\r\n case 'csv':\r\n case ExportType.CSV:\r\n return this._injector.get<CsvExporterService>(CsvExporterService);\r\n default:\r\n return this._injector.get<XlsxExporterService>(XlsxExporterService);\r\n }\r\n }\r\n}\r\n","import { Directive, Input, OnChanges, SimpleChanges, inject } from '@angular/core';\r\nimport { ExcelOptions, ExporterListInfo, ExportType, Options, TxtOptions } from './options';\r\nimport { Exporter } from './services/exporters/exporter';\r\nimport { ServiceLocatorService } from './services/service-locator.service';\r\n\r\n@Directive({\r\n selector: 'button[cmatDataExporter]'\r\n})\r\nexport class CmatDataExporterDirective implements OnChanges {\r\n @Input() dataSource: any[];\r\n @Input() exportColumns: ExporterListInfo[];\r\n @Input() options?: Options | ExcelOptions | TxtOptions;\r\n @Input() exportType: ExportType | 'xls' | 'xlsx' | 'csv' | 'txt' | 'json';\r\n \r\n private _serviceLocator = inject(ServiceLocatorService);\r\n private _data: any[];\r\n private _exporterService: Exporter<Options>;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.dataSource) {\r\n if (this.dataSource?.length > 0) {\r\n this._data = [];\r\n this._loadExporter(this.exportType);\r\n this._data = [\r\n // 首先添加一个包含列标题的对象\r\n this.exportColumns.map(column => ({ [column.code]: column.label }))\r\n .reduce((acc, curr) => ({ ...acc, ...curr }), {}) as Record<string, string>,\r\n // 然后添加用户数据对象,根据列配置提取相应的属性\r\n ...this.dataSource.map(user =>\r\n this.exportColumns.reduce((acc, column) => ({ ...acc, [column.code]: user[column.code] }), {})\r\n )\r\n ] as (Record<string, string>)[];\r\n\r\n this._exporterService.export(this._data, this.options);\r\n }\r\n }\r\n }\r\n\r\n private _loadExporter(exportType: ExportType | 'xls' | 'xlsx' | 'csv' | 'txt' | 'json'): void {\r\n this._exporterService = this._serviceLocator.getService(exportType);\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-directives-data-exporter.mjs","sources":["../../../projects/cmat/directives/data-exporter/options.ts","../../../projects/cmat/directives/data-exporter/mime.ts","../../../projects/cmat/directives/data-exporter/constants.ts","../../../projects/cmat/directives/data-exporter/services/file-util.ts","../../../projects/cmat/directives/data-exporter/services/exporters/file-exporter.ts","../../../projects/cmat/directives/data-exporter/services/exporters/worksheet-exporter.ts","../../../projects/cmat/directives/data-exporter/services/exporters/csv-exporter.service.ts","../../../projects/cmat/directives/data-exporter/services/exporters/json-exporter.service.ts","../../../projects/cmat/directives/data-exporter/services/exporters/txt-exporter.service.ts","../../../projects/cmat/directives/data-exporter/services/exporters/xls-exporter.service.ts","../../../projects/cmat/directives/data-exporter/services/exporters/xlsx-exporter.service.ts","../../../projects/cmat/directives/data-exporter/services/service-locator.service.ts","../../../projects/cmat/directives/data-exporter/data-exporter.directive.ts","../../../projects/cmat/directives/data-exporter/cmat-directives-data-exporter.ts"],"sourcesContent":["import { WritingOptions } from 'xlsx';\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\nexport interface ExporterListInfo {\r\n code: string;\r\n label: string;\r\n}\r\n\r\nexport enum ExportType {\r\n XLS = 'xls',\r\n XLSX = 'xlsx',\r\n CSV = 'csv',\r\n TXT = 'txt',\r\n JSON = 'json'\r\n}\r\n\r\nexport interface Options {\r\n fileName?: string;\r\n}\r\n\r\nexport interface TxtOptions extends Options {\r\n delimiter?: string;\r\n}\r\n\r\nexport interface ExcelOptions extends Options, Omit<WritingOptions, 'bookType'> {\r\n columnWidths: number[];\r\n}\r\n","export class Mime {\r\n extension: string;\r\n contentTypeHeader: string;\r\n\r\n constructor(extension: string, contentTypeHeader: string) {\r\n this.extension = extension;\r\n this.contentTypeHeader = contentTypeHeader;\r\n }\r\n}\r\n","import { Mime } from './mime';\r\nimport { ExportType } from './options';\r\n\r\nexport const TYPE_ARRAY = 'array';\r\nexport const CHAR_SET_UTF = ';charset=utf-';\r\nexport const CHAR_SET_UTF_8 = CHAR_SET_UTF + '8';\r\nexport const CONTENT_TYPE_TEXT = ExportType.TXT + '/';\r\nexport const CONTENT_TYPE_APPLICATION = 'application/';\r\nexport const CONTENT_TYPE_EXCEL = CONTENT_TYPE_APPLICATION + 'octet-stream';\r\nexport const CONTENT_TYPE_JSON = CONTENT_TYPE_APPLICATION + 'json';\r\nexport const DOT = '.';\r\nexport const COMMA = ',';\r\nexport const EXTENSION_XLS = DOT + ExportType.XLS;\r\nexport const EXTENSION_XLSX = DOT + ExportType.XLSX;\r\nexport const EXTENSION_CSV = DOT + ExportType.CSV;\r\nexport const EXTENSION_JSON = DOT + ExportType.JSON;\r\nexport const EXTENSION_TEXT = DOT + ExportType.TXT;\r\nexport const MIME_EXCEL_XLS = new Mime(EXTENSION_XLS, CONTENT_TYPE_EXCEL + CHAR_SET_UTF_8);\r\nexport const MIME_EXCEL_XLSX = new Mime(EXTENSION_XLSX, CONTENT_TYPE_EXCEL + CHAR_SET_UTF_8);\r\nexport const MIME_JSON = new Mime(EXTENSION_JSON, CONTENT_TYPE_JSON + CHAR_SET_UTF_8);\r\nexport const MIME_TXT = new Mime(EXTENSION_TEXT, CONTENT_TYPE_TEXT + ExportType.TXT + CHAR_SET_UTF_8);\r\nexport const MIME_CSV = new Mime(EXTENSION_CSV, CONTENT_TYPE_TEXT + ExportType.CSV + CHAR_SET_UTF_8);\r\nexport const REF = '!ref';\r\nexport const XLS_REGEX = DOT + '*.' + ExportType.XLS + '$';\r\nexport const RETURN = '\\n';\r\nexport const TAB = '\\t';\r\nexport const XLSX_COLS = '!cols';\r\nexport const BOM = '\\uFEFF';\r\n","import * as FileSaver from 'file-saver-es';\r\nimport { DOT, XLS_REGEX } from '../constants';\r\nimport { Mime } from '../mime';\r\nimport { ExportType, Options } from '../options';\r\n\r\nexport class FileUtil {\r\n public static save(content: string, mime: Mime, options?: Options):void {\r\n const blob = new Blob([content], {type: mime.contentTypeHeader});\r\n let fileName = '附件';\r\n if (options?.fileName) {\r\n fileName = options.fileName;\r\n }\r\n FileSaver.saveAs(blob, fileName + mime.extension);\r\n }\r\n\r\n\r\n public static isXls(fileName: string): boolean {\r\n return fileName.toLowerCase().match(XLS_REGEX) != null;\r\n }\r\n\r\n public static identifyExportType(fileName?: string): ExportType {\r\n if (fileName && FileUtil.isXls(fileName)) {\r\n return ExportType.XLS;\r\n } else {\r\n return ExportType.XLSX;\r\n }\r\n }\r\n\r\n public static removeExtension(options?: Options):void {\r\n if (options)\r\n options.fileName = options.fileName?.split(DOT)[0];\r\n }\r\n}\r\n","import { Exporter } from './exporter';\r\nimport { Mime } from '../../mime';\r\nimport { Options } from '../../options';\r\nimport { FileUtil } from '../file-util';\r\n\r\nexport abstract class FileExporter<T extends Options> implements Exporter<T> {\r\n public export(rows: any[], options?: T): void {\r\n if (!rows) {\r\n throw new Error('Empty json array is provided, rows parameter is mandatory!');\r\n }\r\n const mimeType = this.getMimeType();\r\n void this.createContent(rows, options).then((content) => {\r\n FileUtil.save(content, mimeType, options);\r\n });\r\n }\r\n\r\n public abstract createContent(rows: any[], options?: T): Promise<any>;\r\n public abstract getMimeType(): Mime;\r\n}\r\n","import { WorkSheet } from 'xlsx';\r\nimport { FileExporter } from './file-exporter';\r\nimport { Mime } from '../../mime';\r\nimport { Options } from '../../options';\r\n\r\nexport abstract class WorksheetExporter<T extends Options> extends FileExporter<T> {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async createContent(rows: any[], options?: T): Promise<any> {\r\n const workSheet: WorkSheet = (await import('xlsx')).utils.json_to_sheet(rows, {\r\n skipHeader: true // we don't want to see object properties as our headers\r\n });\r\n return await this.workSheetToContent(workSheet, options);\r\n }\r\n public abstract workSheetToContent(workSheet: WorkSheet, options?: T): Promise<any>;\r\n public abstract override getMimeType(): Mime;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { WorkSheet } from 'xlsx';\r\nimport { WorksheetExporter } from './worksheet-exporter';\r\nimport { BOM, COMMA, MIME_CSV } from '../../constants';\r\nimport { Mime } from '../../mime';\r\nimport { TxtOptions } from '../../options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CsvExporterService extends WorksheetExporter<TxtOptions> {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async workSheetToContent(worksheet: WorkSheet, options?: TxtOptions): Promise<any> {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n const content = (await import('xlsx')).utils.sheet_to_csv(worksheet, { FS: options?.delimiter ?? COMMA });\r\n return BOM + content;\r\n }\r\n\r\n public getMimeType(): Mime {\r\n return MIME_CSV;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FileExporter } from './file-exporter';\r\nimport { MIME_JSON } from '../../constants';\r\nimport { Mime } from '../../mime';\r\nimport { Options } from '../../options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JsonExporterService extends FileExporter<Options> {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n public async createContent(rows: any[], options?: Options): Promise<any> {\r\n return await new Promise((resolve) => {\r\n resolve(JSON.stringify(rows));\r\n });;\r\n }\r\n public getMimeType(): Mime {\r\n return MIME_JSON;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FileExporter } from './file-exporter';\r\nimport { MIME_TXT, RETURN, TAB } from '../../constants';\r\nimport { Mime } from '../../mime';\r\nimport { TxtOptions } from '../../options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TxtExporterService extends FileExporter<TxtOptions> {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async createContent(rows: any[], options?: TxtOptions): Promise<any> {\r\n return await new Promise((resolve) => {\r\n let content = '';\r\n rows.forEach((element) => {\r\n content += Object.values(element).join(this._getDelimiter(options)) + RETURN;\r\n });\r\n\r\n resolve(JSON.stringify(content));\r\n });\r\n }\r\n\r\n public getMimeType(): Mime {\r\n return MIME_TXT;\r\n }\r\n\r\n private _getDelimiter(options?: TxtOptions): string {\r\n if (options?.delimiter) {\r\n return options.delimiter;\r\n } else {\r\n return TAB;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { WorkSheet } from 'xlsx';\r\nimport { WorksheetExporter } from './worksheet-exporter';\r\nimport { MIME_EXCEL_XLS, TYPE_ARRAY, XLSX_COLS } from '../../constants';\r\nimport { Mime } from '../../mime';\r\nimport { ExcelOptions } from '../../options';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XlsExporterService extends WorksheetExporter<ExcelOptions> {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async workSheetToContent(worksheet: WorkSheet, options: ExcelOptions = {} as ExcelOptions): Promise<any> {\r\n const { utils, write } = await import('xlsx');\r\n const workBook = utils.book_new();\r\n\r\n this._correctTypes(options);\r\n utils.book_append_sheet(workBook, worksheet, options.sheet);\r\n\r\n if (options.columnWidths) {\r\n worksheet[XLSX_COLS] = this._convertToWch(options.columnWidths);\r\n } else {\r\n const jsonTable = utils.sheet_to_json<string | number[]>(worksheet, {\r\n header: 1,\r\n raw: true,\r\n rawNumbers: true,\r\n });\r\n const maxRowSize = Math.max(...jsonTable.map(row => row.length));\r\n\r\n const wchArray = Array.from({ length: maxRowSize }).map((_, rowIndex) => {\r\n const row = Array.from({ length: jsonTable.length }).map(\r\n (_, i) => String(jsonTable[i][rowIndex] ?? '').length\r\n );\r\n\r\n return { wch: Math.max(...row)*3 > 40 ? 40 : Math.max(...row)*3 };\r\n });\r\n worksheet[XLSX_COLS] = wchArray;\r\n }\r\n\r\n return write(workBook, options);\r\n }\r\n\r\n public getMimeType(): Mime {\r\n return MIME_EXCEL_XLS;\r\n }\r\n\r\n private _correctTypes(options: ExcelOptions): void {\r\n options.type ??= TYPE_ARRAY;\r\n (options as any).bookType = this.getMimeType().extension.replace('.', ''); // sheetjs requires bookingType for excel format\r\n }\r\n\r\n private _convertToWch(columnWidths: number[]): { wch: number }[] {\r\n return columnWidths.map(width => ({ wch: width }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { XlsExporterService } from './xls-exporter.service';\r\nimport { MIME_EXCEL_XLSX } from '../../constants';\r\nimport { Mime } from '../../mime';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XlsxExporterService extends XlsExporterService {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n public override getMimeType(): Mime {\r\n return MIME_EXCEL_XLSX;\r\n }\r\n}\r\n","import { Injectable, Injector, inject } from '@angular/core';\r\nimport { ExportType, Options } from '../options';\r\nimport { CsvExporterService } from './exporters/csv-exporter.service';\r\nimport { Exporter } from './exporters/exporter';\r\nimport { JsonExporterService } from './exporters/json-exporter.service';\r\nimport { TxtExporterService } from './exporters/txt-exporter.service';\r\nimport { XlsExporterService } from './exporters/xls-exporter.service';\r\nimport { XlsxExporterService } from './exporters/xlsx-exporter.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServiceLocatorService {\r\n private _injector = inject(Injector);\r\n\r\n public getService(exportType: ExportType | 'xls' | 'xlsx' | 'csv' | 'txt' | 'json'): Exporter<Options> {\r\n switch (exportType) {\r\n case 'xls':\r\n case ExportType.XLS:\r\n return this._injector.get<XlsExporterService>(XlsExporterService);\r\n case 'xlsx':\r\n case ExportType.XLSX:\r\n return this._injector.get<XlsxExporterService>(XlsxExporterService);\r\n case 'json':\r\n case ExportType.JSON:\r\n return this._injector.get<JsonExporterService>(JsonExporterService);\r\n case 'txt':\r\n case ExportType.TXT:\r\n return this._injector.get<TxtExporterService>(TxtExporterService);\r\n case 'csv':\r\n case ExportType.CSV:\r\n return this._injector.get<CsvExporterService>(CsvExporterService);\r\n default:\r\n return this._injector.get<XlsxExporterService>(XlsxExporterService);\r\n }\r\n }\r\n}\r\n","import { Directive, Input, OnChanges, SimpleChanges, inject } from '@angular/core';\r\nimport { ExcelOptions, ExporterListInfo, ExportType, Options, TxtOptions } from './options';\r\nimport { Exporter } from './services/exporters/exporter';\r\nimport { ServiceLocatorService } from './services/service-locator.service';\r\n\r\n@Directive({\r\n selector: 'button[cmatDataExporter]'\r\n})\r\nexport class CmatDataExporterDirective implements OnChanges {\r\n @Input() dataSource: any[];\r\n @Input() exportColumns: ExporterListInfo[];\r\n @Input() options?: Options | ExcelOptions | TxtOptions;\r\n @Input() exportType: ExportType | 'xls' | 'xlsx' | 'csv' | 'txt' | 'json';\r\n \r\n private _serviceLocator = inject(ServiceLocatorService);\r\n private _data: any[];\r\n private _exporterService: Exporter<Options>;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.dataSource) {\r\n if (this.dataSource?.length > 0) {\r\n this._data = [];\r\n this._loadExporter(this.exportType);\r\n this._data = [\r\n // 首先添加一个包含列标题的对象\r\n this.exportColumns.map(column => ({ [column.code]: column.label }))\r\n .reduce((acc, curr) => ({ ...acc, ...curr }), {}) as Record<string, string>,\r\n // 然后添加用户数据对象,根据列配置提取相应的属性\r\n ...this.dataSource.map(user =>\r\n this.exportColumns.reduce((acc, column) => ({ ...acc, [column.code]: user[column.code] }), {})\r\n )\r\n ] as (Record<string, string>)[];\r\n\r\n this._exporterService.export(this._data, this.options);\r\n }\r\n }\r\n }\r\n\r\n private _loadExporter(exportType: ExportType | 'xls' | 'xlsx' | 'csv' | 'txt' | 'json'): void {\r\n this._exporterService = this._serviceLocator.getService(exportType);\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -22,10 +22,10 @@ class AbstractDebounceDirective {
|
|
|
22
22
|
this.subscription$.next();
|
|
23
23
|
this.subscription$.complete();
|
|
24
24
|
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
26
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: AbstractDebounceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.5", type: AbstractDebounceDirective, isStandalone: true, inputs: { debounceTime: "debounceTime" }, outputs: { emitChanged: "emitChanged" }, ngImport: i0 }); }
|
|
27
27
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: AbstractDebounceDirective, decorators: [{
|
|
29
29
|
type: Directive
|
|
30
30
|
}], ctorParameters: () => [], propDecorators: { debounceTime: [{
|
|
31
31
|
type: Input
|
|
@@ -41,10 +41,10 @@ class CmatDebounceClickDirective extends AbstractDebounceDirective {
|
|
|
41
41
|
event.preventDefault();
|
|
42
42
|
this.emitEvent$.next(event);
|
|
43
43
|
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
45
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatDebounceClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
45
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.5", type: CmatDebounceClickDirective, isStandalone: true, selector: "[cmatDebounceClick]", host: { listeners: { "click": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0 }); }
|
|
46
46
|
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatDebounceClickDirective, decorators: [{
|
|
48
48
|
type: Directive,
|
|
49
49
|
args: [{
|
|
50
50
|
selector: '[cmatDebounceClick]'
|
|
@@ -62,10 +62,10 @@ class CmatDebounceKeyupDirective extends AbstractDebounceDirective {
|
|
|
62
62
|
event.preventDefault();
|
|
63
63
|
this.emitEvent$.next(event);
|
|
64
64
|
}
|
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
66
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatDebounceKeyupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
66
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.5", type: CmatDebounceKeyupDirective, isStandalone: true, selector: "input[cmatDebounceKeyup]", host: { listeners: { "keyup": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0 }); }
|
|
67
67
|
}
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatDebounceKeyupDirective, decorators: [{
|
|
69
69
|
type: Directive,
|
|
70
70
|
args: [{
|
|
71
71
|
selector: 'input[cmatDebounceKeyup]'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-directives-debounce.mjs","sources":["../../../projects/cmat/directives/debounce/abstract-debounce.directive.ts","../../../projects/cmat/directives/debounce/debounce-click.directive.ts","../../../projects/cmat/directives/debounce/debounce-keyup.directive.ts","../../../projects/cmat/directives/debounce/cmat-directives-debounce.ts"],"sourcesContent":["import { Directive, EventEmitter, Input, OnDestroy, Output, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, takeUntil, tap } from 'rxjs/operators';\r\n\r\n@Directive()\r\nexport abstract class AbstractDebounceDirective implements OnInit, OnDestroy {\r\n @Input()\r\n public debounceTime: number;\r\n\r\n @Output()\r\n public emitChanged: EventEmitter<any>;\r\n\r\n emitEvent$: Subject<any>;\r\n subscription$: Subject<void>;\r\n\r\n constructor() {\r\n this.debounceTime = 500;\r\n this.emitChanged = new EventEmitter<any>();\r\n this.emitEvent$ = new Subject<any>();\r\n this.subscription$ = new Subject<void>();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.emitEvent$\r\n .pipe(\r\n takeUntil(this.subscription$),\r\n debounceTime(this.debounceTime),\r\n distinctUntilChanged(),\r\n tap(value => this.emitChange(value))\r\n )\r\n .subscribe();\r\n }\r\n\r\n public emitChange(value: any): void {\r\n this.emitChanged.emit(value);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription$.next();\r\n this.subscription$.complete();\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { AbstractDebounceDirective } from './abstract-debounce.directive';\r\n\r\n@Directive({\r\n selector: '[cmatDebounceClick]'\r\n})\r\nexport class CmatDebounceClickDirective extends AbstractDebounceDirective {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public onKeyUp(event: any): void {\r\n event.preventDefault();\r\n this.emitEvent$.next(event);\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { AbstractDebounceDirective } from './abstract-debounce.directive';\r\n\r\n@Directive({\r\n selector: 'input[cmatDebounceKeyup]'\r\n})\r\nexport class CmatDebounceKeyupDirective extends AbstractDebounceDirective {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n public onKeyUp(event: any): void {\r\n event.preventDefault();\r\n this.emitEvent$.next(event);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAKsB,yBAAyB,CAAA;AAU3C,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,EAAO;AAC1C,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,EAAO;AACpC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAQ;IAC5C;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC;AACA,aAAA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAC7B,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,EAC/B,oBAAoB,EAAE,EACtB,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvC,aAAA,SAAS,EAAE;IACpB;AAEO,IAAA,UAAU,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;IACjC;8GAnCkB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAD9C
|
|
1
|
+
{"version":3,"file":"cmat-directives-debounce.mjs","sources":["../../../projects/cmat/directives/debounce/abstract-debounce.directive.ts","../../../projects/cmat/directives/debounce/debounce-click.directive.ts","../../../projects/cmat/directives/debounce/debounce-keyup.directive.ts","../../../projects/cmat/directives/debounce/cmat-directives-debounce.ts"],"sourcesContent":["import { Directive, EventEmitter, Input, OnDestroy, Output, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, takeUntil, tap } from 'rxjs/operators';\r\n\r\n@Directive()\r\nexport abstract class AbstractDebounceDirective implements OnInit, OnDestroy {\r\n @Input()\r\n public debounceTime: number;\r\n\r\n @Output()\r\n public emitChanged: EventEmitter<any>;\r\n\r\n emitEvent$: Subject<any>;\r\n subscription$: Subject<void>;\r\n\r\n constructor() {\r\n this.debounceTime = 500;\r\n this.emitChanged = new EventEmitter<any>();\r\n this.emitEvent$ = new Subject<any>();\r\n this.subscription$ = new Subject<void>();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.emitEvent$\r\n .pipe(\r\n takeUntil(this.subscription$),\r\n debounceTime(this.debounceTime),\r\n distinctUntilChanged(),\r\n tap(value => this.emitChange(value))\r\n )\r\n .subscribe();\r\n }\r\n\r\n public emitChange(value: any): void {\r\n this.emitChanged.emit(value);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription$.next();\r\n this.subscription$.complete();\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { AbstractDebounceDirective } from './abstract-debounce.directive';\r\n\r\n@Directive({\r\n selector: '[cmatDebounceClick]'\r\n})\r\nexport class CmatDebounceClickDirective extends AbstractDebounceDirective {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public onKeyUp(event: any): void {\r\n event.preventDefault();\r\n this.emitEvent$.next(event);\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { AbstractDebounceDirective } from './abstract-debounce.directive';\r\n\r\n@Directive({\r\n selector: 'input[cmatDebounceKeyup]'\r\n})\r\nexport class CmatDebounceKeyupDirective extends AbstractDebounceDirective {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n public onKeyUp(event: any): void {\r\n event.preventDefault();\r\n this.emitEvent$.next(event);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -258,10 +258,10 @@ class CmatDigitOnlyDirective {
|
|
|
258
258
|
key +
|
|
259
259
|
oldValue.substring(selectionEnd));
|
|
260
260
|
}
|
|
261
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
262
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
261
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatDigitOnlyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
262
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.5", type: CmatDigitOnlyDirective, isStandalone: true, selector: "[cmatDigitOnly]", inputs: { decimal: "decimal", decimalSeparator: "decimalSeparator", allowNegatives: "allowNegatives", allowPaste: "allowPaste", negativeSign: "negativeSign", min: "min", max: "max", pattern: "pattern" }, host: { listeners: { "beforeinput": "onBeforeInput($event)", "input": "onInputChange($event)", "keydown": "onKeyDown($event)", "paste": "onPaste($event)", "drop": "onDrop($event)" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
263
263
|
}
|
|
264
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
264
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatDigitOnlyDirective, decorators: [{
|
|
265
265
|
type: Directive,
|
|
266
266
|
args: [{
|
|
267
267
|
selector: '[cmatDigitOnly]'
|
|
@@ -365,10 +365,10 @@ class CmatMaskDirective {
|
|
|
365
365
|
key +
|
|
366
366
|
oldValue.substring(selectionStart);
|
|
367
367
|
}
|
|
368
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
369
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
368
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
369
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.5", type: CmatMaskDirective, isStandalone: true, selector: "[cmatMask]", host: { listeners: { "input": "onInputChange($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
|
|
370
370
|
}
|
|
371
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
371
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatMaskDirective, decorators: [{
|
|
372
372
|
type: Directive,
|
|
373
373
|
args: [{
|
|
374
374
|
selector: '[cmatMask]'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-directives-digit-only.mjs","sources":["../../../projects/cmat/directives/digit-only/digit-only.directive.ts","../../../projects/cmat/directives/digit-only/mask.directive.ts","../../../projects/cmat/directives/digit-only/cmat-directives-digit-only.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener, Input, OnChanges, SimpleChanges, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatDigitOnly]'\r\n})\r\nexport class CmatDigitOnlyDirective implements OnChanges {\r\n @Input() decimal = false;\r\n @Input() decimalSeparator = '.';\r\n @Input() allowNegatives = false;\r\n @Input() allowPaste = true;\r\n @Input() negativeSign = '-';\r\n @Input() min = -Infinity;\r\n @Input() max = Infinity;\r\n @Input() pattern?: string | RegExp;\r\n inputElement: HTMLInputElement;\r\n value: string = '';\r\n\r\n el = inject(ElementRef);\r\n\r\n private _regex: RegExp | null = null;\r\n private _hasDecimalPoint = false;\r\n private _hasNegativeSign = false;\r\n private _navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste',\r\n ];\r\n\r\n constructor() {\r\n const el = this.el;\r\n\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n @HostListener('beforeinput', ['$event'])\r\n onBeforeInput(e: InputEvent): any {\r\n if (isNaN(Number(e.data))) {\r\n if (\r\n e.data === this.decimalSeparator ||\r\n (e.data === this.negativeSign && this.allowNegatives)\r\n ) {\r\n return; // go on\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInputChange(event: any): void {\r\n const reg = /^-?(0|[1-9][0-9]*)(\\.[0-9]*)?$/;\r\n const value = event.target.value;\r\n if ((!isNaN(+value) && reg.test(value)) || value === '' || value === '-') {\r\n this.value = value;\r\n }\r\n this.inputElement.value = this.value;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent): any {\r\n if (e.key === 'Process') {\r\n e.preventDefault();\r\n return;\r\n }\r\n if (\r\n this._navigationKeys.includes(e.key) || // Allow: navigation keys: backspace, delete, arrows etc.\r\n ((e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true) || // Allow: Ctrl+A\r\n ((e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true) || // Allow: Ctrl+C\r\n ((e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true) || // Allow: Ctrl+V\r\n ((e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true) || // Allow: Ctrl+X\r\n ((e.key === 'a' || e.code === 'KeyA') && e.metaKey === true) || // Allow: Cmd+A (Mac)\r\n ((e.key === 'c' || e.code === 'KeyC') && e.metaKey === true) || // Allow: Cmd+C (Mac)\r\n ((e.key === 'v' || e.code === 'KeyV') && e.metaKey === true) || // Allow: Cmd+V (Mac)\r\n ((e.key === 'x' || e.code === 'KeyX') && e.metaKey === true) // Allow: Cmd+X (Mac)\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n\r\n let newValue = '';\r\n\r\n if (this.decimal && e.key === this.decimalSeparator) {\r\n newValue = this._forecastValue(e.key);\r\n if (newValue.split(this.decimalSeparator).length > 2) {\r\n // has two or more decimal points\r\n e.preventDefault();\r\n return;\r\n } else {\r\n this._hasDecimalPoint = newValue.includes(this.decimalSeparator);\r\n return; // Allow: only one decimal point\r\n }\r\n }\r\n\r\n if (e.key === this.negativeSign && this.allowNegatives) {\r\n newValue = this._forecastValue(e.key);\r\n if (\r\n newValue.startsWith(this.negativeSign) ||\r\n newValue.split(this.negativeSign).length > 2\r\n ) {\r\n e.preventDefault();\r\n return;\r\n } else {\r\n this._hasNegativeSign = newValue.split(this.negativeSign).length > -1;\r\n return;\r\n }\r\n }\r\n\r\n // Ensure that it is a number and stop the keypress\r\n if (e.key === ' ' || isNaN(Number(e.key))) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n newValue = newValue || this._forecastValue(e.key);\r\n // check the input pattern RegExp\r\n if (this._regex) {\r\n if (!this._regex.test(newValue)) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n const newNumber = Number(newValue);\r\n if (newNumber > this.max || newNumber < this.min) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: any): void {\r\n if (this.allowPaste === true) {\r\n let pastedInput: string = '';\r\n if ((window as Record<string, any>)['clipboardData']) {\r\n // Browser is IE\r\n pastedInput = (window as Record<string, any>)[\r\n 'clipboardData'\r\n ].getData('text');\r\n } else if (event.clipboardData?.getData) {\r\n // Other browsers\r\n pastedInput = event.clipboardData.getData('text/plain');\r\n }\r\n\r\n this._pasteData(pastedInput);\r\n event.preventDefault();\r\n } else {\r\n // this prevents the paste\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event: DragEvent): void {\r\n const textData = event.dataTransfer?.getData('text') ?? '';\r\n this.inputElement.focus();\r\n this._pasteData(textData);\r\n event.preventDefault();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['pattern']) {\r\n this._regex = this.pattern ? RegExp(this.pattern) : null;\r\n }\r\n\r\n if (changes['min']) {\r\n const maybeMin = Number(this.min);\r\n this.min = isNaN(maybeMin) ? -Infinity : maybeMin;\r\n }\r\n\r\n if (changes['max']) {\r\n const maybeMax = Number(this.max);\r\n this.max = isNaN(maybeMax) ? Infinity : maybeMax;\r\n }\r\n }\r\n\r\n\r\n\r\n private _pasteData(pastedContent: string): void {\r\n const sanitizedContent = this._sanitizeInput(pastedContent);\r\n if (\r\n sanitizedContent.includes(this.negativeSign) &&\r\n this._hasNegativeSign &&\r\n !this._getSelection().includes(this.negativeSign)\r\n ) {\r\n return;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const pasted = document.execCommand('insertText', false, sanitizedContent);\r\n if (!pasted) {\r\n if (this.inputElement.setRangeText) {\r\n const { selectionStart: start, selectionEnd: end } = this.inputElement;\r\n this.inputElement.setRangeText(\r\n sanitizedContent,\r\n start ?? 0,\r\n end ?? 0,\r\n 'end'\r\n );\r\n // Angular's Reactive Form relies on \"input\" event, but on Firefox, the setRangeText method doesn't trigger it\r\n // so we have to trigger it ourself.\r\n if (\r\n typeof (window as Record<string, any>)['InstallTrigger'] !==\r\n 'undefined'\r\n ) {\r\n this.inputElement.dispatchEvent(\r\n new Event('input', { cancelable: true })\r\n );\r\n }\r\n } else {\r\n // Browser does not support setRangeText, e.g. IE\r\n this._insertAtCursor(this.inputElement, sanitizedContent);\r\n }\r\n }\r\n if (this.decimal) {\r\n this._hasDecimalPoint =\r\n this.inputElement.value.includes(this.decimalSeparator);\r\n }\r\n this._hasNegativeSign =\r\n this.inputElement.value.includes(this.negativeSign);\r\n }\r\n\r\n // The following 2 methods were added from the below article for browsers that do not support setRangeText\r\n // https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position\r\n private _insertAtCursor(myField: HTMLInputElement, myValue: string): void {\r\n const startPos = myField.selectionStart ?? 0;\r\n const endPos = myField.selectionEnd ?? 0;\r\n\r\n myField.value =\r\n myField.value.substring(0, startPos) +\r\n myValue +\r\n myField.value.substring(endPos, myField.value.length);\r\n\r\n const pos = startPos + myValue.length;\r\n myField.focus();\r\n myField.setSelectionRange(pos, pos);\r\n\r\n this._triggerEvent(myField, 'input');\r\n }\r\n\r\n private _triggerEvent(el: HTMLInputElement, type: string): void {\r\n if ('createEvent' in document) {\r\n // modern browsers, IE9+\r\n const e = document.createEvent('HTMLEvents');\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n e.initEvent(type, false, true);\r\n el.dispatchEvent(e);\r\n }\r\n }\r\n // end stack overflow code\r\n\r\n private _sanitizeInput(input: string): string {\r\n let result = '';\r\n let regex: RegExp;\r\n if (this.decimal && this._isValidDecimal(input)) {\r\n regex = new RegExp(\r\n `${this._getNegativeSignRegExp()}[^0-9${this.decimalSeparator}]`,\r\n 'g'\r\n );\r\n } else {\r\n regex = new RegExp(`${this._getNegativeSignRegExp()}[^0-9]`, 'g');\r\n }\r\n result = input.replace(regex, '');\r\n\r\n const maxLength = this.inputElement.maxLength;\r\n if (maxLength > 0) {\r\n // the input element has maxLength limit\r\n const allowedLength =\r\n maxLength -\r\n this.inputElement.value.length +\r\n (result.includes(`${this.negativeSign}`) ? 1 : 0);\r\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\r\n }\r\n return result;\r\n }\r\n\r\n private _getNegativeSignRegExp(): string {\r\n return this.allowNegatives &&\r\n (!this._hasNegativeSign || this._getSelection().includes(this.negativeSign))\r\n ? `(?!^${this.negativeSign})`\r\n : '';\r\n }\r\n\r\n private _isValidDecimal(str: string): boolean {\r\n if (!this._hasDecimalPoint) {\r\n return str.split(this.decimalSeparator).length <= 2;\r\n } else {\r\n // the input element already has a decimal separator\r\n const selectedText = this._getSelection();\r\n if (selectedText?.includes(this.decimalSeparator)) {\r\n return str.split(this.decimalSeparator).length <= 2;\r\n } else {\r\n return !str.includes(this.decimalSeparator);\r\n }\r\n }\r\n }\r\n\r\n private _getSelection(): string {\r\n return this.inputElement.value.substring(\r\n this.inputElement.selectionStart ?? 0,\r\n this.inputElement.selectionEnd ?? 0\r\n );\r\n }\r\n\r\n private _forecastValue(key: string): string {\r\n const selectionStart = this.inputElement.selectionStart ?? 0;\r\n const selectionEnd = this.inputElement.selectionEnd ?? 0;\r\n const oldValue = this.inputElement.value;\r\n return (\r\n oldValue.substring(0, selectionStart) +\r\n key +\r\n oldValue.substring(selectionEnd)\r\n );\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, OnInit, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatMask]'\r\n})\r\nexport class CmatMaskDirective implements OnInit {\r\n el = inject(ElementRef);\r\n\r\n inputElement: HTMLInputElement;\r\n value: string = '';\r\n regex: RegExp = new RegExp('');\r\n\r\n private _navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste',\r\n ]; \r\n\r\n constructor() {\r\n const el = this.el;\r\n\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInputChange(event: any): void {\r\n const value = event.target.value;\r\n if (this.regex.test(value)) {\r\n this.value = value;\r\n }\r\n this.inputElement.value = this.value;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent): void {\r\n if (e.key === 'Process') {\r\n e.preventDefault();\r\n return; \r\n }\r\n if (\r\n this._navigationKeys.includes(e.key) || // Allow: navigation keys: backspace, delete, arrows etc.\r\n ((e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true) || // Allow: Ctrl+A\r\n ((e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true) || // Allow: Ctrl+C\r\n ((e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true) || // Allow: Ctrl+V\r\n ((e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true) || // Allow: Ctrl+X\r\n ((e.key === 'a' || e.code === 'KeyA') && e.metaKey === true) || // Allow: Cmd+A (Mac)\r\n ((e.key === 'c' || e.code === 'KeyC') && e.metaKey === true) || // Allow: Cmd+C (Mac)\r\n ((e.key === 'v' || e.code === 'KeyV') && e.metaKey === true) || // Allow: Cmd+V (Mac)\r\n ((e.key === 'x' || e.code === 'KeyX') && e.metaKey === true) // Allow: Cmd+X (Mac)\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n\r\n const newValue = this._forecastValue(e.key);\r\n if (!this.regex.test(newValue)) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.regex = new RegExp(this.inputElement.pattern);\r\n }\r\n\r\n private _forecastValue(key: string): string {\r\n const selectionStart = this.inputElement.selectionStart ?? 0;\r\n const selectionEnd = this.inputElement.selectionEnd ?? 0;\r\n const oldValue = this.inputElement.value;\r\n const selection = oldValue.substring(selectionStart, selectionEnd);\r\n return selection\r\n ? oldValue.replace(selection, key)\r\n : oldValue.substring(0, selectionStart) +\r\n key +\r\n oldValue.substring(selectionStart);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-directives-digit-only.mjs","sources":["../../../projects/cmat/directives/digit-only/digit-only.directive.ts","../../../projects/cmat/directives/digit-only/mask.directive.ts","../../../projects/cmat/directives/digit-only/cmat-directives-digit-only.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener, Input, OnChanges, SimpleChanges, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatDigitOnly]'\r\n})\r\nexport class CmatDigitOnlyDirective implements OnChanges {\r\n @Input() decimal = false;\r\n @Input() decimalSeparator = '.';\r\n @Input() allowNegatives = false;\r\n @Input() allowPaste = true;\r\n @Input() negativeSign = '-';\r\n @Input() min = -Infinity;\r\n @Input() max = Infinity;\r\n @Input() pattern?: string | RegExp;\r\n inputElement: HTMLInputElement;\r\n value: string = '';\r\n\r\n el = inject(ElementRef);\r\n\r\n private _regex: RegExp | null = null;\r\n private _hasDecimalPoint = false;\r\n private _hasNegativeSign = false;\r\n private _navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste',\r\n ];\r\n\r\n constructor() {\r\n const el = this.el;\r\n\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n @HostListener('beforeinput', ['$event'])\r\n onBeforeInput(e: InputEvent): any {\r\n if (isNaN(Number(e.data))) {\r\n if (\r\n e.data === this.decimalSeparator ||\r\n (e.data === this.negativeSign && this.allowNegatives)\r\n ) {\r\n return; // go on\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInputChange(event: any): void {\r\n const reg = /^-?(0|[1-9][0-9]*)(\\.[0-9]*)?$/;\r\n const value = event.target.value;\r\n if ((!isNaN(+value) && reg.test(value)) || value === '' || value === '-') {\r\n this.value = value;\r\n }\r\n this.inputElement.value = this.value;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent): any {\r\n if (e.key === 'Process') {\r\n e.preventDefault();\r\n return;\r\n }\r\n if (\r\n this._navigationKeys.includes(e.key) || // Allow: navigation keys: backspace, delete, arrows etc.\r\n ((e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true) || // Allow: Ctrl+A\r\n ((e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true) || // Allow: Ctrl+C\r\n ((e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true) || // Allow: Ctrl+V\r\n ((e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true) || // Allow: Ctrl+X\r\n ((e.key === 'a' || e.code === 'KeyA') && e.metaKey === true) || // Allow: Cmd+A (Mac)\r\n ((e.key === 'c' || e.code === 'KeyC') && e.metaKey === true) || // Allow: Cmd+C (Mac)\r\n ((e.key === 'v' || e.code === 'KeyV') && e.metaKey === true) || // Allow: Cmd+V (Mac)\r\n ((e.key === 'x' || e.code === 'KeyX') && e.metaKey === true) // Allow: Cmd+X (Mac)\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n\r\n let newValue = '';\r\n\r\n if (this.decimal && e.key === this.decimalSeparator) {\r\n newValue = this._forecastValue(e.key);\r\n if (newValue.split(this.decimalSeparator).length > 2) {\r\n // has two or more decimal points\r\n e.preventDefault();\r\n return;\r\n } else {\r\n this._hasDecimalPoint = newValue.includes(this.decimalSeparator);\r\n return; // Allow: only one decimal point\r\n }\r\n }\r\n\r\n if (e.key === this.negativeSign && this.allowNegatives) {\r\n newValue = this._forecastValue(e.key);\r\n if (\r\n newValue.startsWith(this.negativeSign) ||\r\n newValue.split(this.negativeSign).length > 2\r\n ) {\r\n e.preventDefault();\r\n return;\r\n } else {\r\n this._hasNegativeSign = newValue.split(this.negativeSign).length > -1;\r\n return;\r\n }\r\n }\r\n\r\n // Ensure that it is a number and stop the keypress\r\n if (e.key === ' ' || isNaN(Number(e.key))) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n newValue = newValue || this._forecastValue(e.key);\r\n // check the input pattern RegExp\r\n if (this._regex) {\r\n if (!this._regex.test(newValue)) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n const newNumber = Number(newValue);\r\n if (newNumber > this.max || newNumber < this.min) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: any): void {\r\n if (this.allowPaste === true) {\r\n let pastedInput: string = '';\r\n if ((window as Record<string, any>)['clipboardData']) {\r\n // Browser is IE\r\n pastedInput = (window as Record<string, any>)[\r\n 'clipboardData'\r\n ].getData('text');\r\n } else if (event.clipboardData?.getData) {\r\n // Other browsers\r\n pastedInput = event.clipboardData.getData('text/plain');\r\n }\r\n\r\n this._pasteData(pastedInput);\r\n event.preventDefault();\r\n } else {\r\n // this prevents the paste\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event: DragEvent): void {\r\n const textData = event.dataTransfer?.getData('text') ?? '';\r\n this.inputElement.focus();\r\n this._pasteData(textData);\r\n event.preventDefault();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['pattern']) {\r\n this._regex = this.pattern ? RegExp(this.pattern) : null;\r\n }\r\n\r\n if (changes['min']) {\r\n const maybeMin = Number(this.min);\r\n this.min = isNaN(maybeMin) ? -Infinity : maybeMin;\r\n }\r\n\r\n if (changes['max']) {\r\n const maybeMax = Number(this.max);\r\n this.max = isNaN(maybeMax) ? Infinity : maybeMax;\r\n }\r\n }\r\n\r\n\r\n\r\n private _pasteData(pastedContent: string): void {\r\n const sanitizedContent = this._sanitizeInput(pastedContent);\r\n if (\r\n sanitizedContent.includes(this.negativeSign) &&\r\n this._hasNegativeSign &&\r\n !this._getSelection().includes(this.negativeSign)\r\n ) {\r\n return;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const pasted = document.execCommand('insertText', false, sanitizedContent);\r\n if (!pasted) {\r\n if (this.inputElement.setRangeText) {\r\n const { selectionStart: start, selectionEnd: end } = this.inputElement;\r\n this.inputElement.setRangeText(\r\n sanitizedContent,\r\n start ?? 0,\r\n end ?? 0,\r\n 'end'\r\n );\r\n // Angular's Reactive Form relies on \"input\" event, but on Firefox, the setRangeText method doesn't trigger it\r\n // so we have to trigger it ourself.\r\n if (\r\n typeof (window as Record<string, any>)['InstallTrigger'] !==\r\n 'undefined'\r\n ) {\r\n this.inputElement.dispatchEvent(\r\n new Event('input', { cancelable: true })\r\n );\r\n }\r\n } else {\r\n // Browser does not support setRangeText, e.g. IE\r\n this._insertAtCursor(this.inputElement, sanitizedContent);\r\n }\r\n }\r\n if (this.decimal) {\r\n this._hasDecimalPoint =\r\n this.inputElement.value.includes(this.decimalSeparator);\r\n }\r\n this._hasNegativeSign =\r\n this.inputElement.value.includes(this.negativeSign);\r\n }\r\n\r\n // The following 2 methods were added from the below article for browsers that do not support setRangeText\r\n // https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position\r\n private _insertAtCursor(myField: HTMLInputElement, myValue: string): void {\r\n const startPos = myField.selectionStart ?? 0;\r\n const endPos = myField.selectionEnd ?? 0;\r\n\r\n myField.value =\r\n myField.value.substring(0, startPos) +\r\n myValue +\r\n myField.value.substring(endPos, myField.value.length);\r\n\r\n const pos = startPos + myValue.length;\r\n myField.focus();\r\n myField.setSelectionRange(pos, pos);\r\n\r\n this._triggerEvent(myField, 'input');\r\n }\r\n\r\n private _triggerEvent(el: HTMLInputElement, type: string): void {\r\n if ('createEvent' in document) {\r\n // modern browsers, IE9+\r\n const e = document.createEvent('HTMLEvents');\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n e.initEvent(type, false, true);\r\n el.dispatchEvent(e);\r\n }\r\n }\r\n // end stack overflow code\r\n\r\n private _sanitizeInput(input: string): string {\r\n let result = '';\r\n let regex: RegExp;\r\n if (this.decimal && this._isValidDecimal(input)) {\r\n regex = new RegExp(\r\n `${this._getNegativeSignRegExp()}[^0-9${this.decimalSeparator}]`,\r\n 'g'\r\n );\r\n } else {\r\n regex = new RegExp(`${this._getNegativeSignRegExp()}[^0-9]`, 'g');\r\n }\r\n result = input.replace(regex, '');\r\n\r\n const maxLength = this.inputElement.maxLength;\r\n if (maxLength > 0) {\r\n // the input element has maxLength limit\r\n const allowedLength =\r\n maxLength -\r\n this.inputElement.value.length +\r\n (result.includes(`${this.negativeSign}`) ? 1 : 0);\r\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\r\n }\r\n return result;\r\n }\r\n\r\n private _getNegativeSignRegExp(): string {\r\n return this.allowNegatives &&\r\n (!this._hasNegativeSign || this._getSelection().includes(this.negativeSign))\r\n ? `(?!^${this.negativeSign})`\r\n : '';\r\n }\r\n\r\n private _isValidDecimal(str: string): boolean {\r\n if (!this._hasDecimalPoint) {\r\n return str.split(this.decimalSeparator).length <= 2;\r\n } else {\r\n // the input element already has a decimal separator\r\n const selectedText = this._getSelection();\r\n if (selectedText?.includes(this.decimalSeparator)) {\r\n return str.split(this.decimalSeparator).length <= 2;\r\n } else {\r\n return !str.includes(this.decimalSeparator);\r\n }\r\n }\r\n }\r\n\r\n private _getSelection(): string {\r\n return this.inputElement.value.substring(\r\n this.inputElement.selectionStart ?? 0,\r\n this.inputElement.selectionEnd ?? 0\r\n );\r\n }\r\n\r\n private _forecastValue(key: string): string {\r\n const selectionStart = this.inputElement.selectionStart ?? 0;\r\n const selectionEnd = this.inputElement.selectionEnd ?? 0;\r\n const oldValue = this.inputElement.value;\r\n return (\r\n oldValue.substring(0, selectionStart) +\r\n key +\r\n oldValue.substring(selectionEnd)\r\n );\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, OnInit, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatMask]'\r\n})\r\nexport class CmatMaskDirective implements OnInit {\r\n el = inject(ElementRef);\r\n\r\n inputElement: HTMLInputElement;\r\n value: string = '';\r\n regex: RegExp = new RegExp('');\r\n\r\n private _navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste',\r\n ]; \r\n\r\n constructor() {\r\n const el = this.el;\r\n\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInputChange(event: any): void {\r\n const value = event.target.value;\r\n if (this.regex.test(value)) {\r\n this.value = value;\r\n }\r\n this.inputElement.value = this.value;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent): void {\r\n if (e.key === 'Process') {\r\n e.preventDefault();\r\n return; \r\n }\r\n if (\r\n this._navigationKeys.includes(e.key) || // Allow: navigation keys: backspace, delete, arrows etc.\r\n ((e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true) || // Allow: Ctrl+A\r\n ((e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true) || // Allow: Ctrl+C\r\n ((e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true) || // Allow: Ctrl+V\r\n ((e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true) || // Allow: Ctrl+X\r\n ((e.key === 'a' || e.code === 'KeyA') && e.metaKey === true) || // Allow: Cmd+A (Mac)\r\n ((e.key === 'c' || e.code === 'KeyC') && e.metaKey === true) || // Allow: Cmd+C (Mac)\r\n ((e.key === 'v' || e.code === 'KeyV') && e.metaKey === true) || // Allow: Cmd+V (Mac)\r\n ((e.key === 'x' || e.code === 'KeyX') && e.metaKey === true) // Allow: Cmd+X (Mac)\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n\r\n const newValue = this._forecastValue(e.key);\r\n if (!this.regex.test(newValue)) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.regex = new RegExp(this.inputElement.pattern);\r\n }\r\n\r\n private _forecastValue(key: string): string {\r\n const selectionStart = this.inputElement.selectionStart ?? 0;\r\n const selectionEnd = this.inputElement.selectionEnd ?? 0;\r\n const oldValue = this.inputElement.value;\r\n const selection = oldValue.substring(selectionStart, selectionEnd);\r\n return selection\r\n ? oldValue.replace(selection, key)\r\n : oldValue.substring(0, selectionStart) +\r\n key +\r\n oldValue.substring(selectionStart);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -31,12 +31,12 @@ class CmatEqualValidatorDirective {
|
|
|
31
31
|
}
|
|
32
32
|
return this._reverse === 'true' ? CmatEqualValidatorDirective._validateReverse(c, other) : CmatEqualValidatorDirective._validateNoReverse(c, other);
|
|
33
33
|
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
35
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatEqualValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.5", type: CmatEqualValidatorDirective, isStandalone: true, selector: "[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]", providers: [
|
|
36
36
|
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => CmatEqualValidatorDirective), multi: true }
|
|
37
37
|
], ngImport: i0 }); }
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.5", ngImport: i0, type: CmatEqualValidatorDirective, decorators: [{
|
|
40
40
|
type: Directive,
|
|
41
41
|
args: [{
|
|
42
42
|
selector: '[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]',
|