@taiga-ui/cdk 4.37.0 → 4.38.0-canary.30f044e
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/constants/version.d.ts +1 -1
- package/constants/version.js +1 -1
- package/directives/animated/animated-parent.directive.d.ts +10 -0
- package/directives/animated/animated.directive.d.ts +14 -0
- package/directives/animated/index.d.ts +2 -0
- package/directives/index.d.ts +1 -0
- package/esm2022/constants/version.mjs +2 -2
- package/esm2022/directives/animated/animated-parent.directive.mjs +39 -0
- package/esm2022/directives/animated/animated.directive.mjs +81 -0
- package/esm2022/directives/animated/index.mjs +3 -0
- package/esm2022/directives/animated/taiga-ui-cdk-directives-animated.mjs +5 -0
- package/esm2022/directives/index.mjs +2 -1
- package/esm2022/pipes/index.mjs +2 -1
- package/esm2022/pipes/obfuscate/index.mjs +3 -0
- package/esm2022/pipes/obfuscate/obfuscate.options.mjs +10 -0
- package/esm2022/pipes/obfuscate/obfuscate.pipe.mjs +44 -0
- package/esm2022/pipes/obfuscate/taiga-ui-cdk-pipes-obfuscate.mjs +5 -0
- package/esm2022/utils/dom/index.mjs +2 -1
- package/esm2022/utils/dom/value-binding.mjs +2 -1
- package/esm2022/utils/dom/value.mjs +71 -0
- package/esm2022/utils/miscellaneous/index.mjs +2 -1
- package/esm2022/utils/miscellaneous/obfuscate.mjs +53 -0
- package/fesm2022/taiga-ui-cdk-constants.mjs +1 -1
- package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-animated.mjs +120 -0
- package/fesm2022/taiga-ui-cdk-directives-animated.mjs.map +1 -0
- package/fesm2022/taiga-ui-cdk-directives.mjs +1 -0
- package/fesm2022/taiga-ui-cdk-directives.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs +59 -0
- package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs.map +1 -0
- package/fesm2022/taiga-ui-cdk-pipes.mjs +1 -0
- package/fesm2022/taiga-ui-cdk-pipes.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-utils-dom.mjs +73 -2
- package/fesm2022/taiga-ui-cdk-utils-dom.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs +54 -1
- package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs.map +1 -1
- package/package.json +25 -13
- package/pipes/index.d.ts +1 -0
- package/pipes/obfuscate/index.d.ts +2 -0
- package/pipes/obfuscate/obfuscate.options.d.ts +19 -0
- package/pipes/obfuscate/obfuscate.pipe.d.ts +16 -0
- package/schematics/collection.json +5 -0
- package/schematics/migrate-tui-let/index.d.ts +3 -0
- package/schematics/migrate-tui-let/index.js +71 -0
- package/schematics/ng-update/steps/index.d.ts +1 -1
- package/schematics/ng-update/steps/index.js +1 -1
- package/schematics/ng-update/v4/migrate-addon-doc/index.js +1 -1
- package/schematics/ng-update/v4/migrate-css-vars/palette.d.ts +1 -1
- package/schematics/ng-update/v4/migrate-css-vars/palette.js +1 -1
- package/schematics/ng-update/v4/steps/templates/migrate-badge.js +1 -1
- package/schematics/ng-update/v4/steps/templates/migrate-badged-content.js +1 -1
- package/schematics/ng-update/v4/steps/templates/migrate-button-appearance.js +1 -1
- package/schematics/ng-update/v4/steps/templates/migrate-expandable.js +1 -1
- package/schematics/ng-update/v4/steps/templates/migrate-overscroll.js +1 -1
- package/schematics/utils/create-angular-json.d.ts +3 -2
- package/schematics/utils/create-angular-json.js +2 -2
- package/schematics/utils/get-projects.d.ts +1 -1
- package/schematics/{ng-update/steps → utils}/remove-module.d.ts +2 -2
- package/schematics/{ng-update/steps → utils}/remove-module.js +2 -2
- package/utils/dom/index.d.ts +1 -0
- package/utils/dom/value.d.ts +4 -0
- package/utils/miscellaneous/index.d.ts +1 -0
- package/utils/miscellaneous/obfuscate.d.ts +14 -0
package/constants/version.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export declare const TUI_VERSION = "4.
|
1
|
+
export declare const TUI_VERSION = "4.38.0-canary.30f044e";
|
package/constants/version.js
CHANGED
@@ -0,0 +1,10 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
import * as i1 from "./animated.directive";
|
3
|
+
import * as i2 from "@ng-web-apis/mutation-observer";
|
4
|
+
export declare class TuiAnimatedParent {
|
5
|
+
private readonly el;
|
6
|
+
private readonly renderer;
|
7
|
+
protected handle(): void;
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiAnimatedParent, never>;
|
9
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiAnimatedParent, "[tuiAnimatedParent]", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiAnimated; inputs: {}; outputs: {}; }, { directive: typeof i2.WaMutationObserver; inputs: {}; outputs: { "waMutationObserver": "waMutationObserver"; }; }]>;
|
10
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import type { OnDestroy } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export declare const TUI_ENTER = "tui-enter";
|
4
|
+
export declare const TUI_LEAVE = "tui-leave";
|
5
|
+
export declare class TuiAnimated implements OnDestroy {
|
6
|
+
private readonly el;
|
7
|
+
private readonly app;
|
8
|
+
private readonly renderer;
|
9
|
+
constructor();
|
10
|
+
ngOnDestroy(): void;
|
11
|
+
protected remove(): void;
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiAnimated, never>;
|
13
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiAnimated, "[tuiAnimated]", never, {}, {}, never, never, true, never>;
|
14
|
+
}
|
package/directives/index.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export const TUI_VERSION = '4.
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
1
|
+
export const TUI_VERSION = '4.38.0-canary.30f044e';
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9jb25zdGFudHMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgVFVJX1ZFUlNJT04gPSAnNC4zOC4wLWNhbmFyeS4zMGYwNDRlJztcbiJdfQ==
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { Directive, inject, Renderer2 } from '@angular/core';
|
2
|
+
import { provideMutationObserverInit, WaMutationObserver, } from '@ng-web-apis/mutation-observer';
|
3
|
+
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
4
|
+
import { TUI_ENTER, TUI_LEAVE, TuiAnimated } from './animated.directive';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "./animated.directive";
|
7
|
+
import * as i2 from "@ng-web-apis/mutation-observer";
|
8
|
+
class TuiAnimatedParent {
|
9
|
+
constructor() {
|
10
|
+
this.el = tuiInjectElement();
|
11
|
+
this.renderer = inject(Renderer2);
|
12
|
+
}
|
13
|
+
handle() {
|
14
|
+
this.el.classList.remove(TUI_ENTER);
|
15
|
+
this.renderer.data[TUI_LEAVE] = Array.from(this.el.children);
|
16
|
+
}
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAnimatedParent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
18
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiAnimatedParent, isStandalone: true, selector: "[tuiAnimatedParent]", host: { listeners: { "waMutationObserver": "handle()" } }, providers: [provideMutationObserverInit({ childList: true })], hostDirectives: [{ directive: i1.TuiAnimated }, { directive: i2.WaMutationObserver, outputs: ["waMutationObserver", "waMutationObserver"] }], ngImport: i0 }); }
|
19
|
+
}
|
20
|
+
export { TuiAnimatedParent };
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAnimatedParent, decorators: [{
|
22
|
+
type: Directive,
|
23
|
+
args: [{
|
24
|
+
standalone: true,
|
25
|
+
selector: '[tuiAnimatedParent]',
|
26
|
+
providers: [provideMutationObserverInit({ childList: true })],
|
27
|
+
hostDirectives: [
|
28
|
+
TuiAnimated,
|
29
|
+
{
|
30
|
+
directive: WaMutationObserver,
|
31
|
+
outputs: ['waMutationObserver'],
|
32
|
+
},
|
33
|
+
],
|
34
|
+
host: {
|
35
|
+
'(waMutationObserver)': 'handle()',
|
36
|
+
},
|
37
|
+
}]
|
38
|
+
}] });
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZWQtcGFyZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9kaXJlY3RpdmVzL2FuaW1hdGVkL2FuaW1hdGVkLXBhcmVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFDSCwyQkFBMkIsRUFDM0Isa0JBQWtCLEdBQ3JCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFFdkUsTUFlYSxpQkFBaUI7SUFmOUI7UUFnQnFCLE9BQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7S0FNakQ7SUFKYSxNQUFNO1FBQ1osSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRSxDQUFDOytHQVBRLGlCQUFpQjttR0FBakIsaUJBQWlCLDZIQVpmLENBQUMsMkJBQTJCLENBQUMsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQzs7U0FZbEQsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBZjdCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7b0JBQzNELGNBQWMsRUFBRTt3QkFDWixXQUFXO3dCQUNYOzRCQUNJLFNBQVMsRUFBRSxrQkFBa0I7NEJBQzdCLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO3lCQUNsQztxQkFDSjtvQkFDRCxJQUFJLEVBQUU7d0JBQ0Ysc0JBQXNCLEVBQUUsVUFBVTtxQkFDckM7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgaW5qZWN0LCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBwcm92aWRlTXV0YXRpb25PYnNlcnZlckluaXQsXG4gICAgV2FNdXRhdGlvbk9ic2VydmVyLFxufSBmcm9tICdAbmctd2ViLWFwaXMvbXV0YXRpb24tb2JzZXJ2ZXInO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5cbmltcG9ydCB7VFVJX0VOVEVSLCBUVUlfTEVBVkUsIFR1aUFuaW1hdGVkfSBmcm9tICcuL2FuaW1hdGVkLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbdHVpQW5pbWF0ZWRQYXJlbnRdJyxcbiAgICBwcm92aWRlcnM6IFtwcm92aWRlTXV0YXRpb25PYnNlcnZlckluaXQoe2NoaWxkTGlzdDogdHJ1ZX0pXSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICBUdWlBbmltYXRlZCxcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBXYU11dGF0aW9uT2JzZXJ2ZXIsXG4gICAgICAgICAgICBvdXRwdXRzOiBbJ3dhTXV0YXRpb25PYnNlcnZlciddLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnKHdhTXV0YXRpb25PYnNlcnZlciknOiAnaGFuZGxlKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUFuaW1hdGVkUGFyZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAgIHByb3RlY3RlZCBoYW5kbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZShUVUlfRU5URVIpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmRhdGFbVFVJX0xFQVZFXSA9IEFycmF5LmZyb20odGhpcy5lbC5jaGlsZHJlbik7XG4gICAgfVxufVxuIl19
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import { afterNextRender, ApplicationRef, Directive, inject, ViewContainerRef, } from '@angular/core';
|
2
|
+
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export const TUI_ENTER = 'tui-enter';
|
5
|
+
export const TUI_LEAVE = 'tui-leave';
|
6
|
+
class TuiAnimated {
|
7
|
+
constructor() {
|
8
|
+
this.el = tuiInjectElement();
|
9
|
+
this.app = inject(ApplicationRef);
|
10
|
+
// @ts-ignore https://github.com/angular/angular/blob/main/packages/core/src/render3/interfaces/view.ts#L56
|
11
|
+
this.renderer = inject(ViewContainerRef)._hostLView?.[11];
|
12
|
+
if (!this.renderer) {
|
13
|
+
return;
|
14
|
+
}
|
15
|
+
// delegate is used in Angular Animations renderer
|
16
|
+
const renderer = this.renderer.delegate || this.renderer;
|
17
|
+
const { removeChild, data } = renderer;
|
18
|
+
if (data[TUI_LEAVE]) {
|
19
|
+
data[TUI_LEAVE].push(this.el);
|
20
|
+
return;
|
21
|
+
}
|
22
|
+
data[TUI_LEAVE] = [this.el];
|
23
|
+
afterNextRender(() => {
|
24
|
+
this.remove();
|
25
|
+
renderer.removeChild = (parent, el, host) => {
|
26
|
+
const remove = () => removeChild.call(renderer, parent, el, host);
|
27
|
+
const elements = data[TUI_LEAVE];
|
28
|
+
const element = elements.find((leave) => el.contains(leave));
|
29
|
+
const { length } = element?.getAnimations() || [];
|
30
|
+
if (!element) {
|
31
|
+
remove();
|
32
|
+
return;
|
33
|
+
}
|
34
|
+
elements.splice(elements.indexOf(element), 1);
|
35
|
+
element.classList.add(TUI_LEAVE);
|
36
|
+
const animations = element.getAnimations();
|
37
|
+
const last = animations[animations.length - 1];
|
38
|
+
const finish = () => {
|
39
|
+
if (parent.contains(el)) {
|
40
|
+
remove();
|
41
|
+
this.app.tick();
|
42
|
+
}
|
43
|
+
};
|
44
|
+
if (animations.length > length && last) {
|
45
|
+
last.onfinish = finish;
|
46
|
+
last.oncancel = finish;
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
remove();
|
50
|
+
}
|
51
|
+
};
|
52
|
+
});
|
53
|
+
}
|
54
|
+
ngOnDestroy() {
|
55
|
+
const data = this.renderer?.data || { [TUI_LEAVE]: [] };
|
56
|
+
setTimeout(() => {
|
57
|
+
data[TUI_LEAVE] = data[TUI_LEAVE].filter((e) => e !== this.el);
|
58
|
+
});
|
59
|
+
}
|
60
|
+
remove() {
|
61
|
+
if (this.el.isConnected && !this.el.getAnimations().length) {
|
62
|
+
this.el.classList.remove(TUI_ENTER);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAnimated, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
66
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiAnimated, isStandalone: true, selector: "[tuiAnimated]", host: { listeners: { "animationend.self": "remove()", "animationcancel.self": "remove()" }, classAttribute: "tui-enter" }, ngImport: i0 }); }
|
67
|
+
}
|
68
|
+
export { TuiAnimated };
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAnimated, decorators: [{
|
70
|
+
type: Directive,
|
71
|
+
args: [{
|
72
|
+
standalone: true,
|
73
|
+
selector: '[tuiAnimated]',
|
74
|
+
host: {
|
75
|
+
class: TUI_ENTER,
|
76
|
+
'(animationend.self)': 'remove()',
|
77
|
+
'(animationcancel.self)': 'remove()',
|
78
|
+
},
|
79
|
+
}]
|
80
|
+
}], ctorParameters: function () { return []; } });
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2RpcmVjdGl2ZXMvYW5pbWF0ZWQvYW5pbWF0ZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCxlQUFlLEVBQ2YsY0FBYyxFQUNkLFNBQVMsRUFDVCxNQUFNLEVBQ04sZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDOztBQUV6RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7QUFFckMsTUFTYSxXQUFXO0lBT3BCO1FBTmlCLE9BQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLFFBQUcsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUMsMkdBQTJHO1FBQzFGLGFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUdsRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixPQUFPO1NBQ1Y7UUFFRCxrREFBa0Q7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6RCxNQUFNLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxHQUFHLFFBQVEsQ0FBQztRQUVyQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUU5QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJ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VTtxQkFDdkM7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7T25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyLFxuICAgIEFwcGxpY2F0aW9uUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBpbmplY3QsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcblxuZXhwb3J0IGNvbnN0IFRVSV9FTlRFUiA9ICd0dWktZW50ZXInO1xuZXhwb3J0IGNvbnN0IFRVSV9MRUFWRSA9ICd0dWktbGVhdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aUFuaW1hdGVkXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogVFVJX0VOVEVSLFxuICAgICAgICAnKGFuaW1hdGlvbmVuZC5zZWxmKSc6ICdyZW1vdmUoKScsXG4gICAgICAgICcoYW5pbWF0aW9uY2FuY2VsLnNlbGYpJzogJ3JlbW92ZSgpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlBbmltYXRlZCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcCA9IGluamVjdChBcHBsaWNhdGlvblJlZik7XG5cbiAgICAvLyBAdHMtaWdub3JlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi9tYWluL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvaW50ZXJmYWNlcy92aWV3LnRzI0w1NlxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZikuX2hvc3RMVmlldz8uWzExXTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoIXRoaXMucmVuZGVyZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGRlbGVnYXRlIGlzIHVzZWQgaW4gQW5ndWxhciBBbmltYXRpb25zIHJlbmRlcmVyXG4gICAgICAgIGNvbnN0IHJlbmRlcmVyID0gdGhpcy5yZW5kZXJlci5kZWxlZ2F0ZSB8fCB0aGlzLnJlbmRlcmVyO1xuICAgICAgICBjb25zdCB7cmVtb3ZlQ2hpbGQsIGRhdGF9ID0gcmVuZGVyZXI7XG5cbiAgICAgICAgaWYgKGRhdGFbVFVJX0xFQVZFXSkge1xuICAgICAgICAgICAgZGF0YVtUVUlfTEVBVkVdLnB1c2godGhpcy5lbCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGRhdGFbVFVJX0xFQVZFXSA9IFt0aGlzLmVsXTtcblxuICAgICAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmUoKTtcblxuICAgICAgICAgICAgcmVuZGVyZXIucmVtb3ZlQ2hpbGQgPSAocGFyZW50OiBOb2RlLCBlbDogTm9kZSwgaG9zdD86IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZW1vdmUgPSAoKTogdm9pZCA9PiByZW1vdmVDaGlsZC5jYWxsKHJlbmRlcmVyLCBwYXJlbnQsIGVsLCBob3N0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50czogRWxlbWVudFtdID0gZGF0YVtUVUlfTEVBVkVdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50cy5maW5kKChsZWF2ZSkgPT4gZWwuY29udGFpbnMobGVhdmUpKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7bGVuZ3RofSA9IGVsZW1lbnQ/LmdldEFuaW1hdGlvbnMoKSB8fCBbXTtcblxuICAgICAgICAgICAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICByZW1vdmUoKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZWxlbWVudHMuc3BsaWNlKGVsZW1lbnRzLmluZGV4T2YoZWxlbWVudCksIDEpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChUVUlfTEVBVkUpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYW5pbWF0aW9ucyA9IGVsZW1lbnQuZ2V0QW5pbWF0aW9ucygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBhbmltYXRpb25zW2FuaW1hdGlvbnMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgICAgY29uc3QgZmluaXNoID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50LmNvbnRhaW5zKGVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcC50aWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKGFuaW1hdGlvbnMubGVuZ3RoID4gbGVuZ3RoICYmIGxhc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdC5vbmZpbmlzaCA9IGZpbmlzaDtcbiAgICAgICAgICAgICAgICAgICAgbGFzdC5vbmNhbmNlbCA9IGZpbmlzaDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlbmRlcmVyPy5kYXRhIHx8IHtbVFVJX0xFQVZFXTogW119O1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgZGF0YVtUVUlfTEVBVkVdID0gZGF0YVtUVUlfTEVBVkVdLmZpbHRlcigoZTogRWxlbWVudCkgPT4gZSAhPT0gdGhpcy5lbCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW1vdmUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVsLmlzQ29ubmVjdGVkICYmICF0aGlzLmVsLmdldEFuaW1hdGlvbnMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZShUVUlfRU5URVIpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export * from './animated.directive';
|
2
|
+
export * from './animated-parent.directive';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9hbmltYXRlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FuaW1hdGVkLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2FuaW1hdGVkLXBhcmVudC5kaXJlY3RpdmUnO1xuIl19
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './index';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWktY2RrLWRpcmVjdGl2ZXMtYW5pbWF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9hbmltYXRlZC90YWlnYS11aS1jZGstZGlyZWN0aXZlcy1hbmltYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
@@ -1,4 +1,5 @@
|
|
1
1
|
export * from '@taiga-ui/cdk/directives/active-zone';
|
2
|
+
export * from '@taiga-ui/cdk/directives/animated';
|
2
3
|
export * from '@taiga-ui/cdk/directives/auto-focus';
|
3
4
|
export * from '@taiga-ui/cdk/directives/click-outside';
|
4
5
|
export * from '@taiga-ui/cdk/directives/control';
|
@@ -25,4 +26,4 @@ export * from '@taiga-ui/cdk/directives/validator';
|
|
25
26
|
export * from '@taiga-ui/cdk/directives/value-changes';
|
26
27
|
export * from '@taiga-ui/cdk/directives/visual-viewport';
|
27
28
|
export * from '@taiga-ui/cdk/directives/zoom';
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2FjdGl2ZS16b25lJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hbmltYXRlZCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cyc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvY29udHJvbCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvY29weS1wcm9jZXNzb3InO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2Ryb3BwYWJsZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvZWxlbWVudCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvZm9jdXMtdHJhcCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvZm9udC1zaXplJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9mb3InO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2hpZ2gtZHBpJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9ob3ZlcmVkJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9pdGVtJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9sZXQnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL21lZGlhJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9uYXRpdmUtdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9vYnNjdXJlZCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvcGFuJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9wbGF0Zm9ybSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvcG9wb3Zlcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvcmVwZWF0LXRpbWVzJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9yZXNpemVyJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9zd2lwZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy92YWx1ZS1jaGFuZ2VzJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy92aXN1YWwtdmlld3BvcnQnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL3pvb20nO1xuIl19
|
package/esm2022/pipes/index.mjs
CHANGED
@@ -3,7 +3,8 @@ export * from '@taiga-ui/cdk/pipes/filter';
|
|
3
3
|
export * from '@taiga-ui/cdk/pipes/is-present';
|
4
4
|
export * from '@taiga-ui/cdk/pipes/keys';
|
5
5
|
export * from '@taiga-ui/cdk/pipes/mapper';
|
6
|
+
export * from '@taiga-ui/cdk/pipes/obfuscate';
|
6
7
|
export * from '@taiga-ui/cdk/pipes/repeat-times';
|
7
8
|
export * from '@taiga-ui/cdk/pipes/replace';
|
8
9
|
export * from '@taiga-ui/cdk/pipes/to-array';
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvcGlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL3BpcGVzL2FuaW1hdGlvbic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL3BpcGVzL2ZpbHRlcic7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL3BpcGVzL2lzLXByZXNlbnQnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2Nkay9waXBlcy9rZXlzJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvcGlwZXMvbWFwcGVyJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvcGlwZXMvb2JmdXNjYXRlJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvcGlwZXMvcmVwZWF0LXRpbWVzJztcbmV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvcGlwZXMvcmVwbGFjZSc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL3BpcGVzL3RvLWFycmF5JztcbiJdfQ==
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export * from './obfuscate.options';
|
2
|
+
export * from './obfuscate.pipe';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvcGlwZXMvb2JmdXNjYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb2JmdXNjYXRlLm9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9vYmZ1c2NhdGUucGlwZSc7XG4iXX0=
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { tuiCreateOptions, tuiObfuscate } from '@taiga-ui/cdk/utils';
|
2
|
+
export const TUI_OBFUSCATE_DEFAULT_OPTIONS = {
|
3
|
+
default: (value, symbol = '*') => tuiObfuscate(value, symbol),
|
4
|
+
recipes: {},
|
5
|
+
};
|
6
|
+
/**
|
7
|
+
* Injection token for obfuscation options.
|
8
|
+
*/
|
9
|
+
export const [TUI_OBFUSCATE_OPTIONS, tuiObfuscateOptionsProvider] = tuiCreateOptions(TUI_OBFUSCATE_DEFAULT_OPTIONS);
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JmdXNjYXRlLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvcGlwZXMvb2JmdXNjYXRlL29iZnVzY2F0ZS5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQWtCbkUsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQXdCO0lBQzlELE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUM3RCxPQUFPLEVBQUUsRUFBRTtDQUNkLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsMkJBQTJCLENBQUMsR0FBRyxnQkFBZ0IsQ0FDaEYsNkJBQTZCLENBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R1aUNyZWF0ZU9wdGlvbnMsIHR1aU9iZnVzY2F0ZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscyc7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgb3B0aW9ucyBmb3Igb2JmdXNjYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHVpT2JmdXNjYXRlT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogRGVmYXVsdCBmdW5jdGlvbiB1c2VkIHRvIG9iZnVzY2F0ZSBhIHN0cmluZ1xuICAgICAqIGlmIG5vIHJlY2lwZSB3YXMgZm91bmQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVmYXVsdDogKHZhbHVlOiBzdHJpbmcsIHN5bWJvbD86IHN0cmluZykgPT4gc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQ29sbGVjdGlvbiBvZiBuYW1lZCByZWNpcGVzIGZvciBkaWZmZXJlbnQgb2JmdXNjYXRpb24gc2NlbmFyaW9zLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlY2lwZXM6IFJlY29yZDxzdHJpbmcsICh2YWx1ZTogc3RyaW5nKSA9PiBzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgVFVJX09CRlVTQ0FURV9ERUZBVUxUX09QVElPTlM6IFR1aU9iZnVzY2F0ZU9wdGlvbnMgPSB7XG4gICAgZGVmYXVsdDogKHZhbHVlLCBzeW1ib2wgPSAnKicpID0+IHR1aU9iZnVzY2F0ZSh2YWx1ZSwgc3ltYm9sKSxcbiAgICByZWNpcGVzOiB7fSxcbn07XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBvYmZ1c2NhdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgY29uc3QgW1RVSV9PQkZVU0NBVEVfT1BUSU9OUywgdHVpT2JmdXNjYXRlT3B0aW9uc1Byb3ZpZGVyXSA9IHR1aUNyZWF0ZU9wdGlvbnMoXG4gICAgVFVJX09CRlVTQ0FURV9ERUZBVUxUX09QVElPTlMsXG4pO1xuIl19
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { inject, Pipe } from '@angular/core';
|
2
|
+
import { TUI_OBFUSCATE_OPTIONS } from './obfuscate.options';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
class TuiObfuscatePipe {
|
5
|
+
constructor() {
|
6
|
+
this.option = inject(TUI_OBFUSCATE_OPTIONS);
|
7
|
+
}
|
8
|
+
/**
|
9
|
+
* Transforms the input value by obfuscating it according to the specified recipe or symbol.
|
10
|
+
*
|
11
|
+
* @param value The value to be obfuscated should be a string.
|
12
|
+
* @param recipe The name of the recipe to use for obfuscation or a single character symbol for custom obfuscation.
|
13
|
+
* @returns The obfuscated string.
|
14
|
+
* @throws Will throw an error if the specified recipe is not found.
|
15
|
+
*/
|
16
|
+
transform(value, recipe = '') {
|
17
|
+
if (!value) {
|
18
|
+
return value;
|
19
|
+
}
|
20
|
+
if (!recipe) {
|
21
|
+
return this.option.default(value);
|
22
|
+
}
|
23
|
+
const obfuscate = this.option.recipes[recipe];
|
24
|
+
if (obfuscate) {
|
25
|
+
return obfuscate(value);
|
26
|
+
}
|
27
|
+
if (recipe.length === 1) {
|
28
|
+
return this.option.default(value, recipe[0]);
|
29
|
+
}
|
30
|
+
const availableRecipes = Object.keys(this.option.recipes).sort();
|
31
|
+
throw new Error(`Obfuscate recipe "${recipe}" not found. Available recipes: [${availableRecipes}]`);
|
32
|
+
}
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiObfuscatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
34
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TuiObfuscatePipe, isStandalone: true, name: "tuiObfuscate" }); }
|
35
|
+
}
|
36
|
+
export { TuiObfuscatePipe };
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiObfuscatePipe, decorators: [{
|
38
|
+
type: Pipe,
|
39
|
+
args: [{
|
40
|
+
standalone: true,
|
41
|
+
name: 'tuiObfuscate',
|
42
|
+
}]
|
43
|
+
}] });
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JmdXNjYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvcGlwZXMvb2JmdXNjYXRlL29iZnVzY2F0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUUxRCxNQUlhLGdCQUFnQjtJQUo3QjtRQUtxQixXQUFNLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FtQzNEO0lBakNHOzs7Ozs7O09BT0c7SUFDSSxTQUFTLENBQUMsS0FBYSxFQUFFLE1BQU0sR0FBRyxFQUFFO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUMsSUFBSSxTQUFTLEVBQUU7WUFDWCxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtRQUVELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDaEQ7UUFFRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVqRSxNQUFNLElBQUksS0FBSyxDQUNYLHFCQUFxQixNQUFNLG9DQUFvQyxnQkFBZ0IsR0FBRyxDQUNyRixDQUFDO0lBQ04sQ0FBQzsrR0FuQ1EsZ0JBQWdCOzZHQUFoQixnQkFBZ0I7O1NBQWhCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQUo1QixJQUFJO21CQUFDO29CQUNGLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsY0FBYztpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2luamVjdCwgUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7VFVJX09CRlVTQ0FURV9PUFRJT05TfSBmcm9tICcuL29iZnVzY2F0ZS5vcHRpb25zJztcblxuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3R1aU9iZnVzY2F0ZScsXG59KVxuZXhwb3J0IGNsYXNzIFR1aU9iZnVzY2F0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbiA9IGluamVjdChUVUlfT0JGVVNDQVRFX09QVElPTlMpO1xuXG4gICAgLyoqXG4gICAgICogVHJhbnNmb3JtcyB0aGUgaW5wdXQgdmFsdWUgYnkgb2JmdXNjYXRpbmcgaXQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgcmVjaXBlIG9yIHN5bWJvbC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gYmUgb2JmdXNjYXRlZCBzaG91bGQgYmUgYSBzdHJpbmcuXG4gICAgICogQHBhcmFtIHJlY2lwZSBUaGUgbmFtZSBvZiB0aGUgcmVjaXBlIHRvIHVzZSBmb3Igb2JmdXNjYXRpb24gb3IgYSBzaW5nbGUgY2hhcmFjdGVyIHN5bWJvbCBmb3IgY3VzdG9tIG9iZnVzY2F0aW9uLlxuICAgICAqIEByZXR1cm5zIFRoZSBvYmZ1c2NhdGVkIHN0cmluZy5cbiAgICAgKiBAdGhyb3dzIFdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHNwZWNpZmllZCByZWNpcGUgaXMgbm90IGZvdW5kLlxuICAgICAqL1xuICAgIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgcmVjaXBlID0gJycpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlY2lwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uLmRlZmF1bHQodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb2JmdXNjYXRlID0gdGhpcy5vcHRpb24ucmVjaXBlc1tyZWNpcGVdO1xuXG4gICAgICAgIGlmIChvYmZ1c2NhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmZ1c2NhdGUodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlY2lwZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9wdGlvbi5kZWZhdWx0KHZhbHVlLCByZWNpcGVbMF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXZhaWxhYmxlUmVjaXBlcyA9IE9iamVjdC5rZXlzKHRoaXMub3B0aW9uLnJlY2lwZXMpLnNvcnQoKTtcblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgT2JmdXNjYXRlIHJlY2lwZSBcIiR7cmVjaXBlfVwiIG5vdCBmb3VuZC4gQXZhaWxhYmxlIHJlY2lwZXM6IFske2F2YWlsYWJsZVJlY2lwZXN9XWAsXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './index';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWktY2RrLXBpcGVzLW9iZnVzY2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9waXBlcy9vYmZ1c2NhdGUvdGFpZ2EtdWktY2RrLXBpcGVzLW9iZnVzY2F0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
@@ -15,5 +15,6 @@ export * from './is-inside-iframe';
|
|
15
15
|
export * from './is-node-in';
|
16
16
|
export * from './point-to-client-rect';
|
17
17
|
export * from './retarget-boundary-crossing';
|
18
|
+
export * from './value';
|
18
19
|
export * from './value-binding';
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZG9tL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udGFpbnMtb3ItYWZ0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9lbGVtZW50LWNoZWNrcyc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50LWNoZWNrcyc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1hY3R1YWwtdGFyZ2V0JztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWNsaXBib2FyZC1kYXRhLXRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZG9jdW1lbnQtb3Itc2hhZG93LXJvb3QnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZWxlbWVudC1vYnNjdXJlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZWxlbWVudC1vZmZzZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZWxlbWVudC1wb2ludCc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1zZWxlY3RlZC10ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vaW5qZWN0LWVsZW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1jdXJyZW50LXRhcmdldCc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWVsZW1lbnQtZWRpdGFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1pbnNpZGUtaWZyYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vaXMtbm9kZS1pbic7XG5leHBvcnQgKiBmcm9tICcuL3BvaW50LXRvLWNsaWVudC1yZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vcmV0YXJnZXQtYm91bmRhcnktY3Jvc3NpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi92YWx1ZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZhbHVlLWJpbmRpbmcnO1xuIl19
|
@@ -6,6 +6,7 @@ import { tuiInjectElement } from './inject-element';
|
|
6
6
|
* `TuiTextfieldDirective` has host binding which depends on native input's value.
|
7
7
|
* Host bindings of the host directives are re-calculated BEFORE component's ones –
|
8
8
|
* native input's value should be updated SYNCHRONOUSLY before next change detection iteration.
|
9
|
+
* @deprecated
|
9
10
|
*/
|
10
11
|
export function tuiValueBinding(value = signal(tuiInjectElement().value || '')) {
|
11
12
|
const el = tuiInjectElement();
|
@@ -25,4 +26,4 @@ export function tuiValueBinding(value = signal(tuiInjectElement().value || ''))
|
|
25
26
|
});
|
26
27
|
return value;
|
27
28
|
}
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtYmluZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay91dGlscy9kb20vdmFsdWUtYmluZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUtsRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDM0IsUUFBd0IsTUFBTSxDQUFDLGdCQUFnQixFQUFvQixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFFaEYsTUFBTSxFQUFFLEdBQUcsZ0JBQWdCLEVBQW9CLENBQUM7SUFFaEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNSLElBQUksRUFBRSxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUN0QixPQUFPO1NBQ1Y7UUFFRCxNQUFNLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQyxHQUFHLEVBQUUsQ0FBQztRQUUxQyxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDO1FBRW5CLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN0Qjs7O2VBR0c7WUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3REO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1NpZ25hbCwgV3JpdGFibGVTaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtlZmZlY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudH0gZnJvbSAnLi9pbmplY3QtZWxlbWVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlWYWx1ZUJpbmRpbmcodmFsdWU/OiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+KTogV3JpdGFibGVTaWduYWw8c3RyaW5nPjtcbmV4cG9ydCBmdW5jdGlvbiB0dWlWYWx1ZUJpbmRpbmcodmFsdWU/OiBTaWduYWw8c3RyaW5nPik6IFNpZ25hbDxzdHJpbmc+O1xuXG4vKipcbiAqIEhvc3QgYmluZGluZyBgaG9zdDogeydbdmFsdWVdJzogJ3lvdXJTaWduYWwoKSd9YCBpcyBub3QgYW4gb3B0aW9uIGZvciBvdXIgdGV4dGZpZWxkcyDigJNcbiAqIHRoZXkgdXNlIHtAbGluayBUdWlUZXh0ZmllbGREaXJlY3RpdmV9IGFzIGEgaG9zdCBkaXJlY3RpdmUuXG4gKiBgVHVpVGV4dGZpZWxkRGlyZWN0aXZlYCBoYXMgaG9zdCBiaW5kaW5nIHdoaWNoIGRlcGVuZHMgb24gbmF0aXZlIGlucHV0J3MgdmFsdWUuXG4gKiBIb3N0IGJpbmRpbmdzIG9mIHRoZSBob3N0IGRpcmVjdGl2ZXMgYXJlIHJlLWNhbGN1bGF0ZWQgQkVGT1JFIGNvbXBvbmVudCdzIG9uZXMg4oCTXG4gKiBuYXRpdmUgaW5wdXQncyB2YWx1ZSBzaG91bGQgYmUgdXBkYXRlZCBTWU5DSFJPTk9VU0xZIGJlZm9yZSBuZXh0IGNoYW5nZSBkZXRlY3Rpb24gaXRlcmF0aW9uLlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHR1aVZhbHVlQmluZGluZyhcbiAgICB2YWx1ZTogU2lnbmFsPHN0cmluZz4gPSBzaWduYWwodHVpSW5qZWN0RWxlbWVudDxIVE1MSW5wdXRFbGVtZW50PigpLnZhbHVlIHx8ICcnKSxcbik6IFNpZ25hbDxzdHJpbmc+IHtcbiAgICBjb25zdCBlbCA9IHR1aUluamVjdEVsZW1lbnQ8SFRNTElucHV0RWxlbWVudD4oKTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChlbC52YWx1ZSA9PT0gdmFsdWUoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3NlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmR9ID0gZWw7XG5cbiAgICAgICAgZWwudmFsdWUgPSB2YWx1ZSgpO1xuXG4gICAgICAgIGlmIChlbC5tYXRjaGVzKCc6Zm9jdXMnKSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBZnRlciBwcm9ncmFtbWF0aWMgdXBkYXRlcyBvZiBpbnB1dCdzIHZhbHVlLCBjYXJldCBpcyBhdXRvbWF0aWNhbGx5IHBsYWNlZCBhdCB0aGUgZW5kIOKAk1xuICAgICAgICAgICAgICogcmV2ZXJ0IHRvIHRoZSBwcmV2aW91cyBwb3NpdGlvblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBlbC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xufVxuIl19
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import { coerceElement } from '@angular/cdk/coercion';
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
3
|
+
import { DestroyRef, effect, inject, INJECTOR, isSignal, PLATFORM_ID, signal, } from '@angular/core';
|
4
|
+
import { WA_WINDOW } from '@ng-web-apis/common';
|
5
|
+
import { TUI_ALLOW_SIGNAL_WRITES } from '@taiga-ui/cdk/constants';
|
6
|
+
export function tuiValue(input, injector = inject(INJECTOR)) {
|
7
|
+
const win = injector.get(WA_WINDOW);
|
8
|
+
if (!win.tuiInputPatched && isPlatformBrowser(injector.get(PLATFORM_ID))) {
|
9
|
+
win.tuiInputPatched = true;
|
10
|
+
patch(win.HTMLInputElement.prototype);
|
11
|
+
patch(win.HTMLTextAreaElement.prototype);
|
12
|
+
patch(win.HTMLSelectElement.prototype);
|
13
|
+
}
|
14
|
+
let element = isSignal(input) ? undefined : coerceElement(input);
|
15
|
+
let cleanup = () => { };
|
16
|
+
const options = { injector, ...TUI_ALLOW_SIGNAL_WRITES };
|
17
|
+
const value = signal(element?.value || '');
|
18
|
+
const process = (el) => {
|
19
|
+
const update = () => value.set(el.value);
|
20
|
+
el.addEventListener('input', update);
|
21
|
+
el.addEventListener('tui-input', update);
|
22
|
+
return () => {
|
23
|
+
el.removeEventListener('input', update);
|
24
|
+
el.removeEventListener('tui-input', update);
|
25
|
+
};
|
26
|
+
};
|
27
|
+
injector.get(DestroyRef).onDestroy(() => cleanup());
|
28
|
+
if (isSignal(input)) {
|
29
|
+
effect(() => {
|
30
|
+
element = coerceElement(input());
|
31
|
+
cleanup();
|
32
|
+
if (element) {
|
33
|
+
value.set(element.value);
|
34
|
+
cleanup = process(element);
|
35
|
+
}
|
36
|
+
}, options);
|
37
|
+
}
|
38
|
+
else if (element) {
|
39
|
+
cleanup = process(element);
|
40
|
+
}
|
41
|
+
effect(() => {
|
42
|
+
const v = value();
|
43
|
+
if (element?.matches(':focus') && 'selectionStart' in element) {
|
44
|
+
const { selectionStart, selectionEnd } = element;
|
45
|
+
/**
|
46
|
+
* After programmatic updates of input's value, caret is automatically placed at the end –
|
47
|
+
* revert to the previous position
|
48
|
+
*/
|
49
|
+
element.value = v;
|
50
|
+
element.setSelectionRange(selectionStart, selectionEnd);
|
51
|
+
}
|
52
|
+
else if (element) {
|
53
|
+
element.value = v;
|
54
|
+
}
|
55
|
+
}, options);
|
56
|
+
return value;
|
57
|
+
}
|
58
|
+
function patch(prototype) {
|
59
|
+
const { set } = Object.getOwnPropertyDescriptor(prototype, 'value');
|
60
|
+
Object.defineProperty(prototype, 'value', {
|
61
|
+
set(detail) {
|
62
|
+
const value = this.value;
|
63
|
+
const event = new CustomEvent('tui-input', { detail, bubbles: true });
|
64
|
+
set.call(this, detail);
|
65
|
+
if (value !== detail) {
|
66
|
+
this.dispatchEvent(event);
|
67
|
+
}
|
68
|
+
},
|
69
|
+
});
|
70
|
+
}
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZG9tL3ZhbHVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRCxPQUFPLEVBQ0gsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLFFBQVEsRUFDUixXQUFXLEVBQ1gsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUloRSxNQUFNLFVBQVUsUUFBUSxDQUNwQixLQUllLEVBQ2YsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFFM0IsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBTSxTQUFTLENBQUMsQ0FBQztJQUV6QyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUU7UUFDdEUsR0FBRyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFFM0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLEtBQUssQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDMUM7SUFFRCxJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxD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QUFFO2dCQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzdCO1FBQ0wsQ0FBQztLQUNKLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NvZXJjZUVsZW1lbnR9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHR5cGUge0VsZW1lbnRSZWYsIFNpZ25hbCwgV3JpdGFibGVTaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBEZXN0cm95UmVmLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgSU5KRUNUT1IsXG4gICAgaXNTaWduYWwsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V0FfV0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VFVJX0FMTE9XX1NJR05BTF9XUklURVN9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcblxudHlwZSBXaXRoVmFsdWUgPSBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50O1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpVmFsdWUoXG4gICAgaW5wdXQ6XG4gICAgICAgIHwgRWxlbWVudFJlZjxXaXRoVmFsdWU+XG4gICAgICAgIHwgU2lnbmFsPEVsZW1lbnRSZWY8V2l0aFZhbHVlPiB8IHVuZGVmaW5lZD5cbiAgICAgICAgfCBTaWduYWw8V2l0aFZhbHVlIHwgdW5kZWZpbmVkPlxuICAgICAgICB8IFdpdGhWYWx1ZSxcbiAgICBpbmplY3RvciA9IGluamVjdChJTkpFQ1RPUiksXG4pOiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+IHtcbiAgICBjb25zdCB3aW4gPSBpbmplY3Rvci5nZXQ8YW55PihXQV9XSU5ET1cpO1xuXG4gICAgaWYgKCF3aW4udHVpSW5wdXRQYXRjaGVkICYmIGlzUGxhdGZvcm1Ccm93c2VyKGluamVjdG9yLmdldChQTEFURk9STV9JRCkpKSB7XG4gICAgICAgIHdpbi50dWlJbnB1dFBhdGNoZWQgPSB0cnVlO1xuXG4gICAgICAgIHBhdGNoKHdpbi5IVE1MSW5wdXRFbGVtZW50LnByb3RvdHlwZSk7XG4gICAgICAgIHBhdGNoKHdpbi5IVE1MVGV4dEFyZWFFbGVtZW50LnByb3RvdHlwZSk7XG4gICAgICAgIHBhdGNoKHdpbi5IVE1MU2VsZWN0RWxlbWVudC5wcm90b3R5cGUpO1xuICAgIH1cblxuICAgIGxldCBlbGVtZW50ID0gaXNTaWduYWwoaW5wdXQpID8gdW5kZWZpbmVkIDogY29lcmNlRWxlbWVudChpbnB1dCk7XG4gICAgbGV0IGNsZWFudXAgPSAoKTogdm9pZCA9PiB7fTtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7aW5qZWN0b3IsIC4uLlRVSV9BTExPV19TSUdOQUxfV1JJVEVTfTtcbiAgICBjb25zdCB2YWx1ZSA9IHNpZ25hbChlbGVtZW50Py52YWx1ZSB8fCAnJyk7XG4gICAgY29uc3QgcHJvY2VzcyA9IChlbDogV2l0aFZhbHVlKTogKCgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlID0gKCk6IHZvaWQgPT4gdmFsdWUuc2V0KGVsLnZhbHVlKTtcblxuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIHVwZGF0ZSk7XG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3R1aS1pbnB1dCcsIHVwZGF0ZSk7XG5cbiAgICAgICAgcmV0dXJuICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2lucHV0JywgdXBkYXRlKTtcbiAgICAgICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3R1aS1pbnB1dCcsIHVwZGF0ZSk7XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGluamVjdG9yLmdldChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4gY2xlYW51cCgpKTtcblxuICAgIGlmIChpc1NpZ25hbChpbnB1dCkpIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQgPSBjb2VyY2VFbGVtZW50KGlucHV0KCkpO1xuICAgICAgICAgICAgY2xlYW51cCgpO1xuXG4gICAgICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHZhbHVlLnNldChlbGVtZW50LnZhbHVlKTtcbiAgICAgICAgICAgICAgICBjbGVhbnVwID0gcHJvY2VzcyhlbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIGlmIChlbGVtZW50KSB7XG4gICAgICAgIGNsZWFudXAgPSBwcm9jZXNzKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHYgPSB2YWx1ZSgpO1xuXG4gICAgICAgIGlmIChlbGVtZW50Py5tYXRjaGVzKCc6Zm9jdXMnKSAmJiAnc2VsZWN0aW9uU3RhcnQnIGluIGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHtzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kfSA9IGVsZW1lbnQ7XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQWZ0ZXIgcHJvZ3JhbW1hdGljIHVwZGF0ZXMgb2YgaW5wdXQncyB2YWx1ZSwgY2FyZXQgaXMgYXV0b21hdGljYWxseSBwbGFjZWQgYXQgdGhlIGVuZCDigJNcbiAgICAgICAgICAgICAqIHJldmVydCB0byB0aGUgcHJldmlvdXMgcG9zaXRpb25cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHY7XG4gICAgICAgICAgICBlbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpO1xuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB2O1xuICAgICAgICB9XG4gICAgfSwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHBhdGNoKHByb3RvdHlwZTogV2l0aFZhbHVlKTogdm9pZCB7XG4gICAgY29uc3Qge3NldH0gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHByb3RvdHlwZSwgJ3ZhbHVlJykhO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgJ3ZhbHVlJywge1xuICAgICAgICBzZXQodGhpczogV2l0aFZhbHVlLCBkZXRhaWw6IHN0cmluZykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ3R1aS1pbnB1dCcsIHtkZXRhaWwsIGJ1YmJsZXM6IHRydWV9KTtcblxuICAgICAgICAgICAgc2V0IS5jYWxsKHRoaXMsIGRldGFpbCk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gZGV0YWlsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcbn1cbiJdfQ==
|
@@ -21,10 +21,11 @@ export * from './is-string';
|
|
21
21
|
export * from './is-valid-url';
|
22
22
|
export * from './mark-control-as-touched-and-validate';
|
23
23
|
export * from './nullable-same';
|
24
|
+
export * from './obfuscate';
|
24
25
|
export * from './provide';
|
25
26
|
export * from './provide-options';
|
26
27
|
export * from './pure';
|
27
28
|
export * from './px';
|
28
29
|
export * from './uniq-by';
|
29
30
|
export * from './with-styles';
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLE1BQU0sQ0FBQztBQUNyQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXJyYXktcmVtb3ZlJztcbmV4cG9ydCAqIGZyb20gJy4vYXJyYXktc2hhbGxvdy1lcXVhbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcnJheS10b2dnbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFuZ2UtZGF0ZS1zZXBhcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9jb3VudC1maWxsZWQtY29udHJvbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtdG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LXNvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmUtYmluZGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZS1saXN0ZW5lcic7XG5leHBvcnQgKiBmcm9tICcuL2Rpc3RhbmNlLWJldHdlZW4tdG91Y2hlcyc7XG5leHBvcnQgKiBmcm9tICcuL2Vhc2UtaW4tb3V0LXF1YWQnO1xuZXhwb3J0ICogZnJvbSAnLi9mbGF0LWxlbmd0aCc7XG5leHBvcnQgKiBmcm9tICcuL2ZvbnQtc2l6ZS13YXRjaGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LW9yaWdpbmFsLWFycmF5LWZyb20tcXVlcnktbGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWNvbnRyb2wtZW1wdHknO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1mYWxzeSc7XG5leHBvcnQgKiBmcm9tICcuL2lzLW51bWJlcic7XG5leHBvcnQgKiBmcm9tICcuL2lzLW9iamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2lzLXByZXNlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1zdHJpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy12YWxpZC11cmwnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXJrLWNvbnRyb2wtYXMtdG91Y2hlZC1hbmQtdmFsaWRhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9udWxsYWJsZS1zYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vb2JmdXNjYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZSc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGUtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3B1cmUnO1xuZXhwb3J0ICogZnJvbSAnLi9weCc7XG5leHBvcnQgKiBmcm9tICcuL3VuaXEtYnknO1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLXN0eWxlcyc7XG4iXX0=
|
@@ -0,0 +1,53 @@
|
|
1
|
+
/**
|
2
|
+
* Obfuscates a string by replacing certain characters with a symbol.
|
3
|
+
*
|
4
|
+
* @param value the input string to obfuscate
|
5
|
+
* @param symbol the symbol for obfuscation
|
6
|
+
* @return the obfuscated string
|
7
|
+
*
|
8
|
+
* The function determines which characters to obfuscate using a regular expression and the string's length:
|
9
|
+
* - 8 or more: show first 2 and last 2 characters
|
10
|
+
* - 4 to 7: show first and last character
|
11
|
+
* - less than 4: obfuscate all characters
|
12
|
+
* - obfuscates only alphanumeric characters
|
13
|
+
*/
|
14
|
+
export function tuiObfuscate(value, symbol) {
|
15
|
+
if (!value) {
|
16
|
+
return value;
|
17
|
+
}
|
18
|
+
const match = /[\p{L}\p{N}]/gu;
|
19
|
+
let visible = 0;
|
20
|
+
let obfuscateIndexes = getObfuscateIndexes(value, match);
|
21
|
+
if (obfuscateIndexes.length >= 8) {
|
22
|
+
visible = 2;
|
23
|
+
}
|
24
|
+
else if (obfuscateIndexes.length >= 4) {
|
25
|
+
visible = 1;
|
26
|
+
}
|
27
|
+
obfuscateIndexes = obfuscateIndexes.slice(visible, obfuscateIndexes.length);
|
28
|
+
const lastIndex = Number(obfuscateIndexes.length) - visible;
|
29
|
+
obfuscateIndexes = obfuscateIndexes.slice(0, lastIndex < 0 ? 0 : lastIndex);
|
30
|
+
const result = value.split('');
|
31
|
+
obfuscateIndexes.forEach((index) => {
|
32
|
+
result[index] = symbol;
|
33
|
+
});
|
34
|
+
return result.join('');
|
35
|
+
}
|
36
|
+
function getObfuscateIndexes(value, match) {
|
37
|
+
if (!match) {
|
38
|
+
return Array.from({ length: value.length }).map((_, index) => index);
|
39
|
+
}
|
40
|
+
const obfuscateIndexes = [];
|
41
|
+
let matchResult;
|
42
|
+
let count = 0;
|
43
|
+
while ((matchResult = match.exec(value)) !== null && count < value.length) {
|
44
|
+
const start = matchResult.index;
|
45
|
+
const end = match.lastIndex - 1;
|
46
|
+
for (let i = start; i <= end; i++) {
|
47
|
+
obfuscateIndexes.push(i);
|
48
|
+
}
|
49
|
+
count++;
|
50
|
+
}
|
51
|
+
return obfuscateIndexes;
|
52
|
+
}
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JmdXNjYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMvb2JmdXNjYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBYSxFQUFFLE1BQWM7SUFDdEQsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNSLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7SUFFL0IsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLElBQUksZ0JBQWdCLEdBQWEsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRW5FLElBQUksZ0JBQWdCLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtRQUM5QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2Y7U0FBTSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7UUFDckMsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNmO0lBRUQsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU1RSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBRTVELGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU1RSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRS9CLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQy9CLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsS0FBYSxFQUFFLEtBQWM7SUFDdEQsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNSLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN0RTtJQUVELE1BQU0sZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO0lBQ3RDLElBQUksV0FBVyxDQUFDO0lBQ2hCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUVkLE9BQU8sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUN2RSxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWhDLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVCO1FBRUQsS0FBSyxFQUFFLENBQUM7S0FDWDtJQUVELE9BQU8sZ0JBQWdCLENBQUM7QUFDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogT2JmdXNjYXRlcyBhIHN0cmluZyBieSByZXBsYWNpbmcgY2VydGFpbiBjaGFyYWN0ZXJzIHdpdGggYSBzeW1ib2wuXG4gKlxuICogQHBhcmFtIHZhbHVlIHRoZSBpbnB1dCBzdHJpbmcgdG8gb2JmdXNjYXRlXG4gKiBAcGFyYW0gc3ltYm9sIHRoZSBzeW1ib2wgZm9yIG9iZnVzY2F0aW9uXG4gKiBAcmV0dXJuIHRoZSBvYmZ1c2NhdGVkIHN0cmluZ1xuICpcbiAqIFRoZSBmdW5jdGlvbiBkZXRlcm1pbmVzIHdoaWNoIGNoYXJhY3RlcnMgdG8gb2JmdXNjYXRlIHVzaW5nIGEgcmVndWxhciBleHByZXNzaW9uIGFuZCB0aGUgc3RyaW5nJ3MgbGVuZ3RoOlxuICogLSA4IG9yIG1vcmU6IHNob3cgZmlyc3QgMiBhbmQgbGFzdCAyIGNoYXJhY3RlcnNcbiAqIC0gNCB0byA3OiBzaG93IGZpcnN0IGFuZCBsYXN0IGNoYXJhY3RlclxuICogLSBsZXNzIHRoYW4gNDogb2JmdXNjYXRlIGFsbCBjaGFyYWN0ZXJzXG4gKiAtIG9iZnVzY2F0ZXMgb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHVpT2JmdXNjYXRlKHZhbHVlOiBzdHJpbmcsIHN5bWJvbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaCA9IC9bXFxwe0x9XFxwe059XS9ndTtcblxuICAgIGxldCB2aXNpYmxlID0gMDtcbiAgICBsZXQgb2JmdXNjYXRlSW5kZXhlczogbnVtYmVyW10gPSBnZXRPYmZ1c2NhdGVJbmRleGVzKHZhbHVlLCBtYXRjaCk7XG5cbiAgICBpZiAob2JmdXNjYXRlSW5kZXhlcy5sZW5ndGggPj0gOCkge1xuICAgICAgICB2aXNpYmxlID0gMjtcbiAgICB9IGVsc2UgaWYgKG9iZnVzY2F0ZUluZGV4ZXMubGVuZ3RoID49IDQpIHtcbiAgICAgICAgdmlzaWJsZSA9IDE7XG4gICAgfVxuXG4gICAgb2JmdXNjYXRlSW5kZXhlcyA9IG9iZnVzY2F0ZUluZGV4ZXMuc2xpY2UodmlzaWJsZSwgb2JmdXNjYXRlSW5kZXhlcy5sZW5ndGgpO1xuXG4gICAgY29uc3QgbGFzdEluZGV4ID0gTnVtYmVyKG9iZnVzY2F0ZUluZGV4ZXMubGVuZ3RoKSAtIHZpc2libGU7XG5cbiAgICBvYmZ1c2NhdGVJbmRleGVzID0gb2JmdXNjYXRlSW5kZXhlcy5zbGljZSgwLCBsYXN0SW5kZXggPCAwID8gMCA6IGxhc3RJbmRleCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSB2YWx1ZS5zcGxpdCgnJyk7XG5cbiAgICBvYmZ1c2NhdGVJbmRleGVzLmZvckVhY2goKGluZGV4KSA9PiB7XG4gICAgICAgIHJlc3VsdFtpbmRleF0gPSBzeW1ib2w7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJycpO1xufVxuXG5mdW5jdGlvbiBnZXRPYmZ1c2NhdGVJbmRleGVzKHZhbHVlOiBzdHJpbmcsIG1hdGNoPzogUmVnRXhwKTogbnVtYmVyW10ge1xuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oe2xlbmd0aDogdmFsdWUubGVuZ3RofSkubWFwKChfLCBpbmRleCkgPT4gaW5kZXgpO1xuICAgIH1cblxuICAgIGNvbnN0IG9iZnVzY2F0ZUluZGV4ZXM6IG51bWJlcltdID0gW107XG4gICAgbGV0IG1hdGNoUmVzdWx0O1xuICAgIGxldCBjb3VudCA9IDA7XG5cbiAgICB3aGlsZSAoKG1hdGNoUmVzdWx0ID0gbWF0Y2guZXhlYyh2YWx1ZSkpICE9PSBudWxsICYmIGNvdW50IDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gbWF0Y2hSZXN1bHQuaW5kZXg7XG4gICAgICAgIGNvbnN0IGVuZCA9IG1hdGNoLmxhc3RJbmRleCAtIDE7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgICAgICAgICBvYmZ1c2NhdGVJbmRleGVzLnB1c2goaSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb3VudCsrO1xuICAgIH1cblxuICAgIHJldHVybiBvYmZ1c2NhdGVJbmRleGVzO1xufVxuIl19
|