@onemrvapublic/design-system 17.2.83 → 17.2.84
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.
|
@@ -2,7 +2,7 @@ export class OnemrvaValidators {
|
|
|
2
2
|
static bce(required = false) {
|
|
3
3
|
return (control) => {
|
|
4
4
|
if (control.value === null || control.value.trim() === '') {
|
|
5
|
-
return required ? null : { bceNull: true };
|
|
5
|
+
return !required ? null : { bceNull: true };
|
|
6
6
|
}
|
|
7
7
|
let bceCandidate = control.value.trim().replace(/\/|\.|\-/g, '');
|
|
8
8
|
if (bceCandidate.length !== 10)
|
|
@@ -15,7 +15,7 @@ export class OnemrvaValidators {
|
|
|
15
15
|
static niss(required = false) {
|
|
16
16
|
return (control) => {
|
|
17
17
|
if (control.value === null || control.value.trim() === '')
|
|
18
|
-
return required ? null : { nissNull: true };
|
|
18
|
+
return !required ? null : { nissNull: true };
|
|
19
19
|
let nissCandidate = control.value.trim().replace(/\/|\.|\-/g, '');
|
|
20
20
|
if (nissCandidate.length !== 11)
|
|
21
21
|
return { nissLengthError: { value: nissCandidate } };
|
|
@@ -23,18 +23,19 @@ export class OnemrvaValidators {
|
|
|
23
23
|
return { bceNan: { value: nissCandidate } };
|
|
24
24
|
const date = +nissCandidate.substring(4, 6);
|
|
25
25
|
const month = +nissCandidate.substring(2, 4) - 1;
|
|
26
|
+
const real_month = month % 20;
|
|
26
27
|
const currentYear = new Date().getFullYear() - 2000;
|
|
27
28
|
let year = +nissCandidate.substring(0, 2);
|
|
28
29
|
year = year > currentYear ? 1900 + year : 2000 + year;
|
|
29
30
|
// Check month
|
|
30
|
-
if (month >
|
|
31
|
+
if (real_month > 11 || month > 51)
|
|
31
32
|
return { nissInvalidMonth: { value: nissCandidate } };
|
|
32
33
|
// Check date
|
|
33
34
|
if (date > 31)
|
|
34
35
|
return { nissInvalidDate: { value: nissCandidate } };
|
|
35
36
|
// Check date consistency
|
|
36
|
-
const d = new Date(year,
|
|
37
|
-
if (d.getDate() !== date || d.getMonth() !==
|
|
37
|
+
const d = new Date(year, real_month, date);
|
|
38
|
+
if (d.getDate() !== date || d.getMonth() !== real_month)
|
|
38
39
|
// This catches errors such as 32 Jan, which becomes 1 Feb inside the date object
|
|
39
40
|
return { nissInconsistentDate: { value: nissCandidate } };
|
|
40
41
|
// Check digit
|
|
@@ -47,4 +48,4 @@ export class OnemrvaValidators {
|
|
|
47
48
|
};
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lbXJ2YS12YWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lbXJ2YS9kZXNpZ24tc3lzdGVtL3NoYXJlZC9zcmMvbGliL3ZhbGlkYXRvcnMvb25lbXJ2YS12YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSztRQUN6QixPQUFPLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtZQUMzRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQzFELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDOUMsQ0FBQztZQUVELElBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUVqRSxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssRUFBRTtnQkFDNUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBRXJELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQztnQkFDN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBRTdDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUs7UUFDMUIsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7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YXIvZm9ybXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGNsYXNzIE9uZW1ydmFWYWxpZGF0b3JzIHtcbiAgc3RhdGljIGJjZShyZXF1aXJlZCA9IGZhbHNlKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgaWYgKGNvbnRyb2wudmFsdWUgPT09IG51bGwgfHwgY29udHJvbC52YWx1ZS50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiAhcmVxdWlyZWQgPyBudWxsIDogeyBiY2VOdWxsOiB0cnVlIH07XG4gICAgICB9XG5cbiAgICAgIGxldCBiY2VDYW5kaWRhdGUgPSBjb250cm9sLnZhbHVlLnRyaW0oKS5yZXBsYWNlKC9cXC98XFwufFxcLS9nLCAnJyk7XG5cbiAgICAgIGlmIChiY2VDYW5kaWRhdGUubGVuZ3RoICE9PSAxMClcbiAgICAgICAgcmV0dXJuIHsgYmNlTGVuZ3RoRXJyb3I6IHsgdmFsdWU6IGJjZUNhbmRpZGF0ZSB9IH07XG5cbiAgICAgIGlmIChOdW1iZXIuaXNOYU4oK2JjZUNhbmRpZGF0ZSkpXG4gICAgICAgIHJldHVybiB7IGJjZU5hbjogeyB2YWx1ZTogYmNlQ2FuZGlkYXRlIH0gfTtcblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBuaXNzKHJlcXVpcmVkID0gZmFsc2UpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoY29udHJvbC52YWx1ZSA9PT0gbnVsbCB8fCBjb250cm9sLnZhbHVlLnRyaW0oKSA9PT0gJycpXG4gICAgICAgIHJldHVybiAhcmVxdWlyZWQgPyBudWxsIDogeyBuaXNzTnVsbDogdHJ1ZSB9O1xuXG4gICAgICBsZXQgbmlzc0NhbmRpZGF0ZSA9IGNvbnRyb2wudmFsdWUudHJpbSgpLnJlcGxhY2UoL1xcL3xcXC58XFwtL2csICcnKTtcblxuICAgICAgaWYgKG5pc3NDYW5kaWRhdGUubGVuZ3RoICE9PSAxMSlcbiAgICAgICAgcmV0dXJuIHsgbmlzc0xlbmd0aEVycm9yOiB7IHZhbHVlOiBuaXNzQ2FuZGlkYXRlIH0gfTtcblxuICAgICAgaWYgKE51bWJlci5pc05hTigrbmlzc0NhbmRpZGF0ZSkpXG4gICAgICAgIHJldHVybiB7IGJjZU5hbjogeyB2YWx1ZTogbmlzc0NhbmRpZGF0ZSB9IH07XG5cbiAgICAgIGNvbnN0IGRhdGUgPSArbmlzc0NhbmRpZGF0ZS5zdWJzdHJpbmcoNCwgNik7XG4gICAgICBjb25zdCBtb250aCA9ICtuaXNzQ2FuZGlkYXRlLnN1YnN0cmluZygyLCA0KSAtIDE7XG4gICAgICBjb25zdCByZWFsX21vbnRoID0gbW9udGglMjA7XG4gICAgICBjb25zdCBjdXJyZW50WWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDIwMDA7XG4gICAgICBsZXQgeWVhciA9ICtuaXNzQ2FuZGlkYXRlLnN1YnN0cmluZygwLCAyKTtcbiAgICAgIHllYXIgPSB5ZWFyID4gY3VycmVudFllYXIgPyAxOTAwICsgeWVhciA6IDIwMDAgKyB5ZWFyO1xuXG4gICAgICAvLyBDaGVjayBtb250aFxuICAgICAgaWYgKHJlYWxfbW9udGggPiAxMSB8fCBtb250aCA+IDUxICkgcmV0dXJuIHsgbmlzc0ludmFsaWRNb250aDogeyB2YWx1ZTogbmlzc0NhbmRpZGF0ZSB9IH07XG5cbiAgICAgIC8vIENoZWNrIGRhdGVcbiAgICAgIGlmIChkYXRlID4gMzEpIHJldHVybiB7IG5pc3NJbnZhbGlkRGF0ZTogeyB2YWx1ZTogbmlzc0NhbmRpZGF0ZSB9IH07XG5cbiAgICAgIC8vIENoZWNrIGRhdGUgY29uc2lzdGVuY3lcbiAgICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh5ZWFyLCByZWFsX21vbnRoLCBkYXRlKTtcbiAgICAgIGlmIChkLmdldERhdGUoKSAhPT0gZGF0ZSB8fCBkLmdldE1vbnRoKCkgIT09IHJlYWxfbW9udGgpXG4gICAgICAgIC8vIFRoaXMgY2F0Y2hlcyBlcnJvcnMgc3VjaCBhcyAzMiBKYW4sIHdoaWNoIGJlY29tZXMgMSBGZWIgaW5zaWRlIHRoZSBkYXRlIG9iamVjdFxuICAgICAgICByZXR1cm4geyBuaXNzSW5jb25zaXN0ZW50RGF0ZTogeyB2YWx1ZTogbmlzc0NhbmRpZGF0ZSB9IH07XG5cbiAgICAgIC8vIENoZWNrIGRpZ2l0XG4gICAgICBsZXQgbmlzc1N0YXJ0ID1cbiAgICAgICAgeWVhciA8IDIwMDBcbiAgICAgICAgICA/ICtuaXNzQ2FuZGlkYXRlLnN1YnN0cmluZygwLCA5KVxuICAgICAgICAgIDogKygnMicgKyBuaXNzQ2FuZGlkYXRlLnN1YnN0cmluZygwLCA5KSk7XG5cbiAgICAgIGlmICg5NyAtIChuaXNzU3RhcnQgJSA5NykgIT09ICtuaXNzQ2FuZGlkYXRlLnN1YnN0cmluZyg5KSlcbiAgICAgICAgcmV0dXJuIHsgbmlzc0NoZWNrRGlnaXRFcnJvcjogeyB2YWx1ZTogbmlzc0NhbmRpZGF0ZSB9IH07XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -552,7 +552,7 @@ class OnemrvaValidators {
|
|
|
552
552
|
static bce(required = false) {
|
|
553
553
|
return (control) => {
|
|
554
554
|
if (control.value === null || control.value.trim() === '') {
|
|
555
|
-
return required ? null : { bceNull: true };
|
|
555
|
+
return !required ? null : { bceNull: true };
|
|
556
556
|
}
|
|
557
557
|
let bceCandidate = control.value.trim().replace(/\/|\.|\-/g, '');
|
|
558
558
|
if (bceCandidate.length !== 10)
|
|
@@ -565,7 +565,7 @@ class OnemrvaValidators {
|
|
|
565
565
|
static niss(required = false) {
|
|
566
566
|
return (control) => {
|
|
567
567
|
if (control.value === null || control.value.trim() === '')
|
|
568
|
-
return required ? null : { nissNull: true };
|
|
568
|
+
return !required ? null : { nissNull: true };
|
|
569
569
|
let nissCandidate = control.value.trim().replace(/\/|\.|\-/g, '');
|
|
570
570
|
if (nissCandidate.length !== 11)
|
|
571
571
|
return { nissLengthError: { value: nissCandidate } };
|
|
@@ -573,18 +573,19 @@ class OnemrvaValidators {
|
|
|
573
573
|
return { bceNan: { value: nissCandidate } };
|
|
574
574
|
const date = +nissCandidate.substring(4, 6);
|
|
575
575
|
const month = +nissCandidate.substring(2, 4) - 1;
|
|
576
|
+
const real_month = month % 20;
|
|
576
577
|
const currentYear = new Date().getFullYear() - 2000;
|
|
577
578
|
let year = +nissCandidate.substring(0, 2);
|
|
578
579
|
year = year > currentYear ? 1900 + year : 2000 + year;
|
|
579
580
|
// Check month
|
|
580
|
-
if (month >
|
|
581
|
+
if (real_month > 11 || month > 51)
|
|
581
582
|
return { nissInvalidMonth: { value: nissCandidate } };
|
|
582
583
|
// Check date
|
|
583
584
|
if (date > 31)
|
|
584
585
|
return { nissInvalidDate: { value: nissCandidate } };
|
|
585
586
|
// Check date consistency
|
|
586
|
-
const d = new Date(year,
|
|
587
|
-
if (d.getDate() !== date || d.getMonth() !==
|
|
587
|
+
const d = new Date(year, real_month, date);
|
|
588
|
+
if (d.getDate() !== date || d.getMonth() !== real_month)
|
|
588
589
|
// This catches errors such as 32 Jan, which becomes 1 Feb inside the date object
|
|
589
590
|
return { nissInconsistentDate: { value: nissCandidate } };
|
|
590
591
|
// Check digit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onemrvapublic-design-system-shared.mjs","sources":["../../../../projects/onemrva/design-system/shared/src/lib/directives/digit-only.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/mat-row-clickable.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/if-width-is.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/color.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/mask.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/components/clipboard-icon/clipboard-icon.component.ts","../../../../projects/onemrva/design-system/shared/src/lib/components/clipboard-icon/clipboard-icon.component.html","../../../../projects/onemrva/design-system/shared/src/lib/directives/clipboard.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/index.ts","../../../../projects/onemrva/design-system/shared/src/lib/shared.module.ts","../../../../projects/onemrva/design-system/shared/src/lib/pipes/onemrva-bce.pipe.ts","../../../../projects/onemrva/design-system/shared/src/lib/pipes/onemrva-niss.pipe.ts","../../../../projects/onemrva/design-system/shared/src/lib/validators/onemrva-validators.ts","../../../../projects/onemrva/design-system/shared/index.ts","../../../../projects/onemrva/design-system/shared/onemrvapublic-design-system-shared.ts"],"sourcesContent":["import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[digitOnly]',\n})\nexport class DigitOnlyDirective {\n constructor() {}\n\n @HostListener('keydown', ['$event']) onKeyDown(event: any) {\n let e = <KeyboardEvent>event;\n\n const allowedKey = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n ',',\n ' ',\n 'Backspace',\n 'Delete',\n 'Tab',\n '-',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (allowedKey.indexOf(e.key) >= 0) return;\n\n // HWKTODO manage ctrl Z and ctrl U\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n\n e.preventDefault();\n }\n}\n","import {Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\nimport {OnemrvaMatColor} from \"@onemrvapublic/design-system/utils\";\n\n@Directive({\n selector: '[mat-row-clickable]'\n})\nexport class MatRowClickableDirective {\n\n @Output('mat-row-clickable')\n matRowClickable: EventEmitter<any> = new EventEmitter<any>();\n\n @Input()\n color: OnemrvaMatColor = '';\n\n constructor(private el:ElementRef) {}\n\n @HostListener('click', ['$event'])\n click(event: any) {\n this.matRowClickable.emit();\n }\n\n @HostBinding('class.onemrva-clickable-row')\n public cssClass = true;\n\n ngOnInit() {\n }\n\n /** @hidden @internal */\n @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-accent')\n public get _isAccent(): boolean {\n return this.color === OnemrvaMatColor.ACCENT;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-error')\n public get _isError(): boolean {\n return this.color === OnemrvaMatColor.ERROR;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-warn')\n public get _isWarn(): boolean {\n return this.color === OnemrvaMatColor.WARN;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-success')\n public get _isSuccess(): boolean {\n return this.color === OnemrvaMatColor.SUCCESS;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-info')\n public get _isInfo(): boolean {\n return this.color === OnemrvaMatColor.INFO;\n }\n}\n","import { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout';\nimport { Directive, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector: '[ifWidthIs]',\n})\nexport class IfWidthIsDirective implements OnInit {\n @Input() ifWidthIs!: typeof Breakpoints[keyof typeof Breakpoints][];\n\n constructor(\n public breakpointObserver: BreakpointObserver,\n private _templateRef: TemplateRef<any>,\n private _viewContainer: ViewContainerRef\n ) {}\n\n ngOnInit() {\n this.breakpointObserver.observe([...this.ifWidthIs]).subscribe((state: BreakpointState) => {\n this._viewContainer.clear();\n if (state.matches) {\n this._viewContainer.createEmbeddedView(this._templateRef);\n }\n });\n }\n}\n","import {Directive, HostBinding, Input} from '@angular/core';\nimport {OnemrvaMatColor} from \"@onemrvapublic/design-system/utils\";\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector: 'mat-card[color],mat-chip[color]',\n})\nexport class OnemRvaColorDirective {\n\n constructor() {}\n\n @Input()\n color: OnemrvaMatColor = '';\n\n /** @hidden @internal */\n @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-accent')\n public get _isAccent(): boolean {\n return this.color === OnemrvaMatColor.ACCENT;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-error')\n public get _isError(): boolean {\n return this.color === OnemrvaMatColor.ERROR;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-warn')\n public get _isWarn(): boolean {\n return this.color === OnemrvaMatColor.WARN;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-success')\n public get _isSuccess(): boolean {\n return this.color === OnemrvaMatColor.SUCCESS;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-info')\n public get _isInfo(): boolean {\n return this.color === OnemrvaMatColor.INFO;\n }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\nconst UNDO_STACK_MAX_LENGTH = 50;\n\n/**\n * 0: digits\n * A: letters (uppercase or lowercase) and digits\n * S: only letters (uppercase or lowercase)\n * U: only letters uppercase\n * L: only letters lowercase\n */\n\n@Directive({\n selector: '[onemrvamask]',\n})\nexport class OnemrvaMaskDirective {\n @Input() onemrvamask!: string;\n\n private inputStack: string[] = ['']; // Stack for undo/redo\n private stackIdx: number = 0; // Current index in undo/redo stack\n\n markForDelete = false;\n\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\n // Allow functional keystrokes\n let e = <KeyboardEvent>event;\n\n let specialKeys = [\n 'Tab',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (specialKeys.indexOf(e.key) >= 0) return;\n\n specialKeys = ['Backspace', 'Delete'];\n if (specialKeys.indexOf(e.key) >= 0) {\n this.markForDelete = true;\n return;\n }\n\n // Undo\n if (e.ctrlKey && 'z' === e.key && this.stackIdx > 0) {\n this.stackIdx--;\n this.el.nativeElement.value = this.inputStack[this.stackIdx];\n event.preventDefault();\n }\n\n // Redo\n if (\n e.ctrlKey &&\n 'u' === e.key &&\n this.stackIdx < this.inputStack.length - 1\n ) {\n this.stackIdx++;\n this.el.nativeElement.value = this.inputStack[this.stackIdx];\n event.preventDefault();\n }\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n }\n\n @HostListener('input', ['$event']) onInput(event: any) {\n let selectionStart = event.target?.selectionStart;\n\n /*\n * Step 1\n * This block lets a delete execution if the new value is compliant.\n * There are 2 deletion cases, after which the new value is not compliant\n * - dd/MX/yyyy: X is deleted, then the date becomes dd/M/yyyy\n * This case is resolved by step 2 and the date will become: dd/My/yyy\n * - dd/MMXyyyy: the last '/' is deleted, then the date becomes dd/MMyyyy\n * In this particular case, step 2 will automatically add the missing slash, so the date will remain dd/MM/yyyy\n * The issue is that the caret position will remain stuck where it was, so if the user keeps hitting the delete key, nothing will change at all. This is resolved in step 4 by moving the caret to the left\n */\n if (this.markForDelete) {\n const isCompliantAfterDeletion =\n [...this.el.nativeElement.value].findIndex((char, idx) => {\n let rule = this.onemrvamask[idx];\n\n if (rule === null || rule === undefined) return true;\n\n if (isNaN(char) && char.toLowerCase() === char.toUpperCase())\n return char !== rule;\n\n return !isAllowed(rule, char);\n }) < 0;\n\n if (isCompliantAfterDeletion) {\n this.markForDelete = false;\n return;\n }\n }\n\n // Step 2\n const compliantValue = [...this.el.nativeElement.value]\n .filter((char) => isAllowed('A', char)) // Necessary when several special char in a row\n .reduce((newValue, char) => {\n let idx = newValue.length;\n let rule = this.onemrvamask[idx];\n\n if (rule === null || rule === undefined) return newValue;\n\n newValue = !isAllowed(rule, char) ? newValue : newValue + char;\n\n // Add all trailing special characters\n let nextRule = this.onemrvamask[++idx];\n let i = 0;\n\n while (\n nextRule !== null &&\n nextRule !== undefined &&\n ['0', 'A', 'S', 'U', 'L'].indexOf(nextRule) < 0\n ) {\n i++;\n newValue += nextRule;\n nextRule = this.onemrvamask[++idx];\n\n if (i > 50) break;\n }\n\n return newValue;\n }, '');\n\n this.el.nativeElement.value = compliantValue;\n\n // Step 3 - Find the new cursor position. If the last new character is just before special character, move the caret after\n let idx = selectionStart;\n let nextRule = this.onemrvamask[idx];\n while (\n nextRule !== null &&\n nextRule !== undefined &&\n ['0', 'A', 'S', 'U', 'L'].indexOf(nextRule) < 0\n ) {\n idx++;\n nextRule = this.onemrvamask[idx];\n if (\n nextRule !== null &&\n nextRule &&\n ['0', 'A', 'S', 'U', 'L'].indexOf(nextRule) < 0\n ) {\n } else break;\n }\n\n // Step 4 - Update inputStack only when all characters are processed\n if (compliantValue !== this.inputStack[this.stackIdx]) {\n this.stackIdx++;\n\n let stack =\n this.stackIdx > UNDO_STACK_MAX_LENGTH - 1\n ? this.inputStack.slice(1)\n : this.inputStack.splice(0, this.stackIdx);\n this.stackIdx =\n this.stackIdx > UNDO_STACK_MAX_LENGTH - 1\n ? UNDO_STACK_MAX_LENGTH - 1\n : this.stackIdx;\n\n this.inputStack = [...stack, compliantValue];\n\n this.el.nativeElement.setSelectionRange(idx, idx);\n } else {\n if (this.markForDelete) {\n let i = idx - 1;\n /* Finds the last rule character before the special character.\n * e.g: (nnn)/nnnn\n * If the user tries to delete '/', the caret will move just before ')'\n */\n while (i > 0) {\n const previousRule = this.onemrvamask[i - 1];\n if (['0', 'A', 'S', 'U', 'L'].indexOf(previousRule) < 0) {\n i--;\n } else break;\n }\n this.el.nativeElement.setSelectionRange(i, i);\n }\n }\n this.markForDelete = false;\n }\n constructor(private el: ElementRef) {}\n}\n\nfunction isAllowed(rule: string, character: string) {\n switch (rule) {\n // Any digit\n case '0':\n if (character === ' ') return false;\n return !isNaN(+character);\n\n // A: letters (uppercase or lowercase) and digits\n case 'A':\n if (character === ' ') return false;\n return (\n !isNaN(+character) || character.toLowerCase() != character.toUpperCase()\n );\n\n // only letters (uppercase or lowercase)\n case 'S':\n return character.toLowerCase() != character.toUpperCase();\n\n // only uppercase letters\n case 'U':\n return (\n character.toLowerCase() != character.toUpperCase() &&\n character === character.toUpperCase()\n );\n\n // only lowercase letters\n case 'L':\n return (\n character.toLowerCase() != character.toUpperCase() &&\n character === character.toLowerCase()\n );\n }\n\n return false;\n}\n","import {Component, ElementRef, ViewChild} from '@angular/core';\nimport {MatIconModule} from \"@angular/material/icon\";\nimport {MatTooltipModule} from \"@angular/material/tooltip\";\nimport {Clipboard} from \"@angular/cdk/clipboard\";\n\n@Component({\n selector: 'lib-clipboard-icon',\n templateUrl: './clipboard-icon.component.html',\n styleUrls: ['./clipboard-icon.component.css'],\n standalone: true,\n imports: [\n MatIconModule,\n MatTooltipModule\n ]\n})\nexport class ClipboardIconComponent {\n constructor(\n public _elementRef : ElementRef,\n private clipboardService : Clipboard) {\n }\n\n}\n","<mat-icon [matTooltip]=\"'TEST'\">content_copy</mat-icon>\n","import {\n ChangeDetectorRef,\n ComponentFactoryResolver, ComponentRef,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n Renderer2,\n ViewContainerRef\n} from '@angular/core';\nimport {Clipboard} from \"@angular/cdk/clipboard\";\nimport {ClipboardIconComponent} from \"../components/clipboard-icon/clipboard-icon.component\";\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector: 'span[clipboard]',\n host: {\n // '[style.padding]': '\"pointer\"',\n },\n\n})\nexport class OnemRvaClipboardDirective implements OnInit{\n\n private icon: ComponentRef<ClipboardIconComponent>;\n private iconEl: any;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private factory: ComponentFactoryResolver,\n private vcRef: ViewContainerRef,\n private clipboardService : Clipboard) {\n\n const miFactory = this.factory.resolveComponentFactory(ClipboardIconComponent);\n this.icon = this.vcRef.createComponent(miFactory);\n this.iconEl = this.icon.injector.get(ClipboardIconComponent)._elementRef.nativeElement;\n\n }\n\n @HostBinding('class')\n class = \"\";\n\n @Input()\n clipboard: string = '';\n\n ngOnInit(): void {\n this.vcRef.clear();\n\n\n this.renderer.appendChild(this.elementRef.nativeElement, this.iconEl);\n }\n}\n","import { DigitOnlyDirective } from './digit-only.directive';\nimport { MatRowClickableDirective } from './mat-row-clickable.directive';\nimport { IfWidthIsDirective } from './if-width-is.directive';\nimport { OnemRvaColorDirective } from './color.directive';\nimport { OnemrvaMaskDirective } from './mask.directive';\nimport {OnemRvaClipboardDirective} from \"./clipboard.directive\";\n\nexport const directives: any[] = [\n DigitOnlyDirective,\n MatRowClickableDirective,\n OnemRvaClipboardDirective,\n IfWidthIsDirective,\n OnemRvaColorDirective,\n OnemrvaMaskDirective,\n];\n\nexport * from './digit-only.directive';\nexport * from './mat-row-clickable.directive';\nexport * from './if-width-is.directive';\nexport * from './color.directive';\nexport * from './mask.directive';\nexport * from './clipboard.directive';\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { directives } from './directives';\n\n@NgModule({\n declarations: [...directives],\n imports: [CommonModule],\n exports: [...directives, CommonModule],\n})\nexport class OnemrvaSharedModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'onemrvaBce',\n standalone: true,\n})\nexport class OnemrvaBcePipe implements PipeTransform {\n transform(value: string): string {\n let strOut = value.trim().replace(/\\/|\\.|\\-/g, '');\n\n if (strOut.length !== 10) return '?01?.???.???';\n\n return `${strOut.substring(0, 4)}.${strOut.substring(\n 4,\n 7\n )}.${strOut.substring(7, 10)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'onemrvaNiss',\n standalone: true,\n})\nexport class OnemrvaNissPipe implements PipeTransform {\n transform(value: string): string {\n let strOut = value.trim().replace(/\\/|\\.|\\-/g, '');\n\n if (strOut.length !== 11) return '??01??/???-??';\n\n return `${strOut.substring(0, 6)}/${strOut.substring(\n 6,\n 9\n )}-${strOut.substring(9, 11)}`;\n }\n}\n","import { ValidationErrors } from '@angular/forms';\nimport { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport class OnemrvaValidators {\n static bce(required = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (control.value === null || control.value.trim() === '') {\n return required ? null : { bceNull: true };\n }\n\n let bceCandidate = control.value.trim().replace(/\\/|\\.|\\-/g, '');\n\n if (bceCandidate.length !== 10)\n return { bceLengthError: { value: bceCandidate } };\n\n if (Number.isNaN(+bceCandidate))\n return { bceNan: { value: bceCandidate } };\n\n return null;\n };\n }\n\n static niss(required = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (control.value === null || control.value.trim() === '')\n return required ? null : { nissNull: true };\n\n let nissCandidate = control.value.trim().replace(/\\/|\\.|\\-/g, '');\n\n if (nissCandidate.length !== 11)\n return { nissLengthError: { value: nissCandidate } };\n\n if (Number.isNaN(+nissCandidate))\n return { bceNan: { value: nissCandidate } };\n\n const date = +nissCandidate.substring(4, 6);\n const month = +nissCandidate.substring(2, 4) - 1;\n const currentYear = new Date().getFullYear() - 2000;\n let year = +nissCandidate.substring(0, 2);\n year = year > currentYear ? 1900 + year : 2000 + year;\n\n // Check month\n if (month > 11) return { nissInvalidMonth: { value: nissCandidate } };\n\n // Check date\n if (date > 31) return { nissInvalidDate: { value: nissCandidate } };\n\n // Check date consistency\n const d = new Date(year, month, date);\n if (d.getDate() !== date || d.getMonth() !== month)\n // This catches errors such as 32 Jan, which becomes 1 Feb inside the date object\n return { nissInconsistentDate: { value: nissCandidate } };\n\n // Check digit\n let nissStart =\n year < 2000\n ? +nissCandidate.substring(0, 9)\n : +('2' + nissCandidate.substring(0, 9));\n\n if (97 - (nissStart % 97) !== +nissCandidate.substring(9))\n return { nissCheckDigitError: { value: nissCandidate } };\n\n return null;\n };\n }\n}\n","/*\n * Public API Surface of shared\n */\n\nexport * from './src/lib/directives';\nexport * from './src/lib/shared.module';\nexport * from './src/lib/pipes';\nexport * from './src/lib/validators/onemrva-validators';\n\nexport const NISS_MASK = '000000/000-00';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.DigitOnlyDirective","i2.MatRowClickableDirective","i3.OnemRvaClipboardDirective","i4.IfWidthIsDirective","i5.OnemRvaColorDirective","i6.OnemrvaMaskDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"onemrvapublic-design-system-shared.mjs","sources":["../../../../projects/onemrva/design-system/shared/src/lib/directives/digit-only.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/mat-row-clickable.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/if-width-is.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/color.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/mask.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/components/clipboard-icon/clipboard-icon.component.ts","../../../../projects/onemrva/design-system/shared/src/lib/components/clipboard-icon/clipboard-icon.component.html","../../../../projects/onemrva/design-system/shared/src/lib/directives/clipboard.directive.ts","../../../../projects/onemrva/design-system/shared/src/lib/directives/index.ts","../../../../projects/onemrva/design-system/shared/src/lib/shared.module.ts","../../../../projects/onemrva/design-system/shared/src/lib/pipes/onemrva-bce.pipe.ts","../../../../projects/onemrva/design-system/shared/src/lib/pipes/onemrva-niss.pipe.ts","../../../../projects/onemrva/design-system/shared/src/lib/validators/onemrva-validators.ts","../../../../projects/onemrva/design-system/shared/index.ts","../../../../projects/onemrva/design-system/shared/onemrvapublic-design-system-shared.ts"],"sourcesContent":["import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[digitOnly]',\n})\nexport class DigitOnlyDirective {\n constructor() {}\n\n @HostListener('keydown', ['$event']) onKeyDown(event: any) {\n let e = <KeyboardEvent>event;\n\n const allowedKey = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n ',',\n ' ',\n 'Backspace',\n 'Delete',\n 'Tab',\n '-',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (allowedKey.indexOf(e.key) >= 0) return;\n\n // HWKTODO manage ctrl Z and ctrl U\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n\n e.preventDefault();\n }\n}\n","import {Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\nimport {OnemrvaMatColor} from \"@onemrvapublic/design-system/utils\";\n\n@Directive({\n selector: '[mat-row-clickable]'\n})\nexport class MatRowClickableDirective {\n\n @Output('mat-row-clickable')\n matRowClickable: EventEmitter<any> = new EventEmitter<any>();\n\n @Input()\n color: OnemrvaMatColor = '';\n\n constructor(private el:ElementRef) {}\n\n @HostListener('click', ['$event'])\n click(event: any) {\n this.matRowClickable.emit();\n }\n\n @HostBinding('class.onemrva-clickable-row')\n public cssClass = true;\n\n ngOnInit() {\n }\n\n /** @hidden @internal */\n @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-accent')\n public get _isAccent(): boolean {\n return this.color === OnemrvaMatColor.ACCENT;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-error')\n public get _isError(): boolean {\n return this.color === OnemrvaMatColor.ERROR;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-warn')\n public get _isWarn(): boolean {\n return this.color === OnemrvaMatColor.WARN;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-success')\n public get _isSuccess(): boolean {\n return this.color === OnemrvaMatColor.SUCCESS;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-info')\n public get _isInfo(): boolean {\n return this.color === OnemrvaMatColor.INFO;\n }\n}\n","import { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout';\nimport { Directive, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector: '[ifWidthIs]',\n})\nexport class IfWidthIsDirective implements OnInit {\n @Input() ifWidthIs!: typeof Breakpoints[keyof typeof Breakpoints][];\n\n constructor(\n public breakpointObserver: BreakpointObserver,\n private _templateRef: TemplateRef<any>,\n private _viewContainer: ViewContainerRef\n ) {}\n\n ngOnInit() {\n this.breakpointObserver.observe([...this.ifWidthIs]).subscribe((state: BreakpointState) => {\n this._viewContainer.clear();\n if (state.matches) {\n this._viewContainer.createEmbeddedView(this._templateRef);\n }\n });\n }\n}\n","import {Directive, HostBinding, Input} from '@angular/core';\nimport {OnemrvaMatColor} from \"@onemrvapublic/design-system/utils\";\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector: 'mat-card[color],mat-chip[color]',\n})\nexport class OnemRvaColorDirective {\n\n constructor() {}\n\n @Input()\n color: OnemrvaMatColor = '';\n\n /** @hidden @internal */\n @HostBinding('class.mat-primary')\n public get _isPrimary(): boolean {\n return this.color === OnemrvaMatColor.PRIMARY;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-accent')\n public get _isAccent(): boolean {\n return this.color === OnemrvaMatColor.ACCENT;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-error')\n public get _isError(): boolean {\n return this.color === OnemrvaMatColor.ERROR;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-warn')\n public get _isWarn(): boolean {\n return this.color === OnemrvaMatColor.WARN;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-success')\n public get _isSuccess(): boolean {\n return this.color === OnemrvaMatColor.SUCCESS;\n }\n /** @hidden @internal */\n @HostBinding('class.mat-info')\n public get _isInfo(): boolean {\n return this.color === OnemrvaMatColor.INFO;\n }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\nconst UNDO_STACK_MAX_LENGTH = 50;\n\n/**\n * 0: digits\n * A: letters (uppercase or lowercase) and digits\n * S: only letters (uppercase or lowercase)\n * U: only letters uppercase\n * L: only letters lowercase\n */\n\n@Directive({\n selector: '[onemrvamask]',\n})\nexport class OnemrvaMaskDirective {\n @Input() onemrvamask!: string;\n\n private inputStack: string[] = ['']; // Stack for undo/redo\n private stackIdx: number = 0; // Current index in undo/redo stack\n\n markForDelete = false;\n\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\n // Allow functional keystrokes\n let e = <KeyboardEvent>event;\n\n let specialKeys = [\n 'Tab',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (specialKeys.indexOf(e.key) >= 0) return;\n\n specialKeys = ['Backspace', 'Delete'];\n if (specialKeys.indexOf(e.key) >= 0) {\n this.markForDelete = true;\n return;\n }\n\n // Undo\n if (e.ctrlKey && 'z' === e.key && this.stackIdx > 0) {\n this.stackIdx--;\n this.el.nativeElement.value = this.inputStack[this.stackIdx];\n event.preventDefault();\n }\n\n // Redo\n if (\n e.ctrlKey &&\n 'u' === e.key &&\n this.stackIdx < this.inputStack.length - 1\n ) {\n this.stackIdx++;\n this.el.nativeElement.value = this.inputStack[this.stackIdx];\n event.preventDefault();\n }\n\n const allowedCtrlShortcuts = ['a', 'c', 'x', 'v'];\n if (e.ctrlKey && allowedCtrlShortcuts.indexOf(e.key) >= 0) return;\n }\n\n @HostListener('input', ['$event']) onInput(event: any) {\n let selectionStart = event.target?.selectionStart;\n\n /*\n * Step 1\n * This block lets a delete execution if the new value is compliant.\n * There are 2 deletion cases, after which the new value is not compliant\n * - dd/MX/yyyy: X is deleted, then the date becomes dd/M/yyyy\n * This case is resolved by step 2 and the date will become: dd/My/yyy\n * - dd/MMXyyyy: the last '/' is deleted, then the date becomes dd/MMyyyy\n * In this particular case, step 2 will automatically add the missing slash, so the date will remain dd/MM/yyyy\n * The issue is that the caret position will remain stuck where it was, so if the user keeps hitting the delete key, nothing will change at all. This is resolved in step 4 by moving the caret to the left\n */\n if (this.markForDelete) {\n const isCompliantAfterDeletion =\n [...this.el.nativeElement.value].findIndex((char, idx) => {\n let rule = this.onemrvamask[idx];\n\n if (rule === null || rule === undefined) return true;\n\n if (isNaN(char) && char.toLowerCase() === char.toUpperCase())\n return char !== rule;\n\n return !isAllowed(rule, char);\n }) < 0;\n\n if (isCompliantAfterDeletion) {\n this.markForDelete = false;\n return;\n }\n }\n\n // Step 2\n const compliantValue = [...this.el.nativeElement.value]\n .filter((char) => isAllowed('A', char)) // Necessary when several special char in a row\n .reduce((newValue, char) => {\n let idx = newValue.length;\n let rule = this.onemrvamask[idx];\n\n if (rule === null || rule === undefined) return newValue;\n\n newValue = !isAllowed(rule, char) ? newValue : newValue + char;\n\n // Add all trailing special characters\n let nextRule = this.onemrvamask[++idx];\n let i = 0;\n\n while (\n nextRule !== null &&\n nextRule !== undefined &&\n ['0', 'A', 'S', 'U', 'L'].indexOf(nextRule) < 0\n ) {\n i++;\n newValue += nextRule;\n nextRule = this.onemrvamask[++idx];\n\n if (i > 50) break;\n }\n\n return newValue;\n }, '');\n\n this.el.nativeElement.value = compliantValue;\n\n // Step 3 - Find the new cursor position. If the last new character is just before special character, move the caret after\n let idx = selectionStart;\n let nextRule = this.onemrvamask[idx];\n while (\n nextRule !== null &&\n nextRule !== undefined &&\n ['0', 'A', 'S', 'U', 'L'].indexOf(nextRule) < 0\n ) {\n idx++;\n nextRule = this.onemrvamask[idx];\n if (\n nextRule !== null &&\n nextRule &&\n ['0', 'A', 'S', 'U', 'L'].indexOf(nextRule) < 0\n ) {\n } else break;\n }\n\n // Step 4 - Update inputStack only when all characters are processed\n if (compliantValue !== this.inputStack[this.stackIdx]) {\n this.stackIdx++;\n\n let stack =\n this.stackIdx > UNDO_STACK_MAX_LENGTH - 1\n ? this.inputStack.slice(1)\n : this.inputStack.splice(0, this.stackIdx);\n this.stackIdx =\n this.stackIdx > UNDO_STACK_MAX_LENGTH - 1\n ? UNDO_STACK_MAX_LENGTH - 1\n : this.stackIdx;\n\n this.inputStack = [...stack, compliantValue];\n\n this.el.nativeElement.setSelectionRange(idx, idx);\n } else {\n if (this.markForDelete) {\n let i = idx - 1;\n /* Finds the last rule character before the special character.\n * e.g: (nnn)/nnnn\n * If the user tries to delete '/', the caret will move just before ')'\n */\n while (i > 0) {\n const previousRule = this.onemrvamask[i - 1];\n if (['0', 'A', 'S', 'U', 'L'].indexOf(previousRule) < 0) {\n i--;\n } else break;\n }\n this.el.nativeElement.setSelectionRange(i, i);\n }\n }\n this.markForDelete = false;\n }\n constructor(private el: ElementRef) {}\n}\n\nfunction isAllowed(rule: string, character: string) {\n switch (rule) {\n // Any digit\n case '0':\n if (character === ' ') return false;\n return !isNaN(+character);\n\n // A: letters (uppercase or lowercase) and digits\n case 'A':\n if (character === ' ') return false;\n return (\n !isNaN(+character) || character.toLowerCase() != character.toUpperCase()\n );\n\n // only letters (uppercase or lowercase)\n case 'S':\n return character.toLowerCase() != character.toUpperCase();\n\n // only uppercase letters\n case 'U':\n return (\n character.toLowerCase() != character.toUpperCase() &&\n character === character.toUpperCase()\n );\n\n // only lowercase letters\n case 'L':\n return (\n character.toLowerCase() != character.toUpperCase() &&\n character === character.toLowerCase()\n );\n }\n\n return false;\n}\n","import {Component, ElementRef, ViewChild} from '@angular/core';\nimport {MatIconModule} from \"@angular/material/icon\";\nimport {MatTooltipModule} from \"@angular/material/tooltip\";\nimport {Clipboard} from \"@angular/cdk/clipboard\";\n\n@Component({\n selector: 'lib-clipboard-icon',\n templateUrl: './clipboard-icon.component.html',\n styleUrls: ['./clipboard-icon.component.css'],\n standalone: true,\n imports: [\n MatIconModule,\n MatTooltipModule\n ]\n})\nexport class ClipboardIconComponent {\n constructor(\n public _elementRef : ElementRef,\n private clipboardService : Clipboard) {\n }\n\n}\n","<mat-icon [matTooltip]=\"'TEST'\">content_copy</mat-icon>\n","import {\n ChangeDetectorRef,\n ComponentFactoryResolver, ComponentRef,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n Renderer2,\n ViewContainerRef\n} from '@angular/core';\nimport {Clipboard} from \"@angular/cdk/clipboard\";\nimport {ClipboardIconComponent} from \"../components/clipboard-icon/clipboard-icon.component\";\n\n/**\n * Conditionally adds component to the tree if screen width matches at least one size in input\n */\n@Directive({\n selector: 'span[clipboard]',\n host: {\n // '[style.padding]': '\"pointer\"',\n },\n\n})\nexport class OnemRvaClipboardDirective implements OnInit{\n\n private icon: ComponentRef<ClipboardIconComponent>;\n private iconEl: any;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private factory: ComponentFactoryResolver,\n private vcRef: ViewContainerRef,\n private clipboardService : Clipboard) {\n\n const miFactory = this.factory.resolveComponentFactory(ClipboardIconComponent);\n this.icon = this.vcRef.createComponent(miFactory);\n this.iconEl = this.icon.injector.get(ClipboardIconComponent)._elementRef.nativeElement;\n\n }\n\n @HostBinding('class')\n class = \"\";\n\n @Input()\n clipboard: string = '';\n\n ngOnInit(): void {\n this.vcRef.clear();\n\n\n this.renderer.appendChild(this.elementRef.nativeElement, this.iconEl);\n }\n}\n","import { DigitOnlyDirective } from './digit-only.directive';\nimport { MatRowClickableDirective } from './mat-row-clickable.directive';\nimport { IfWidthIsDirective } from './if-width-is.directive';\nimport { OnemRvaColorDirective } from './color.directive';\nimport { OnemrvaMaskDirective } from './mask.directive';\nimport {OnemRvaClipboardDirective} from \"./clipboard.directive\";\n\nexport const directives: any[] = [\n DigitOnlyDirective,\n MatRowClickableDirective,\n OnemRvaClipboardDirective,\n IfWidthIsDirective,\n OnemRvaColorDirective,\n OnemrvaMaskDirective,\n];\n\nexport * from './digit-only.directive';\nexport * from './mat-row-clickable.directive';\nexport * from './if-width-is.directive';\nexport * from './color.directive';\nexport * from './mask.directive';\nexport * from './clipboard.directive';\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { directives } from './directives';\n\n@NgModule({\n declarations: [...directives],\n imports: [CommonModule],\n exports: [...directives, CommonModule],\n})\nexport class OnemrvaSharedModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'onemrvaBce',\n standalone: true,\n})\nexport class OnemrvaBcePipe implements PipeTransform {\n transform(value: string): string {\n let strOut = value.trim().replace(/\\/|\\.|\\-/g, '');\n\n if (strOut.length !== 10) return '?01?.???.???';\n\n return `${strOut.substring(0, 4)}.${strOut.substring(\n 4,\n 7\n )}.${strOut.substring(7, 10)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'onemrvaNiss',\n standalone: true,\n})\nexport class OnemrvaNissPipe implements PipeTransform {\n transform(value: string): string {\n let strOut = value.trim().replace(/\\/|\\.|\\-/g, '');\n\n if (strOut.length !== 11) return '??01??/???-??';\n\n return `${strOut.substring(0, 6)}/${strOut.substring(\n 6,\n 9\n )}-${strOut.substring(9, 11)}`;\n }\n}\n","import { ValidationErrors } from '@angular/forms';\nimport { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport class OnemrvaValidators {\n static bce(required = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (control.value === null || control.value.trim() === '') {\n return !required ? null : { bceNull: true };\n }\n\n let bceCandidate = control.value.trim().replace(/\\/|\\.|\\-/g, '');\n\n if (bceCandidate.length !== 10)\n return { bceLengthError: { value: bceCandidate } };\n\n if (Number.isNaN(+bceCandidate))\n return { bceNan: { value: bceCandidate } };\n\n return null;\n };\n }\n\n static niss(required = false): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (control.value === null || control.value.trim() === '')\n return !required ? null : { nissNull: true };\n\n let nissCandidate = control.value.trim().replace(/\\/|\\.|\\-/g, '');\n\n if (nissCandidate.length !== 11)\n return { nissLengthError: { value: nissCandidate } };\n\n if (Number.isNaN(+nissCandidate))\n return { bceNan: { value: nissCandidate } };\n\n const date = +nissCandidate.substring(4, 6);\n const month = +nissCandidate.substring(2, 4) - 1;\n const real_month = month%20;\n const currentYear = new Date().getFullYear() - 2000;\n let year = +nissCandidate.substring(0, 2);\n year = year > currentYear ? 1900 + year : 2000 + year;\n\n // Check month\n if (real_month > 11 || month > 51 ) return { nissInvalidMonth: { value: nissCandidate } };\n\n // Check date\n if (date > 31) return { nissInvalidDate: { value: nissCandidate } };\n\n // Check date consistency\n const d = new Date(year, real_month, date);\n if (d.getDate() !== date || d.getMonth() !== real_month)\n // This catches errors such as 32 Jan, which becomes 1 Feb inside the date object\n return { nissInconsistentDate: { value: nissCandidate } };\n\n // Check digit\n let nissStart =\n year < 2000\n ? +nissCandidate.substring(0, 9)\n : +('2' + nissCandidate.substring(0, 9));\n\n if (97 - (nissStart % 97) !== +nissCandidate.substring(9))\n return { nissCheckDigitError: { value: nissCandidate } };\n\n return null;\n };\n }\n}\n","/*\n * Public API Surface of shared\n */\n\nexport * from './src/lib/directives';\nexport * from './src/lib/shared.module';\nexport * from './src/lib/pipes';\nexport * from './src/lib/validators/onemrva-validators';\n\nexport const NISS_MASK = '000000/000-00';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.DigitOnlyDirective","i2.MatRowClickableDirective","i3.OnemRvaClipboardDirective","i4.IfWidthIsDirective","i5.OnemRvaColorDirective","i6.OnemrvaMaskDirective"],"mappings":"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"}
|