@taiga-ui/experimental 3.54.0 → 3.55.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 (144) hide show
  1. package/bundles/taiga-ui-experimental-components-avatar.umd.js +19 -15
  2. package/bundles/taiga-ui-experimental-components-avatar.umd.js.map +1 -1
  3. package/bundles/taiga-ui-experimental-components-badge.umd.js +117 -96
  4. package/bundles/taiga-ui-experimental-components-badge.umd.js.map +1 -1
  5. package/bundles/taiga-ui-experimental-components-badged-content.umd.js +1 -1
  6. package/bundles/taiga-ui-experimental-components-badged-content.umd.js.map +1 -1
  7. package/bundles/taiga-ui-experimental-components-button.umd.js +30 -23
  8. package/bundles/taiga-ui-experimental-components-button.umd.js.map +1 -1
  9. package/bundles/taiga-ui-experimental-components-checkbox.umd.js +9 -14
  10. package/bundles/taiga-ui-experimental-components-checkbox.umd.js.map +1 -1
  11. package/bundles/taiga-ui-experimental-components-icon.umd.js +23 -43
  12. package/bundles/taiga-ui-experimental-components-icon.umd.js.map +1 -1
  13. package/bundles/taiga-ui-experimental-components-toggle.umd.js +14 -30
  14. package/bundles/taiga-ui-experimental-components-toggle.umd.js.map +1 -1
  15. package/bundles/taiga-ui-experimental-directives-appearance.umd.js +82 -0
  16. package/bundles/taiga-ui-experimental-directives-appearance.umd.js.map +1 -0
  17. package/bundles/taiga-ui-experimental-directives-button-vertical.umd.js +95 -0
  18. package/bundles/taiga-ui-experimental-directives-button-vertical.umd.js.map +1 -0
  19. package/bundles/taiga-ui-experimental-directives-card.umd.js +89 -88
  20. package/bundles/taiga-ui-experimental-directives-card.umd.js.map +1 -1
  21. package/bundles/taiga-ui-experimental-directives-cell.umd.js +1 -1
  22. package/bundles/taiga-ui-experimental-directives-progress-segmented.umd.js +1 -1
  23. package/bundles/taiga-ui-experimental-directives-progress-segmented.umd.js.map +1 -1
  24. package/bundles/taiga-ui-experimental-directives-sensitive.umd.js +3 -3
  25. package/bundles/taiga-ui-experimental-directives-sensitive.umd.js.map +1 -1
  26. package/bundles/taiga-ui-experimental-directives-surface.umd.js +6 -5
  27. package/bundles/taiga-ui-experimental-directives-surface.umd.js.map +1 -1
  28. package/bundles/taiga-ui-experimental-directives.umd.js +16 -4
  29. package/bundles/taiga-ui-experimental-directives.umd.js.map +1 -1
  30. package/bundles/taiga-ui-experimental-tokens.umd.js +31 -0
  31. package/bundles/taiga-ui-experimental-tokens.umd.js.map +1 -0
  32. package/bundles/taiga-ui-experimental.umd.js +10 -4
  33. package/bundles/taiga-ui-experimental.umd.js.map +1 -1
  34. package/components/avatar/avatar.component.d.ts +5 -4
  35. package/components/avatar/avatar.module.d.ts +2 -2
  36. package/components/badge/badge.component.d.ts +1 -11
  37. package/components/badge/badge.directive.d.ts +13 -0
  38. package/components/badge/badge.module.d.ts +2 -1
  39. package/components/badge/badge.options.d.ts +2 -3
  40. package/components/badge/index.d.ts +1 -0
  41. package/components/button/button.component.d.ts +1 -3
  42. package/components/button/button.directive.d.ts +6 -3
  43. package/components/checkbox/checkbox.component.d.ts +5 -6
  44. package/components/icon/icon.component.d.ts +5 -1
  45. package/components/icon/icon.module.d.ts +1 -2
  46. package/components/icon/index.d.ts +0 -1
  47. package/components/toggle/toggle.component.d.ts +5 -10
  48. package/directives/appearance/appearance.directive.d.ts +9 -0
  49. package/directives/appearance/appearance.module.d.ts +7 -0
  50. package/directives/appearance/index.d.ts +2 -0
  51. package/directives/appearance/package.json +10 -0
  52. package/directives/appearance/taiga-ui-experimental-directives-appearance.d.ts +5 -0
  53. package/directives/button-vertical/button-vertical.component.d.ts +5 -0
  54. package/directives/button-vertical/button-vertical.directive.d.ts +7 -0
  55. package/directives/button-vertical/button-vertical.module.d.ts +8 -0
  56. package/directives/button-vertical/index.d.ts +3 -0
  57. package/directives/button-vertical/package.json +10 -0
  58. package/directives/button-vertical/taiga-ui-experimental-directives-button-vertical.d.ts +5 -0
  59. package/directives/card/card.component.d.ts +5 -0
  60. package/directives/card/card.directive.d.ts +0 -4
  61. package/directives/card/card.module.d.ts +3 -2
  62. package/directives/card/index.d.ts +1 -0
  63. package/directives/index.d.ts +2 -0
  64. package/directives/sensitive/sensitive.module.d.ts +2 -1
  65. package/esm2015/components/avatar/avatar.component.js +17 -12
  66. package/esm2015/components/avatar/avatar.module.js +5 -5
  67. package/esm2015/components/badge/badge.component.js +8 -36
  68. package/esm2015/components/badge/badge.directive.js +47 -0
  69. package/esm2015/components/badge/badge.module.js +5 -4
  70. package/esm2015/components/badge/badge.options.js +2 -2
  71. package/esm2015/components/badge/index.js +2 -1
  72. package/esm2015/components/badged-content/badged-content.component.js +1 -1
  73. package/esm2015/components/button/button.component.js +3 -10
  74. package/esm2015/components/button/button.directive.js +22 -7
  75. package/esm2015/components/checkbox/checkbox.component.js +9 -13
  76. package/esm2015/components/icon/icon.component.js +19 -7
  77. package/esm2015/components/icon/icon.module.js +4 -5
  78. package/esm2015/components/icon/index.js +1 -2
  79. package/esm2015/components/toggle/toggle.component.js +13 -29
  80. package/esm2015/directives/appearance/appearance.directive.js +30 -0
  81. package/esm2015/directives/appearance/appearance.module.js +16 -0
  82. package/esm2015/directives/appearance/index.js +3 -0
  83. package/esm2015/directives/appearance/taiga-ui-experimental-directives-appearance.js +5 -0
  84. package/esm2015/directives/button-vertical/button-vertical.component.js +19 -0
  85. package/esm2015/directives/button-vertical/button-vertical.directive.js +22 -0
  86. package/esm2015/directives/button-vertical/button-vertical.module.js +17 -0
  87. package/esm2015/directives/button-vertical/index.js +4 -0
  88. package/esm2015/directives/button-vertical/taiga-ui-experimental-directives-button-vertical.js +5 -0
  89. package/esm2015/directives/card/card.component.js +19 -0
  90. package/esm2015/directives/card/card.directive.js +3 -18
  91. package/esm2015/directives/card/card.module.js +3 -2
  92. package/esm2015/directives/card/index.js +2 -1
  93. package/esm2015/directives/cell/cell.component.js +1 -1
  94. package/esm2015/directives/index.js +3 -1
  95. package/esm2015/directives/progress-segmented/progress-segmented.component.js +1 -1
  96. package/esm2015/directives/sensitive/sensitive.component.js +1 -1
  97. package/esm2015/directives/sensitive/sensitive.module.js +4 -3
  98. package/esm2015/directives/surface/surface.component.js +1 -1
  99. package/esm2015/directives/surface/surface.directive.js +7 -6
  100. package/esm2015/index.js +2 -1
  101. package/esm2015/tokens/icon-resolver.js +15 -0
  102. package/esm2015/tokens/index.js +2 -0
  103. package/esm2015/tokens/taiga-ui-experimental-tokens.js +5 -0
  104. package/fesm2015/taiga-ui-experimental-components-avatar.js +20 -15
  105. package/fesm2015/taiga-ui-experimental-components-avatar.js.map +1 -1
  106. package/fesm2015/taiga-ui-experimental-components-badge.js +41 -25
  107. package/fesm2015/taiga-ui-experimental-components-badge.js.map +1 -1
  108. package/fesm2015/taiga-ui-experimental-components-badged-content.js +1 -1
  109. package/fesm2015/taiga-ui-experimental-components-badged-content.js.map +1 -1
  110. package/fesm2015/taiga-ui-experimental-components-button.js +25 -17
  111. package/fesm2015/taiga-ui-experimental-components-button.js.map +1 -1
  112. package/fesm2015/taiga-ui-experimental-components-checkbox.js +8 -12
  113. package/fesm2015/taiga-ui-experimental-components-checkbox.js.map +1 -1
  114. package/fesm2015/taiga-ui-experimental-components-icon.js +21 -37
  115. package/fesm2015/taiga-ui-experimental-components-icon.js.map +1 -1
  116. package/fesm2015/taiga-ui-experimental-components-toggle.js +12 -28
  117. package/fesm2015/taiga-ui-experimental-components-toggle.js.map +1 -1
  118. package/fesm2015/taiga-ui-experimental-directives-appearance.js +50 -0
  119. package/fesm2015/taiga-ui-experimental-directives-appearance.js.map +1 -0
  120. package/fesm2015/taiga-ui-experimental-directives-button-vertical.js +58 -0
  121. package/fesm2015/taiga-ui-experimental-directives-button-vertical.js.map +1 -0
  122. package/fesm2015/taiga-ui-experimental-directives-card.js +1 -0
  123. package/fesm2015/taiga-ui-experimental-directives-card.js.map +1 -1
  124. package/fesm2015/taiga-ui-experimental-directives-cell.js +1 -1
  125. package/fesm2015/taiga-ui-experimental-directives-progress-segmented.js +1 -1
  126. package/fesm2015/taiga-ui-experimental-directives-progress-segmented.js.map +1 -1
  127. package/fesm2015/taiga-ui-experimental-directives-sensitive.js +3 -3
  128. package/fesm2015/taiga-ui-experimental-directives-sensitive.js.map +1 -1
  129. package/fesm2015/taiga-ui-experimental-directives-surface.js +7 -6
  130. package/fesm2015/taiga-ui-experimental-directives-surface.js.map +1 -1
  131. package/fesm2015/taiga-ui-experimental-directives.js +2 -0
  132. package/fesm2015/taiga-ui-experimental-directives.js.map +1 -1
  133. package/fesm2015/taiga-ui-experimental-tokens.js +22 -0
  134. package/fesm2015/taiga-ui-experimental-tokens.js.map +1 -0
  135. package/fesm2015/taiga-ui-experimental.js +1 -0
  136. package/fesm2015/taiga-ui-experimental.js.map +1 -1
  137. package/index.d.ts +1 -0
  138. package/package.json +5 -5
  139. package/tokens/icon-resolver.d.ts +4 -0
  140. package/tokens/index.d.ts +1 -0
  141. package/tokens/package.json +10 -0
  142. package/tokens/taiga-ui-experimental-tokens.d.ts +5 -0
  143. package/components/icon/icon.pipe.d.ts +0 -12
  144. package/esm2015/components/icon/icon.pipe.js +0 -30
@@ -1,70 +1,86 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ChangeDetectionStrategy, Inject, Input, NgModule } from '@angular/core';
3
- import { tuiCreateToken, tuiProvideOptions, TUI_PLATFORM } from '@taiga-ui/cdk';
4
- import { TUI_MODE, MODE_PROVIDER } from '@taiga-ui/core';
5
- import * as i1 from 'rxjs';
2
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, Inject, Input, NgModule } from '@angular/core';
3
+ import * as i1 from '@taiga-ui/cdk';
4
+ import { tuiCreateToken, tuiProvideOptions, TUI_PLATFORM, TuiDirectiveStylesService } from '@taiga-ui/cdk';
5
+
6
+ class TuiBadgeComponent {
7
+ }
8
+ TuiBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ TuiBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiBadgeComponent, selector: "ng-component", host: { classAttribute: "tui-badge" }, ngImport: i0, template: '', isInline: true, styles: ["tui-badge,[tuiBadge]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;text-decoration:none;position:relative;display:inline-flex;align-items:center;box-sizing:border-box;background:#959595;color:var(--tui-base-01);border-radius:6rem;white-space:nowrap;overflow:hidden;vertical-align:middle;font:var(--tui-font-text-s);flex-shrink:0;max-width:100%;padding:var(--t-padding);height:var(--t-size);min-width:var(--t-size);--t-dot: currentColor;--t-icon-size: 1rem}tui-badge._dot:before,[tuiBadge]._dot:before{content:\"\";display:block;background:var(--t-dot);margin:0 .125rem 0 .25rem;width:.25rem;height:.25rem;border-radius:100%}tui-badge>tui-svg,[tuiBadge]>tui-svg,tui-badge>tui-icon,[tuiBadge]>tui-icon{width:var(--t-icon-size)!important;height:var(--t-icon-size)!important}tui-badge[data-appearance=error],[tuiBadge][data-appearance=error]{--t-dot: var(--tui-error-fill)}tui-badge[data-appearance=success],[tuiBadge][data-appearance=success]{--t-dot: var(--tui-success-fill)}tui-badge[data-appearance=warning],[tuiBadge][data-appearance=warning]{--t-dot: var(--tui-warning-fill)}tui-badge[data-appearance=info],[tuiBadge][data-appearance=info]{--t-dot: var(--tui-info-fill)}tui-badge[data-appearance=neutral],[tuiBadge][data-appearance=neutral]{--t-dot: var(--tui-neutral-fill)}tui-badge[data-appearance=neutral][data-platform=ios],[tuiBadge][data-appearance=neutral][data-platform=ios],tui-badge[data-appearance=neutral][data-platform=android],[tuiBadge][data-appearance=neutral][data-platform=android]{background:var(--tui-base-06)}tui-badge[data-size=s],[tuiBadge][data-size=s]{text-indent:.125rem;--t-padding: 0 .3125rem 0 .1875rem;--t-size: 1rem;--t-icon-size: .625rem}tui-badge[data-size=s][data-platform=ios],[tuiBadge][data-size=s][data-platform=ios],tui-badge[data-size=s][data-platform=android],[tuiBadge][data-size=s][data-platform=android]{font:var(--tui-font-text-xs);font-weight:bold}tui-badge[data-size=m],[tuiBadge][data-size=m]{text-indent:.125rem;--t-padding: 0 .375rem 0 .25rem;--t-size: 1.25rem;--t-icon-size: .75rem}tui-badge[data-size=l],[tuiBadge][data-size=l]{text-indent:.25rem;--t-padding: 0 .5rem 0 .25rem;--t-size: var(--tui-height-xs)}tui-badge[data-size=xl],[tuiBadge][data-size=xl]{font:var(--tui-font-text-m);text-indent:.25rem;--t-padding: 0 .75rem 0 .5rem;--t-size: var(--tui-height-s)}tui-badge[data-size=xl][data-platform=ios],[tuiBadge][data-size=xl][data-platform=ios],tui-badge[data-size=xl][data-platform=android],[tuiBadge][data-size=xl][data-platform=android]{font:var(--tui-font-text-s);font-weight:bold;--t-padding: 0 .625rem 0 .375rem;--t-size: 1.75rem}tui-badge[data-platform=ios],[tuiBadge][data-platform=ios],tui-badge[data-platform=android],[tuiBadge][data-platform=android]{font-weight:bold}img[tuiBadge]{padding:0}tui-icon[tuiBadge]{-webkit-mask:none;mask:none;height:var(--t-size);width:var(--t-size)}tui-icon[tuiBadge][data-size=s]:after{-webkit-mask-size:.625rem;mask-size:.625rem}tui-icon[tuiBadge][data-size=m]:after{-webkit-mask-size:.75rem;mask-size:.75rem}tui-icon[tuiBadge][data-size=l]:after,tui-icon[tuiBadge][data-size=xl]:after{-webkit-mask-size:1rem;mask-size:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgeComponent, decorators: [{
11
+ type: Component,
12
+ args: [{
13
+ template: '',
14
+ styleUrls: ['./badge.style.less'],
15
+ encapsulation: ViewEncapsulation.None,
16
+ changeDetection: ChangeDetectionStrategy.OnPush,
17
+ host: {
18
+ class: 'tui-badge',
19
+ },
20
+ }]
21
+ }] });
6
22
 
7
23
  const TUI_BADGE_DEFAULT_OPTIONS = {
8
24
  size: `l`,
9
25
  appearance: `default`,
10
- hoverable: false,
26
+ dot: false,
11
27
  };
12
28
  const TUI_BADGE_OPTIONS = tuiCreateToken(TUI_BADGE_DEFAULT_OPTIONS);
13
29
  function tuiBadgeOptionsProvider(options) {
14
30
  return tuiProvideOptions(TUI_BADGE_OPTIONS, options, TUI_BADGE_DEFAULT_OPTIONS);
15
31
  }
16
32
 
17
- class TuiBadgeComponent {
18
- constructor(options, mode$, platform) {
33
+ class TuiBadgeDirective {
34
+ constructor(options, platform, directiveStyles) {
19
35
  this.options = options;
20
- this.mode$ = mode$;
21
36
  this.platform = platform;
22
37
  this.size = this.options.size;
23
38
  this.appearance = this.options.appearance;
39
+ this.dot = this.options.dot;
40
+ directiveStyles.addComponent(TuiBadgeComponent);
24
41
  }
25
42
  }
26
- TuiBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgeComponent, deps: [{ token: TUI_BADGE_OPTIONS }, { token: TUI_MODE }, { token: TUI_PLATFORM }], target: i0.ɵɵFactoryTarget.Component });
27
- TuiBadgeComponentcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiBadgeComponent, selector: "tui-badge", inputs: { size: "size", appearance: "appearance" }, host: { listeners: { "$.data-mode.attr": "mode$" }, properties: { "attr.data-platform": "platform", "attr.data-appearance": "appearance", "attr.data-size": "size" } }, providers: [MODE_PROVIDER], ngImport: i0, template: "<div class=\"t-image\">\n <ng-content select=\"img\"></ng-content>\n</div>\n<div\n class=\"t-icon\"\n [class._icon-only]=\"!text.innerHTML.trim()\"\n>\n <ng-content select=\"tui-svg\"></ng-content>\n</div>\n\n<span\n #text\n class=\"t-text\"\n>\n <ng-content></ng-content>\n</span>\n", styles: [":host{--left-content-color: currentColor;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;color:var(--tui-base-01);border-radius:6rem;white-space:nowrap;overflow:hidden;vertical-align:middle;font:var(--tui-font-text-s);flex-shrink:0;max-width:100%}:host:after{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:0;left:0;width:100%;height:100%;content:\"\";border-radius:inherit;pointer-events:none}:host[data-appearance=primary]{background:var(--tui-primary);color:var(--tui-primary-text)}:host[data-appearance=accent]{background:var(--tui-accent);color:var(--tui-accent-text)}:host[data-appearance=light]{background:var(--tui-secondary);color:var(--tui-text-01)}:host[data-appearance=light][data-platform=ios],:host[data-appearance=light][data-platform=android]{background:var(--tui-base-06)}:host[data-appearance=error]{--left-content-color: var(--tui-error-fill);background:var(--tui-error-bg);color:var(--tui-text-01)}:host[data-appearance=error][data-mode=onDark]{background:var(--tui-error-bg-night);color:var(--tui-text-01-night)}:host[data-appearance=success]{--left-content-color: var(--tui-success-fill);background:var(--tui-success-bg);color:var(--tui-text-01)}:host[data-appearance=success][data-mode=onDark]{background:var(--tui-success-bg-night);color:var(--tui-text-01-night)}:host[data-appearance=warning]{--left-content-color: var(--tui-warning-fill);background:var(--tui-warning-bg);color:var(--tui-text-01)}:host[data-appearance=warning][data-mode=onDark]{background:var(--tui-warning-bg-night);color:var(--tui-text-01-night)}:host[data-appearance=info]{--left-content-color: var(--tui-info-fill);background:var(--tui-info-bg);color:var(--tui-text-01)}:host[data-appearance=info][data-mode=onDark]{background:var(--tui-info-bg-night);color:var(--tui-text-01-night)}:host[data-appearance=neutral]{--left-content-color: var(--tui-neutral-fill);background:var(--tui-neutral-bg);color:var(--tui-text-01)}:host[data-appearance=neutral][data-mode=onDark]{background:var(--tui-neutral-bg-night);color:var(--tui-text-01-night)}:host[data-appearance=default]{background:var(--tui-base-06)}:host[data-appearance=default][data-mode=onDark]{background:var(--tui-clear-inverse-hover)}:host[data-appearance=default][data-mode=onLight]{background:var(--tui-clear);color:var(--tui-text-01)}:host:not(._empty-value){padding:0 .25rem}:host:not(._empty-value)[data-size=xl]{padding:0 .375rem}:host:not(._empty-value)[data-size=xl][data-platform=web]{padding:0 .5rem}:host:not(._empty-value)[data-size=s]{padding:0 .125rem}:host:not(._empty-value)[data-size=s][data-platform=web]{padding:0 .25rem}:host[data-size=s]{height:1.25rem;min-width:1.25rem}:host[data-size=s][data-platform=ios],:host[data-size=s][data-platform=android]{font:var(--tui-font-text-xs);font-weight:bold;height:1rem;min-width:1rem}:host[data-size=m]{height:1.25rem;min-width:1.25rem}:host[data-size=l]{height:var(--tui-height-xs);min-width:var(--tui-height-xs)}:host[data-size=l][data-platform=ios],:host[data-size=l][data-platform=android]{height:1.5rem;min-width:1.5rem}:host[data-size=xl]{height:var(--tui-height-s);min-width:var(--tui-height-s)}:host[data-size=xl][data-platform=ios],:host[data-size=xl][data-platform=android]{height:1.75rem;min-width:1.75rem}:host[data-size=xl][data-platform=web]{font:var(--tui-font-text-m)}:host[data-platform=ios],:host[data-platform=android]{font-weight:bold}.t-text{white-space:nowrap;padding:0 .125rem;overflow:hidden}.t-text:empty{display:none}:host[data-size=xl][data-platform=web] .t-text{padding:0 .375rem}:host[data-size=xl] .t-text{padding:0 .25rem}:host[data-size=l] .t-text{padding:0 .25rem}.t-icon{display:none;color:var(--left-content-color)}.t-icon:not(:empty){display:flex;width:1rem;height:1rem;align-items:center;justify-content:center}.t-icon:not(:empty):before{content:none}:host[data-size=m] .t-icon:not(:empty),:host[data-size=s][data-platform=web] .t-icon:not(:empty){width:.75rem;transform:scale(.75)}:host[data-size=s] .t-icon:not(:empty){width:.625rem;transform:scale(.625)}:host[data-size=s] .t-icon:not(:empty):not(._icon-only){margin-left:.0625rem}.t-icon:before{content:\"\";display:block;background:currentColor;margin:0 .125rem 0 .25rem;width:.25rem;height:.25rem;border-radius:100%}:host[data-appearance=error] .t-icon:empty,:host[data-appearance=success] .t-icon:empty,:host[data-appearance=warning] .t-icon:empty,:host[data-appearance=info] .t-icon:empty,:host[data-appearance=neutral] .t-icon:empty{display:block}:host[data-size=l] .t-icon:before{width:.375rem;height:.375rem}:host[data-size=xl] .t-icon:before{width:.5rem;height:.5rem}.t-image{display:none}:host::ng-deep .t-image img{width:100%;height:100%}.t-image:not(:empty){display:block;width:1rem;height:1rem;margin:0 -.5rem}.t-image:not(:empty)~.t-text{margin-left:.5rem}.t-image:not(:empty)~.t-icon{display:none}:host[data-size=xl] .t-image:not(:empty){height:1.75rem;width:1.75rem}:host[data-size=l] .t-image:not(:empty){height:1.5rem;width:1.5rem}:host[data-size=m] .t-image:not(:empty){height:1.25rem;width:1.25rem}:host[data-size=xl][data-platform=web] .t-image:not(:empty){width:2rem;height:2rem}:host[data-size=s][data-platform=web] .t-image:not(:empty){width:1.25rem;height:1.25rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgeComponent, decorators: [{
29
- type: Component,
43
+ TuiBadgeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgeDirective, deps: [{ token: TUI_BADGE_OPTIONS }, { token: TUI_PLATFORM }, { token: TuiDirectiveStylesService }], target: i0.ɵɵFactoryTarget.Directive });
44
+ TuiBadgeDirectivedir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiBadgeDirective, selector: "tui-badge,[tuiBadge]", inputs: { size: "size", appearance: "appearance", dot: "dot" }, host: { attributes: { "tuiAppearance": "" }, properties: { "class._dot": "dot", "attr.data-platform": "platform", "attr.data-appearance": "appearance", "attr.data-size": "size" } }, ngImport: i0 });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgeDirective, decorators: [{
46
+ type: Directive,
30
47
  args: [{
31
- selector: 'tui-badge',
32
- templateUrl: './badge.template.html',
33
- styleUrls: ['./badge.style.less'],
34
- changeDetection: ChangeDetectionStrategy.OnPush,
35
- providers: [MODE_PROVIDER],
48
+ selector: 'tui-badge,[tuiBadge]',
36
49
  host: {
50
+ tuiAppearance: '',
51
+ '[class._dot]': 'dot',
37
52
  '[attr.data-platform]': 'platform',
38
53
  '[attr.data-appearance]': 'appearance',
39
54
  '[attr.data-size]': 'size',
40
- '($.data-mode.attr)': 'mode$',
41
55
  },
42
56
  }]
43
57
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
44
58
  type: Inject,
45
59
  args: [TUI_BADGE_OPTIONS]
46
- }] }, { type: i1.Observable, decorators: [{
47
- type: Inject,
48
- args: [TUI_MODE]
49
60
  }] }, { type: undefined, decorators: [{
50
61
  type: Inject,
51
62
  args: [TUI_PLATFORM]
63
+ }] }, { type: i1.TuiDirectiveStylesService, decorators: [{
64
+ type: Inject,
65
+ args: [TuiDirectiveStylesService]
52
66
  }] }]; }, propDecorators: { size: [{
53
67
  type: Input
54
68
  }], appearance: [{
55
69
  type: Input
70
+ }], dot: [{
71
+ type: Input
56
72
  }] } });
57
73
 
58
74
  class TuiBadgeModule {
59
75
  }
60
76
  TuiBadgeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
61
- TuiBadgeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgeModule, declarations: [TuiBadgeComponent], exports: [TuiBadgeComponent] });
77
+ TuiBadgeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgeModule, declarations: [TuiBadgeComponent, TuiBadgeDirective], exports: [TuiBadgeDirective] });
62
78
  TuiBadgeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgeModule });
63
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgeModule, decorators: [{
64
80
  type: NgModule,
65
81
  args: [{
66
- declarations: [TuiBadgeComponent],
67
- exports: [TuiBadgeComponent],
82
+ declarations: [TuiBadgeComponent, TuiBadgeDirective],
83
+ exports: [TuiBadgeDirective],
68
84
  }]
69
85
  }] });
70
86
 
@@ -72,5 +88,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
72
88
  * Generated bundle index. Do not edit.
73
89
  */
74
90
 
75
- export { TUI_BADGE_DEFAULT_OPTIONS, TUI_BADGE_OPTIONS, TuiBadgeComponent, TuiBadgeModule, tuiBadgeOptionsProvider };
91
+ export { TUI_BADGE_DEFAULT_OPTIONS, TUI_BADGE_OPTIONS, TuiBadgeComponent, TuiBadgeDirective, TuiBadgeModule, tuiBadgeOptionsProvider };
76
92
  //# sourceMappingURL=taiga-ui-experimental-components-badge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-experimental-components-badge.js","sources":["../../../projects/experimental/components/badge/badge.options.ts","../../../projects/experimental/components/badge/badge.component.ts","../../../projects/experimental/components/badge/badge.template.html","../../../projects/experimental/components/badge/badge.module.ts","../../../projects/experimental/components/badge/taiga-ui-experimental-components-badge.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk';\nimport {TuiSizeS, TuiSizeXL} from '@taiga-ui/core';\nimport {TuiStatus} from '@taiga-ui/kit';\n\nexport interface TuiBadgeOptions {\n readonly appearance: TuiStatus | 'accent' | 'light';\n readonly size: TuiSizeS | TuiSizeXL;\n readonly hoverable: boolean;\n}\n\nexport const TUI_BADGE_DEFAULT_OPTIONS: TuiBadgeOptions = {\n size: `l`,\n appearance: `default`,\n hoverable: false,\n};\n\nexport const TUI_BADGE_OPTIONS = tuiCreateToken(TUI_BADGE_DEFAULT_OPTIONS);\n\nexport function tuiBadgeOptionsProvider(options: Partial<TuiBadgeOptions>): Provider {\n return tuiProvideOptions(TUI_BADGE_OPTIONS, options, TUI_BADGE_DEFAULT_OPTIONS);\n}\n","import {ChangeDetectionStrategy, Component, Inject, Input} from '@angular/core';\nimport {TUI_PLATFORM, TuiPlatform} from '@taiga-ui/cdk';\nimport {MODE_PROVIDER, TUI_MODE, TuiBrightness} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TUI_BADGE_OPTIONS, TuiBadgeOptions} from './badge.options';\n\n@Component({\n selector: 'tui-badge',\n templateUrl: './badge.template.html',\n styleUrls: ['./badge.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MODE_PROVIDER],\n host: {\n '[attr.data-platform]': 'platform',\n '[attr.data-appearance]': 'appearance',\n '[attr.data-size]': 'size',\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiBadgeComponent {\n @Input()\n size = this.options.size;\n\n @Input()\n appearance = this.options.appearance;\n\n constructor(\n @Inject(TUI_BADGE_OPTIONS) private readonly options: TuiBadgeOptions,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_PLATFORM) readonly platform: TuiPlatform,\n ) {}\n}\n","<div class=\"t-image\">\n <ng-content select=\"img\"></ng-content>\n</div>\n<div\n class=\"t-icon\"\n [class._icon-only]=\"!text.innerHTML.trim()\"\n>\n <ng-content select=\"tui-svg\"></ng-content>\n</div>\n\n<span\n #text\n class=\"t-text\"\n>\n <ng-content></ng-content>\n</span>\n","import {NgModule} from '@angular/core';\n\nimport {TuiBadgeComponent} from './badge.component';\n\n@NgModule({\n declarations: [TuiBadgeComponent],\n exports: [TuiBadgeComponent],\n})\nexport class TuiBadgeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-experimental-components-badge.js","sources":["../../../projects/experimental/components/badge/badge.component.ts","../../../projects/experimental/components/badge/badge.options.ts","../../../projects/experimental/components/badge/badge.directive.ts","../../../projects/experimental/components/badge/badge.module.ts","../../../projects/experimental/components/badge/taiga-ui-experimental-components-badge.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n template: '',\n styleUrls: ['./badge.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-badge',\n },\n})\nexport class TuiBadgeComponent {}\n","import {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk';\nimport {TuiSizeS, TuiSizeXL} from '@taiga-ui/core';\n\nexport interface TuiBadgeOptions {\n readonly appearance: string;\n readonly size: TuiSizeS | TuiSizeXL;\n readonly dot: boolean;\n}\n\nexport const TUI_BADGE_DEFAULT_OPTIONS: TuiBadgeOptions = {\n size: `l`,\n appearance: `default`,\n dot: false,\n};\n\nexport const TUI_BADGE_OPTIONS = tuiCreateToken(TUI_BADGE_DEFAULT_OPTIONS);\n\nexport function tuiBadgeOptionsProvider(options: Partial<TuiBadgeOptions>): Provider {\n return tuiProvideOptions(TUI_BADGE_OPTIONS, options, TUI_BADGE_DEFAULT_OPTIONS);\n}\n","import {Directive, Inject, Input} from '@angular/core';\nimport {TUI_PLATFORM, TuiDirectiveStylesService, TuiPlatform} from '@taiga-ui/cdk';\n\nimport {TuiBadgeComponent} from './badge.component';\nimport {TUI_BADGE_OPTIONS, TuiBadgeOptions} from './badge.options';\n\n@Directive({\n selector: 'tui-badge,[tuiBadge]',\n host: {\n tuiAppearance: '',\n '[class._dot]': 'dot',\n '[attr.data-platform]': 'platform',\n '[attr.data-appearance]': 'appearance',\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiBadgeDirective {\n @Input()\n size = this.options.size;\n\n @Input()\n appearance = this.options.appearance;\n\n @Input()\n dot = this.options.dot;\n\n constructor(\n @Inject(TUI_BADGE_OPTIONS) private readonly options: TuiBadgeOptions,\n @Inject(TUI_PLATFORM) readonly platform: TuiPlatform,\n @Inject(TuiDirectiveStylesService) directiveStyles: TuiDirectiveStylesService,\n ) {\n directiveStyles.addComponent(TuiBadgeComponent);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiBadgeComponent} from './badge.component';\nimport {TuiBadgeDirective} from './badge.directive';\n\n@NgModule({\n declarations: [TuiBadgeComponent, TuiBadgeDirective],\n exports: [TuiBadgeDirective],\n})\nexport class TuiBadgeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { CommonModule } from '@angular/common';
7
7
  class TuiBadgedContentComponent {
8
8
  }
9
9
  TuiBadgedContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgedContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- TuiBadgedContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiBadgedContentComponent, selector: "tui-badged-content", ngImport: i0, template: "<ng-content></ng-content>\n\n<div\n #badgeTop\n class=\"t-badge t-badge_top\"\n [style.--t-badge-height.px]=\"badgeTop.offsetHeight\"\n (tuiResize)=\"(0)\"\n>\n <ng-content select=\"tui-badge-notification[tuiSlot='top']\"></ng-content>\n <div class=\"t-border\">\n <ng-content select=\"[tuiSlot='top']\"></ng-content>\n </div>\n</div>\n\n<div\n #badgeBottom\n class=\"t-badge t-badge_bottom\"\n [style.--t-badge-height.px]=\"badgeBottom.offsetHeight\"\n (tuiResize)=\"(0)\"\n>\n <ng-content select=\"tui-badge-notification[tuiSlot='bottom']\"></ng-content>\n <div class=\"t-border\">\n <ng-content select=\"[tuiSlot='bottom']\"></ng-content>\n </div>\n</div>\n", styles: [":host{--tui-radius: var(--tui-radius-l);--t-badge-height: 0;--t-corner-offset: calc((var(--tui-radius) * 1.4142 - var(--tui-radius)) * 1 / 1.4142);position:relative;display:inline-block;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-max-content;width:max-content;color:var(--tui-base-01)}.t-badge{--t-offset: calc(var(--t-badge-height) * -.5 + var(--t-corner-offset));position:absolute;display:flex}.t-badge_top{top:var(--t-offset);right:var(--t-offset)}.t-badge_bottom{bottom:var(--t-offset);right:var(--t-offset)}.t-border:not(:empty){display:flex;border-radius:6rem;box-shadow:0 0 0 1px currentColor}\n"], directives: [{ type: i1.TuiResizeDirective, selector: "[tuiResize]", outputs: ["tuiResize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10
+ TuiBadgedContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiBadgedContentComponent, selector: "tui-badged-content", ngImport: i0, template: "<ng-content></ng-content>\n\n<div\n #badgeTop\n class=\"t-badge t-badge_top\"\n [style.--t-badge-height.px]=\"badgeTop.offsetHeight\"\n (tuiResize)=\"(0)\"\n>\n <ng-content select=\"tui-badge-notification[tuiSlot='top']\"></ng-content>\n <div class=\"t-border\">\n <ng-content select=\"[tuiSlot='top']\"></ng-content>\n </div>\n</div>\n\n<div\n #badgeBottom\n class=\"t-badge t-badge_bottom\"\n [style.--t-badge-height.px]=\"badgeBottom.offsetHeight\"\n (tuiResize)=\"(0)\"\n>\n <ng-content select=\"tui-badge-notification[tuiSlot='bottom']\"></ng-content>\n <div class=\"t-border\">\n <ng-content select=\"[tuiSlot='bottom']\"></ng-content>\n </div>\n</div>\n", styles: [":host{--tui-radius: var(--tui-radius-l);--t-badge-height: 0;--t-corner-offset: calc((var(--tui-radius) * 1.4142 - var(--tui-radius)) * 1 / 1.4142);position:relative;display:inline-block;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-max-content;width:max-content;color:var(--tui-base-01)}.t-badge{--t-offset: calc(var(--t-badge-height) * -.5 + var(--t-corner-offset));position:absolute;display:flex}.t-badge_top{top:var(--t-offset);right:var(--t-offset)}.t-badge_bottom{bottom:var(--t-offset);right:var(--t-offset)}.t-border:not(:empty){display:flex;border-radius:6rem;box-shadow:0 0 0 1px currentColor;background:currentColor}\n"], directives: [{ type: i1.TuiResizeDirective, selector: "[tuiResize]", outputs: ["tuiResize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiBadgedContentComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-experimental-components-badged-content.js","sources":["../../../projects/experimental/components/badged-content/badged-content.component.ts","../../../projects/experimental/components/badged-content/badged-content.template.html","../../../projects/experimental/components/badged-content/badged-content.directive.ts","../../../projects/experimental/components/badged-content/badged-content.module.ts","../../../projects/experimental/components/badged-content/taiga-ui-experimental-components-badged-content.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'tui-badged-content',\n templateUrl: './badged-content.template.html',\n styleUrls: ['./badged-content.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiBadgedContentComponent {}\n","<ng-content></ng-content>\n\n<div\n #badgeTop\n class=\"t-badge t-badge_top\"\n [style.--t-badge-height.px]=\"badgeTop.offsetHeight\"\n (tuiResize)=\"(0)\"\n>\n <ng-content select=\"tui-badge-notification[tuiSlot='top']\"></ng-content>\n <div class=\"t-border\">\n <ng-content select=\"[tuiSlot='top']\"></ng-content>\n </div>\n</div>\n\n<div\n #badgeBottom\n class=\"t-badge t-badge_bottom\"\n [style.--t-badge-height.px]=\"badgeBottom.offsetHeight\"\n (tuiResize)=\"(0)\"\n>\n <ng-content select=\"tui-badge-notification[tuiSlot='bottom']\"></ng-content>\n <div class=\"t-border\">\n <ng-content select=\"[tuiSlot='bottom']\"></ng-content>\n </div>\n</div>\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n selector: '[tuiSlot]',\n})\nexport class TuiBadgedContentDirective {\n @Input()\n tuiSlot: string | 'bottom' | 'top' = 'top';\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiResizeModule} from '@taiga-ui/cdk';\n\nimport {TuiBadgedContentComponent} from './badged-content.component';\nimport {TuiBadgedContentDirective} from './badged-content.directive';\n\n@NgModule({\n imports: [CommonModule, TuiResizeModule],\n declarations: [TuiBadgedContentComponent, TuiBadgedContentDirective],\n exports: [TuiBadgedContentComponent, TuiBadgedContentDirective],\n})\nexport class TuiBadgedContentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAQa,yBAAyB,CAAA;;uHAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,0DCRtC,8sBAyBA,EAAA,MAAA,EAAA,CAAA,ooBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FDjBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,WAAW,EAAE,gCAAgC;oBAC7C,SAAS,EAAE,CAAC,6BAA6B,CAAC;oBAC1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA,CAAA;;;MEFY,yBAAyB,CAAA;AAHtC,IAAA,WAAA,GAAA;QAKI,IAAO,CAAA,OAAA,GAA8B,KAAK,CAAC;AAC9C,KAAA;;uHAHY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAAzB,yBAAyB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACxB,iBAAA,CAAA;8BAGG,OAAO,EAAA,CAAA;sBADN,KAAK;;;MCMG,sBAAsB,CAAA;;oHAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;qHAAtB,sBAAsB,EAAA,YAAA,EAAA,CAHhB,yBAAyB,EAAE,yBAAyB,CAAA,EAAA,OAAA,EAAA,CADzD,YAAY,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CAE7B,yBAAyB,EAAE,yBAAyB,CAAA,EAAA,CAAA,CAAA;AAErD,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAJtB,OAAA,EAAA,CAAA,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA,EAAA,CAAA,CAAA;4FAI/B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;AACxC,oBAAA,YAAY,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;AACpE,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;AAClE,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-experimental-components-badged-content.js","sources":["../../../projects/experimental/components/badged-content/badged-content.component.ts","../../../projects/experimental/components/badged-content/badged-content.template.html","../../../projects/experimental/components/badged-content/badged-content.directive.ts","../../../projects/experimental/components/badged-content/badged-content.module.ts","../../../projects/experimental/components/badged-content/taiga-ui-experimental-components-badged-content.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'tui-badged-content',\n templateUrl: './badged-content.template.html',\n styleUrls: ['./badged-content.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiBadgedContentComponent {}\n","<ng-content></ng-content>\n\n<div\n #badgeTop\n class=\"t-badge t-badge_top\"\n [style.--t-badge-height.px]=\"badgeTop.offsetHeight\"\n (tuiResize)=\"(0)\"\n>\n <ng-content select=\"tui-badge-notification[tuiSlot='top']\"></ng-content>\n <div class=\"t-border\">\n <ng-content select=\"[tuiSlot='top']\"></ng-content>\n </div>\n</div>\n\n<div\n #badgeBottom\n class=\"t-badge t-badge_bottom\"\n [style.--t-badge-height.px]=\"badgeBottom.offsetHeight\"\n (tuiResize)=\"(0)\"\n>\n <ng-content select=\"tui-badge-notification[tuiSlot='bottom']\"></ng-content>\n <div class=\"t-border\">\n <ng-content select=\"[tuiSlot='bottom']\"></ng-content>\n </div>\n</div>\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n selector: '[tuiSlot]',\n})\nexport class TuiBadgedContentDirective {\n @Input()\n tuiSlot: string | 'bottom' | 'top' = 'top';\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiResizeModule} from '@taiga-ui/cdk';\n\nimport {TuiBadgedContentComponent} from './badged-content.component';\nimport {TuiBadgedContentDirective} from './badged-content.directive';\n\n@NgModule({\n imports: [CommonModule, TuiResizeModule],\n declarations: [TuiBadgedContentComponent, TuiBadgedContentDirective],\n exports: [TuiBadgedContentComponent, TuiBadgedContentDirective],\n})\nexport class TuiBadgedContentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAQa,yBAAyB,CAAA;;uHAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,0DCRtC,8sBAyBA,EAAA,MAAA,EAAA,CAAA,4pBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FDjBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,WAAW,EAAE,gCAAgC;oBAC7C,SAAS,EAAE,CAAC,6BAA6B,CAAC;oBAC1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA,CAAA;;;MEFY,yBAAyB,CAAA;AAHtC,IAAA,WAAA,GAAA;QAKI,IAAO,CAAA,OAAA,GAA8B,KAAK,CAAC;AAC9C,KAAA;;uHAHY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAAzB,yBAAyB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACxB,iBAAA,CAAA;8BAGG,OAAO,EAAA,CAAA;sBADN,KAAK;;;MCMG,sBAAsB,CAAA;;oHAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;qHAAtB,sBAAsB,EAAA,YAAA,EAAA,CAHhB,yBAAyB,EAAE,yBAAyB,CAAA,EAAA,OAAA,EAAA,CADzD,YAAY,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CAE7B,yBAAyB,EAAE,yBAAyB,CAAA,EAAA,CAAA,CAAA;AAErD,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAJtB,OAAA,EAAA,CAAA,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA,EAAA,CAAA,CAAA;4FAI/B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;AACxC,oBAAA,YAAY,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;AACpE,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;AAClE,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
@@ -1,12 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, ChangeDetectionStrategy, Inject, Input, HostListener, ViewEncapsulation, Directive, NgModule } from '@angular/core';
3
- import * as i2$1 from '@taiga-ui/cdk';
3
+ import * as i2 from '@taiga-ui/cdk';
4
4
  import { tuiCreateToken, tuiProvideOptions, tuiIsString, TUI_PLATFORM, TuiDirectiveStylesService } from '@taiga-ui/cdk';
5
5
  import * as i1 from '@taiga-ui/core';
6
6
  import { tuiSizeBigger, TUI_MODE, MODE_PROVIDER, TuiSvgModule, TuiLoaderModule } from '@taiga-ui/core';
7
- import * as i2 from '@angular/common';
8
- import { CommonModule } from '@angular/common';
7
+ import { TUI_ICON_RESOLVER } from '@taiga-ui/experimental/tokens';
9
8
  import * as i1$1 from 'rxjs';
9
+ import { CommonModule } from '@angular/common';
10
10
 
11
11
  const TUI_BUTTON_DEFAULT_OPTIONS = {
12
12
  size: `l`,
@@ -22,8 +22,6 @@ class TuiButtonComponent {
22
22
  this.options = options;
23
23
  this.size = this.options.size;
24
24
  this.loading = false;
25
- this.iconLeft = '';
26
- this.iconRight = '';
27
25
  }
28
26
  get loaderSize() {
29
27
  return tuiSizeBigger(this.size) ? 'm' : 's';
@@ -38,11 +36,11 @@ class TuiButtonComponent {
38
36
  }
39
37
  }
40
38
  TuiButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiButtonComponent, deps: [{ token: TUI_BUTTON_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
41
- TuiButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiButtonComponent, selector: "[tuiButton][loading],[tuiIconButton][loading],[tuiButton][iconLeft],[tuiButton][iconRight],[tuiIconButton][iconLeft]", inputs: { size: "size", loading: "loading", iconLeft: "iconLeft", iconRight: "iconRight" }, host: { listeners: { "click.capture": "onClick($event)" }, properties: { "attr.aria-disabled": "loading", "class._loading": "loading" } }, ngImport: i0, template: "<tui-svg\n *ngIf=\"iconLeft\"\n [src]=\"iconLeft\"\n></tui-svg>\n<ng-content></ng-content>\n<tui-svg\n *ngIf=\"iconRight\"\n class=\"t-icon\"\n [src]=\"iconRight\"\n></tui-svg>\n<tui-loader\n aria-live=\"polite\"\n role=\"status\"\n class=\"t-loader\"\n [inheritColor]=\"true\"\n [showLoader]=\"!!loading\"\n [size]=\"loaderSize\"\n [textContent]=\"label\"\n></tui-loader>\n", components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39
+ TuiButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiButtonComponent, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: { size: "size", loading: "loading" }, host: { listeners: { "click.capture": "onClick($event)" }, properties: { "attr.aria-disabled": "loading", "class._loading": "loading" } }, ngImport: i0, template: "<ng-content></ng-content>\n<tui-loader\n aria-live=\"polite\"\n role=\"status\"\n class=\"t-loader\"\n [inheritColor]=\"true\"\n [showLoader]=\"!!loading\"\n [size]=\"loaderSize\"\n [textContent]=\"label\"\n></tui-loader>\n", components: [{ type: i1.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiButtonComponent, decorators: [{
43
41
  type: Component,
44
42
  args: [{
45
- selector: '[tuiButton][loading],[tuiIconButton][loading],[tuiButton][iconLeft],[tuiButton][iconRight],[tuiIconButton][iconLeft]',
43
+ selector: '[tuiButton][loading],[tuiIconButton][loading]',
46
44
  templateUrl: './button.template.html',
47
45
  changeDetection: ChangeDetectionStrategy.OnPush,
48
46
  host: {
@@ -57,10 +55,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
57
55
  type: Input
58
56
  }], loading: [{
59
57
  type: Input
60
- }], iconLeft: [{
61
- type: Input
62
- }], iconRight: [{
63
- type: Input
64
58
  }], onClick: [{
65
59
  type: HostListener,
66
60
  args: ['click.capture', ['$event']]
@@ -69,7 +63,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
69
63
  class TuiButtonStylesComponent {
70
64
  }
71
65
  TuiButtonStylesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiButtonStylesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
72
- TuiButtonStylesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiButtonStylesComponent, selector: "ng-component", host: { classAttribute: "tui-button-styles" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiButtonNew]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;display:inline-flex;height:var(--t-size);align-items:center;justify-content:center;width:unset;white-space:nowrap;border-radius:var(--t-radius);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:none;cursor:pointer}[tuiButtonNew]>.t-icon{width:1rem;-webkit-margin-start:.125rem;margin-inline-start:.125rem;-webkit-margin-end:-.125rem;margin-inline-end:-.125rem}[tuiButtonNew]>.t-loader{position:absolute;top:0;left:0;width:100%;height:100%}[tuiButtonNew]>.t-loader .t-text{position:absolute}[tuiButtonNew][data-size=xs]{--t-size: var(--tui-height-xs);--t-radius: var(--tui-radius-xs);font:var(--tui-font-text-s);padding:0 .375rem 0 .25rem;text-indent:.125rem;grid-gap:.125rem;gap:.125rem}[tuiButtonNew][data-size=xs] tui-svg{width:1rem}[tuiButtonNew][data-size=s]{--t-size: var(--tui-height-s);--t-radius: var(--tui-radius-s);font:var(--tui-font-text-s);padding:0 .625rem 0 .5rem;text-indent:.125rem;grid-gap:.125rem;gap:.125rem}[tuiButtonNew][data-size=s] tui-svg{width:1rem}[tuiButtonNew][data-size=m]{--t-size: var(--tui-height-m);--t-radius: var(--tui-radius-m);font:var(--tui-font-text-m);font-weight:bold;padding:0 1rem 0 .625rem;text-indent:.375rem;grid-gap:.125rem;gap:.125rem}[tuiButtonNew][data-size=m]>.t-icon{-webkit-margin-start:.375rem;margin-inline-start:.375rem}[tuiButtonNew][data-size=l]{--t-size: var(--tui-height-l);--t-radius: var(--tui-radius-l);font:var(--tui-font-text-m);font-weight:bold;padding:0 1.25rem 0 1rem;text-indent:.25rem;grid-gap:.25rem;gap:.25rem}[tuiButtonNew][data-size=l]>.t-icon{-webkit-margin-start:.25rem;margin-inline-start:.25rem;-webkit-margin-end:-.25rem;margin-inline-end:-.25rem}[tuiButtonNew][data-platform=ios],[tuiButtonNew][data-platform=android]{width:100%}[tuiButtonNew][data-platform=ios][data-size=xs],[tuiButtonNew][data-platform=android][data-size=xs],[tuiButtonNew][data-platform=ios][data-size=s],[tuiButtonNew][data-platform=android][data-size=s],[tuiButtonNew][data-platform=ios][data-size=l],[tuiButtonNew][data-platform=android][data-size=l]{--t-radius: 1rem}[tuiButtonNew][data-platform=ios][data-size=m],[tuiButtonNew][data-platform=android][data-size=m]{--t-radius: .75rem}[tuiButtonNew] *{text-indent:0}[tuiButtonNew]._loading{--tui-disabled-opacity: 1;-webkit-text-fill-color:transparent}[tuiButtonNew]._loading>*{opacity:0}[tuiButtonNew]._loading>.t-loader{opacity:1}[tuiButtonNew]:disabled:not(._loading):not([data-platform=\"web\"]){background:var(--tui-clear);color:var(--tui-clear-active);opacity:1}[tuiButtonNew]:disabled:not(._loading):not([data-platform=\"web\"])[data-appearance=flat]{background:transparent}[tuiIconButton][tuiButtonNew]{width:var(--t-size);font-size:0;padding:0;text-indent:0;grid-gap:0;gap:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
66
+ TuiButtonStylesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiButtonStylesComponent, selector: "ng-component", host: { classAttribute: "tui-button-styles" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiButtonNew]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;text-decoration:none;position:relative;display:inline-flex;height:var(--t-size);align-items:center;justify-content:center;white-space:nowrap;border-radius:var(--t-radius);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer}[tuiButtonNew]>.t-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}[tuiButtonNew]>.t-loader .t-text{position:absolute}[tuiButtonNew][data-size=xs]{--t-size: var(--tui-height-xs);--t-radius: var(--tui-radius-xs);font:var(--tui-font-text-s);padding:0 .375rem 0 .25rem;text-indent:.125rem;grid-gap:.125rem;gap:.125rem}[tuiButtonNew][data-size=xs] tui-svg,[tuiButtonNew][data-size=xs]:before{width:1rem}[tuiButtonNew][data-size=s]{--t-size: var(--tui-height-s);--t-radius: var(--tui-radius-s);font:var(--tui-font-text-s);padding:0 .625rem 0 .5rem;text-indent:.125rem;grid-gap:.125rem;gap:.125rem}[tuiButtonNew][data-size=s] tui-svg,[tuiButtonNew][data-size=s]:not([tuiIconButton][data-appearance=\"icon\"]):before{width:1rem;height:1rem}[tuiButtonNew][data-size=m]{--t-size: var(--tui-height-m);--t-radius: var(--tui-radius-m);font:var(--tui-font-text-m);font-weight:bold;padding:0 1rem 0 .625rem;text-indent:.375rem;grid-gap:.125rem;gap:.125rem}[tuiButtonNew][data-size=m]:after{-webkit-margin-start:.375rem;margin-inline-start:.375rem}[tuiButtonNew][data-size=l]{--t-size: var(--tui-height-l);--t-radius: var(--tui-radius-l);font:var(--tui-font-text-m);font-weight:bold;padding:0 1.25rem 0 1rem;text-indent:.25rem;grid-gap:.25rem;gap:.25rem}[tuiButtonNew][data-size=l]:after{-webkit-margin-start:.25rem;margin-inline-start:.25rem;-webkit-margin-end:-.25rem;margin-inline-end:-.25rem}[tuiButtonNew][data-platform=ios],[tuiButtonNew][data-platform=android]{width:100%}[tuiButtonNew][data-platform=ios][data-size=xs],[tuiButtonNew][data-platform=android][data-size=xs],[tuiButtonNew][data-platform=ios][data-size=s],[tuiButtonNew][data-platform=android][data-size=s],[tuiButtonNew][data-platform=ios][data-size=l],[tuiButtonNew][data-platform=android][data-size=l]{--t-radius: 1rem}[tuiButtonNew][data-platform=ios][data-size=m],[tuiButtonNew][data-platform=android][data-size=m]{--t-radius: .75rem}[tuiButtonNew] *{text-indent:0}[tuiButtonNew]._loading{--tui-disabled-opacity: 1;-webkit-text-fill-color:transparent}[tuiButtonNew]._loading>*,[tuiButtonNew]._loading:before,[tuiButtonNew]._loading:after{opacity:0}[tuiButtonNew]._loading>.t-loader{opacity:1}[tuiButtonNew]._icon-left:before{content:\"\"}[tuiButtonNew]._icon-right:after{content:\"\"}[tuiButtonNew]:before{width:1.5rem;height:1.5rem;background:currentColor;-webkit-mask:var(--t-mask-left) no-repeat center / contain;mask:var(--t-mask-left) no-repeat center / contain}[tuiButtonNew]:after{width:1rem;height:1rem;background:currentColor;-webkit-margin-start:.125rem;margin-inline-start:.125rem;-webkit-margin-end:-.125rem;margin-inline-end:-.125rem;-webkit-mask:var(--t-mask-right) no-repeat center / contain;mask:var(--t-mask-right) no-repeat center / contain}[tuiButtonNew]:disabled:not(._loading):not([data-platform=\"web\"]){background:var(--tui-clear);color:var(--tui-clear-active);opacity:1}[tuiButtonNew]:disabled:not(._loading):not([data-platform=\"web\"])[data-appearance=flat]{background:transparent}[tuiIconButton][tuiButtonNew]{width:var(--t-size);font-size:0;padding:0;text-indent:0;grid-gap:0;gap:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
73
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiButtonStylesComponent, decorators: [{
74
68
  type: Component,
75
69
  args: [{
@@ -83,17 +77,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
83
77
  }]
84
78
  }] });
85
79
  class TuiButtonDirective {
86
- constructor(options, platform, mode$, directiveStyles) {
80
+ constructor(resolver, options, platform, mode$, directiveStyles) {
81
+ this.resolver = resolver;
87
82
  this.options = options;
88
83
  this.platform = platform;
89
84
  this.mode$ = mode$;
90
85
  this.size = this.options.size;
91
86
  this.appearance = this.options.appearance;
87
+ this.iconLeft = '';
88
+ this.iconRight = '';
92
89
  directiveStyles.addComponent(TuiButtonStylesComponent);
93
90
  }
94
91
  }
95
- TuiButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiButtonDirective, deps: [{ token: TUI_BUTTON_OPTIONS }, { token: TUI_PLATFORM }, { token: TUI_MODE }, { token: TuiDirectiveStylesService }], target: i0.ɵɵFactoryTarget.Directive });
96
- TuiButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiButtonDirective, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: { size: "size", appearance: "appearance" }, host: { attributes: { "tuiButtonNew": "", "tuiWrapper": "" }, listeners: { "$.data-mode.attr": "mode$" }, properties: { "attr.data-size": "size", "attr.data-appearance": "appearance", "attr.data-platform": "platform" } }, providers: [MODE_PROVIDER], ngImport: i0 });
92
+ TuiButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiButtonDirective, deps: [{ token: TUI_ICON_RESOLVER }, { token: TUI_BUTTON_OPTIONS }, { token: TUI_PLATFORM }, { token: TUI_MODE }, { token: TuiDirectiveStylesService }], target: i0.ɵɵFactoryTarget.Directive });
93
+ TuiButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiButtonDirective, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: { size: "size", appearance: "appearance", iconLeft: "iconLeft", iconRight: "iconRight" }, host: { attributes: { "tuiButtonNew": "", "tuiAppearance": "" }, listeners: { "$.data-mode.attr": "mode$" }, properties: { "class._icon-left": "iconLeft", "class._icon-right": "iconRight", "style.--t-mask-left": "\"url(\" + resolver(iconLeft) + \")\"", "style.--t-mask-right": "\"url(\" + resolver(iconRight) + \")\"", "attr.data-size": "size", "attr.data-appearance": "appearance", "attr.data-platform": "platform" } }, providers: [MODE_PROVIDER], ngImport: i0 });
97
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiButtonDirective, decorators: [{
98
95
  type: Directive,
99
96
  args: [{
@@ -101,7 +98,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
101
98
  providers: [MODE_PROVIDER],
102
99
  host: {
103
100
  tuiButtonNew: '',
104
- tuiWrapper: '',
101
+ tuiAppearance: '',
102
+ '[class._icon-left]': 'iconLeft',
103
+ '[class._icon-right]': 'iconRight',
104
+ '[style.--t-mask-left]': '"url(" + resolver(iconLeft) + ")"',
105
+ '[style.--t-mask-right]': '"url(" + resolver(iconRight) + ")"',
105
106
  '[attr.data-size]': 'size',
106
107
  '[attr.data-appearance]': 'appearance',
107
108
  '[attr.data-platform]': 'platform',
@@ -109,6 +110,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
109
110
  },
110
111
  }]
111
112
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
113
+ type: Inject,
114
+ args: [TUI_ICON_RESOLVER]
115
+ }] }, { type: undefined, decorators: [{
112
116
  type: Inject,
113
117
  args: [TUI_BUTTON_OPTIONS]
114
118
  }] }, { type: undefined, decorators: [{
@@ -117,13 +121,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
117
121
  }] }, { type: i1$1.Observable, decorators: [{
118
122
  type: Inject,
119
123
  args: [TUI_MODE]
120
- }] }, { type: i2$1.TuiDirectiveStylesService, decorators: [{
124
+ }] }, { type: i2.TuiDirectiveStylesService, decorators: [{
121
125
  type: Inject,
122
126
  args: [TuiDirectiveStylesService]
123
127
  }] }]; }, propDecorators: { size: [{
124
128
  type: Input
125
129
  }], appearance: [{
126
130
  type: Input
131
+ }], iconLeft: [{
132
+ type: Input
133
+ }], iconRight: [{
134
+ type: Input
127
135
  }] } });
128
136
 
129
137
  class TuiButtonModule {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-experimental-components-button.js","sources":["../../../projects/experimental/components/button/button.options.ts","../../../projects/experimental/components/button/button.component.ts","../../../projects/experimental/components/button/button.template.html","../../../projects/experimental/components/button/button.directive.ts","../../../projects/experimental/components/button/button.module.ts","../../../projects/experimental/components/button/taiga-ui-experimental-components-button.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk';\nimport {TuiSizeXL, TuiSizeXS} from '@taiga-ui/core';\n\nexport interface TuiButtonOptions {\n readonly appearance: string;\n readonly size: TuiSizeXL | TuiSizeXS;\n}\n\nexport const TUI_BUTTON_DEFAULT_OPTIONS: TuiButtonOptions = {\n size: `l`,\n appearance: `primary`,\n};\n\nexport const TUI_BUTTON_OPTIONS = tuiCreateToken(TUI_BUTTON_DEFAULT_OPTIONS);\n\nexport function tuiButtonOptionsProvider(options: Partial<TuiButtonOptions>): Provider {\n return tuiProvideOptions(TUI_BUTTON_OPTIONS, options, TUI_BUTTON_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport {tuiIsString} from '@taiga-ui/cdk';\nimport {tuiSizeBigger, TuiSizeS} from '@taiga-ui/core';\n\nimport {TUI_BUTTON_OPTIONS, TuiButtonOptions} from './button.options';\n\n@Component({\n selector:\n '[tuiButton][loading],[tuiIconButton][loading],[tuiButton][iconLeft],[tuiButton][iconRight],[tuiIconButton][iconLeft]',\n templateUrl: './button.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-disabled]': 'loading',\n '[class._loading]': 'loading',\n },\n})\nexport class TuiButtonComponent {\n @Input()\n size = this.options.size;\n\n @Input()\n loading: boolean | string | null = false;\n\n @Input()\n iconLeft = '';\n\n @Input()\n iconRight = '';\n\n constructor(@Inject(TUI_BUTTON_OPTIONS) private readonly options: TuiButtonOptions) {}\n\n get loaderSize(): TuiSizeS {\n return tuiSizeBigger(this.size) ? 'm' : 's';\n }\n\n get label(): string {\n return tuiIsString(this.loading) ? this.loading : '';\n }\n\n @HostListener('click.capture', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.loading) {\n event.stopPropagation();\n }\n }\n}\n","<tui-svg\n *ngIf=\"iconLeft\"\n [src]=\"iconLeft\"\n></tui-svg>\n<ng-content></ng-content>\n<tui-svg\n *ngIf=\"iconRight\"\n class=\"t-icon\"\n [src]=\"iconRight\"\n></tui-svg>\n<tui-loader\n aria-live=\"polite\"\n role=\"status\"\n class=\"t-loader\"\n [inheritColor]=\"true\"\n [showLoader]=\"!!loading\"\n [size]=\"loaderSize\"\n [textContent]=\"label\"\n></tui-loader>\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_PLATFORM, TuiDirectiveStylesService, TuiPlatform} from '@taiga-ui/cdk';\nimport {MODE_PROVIDER, TUI_MODE, TuiBrightness} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TUI_BUTTON_OPTIONS, TuiButtonOptions} from './button.options';\n\n@Component({\n template: '',\n styleUrls: ['./button.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-button-styles',\n },\n})\nexport class TuiButtonStylesComponent {}\n\n@Directive({\n selector: 'a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]',\n providers: [MODE_PROVIDER],\n host: {\n tuiButtonNew: '',\n tuiWrapper: '',\n '[attr.data-size]': 'size',\n '[attr.data-appearance]': 'appearance',\n '[attr.data-platform]': 'platform',\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiButtonDirective {\n @Input()\n size = this.options.size;\n\n @Input()\n appearance = this.options.appearance;\n\n constructor(\n @Inject(TUI_BUTTON_OPTIONS) private readonly options: TuiButtonOptions,\n @Inject(TUI_PLATFORM) readonly platform: TuiPlatform,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TuiDirectiveStylesService) directiveStyles: TuiDirectiveStylesService,\n ) {\n directiveStyles.addComponent(TuiButtonStylesComponent);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLoaderModule, TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiButtonComponent} from './button.component';\nimport {TuiButtonDirective, TuiButtonStylesComponent} from './button.directive';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, TuiLoaderModule],\n declarations: [TuiButtonComponent, TuiButtonDirective, TuiButtonStylesComponent],\n exports: [TuiButtonComponent, TuiButtonDirective],\n})\nexport class TuiButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-experimental-components-button.js","sources":["../../../projects/experimental/components/button/button.options.ts","../../../projects/experimental/components/button/button.component.ts","../../../projects/experimental/components/button/button.template.html","../../../projects/experimental/components/button/button.directive.ts","../../../projects/experimental/components/button/button.module.ts","../../../projects/experimental/components/button/taiga-ui-experimental-components-button.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk';\nimport {TuiSizeXL, TuiSizeXS} from '@taiga-ui/core';\n\nexport interface TuiButtonOptions {\n readonly appearance: string;\n readonly size: TuiSizeXL | TuiSizeXS;\n}\n\nexport const TUI_BUTTON_DEFAULT_OPTIONS: TuiButtonOptions = {\n size: `l`,\n appearance: `primary`,\n};\n\nexport const TUI_BUTTON_OPTIONS = tuiCreateToken(TUI_BUTTON_DEFAULT_OPTIONS);\n\nexport function tuiButtonOptionsProvider(options: Partial<TuiButtonOptions>): Provider {\n return tuiProvideOptions(TUI_BUTTON_OPTIONS, options, TUI_BUTTON_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport {tuiIsString} from '@taiga-ui/cdk';\nimport {tuiSizeBigger, TuiSizeS} from '@taiga-ui/core';\n\nimport {TUI_BUTTON_OPTIONS, TuiButtonOptions} from './button.options';\n\n@Component({\n selector: '[tuiButton][loading],[tuiIconButton][loading]',\n templateUrl: './button.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-disabled]': 'loading',\n '[class._loading]': 'loading',\n },\n})\nexport class TuiButtonComponent {\n @Input()\n size = this.options.size;\n\n @Input()\n loading: boolean | string | null = false;\n\n constructor(@Inject(TUI_BUTTON_OPTIONS) private readonly options: TuiButtonOptions) {}\n\n get loaderSize(): TuiSizeS {\n return tuiSizeBigger(this.size) ? 'm' : 's';\n }\n\n get label(): string {\n return tuiIsString(this.loading) ? this.loading : '';\n }\n\n @HostListener('click.capture', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.loading) {\n event.stopPropagation();\n }\n }\n}\n","<ng-content></ng-content>\n<tui-loader\n aria-live=\"polite\"\n role=\"status\"\n class=\"t-loader\"\n [inheritColor]=\"true\"\n [showLoader]=\"!!loading\"\n [size]=\"loaderSize\"\n [textContent]=\"label\"\n></tui-loader>\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n TUI_PLATFORM,\n TuiDirectiveStylesService,\n TuiPlatform,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\nimport {MODE_PROVIDER, TUI_MODE, TuiBrightness} from '@taiga-ui/core';\nimport {TUI_ICON_RESOLVER} from '@taiga-ui/experimental/tokens';\nimport {Observable} from 'rxjs';\n\nimport {TUI_BUTTON_OPTIONS, TuiButtonOptions} from './button.options';\n\n@Component({\n template: '',\n styleUrls: ['./button.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-button-styles',\n },\n})\nexport class TuiButtonStylesComponent {}\n\n@Directive({\n selector: 'a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]',\n providers: [MODE_PROVIDER],\n host: {\n tuiButtonNew: '',\n tuiAppearance: '',\n '[class._icon-left]': 'iconLeft',\n '[class._icon-right]': 'iconRight',\n '[style.--t-mask-left]': '\"url(\" + resolver(iconLeft) + \")\"',\n '[style.--t-mask-right]': '\"url(\" + resolver(iconRight) + \")\"',\n '[attr.data-size]': 'size',\n '[attr.data-appearance]': 'appearance',\n '[attr.data-platform]': 'platform',\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiButtonDirective {\n @Input()\n size = this.options.size;\n\n @Input()\n appearance = this.options.appearance;\n\n @Input()\n iconLeft = '';\n\n @Input()\n iconRight = '';\n\n constructor(\n @Inject(TUI_ICON_RESOLVER) readonly resolver: TuiStringHandler<string>,\n @Inject(TUI_BUTTON_OPTIONS) private readonly options: TuiButtonOptions,\n @Inject(TUI_PLATFORM) readonly platform: TuiPlatform,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TuiDirectiveStylesService) directiveStyles: TuiDirectiveStylesService,\n ) {\n directiveStyles.addComponent(TuiButtonStylesComponent);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLoaderModule, TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiButtonComponent} from './button.component';\nimport {TuiButtonDirective, TuiButtonStylesComponent} from './button.directive';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, TuiLoaderModule],\n declarations: [TuiButtonComponent, TuiButtonDirective, TuiButtonStylesComponent],\n exports: [TuiButtonComponent, TuiButtonDirective],\n})\nexport class TuiButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@ import * as i0 from '@angular/core';
2
2
  import { ChangeDetectorRef, ElementRef, Component, ChangeDetectionStrategy, Inject, Self, Optional, Input, HostBinding, NgModule } from '@angular/core';
3
3
  import * as i2 from '@angular/forms';
4
4
  import { NgControl } from '@angular/forms';
5
- import { tuiCreateToken, tuiProvideOptions, tuiIsString, tuiControlValue, tuiWatch, TUI_BASE_HREF, TuiDestroyService, TUI_PLATFORM } from '@taiga-ui/cdk';
6
- import { TUI_SVG_OPTIONS, TUI_MODE, MODE_PROVIDER } from '@taiga-ui/core';
5
+ import { tuiCreateToken, tuiProvideOptions, tuiIsString, tuiControlValue, tuiWatch, TuiDestroyService, TUI_PLATFORM } from '@taiga-ui/cdk';
6
+ import { TUI_MODE, MODE_PROVIDER } from '@taiga-ui/core';
7
+ import { TUI_ICON_RESOLVER } from '@taiga-ui/experimental/tokens';
7
8
  import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
8
9
  import * as i1 from 'rxjs';
9
10
 
@@ -20,10 +21,9 @@ function tuiCheckboxOptionsProvider(options) {
20
21
  }
21
22
 
22
23
  class TuiCheckboxComponent {
23
- constructor(cdr, baseHref, svg, options, destroy$, el, mode$, platform, control) {
24
+ constructor(cdr, resolver, options, destroy$, el, mode$, platform, control) {
24
25
  this.cdr = cdr;
25
- this.baseHref = baseHref;
26
- this.svg = svg;
26
+ this.resolver = resolver;
27
27
  this.options = options;
28
28
  this.destroy$ = destroy$;
29
29
  this.el = el;
@@ -37,8 +37,7 @@ class TuiCheckboxComponent {
37
37
  ? this.options.icons.indeterminate
38
38
  : this.options.icons.checked;
39
39
  const icon = tuiIsString(option) ? option : option(this.size);
40
- const mask = icon.includes('/') ? icon : this.svg.path(icon, this.baseHref);
41
- return `url(${mask})`;
40
+ return `url(${this.resolver(icon)})`;
42
41
  }
43
42
  ngOnInit() {
44
43
  var _a;
@@ -52,7 +51,7 @@ class TuiCheckboxComponent {
52
51
  });
53
52
  }
54
53
  }
55
- TuiCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiCheckboxComponent, deps: [{ token: ChangeDetectorRef }, { token: TUI_BASE_HREF }, { token: TUI_SVG_OPTIONS }, { token: TUI_CHECKBOX_OPTIONS }, { token: TuiDestroyService, self: true }, { token: ElementRef }, { token: TUI_MODE }, { token: TUI_PLATFORM }, { token: NgControl, optional: true }], target: i0.ɵɵFactoryTarget.Component });
54
+ TuiCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiCheckboxComponent, deps: [{ token: ChangeDetectorRef }, { token: TUI_ICON_RESOLVER }, { token: TUI_CHECKBOX_OPTIONS }, { token: TuiDestroyService, self: true }, { token: ElementRef }, { token: TUI_MODE }, { token: TUI_PLATFORM }, { token: NgControl, optional: true }], target: i0.ɵɵFactoryTarget.Component });
56
55
  TuiCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiCheckboxComponent, selector: "input[type=\"checkbox\"][tuiCheckbox]", inputs: { size: "size" }, host: { listeners: { "$.data-mode.attr": "mode$" }, properties: { "disabled": "!control || control.disabled", "attr.data-size": "size", "attr.data-platform": "platform", "class._invalid": "control?.invalid && control?.touched", "class._readonly": "!control", "style.--t-mask": "this.icon" } }, providers: [MODE_PROVIDER, TuiDestroyService], ngImport: i0, template: '', isInline: true, styles: [":host{transition-property:background,box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;margin:0;outline:none;box-shadow:inset 0 0 0 .0625rem var(--tui-clear-active)}:host:disabled{pointer-events:none}:host:disabled:not(._readonly){opacity:var(--tui-disabled-opacity)}:host:focus-visible{box-shadow:inset 0 0 0 .125rem var(--tui-focus)!important}:host:checked:before,:host:indeterminate:before{-webkit-mask-image:var(--t-mask);mask-image:var(--t-mask)}:host:before{position:absolute;top:0;left:0;width:100%;height:100%;content:\"\";background:currentColor;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>');-webkit-mask-size:100%;mask-size:100%}:host._invalid{box-shadow:inset 0 0 0 .0625rem var(--tui-error-bg-hover)}:host[data-platform=ios]{width:1.375rem;height:1.375rem;border-radius:100%;color:var(--tui-base-01);transition:none}:host[data-platform=ios]:checked,:host[data-platform=ios]:indeterminate{background:var(--tui-accent);box-shadow:none}:host[data-platform=ios]:checked:disabled:not(._readonly),:host[data-platform=ios]:indeterminate:disabled:not(._readonly){background:var(--tui-base-04)}:host[data-platform=ios]:checked:before,:host[data-platform=ios]:indeterminate:before{display:block}:host[data-platform=ios]:checked._invalid,:host[data-platform=ios]:indeterminate._invalid{background:var(--tui-error-fill)}:host[data-platform=ios]:before{display:none;--t-mask: url('data:image/svg+xml,<svg viewBox=\"0 0 22 22\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6.75 11.25L9.8 15.2L15.2 7\" fill=\"none\" stroke=\"black\" stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>')}:host[data-platform=ios]:indeterminate:before{--t-mask: url('data:image/svg+xml,<svg viewBox=\"0 0 22 22\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11H16\" fill=\"none\" stroke=\"black\" stroke-width=\"1.75\" stroke-linecap=\"round\"/></svg>')}:host[data-platform=android]{width:1.125rem;height:1.125rem;color:var(--tui-base-01);border-radius:.125rem;box-shadow:inset 0 0 0 .125rem var(--tui-base-04)}:host[data-platform=android]:checked,:host[data-platform=android]:indeterminate{background:var(--tui-accent);box-shadow:none}:host[data-platform=android]:checked._invalid,:host[data-platform=android]:indeterminate._invalid{background:var(--tui-error-fill)}:host[data-platform=android]:checked:disabled:not(._readonly),:host[data-platform=android]:indeterminate:disabled:not(._readonly){background:var(--tui-base-04)}:host[data-platform=android]:checked:before,:host[data-platform=android]:indeterminate:before{-webkit-clip-path:inset(0);clip-path:inset(0);transition-delay:0s}:host[data-platform=android]:before{transition:-webkit-clip-path var(--tui-duration) ease-in-out,-webkit-mask 0s var(--tui-duration) ease-in-out;transition:clip-path var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out;transition:clip-path var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out,-webkit-clip-path var(--tui-duration) ease-in-out,-webkit-mask 0s var(--tui-duration) ease-in-out;-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0);--t-mask: url('data:image/svg+xml,<svg viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.7 8.5L7 12.7L15.3 4.7\" fill=\"none\" stroke=\"black\" stroke-width=\"2\"/></svg>')}:host[data-platform=android]:indeterminate:before{--t-mask: url('data:image/svg+xml,<svg viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3 9H15\" fill=\"none\" stroke=\"black\" stroke-width=\"2\"/></svg>')}:host[data-platform=android]._invalid{box-shadow:inset 0 0 0 .125rem var(--tui-error-bg-hover)}:host[data-platform=web]{width:1.5rem;height:1.5rem;border-radius:var(--tui-radius-s);color:var(--tui-primary-text)}:host[data-platform=web][data-size=s]{width:1rem;height:1rem;border-radius:var(--tui-radius-xs)}:host[data-platform=web]:checked,:host[data-platform=web]:indeterminate{box-shadow:none;background:var(--tui-primary)}:host[data-platform=web]:checked:hover,:host[data-platform=web]:indeterminate:hover{background:var(--tui-primary-hover)}:host[data-platform=web]:checked:active,:host[data-platform=web]:indeterminate:active{background:var(--tui-primary-active)}:host[data-platform=web]:checked:before,:host[data-platform=web]:indeterminate:before{transform:scale(1);transition:transform var(--tui-duration) ease-in-out,-webkit-mask 0s ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out,-webkit-mask 0s ease-in-out}:host[data-platform=web]:before{transform:scale(0);transition:transform var(--tui-duration) ease-in-out,-webkit-mask 0s var(--tui-duration) ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out,-webkit-mask 0s var(--tui-duration) ease-in-out}:host[data-platform=web]._invalid:checked,:host[data-platform=web]._invalid:indeterminate{background:var(--tui-error-fill)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiCheckboxComponent, decorators: [{
58
57
  type: Component,
@@ -76,10 +75,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
76
75
  args: [ChangeDetectorRef]
77
76
  }] }, { type: undefined, decorators: [{
78
77
  type: Inject,
79
- args: [TUI_BASE_HREF]
80
- }] }, { type: undefined, decorators: [{
81
- type: Inject,
82
- args: [TUI_SVG_OPTIONS]
78
+ args: [TUI_ICON_RESOLVER]
83
79
  }] }, { type: undefined, decorators: [{
84
80
  type: Inject,
85
81
  args: [TUI_CHECKBOX_OPTIONS]
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-experimental-components-checkbox.js","sources":["../../../projects/experimental/components/checkbox/checkbox.options.ts","../../../projects/experimental/components/checkbox/checkbox.component.ts","../../../projects/experimental/components/checkbox/checkbox.module.ts","../../../projects/experimental/components/checkbox/taiga-ui-experimental-components-checkbox.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {tuiCreateToken, TuiMapper, tuiProvideOptions} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\nexport interface TuiCheckboxOptions {\n readonly size: TuiSizeS;\n readonly icons: Readonly<{\n checked: TuiMapper<TuiSizeS, string> | string;\n indeterminate: TuiMapper<TuiSizeS, string> | string;\n }>;\n}\n\nexport const TUI_CHECKBOX_DEFAULT_OPTIONS: TuiCheckboxOptions = {\n size: `m`,\n icons: {\n checked: size => (size === `m` ? `tuiIconCheckLarge` : `tuiIconCheck`),\n indeterminate: size => (size === `m` ? `tuiIconMinusLarge` : `tuiIconMinus`),\n },\n};\n\nexport const TUI_CHECKBOX_OPTIONS = tuiCreateToken(TUI_CHECKBOX_DEFAULT_OPTIONS);\n\nexport function tuiCheckboxOptionsProvider(\n options: Partial<TuiCheckboxOptions>,\n): Provider {\n return tuiProvideOptions(TUI_CHECKBOX_OPTIONS, options, TUI_CHECKBOX_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n OnInit,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n TUI_BASE_HREF,\n TUI_PLATFORM,\n tuiControlValue,\n TuiDestroyService,\n tuiIsString,\n TuiPlatform,\n tuiWatch,\n} from '@taiga-ui/cdk';\nimport {\n MODE_PROVIDER,\n TUI_MODE,\n TUI_SVG_OPTIONS,\n TuiBrightness,\n TuiSvgOptions,\n} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, takeUntil} from 'rxjs/operators';\n\nimport {TUI_CHECKBOX_OPTIONS, TuiCheckboxOptions} from './checkbox.options';\n\n@Component({\n selector: 'input[type=\"checkbox\"][tuiCheckbox]',\n template: '',\n styleUrls: ['./checkbox.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MODE_PROVIDER, TuiDestroyService],\n host: {\n '($.data-mode.attr)': 'mode$',\n '[disabled]': '!control || control.disabled',\n '[attr.data-size]': 'size',\n '[attr.data-platform]': 'platform',\n '[class._invalid]': 'control?.invalid && control?.touched',\n '[class._readonly]': '!control',\n },\n})\nexport class TuiCheckboxComponent implements OnInit {\n @Input()\n size = this.options.size;\n\n constructor(\n @Inject(ChangeDetectorRef) private readonly cdr: ChangeDetectorRef,\n @Inject(TUI_BASE_HREF) private readonly baseHref: string,\n @Inject(TUI_SVG_OPTIONS) private readonly svg: TuiSvgOptions,\n @Inject(TUI_CHECKBOX_OPTIONS) private readonly options: TuiCheckboxOptions,\n @Self() @Inject(TuiDestroyService) private readonly destroy$: Observable<unknown>,\n @Inject(ElementRef) private readonly el: ElementRef<HTMLInputElement>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_PLATFORM) readonly platform: TuiPlatform,\n @Optional() @Inject(NgControl) readonly control: NgControl | null,\n ) {}\n\n @HostBinding('style.--t-mask')\n get icon(): string {\n const option = this.el.nativeElement.indeterminate\n ? this.options.icons.indeterminate\n : this.options.icons.checked;\n const icon = tuiIsString(option) ? option : option(this.size);\n const mask = icon.includes('/') ? icon : this.svg.path(icon, this.baseHref);\n\n return `url(${mask})`;\n }\n\n ngOnInit(): void {\n if (!this.control?.valueChanges) {\n return;\n }\n\n tuiControlValue(this.control)\n .pipe(distinctUntilChanged(), tuiWatch(this.cdr), takeUntil(this.destroy$))\n .subscribe(value => {\n this.el.nativeElement.indeterminate = value === null;\n });\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiCheckboxComponent} from './checkbox.component';\n\n@NgModule({\n declarations: [TuiCheckboxComponent],\n exports: [TuiCheckboxComponent],\n})\nexport class TuiCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-experimental-components-checkbox.js","sources":["../../../projects/experimental/components/checkbox/checkbox.options.ts","../../../projects/experimental/components/checkbox/checkbox.component.ts","../../../projects/experimental/components/checkbox/checkbox.module.ts","../../../projects/experimental/components/checkbox/taiga-ui-experimental-components-checkbox.ts"],"sourcesContent":["import {Provider} from '@angular/core';\nimport {tuiCreateToken, TuiMapper, tuiProvideOptions} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\nexport interface TuiCheckboxOptions {\n readonly size: TuiSizeS;\n readonly icons: Readonly<{\n checked: TuiMapper<TuiSizeS, string> | string;\n indeterminate: TuiMapper<TuiSizeS, string> | string;\n }>;\n}\n\nexport const TUI_CHECKBOX_DEFAULT_OPTIONS: TuiCheckboxOptions = {\n size: `m`,\n icons: {\n checked: size => (size === `m` ? `tuiIconCheckLarge` : `tuiIconCheck`),\n indeterminate: size => (size === `m` ? `tuiIconMinusLarge` : `tuiIconMinus`),\n },\n};\n\nexport const TUI_CHECKBOX_OPTIONS = tuiCreateToken(TUI_CHECKBOX_DEFAULT_OPTIONS);\n\nexport function tuiCheckboxOptionsProvider(\n options: Partial<TuiCheckboxOptions>,\n): Provider {\n return tuiProvideOptions(TUI_CHECKBOX_OPTIONS, options, TUI_CHECKBOX_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n OnInit,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n TUI_PLATFORM,\n tuiControlValue,\n TuiDestroyService,\n tuiIsString,\n TuiPlatform,\n TuiStringHandler,\n tuiWatch,\n} from '@taiga-ui/cdk';\nimport {MODE_PROVIDER, TUI_MODE, TuiBrightness} from '@taiga-ui/core';\nimport {TUI_ICON_RESOLVER} from '@taiga-ui/experimental/tokens';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, takeUntil} from 'rxjs/operators';\n\nimport {TUI_CHECKBOX_OPTIONS, TuiCheckboxOptions} from './checkbox.options';\n\n@Component({\n selector: 'input[type=\"checkbox\"][tuiCheckbox]',\n template: '',\n styleUrls: ['./checkbox.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MODE_PROVIDER, TuiDestroyService],\n host: {\n '($.data-mode.attr)': 'mode$',\n '[disabled]': '!control || control.disabled',\n '[attr.data-size]': 'size',\n '[attr.data-platform]': 'platform',\n '[class._invalid]': 'control?.invalid && control?.touched',\n '[class._readonly]': '!control',\n },\n})\nexport class TuiCheckboxComponent implements OnInit {\n @Input()\n size = this.options.size;\n\n constructor(\n @Inject(ChangeDetectorRef) private readonly cdr: ChangeDetectorRef,\n @Inject(TUI_ICON_RESOLVER) private readonly resolver: TuiStringHandler<string>,\n @Inject(TUI_CHECKBOX_OPTIONS) private readonly options: TuiCheckboxOptions,\n @Self() @Inject(TuiDestroyService) private readonly destroy$: Observable<unknown>,\n @Inject(ElementRef) private readonly el: ElementRef<HTMLInputElement>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_PLATFORM) readonly platform: TuiPlatform,\n @Optional() @Inject(NgControl) readonly control: NgControl | null,\n ) {}\n\n @HostBinding('style.--t-mask')\n get icon(): string {\n const option = this.el.nativeElement.indeterminate\n ? this.options.icons.indeterminate\n : this.options.icons.checked;\n const icon = tuiIsString(option) ? option : option(this.size);\n\n return `url(${this.resolver(icon)})`;\n }\n\n ngOnInit(): void {\n if (!this.control?.valueChanges) {\n return;\n }\n\n tuiControlValue(this.control)\n .pipe(distinctUntilChanged(), tuiWatch(this.cdr), takeUntil(this.destroy$))\n .subscribe(value => {\n this.el.nativeElement.indeterminate = value === null;\n });\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiCheckboxComponent} from './checkbox.component';\n\n@NgModule({\n declarations: [TuiCheckboxComponent],\n exports: [TuiCheckboxComponent],\n})\nexport class TuiCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAYa,MAAA,4BAA4B,GAAuB;AAC5D,IAAA,IAAI,EAAE,CAAG,CAAA,CAAA;AACT,IAAA,KAAK,EAAE;AACH,QAAA,OAAO,EAAE,IAAI,KAAK,IAAI,KAAK,CAAG,CAAA,CAAA,GAAG,CAAA,iBAAA,CAAmB,GAAG,cAAc,CAAC;AACtE,QAAA,aAAa,EAAE,IAAI,KAAK,IAAI,KAAK,CAAG,CAAA,CAAA,GAAG,CAAA,iBAAA,CAAmB,GAAG,cAAc,CAAC;AAC/E,KAAA;EACH;MAEW,oBAAoB,GAAG,cAAc,CAAC,4BAA4B,EAAE;AAE3E,SAAU,0BAA0B,CACtC,OAAoC,EAAA;IAEpC,OAAO,iBAAiB,CAAC,oBAAoB,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;AAC1F;;MCkBa,oBAAoB,CAAA;AAI7B,IAAA,WAAA,CACgD,GAAsB,EACtB,QAAkC,EAC/B,OAA2B,EACtB,QAA6B,EAC5C,EAAgC,EAC1C,KAAuC,EACnC,QAAqB,EACZ,OAAyB,EAAA;QAPrB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAA0B;QAC/B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAoB;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAqB;QAC5C,IAAE,CAAA,EAAA,GAAF,EAAE,CAA8B;QAC1C,IAAK,CAAA,KAAA,GAAL,KAAK,CAAkC;QACnC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;QACZ,IAAO,CAAA,OAAA,GAAP,OAAO,CAAkB;AAVrE,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;KAWrB;AAEJ,IAAA,IACI,IAAI,GAAA;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa;AAC9C,cAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa;cAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;AACjC,QAAA,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9D,OAAO,CAAA,IAAA,EAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;KACxC;IAED,QAAQ,GAAA;;QACJ,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAA,EAAE;YAC7B,OAAO;AACV,SAAA;AAED,QAAA,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AACxB,aAAA,IAAI,CAAC,oBAAoB,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC1E,SAAS,CAAC,KAAK,IAAG;YACf,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,GAAG,KAAK,KAAK,IAAI,CAAC;AACzD,SAAC,CAAC,CAAC;KACV;;AAnCQ,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAKjB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,iBAAiB,EACjB,EAAA,EAAA,KAAA,EAAA,iBAAiB,aACjB,oBAAoB,EAAA,EAAA,EAAA,KAAA,EACZ,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACzB,UAAU,EACV,EAAA,EAAA,KAAA,EAAA,QAAQ,EACR,EAAA,EAAA,KAAA,EAAA,YAAY,aACA,SAAS,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAZxB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,gYAVlB,CAAC,aAAa,EAAE,iBAAiB,CAAC,0BAHnC,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qtKAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FAaH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAfhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qCAAqC;AAC/C,oBAAA,QAAQ,EAAE,EAAE;oBACZ,SAAS,EAAE,CAAC,uBAAuB,CAAC;oBACpC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC;AAC7C,oBAAA,IAAI,EAAE;AACF,wBAAA,oBAAoB,EAAE,OAAO;AAC7B,wBAAA,YAAY,EAAE,8BAA8B;AAC5C,wBAAA,kBAAkB,EAAE,MAAM;AAC1B,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,kBAAkB,EAAE,sCAAsC;AAC1D,wBAAA,mBAAmB,EAAE,UAAU;AAClC,qBAAA;AACJ,iBAAA,CAAA;;0BAMQ,MAAM;2BAAC,iBAAiB,CAAA;;0BACxB,MAAM;2BAAC,iBAAiB,CAAA;;0BACxB,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,IAAI;;0BAAI,MAAM;2BAAC,iBAAiB,CAAA;;0BAChC,MAAM;2BAAC,UAAU,CAAA;;0BACjB,MAAM;2BAAC,QAAQ,CAAA;;0BACf,MAAM;2BAAC,YAAY,CAAA;;0BACnB,QAAQ;;0BAAI,MAAM;2BAAC,SAAS,CAAA;4CAVjC,IAAI,EAAA,CAAA;sBADH,KAAK;gBAeF,IAAI,EAAA,CAAA;sBADP,WAAW;uBAAC,gBAAgB,CAAA;;;MCnDpB,iBAAiB,CAAA;;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAjB,iBAAiB,EAAA,YAAA,EAAA,CAHX,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACzB,oBAAoB,CAAA,EAAA,CAAA,CAAA;gHAErB,iBAAiB,EAAA,CAAA,CAAA;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAClC,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}