@taiga-ui/core 3.12.1 → 3.14.0

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.
Files changed (53) hide show
  1. package/bundles/taiga-ui-core-components-data-list.umd.js +12 -6
  2. package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
  3. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +63 -28
  4. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  5. package/bundles/taiga-ui-core-components-root.umd.js +1 -1
  6. package/bundles/taiga-ui-core-directives-dropdown.umd.js +5 -0
  7. package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
  8. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +175 -7
  9. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
  10. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js +10 -2
  11. package/bundles/taiga-ui-core-utils-miscellaneous.umd.js.map +1 -1
  12. package/components/data-list/data-list.component.d.ts +2 -2
  13. package/components/primitive-textfield/index.d.ts +1 -0
  14. package/components/primitive-textfield/primitive-textfield-options.d.ts +20 -8
  15. package/components/primitive-textfield/primitive-textfield.component.d.ts +18 -9
  16. package/directives/dropdown/dropdown.directive.d.ts +3 -2
  17. package/directives/textfield-controller/index.d.ts +4 -0
  18. package/directives/textfield-controller/textfield-controller.module.d.ts +4 -1
  19. package/directives/textfield-controller/textfield-filler.directive.d.ts +9 -0
  20. package/directives/textfield-controller/textfield-options.d.ts +11 -0
  21. package/directives/textfield-controller/textfield-postfix.directive.d.ts +9 -0
  22. package/directives/textfield-controller/textfield-prefix.directive.d.ts +9 -0
  23. package/directives/textfield-controller/textfield.controller.d.ts +12 -1
  24. package/esm2015/components/data-list/data-list.component.js +13 -7
  25. package/esm2015/components/data-list/option/option.component.js +1 -1
  26. package/esm2015/components/primitive-textfield/index.js +2 -1
  27. package/esm2015/components/primitive-textfield/primitive-textfield-options.js +17 -13
  28. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +37 -19
  29. package/esm2015/components/root/root.component.js +1 -1
  30. package/esm2015/directives/dropdown/dropdown.directive.js +6 -1
  31. package/esm2015/directives/textfield-controller/index.js +5 -1
  32. package/esm2015/directives/textfield-controller/textfield-controller.module.js +18 -3
  33. package/esm2015/directives/textfield-controller/textfield-controller.provider.js +11 -3
  34. package/esm2015/directives/textfield-controller/textfield-filler.directive.js +35 -0
  35. package/esm2015/directives/textfield-controller/textfield-options.js +11 -0
  36. package/esm2015/directives/textfield-controller/textfield-postfix.directive.js +35 -0
  37. package/esm2015/directives/textfield-controller/textfield-prefix.directive.js +35 -0
  38. package/esm2015/directives/textfield-controller/textfield.controller.js +15 -2
  39. package/esm2015/utils/miscellaneous/size-bigger.js +11 -3
  40. package/fesm2015/taiga-ui-core-components-data-list.js +13 -7
  41. package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
  42. package/fesm2015/taiga-ui-core-components-primitive-textfield.js +54 -31
  43. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  44. package/fesm2015/taiga-ui-core-components-root.js +1 -1
  45. package/fesm2015/taiga-ui-core-directives-dropdown.js +5 -0
  46. package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
  47. package/fesm2015/taiga-ui-core-directives-textfield-controller.js +141 -6
  48. package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  49. package/fesm2015/taiga-ui-core-utils-miscellaneous.js +10 -2
  50. package/fesm2015/taiga-ui-core-utils-miscellaneous.js.map +1 -1
  51. package/package.json +4 -4
  52. package/styles/theme/variables.less +3 -1
  53. package/styles/theme/wrapper/table.less +1 -1
@@ -0,0 +1,11 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /** Default values for primitive textfield options */
3
+ export const TUI_TEXTFIELD_DEFAULT_OPTIONS = {
4
+ iconCleaner: ({ $implicit }) => $implicit === `s` ? `tuiIconClose` : `tuiIconCloseLarge`,
5
+ };
6
+ export const TUI_TEXTFIELD_OPTIONS = new InjectionToken(`[TUI_TEXTFIELD_OPTIONS]: Default parameters for textfield`, { factory: () => TUI_TEXTFIELD_DEFAULT_OPTIONS });
7
+ export const tuiTextfieldOptionsProvider = (options) => ({
8
+ provide: TUI_TEXTFIELD_OPTIONS,
9
+ useValue: Object.assign(Object.assign({}, TUI_TEXTFIELD_DEFAULT_OPTIONS), options),
10
+ });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvdGV4dGZpZWxkLWNvbnRyb2xsZXIvdGV4dGZpZWxkLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFXNUQscURBQXFEO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUF3QjtJQUM5RCxXQUFXLEVBQUUsQ0FBQyxFQUFDLFNBQVMsRUFBOEMsRUFBRSxFQUFFLENBQ3RFLFNBQVMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO0NBQy9ELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDbkQsMkRBQTJELEVBQzNELEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixFQUFDLENBQ2pELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FFbkIsQ0FBQyxPQUFxQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdELE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsUUFBUSxrQ0FBTSw2QkFBNkIsR0FBSyxPQUFPLENBQUM7Q0FDM0QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgVmFsdWVQcm92aWRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUNvbnRleHRXaXRoSW1wbGljaXR9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlUZXh0ZmllbGRPcHRpb25zIHtcbiAgICByZWFkb25seSBpY29uQ2xlYW5lcjpcbiAgICAgICAgfCBQb2x5bW9ycGhldXNDb250ZW50XG4gICAgICAgIHwgUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVMIHwgVHVpU2l6ZVM+Pjtcbn1cblxuLyoqIERlZmF1bHQgdmFsdWVzIGZvciBwcmltaXRpdmUgdGV4dGZpZWxkIG9wdGlvbnMgKi9cbmV4cG9ydCBjb25zdCBUVUlfVEVYVEZJRUxEX0RFRkFVTFRfT1BUSU9OUzogVHVpVGV4dGZpZWxkT3B0aW9ucyA9IHtcbiAgICBpY29uQ2xlYW5lcjogKHskaW1wbGljaXR9OiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVMIHwgVHVpU2l6ZVM+KSA9PlxuICAgICAgICAkaW1wbGljaXQgPT09IGBzYCA/IGB0dWlJY29uQ2xvc2VgIDogYHR1aUljb25DbG9zZUxhcmdlYCxcbn07XG5cbmV4cG9ydCBjb25zdCBUVUlfVEVYVEZJRUxEX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48VHVpVGV4dGZpZWxkT3B0aW9ucz4oXG4gICAgYFtUVUlfVEVYVEZJRUxEX09QVElPTlNdOiBEZWZhdWx0IHBhcmFtZXRlcnMgZm9yIHRleHRmaWVsZGAsXG4gICAge2ZhY3Rvcnk6ICgpID0+IFRVSV9URVhURklFTERfREVGQVVMVF9PUFRJT05TfSxcbik7XG5cbmV4cG9ydCBjb25zdCB0dWlUZXh0ZmllbGRPcHRpb25zUHJvdmlkZXI6IChcbiAgICBvcHRpb25zOiBQYXJ0aWFsPFR1aVRleHRmaWVsZE9wdGlvbnM+LFxuKSA9PiBWYWx1ZVByb3ZpZGVyID0gKG9wdGlvbnM6IFBhcnRpYWw8VHVpVGV4dGZpZWxkT3B0aW9ucz4pID0+ICh7XG4gICAgcHJvdmlkZTogVFVJX1RFWFRGSUVMRF9PUFRJT05TLFxuICAgIHVzZVZhbHVlOiB7Li4uVFVJX1RFWFRGSUVMRF9ERUZBVUxUX09QVElPTlMsIC4uLm9wdGlvbnN9LFxufSk7XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { Directive, forwardRef, InjectionToken, Input } from '@angular/core';
2
+ import { AbstractTuiController } from '@taiga-ui/cdk';
3
+ import * as i0 from "@angular/core";
4
+ export const TUI_TEXTFIELD_POSTFIX = new InjectionToken(`[TUI_TEXTFIELD_POSTFIX]: tuiTextfieldPostfix`, {
5
+ factory: () => new TuiTextfieldPostfixDirective(),
6
+ });
7
+ export class TuiTextfieldPostfixDirective extends AbstractTuiController {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.postfix = ``;
11
+ }
12
+ }
13
+ TuiTextfieldPostfixDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTextfieldPostfixDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
14
+ TuiTextfieldPostfixDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiTextfieldPostfixDirective, selector: "[tuiTextfieldPostfix]", inputs: { postfix: ["tuiTextfieldPostfix", "postfix"] }, providers: [
15
+ {
16
+ provide: TUI_TEXTFIELD_POSTFIX,
17
+ useExisting: forwardRef(() => TuiTextfieldPostfixDirective),
18
+ },
19
+ ], usesInheritance: true, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTextfieldPostfixDirective, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ selector: `[tuiTextfieldPostfix]`,
24
+ providers: [
25
+ {
26
+ provide: TUI_TEXTFIELD_POSTFIX,
27
+ useExisting: forwardRef(() => TuiTextfieldPostfixDirective),
28
+ },
29
+ ],
30
+ }]
31
+ }], propDecorators: { postfix: [{
32
+ type: Input,
33
+ args: [`tuiTextfieldPostfix`]
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLXBvc3RmaXguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL3RleHRmaWVsZC1jb250cm9sbGVyL3RleHRmaWVsZC1wb3N0Zml4LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFcEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ25ELDhDQUE4QyxFQUM5QztJQUNJLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLDRCQUE0QixFQUFFO0NBQ3BELENBQ0osQ0FBQztBQVdGLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxxQkFBcUI7SUFUdkU7O1FBV0ksWUFBTyxHQUFHLEVBQUUsQ0FBQztLQUNoQjs7MEhBSFksNEJBQTRCOzhHQUE1Qiw0QkFBNEIseUdBUDFCO1FBQ1A7WUFDSSxPQUFPLEVBQUUscUJBQXFCO1lBQzlCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7U0FDOUQ7S0FDSjs0RkFFUSw0QkFBNEI7a0JBVHhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDZCQUE2QixDQUFDO3lCQUM5RDtxQkFDSjtpQkFDSjs4QkFHRyxPQUFPO3NCQUROLEtBQUs7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGZvcndhcmRSZWYsIEluamVjdGlvblRva2VuLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0VHVpQ29udHJvbGxlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5cbmV4cG9ydCBjb25zdCBUVUlfVEVYVEZJRUxEX1BPU1RGSVggPSBuZXcgSW5qZWN0aW9uVG9rZW48VHVpVGV4dGZpZWxkUG9zdGZpeERpcmVjdGl2ZT4oXG4gICAgYFtUVUlfVEVYVEZJRUxEX1BPU1RGSVhdOiB0dWlUZXh0ZmllbGRQb3N0Zml4YCxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IG5ldyBUdWlUZXh0ZmllbGRQb3N0Zml4RGlyZWN0aXZlKCksXG4gICAgfSxcbik7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBgW3R1aVRleHRmaWVsZFBvc3RmaXhdYCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX1RFWFRGSUVMRF9QT1NURklYLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpVGV4dGZpZWxkUG9zdGZpeERpcmVjdGl2ZSksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGV4dGZpZWxkUG9zdGZpeERpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbGxlciB7XG4gICAgQElucHV0KGB0dWlUZXh0ZmllbGRQb3N0Zml4YClcbiAgICBwb3N0Zml4ID0gYGA7XG59XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { Directive, forwardRef, InjectionToken, Input } from '@angular/core';
2
+ import { AbstractTuiController } from '@taiga-ui/cdk';
3
+ import * as i0 from "@angular/core";
4
+ export const TUI_TEXTFIELD_PREFIX = new InjectionToken(`[TUI_TEXTFIELD_PREFIX]: tuiTextfieldPrefix`, {
5
+ factory: () => new TuiTextfieldPrefixDirective(),
6
+ });
7
+ export class TuiTextfieldPrefixDirective extends AbstractTuiController {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.prefix = ``;
11
+ }
12
+ }
13
+ TuiTextfieldPrefixDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTextfieldPrefixDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
14
+ TuiTextfieldPrefixDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiTextfieldPrefixDirective, selector: "[tuiTextfieldPrefix]", inputs: { prefix: ["tuiTextfieldPrefix", "prefix"] }, providers: [
15
+ {
16
+ provide: TUI_TEXTFIELD_PREFIX,
17
+ useExisting: forwardRef(() => TuiTextfieldPrefixDirective),
18
+ },
19
+ ], usesInheritance: true, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTextfieldPrefixDirective, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ selector: `[tuiTextfieldPrefix]`,
24
+ providers: [
25
+ {
26
+ provide: TUI_TEXTFIELD_PREFIX,
27
+ useExisting: forwardRef(() => TuiTextfieldPrefixDirective),
28
+ },
29
+ ],
30
+ }]
31
+ }], propDecorators: { prefix: [{
32
+ type: Input,
33
+ args: [`tuiTextfieldPrefix`]
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLXByZWZpeC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvdGV4dGZpZWxkLWNvbnRyb2xsZXIvdGV4dGZpZWxkLXByZWZpeC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBRXBELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUNsRCw0Q0FBNEMsRUFDNUM7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSwyQkFBMkIsRUFBRTtDQUNuRCxDQUNKLENBQUM7QUFXRixNQUFNLE9BQU8sMkJBQTRCLFNBQVEscUJBQXFCO0lBVHRFOztRQVdJLFdBQU0sR0FBRyxFQUFFLENBQUM7S0FDZjs7eUhBSFksMkJBQTJCOzZHQUEzQiwyQkFBMkIscUdBUHpCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsb0JBQW9CO1lBQzdCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7U0FDN0Q7S0FDSjs0RkFFUSwyQkFBMkI7a0JBVHZDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxvQkFBb0I7NEJBQzdCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDO3lCQUM3RDtxQkFDSjtpQkFDSjs4QkFHRyxNQUFNO3NCQURMLEtBQUs7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGZvcndhcmRSZWYsIEluamVjdGlvblRva2VuLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0VHVpQ29udHJvbGxlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5cbmV4cG9ydCBjb25zdCBUVUlfVEVYVEZJRUxEX1BSRUZJWCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUdWlUZXh0ZmllbGRQcmVmaXhEaXJlY3RpdmU+KFxuICAgIGBbVFVJX1RFWFRGSUVMRF9QUkVGSVhdOiB0dWlUZXh0ZmllbGRQcmVmaXhgLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gbmV3IFR1aVRleHRmaWVsZFByZWZpeERpcmVjdGl2ZSgpLFxuICAgIH0sXG4pO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogYFt0dWlUZXh0ZmllbGRQcmVmaXhdYCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX1RFWFRGSUVMRF9QUkVGSVgsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlUZXh0ZmllbGRQcmVmaXhEaXJlY3RpdmUpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVRleHRmaWVsZFByZWZpeERpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbGxlciB7XG4gICAgQElucHV0KGB0dWlUZXh0ZmllbGRQcmVmaXhgKVxuICAgIHByZWZpeCA9IGBgO1xufVxuIl19
@@ -1,12 +1,16 @@
1
1
  export class TuiTextfieldController {
2
- constructor(change$, cleanerDirective, customContentDirective, iconDirective, iconLeftDirective, labelOutsideDirective, sizeDirective) {
2
+ constructor(change$, options, cleanerDirective, customContentDirective, iconDirective, iconLeftDirective, labelOutsideDirective, sizeDirective, prefixDirective, postfixDirective, fillerDirective) {
3
3
  this.change$ = change$;
4
+ this.options = options;
4
5
  this.cleanerDirective = cleanerDirective;
5
6
  this.customContentDirective = customContentDirective;
6
7
  this.iconDirective = iconDirective;
7
8
  this.iconLeftDirective = iconLeftDirective;
8
9
  this.labelOutsideDirective = labelOutsideDirective;
9
10
  this.sizeDirective = sizeDirective;
11
+ this.prefixDirective = prefixDirective;
12
+ this.postfixDirective = postfixDirective;
13
+ this.fillerDirective = fillerDirective;
10
14
  }
11
15
  get cleaner() {
12
16
  return this.cleanerDirective.cleaner;
@@ -26,5 +30,14 @@ export class TuiTextfieldController {
26
30
  get size() {
27
31
  return this.sizeDirective.size;
28
32
  }
33
+ get prefix() {
34
+ return this.prefixDirective.prefix;
35
+ }
36
+ get postfix() {
37
+ return this.postfixDirective.postfix;
38
+ }
39
+ get filler() {
40
+ return this.fillerDirective.filler;
41
+ }
29
42
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLmNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvdGV4dGZpZWxkLWNvbnRyb2xsZXIvdGV4dGZpZWxkLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsTUFBTSxPQUFPLHNCQUFzQjtJQUMvQixZQUNhLE9BQXlCLEVBQ2pCLGdCQUE4QyxFQUM5QyxzQkFBMEQsRUFDMUQsYUFBd0MsRUFDeEMsaUJBQWdELEVBQ2hELHFCQUF3RCxFQUN4RCxhQUF3QztRQU5oRCxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUNqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQThCO1FBQzlDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBb0M7UUFDMUQsa0JBQWEsR0FBYixhQUFhLENBQTJCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBK0I7UUFDaEQsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFtQztRQUN4RCxrQkFBYSxHQUFiLGFBQWEsQ0FBMkI7SUFDMUQsQ0FBQztJQUVKLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUdWlDb250ZXh0V2l0aEltcGxpY2l0fSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpU2l6ZUwsIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aVRleHRmaWVsZENsZWFuZXJEaXJlY3RpdmV9IGZyb20gJy4vdGV4dGZpZWxkLWNsZWFuZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7VHVpVGV4dGZpZWxkQ3VzdG9tQ29udGVudERpcmVjdGl2ZX0gZnJvbSAnLi90ZXh0ZmllbGQtY3VzdG9tLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7VHVpVGV4dGZpZWxkSWNvbkRpcmVjdGl2ZX0gZnJvbSAnLi90ZXh0ZmllbGQtaWNvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUdWlUZXh0ZmllbGRJY29uTGVmdERpcmVjdGl2ZX0gZnJvbSAnLi90ZXh0ZmllbGQtaWNvbi1sZWZ0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aVRleHRmaWVsZExhYmVsT3V0c2lkZURpcmVjdGl2ZX0gZnJvbSAnLi90ZXh0ZmllbGQtbGFiZWwtb3V0c2lkZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlfSBmcm9tICcuL3RleHRmaWVsZC1zaXplLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjbGFzcyBUdWlUZXh0ZmllbGRDb250cm9sbGVyIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcmVhZG9ubHkgY2hhbmdlJDogT2JzZXJ2YWJsZTx2b2lkPixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjbGVhbmVyRGlyZWN0aXZlOiBUdWlUZXh0ZmllbGRDbGVhbmVyRGlyZWN0aXZlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUNvbnRlbnREaXJlY3RpdmU6IFR1aVRleHRmaWVsZEN1c3RvbUNvbnRlbnREaXJlY3RpdmUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaWNvbkRpcmVjdGl2ZTogVHVpVGV4dGZpZWxkSWNvbkRpcmVjdGl2ZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpY29uTGVmdERpcmVjdGl2ZTogVHVpVGV4dGZpZWxkSWNvbkxlZnREaXJlY3RpdmUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbGFiZWxPdXRzaWRlRGlyZWN0aXZlOiBUdWlUZXh0ZmllbGRMYWJlbE91dHNpZGVEaXJlY3RpdmUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2l6ZURpcmVjdGl2ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICApIHt9XG5cbiAgICBnZXQgY2xlYW5lcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW5lckRpcmVjdGl2ZS5jbGVhbmVyO1xuICAgIH1cblxuICAgIGdldCBjdXN0b21Db250ZW50KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21Db250ZW50RGlyZWN0aXZlLmN1c3RvbUNvbnRlbnQgfHwgYGA7XG4gICAgfVxuXG4gICAgZ2V0IGljb24oKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVMIHwgVHVpU2l6ZVM+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25EaXJlY3RpdmUuaWNvbjtcbiAgICB9XG5cbiAgICBnZXQgaWNvbkxlZnQoKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVMIHwgVHVpU2l6ZVM+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25MZWZ0RGlyZWN0aXZlLmljb25MZWZ0O1xuICAgIH1cblxuICAgIGdldCBsYWJlbE91dHNpZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhYmVsT3V0c2lkZURpcmVjdGl2ZS5sYWJlbE91dHNpZGU7XG4gICAgfVxuXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpemVEaXJlY3RpdmUuc2l6ZTtcbiAgICB9XG59XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLmNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvdGV4dGZpZWxkLWNvbnRyb2xsZXIvdGV4dGZpZWxkLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JBLE1BQU0sT0FBTyxzQkFBc0I7SUFDL0IsWUFDYSxPQUF5QixFQUN6QixPQUE0QixFQUNwQixnQkFBOEMsRUFDOUMsc0JBQTBELEVBQzFELGFBQXdDLEVBQ3hDLGlCQUFnRCxFQUNoRCxxQkFBd0QsRUFDeEQsYUFBd0MsRUFDeEMsZUFBNEMsRUFDNUMsZ0JBQThDLEVBQzlDLGVBQTRDO1FBVnBELFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQ3BCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBOEI7UUFDOUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFvQztRQUMxRCxrQkFBYSxHQUFiLGFBQWEsQ0FBMkI7UUFDeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUErQjtRQUNoRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQW1DO1FBQ3hELGtCQUFhLEdBQWIsYUFBYSxDQUEyQjtRQUN4QyxvQkFBZSxHQUFmLGVBQWUsQ0FBNkI7UUFDNUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE4QjtRQUM5QyxvQkFBZSxHQUFmLGVBQWUsQ0FBNkI7SUFDOUQsQ0FBQztJQUVKLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztJQUN2QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R1aUNvbnRleHRXaXRoSW1wbGljaXR9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VHVpVGV4dGZpZWxkQ2xlYW5lckRpcmVjdGl2ZX0gZnJvbSAnLi90ZXh0ZmllbGQtY2xlYW5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUdWlUZXh0ZmllbGRDdXN0b21Db250ZW50RGlyZWN0aXZlfSBmcm9tICcuL3RleHRmaWVsZC1jdXN0b20tY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUdWlUZXh0ZmllbGRGaWxsZXJEaXJlY3RpdmV9IGZyb20gJy4vdGV4dGZpZWxkLWZpbGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUdWlUZXh0ZmllbGRJY29uRGlyZWN0aXZlfSBmcm9tICcuL3RleHRmaWVsZC1pY29uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aVRleHRmaWVsZEljb25MZWZ0RGlyZWN0aXZlfSBmcm9tICcuL3RleHRmaWVsZC1pY29uLWxlZnQuZGlyZWN0aXZlJztcbmltcG9ydCB7VHVpVGV4dGZpZWxkTGFiZWxPdXRzaWRlRGlyZWN0aXZlfSBmcm9tICcuL3RleHRmaWVsZC1sYWJlbC1vdXRzaWRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aVRleHRmaWVsZE9wdGlvbnN9IGZyb20gJy4vdGV4dGZpZWxkLW9wdGlvbnMnO1xuaW1wb3J0IHtUdWlUZXh0ZmllbGRQb3N0Zml4RGlyZWN0aXZlfSBmcm9tICcuL3RleHRmaWVsZC1wb3N0Zml4LmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aVRleHRmaWVsZFByZWZpeERpcmVjdGl2ZX0gZnJvbSAnLi90ZXh0ZmllbGQtcHJlZml4LmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aVRleHRmaWVsZFNpemVEaXJlY3RpdmV9IGZyb20gJy4vdGV4dGZpZWxkLXNpemUuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNsYXNzIFR1aVRleHRmaWVsZENvbnRyb2xsZXIge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSBjaGFuZ2UkOiBPYnNlcnZhYmxlPHZvaWQ+LFxuICAgICAgICByZWFkb25seSBvcHRpb25zOiBUdWlUZXh0ZmllbGRPcHRpb25zLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNsZWFuZXJEaXJlY3RpdmU6IFR1aVRleHRmaWVsZENsZWFuZXJEaXJlY3RpdmUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tQ29udGVudERpcmVjdGl2ZTogVHVpVGV4dGZpZWxkQ3VzdG9tQ29udGVudERpcmVjdGl2ZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpY29uRGlyZWN0aXZlOiBUdWlUZXh0ZmllbGRJY29uRGlyZWN0aXZlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGljb25MZWZ0RGlyZWN0aXZlOiBUdWlUZXh0ZmllbGRJY29uTGVmdERpcmVjdGl2ZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsYWJlbE91dHNpZGVEaXJlY3RpdmU6IFR1aVRleHRmaWVsZExhYmVsT3V0c2lkZURpcmVjdGl2ZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzaXplRGlyZWN0aXZlOiBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHByZWZpeERpcmVjdGl2ZTogVHVpVGV4dGZpZWxkUHJlZml4RGlyZWN0aXZlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBvc3RmaXhEaXJlY3RpdmU6IFR1aVRleHRmaWVsZFBvc3RmaXhEaXJlY3RpdmUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsbGVyRGlyZWN0aXZlOiBUdWlUZXh0ZmllbGRGaWxsZXJEaXJlY3RpdmUsXG4gICAgKSB7fVxuXG4gICAgZ2V0IGNsZWFuZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsZWFuZXJEaXJlY3RpdmUuY2xlYW5lcjtcbiAgICB9XG5cbiAgICBnZXQgY3VzdG9tQ29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tQ29udGVudERpcmVjdGl2ZS5jdXN0b21Db250ZW50IHx8IGBgO1xuICAgIH1cblxuICAgIGdldCBpY29uKCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplTCB8IFR1aVNpemVTPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uRGlyZWN0aXZlLmljb247XG4gICAgfVxuXG4gICAgZ2V0IGljb25MZWZ0KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplTCB8IFR1aVNpemVTPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uTGVmdERpcmVjdGl2ZS5pY29uTGVmdDtcbiAgICB9XG5cbiAgICBnZXQgbGFiZWxPdXRzaWRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sYWJlbE91dHNpZGVEaXJlY3RpdmUubGFiZWxPdXRzaWRlO1xuICAgIH1cblxuICAgIGdldCBzaXplKCk6IFR1aVNpemVMIHwgVHVpU2l6ZVMge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplRGlyZWN0aXZlLnNpemU7XG4gICAgfVxuXG4gICAgZ2V0IHByZWZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVmaXhEaXJlY3RpdmUucHJlZml4O1xuICAgIH1cblxuICAgIGdldCBwb3N0Zml4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvc3RmaXhEaXJlY3RpdmUucG9zdGZpeDtcbiAgICB9XG5cbiAgICBnZXQgZmlsbGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGxlckRpcmVjdGl2ZS5maWxsZXI7XG4gICAgfVxufVxuIl19
@@ -1,4 +1,12 @@
1
- const SIZES = [`xxs`, `xs`, `s`, `m`, `l`, `xl`, `xxl`];
1
+ const SIZES = {
2
+ xxs: 0,
3
+ xs: 1,
4
+ s: 2,
5
+ m: 3,
6
+ l: 4,
7
+ xl: 5,
8
+ xxl: 6,
9
+ };
2
10
  /**
3
11
  * Compares size constants to determine if first size is bigger than the second
4
12
  *
@@ -6,6 +14,6 @@ const SIZES = [`xxs`, `xs`, `s`, `m`, `l`, `xl`, `xxl`];
6
14
  * @param biggerThanSize size to compare with, 's' by default
7
15
  */
8
16
  export function tuiSizeBigger(size, biggerThanSize = `s`) {
9
- return SIZES.indexOf(size) > SIZES.indexOf(biggerThanSize);
17
+ return SIZES[size] > SIZES[biggerThanSize];
10
18
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS1iaWdnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3V0aWxzL21pc2NlbGxhbmVvdXMvc2l6ZS1iaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLENBQVUsQ0FBQztBQUVqRTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQ3pCLElBQTZCLEVBQzdCLGlCQUEwQyxHQUFHO0lBRTdDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQy9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R1aVNpemVYWEwsIFR1aVNpemVYWFN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcblxuY29uc3QgU0laRVMgPSBbYHh4c2AsIGB4c2AsIGBzYCwgYG1gLCBgbGAsIGB4bGAsIGB4eGxgXSBhcyBjb25zdDtcblxuLyoqXG4gKiBDb21wYXJlcyBzaXplIGNvbnN0YW50cyB0byBkZXRlcm1pbmUgaWYgZmlyc3Qgc2l6ZSBpcyBiaWdnZXIgdGhhbiB0aGUgc2Vjb25kXG4gKlxuICogQHBhcmFtIHNpemUgc2l6ZSB0aGF0IHdlIG5lZWQgdG8gY29tcGFyZVxuICogQHBhcmFtIGJpZ2dlclRoYW5TaXplIHNpemUgdG8gY29tcGFyZSB3aXRoLCAncycgYnkgZGVmYXVsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdHVpU2l6ZUJpZ2dlcihcbiAgICBzaXplOiBUdWlTaXplWFhMIHwgVHVpU2l6ZVhYUyxcbiAgICBiaWdnZXJUaGFuU2l6ZTogVHVpU2l6ZVhYTCB8IFR1aVNpemVYWFMgPSBgc2AsXG4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gU0laRVMuaW5kZXhPZihzaXplKSA+IFNJWkVTLmluZGV4T2YoYmlnZ2VyVGhhblNpemUpO1xufVxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS1iaWdnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3V0aWxzL21pc2NlbGxhbmVvdXMvc2l6ZS1iaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxLQUFLLEdBQTRDO0lBQ25ELEdBQUcsRUFBRSxDQUFDO0lBQ04sRUFBRSxFQUFFLENBQUM7SUFDTCxDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7SUFDSixFQUFFLEVBQUUsQ0FBQztJQUNMLEdBQUcsRUFBRSxDQUFDO0NBQ1QsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDekIsSUFBNkIsRUFDN0IsaUJBQTBDLEdBQUc7SUFFN0MsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R1aVNpemVYWEwsIFR1aVNpemVYWFN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcblxuY29uc3QgU0laRVM6IFJlY29yZDxUdWlTaXplWFhMIHwgVHVpU2l6ZVhYUywgbnVtYmVyPiA9IHtcbiAgICB4eHM6IDAsXG4gICAgeHM6IDEsXG4gICAgczogMixcbiAgICBtOiAzLFxuICAgIGw6IDQsXG4gICAgeGw6IDUsXG4gICAgeHhsOiA2LFxufTtcblxuLyoqXG4gKiBDb21wYXJlcyBzaXplIGNvbnN0YW50cyB0byBkZXRlcm1pbmUgaWYgZmlyc3Qgc2l6ZSBpcyBiaWdnZXIgdGhhbiB0aGUgc2Vjb25kXG4gKlxuICogQHBhcmFtIHNpemUgc2l6ZSB0aGF0IHdlIG5lZWQgdG8gY29tcGFyZVxuICogQHBhcmFtIGJpZ2dlclRoYW5TaXplIHNpemUgdG8gY29tcGFyZSB3aXRoLCAncycgYnkgZGVmYXVsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdHVpU2l6ZUJpZ2dlcihcbiAgICBzaXplOiBUdWlTaXplWFhMIHwgVHVpU2l6ZVhYUyxcbiAgICBiaWdnZXJUaGFuU2l6ZTogVHVpU2l6ZVhYTCB8IFR1aVNpemVYWFMgPSBgc2AsXG4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gU0laRVNbc2l6ZV0gPiBTSVpFU1tiaWdnZXJUaGFuU2l6ZV07XG59XG4iXX0=
@@ -3,7 +3,7 @@ import * as i0 from '@angular/core';
3
3
  import { forwardRef, ElementRef, Component, ChangeDetectionStrategy, Optional, Inject, Self, Input, HostBinding, HostListener, ViewEncapsulation, ContentChildren, Directive, NgModule } from '@angular/core';
4
4
  import { tuiIsNativeFocused, tuiDefaultProp, EMPTY_QUERY, tuiItemsQueryListObservable, tuiMoveFocus, tuiIsNativeFocusedIn, tuiSetNativeMouseFocused, tuiIsPresent, tuiIsElement, tuiPure } from '@taiga-ui/cdk';
5
5
  import * as i3 from '@taiga-ui/core/directives';
6
- import { TuiTextfieldSizeDirective } from '@taiga-ui/core/directives';
6
+ import { TUI_TEXTFIELD_WATCHED_CONTROLLER, TEXTFIELD_CONTROLLER_PROVIDER } from '@taiga-ui/core/directives';
7
7
  import { TUI_OPTION_CONTENT, TUI_DATA_LIST_HOST, TUI_NOTHING_FOUND_MESSAGE, tuiAsDataListAccessor } from '@taiga-ui/core/tokens';
8
8
  import { map } from 'rxjs/operators';
9
9
  import * as i5 from '@taiga-ui/core/directives/dropdown';
@@ -51,7 +51,7 @@ class TuiOptionComponent {
51
51
  }
52
52
  }
53
53
  TuiOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiOptionComponent, deps: [{ token: TUI_OPTION_CONTENT, optional: true }, { token: forwardRef(() => TuiDataListComponent) }, { token: ElementRef }, { token: TUI_DATA_LIST_HOST, optional: true }, { token: TuiDropdownDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
54
- TuiOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: { size: "size", role: "role", disabled: "disabled", value: "value" }, host: { attributes: { "tabIndex": "-1", "type": "button" }, listeners: { "click": "onClick()", "mousemove.init": "onMouseMove($event)", "mousemove.silent": "onMouseMove($event)" }, properties: { "attr.disabled": "disabled || null", "attr.data-size": "this.size", "attr.role": "this.role", "class._with-dropdown": "this.active" } }, ngImport: i0, template: "<ng-container *polymorpheusOutlet=\"content || base as text; context: {$implicit: base}\">\n {{ text }}\n</ng-container>\n<ng-template #base>\n <ng-content></ng-content>\n <tui-svg\n *ngIf=\"dropdown\"\n src=\"tuiIconChevronRight\"\n class=\"t-arrow\"\n ></tui-svg>\n</ng-template>\n", styles: [":host{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;font-size:inherit;line-height:inherit;transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;align-items:center;justify-content:space-between;text-align:left;box-sizing:border-box;color:var(--tui-text-01);border-radius:var(--tui-radius-s);outline:none;text-decoration:none;cursor:pointer;background-clip:padding-box;font:var(--tui-font-text-s);min-height:2.5rem;padding:.375rem .5rem;margin:.125rem 0}:host:disabled{opacity:var(--tui-disabled-opacity);cursor:default}:host:focus,:host._with-dropdown{background-color:var(--tui-clear-disabled)}:host :host-context([data-list-size=\"s\"]),:host :host-context([data-list-size=\"xs\"]),:host[data-size=s][data-size=s],:host[data-size=xs][data-size=xs]{font:var(--tui-font-text-s);min-height:2rem;padding:.3125rem .5rem;margin:0}:host :host-context([data-list-size=\"m\"]),:host[data-size=m][data-size=m]{font:var(--tui-font-text-s);min-height:2.5rem;padding:.375rem .5rem;margin:.125rem 0}:host :host-context([data-list-size=\"l\"]),:host[data-size=l][data-size=l]{font:var(--tui-font-text-m);min-height:2.75rem;padding:.375rem .625rem;margin:.25rem 0}.t-arrow{margin:0 -.5rem 0 .75rem}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
+ TuiOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: { size: "size", role: "role", disabled: "disabled", value: "value" }, host: { attributes: { "tabIndex": "-1", "type": "button" }, listeners: { "click": "onClick()", "mousemove.init": "onMouseMove($event)", "mousemove.silent": "onMouseMove($event)" }, properties: { "attr.disabled": "disabled || null", "attr.data-size": "this.size", "attr.role": "this.role", "class._with-dropdown": "this.active" } }, ngImport: i0, template: "<ng-container *polymorpheusOutlet=\"content || base as text; context: {$implicit: base}\">\n {{ text }}\n</ng-container>\n<ng-template #base>\n <ng-content></ng-content>\n <tui-svg\n *ngIf=\"dropdown\"\n src=\"tuiIconChevronRight\"\n class=\"t-arrow\"\n ></tui-svg>\n</ng-template>\n", styles: [":host{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;font-size:inherit;line-height:inherit;transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;align-items:center;justify-content:space-between;text-align:left;box-sizing:border-box;color:var(--tui-text-01);border-radius:var(--tui-radius-s);outline:none;text-decoration:none;cursor:pointer;background-clip:padding-box;font:var(--tui-font-text-s);min-height:2.5rem;padding:.375rem .5rem;margin:.125rem 0}:host:disabled{opacity:var(--tui-disabled-opacity);cursor:default}:host:focus,:host._with-dropdown{background-color:var(--tui-clear)}:host :host-context([data-list-size=\"s\"]),:host :host-context([data-list-size=\"xs\"]),:host[data-size=s][data-size=s],:host[data-size=xs][data-size=xs]{font:var(--tui-font-text-s);min-height:2rem;padding:.3125rem .5rem;margin:var(--tui-data-list-margin) 0}:host :host-context([data-list-size=\"m\"]),:host[data-size=m][data-size=m]{font:var(--tui-font-text-s);min-height:2.5rem;padding:.375rem .5rem;margin:var(--tui-data-list-margin) 0}:host :host-context([data-list-size=\"l\"]),:host[data-size=l][data-size=l]{font:var(--tui-font-text-m);min-height:2.75rem;padding:.375rem .625rem;margin:var(--tui-data-list-margin) 0}.t-arrow{margin:0 -.5rem 0 .75rem}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
55
  __decorate([
56
56
  tuiDefaultProp()
57
57
  ], TuiOptionComponent.prototype, "size", void 0);
@@ -177,8 +177,11 @@ class TuiDataListComponent {
177
177
  return Array.from(this.elementRef.nativeElement.querySelectorAll(`[tuiOption]`));
178
178
  }
179
179
  }
180
- TuiDataListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDataListComponent, deps: [{ token: TuiTextfieldSizeDirective, optional: true }, { token: ElementRef }, { token: TUI_NOTHING_FOUND_MESSAGE }], target: i0.ɵɵFactoryTarget.Component });
181
- TuiDataListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiDataListComponent, selector: "tui-data-list", inputs: { role: "role", emptyContent: "emptyContent", size: "size" }, host: { listeners: { "focusin": "onFocusIn($event.relatedTarget,$event.currentTarget)", "mousedown.prevent": "noop()", "keydown.arrowDown.prevent": "onKeyDownArrow($event.target,1)", "keydown.arrowUp.prevent": "onKeyDownArrow($event.target,-1)", "wheel.silent.passive": "handleFocusLossIfNecessary()", "mouseleave": "handleFocusLossIfNecessary($event.target)" }, properties: { "attr.role": "this.role", "attr.data-list-size": "this.size" } }, providers: [tuiAsDataListAccessor(TuiDataListComponent)], queries: [{ propertyName: "options", predicate: i0.forwardRef(function () { return TuiOptionComponent; }), descendants: true }], ngImport: i0, template: "<div\n tabindex=\"0\"\n class=\"t-trap\"\n (focusin)=\"onFocus($event, true)\"\n></div>\n<ng-content></ng-content>\n<div\n *ngIf=\"empty$ | async\"\n class=\"t-empty\"\n>\n <ng-container *polymorpheusOutlet=\"emptyContent || (defaultEmptyContent$ | async) as text\">\n {{ text }}\n </ng-container>\n</div>\n<div\n tabindex=\"0\"\n class=\"t-trap\"\n (focusin)=\"onFocus($event, false)\"\n></div>\n", styles: ["tui-data-list{--tui-padding: .25rem;display:flex;font:var(--tui-font-text-m);flex-direction:column;padding:var(--tui-padding);color:var(--tui-text-03)}tui-data-list:focus-within .t-trap{display:none}tui-data-list:focus-within [tuiOption]._with-dropdown:not(:focus){background-color:transparent}tui-data-list[data-list-size=l]{--tui-padding: .375rem}tui-data-list>.t-empty{margin:.75rem 1rem}tui-opt-group{position:relative;display:flex;font:var(--tui-font-text-xs);color:var(--tui-text-02);flex-direction:column;line-height:1rem}tui-data-list[data-list-size=l] tui-opt-group{font:var(--tui-font-text-s);line-height:1.25rem}tui-data-list[data-list-size=l] tui-opt-group:before{padding-left:.625rem;padding-right:.625rem}tui-data-list[data-list-size=l] tui-opt-group:after{left:.625rem;right:.625rem}tui-opt-group:empty:before,tui-opt-group:empty:after{display:none}tui-opt-group:before{content:attr(data-label);padding:var(--tui-padding) .5rem var(--tui-padding);white-space:normal;word-break:break-word}tui-opt-group:after{position:absolute;left:.5rem;right:.5rem;top:var(--tui-padding);height:1px;background:var(--tui-base-03)}tui-opt-group:not(:empty)~tui-opt-group:before{padding-top:calc(.75rem + var(--tui-padding))}tui-opt-group:not(:empty)~tui-opt-group[data-label=\"\"]:before{padding:var(--tui-padding) 0}tui-opt-group:not(:empty)~tui-opt-group:after{content:\"\"}tui-opt-group[data-label=\"\"]:before{padding:0 .5rem}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i1$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
180
+ TuiDataListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDataListComponent, deps: [{ token: TUI_TEXTFIELD_WATCHED_CONTROLLER, optional: true }, { token: ElementRef }, { token: TUI_NOTHING_FOUND_MESSAGE }], target: i0.ɵɵFactoryTarget.Component });
181
+ TuiDataListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiDataListComponent, selector: "tui-data-list", inputs: { role: "role", emptyContent: "emptyContent", size: "size" }, host: { listeners: { "focusin": "onFocusIn($event.relatedTarget,$event.currentTarget)", "mousedown.prevent": "noop()", "keydown.arrowDown.prevent": "onKeyDownArrow($event.target,1)", "keydown.arrowUp.prevent": "onKeyDownArrow($event.target,-1)", "wheel.silent.passive": "handleFocusLossIfNecessary()", "mouseleave": "handleFocusLossIfNecessary($event.target)" }, properties: { "attr.role": "this.role", "attr.data-list-size": "this.size" } }, providers: [
182
+ tuiAsDataListAccessor(TuiDataListComponent),
183
+ TEXTFIELD_CONTROLLER_PROVIDER,
184
+ ], queries: [{ propertyName: "options", predicate: i0.forwardRef(function () { return TuiOptionComponent; }), descendants: true }], ngImport: i0, template: "<div\n tabindex=\"0\"\n class=\"t-trap\"\n (focusin)=\"onFocus($event, true)\"\n></div>\n<ng-content></ng-content>\n<div\n *ngIf=\"empty$ | async\"\n class=\"t-empty\"\n>\n <ng-container *polymorpheusOutlet=\"emptyContent || (defaultEmptyContent$ | async) as text\">\n {{ text }}\n </ng-container>\n</div>\n<div\n tabindex=\"0\"\n class=\"t-trap\"\n (focusin)=\"onFocus($event, false)\"\n></div>\n", styles: ["tui-data-list{--tui-data-list-padding: .25rem;--tui-data-list-margin: .0625rem;display:flex;font:var(--tui-font-text-m);flex-direction:column;padding:calc(var(--tui-data-list-padding) - var(--tui-data-list-margin)) var(--tui-data-list-padding);color:var(--tui-text-03)}tui-data-list:focus-within .t-trap{display:none}tui-data-list:focus-within [tuiOption]._with-dropdown:not(:focus){background-color:transparent}tui-data-list[data-list-size=s]{--tui-data-list-margin: 0}tui-data-list[data-list-size=l]{--tui-data-list-padding: .375rem;--tui-data-list-margin: .125rem}tui-data-list>.t-empty{margin:.75rem 1rem}tui-opt-group{position:relative;display:flex;font:var(--tui-font-text-xs);color:var(--tui-text-02);flex-direction:column;line-height:1rem}tui-data-list[data-list-size=l] tui-opt-group{font:var(--tui-font-text-s);line-height:1.25rem}tui-data-list[data-list-size=l] tui-opt-group:before{padding-left:.625rem;padding-right:.625rem}tui-data-list[data-list-size=l] tui-opt-group:after{left:.625rem;right:.625rem}tui-opt-group:empty:before,tui-opt-group:empty:after{display:none}tui-opt-group:before{content:attr(data-label);padding:var(--tui-data-list-padding) .5rem var(--tui-data-list-padding);margin:var(--tui-data-list-margin) 0;white-space:normal;word-break:break-word}tui-opt-group:after{position:absolute;left:.5rem;right:.5rem;top:var(--tui-data-list-padding);height:1px;background:var(--tui-base-03)}tui-opt-group:not(:empty)~tui-opt-group:before{padding-top:calc(.75rem + var(--tui-data-list-padding))}tui-opt-group:not(:empty)~tui-opt-group[data-label=\"\"]:before{padding:var(--tui-data-list-padding) 0}tui-opt-group:not(:empty)~tui-opt-group:after{content:\"\"}tui-opt-group[data-label=\"\"]:before{padding:0 .5rem}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i1$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
182
185
  __decorate([
183
186
  tuiDefaultProp()
184
187
  ], TuiDataListComponent.prototype, "role", void 0);
@@ -199,13 +202,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
199
202
  styleUrls: [`./data-list.style.less`],
200
203
  changeDetection: ChangeDetectionStrategy.OnPush,
201
204
  encapsulation: ViewEncapsulation.None,
202
- providers: [tuiAsDataListAccessor(TuiDataListComponent)],
205
+ providers: [
206
+ tuiAsDataListAccessor(TuiDataListComponent),
207
+ TEXTFIELD_CONTROLLER_PROVIDER,
208
+ ],
203
209
  }]
204
- }], ctorParameters: function () { return [{ type: i3.TuiTextfieldSizeDirective, decorators: [{
210
+ }], ctorParameters: function () { return [{ type: i3.TuiTextfieldController, decorators: [{
205
211
  type: Optional
206
212
  }, {
207
213
  type: Inject,
208
- args: [TuiTextfieldSizeDirective]
214
+ args: [TUI_TEXTFIELD_WATCHED_CONTROLLER]
209
215
  }] }, { type: i0.ElementRef, decorators: [{
210
216
  type: Inject,
211
217
  args: [ElementRef]
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-data-list.js","sources":["../../../projects/core/components/data-list/option/option.component.ts","../../../projects/core/components/data-list/option/option.template.html","../../../projects/core/components/data-list/data-list.component.ts","../../../projects/core/components/data-list/data-list.template.html","../../../projects/core/components/data-list/data-list.directive.ts","../../../projects/core/components/data-list/opt-group.directive.ts","../../../projects/core/components/data-list/data-list.module.ts","../../../projects/core/components/data-list/taiga-ui-core-components-data-list.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Self,\n TemplateRef,\n} from '@angular/core';\nimport {\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiEventWith,\n tuiIsNativeFocused,\n} from '@taiga-ui/cdk';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {TuiDataListHost} from '@taiga-ui/core/interfaces';\nimport {TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT} from '@taiga-ui/core/tokens';\nimport {TuiOptionRole, TuiSizeL, TuiSizeXS} from '@taiga-ui/core/types';\nimport {shouldCall} from '@tinkoff/ng-event-plugins';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiDataListComponent} from '../data-list.component';\n\nfunction shouldFocus({currentTarget}: TuiEventWith<MouseEvent, HTMLElement>): boolean {\n return !tuiIsNativeFocused(currentTarget);\n}\n\n// TODO: Consider all use cases for aria roles\n@Component({\n selector: `button[tuiOption], a[tuiOption]`,\n templateUrl: `./option.template.html`,\n styleUrls: [`./option.style.less`],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n tabIndex: `-1`,\n type: `button`,\n '[attr.disabled]': `disabled || null`,\n },\n})\nexport class TuiOptionComponent<T = unknown> implements OnDestroy {\n /** @deprecated use size on {@link TuiDataListComponent} instead */\n @Input()\n @HostBinding(`attr.data-size`)\n @tuiDefaultProp()\n size: TuiSizeL | TuiSizeXS | null = null;\n\n @Input()\n @HostBinding(`attr.role`)\n @tuiDefaultProp()\n role: TuiOptionRole = `option`;\n\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n value?: T;\n\n constructor(\n @Optional()\n @Inject(TUI_OPTION_CONTENT)\n readonly content: PolymorpheusContent<\n TuiContextWithImplicit<TemplateRef<Record<string, unknown>>>\n > | null,\n @Inject(forwardRef(() => TuiDataListComponent))\n private readonly dataList: TuiDataListComponent<T>,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_DATA_LIST_HOST)\n private readonly host: TuiDataListHost<T> | null,\n @Optional()\n @Self()\n @Inject(TuiDropdownDirective)\n readonly dropdown: TuiDropdownDirective | null,\n ) {}\n\n @HostBinding(`class._with-dropdown`)\n get active(): boolean {\n return !!this.dropdown && !!this.dropdown.dropdownBoxRef;\n }\n\n @HostListener(`click`)\n onClick(): void {\n if (this.host && this.value !== undefined) {\n this.host.handleOption(this.value);\n }\n }\n\n // @bad TODO: Consider aria-activedescendant for proper accessibility implementation\n @shouldCall(shouldFocus)\n @HostListener(`mousemove.init`, [`$event`])\n @HostListener(`mousemove.silent`, [`$event`])\n onMouseMove({currentTarget}: TuiEventWith<MouseEvent, HTMLElement>): void {\n currentTarget.focus({preventScroll: true});\n }\n\n // Preventing focus loss upon focused option removal\n ngOnDestroy(): void {\n this.dataList.handleFocusLossIfNecessary(this.elementRef.nativeElement);\n }\n}\n","<ng-container *polymorpheusOutlet=\"content || base as text; context: {$implicit: base}\">\n {{ text }}\n</ng-container>\n<ng-template #base>\n <ng-content></ng-content>\n <tui-svg\n *ngIf=\"dropdown\"\n src=\"tuiIconChevronRight\"\n class=\"t-arrow\"\n ></tui-svg>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Optional,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n EMPTY_QUERY,\n tuiDefaultProp,\n tuiIsElement,\n tuiIsNativeFocusedIn,\n tuiIsPresent,\n tuiItemsQueryListObservable,\n tuiMoveFocus,\n tuiPure,\n tuiSetNativeMouseFocused,\n} from '@taiga-ui/cdk';\nimport {TuiTextfieldSizeDirective} from '@taiga-ui/core/directives';\nimport {TuiDataListAccessor} from '@taiga-ui/core/interfaces';\nimport {TUI_NOTHING_FOUND_MESSAGE, tuiAsDataListAccessor} from '@taiga-ui/core/tokens';\nimport {TuiDataListRole} from '@taiga-ui/core/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiOptionComponent} from './option/option.component';\n\n// TODO: Consider aria-activedescendant for proper accessibility implementation\n@Component({\n selector: `tui-data-list`,\n templateUrl: `./data-list.template.html`,\n styleUrls: [`./data-list.style.less`],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [tuiAsDataListAccessor(TuiDataListComponent)],\n})\nexport class TuiDataListComponent<T> implements TuiDataListAccessor<T> {\n @ContentChildren(forwardRef(() => TuiOptionComponent), {descendants: true})\n private readonly options: QueryList<TuiOptionComponent<T>> = EMPTY_QUERY;\n\n private origin?: HTMLElement;\n\n @Input()\n @HostBinding(`attr.role`)\n @tuiDefaultProp()\n role: TuiDataListRole = `listbox`;\n\n @Input()\n @tuiDefaultProp()\n emptyContent: PolymorpheusContent = ``;\n\n @Input()\n @HostBinding(`attr.data-list-size`)\n @tuiDefaultProp()\n size = this.controller?.size || `m`;\n\n constructor(\n @Optional()\n @Inject(TuiTextfieldSizeDirective)\n private readonly controller: TuiTextfieldSizeDirective | null,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_NOTHING_FOUND_MESSAGE)\n readonly defaultEmptyContent$: Observable<string>,\n ) {}\n\n @tuiPure\n get empty$(): Observable<boolean> {\n return tuiItemsQueryListObservable(this.options).pipe(map(({length}) => !length));\n }\n\n @HostListener(`focusin`, [`$event.relatedTarget`, `$event.currentTarget`])\n onFocusIn(relatedTarget: HTMLElement, currentTarget: HTMLElement): void {\n if (!currentTarget.contains(relatedTarget) && !this.origin) {\n this.origin = relatedTarget;\n }\n }\n\n @HostListener(`mousedown.prevent`)\n noop(): void {}\n\n @HostListener(`keydown.arrowDown.prevent`, [`$event.target`, `1`])\n @HostListener(`keydown.arrowUp.prevent`, [`$event.target`, `-1`])\n onKeyDownArrow(current: HTMLElement, step: number): void {\n const {elements} = this;\n\n tuiMoveFocus(elements.indexOf(current), elements, step);\n }\n\n // TODO: Consider aria-activedescendant for proper accessibility implementation\n @HostListener(`wheel.silent.passive`)\n @HostListener(`mouseleave`, [`$event.target`])\n handleFocusLossIfNecessary(element: Element = this.elementRef.nativeElement): void {\n if (this.origin && tuiIsNativeFocusedIn(element)) {\n tuiSetNativeMouseFocused(this.origin, true, true);\n }\n }\n\n getOptions(includeDisabled: boolean = false): readonly T[] {\n return this.options\n .filter(({disabled}) => includeDisabled || !disabled)\n .map(({value}) => value)\n .filter(tuiIsPresent);\n }\n\n onFocus({target}: Event, top: boolean): void {\n if (!tuiIsElement(target)) {\n return;\n }\n\n const {elements} = this;\n\n tuiMoveFocus(top ? -1 : elements.length, elements, top ? 1 : -1);\n this.handleFocusLossIfNecessary(target);\n }\n\n private get elements(): readonly HTMLElement[] {\n return Array.from(this.elementRef.nativeElement.querySelectorAll(`[tuiOption]`));\n }\n}\n","<div\n tabindex=\"0\"\n class=\"t-trap\"\n (focusin)=\"onFocus($event, true)\"\n></div>\n<ng-content></ng-content>\n<div\n *ngIf=\"empty$ | async\"\n class=\"t-empty\"\n>\n <ng-container *polymorpheusOutlet=\"emptyContent || (defaultEmptyContent$ | async) as text\">\n {{ text }}\n </ng-container>\n</div>\n<div\n tabindex=\"0\"\n class=\"t-trap\"\n (focusin)=\"onFocus($event, false)\"\n></div>\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: `ng-template[tuiDataList]`,\n})\nexport class TuiDataListDirective {}\n","import {Directive, HostBinding, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\n\n@Directive({\n selector: `tui-opt-group`,\n host: {\n role: `group`,\n },\n})\nexport class TuiOptGroupDirective {\n @Input()\n @HostBinding(`attr.data-label`)\n @tuiDefaultProp()\n label = ``;\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core/components/svg';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDataListComponent} from './data-list.component';\nimport {TuiDataListDirective} from './data-list.directive';\nimport {TuiOptGroupDirective} from './opt-group.directive';\nimport {TuiOptionComponent} from './option/option.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, PolymorpheusModule],\n declarations: [\n TuiDataListComponent,\n TuiOptionComponent,\n TuiOptGroupDirective,\n TuiDataListDirective,\n ],\n exports: [\n TuiDataListComponent,\n TuiOptionComponent,\n TuiOptGroupDirective,\n TuiDataListDirective,\n ],\n})\nexport class TuiDataListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-data-list.js","sources":["../../../projects/core/components/data-list/option/option.component.ts","../../../projects/core/components/data-list/option/option.template.html","../../../projects/core/components/data-list/data-list.component.ts","../../../projects/core/components/data-list/data-list.template.html","../../../projects/core/components/data-list/data-list.directive.ts","../../../projects/core/components/data-list/opt-group.directive.ts","../../../projects/core/components/data-list/data-list.module.ts","../../../projects/core/components/data-list/taiga-ui-core-components-data-list.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Self,\n TemplateRef,\n} from '@angular/core';\nimport {\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiEventWith,\n tuiIsNativeFocused,\n} from '@taiga-ui/cdk';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {TuiDataListHost} from '@taiga-ui/core/interfaces';\nimport {TUI_DATA_LIST_HOST, TUI_OPTION_CONTENT} from '@taiga-ui/core/tokens';\nimport {TuiOptionRole, TuiSizeL, TuiSizeXS} from '@taiga-ui/core/types';\nimport {shouldCall} from '@tinkoff/ng-event-plugins';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiDataListComponent} from '../data-list.component';\n\nfunction shouldFocus({currentTarget}: TuiEventWith<MouseEvent, HTMLElement>): boolean {\n return !tuiIsNativeFocused(currentTarget);\n}\n\n// TODO: Consider all use cases for aria roles\n@Component({\n selector: `button[tuiOption], a[tuiOption]`,\n templateUrl: `./option.template.html`,\n styleUrls: [`./option.style.less`],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n tabIndex: `-1`,\n type: `button`,\n '[attr.disabled]': `disabled || null`,\n },\n})\nexport class TuiOptionComponent<T = unknown> implements OnDestroy {\n /** @deprecated use size on {@link TuiDataListComponent} instead */\n @Input()\n @HostBinding(`attr.data-size`)\n @tuiDefaultProp()\n size: TuiSizeL | TuiSizeXS | null = null;\n\n @Input()\n @HostBinding(`attr.role`)\n @tuiDefaultProp()\n role: TuiOptionRole = `option`;\n\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n value?: T;\n\n constructor(\n @Optional()\n @Inject(TUI_OPTION_CONTENT)\n readonly content: PolymorpheusContent<\n TuiContextWithImplicit<TemplateRef<Record<string, unknown>>>\n > | null,\n @Inject(forwardRef(() => TuiDataListComponent))\n private readonly dataList: TuiDataListComponent<T>,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_DATA_LIST_HOST)\n private readonly host: TuiDataListHost<T> | null,\n @Optional()\n @Self()\n @Inject(TuiDropdownDirective)\n readonly dropdown: TuiDropdownDirective | null,\n ) {}\n\n @HostBinding(`class._with-dropdown`)\n get active(): boolean {\n return !!this.dropdown && !!this.dropdown.dropdownBoxRef;\n }\n\n @HostListener(`click`)\n onClick(): void {\n if (this.host && this.value !== undefined) {\n this.host.handleOption(this.value);\n }\n }\n\n // @bad TODO: Consider aria-activedescendant for proper accessibility implementation\n @shouldCall(shouldFocus)\n @HostListener(`mousemove.init`, [`$event`])\n @HostListener(`mousemove.silent`, [`$event`])\n onMouseMove({currentTarget}: TuiEventWith<MouseEvent, HTMLElement>): void {\n currentTarget.focus({preventScroll: true});\n }\n\n // Preventing focus loss upon focused option removal\n ngOnDestroy(): void {\n this.dataList.handleFocusLossIfNecessary(this.elementRef.nativeElement);\n }\n}\n","<ng-container *polymorpheusOutlet=\"content || base as text; context: {$implicit: base}\">\n {{ text }}\n</ng-container>\n<ng-template #base>\n <ng-content></ng-content>\n <tui-svg\n *ngIf=\"dropdown\"\n src=\"tuiIconChevronRight\"\n class=\"t-arrow\"\n ></tui-svg>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Optional,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n EMPTY_QUERY,\n tuiDefaultProp,\n tuiIsElement,\n tuiIsNativeFocusedIn,\n tuiIsPresent,\n tuiItemsQueryListObservable,\n tuiMoveFocus,\n tuiPure,\n tuiSetNativeMouseFocused,\n} from '@taiga-ui/cdk';\nimport {\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives';\nimport {TuiDataListAccessor} from '@taiga-ui/core/interfaces';\nimport {TUI_NOTHING_FOUND_MESSAGE, tuiAsDataListAccessor} from '@taiga-ui/core/tokens';\nimport {TuiDataListRole} from '@taiga-ui/core/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiOptionComponent} from './option/option.component';\n\n// TODO: Consider aria-activedescendant for proper accessibility implementation\n@Component({\n selector: `tui-data-list`,\n templateUrl: `./data-list.template.html`,\n styleUrls: [`./data-list.style.less`],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n tuiAsDataListAccessor(TuiDataListComponent),\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n})\nexport class TuiDataListComponent<T> implements TuiDataListAccessor<T> {\n @ContentChildren(forwardRef(() => TuiOptionComponent), {descendants: true})\n private readonly options: QueryList<TuiOptionComponent<T>> = EMPTY_QUERY;\n\n private origin?: HTMLElement;\n\n @Input()\n @HostBinding(`attr.role`)\n @tuiDefaultProp()\n role: TuiDataListRole = `listbox`;\n\n @Input()\n @tuiDefaultProp()\n emptyContent: PolymorpheusContent = ``;\n\n @Input()\n @HostBinding(`attr.data-list-size`)\n @tuiDefaultProp()\n size = this.controller?.size || `m`;\n\n constructor(\n @Optional()\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n private readonly controller: TuiTextfieldController | null,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_NOTHING_FOUND_MESSAGE)\n readonly defaultEmptyContent$: Observable<string>,\n ) {}\n\n @tuiPure\n get empty$(): Observable<boolean> {\n return tuiItemsQueryListObservable(this.options).pipe(map(({length}) => !length));\n }\n\n @HostListener(`focusin`, [`$event.relatedTarget`, `$event.currentTarget`])\n onFocusIn(relatedTarget: HTMLElement, currentTarget: HTMLElement): void {\n if (!currentTarget.contains(relatedTarget) && !this.origin) {\n this.origin = relatedTarget;\n }\n }\n\n @HostListener(`mousedown.prevent`)\n noop(): void {}\n\n @HostListener(`keydown.arrowDown.prevent`, [`$event.target`, `1`])\n @HostListener(`keydown.arrowUp.prevent`, [`$event.target`, `-1`])\n onKeyDownArrow(current: HTMLElement, step: number): void {\n const {elements} = this;\n\n tuiMoveFocus(elements.indexOf(current), elements, step);\n }\n\n // TODO: Consider aria-activedescendant for proper accessibility implementation\n @HostListener(`wheel.silent.passive`)\n @HostListener(`mouseleave`, [`$event.target`])\n handleFocusLossIfNecessary(element: Element = this.elementRef.nativeElement): void {\n if (this.origin && tuiIsNativeFocusedIn(element)) {\n tuiSetNativeMouseFocused(this.origin, true, true);\n }\n }\n\n getOptions(includeDisabled: boolean = false): readonly T[] {\n return this.options\n .filter(({disabled}) => includeDisabled || !disabled)\n .map(({value}) => value)\n .filter(tuiIsPresent);\n }\n\n onFocus({target}: Event, top: boolean): void {\n if (!tuiIsElement(target)) {\n return;\n }\n\n const {elements} = this;\n\n tuiMoveFocus(top ? -1 : elements.length, elements, top ? 1 : -1);\n this.handleFocusLossIfNecessary(target);\n }\n\n private get elements(): readonly HTMLElement[] {\n return Array.from(this.elementRef.nativeElement.querySelectorAll(`[tuiOption]`));\n }\n}\n","<div\n tabindex=\"0\"\n class=\"t-trap\"\n (focusin)=\"onFocus($event, true)\"\n></div>\n<ng-content></ng-content>\n<div\n *ngIf=\"empty$ | async\"\n class=\"t-empty\"\n>\n <ng-container *polymorpheusOutlet=\"emptyContent || (defaultEmptyContent$ | async) as text\">\n {{ text }}\n </ng-container>\n</div>\n<div\n tabindex=\"0\"\n class=\"t-trap\"\n (focusin)=\"onFocus($event, false)\"\n></div>\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: `ng-template[tuiDataList]`,\n})\nexport class TuiDataListDirective {}\n","import {Directive, HostBinding, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\n\n@Directive({\n selector: `tui-opt-group`,\n host: {\n role: `group`,\n },\n})\nexport class TuiOptGroupDirective {\n @Input()\n @HostBinding(`attr.data-label`)\n @tuiDefaultProp()\n label = ``;\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core/components/svg';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDataListComponent} from './data-list.component';\nimport {TuiDataListDirective} from './data-list.directive';\nimport {TuiOptGroupDirective} from './opt-group.directive';\nimport {TuiOptionComponent} from './option/option.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, PolymorpheusModule],\n declarations: [\n TuiDataListComponent,\n TuiOptionComponent,\n TuiOptGroupDirective,\n TuiDataListDirective,\n ],\n exports: [\n TuiDataListComponent,\n TuiOptionComponent,\n TuiOptGroupDirective,\n TuiDataListDirective,\n ],\n})\nexport class TuiDataListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1"],"mappings":"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"}