@taiga-ui/kit 4.30.0 → 4.31.0-canary.23376c6

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 (61) hide show
  1. package/components/carousel/carousel.component.d.ts +4 -1
  2. package/components/index.d.ts +1 -0
  3. package/components/items-with-more/items-with-more.component.d.ts +4 -2
  4. package/components/items-with-more/items-with-more.directive.d.ts +5 -1
  5. package/components/items-with-more/items-with-more.service.d.ts +1 -0
  6. package/components/line-clamp/line-clamp-box.component.d.ts +1 -1
  7. package/components/pager/index.d.ts +1 -0
  8. package/components/pager/pager.component.d.ts +23 -0
  9. package/components/tiles/tiles.component.d.ts +2 -2
  10. package/esm2022/components/block/block.directive.mjs +2 -2
  11. package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +1 -1
  12. package/esm2022/components/calendar-range/calendar-range.component.mjs +2 -2
  13. package/esm2022/components/carousel/carousel.component.mjs +14 -4
  14. package/esm2022/components/data-list-wrapper/data-list-group-wrapper.component.mjs +2 -2
  15. package/esm2022/components/data-list-wrapper/data-list-wrapper.component.mjs +2 -2
  16. package/esm2022/components/index.mjs +2 -1
  17. package/esm2022/components/input-phone-international/input-phone-international.component.mjs +2 -2
  18. package/esm2022/components/items-with-more/items-with-more.component.mjs +16 -13
  19. package/esm2022/components/items-with-more/items-with-more.directive.mjs +17 -2
  20. package/esm2022/components/items-with-more/items-with-more.service.mjs +21 -8
  21. package/esm2022/components/line-clamp/line-clamp-box.component.mjs +4 -4
  22. package/esm2022/components/pager/index.mjs +2 -0
  23. package/esm2022/components/pager/pager.component.mjs +97 -0
  24. package/esm2022/components/pager/taiga-ui-kit-components-pager.mjs +5 -0
  25. package/esm2022/components/progress/progress-bar/progress-bar.component.mjs +2 -2
  26. package/esm2022/components/status/status.directive.mjs +2 -2
  27. package/esm2022/components/tiles/tile.component.mjs +8 -7
  28. package/esm2022/components/tiles/tile.service.mjs +5 -1
  29. package/esm2022/components/tiles/tiles.component.mjs +5 -6
  30. package/esm2022/directives/button-group/button-group.directive.mjs +2 -2
  31. package/fesm2022/taiga-ui-kit-components-block.mjs +2 -2
  32. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +1 -1
  34. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs +1 -1
  36. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-kit-components-carousel.mjs +13 -3
  38. package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +2 -2
  40. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
  41. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +1 -1
  42. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  43. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +51 -21
  44. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
  45. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +3 -3
  46. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-kit-components-pager.mjs +103 -0
  48. package/fesm2022/taiga-ui-kit-components-pager.mjs.map +1 -0
  49. package/fesm2022/taiga-ui-kit-components-progress.mjs +2 -2
  50. package/fesm2022/taiga-ui-kit-components-status.mjs +2 -2
  51. package/fesm2022/taiga-ui-kit-components-status.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-kit-components-tiles.mjs +15 -11
  53. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-kit-components.mjs +1 -0
  55. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-kit-directives-button-group.mjs +2 -2
  57. package/fesm2022/taiga-ui-kit-directives-button-group.mjs.map +1 -1
  58. package/package.json +14 -8
  59. package/styles/components/block.less +1 -0
  60. package/styles/components/progress-bar.less +1 -1
  61. package/styles/components/status.less +13 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-kit-components-pager.mjs","sources":["../../../projects/kit/components/pager/pager.component.ts","../../../projects/kit/components/pager/pager.component.html","../../../projects/kit/components/pager/taiga-ui-kit-components-pager.ts"],"sourcesContent":["import {NgTemplateOutlet} from '@angular/common';\nimport type {\n AfterViewInit,\n ElementRef,\n OnChanges,\n QueryList,\n TemplateRef,\n} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n signal,\n ViewChildren,\n} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport type {TuiSizeS} from '@taiga-ui/core/types';\nimport {delay, map} from 'rxjs';\n\n@Component({\n standalone: true,\n selector: 'tui-pager',\n imports: [FormsModule, NgTemplateOutlet, TuiRepeatTimes],\n templateUrl: './pager.component.html',\n styleUrls: ['./pager.styles.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n attributeOldValue: true,\n characterData: true,\n childList: true,\n subtree: true,\n },\n },\n ],\n host: {\n '[attr.data-size]': 'size',\n '[style.--t-gap.px]': 'gap',\n '[style.max-width.px]': 'maxWidth()',\n },\n})\nexport class TuiPager implements OnChanges, AfterViewInit {\n @ViewChildren('item')\n protected items?: QueryList<ElementRef<HTMLElement>>;\n\n protected start = 0;\n protected end = 0;\n protected left = signal(0);\n protected readonly maxWidth = toSignal(\n inject(MutationObserverService, {self: true}).pipe(\n delay(0),\n map(() => this.visibleWidth),\n tuiWatch(),\n takeUntilDestroyed(),\n ),\n );\n\n @Input()\n public max = 6;\n\n @Input()\n public count = this.max;\n\n @Input()\n public size: TuiSizeS = 'm';\n\n @Input()\n public valueContent?: TemplateRef<unknown>;\n\n @Input()\n public index = 0;\n\n public ngOnChanges(): void {\n this.move();\n }\n\n public ngAfterViewInit(): void {\n this.move();\n }\n\n protected get gap(): number {\n return this.size === 'm' ? 9 : 7;\n }\n\n private get visibleRange(): [start: number, end: number] {\n const max = this.max > this.count ? this.count : this.max;\n\n const start = Math.min(\n Math.max(this.index - Math.floor(max / 2), 0),\n this.count - max,\n );\n\n return [start, start + (max - 1)];\n }\n\n private get visibleWidth(): number {\n return (\n (this.items?.map((item) => item.nativeElement.offsetWidth ?? 0) ?? [])\n .slice(this.start, this.end + 1)\n .reduce((sum, item) => sum + item + this.gap, 0) - this.gap\n );\n }\n\n private move(): void {\n const [start, end] = this.visibleRange;\n\n this.start = start;\n this.end = end;\n\n let left = this.start * this.gap;\n\n for (let i = 0; i < this.start; i++) {\n left += this.items?.get(i)?.nativeElement.offsetWidth ?? 0;\n }\n\n this.left.set(-1 * left);\n }\n}\n","<div\n class=\"t-items\"\n [style.transform]=\"'translateX(' + left() + 'px)'\"\n>\n <div\n *tuiRepeatTimes=\"let i of count\"\n #item\n class=\"t-item\"\n [attr.data-index]=\"i\"\n [class._active]=\"i === index\"\n [class._last]=\"i === count - 1\"\n [class._post-active]=\"i === index + 1\"\n [class._pre-active]=\"i === index - 1\"\n [class._pre-last]=\"i === count - 2\"\n [class._visible]=\"i >= start && i <= end\"\n >\n <ng-container *ngTemplateOutlet=\"valueContent || null; context: {$implicit: i}\" />\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AA2BA,MAyBa,QAAQ,CAAA;AAzBrB,IAAA,WAAA,GAAA;QA6Bc,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;QACV,IAAG,CAAA,GAAA,GAAG,CAAC,CAAC;AACR,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACR,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAClC,MAAM,CAAC,uBAAuB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CAC9C,KAAK,CAAC,CAAC,CAAC,EACR,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,EAC5B,QAAQ,EAAE,EACV,kBAAkB,EAAE,CACvB,CACJ,CAAC;QAGK,IAAG,CAAA,GAAA,GAAG,CAAC,CAAC;AAGR,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;QAGjB,IAAI,CAAA,IAAA,GAAa,GAAG,CAAC;QAMrB,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;AA+CpB,KAAA;IA7CU,WAAW,GAAA;QACd,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IAEM,eAAe,GAAA;QAClB,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;AAED,IAAA,IAAc,GAAG,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;KACpC;AAED,IAAA,IAAY,YAAY,GAAA;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAE1D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAC7C,IAAI,CAAC,KAAK,GAAG,GAAG,CACnB,CAAC;QAEF,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;KACrC;AAED,IAAA,IAAY,YAAY,GAAA;QACpB,QACI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,EAAE;aAChE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;aAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EACjE;KACL;IAEO,IAAI,GAAA;QACR,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;AAEvC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AAEjC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AACjC,YAAA,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,WAAW,IAAI,CAAC,CAAC;AAC9D,SAAA;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;KAC5B;+GA3EQ,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,QAAQ,EAlBN,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,uBAAuB;AACvB,YAAA;AACI,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,QAAQ,EAAE;AACN,oBAAA,iBAAiB,EAAE,IAAI;AACvB,oBAAA,aAAa,EAAE,IAAI;AACnB,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,OAAO,EAAE,IAAI;AAChB,iBAAA;AACJ,aAAA;AACJ,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7CL,gnBAmBA,EDWc,MAAA,EAAA,CAAA,s8DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,cAAc,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAsB9C,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAzBpB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,WAAW,EACZ,OAAA,EAAA,CAAC,WAAW,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAA,eAAA,EAGvC,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACP,uBAAuB;AACvB,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,QAAQ,EAAE;AACN,gCAAA,iBAAiB,EAAE,IAAI;AACvB,gCAAA,aAAa,EAAE,IAAI;AACnB,gCAAA,SAAS,EAAE,IAAI;AACf,gCAAA,OAAO,EAAE,IAAI;AAChB,6BAAA;AACJ,yBAAA;qBACJ,EACK,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,MAAM;AAC1B,wBAAA,oBAAoB,EAAE,KAAK;AAC3B,wBAAA,sBAAsB,EAAE,YAAY;AACvC,qBAAA,EAAA,QAAA,EAAA,gnBAAA,EAAA,MAAA,EAAA,CAAA,s8DAAA,CAAA,EAAA,CAAA;8BAIS,KAAK,EAAA,CAAA;sBADd,YAAY;uBAAC,MAAM,CAAA;gBAgBb,GAAG,EAAA,CAAA;sBADT,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;;;AEhFV;;AAEG;;;;"}
@@ -57,14 +57,14 @@ class TuiProgressBar {
57
57
  this.size = this.options.size;
58
58
  }
59
59
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiProgressBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiProgressBar, isStandalone: true, selector: "progress[tuiProgressBar]", inputs: { color: "color", size: "size" }, host: { properties: { "style.--tui-progress-color": "color", "attr.data-size": "size" } }, ngImport: i0, template: '', isInline: true, styles: ["@keyframes tuiIndeterminateAnimation{50%{background-position:left}}[tuiProgressBar]{-webkit-appearance:none;appearance:none;border:none;--t-height: .75rem;display:block;inline-size:100%;block-size:var(--t-height);color:var(--tui-background-accent-1);background:var(--tui-background-neutral-1);clip-path:inset(0 .5px round var(--tui-radius-m));overflow:hidden;border-radius:1rem;flex-shrink:0}[tuiProgressBar]::-webkit-progress-value{-webkit-transition:width var(--tui-duration) linear;transition:width var(--tui-duration) linear}[tuiProgressBar]::-webkit-progress-value{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar]::-moz-progress-bar{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar][data-size=xxs]{--t-height: .125rem}[tuiProgressBar][data-size=xs]{--t-height: .25rem}[tuiProgressBar][data-size=s]{--t-height: .5rem}[tuiProgressBar][data-size=l]{--t-height: 1rem}[tuiProgressBar][data-size=xl]{--t-height: 1.25rem}[tuiProgressBar][data-size=xxl]{--t-height: 1.5rem}[tuiProgressBar]:indeterminate{background:linear-gradient(to right,var(--tui-background-neutral-1) 0 45%,var(--tui-progress-color, currentColor) 45% 55%,var(--tui-background-neutral-1) 55% 100%) right;background-size:225%;animation:tuiIndeterminateAnimation 3s infinite ease-in-out}[tuiProgressBar]:indeterminate::-webkit-progress-value{background:transparent}[tuiProgressBar]:indeterminate::-moz-progress-bar{background:transparent}[tuiProgressBar]::-webkit-progress-inner-element{border-radius:inherit}[tuiProgressBar]::-webkit-progress-bar{background:transparent;border-radius:inherit}label[tuiProgressLabel] [tuiProgressBar]:not(:first-child){position:absolute;top:0;left:0;inline-size:100%;block-size:100%;background:transparent}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiProgressBar, isStandalone: true, selector: "progress[tuiProgressBar]", inputs: { color: "color", size: "size" }, host: { properties: { "style.--tui-progress-color": "color", "attr.data-size": "size" } }, ngImport: i0, template: '', isInline: true, styles: ["@keyframes tuiIndeterminateAnimation{50%{background-position:left}}[tuiProgressBar]{-webkit-appearance:none;appearance:none;border:none;--t-height: .75rem;display:block;inline-size:100%;block-size:var(--t-height);color:var(--tui-background-accent-1);background:var(--tui-background-neutral-2);clip-path:inset(0 .5px round var(--tui-radius-m));overflow:hidden;border-radius:1rem;flex-shrink:0}[tuiProgressBar]::-webkit-progress-value{-webkit-transition:width var(--tui-duration) linear;transition:width var(--tui-duration) linear}[tuiProgressBar]::-webkit-progress-value{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar]::-moz-progress-bar{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar][data-size=xxs]{--t-height: .125rem}[tuiProgressBar][data-size=xs]{--t-height: .25rem}[tuiProgressBar][data-size=s]{--t-height: .5rem}[tuiProgressBar][data-size=l]{--t-height: 1rem}[tuiProgressBar][data-size=xl]{--t-height: 1.25rem}[tuiProgressBar][data-size=xxl]{--t-height: 1.5rem}[tuiProgressBar]:indeterminate{background:linear-gradient(to right,var(--tui-background-neutral-2) 0 45%,var(--tui-progress-color, currentColor) 45% 55%,var(--tui-background-neutral-2) 55% 100%) right;background-size:225%;animation:tuiIndeterminateAnimation 3s infinite ease-in-out}[tuiProgressBar]:indeterminate::-webkit-progress-value{background:transparent}[tuiProgressBar]:indeterminate::-moz-progress-bar{background:transparent}[tuiProgressBar]::-webkit-progress-inner-element{border-radius:inherit}[tuiProgressBar]::-webkit-progress-bar{background:transparent;border-radius:inherit}label[tuiProgressLabel] [tuiProgressBar]:not(:first-child){position:absolute;top:0;left:0;inline-size:100%;block-size:100%;background:transparent}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
61
61
  }
62
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiProgressBar, decorators: [{
63
63
  type: Component,
64
64
  args: [{ standalone: true, selector: 'progress[tuiProgressBar]', template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
65
65
  '[style.--tui-progress-color]': 'color',
66
66
  '[attr.data-size]': 'size',
67
- }, styles: ["@keyframes tuiIndeterminateAnimation{50%{background-position:left}}[tuiProgressBar]{-webkit-appearance:none;appearance:none;border:none;--t-height: .75rem;display:block;inline-size:100%;block-size:var(--t-height);color:var(--tui-background-accent-1);background:var(--tui-background-neutral-1);clip-path:inset(0 .5px round var(--tui-radius-m));overflow:hidden;border-radius:1rem;flex-shrink:0}[tuiProgressBar]::-webkit-progress-value{-webkit-transition:width var(--tui-duration) linear;transition:width var(--tui-duration) linear}[tuiProgressBar]::-webkit-progress-value{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar]::-moz-progress-bar{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar][data-size=xxs]{--t-height: .125rem}[tuiProgressBar][data-size=xs]{--t-height: .25rem}[tuiProgressBar][data-size=s]{--t-height: .5rem}[tuiProgressBar][data-size=l]{--t-height: 1rem}[tuiProgressBar][data-size=xl]{--t-height: 1.25rem}[tuiProgressBar][data-size=xxl]{--t-height: 1.5rem}[tuiProgressBar]:indeterminate{background:linear-gradient(to right,var(--tui-background-neutral-1) 0 45%,var(--tui-progress-color, currentColor) 45% 55%,var(--tui-background-neutral-1) 55% 100%) right;background-size:225%;animation:tuiIndeterminateAnimation 3s infinite ease-in-out}[tuiProgressBar]:indeterminate::-webkit-progress-value{background:transparent}[tuiProgressBar]:indeterminate::-moz-progress-bar{background:transparent}[tuiProgressBar]::-webkit-progress-inner-element{border-radius:inherit}[tuiProgressBar]::-webkit-progress-bar{background:transparent;border-radius:inherit}label[tuiProgressLabel] [tuiProgressBar]:not(:first-child){position:absolute;top:0;left:0;inline-size:100%;block-size:100%;background:transparent}\n"] }]
67
+ }, styles: ["@keyframes tuiIndeterminateAnimation{50%{background-position:left}}[tuiProgressBar]{-webkit-appearance:none;appearance:none;border:none;--t-height: .75rem;display:block;inline-size:100%;block-size:var(--t-height);color:var(--tui-background-accent-1);background:var(--tui-background-neutral-2);clip-path:inset(0 .5px round var(--tui-radius-m));overflow:hidden;border-radius:1rem;flex-shrink:0}[tuiProgressBar]::-webkit-progress-value{-webkit-transition:width var(--tui-duration) linear;transition:width var(--tui-duration) linear}[tuiProgressBar]::-webkit-progress-value{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar]::-moz-progress-bar{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar][data-size=xxs]{--t-height: .125rem}[tuiProgressBar][data-size=xs]{--t-height: .25rem}[tuiProgressBar][data-size=s]{--t-height: .5rem}[tuiProgressBar][data-size=l]{--t-height: 1rem}[tuiProgressBar][data-size=xl]{--t-height: 1.25rem}[tuiProgressBar][data-size=xxl]{--t-height: 1.5rem}[tuiProgressBar]:indeterminate{background:linear-gradient(to right,var(--tui-background-neutral-2) 0 45%,var(--tui-progress-color, currentColor) 45% 55%,var(--tui-background-neutral-2) 55% 100%) right;background-size:225%;animation:tuiIndeterminateAnimation 3s infinite ease-in-out}[tuiProgressBar]:indeterminate::-webkit-progress-value{background:transparent}[tuiProgressBar]:indeterminate::-moz-progress-bar{background:transparent}[tuiProgressBar]::-webkit-progress-inner-element{border-radius:inherit}[tuiProgressBar]::-webkit-progress-bar{background:transparent;border-radius:inherit}label[tuiProgressLabel] [tuiProgressBar]:not(:first-child){position:absolute;top:0;left:0;inline-size:100%;block-size:100%;background:transparent}\n"] }]
68
68
  }], propDecorators: { color: [{
69
69
  type: Input
70
70
  }], size: [{
@@ -4,13 +4,13 @@ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
4
4
 
5
5
  class TuiStatusStyles {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiStatusStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiStatusStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-status" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiStatus]{display:inline-flex;align-items:center;gap:.5rem}[tuiStatus]:before{content:\"\";display:var(--t-status, none);inline-size:.5rem;block-size:.5rem;border-radius:100%;background:var(--t-status)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiStatusStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-status" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiStatus]{display:inline-flex;align-items:center;gap:.5rem}[tuiStatus]:before{content:\"\";display:var(--t-status, none);inline-size:.5rem;block-size:.5rem;border-radius:100%;background:var(--t-status)}[tuiStatus][data-size=s]{gap:.125rem}[tuiStatus][data-size=m],[tuiStatus][data-size=l]{gap:.25rem}[tuiStatus][data-size=xl]{gap:.375rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiStatusStyles, decorators: [{
10
10
  type: Component,
11
11
  args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
12
12
  class: 'tui-status',
13
- }, styles: ["[tuiStatus]{display:inline-flex;align-items:center;gap:.5rem}[tuiStatus]:before{content:\"\";display:var(--t-status, none);inline-size:.5rem;block-size:.5rem;border-radius:100%;background:var(--t-status)}\n"] }]
13
+ }, styles: ["[tuiStatus]{display:inline-flex;align-items:center;gap:.5rem}[tuiStatus]:before{content:\"\";display:var(--t-status, none);inline-size:.5rem;block-size:.5rem;border-radius:100%;background:var(--t-status)}[tuiStatus][data-size=s]{gap:.125rem}[tuiStatus][data-size=m],[tuiStatus][data-size=l]{gap:.25rem}[tuiStatus][data-size=xl]{gap:.375rem}\n"] }]
14
14
  }] });
15
15
  class TuiStatus {
16
16
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-status.mjs","sources":["../../../projects/kit/components/status/status.directive.ts","../../../projects/kit/components/status/taiga-ui-kit-components-status.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/status.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-status',\n },\n})\nclass TuiStatusStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiStatus]',\n inputs: ['tuiStatus'],\n host: {\n tuiStatus: '',\n '[style.--t-status]': 'tuiStatus || null',\n },\n})\nexport class TuiStatus {\n protected readonly nothing = tuiWithStyles(TuiStatusStyles);\n\n public tuiStatus = '';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA,MAUM,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gHARP,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gNAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,eAAe,EAAA,UAAA,EAAA,CAAA;kBAVpB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,YAAY;AACtB,qBAAA,EAAA,MAAA,EAAA,CAAA,gNAAA,CAAA,EAAA,CAAA;;AAIL,MASa,SAAS,CAAA;AATtB,IAAA,WAAA,GAAA;AAUuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;QAErD,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AACzB,KAAA;+GAJY,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBATrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,aAAa;oBACvB,MAAM,EAAE,CAAC,WAAW,CAAC;AACrB,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,EAAE;AACb,wBAAA,oBAAoB,EAAE,mBAAmB;AAC5C,qBAAA;AACJ,iBAAA,CAAA;;;AC5BD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-status.mjs","sources":["../../../projects/kit/components/status/status.directive.ts","../../../projects/kit/components/status/taiga-ui-kit-components-status.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/status.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-status',\n },\n})\nclass TuiStatusStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiStatus]',\n inputs: ['tuiStatus'],\n host: {\n tuiStatus: '',\n '[style.--t-status]': 'tuiStatus || null',\n },\n})\nexport class TuiStatus {\n protected readonly nothing = tuiWithStyles(TuiStatusStyles);\n\n public tuiStatus = '';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA,MAUM,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gHARP,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wVAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,eAAe,EAAA,UAAA,EAAA,CAAA;kBAVpB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,YAAY;AACtB,qBAAA,EAAA,MAAA,EAAA,CAAA,wVAAA,CAAA,EAAA,CAAA;;AAIL,MASa,SAAS,CAAA;AATtB,IAAA,WAAA,GAAA;AAUuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;QAErD,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AACzB,KAAA;+GAJY,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBATrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,aAAa;oBACvB,MAAM,EAAE,CAAC,WAAW,CAAC;AACrB,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,EAAE;AACb,wBAAA,oBAAoB,EAAE,mBAAmB;AAC5C,qBAAA;AACJ,iBAAA,CAAA;;;AC5BD;;AAEG;;;;"}
@@ -46,12 +46,12 @@ const TUI_TILES_REORDER = tuiCreateToken(tuiTilesSwap);
46
46
 
47
47
  class TuiTilesComponent {
48
48
  constructor() {
49
- this.el = tuiInjectElement();
50
49
  this.el$ = new Subject();
51
50
  this.handler = inject(TUI_TILES_REORDER);
52
51
  this.debounce = 0;
53
52
  this.orderChange = this.el$.pipe(debounce(() => timer(this.debounce)), filter(this.filter.bind(this)), map((element) => this.reorder(element)));
54
53
  this.element = signal(null);
54
+ this.el = tuiInjectElement();
55
55
  this.order$ = new BehaviorSubject(new Map());
56
56
  }
57
57
  set order(map) {
@@ -77,14 +77,14 @@ class TuiTilesComponent {
77
77
  return this.order$.value;
78
78
  }
79
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTilesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiTilesComponent, isStandalone: true, selector: "tui-tiles", inputs: { debounce: "debounce", order: "order" }, outputs: { orderChange: "orderChange" }, host: { listeners: { "pointerleave.zoneless": "rearrange()" }, properties: { "class._dragged": "element()" } }, providers: [
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiTilesComponent, isStandalone: true, selector: "tui-tiles", inputs: { debounce: "debounce", order: "order" }, outputs: { orderChange: "orderChange" }, host: { listeners: { "pointerleave.zoneless": "rearrange()" } }, providers: [
81
81
  ResizeObserverService,
82
82
  MutationObserverService,
83
83
  {
84
84
  provide: WA_MUTATION_OBSERVER_INIT,
85
85
  useValue: { childList: true },
86
86
  },
87
- ], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-tiles{position:relative;z-index:0;display:grid;grid-auto-flow:dense;justify-items:stretch}tui-tiles._dragged tui-tile>.t-wrapper{pointer-events:none}tui-tiles._dragged tui-tile:not(._dragged)>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-delay:1ms}tui-tiles:not(._dragged) tui-tile._dragged>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-delay:1ms}tui-tile>.t-wrapper{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;z-index:0;border-radius:inherit}tui-tile._dragged>.t-wrapper{z-index:1;transition:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
87
+ ], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-tiles{position:relative;z-index:0;display:grid;grid-auto-flow:dense;justify-items:stretch}tui-tiles._dragged tui-tile>.t-wrapper{pointer-events:none}tui-tiles._dragged tui-tile:not(._dragged)>.t-wrapper,tui-tiles:not(._dragged) tui-tile._dragged>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-delay:1ms}tui-tile>.t-wrapper{position:absolute;z-index:0;border-radius:inherit}tui-tile._dragged>.t-wrapper,tui-tile:has(tui-tile._dragged)>.t-wrapper{z-index:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
88
88
  }
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTilesComponent, decorators: [{
90
90
  type: Component,
@@ -96,9 +96,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
96
96
  useValue: { childList: true },
97
97
  },
98
98
  ], host: {
99
- '[class._dragged]': 'element()',
100
99
  '(pointerleave.zoneless)': 'rearrange()',
101
- }, styles: ["tui-tiles{position:relative;z-index:0;display:grid;grid-auto-flow:dense;justify-items:stretch}tui-tiles._dragged tui-tile>.t-wrapper{pointer-events:none}tui-tiles._dragged tui-tile:not(._dragged)>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-delay:1ms}tui-tiles:not(._dragged) tui-tile._dragged>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-delay:1ms}tui-tile>.t-wrapper{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;z-index:0;border-radius:inherit}tui-tile._dragged>.t-wrapper{z-index:1;transition:none}\n"] }]
100
+ }, styles: ["tui-tiles{position:relative;z-index:0;display:grid;grid-auto-flow:dense;justify-items:stretch}tui-tiles._dragged tui-tile>.t-wrapper{pointer-events:none}tui-tiles._dragged tui-tile:not(._dragged)>.t-wrapper,tui-tiles:not(._dragged) tui-tile._dragged>.t-wrapper{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;transition-delay:1ms}tui-tile>.t-wrapper{position:absolute;z-index:0;border-radius:inherit}tui-tile._dragged>.t-wrapper,tui-tile:has(tui-tile._dragged)>.t-wrapper{z-index:1}\n"] }]
102
101
  }], propDecorators: { debounce: [{
103
102
  type: Input
104
103
  }], orderChange: [{
@@ -166,12 +165,16 @@ class TuiTileService {
166
165
  setPosition(element, [left]) {
167
166
  if (!Number.isNaN(left)) {
168
167
  element.style.setProperty('position', 'fixed');
168
+ element.style.setProperty('transition', 'none');
169
169
  return;
170
170
  }
171
171
  const { style } = element;
172
172
  const rect = element.getBoundingClientRect();
173
173
  const host = this.el.getBoundingClientRect();
174
174
  style.removeProperty('position');
175
+ style.removeProperty('transition');
176
+ style.removeProperty('top');
177
+ style.removeProperty('left');
175
178
  style.top = tuiPx(rect.top - host.top + this.el.offsetTop);
176
179
  style.left = tuiPx(rect.left - host.left + this.el.offsetLeft);
177
180
  }
@@ -193,14 +196,15 @@ class TuiTile {
193
196
  }
194
197
  onDrag(offset) {
195
198
  const dragged = !Number.isNaN(offset[0]);
196
- /**
197
- * TODO: should be this.dragged.set(this.dragged() || dragged);
198
- * but transitionend doesn't work like that for some unknown reason
199
- * due to a conflict with parent change detection
200
- */
201
- this.dragged.set(dragged);
199
+ this.dragged.set(this.dragged() || dragged);
202
200
  this.tiles.element.set(dragged ? this.element : null);
203
201
  this.service.setOffset(offset);
202
+ if (dragged) {
203
+ this.tiles.el.classList.add('_dragged');
204
+ }
205
+ else {
206
+ this.tiles.el.classList.remove('_dragged');
207
+ }
204
208
  }
205
209
  ngAfterViewInit() {
206
210
  if (this.wrapper) {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-tiles.mjs","sources":["../../../projects/kit/components/tiles/tiles.tokens.ts","../../../projects/kit/components/tiles/tiles.component.ts","../../../projects/kit/components/tiles/tile.service.ts","../../../projects/kit/components/tiles/tile.component.ts","../../../projects/kit/components/tiles/tile.template.html","../../../projects/kit/components/tiles/tile-handle.directive.ts","../../../projects/kit/components/tiles/tiles.ts","../../../projects/kit/components/tiles/taiga-ui-kit-components-tiles.ts"],"sourcesContent":["import {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport type TuiReorderFunction = (\n order: Map<number, number>,\n currentIndex: number,\n newIndex: number,\n) => Map<number, number>;\n\nexport const tuiTilesSwap: TuiReorderFunction = (order, currentIndex, newIndex) => {\n if (!order.has(currentIndex) || !order.has(newIndex)) {\n return order;\n }\n\n const dragged = order.get(currentIndex) ?? currentIndex;\n const placement = order.get(newIndex) ?? newIndex;\n const newOrder = new Map(order);\n\n newOrder.set(currentIndex, placement);\n newOrder.set(newIndex, dragged);\n\n return newOrder;\n};\n\nexport const tuiTilesShift: TuiReorderFunction = (order, currentIndex, newIndex) => {\n if (!order.has(currentIndex) || !order.has(newIndex)) {\n return order;\n }\n\n const dragged = order.get(currentIndex) ?? currentIndex;\n const placement = order.get(newIndex) ?? newIndex;\n const newOrder = new Map(order);\n const flipped = new Map(Array.from(order).map(([a, b]) => [b, a]));\n\n if ((placement - dragged) / Math.abs(placement - dragged) > 0) {\n for (let i = placement; i > dragged; i--) {\n newOrder.set(flipped.get(i) ?? i, i - 1);\n }\n } else {\n for (let i = placement; i < dragged; i++) {\n newOrder.set(flipped.get(i) ?? i, i + 1);\n }\n }\n\n newOrder.set(currentIndex, placement);\n\n return newOrder;\n};\n\nexport const TUI_TILES_REORDER = tuiCreateToken<TuiReorderFunction>(tuiTilesSwap);\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n Output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {BehaviorSubject, debounce, filter, map, Subject, timer} from 'rxjs';\n\nimport {TUI_TILES_REORDER} from './tiles.tokens';\n\n@Component({\n standalone: true,\n selector: 'tui-tiles',\n template: '<ng-content />',\n styleUrls: ['./tiles.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ResizeObserverService,\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {childList: true},\n },\n ],\n host: {\n '[class._dragged]': 'element()',\n '(pointerleave.zoneless)': 'rearrange()',\n },\n})\nexport class TuiTilesComponent {\n private readonly el = tuiInjectElement();\n private readonly el$ = new Subject<Element | undefined>();\n private readonly handler = inject(TUI_TILES_REORDER);\n\n @Input()\n public debounce = 0;\n\n @Output()\n public readonly orderChange = this.el$.pipe(\n debounce(() => timer(this.debounce)),\n filter(this.filter.bind(this)),\n map((element) => this.reorder(element)),\n );\n\n public element = signal<Element | null>(null);\n\n public readonly order$ = new BehaviorSubject(new Map<number, number>());\n\n @Input()\n public set order(map: Map<number, number>) {\n this.order$.next(map);\n }\n\n public get order(): Map<number, number> {\n return this.order$.value;\n }\n\n public rearrange(element?: Element): void {\n this.el$.next(element);\n }\n\n private filter(element?: Element): element is Element {\n return !!this.element() && !!element && this.element() !== element;\n }\n\n private reorder(element: Element): Map<number, number> {\n const elements = Array.from(this.el.children);\n const currentIndex = elements.indexOf(this.element() || element);\n const newIndex = elements.indexOf(element);\n const order = this.order.size\n ? new Map(this.order)\n : new Map(elements.map((_, index) => [index, index]));\n\n this.order$.next(this.handler(order, currentIndex, newIndex));\n\n return this.order$.value;\n }\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport type {OnDestroy} from '@angular/core';\nimport {inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {MutationObserverService} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiArrayShallowEquals, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {\n BehaviorSubject,\n combineLatest,\n debounceTime,\n distinctUntilChanged,\n map,\n startWith,\n Subscription,\n} from 'rxjs';\n\nimport {TuiTilesComponent} from './tiles.component';\n\n@Injectable()\nexport class TuiTileService implements OnDestroy {\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly el = tuiInjectElement();\n private readonly tiles = inject(TuiTilesComponent);\n private readonly sub = new Subscription();\n private readonly offset$ = new BehaviorSubject<readonly [number, number]>([NaN, NaN]);\n private readonly position$: Observable<readonly [number, number]> = combineLatest([\n this.offset$.pipe(distinctUntilChanged(tuiArrayShallowEquals)),\n inject(ResizeObserverService).pipe(startWith(null)),\n inject(MutationObserverService).pipe(startWith(null)),\n this.tiles.order$.pipe(debounceTime(0, tuiZonefreeScheduler())),\n ]).pipe(map(([offset]) => offset));\n\n public init(element: HTMLElement): void {\n if (this.isBrowser) {\n this.sub.add(\n this.position$.subscribe((offset) => {\n this.setPosition(element, offset);\n this.setRect(element, offset);\n }),\n );\n } else {\n this.el.style.setProperty('position', 'relative');\n }\n }\n\n public setOffset(offset: readonly [number, number]): void {\n this.offset$.next(offset);\n }\n\n public ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n\n private getRect([left, top]: readonly [number, number]): DOMRect {\n const elTop = Number.isNaN(top) ? this.el.offsetTop : top;\n const elLeft = Number.isNaN(left) ? this.el.offsetLeft : left;\n\n const rect = {\n top: elTop,\n left: elLeft,\n width: this.el.clientWidth,\n height: this.el.clientHeight,\n right: NaN,\n bottom: NaN,\n y: elTop,\n x: elLeft,\n };\n\n return {\n ...rect,\n toJSON: () => JSON.stringify(rect),\n };\n }\n\n private setRect({style}: HTMLElement, offset: readonly [number, number]): void {\n const {top, left, width, height} = this.getRect(offset);\n\n style.top = tuiPx(top);\n style.left = tuiPx(left);\n style.width = tuiPx(width);\n style.height = tuiPx(height);\n }\n\n private setPosition(element: HTMLElement, [left]: readonly [number, number]): void {\n if (!Number.isNaN(left)) {\n element.style.setProperty('position', 'fixed');\n\n return;\n }\n\n const {style} = element;\n const rect = element.getBoundingClientRect();\n const host = this.el.getBoundingClientRect();\n\n style.removeProperty('position');\n style.top = tuiPx(rect.top - host.top + this.el.offsetTop);\n style.left = tuiPx(rect.left - host.left + this.el.offsetLeft);\n }\n}\n","import type {AfterViewInit, ElementRef, OnDestroy} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiTileService} from './tile.service';\nimport {TuiTilesComponent} from './tiles.component';\n\n@Component({\n standalone: true,\n selector: 'tui-tile',\n templateUrl: './tile.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiTileService],\n host: {\n '[class._dragged]': 'dragged()',\n '[style.gridColumn]': 'column',\n '[style.gridRow]': 'row',\n '(pointerenter)': 'onEnter()',\n },\n})\nexport class TuiTile implements OnDestroy, AfterViewInit {\n @ViewChild('wrapper')\n private readonly wrapper?: ElementRef<HTMLElement>;\n\n private readonly service = inject(TuiTileService);\n private readonly tiles = inject(TuiTilesComponent);\n\n protected dragged = signal(false);\n\n @Input()\n public width = 1;\n\n @Input()\n public height = 1;\n\n public readonly element = tuiInjectElement();\n\n public onDrag(offset: readonly [number, number]): void {\n const dragged = !Number.isNaN(offset[0]);\n\n /**\n * TODO: should be this.dragged.set(this.dragged() || dragged);\n * but transitionend doesn't work like that for some unknown reason\n * due to a conflict with parent change detection\n */\n this.dragged.set(dragged);\n\n this.tiles.element.set(dragged ? this.element : null);\n this.service.setOffset(offset);\n }\n\n public ngAfterViewInit(): void {\n if (this.wrapper) {\n this.service.init(this.wrapper.nativeElement);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.tiles.element() === this.element) {\n this.tiles.element.set(null);\n }\n }\n\n protected get column(): string {\n return `span var(--tui-width, ${this.width})`;\n }\n\n protected get row(): string {\n return `span var(--tui-height, ${this.height})`;\n }\n\n protected onEnter(): void {\n this.tiles.rearrange(this.element);\n }\n\n protected onTransitionEnd(): void {\n this.dragged.set(false);\n }\n}\n","<div\n #wrapper\n class=\"t-wrapper\"\n (transitionend.self)=\"onTransitionEnd()\"\n>\n <ng-content />\n</div>\n","import {Directive, inject} from '@angular/core';\nimport {tuiGetActualTarget, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {shouldCall} from '@taiga-ui/event-plugins';\n\nimport {TuiTile} from './tile.component';\n\nfunction isInteracting(this: TuiTileHandle, x = NaN): boolean {\n return !Number.isNaN(x) || !Number.isNaN(this['x']);\n}\n\nfunction isDragging(this: TuiTileHandle): boolean {\n return !Number.isNaN(this['x']);\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiTileHandle]',\n host: {\n '[style.touchAction]': '\"none\"',\n '[style.userSelect]': '\"none\"',\n '(pointerdown.zoneless.prevent)': 'onStart($event)',\n '(document:pointerup.zoneless)': 'onPointer()',\n '(document:pointermove.zoneless)': 'onMove($event.x, $event.y)',\n },\n})\nexport class TuiTileHandle {\n private readonly tile = inject(TuiTile);\n private x = NaN;\n private y = NaN;\n\n @shouldCall(isInteracting)\n protected onPointer(x = NaN, y = NaN): void {\n const {left, top} = this.tile.element.getBoundingClientRect();\n\n this.x = x - left;\n this.y = y - top;\n this.tile.onDrag([NaN, NaN]);\n }\n\n @shouldCall(isDragging)\n protected onMove(x: number, y: number): void {\n this.tile.onDrag([x - this.x, y - this.y]);\n }\n\n protected onStart(event: PointerEvent): void {\n const target = tuiGetActualTarget(event);\n const {x, y, pointerId} = event;\n\n if (tuiIsElement(target)) {\n target.releasePointerCapture(pointerId);\n }\n\n this.onPointer(x, y);\n }\n}\n","import {TuiTile} from './tile.component';\nimport {TuiTileHandle} from './tile-handle.directive';\nimport {TuiTilesComponent} from './tiles.component';\n\nexport const TuiTiles = [TuiTilesComponent, TuiTile, TuiTileHandle] as const;\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-kit-components-tiles.mjs","sources":["../../../projects/kit/components/tiles/tiles.tokens.ts","../../../projects/kit/components/tiles/tiles.component.ts","../../../projects/kit/components/tiles/tile.service.ts","../../../projects/kit/components/tiles/tile.component.ts","../../../projects/kit/components/tiles/tile.template.html","../../../projects/kit/components/tiles/tile-handle.directive.ts","../../../projects/kit/components/tiles/tiles.ts","../../../projects/kit/components/tiles/taiga-ui-kit-components-tiles.ts"],"sourcesContent":["import {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport type TuiReorderFunction = (\n order: Map<number, number>,\n currentIndex: number,\n newIndex: number,\n) => Map<number, number>;\n\nexport const tuiTilesSwap: TuiReorderFunction = (order, currentIndex, newIndex) => {\n if (!order.has(currentIndex) || !order.has(newIndex)) {\n return order;\n }\n\n const dragged = order.get(currentIndex) ?? currentIndex;\n const placement = order.get(newIndex) ?? newIndex;\n const newOrder = new Map(order);\n\n newOrder.set(currentIndex, placement);\n newOrder.set(newIndex, dragged);\n\n return newOrder;\n};\n\nexport const tuiTilesShift: TuiReorderFunction = (order, currentIndex, newIndex) => {\n if (!order.has(currentIndex) || !order.has(newIndex)) {\n return order;\n }\n\n const dragged = order.get(currentIndex) ?? currentIndex;\n const placement = order.get(newIndex) ?? newIndex;\n const newOrder = new Map(order);\n const flipped = new Map(Array.from(order).map(([a, b]) => [b, a]));\n\n if ((placement - dragged) / Math.abs(placement - dragged) > 0) {\n for (let i = placement; i > dragged; i--) {\n newOrder.set(flipped.get(i) ?? i, i - 1);\n }\n } else {\n for (let i = placement; i < dragged; i++) {\n newOrder.set(flipped.get(i) ?? i, i + 1);\n }\n }\n\n newOrder.set(currentIndex, placement);\n\n return newOrder;\n};\n\nexport const TUI_TILES_REORDER = tuiCreateToken<TuiReorderFunction>(tuiTilesSwap);\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n Output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {BehaviorSubject, debounce, filter, map, Subject, timer} from 'rxjs';\n\nimport {TUI_TILES_REORDER} from './tiles.tokens';\n\n@Component({\n standalone: true,\n selector: 'tui-tiles',\n template: '<ng-content />',\n styleUrls: ['./tiles.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ResizeObserverService,\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {childList: true},\n },\n ],\n host: {\n '(pointerleave.zoneless)': 'rearrange()',\n },\n})\nexport class TuiTilesComponent {\n private readonly el$ = new Subject<Element | undefined>();\n private readonly handler = inject(TUI_TILES_REORDER);\n\n @Input()\n public debounce = 0;\n\n @Output()\n public readonly orderChange = this.el$.pipe(\n debounce(() => timer(this.debounce)),\n filter(this.filter.bind(this)),\n map((element) => this.reorder(element)),\n );\n\n public readonly element = signal<Element | null>(null);\n public readonly el = tuiInjectElement();\n\n public readonly order$ = new BehaviorSubject(new Map<number, number>());\n\n @Input()\n public set order(map: Map<number, number>) {\n this.order$.next(map);\n }\n\n public get order(): Map<number, number> {\n return this.order$.value;\n }\n\n public rearrange(element?: Element): void {\n this.el$.next(element);\n }\n\n private filter(element?: Element): element is Element {\n return !!this.element() && !!element && this.element() !== element;\n }\n\n private reorder(element: Element): Map<number, number> {\n const elements = Array.from(this.el.children);\n const currentIndex = elements.indexOf(this.element() || element);\n const newIndex = elements.indexOf(element);\n const order = this.order.size\n ? new Map(this.order)\n : new Map(elements.map((_, index) => [index, index]));\n\n this.order$.next(this.handler(order, currentIndex, newIndex));\n\n return this.order$.value;\n }\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport type {OnDestroy} from '@angular/core';\nimport {inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {MutationObserverService} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiArrayShallowEquals, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {\n BehaviorSubject,\n combineLatest,\n debounceTime,\n distinctUntilChanged,\n map,\n startWith,\n Subscription,\n} from 'rxjs';\n\nimport {TuiTilesComponent} from './tiles.component';\n\n@Injectable()\nexport class TuiTileService implements OnDestroy {\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly el = tuiInjectElement();\n private readonly tiles = inject(TuiTilesComponent);\n private readonly sub = new Subscription();\n private readonly offset$ = new BehaviorSubject<readonly [number, number]>([NaN, NaN]);\n private readonly position$: Observable<readonly [number, number]> = combineLatest([\n this.offset$.pipe(distinctUntilChanged(tuiArrayShallowEquals)),\n inject(ResizeObserverService).pipe(startWith(null)),\n inject(MutationObserverService).pipe(startWith(null)),\n this.tiles.order$.pipe(debounceTime(0, tuiZonefreeScheduler())),\n ]).pipe(map(([offset]) => offset));\n\n public init(element: HTMLElement): void {\n if (this.isBrowser) {\n this.sub.add(\n this.position$.subscribe((offset) => {\n this.setPosition(element, offset);\n this.setRect(element, offset);\n }),\n );\n } else {\n this.el.style.setProperty('position', 'relative');\n }\n }\n\n public setOffset(offset: readonly [number, number]): void {\n this.offset$.next(offset);\n }\n\n public ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n\n private getRect([left, top]: readonly [number, number]): DOMRect {\n const elTop = Number.isNaN(top) ? this.el.offsetTop : top;\n const elLeft = Number.isNaN(left) ? this.el.offsetLeft : left;\n\n const rect = {\n top: elTop,\n left: elLeft,\n width: this.el.clientWidth,\n height: this.el.clientHeight,\n right: NaN,\n bottom: NaN,\n y: elTop,\n x: elLeft,\n };\n\n return {\n ...rect,\n toJSON: () => JSON.stringify(rect),\n };\n }\n\n private setRect({style}: HTMLElement, offset: readonly [number, number]): void {\n const {top, left, width, height} = this.getRect(offset);\n\n style.top = tuiPx(top);\n style.left = tuiPx(left);\n style.width = tuiPx(width);\n style.height = tuiPx(height);\n }\n\n private setPosition(element: HTMLElement, [left]: readonly [number, number]): void {\n if (!Number.isNaN(left)) {\n element.style.setProperty('position', 'fixed');\n element.style.setProperty('transition', 'none');\n\n return;\n }\n\n const {style} = element;\n const rect = element.getBoundingClientRect();\n const host = this.el.getBoundingClientRect();\n\n style.removeProperty('position');\n style.removeProperty('transition');\n style.removeProperty('top');\n style.removeProperty('left');\n\n style.top = tuiPx(rect.top - host.top + this.el.offsetTop);\n style.left = tuiPx(rect.left - host.left + this.el.offsetLeft);\n }\n}\n","import type {AfterViewInit, ElementRef, OnDestroy} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n signal,\n ViewChild,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiTileService} from './tile.service';\nimport {TuiTilesComponent} from './tiles.component';\n\n@Component({\n standalone: true,\n selector: 'tui-tile',\n templateUrl: './tile.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiTileService],\n host: {\n '[class._dragged]': 'dragged()',\n '[style.gridColumn]': 'column',\n '[style.gridRow]': 'row',\n '(pointerenter)': 'onEnter()',\n },\n})\nexport class TuiTile implements OnDestroy, AfterViewInit {\n @ViewChild('wrapper')\n private readonly wrapper?: ElementRef<HTMLElement>;\n\n private readonly service = inject(TuiTileService);\n private readonly tiles = inject(TuiTilesComponent);\n\n protected dragged = signal(false);\n\n @Input()\n public width = 1;\n\n @Input()\n public height = 1;\n\n public readonly element = tuiInjectElement();\n\n public onDrag(offset: readonly [number, number]): void {\n const dragged = !Number.isNaN(offset[0]);\n\n this.dragged.set(this.dragged() || dragged);\n\n this.tiles.element.set(dragged ? this.element : null);\n this.service.setOffset(offset);\n\n if (dragged) {\n this.tiles.el.classList.add('_dragged');\n } else {\n this.tiles.el.classList.remove('_dragged');\n }\n }\n\n public ngAfterViewInit(): void {\n if (this.wrapper) {\n this.service.init(this.wrapper.nativeElement);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.tiles.element() === this.element) {\n this.tiles.element.set(null);\n }\n }\n\n protected get column(): string {\n return `span var(--tui-width, ${this.width})`;\n }\n\n protected get row(): string {\n return `span var(--tui-height, ${this.height})`;\n }\n\n protected onEnter(): void {\n this.tiles.rearrange(this.element);\n }\n\n protected onTransitionEnd(): void {\n this.dragged.set(false);\n }\n}\n","<div\n #wrapper\n class=\"t-wrapper\"\n (transitionend.self)=\"onTransitionEnd()\"\n>\n <ng-content />\n</div>\n","import {Directive, inject} from '@angular/core';\nimport {tuiGetActualTarget, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {shouldCall} from '@taiga-ui/event-plugins';\n\nimport {TuiTile} from './tile.component';\n\nfunction isInteracting(this: TuiTileHandle, x = NaN): boolean {\n return !Number.isNaN(x) || !Number.isNaN(this['x']);\n}\n\nfunction isDragging(this: TuiTileHandle): boolean {\n return !Number.isNaN(this['x']);\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiTileHandle]',\n host: {\n '[style.touchAction]': '\"none\"',\n '[style.userSelect]': '\"none\"',\n '(pointerdown.zoneless.prevent)': 'onStart($event)',\n '(document:pointerup.zoneless)': 'onPointer()',\n '(document:pointermove.zoneless)': 'onMove($event.x, $event.y)',\n },\n})\nexport class TuiTileHandle {\n private readonly tile = inject(TuiTile);\n private x = NaN;\n private y = NaN;\n\n @shouldCall(isInteracting)\n protected onPointer(x = NaN, y = NaN): void {\n const {left, top} = this.tile.element.getBoundingClientRect();\n\n this.x = x - left;\n this.y = y - top;\n this.tile.onDrag([NaN, NaN]);\n }\n\n @shouldCall(isDragging)\n protected onMove(x: number, y: number): void {\n this.tile.onDrag([x - this.x, y - this.y]);\n }\n\n protected onStart(event: PointerEvent): void {\n const target = tuiGetActualTarget(event);\n const {x, y, pointerId} = event;\n\n if (tuiIsElement(target)) {\n target.releasePointerCapture(pointerId);\n }\n\n this.onPointer(x, y);\n }\n}\n","import {TuiTile} from './tile.component';\nimport {TuiTileHandle} from './tile-handle.directive';\nimport {TuiTilesComponent} from './tiles.component';\n\nexport const TuiTiles = [TuiTilesComponent, TuiTile, TuiTileHandle] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ export * from '@taiga-ui/kit/components/items-with-more';
32
32
  export * from '@taiga-ui/kit/components/like';
33
33
  export * from '@taiga-ui/kit/components/line-clamp';
34
34
  export * from '@taiga-ui/kit/components/message';
35
+ export * from '@taiga-ui/kit/components/pager';
35
36
  export * from '@taiga-ui/kit/components/pagination';
36
37
  export * from '@taiga-ui/kit/components/pdf-viewer';
37
38
  export * from '@taiga-ui/kit/components/pin';
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components.mjs","sources":["../../../projects/kit/components/taiga-ui-kit-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG"}
1
+ {"version":3,"file":"taiga-ui-kit-components.mjs","sources":["../../../projects/kit/components/taiga-ui-kit-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG"}
@@ -4,13 +4,13 @@ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
4
4
 
5
5
  class TuiButtonGroupStyles {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonGroupStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiButtonGroupStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-button-group-styles" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container{transition:all calc(var(--tui-duration-moderate, .3s) / 3) var(--tui-curve-productive-standard, cubic-bezier(.2, 0, .4, .9));transition-property:background,height,border-radius;border-radius:var(--tui-radius-xl);overflow:hidden}[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container .t-wrapper{display:flex;justify-content:center}[tuiButtonGroup] tui-elastic-container{inline-size:100%}[tuiButtonGroup] button,[tuiButtonGroup] a{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;border:none;outline:none;background:transparent;align-items:center;flex:1;flex-direction:column;padding:1.125rem .25rem;gap:.5rem;font:var(--tui-font-text-ui-s);max-inline-size:calc(50% - 1.75rem);cursor:pointer;color:var(--tui-text-action);text-align:center;text-decoration:none;clip-path:inset(0)}[tuiButtonGroup] button:first-child,[tuiButtonGroup] a:first-child{clip-path:inset(0 0 0 -10rem)}[tuiButtonGroup] button:last-child,[tuiButtonGroup] a:last-child{clip-path:inset(0 -10rem 0 0)}[tuiButtonGroup] button:active,[tuiButtonGroup] a:active{background:var(--tui-background-neutral-1)}[tuiButtonGroup] button:before,[tuiButtonGroup] a:before,[tuiButtonGroup] button:after,[tuiButtonGroup] a:after{position:absolute;top:0;background:inherit;inline-size:1.75rem;block-size:100%}[tuiButtonGroup] button:first-child:before,[tuiButtonGroup] a:first-child:before{content:\"\";left:-1.75rem}[tuiButtonGroup] button:last-child:after,[tuiButtonGroup] a:last-child:after{content:\"\";right:-1.75rem}[tuiButtonGroup] button tui-icon,[tuiButtonGroup] a tui-icon{font-size:1.75rem}[tuiButtonGroup]:has(button:only-child){border-radius:1rem}[tuiButtonGroup] button:only-child,[tuiButtonGroup] a:only-child{inline-size:100%;flex-direction:row;font:var(--tui-font-text-ui-l);max-inline-size:100%;justify-content:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiButtonGroupStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-button-group-styles" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container{transition-property:background,height,border-radius;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border-radius:var(--tui-radius-xl);overflow:hidden}[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container .t-wrapper{display:flex;justify-content:center}[tuiButtonGroup] tui-elastic-container{inline-size:100%}[tuiButtonGroup] button,[tuiButtonGroup] a{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;border:none;outline:none;background:transparent;align-items:center;flex:1;flex-direction:column;padding:1.125rem .25rem;gap:.5rem;font:var(--tui-font-text-ui-s);max-inline-size:calc(50% - 1.75rem);cursor:pointer;color:var(--tui-text-action);text-align:center;text-decoration:none;clip-path:inset(0)}[tuiButtonGroup] button:first-child,[tuiButtonGroup] a:first-child{clip-path:inset(0 0 0 -10rem)}[tuiButtonGroup] button:last-child,[tuiButtonGroup] a:last-child{clip-path:inset(0 -10rem 0 0)}[tuiButtonGroup] button:active,[tuiButtonGroup] a:active{background:var(--tui-background-neutral-1)}[tuiButtonGroup] button:before,[tuiButtonGroup] a:before,[tuiButtonGroup] button:after,[tuiButtonGroup] a:after{position:absolute;top:0;background:inherit;inline-size:1.75rem;block-size:100%}[tuiButtonGroup] button:first-child:before,[tuiButtonGroup] a:first-child:before{content:\"\";left:-1.75rem}[tuiButtonGroup] button:last-child:after,[tuiButtonGroup] a:last-child:after{content:\"\";right:-1.75rem}[tuiButtonGroup] button tui-icon,[tuiButtonGroup] a tui-icon{font-size:1.75rem}[tuiButtonGroup]:has(button:only-child){border-radius:1rem}[tuiButtonGroup] button:only-child,[tuiButtonGroup] a:only-child{inline-size:100%;flex-direction:row;font:var(--tui-font-text-ui-l);max-inline-size:100%;justify-content:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonGroupStyles, decorators: [{
10
10
  type: Component,
11
11
  args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
12
12
  class: 'tui-button-group-styles',
13
- }, styles: ["[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container{transition:all calc(var(--tui-duration-moderate, .3s) / 3) var(--tui-curve-productive-standard, cubic-bezier(.2, 0, .4, .9));transition-property:background,height,border-radius;border-radius:var(--tui-radius-xl);overflow:hidden}[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container .t-wrapper{display:flex;justify-content:center}[tuiButtonGroup] tui-elastic-container{inline-size:100%}[tuiButtonGroup] button,[tuiButtonGroup] a{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;border:none;outline:none;background:transparent;align-items:center;flex:1;flex-direction:column;padding:1.125rem .25rem;gap:.5rem;font:var(--tui-font-text-ui-s);max-inline-size:calc(50% - 1.75rem);cursor:pointer;color:var(--tui-text-action);text-align:center;text-decoration:none;clip-path:inset(0)}[tuiButtonGroup] button:first-child,[tuiButtonGroup] a:first-child{clip-path:inset(0 0 0 -10rem)}[tuiButtonGroup] button:last-child,[tuiButtonGroup] a:last-child{clip-path:inset(0 -10rem 0 0)}[tuiButtonGroup] button:active,[tuiButtonGroup] a:active{background:var(--tui-background-neutral-1)}[tuiButtonGroup] button:before,[tuiButtonGroup] a:before,[tuiButtonGroup] button:after,[tuiButtonGroup] a:after{position:absolute;top:0;background:inherit;inline-size:1.75rem;block-size:100%}[tuiButtonGroup] button:first-child:before,[tuiButtonGroup] a:first-child:before{content:\"\";left:-1.75rem}[tuiButtonGroup] button:last-child:after,[tuiButtonGroup] a:last-child:after{content:\"\";right:-1.75rem}[tuiButtonGroup] button tui-icon,[tuiButtonGroup] a tui-icon{font-size:1.75rem}[tuiButtonGroup]:has(button:only-child){border-radius:1rem}[tuiButtonGroup] button:only-child,[tuiButtonGroup] a:only-child{inline-size:100%;flex-direction:row;font:var(--tui-font-text-ui-l);max-inline-size:100%;justify-content:center}\n"] }]
13
+ }, styles: ["[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container{transition-property:background,height,border-radius;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border-radius:var(--tui-radius-xl);overflow:hidden}[tuiButtonGroup],[tuiButtonGroup] tui-elastic-container .t-wrapper{display:flex;justify-content:center}[tuiButtonGroup] tui-elastic-container{inline-size:100%}[tuiButtonGroup] button,[tuiButtonGroup] a{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;border:none;outline:none;background:transparent;align-items:center;flex:1;flex-direction:column;padding:1.125rem .25rem;gap:.5rem;font:var(--tui-font-text-ui-s);max-inline-size:calc(50% - 1.75rem);cursor:pointer;color:var(--tui-text-action);text-align:center;text-decoration:none;clip-path:inset(0)}[tuiButtonGroup] button:first-child,[tuiButtonGroup] a:first-child{clip-path:inset(0 0 0 -10rem)}[tuiButtonGroup] button:last-child,[tuiButtonGroup] a:last-child{clip-path:inset(0 -10rem 0 0)}[tuiButtonGroup] button:active,[tuiButtonGroup] a:active{background:var(--tui-background-neutral-1)}[tuiButtonGroup] button:before,[tuiButtonGroup] a:before,[tuiButtonGroup] button:after,[tuiButtonGroup] a:after{position:absolute;top:0;background:inherit;inline-size:1.75rem;block-size:100%}[tuiButtonGroup] button:first-child:before,[tuiButtonGroup] a:first-child:before{content:\"\";left:-1.75rem}[tuiButtonGroup] button:last-child:after,[tuiButtonGroup] a:last-child:after{content:\"\";right:-1.75rem}[tuiButtonGroup] button tui-icon,[tuiButtonGroup] a tui-icon{font-size:1.75rem}[tuiButtonGroup]:has(button:only-child){border-radius:1rem}[tuiButtonGroup] button:only-child,[tuiButtonGroup] a:only-child{inline-size:100%;flex-direction:row;font:var(--tui-font-text-ui-l);max-inline-size:100%;justify-content:center}\n"] }]
14
14
  }] });
15
15
  class TuiButtonGroup {
16
16
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-button-group.mjs","sources":["../../../projects/kit/directives/button-group/button-group.directive.ts","../../../projects/kit/directives/button-group/taiga-ui-kit-directives-button-group.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./button-group.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-button-group-styles',\n },\n})\nclass TuiButtonGroupStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiButtonGroup]',\n})\nexport class TuiButtonGroup {\n protected readonly nothing = tuiWithStyles(TuiButtonGroupStyles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA,MAUM,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,6HARZ,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,y5DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVzB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,yBAAyB;AACnC,qBAAA,EAAA,MAAA,EAAA,CAAA,y5DAAA,CAAA,EAAA,CAAA;;AAIL,MAIa,cAAc,CAAA;AAJ3B,IAAA,WAAA,GAAA;AAKuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;AACpE,KAAA;+GAFY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC/B,iBAAA,CAAA;;;ACvBD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-button-group.mjs","sources":["../../../projects/kit/directives/button-group/button-group.directive.ts","../../../projects/kit/directives/button-group/taiga-ui-kit-directives-button-group.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./button-group.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-button-group-styles',\n },\n})\nclass TuiButtonGroupStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiButtonGroup]',\n})\nexport class TuiButtonGroup {\n protected readonly nothing = tuiWithStyles(TuiButtonGroupStyles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAQA,MAUM,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,6HARZ,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,g3DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAQV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVzB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,yBAAyB;AACnC,qBAAA,EAAA,MAAA,EAAA,CAAA,g3DAAA,CAAA,EAAA,CAAA;;AAIL,MAIa,cAAc,CAAA;AAJ3B,IAAA,WAAA,GAAA;AAKuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;AACpE,KAAA;+GAFY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC/B,iBAAA,CAAA;;;ACvBD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/kit",
3
- "version": "4.30.0",
3
+ "version": "4.31.0-canary.23376c6",
4
4
  "description": "Taiga UI Angular main components kit",
5
5
  "keywords": [
6
6
  "angular",
@@ -257,6 +257,12 @@
257
257
  "esm": "./esm2022/components/message/taiga-ui-kit-components-message.mjs",
258
258
  "default": "./fesm2022/taiga-ui-kit-components-message.mjs"
259
259
  },
260
+ "./components/pager": {
261
+ "types": "./components/pager/index.d.ts",
262
+ "esm2022": "./esm2022/components/pager/taiga-ui-kit-components-pager.mjs",
263
+ "esm": "./esm2022/components/pager/taiga-ui-kit-components-pager.mjs",
264
+ "default": "./fesm2022/taiga-ui-kit-components-pager.mjs"
265
+ },
260
266
  "./components/pagination": {
261
267
  "types": "./components/pagination/index.d.ts",
262
268
  "esm2022": "./esm2022/components/pagination/taiga-ui-kit-components-pagination.mjs",
@@ -549,13 +555,13 @@
549
555
  "@maskito/core": "^3.5.0",
550
556
  "@maskito/kit": "^3.5.0",
551
557
  "@maskito/phone": "^3.5.0",
552
- "@ng-web-apis/common": "^4.11.1",
553
- "@ng-web-apis/intersection-observer": "^4.11.1",
554
- "@ng-web-apis/mutation-observer": "^4.11.1",
555
- "@ng-web-apis/resize-observer": "^4.11.1",
556
- "@taiga-ui/cdk": "^4.30.0",
557
- "@taiga-ui/core": "^4.30.0",
558
- "@taiga-ui/i18n": "^4.30.0",
558
+ "@ng-web-apis/common": "^4.12.0",
559
+ "@ng-web-apis/intersection-observer": "^4.12.0",
560
+ "@ng-web-apis/mutation-observer": "^4.12.0",
561
+ "@ng-web-apis/resize-observer": "^4.12.0",
562
+ "@taiga-ui/cdk": "^4.31.0",
563
+ "@taiga-ui/core": "^4.31.0",
564
+ "@taiga-ui/i18n": "^4.31.0",
559
565
  "@taiga-ui/polymorpheus": "^4.9.0",
560
566
  "rxjs": ">=7.0.0"
561
567
  },
@@ -91,6 +91,7 @@
91
91
  min-block-size: 0;
92
92
  pointer-events: none;
93
93
  border-radius: inherit;
94
+ padding: 0;
94
95
  }
95
96
 
96
97
  tui-avatar {
@@ -49,7 +49,7 @@
49
49
  }
50
50
 
51
51
  [tuiProgressBar] {
52
- @track-color: var(--tui-background-neutral-1);
52
+ @track-color: var(--tui-background-neutral-2);
53
53
  @progress-color: var(--tui-progress-color, currentColor);
54
54
 
55
55
  .clearProgress();
@@ -27,4 +27,17 @@
27
27
  border-radius: 100%;
28
28
  background: var(--t-status);
29
29
  }
30
+
31
+ &[data-size='s'] {
32
+ gap: 0.125rem;
33
+ }
34
+
35
+ &[data-size='m'],
36
+ &[data-size='l'] {
37
+ gap: 0.25rem;
38
+ }
39
+
40
+ &[data-size='xl'] {
41
+ gap: 0.375rem;
42
+ }
30
43
  }