@taiga-ui/core 2.27.1 → 2.31.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 (194) hide show
  1. package/README.md +4 -5
  2. package/bundles/taiga-ui-core-components-dialog.umd.js +1 -1
  3. package/bundles/taiga-ui-core-components-dialog.umd.min.js +2 -2
  4. package/bundles/taiga-ui-core-components-dialog.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
  6. package/bundles/taiga-ui-core-components-expand.umd.min.js.map +1 -1
  7. package/bundles/taiga-ui-core-components-hints-host.umd.js +1 -0
  8. package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
  9. package/bundles/taiga-ui-core-components-hints-host.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
  11. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-core-components-link.umd.js +1 -1
  13. package/bundles/taiga-ui-core-components-link.umd.min.js +2 -2
  14. package/bundles/taiga-ui-core-components-link.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-core-components-notification.umd.js.map +1 -1
  16. package/bundles/taiga-ui-core-components-notification.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js.map +1 -1
  18. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
  20. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js.map +1 -1
  21. package/bundles/taiga-ui-core-components-root.umd.js +12 -7
  22. package/bundles/taiga-ui-core-components-root.umd.js.map +1 -1
  23. package/bundles/taiga-ui-core-components-root.umd.min.js +2 -2
  24. package/bundles/taiga-ui-core-components-root.umd.min.js.map +1 -1
  25. package/bundles/taiga-ui-core-components-svg.umd.js +10 -5
  26. package/bundles/taiga-ui-core-components-svg.umd.js.map +1 -1
  27. package/bundles/taiga-ui-core-components-svg.umd.min.js +1 -1
  28. package/bundles/taiga-ui-core-components-svg.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-core-constants.umd.js +2 -2
  30. package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
  31. package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
  32. package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
  33. package/bundles/taiga-ui-core-modules-notifications.umd.js +1 -1
  34. package/bundles/taiga-ui-core-modules-notifications.umd.js.map +1 -1
  35. package/bundles/taiga-ui-core-modules-notifications.umd.min.js +1 -1
  36. package/bundles/taiga-ui-core-modules-notifications.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-core-providers.umd.js +21 -5
  38. package/bundles/taiga-ui-core-providers.umd.js.map +1 -1
  39. package/bundles/taiga-ui-core-providers.umd.min.js +1 -1
  40. package/bundles/taiga-ui-core-providers.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-core-tokens.umd.js +12 -4
  42. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  43. package/bundles/taiga-ui-core-tokens.umd.min.js +2 -2
  44. package/bundles/taiga-ui-core-tokens.umd.min.js.map +1 -1
  45. package/bundles/taiga-ui-core-utils-dom.umd.js +1 -1
  46. package/bundles/taiga-ui-core-utils-dom.umd.js.map +1 -1
  47. package/bundles/taiga-ui-core-utils-dom.umd.min.js +1 -1
  48. package/bundles/taiga-ui-core-utils-dom.umd.min.js.map +1 -1
  49. package/bundles/taiga-ui-core-utils-format.umd.js +37 -5
  50. package/bundles/taiga-ui-core-utils-format.umd.js.map +1 -1
  51. package/bundles/taiga-ui-core-utils-format.umd.min.js +1 -1
  52. package/bundles/taiga-ui-core-utils-format.umd.min.js.map +1 -1
  53. package/bundles/taiga-ui-core-utils-mask.umd.js +5 -1
  54. package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
  55. package/bundles/taiga-ui-core-utils-mask.umd.min.js +1 -1
  56. package/bundles/taiga-ui-core-utils-mask.umd.min.js.map +1 -1
  57. package/components/dialog/taiga-ui-core-components-dialog.metadata.json +1 -1
  58. package/components/expand/expand.component.d.ts +1 -1
  59. package/components/hosted-dropdown/hosted-dropdown.component.d.ts +3 -3
  60. package/components/link/taiga-ui-core-components-link.metadata.json +1 -1
  61. package/components/notification/taiga-ui-core-components-notification.metadata.json +1 -1
  62. package/components/primitive-calendar/primitive-calendar.component.d.ts +1 -1
  63. package/components/primitive-year-picker/primitive-year-picker.component.d.ts +1 -1
  64. package/components/root/root.component.d.ts +2 -1
  65. package/components/root/taiga-ui-core-components-root.metadata.json +1 -1
  66. package/components/svg/svg.component.d.ts +3 -1
  67. package/components/svg/taiga-ui-core-components-svg.metadata.json +1 -1
  68. package/constants/taiga-ui-core-constants.metadata.json +1 -1
  69. package/constants/version.d.ts +1 -1
  70. package/esm2015/components/dialog/dialog.component.js +1 -1
  71. package/esm2015/components/expand/expand.component.js +1 -1
  72. package/esm2015/components/hints-host/hint-box/hint-box.component.js +2 -1
  73. package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +1 -1
  74. package/esm2015/components/link/link.component.js +1 -1
  75. package/esm2015/components/notification/notification.component.js +1 -1
  76. package/esm2015/components/primitive-calendar/primitive-calendar.component.js +1 -1
  77. package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +1 -1
  78. package/esm2015/components/root/root.component.js +12 -6
  79. package/esm2015/components/svg/svg.component.js +12 -7
  80. package/esm2015/constants/regexp.js +2 -2
  81. package/esm2015/constants/version.js +2 -2
  82. package/esm2015/modules/notifications/notification-alert/notification-alert.component.js +1 -1
  83. package/esm2015/modules/notifications/notifications-host/notifications-host.component.js +1 -1
  84. package/esm2015/modules/notifications/notifications.service.js +1 -1
  85. package/esm2015/providers/index.js +2 -1
  86. package/esm2015/providers/is-mobile-resolution.provider.js +17 -0
  87. package/esm2015/providers/mode.provider.js +3 -2
  88. package/esm2015/tokens/index.js +3 -1
  89. package/esm2015/tokens/is-mobile-resolution.js +3 -0
  90. package/esm2015/tokens/svg-src-processor.js +6 -0
  91. package/esm2015/utils/dom/process-icon.js +2 -2
  92. package/esm2015/utils/format/format-number.js +5 -6
  93. package/esm2015/utils/format/get-fractional-part-padded.js +15 -0
  94. package/esm2015/utils/format/index.js +3 -1
  95. package/esm2015/utils/format/number-to-string-without-exp.js +18 -0
  96. package/esm2015/utils/mask/create-auto-corrected-money-pipe.js +6 -2
  97. package/esm5/components/dialog/dialog.component.js +1 -1
  98. package/esm5/components/expand/expand.component.js +1 -1
  99. package/esm5/components/hints-host/hint-box/hint-box.component.js +2 -1
  100. package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +1 -1
  101. package/esm5/components/link/link.component.js +1 -1
  102. package/esm5/components/notification/notification.component.js +1 -1
  103. package/esm5/components/primitive-calendar/primitive-calendar.component.js +1 -1
  104. package/esm5/components/primitive-year-picker/primitive-year-picker.component.js +1 -1
  105. package/esm5/components/root/root.component.js +12 -6
  106. package/esm5/components/svg/svg.component.js +12 -7
  107. package/esm5/constants/regexp.js +2 -2
  108. package/esm5/constants/version.js +2 -2
  109. package/esm5/modules/notifications/notification-alert/notification-alert.component.js +1 -1
  110. package/esm5/modules/notifications/notifications-host/notifications-host.component.js +1 -1
  111. package/esm5/modules/notifications/notifications.service.js +1 -1
  112. package/esm5/providers/index.js +2 -1
  113. package/esm5/providers/is-mobile-resolution.provider.js +19 -0
  114. package/esm5/providers/mode.provider.js +3 -2
  115. package/esm5/tokens/index.js +3 -1
  116. package/esm5/tokens/is-mobile-resolution.js +3 -0
  117. package/esm5/tokens/svg-src-processor.js +6 -0
  118. package/esm5/utils/dom/process-icon.js +2 -2
  119. package/esm5/utils/format/format-number.js +5 -6
  120. package/esm5/utils/format/get-fractional-part-padded.js +16 -0
  121. package/esm5/utils/format/index.js +3 -1
  122. package/esm5/utils/format/number-to-string-without-exp.js +19 -0
  123. package/esm5/utils/mask/create-auto-corrected-money-pipe.js +6 -2
  124. package/fesm2015/taiga-ui-core-components-dialog.js +1 -1
  125. package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
  126. package/fesm2015/taiga-ui-core-components-hints-host.js +1 -0
  127. package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
  128. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  129. package/fesm2015/taiga-ui-core-components-link.js +1 -1
  130. package/fesm2015/taiga-ui-core-components-notification.js.map +1 -1
  131. package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  132. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  133. package/fesm2015/taiga-ui-core-components-root.js +11 -5
  134. package/fesm2015/taiga-ui-core-components-root.js.map +1 -1
  135. package/fesm2015/taiga-ui-core-components-svg.js +11 -6
  136. package/fesm2015/taiga-ui-core-components-svg.js.map +1 -1
  137. package/fesm2015/taiga-ui-core-constants.js +2 -2
  138. package/fesm2015/taiga-ui-core-constants.js.map +1 -1
  139. package/fesm2015/taiga-ui-core-modules-notifications.js +1 -1
  140. package/fesm2015/taiga-ui-core-modules-notifications.js.map +1 -1
  141. package/fesm2015/taiga-ui-core-providers.js +20 -7
  142. package/fesm2015/taiga-ui-core-providers.js.map +1 -1
  143. package/fesm2015/taiga-ui-core-tokens.js +8 -1
  144. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  145. package/fesm2015/taiga-ui-core-utils-dom.js +1 -1
  146. package/fesm2015/taiga-ui-core-utils-dom.js.map +1 -1
  147. package/fesm2015/taiga-ui-core-utils-format.js +36 -6
  148. package/fesm2015/taiga-ui-core-utils-format.js.map +1 -1
  149. package/fesm2015/taiga-ui-core-utils-mask.js +5 -1
  150. package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
  151. package/fesm5/taiga-ui-core-components-dialog.js +1 -1
  152. package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
  153. package/fesm5/taiga-ui-core-components-hints-host.js +1 -0
  154. package/fesm5/taiga-ui-core-components-hints-host.js.map +1 -1
  155. package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  156. package/fesm5/taiga-ui-core-components-link.js +1 -1
  157. package/fesm5/taiga-ui-core-components-notification.js.map +1 -1
  158. package/fesm5/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  159. package/fesm5/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  160. package/fesm5/taiga-ui-core-components-root.js +11 -5
  161. package/fesm5/taiga-ui-core-components-root.js.map +1 -1
  162. package/fesm5/taiga-ui-core-components-svg.js +11 -6
  163. package/fesm5/taiga-ui-core-components-svg.js.map +1 -1
  164. package/fesm5/taiga-ui-core-constants.js +2 -2
  165. package/fesm5/taiga-ui-core-constants.js.map +1 -1
  166. package/fesm5/taiga-ui-core-modules-notifications.js +1 -1
  167. package/fesm5/taiga-ui-core-modules-notifications.js.map +1 -1
  168. package/fesm5/taiga-ui-core-providers.js +22 -7
  169. package/fesm5/taiga-ui-core-providers.js.map +1 -1
  170. package/fesm5/taiga-ui-core-tokens.js +8 -1
  171. package/fesm5/taiga-ui-core-tokens.js.map +1 -1
  172. package/fesm5/taiga-ui-core-utils-dom.js +1 -1
  173. package/fesm5/taiga-ui-core-utils-dom.js.map +1 -1
  174. package/fesm5/taiga-ui-core-utils-format.js +36 -6
  175. package/fesm5/taiga-ui-core-utils-format.js.map +1 -1
  176. package/fesm5/taiga-ui-core-utils-mask.js +5 -1
  177. package/fesm5/taiga-ui-core-utils-mask.js.map +1 -1
  178. package/modules/notifications/taiga-ui-core-modules-notifications.metadata.json +1 -1
  179. package/package.json +5 -5
  180. package/providers/index.d.ts +1 -0
  181. package/providers/is-mobile-resolution.provider.d.ts +5 -0
  182. package/providers/taiga-ui-core-providers.metadata.json +1 -1
  183. package/styles/taiga-ui-theme.less +1 -0
  184. package/styles/theme/dialog.less +13 -0
  185. package/styles/variables/media.less +2 -2
  186. package/tokens/index.d.ts +2 -0
  187. package/tokens/is-mobile-resolution.d.ts +3 -0
  188. package/tokens/svg-src-processor.d.ts +3 -0
  189. package/tokens/taiga-ui-core-tokens.metadata.json +1 -1
  190. package/utils/format/get-fractional-part-padded.d.ts +8 -0
  191. package/utils/format/index.d.ts +2 -0
  192. package/utils/format/number-to-string-without-exp.d.ts +7 -0
  193. package/utils/format/taiga-ui-core-utils-format.metadata.json +1 -1
  194. package/utils/mask/create-auto-corrected-money-pipe.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-root.js","sources":["ng://@taiga-ui/core/components/root/root.component.ts","ng://@taiga-ui/core/components/root/root.module.ts","ng://@taiga-ui/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Optional,\n} from '@angular/core';\nimport {TUI_DIALOGS, TUI_IS_MOBILE, tuiAssert} from '@taiga-ui/cdk';\nimport {VERSION} from '@taiga-ui/core/constants';\nimport {TuiNotificationsHostComponent} from '@taiga-ui/core/modules/notifications';\nimport {TUI_ANIMATIONS_DURATION, TUI_ASSERT_ENABLED} from '@taiga-ui/core/tokens';\nimport {merge, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n// @dynamic\n@Component({\n selector: 'tui-root',\n templateUrl: 'root.template.html',\n styleUrls: ['./root.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'data-tui-version': VERSION,\n '[style.--tui-duration]': 'duration + \"ms\"',\n },\n})\nexport class TuiRootComponent {\n readonly scrollbars$ =\n this.dialogs && !this.isMobile\n ? merge(...this.dialogs).pipe(map(({length}) => !length))\n : of(!this.isMobile);\n\n constructor(\n @Inject(TUI_ANIMATIONS_DURATION) readonly duration: number,\n @Inject(ElementRef) readonly elementRef: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_DIALOGS)\n readonly dialogs: readonly Observable<readonly unknown[]>[] | null,\n @Optional()\n @Inject(TuiNotificationsHostComponent)\n readonly notificationsHost: TuiNotificationsHostComponent,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_ASSERT_ENABLED) enabled: boolean,\n ) {\n tuiAssert.enabled = enabled;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiDialogHostModule, TuiDragModule, TuiPortalHostModule} from '@taiga-ui/cdk';\nimport {TuiHintsHostModule} from '@taiga-ui/core/components/hints-host';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\nimport {TuiSvgDefsHostModule} from '@taiga-ui/core/internal/svg-defs-host';\nimport {EventPluginsModule} from '@tinkoff/ng-event-plugins';\n\nimport {TuiRootComponent} from './root.component';\n\n@NgModule({\n imports: [\n CommonModule,\n EventPluginsModule,\n TuiDragModule,\n TuiPortalHostModule,\n TuiSvgDefsHostModule,\n TuiHintsHostModule,\n TuiDialogHostModule,\n TuiScrollControlsModule,\n ],\n declarations: [TuiRootComponent],\n exports: [TuiRootComponent],\n})\nexport class TuiRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAcA;;IAiBI,0BAC8C,QAAgB,EAC7B,UAAmC,EAGvD,OAAyD,EAGzD,iBAAgD,EACjB,QAAiB,EAC7B,OAAgB;QATF,aAAQ,GAAR,QAAQ,CAAQ;QAC7B,eAAU,GAAV,UAAU,CAAyB;QAGvD,YAAO,GAAP,OAAO,CAAkD;QAGzD,sBAAiB,GAAjB,iBAAiB,CAA+B;QACjB,aAAQ,GAAR,QAAQ,CAAS;QAdpD,gBAAW,GAChB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;cACxB,KAAK,wBAAI,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,GAAG,CAAC,UAAC,EAAQ;oBAAP,kBAAM;gBAAM,OAAA,CAAC,MAAM;aAAA,CAAC,CAAC;cACvD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAczB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;KAC/B;;6CAZI,MAAM,SAAC,uBAAuB;gBACU,UAAU,uBAAlD,MAAM,SAAC,UAAU;gDACjB,QAAQ,YACR,MAAM,SAAC,WAAW;gBAIS,6BAA6B,uBAFxD,QAAQ,YACR,MAAM,SAAC,6BAA6B;8CAEpC,MAAM,SAAC,aAAa;8CACpB,MAAM,SAAC,kBAAkB;;IAhBrB,gBAAgB;QAV5B,SAAS,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,6xBAAiC;YAEjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;YAC/C,IAAI,EAAE;gBACF,kBAAkB,EAAE,OAAO;gBAC3B,wBAAwB,EAAE,iBAAiB;aAC9C;;SACJ,CAAC;QAQO,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;QAC/B,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;QAEnB,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,MAAM,CAAC,6BAA6B,CAAC,CAAA;QAErC,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;QACrB,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;OAhBtB,gBAAgB,CAoB5B;IAAD,uBAAC;CApBD;;;ICDA;KAA6B;IAAhB,aAAa;QAdzB,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,YAAY;gBACZ,kBAAkB;gBAClB,aAAa;gBACb,mBAAmB;gBACnB,oBAAoB;gBACpB,kBAAkB;gBAClB,mBAAmB;gBACnB,uBAAuB;aAC1B;YACD,YAAY,EAAE,CAAC,gBAAgB,CAAC;YAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;SAC9B,CAAC;OACW,aAAa,CAAG;IAAD,oBAAC;CAA7B;;ACxBA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-components-root.js","sources":["ng://@taiga-ui/core/components/root/root.component.ts","ng://@taiga-ui/core/components/root/root.module.ts","ng://@taiga-ui/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Optional,\n} from '@angular/core';\nimport {TUI_DIALOGS, TUI_IS_MOBILE, tuiAssert} from '@taiga-ui/cdk';\nimport {VERSION} from '@taiga-ui/core/constants';\nimport {TuiNotificationsHostComponent} from '@taiga-ui/core/modules/notifications';\nimport {TUI_IS_MOBILE_RES_PROVIDER} from '@taiga-ui/core/providers';\nimport {\n TUI_ANIMATIONS_DURATION,\n TUI_ASSERT_ENABLED,\n TUI_IS_MOBILE_RES,\n} from '@taiga-ui/core/tokens';\nimport {merge, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n// @dynamic\n@Component({\n selector: 'tui-root',\n templateUrl: 'root.template.html',\n styleUrls: ['./root.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TUI_IS_MOBILE_RES_PROVIDER],\n host: {\n 'data-tui-version': VERSION,\n '[style.--tui-duration]': 'duration + \"ms\"',\n '($.class._mobile)': 'isMobileRes$',\n },\n})\nexport class TuiRootComponent {\n readonly scrollbars$ =\n this.dialogs && !this.isMobile\n ? merge(...this.dialogs).pipe(map(({length}) => !length))\n : of(!this.isMobile);\n\n constructor(\n @Inject(TUI_ANIMATIONS_DURATION) readonly duration: number,\n @Inject(ElementRef) readonly elementRef: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_DIALOGS)\n readonly dialogs: readonly Observable<readonly unknown[]>[] | null,\n @Optional()\n @Inject(TuiNotificationsHostComponent)\n readonly notificationsHost: TuiNotificationsHostComponent,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_ASSERT_ENABLED) enabled: boolean,\n @Inject(TUI_IS_MOBILE_RES) readonly isMobileRes$: Observable<boolean>,\n ) {\n tuiAssert.enabled = enabled;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiDialogHostModule, TuiDragModule, TuiPortalHostModule} from '@taiga-ui/cdk';\nimport {TuiHintsHostModule} from '@taiga-ui/core/components/hints-host';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\nimport {TuiSvgDefsHostModule} from '@taiga-ui/core/internal/svg-defs-host';\nimport {EventPluginsModule} from '@tinkoff/ng-event-plugins';\n\nimport {TuiRootComponent} from './root.component';\n\n@NgModule({\n imports: [\n CommonModule,\n EventPluginsModule,\n TuiDragModule,\n TuiPortalHostModule,\n TuiSvgDefsHostModule,\n TuiHintsHostModule,\n TuiDialogHostModule,\n TuiScrollControlsModule,\n ],\n declarations: [TuiRootComponent],\n exports: [TuiRootComponent],\n})\nexport class TuiRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAmBA;;IAmBI,0BAC8C,QAAgB,EAC7B,UAAmC,EAGvD,OAAyD,EAGzD,iBAAgD,EACjB,QAAiB,EAC7B,OAAgB,EACR,YAAiC;QAV3B,aAAQ,GAAR,QAAQ,CAAQ;QAC7B,eAAU,GAAV,UAAU,CAAyB;QAGvD,YAAO,GAAP,OAAO,CAAkD;QAGzD,sBAAiB,GAAjB,iBAAiB,CAA+B;QACjB,aAAQ,GAAR,QAAQ,CAAS;QAErB,iBAAY,GAAZ,YAAY,CAAqB;QAhBhE,gBAAW,GAChB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;cACxB,KAAK,wBAAI,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,GAAG,CAAC,UAAC,EAAQ;oBAAP,kBAAM;gBAAM,OAAA,CAAC,MAAM;aAAA,CAAC,CAAC;cACvD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAezB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;KAC/B;;6CAbI,MAAM,SAAC,uBAAuB;gBACU,UAAU,uBAAlD,MAAM,SAAC,UAAU;gDACjB,QAAQ,YACR,MAAM,SAAC,WAAW;gBAIS,6BAA6B,uBAFxD,QAAQ,YACR,MAAM,SAAC,6BAA6B;8CAEpC,MAAM,SAAC,aAAa;8CACpB,MAAM,SAAC,kBAAkB;gBACwB,UAAU,uBAA3D,MAAM,SAAC,iBAAiB;;IAjBpB,gBAAgB;QAZ5B,SAAS,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,6xBAAiC;YAEjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;YAC/C,SAAS,EAAE,CAAC,0BAA0B,CAAC;YACvC,IAAI,EAAE;gBACF,kBAAkB,EAAE,OAAO;gBAC3B,wBAAwB,EAAE,iBAAiB;gBAC3C,mBAAmB,EAAE,cAAc;aACtC;;SACJ,CAAC;QAQO,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;QAC/B,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;QAEnB,WAAA,QAAQ,EAAE,CAAA;QACV,WAAA,MAAM,CAAC,6BAA6B,CAAC,CAAA;QAErC,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;QACrB,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAC1B,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;OAjBrB,gBAAgB,CAqB5B;IAAD,uBAAC;CArBD;;;ICRA;KAA6B;IAAhB,aAAa;QAdzB,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,YAAY;gBACZ,kBAAkB;gBAClB,aAAa;gBACb,mBAAmB;gBACnB,oBAAoB;gBACpB,kBAAkB;gBAClB,mBAAmB;gBACnB,uBAAuB;aAC1B;YACD,YAAY,EAAE,CAAC,gBAAgB,CAAC;YAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;SAC9B,CAAC;OACW,aAAa,CAAG;IAAD,oBAAC;CAA7B;;ACxBA;;;;;;"}
@@ -6,7 +6,7 @@ import { WINDOW, USER_AGENT } from '@ng-web-apis/common';
6
6
  import { isIE, getDocumentOrShadowRoot, tuiCustomEvent, tuiAssert, TuiStaticRequestService, tuiRequiredSetter, tuiPure, TuiLetModule } from '@taiga-ui/cdk';
7
7
  import { TUI_ICON_ERROR } from '@taiga-ui/core/constants';
8
8
  import { TuiSvgService } from '@taiga-ui/core/services';
9
- import { TUI_ICONS_PATH, TUI_SANITIZER } from '@taiga-ui/core/tokens';
9
+ import { TUI_ICONS_PATH, TUI_SANITIZER, TUI_SVG_SRC_PROCESSOR } from '@taiga-ui/core/tokens';
10
10
  import { isPresumedHTMLString } from '@taiga-ui/core/utils/miscellaneous';
11
11
  import { ReplaySubject, of } from 'rxjs';
12
12
  import { switchMap, startWith, catchError, map } from 'rxjs/operators';
@@ -17,7 +17,7 @@ var FAILED_EXTERNAL_ICON = 'Failed to load external SVG';
17
17
  // TODO: Consider moving to CDK along with SvgService and SvgDefsHostComponent
18
18
  // @dynamic
19
19
  var TuiSvgComponent = /** @class */ (function () {
20
- function TuiSvgComponent(documentRef, windowRef, iconsPath, tuiSanitizer, svgService, staticRequestService, sanitizer, elementRef, userAgent) {
20
+ function TuiSvgComponent(documentRef, windowRef, iconsPath, tuiSanitizer, svgService, staticRequestService, sanitizer, elementRef, userAgent, processor) {
21
21
  var _this = this;
22
22
  this.documentRef = documentRef;
23
23
  this.windowRef = windowRef;
@@ -28,6 +28,7 @@ var TuiSvgComponent = /** @class */ (function () {
28
28
  this.sanitizer = sanitizer;
29
29
  this.elementRef = elementRef;
30
30
  this.userAgent = userAgent;
31
+ this.processor = processor;
31
32
  this.src$ = new ReplaySubject(1);
32
33
  this.isIE = isIE(this.userAgent);
33
34
  this.icon = '';
@@ -38,8 +39,11 @@ var TuiSvgComponent = /** @class */ (function () {
38
39
  }), startWith(''));
39
40
  }
40
41
  Object.defineProperty(TuiSvgComponent.prototype, "src", {
42
+ get: function () {
43
+ return this.icon;
44
+ },
41
45
  set: function (src) {
42
- this.icon = src;
46
+ this.icon = this.processor(src);
43
47
  this.src$.next();
44
48
  },
45
49
  enumerable: true,
@@ -146,7 +150,6 @@ var TuiSvgComponent = /** @class */ (function () {
146
150
  ? this.sanitizer.bypassSecurityTrustHtml(this.tuiSanitizer.sanitize(SecurityContext.HTML, src) || '')
147
151
  : src;
148
152
  };
149
- // @bad TODO: Create a simple XMLHttpRequest to Observable service
150
153
  TuiSvgComponent.prototype.getExternalIcon = function (src) {
151
154
  var _this = this;
152
155
  var url = src.includes('.svg') ? src : this.use;
@@ -166,7 +169,8 @@ var TuiSvgComponent = /** @class */ (function () {
166
169
  { type: TuiStaticRequestService, decorators: [{ type: Inject, args: [TuiStaticRequestService,] }] },
167
170
  { type: DomSanitizer, decorators: [{ type: Inject, args: [DomSanitizer,] }] },
168
171
  { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
169
- { type: String, decorators: [{ type: Inject, args: [USER_AGENT,] }] }
172
+ { type: String, decorators: [{ type: Inject, args: [USER_AGENT,] }] },
173
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_SVG_SRC_PROCESSOR,] }] }
170
174
  ]; };
171
175
  __decorate([
172
176
  Input(),
@@ -191,7 +195,8 @@ var TuiSvgComponent = /** @class */ (function () {
191
195
  __param(5, Inject(TuiStaticRequestService)),
192
196
  __param(6, Inject(DomSanitizer)),
193
197
  __param(7, Inject(ElementRef)),
194
- __param(8, Inject(USER_AGENT))
198
+ __param(8, Inject(USER_AGENT)),
199
+ __param(9, Inject(TUI_SVG_SRC_PROCESSOR))
195
200
  ], TuiSvgComponent);
196
201
  return TuiSvgComponent;
197
202
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-svg.js","sources":["ng://@taiga-ui/core/components/svg/svg.component.ts","ng://@taiga-ui/core/components/svg/svg.module.ts","ng://@taiga-ui/core/components/svg/taiga-ui-core-components-svg.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n Optional,\n Sanitizer,\n SecurityContext,\n} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\nimport {USER_AGENT, WINDOW} from '@ng-web-apis/common';\nimport {\n getDocumentOrShadowRoot,\n isIE,\n tuiAssert,\n tuiCustomEvent,\n tuiPure,\n tuiRequiredSetter,\n TuiStaticRequestService,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\nimport {TUI_ICON_ERROR} from '@taiga-ui/core/constants';\nimport {TuiIconError} from '@taiga-ui/core/interfaces';\nimport {TuiSvgService} from '@taiga-ui/core/services';\nimport {TUI_ICONS_PATH, TUI_SANITIZER} from '@taiga-ui/core/tokens';\nimport {isPresumedHTMLString} from '@taiga-ui/core/utils/miscellaneous';\nimport {Observable, of, ReplaySubject} from 'rxjs';\nimport {catchError, map, startWith, switchMap} from 'rxjs/operators';\n\nconst UNDEFINED_NAMED_ICON = 'Attempted to use undefined named icon';\nconst MISSING_EXTERNAL_ICON = 'External icon is missing on the given URL';\nconst FAILED_EXTERNAL_ICON = 'Failed to load external SVG';\n\n// TODO: Consider moving to CDK along with SvgService and SvgDefsHostComponent\n// @dynamic\n@Component({\n selector: 'tui-svg',\n templateUrl: './svg.template.html',\n styleUrls: ['./svg.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSvgComponent {\n private readonly src$ = new ReplaySubject<void>(1);\n private readonly isIE = isIE(this.userAgent);\n private icon = '';\n\n @Input()\n @tuiRequiredSetter()\n set src(src: string) {\n this.icon = src;\n this.src$.next();\n }\n\n readonly innerHTML$: Observable<SafeHtml>;\n\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(TUI_ICONS_PATH) private readonly iconsPath: TuiStringHandler<string>,\n @Optional()\n @Inject(TUI_SANITIZER)\n private readonly tuiSanitizer: Sanitizer | null,\n @Inject(TuiSvgService) private readonly svgService: TuiSvgService,\n @Inject(TuiStaticRequestService)\n private readonly staticRequestService: TuiStaticRequestService,\n @Inject(DomSanitizer) private readonly sanitizer: DomSanitizer,\n @Inject(ElementRef) private readonly elementRef: ElementRef<Element>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n ) {\n this.innerHTML$ = this.src$.pipe(\n switchMap(() =>\n this.isExternal\n ? this.getExternalIcon(this.icon)\n : of(this.getSafeHtml(this.icon)),\n ),\n startWith(''),\n );\n }\n\n get use(): string {\n return this.icon.includes('.svg#')\n ? this.icon\n : this.resolveName(this.icon, this.iconsPath);\n }\n\n get isInnerHTML(): boolean {\n return this.isSrc || this.isExternal || (this.isName && this.isShadowDOM);\n }\n\n private get isShadowDOM(): boolean {\n return (\n getDocumentOrShadowRoot(this.elementRef.nativeElement) !== this.documentRef\n );\n }\n\n private get isUse(): boolean {\n return this.use.includes('.svg#');\n }\n\n private get isExternal(): boolean {\n return this.isUrl || (this.isIE && this.isUse) || this.isCrossDomain;\n }\n\n private get isUrl(): boolean {\n return this.icon.endsWith('.svg');\n }\n\n private get isSrc(): boolean {\n return isPresumedHTMLString(this.icon);\n }\n\n private get isName(): boolean {\n return !this.isUrl && !this.isUse && !this.isSrc;\n }\n\n private get isCrossDomain(): boolean {\n const {use, isUse, windowRef} = this;\n\n return (\n isUse &&\n use.startsWith('http') &&\n !!windowRef.origin &&\n !use.startsWith(windowRef.origin)\n );\n }\n\n onError(message: string = MISSING_EXTERNAL_ICON) {\n const {icon} = this;\n const event = tuiCustomEvent<TuiIconError>(\n TUI_ICON_ERROR,\n {\n bubbles: true,\n detail: {\n message,\n icon,\n },\n },\n this.documentRef,\n );\n\n tuiAssert.assert(false, message, icon);\n this.elementRef.nativeElement.dispatchEvent(event);\n }\n\n @tuiPure\n private resolveName(name: string, iconsPath: TuiStringHandler<string>): string {\n return iconsPath(name);\n }\n\n private getSafeHtml(src: string): SafeHtml {\n return this.isSrc ? this.sanitize(src) : this.process(src);\n }\n\n private process(src: string): SafeHtml {\n const icon = this.svgService.getOriginal(src);\n\n if (this.isName && !icon && !!src) {\n this.onError(UNDEFINED_NAMED_ICON);\n }\n\n // Empty line for innerHTML when icon is shown through USE tag\n return !this.isShadowDOM || !this.isName ? '' : this.sanitize(icon || '');\n }\n\n private sanitize(src: string): SafeHtml | string {\n return this.tuiSanitizer\n ? this.sanitizer.bypassSecurityTrustHtml(\n this.tuiSanitizer.sanitize(SecurityContext.HTML, src) || '',\n )\n : src;\n }\n\n // @bad TODO: Create a simple XMLHttpRequest to Observable service\n private getExternalIcon(src: string): Observable<SafeHtml> {\n const url = src.includes('.svg') ? src : this.use;\n\n return this.staticRequestService.request(url).pipe(\n catchError(() => {\n this.onError(FAILED_EXTERNAL_ICON);\n\n return of('');\n }),\n map(response =>\n this.sanitize(response.replace('<svg', '<svg focusable=\"false\"')),\n ),\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiSvgComponent} from './svg.component';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [TuiSvgComponent],\n exports: [TuiSvgComponent],\n})\nexport class TuiSvgModule {}\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-core-components-svg.js","sources":["ng://@taiga-ui/core/components/svg/svg.component.ts","ng://@taiga-ui/core/components/svg/svg.module.ts","ng://@taiga-ui/core/components/svg/taiga-ui-core-components-svg.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n Optional,\n Sanitizer,\n SecurityContext,\n} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\nimport {USER_AGENT, WINDOW} from '@ng-web-apis/common';\nimport {\n getDocumentOrShadowRoot,\n isIE,\n tuiAssert,\n tuiCustomEvent,\n tuiPure,\n tuiRequiredSetter,\n TuiStaticRequestService,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\nimport {TUI_ICON_ERROR} from '@taiga-ui/core/constants';\nimport {TuiIconError} from '@taiga-ui/core/interfaces';\nimport {TuiSvgService} from '@taiga-ui/core/services';\nimport {\n TUI_ICONS_PATH,\n TUI_SANITIZER,\n TUI_SVG_SRC_PROCESSOR,\n} from '@taiga-ui/core/tokens';\nimport {isPresumedHTMLString} from '@taiga-ui/core/utils/miscellaneous';\nimport {Observable, of, ReplaySubject} from 'rxjs';\nimport {catchError, map, startWith, switchMap} from 'rxjs/operators';\n\nconst UNDEFINED_NAMED_ICON = 'Attempted to use undefined named icon';\nconst MISSING_EXTERNAL_ICON = 'External icon is missing on the given URL';\nconst FAILED_EXTERNAL_ICON = 'Failed to load external SVG';\n\n// TODO: Consider moving to CDK along with SvgService and SvgDefsHostComponent\n// @dynamic\n@Component({\n selector: 'tui-svg',\n templateUrl: './svg.template.html',\n styleUrls: ['./svg.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSvgComponent {\n private readonly src$ = new ReplaySubject<void>(1);\n private readonly isIE = isIE(this.userAgent);\n private icon = '';\n\n @Input()\n @tuiRequiredSetter()\n set src(src: string) {\n this.icon = this.processor(src);\n this.src$.next();\n }\n\n readonly innerHTML$: Observable<SafeHtml>;\n\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(TUI_ICONS_PATH) private readonly iconsPath: TuiStringHandler<string>,\n @Optional()\n @Inject(TUI_SANITIZER)\n private readonly tuiSanitizer: Sanitizer | null,\n @Inject(TuiSvgService) private readonly svgService: TuiSvgService,\n @Inject(TuiStaticRequestService)\n private readonly staticRequestService: TuiStaticRequestService,\n @Inject(DomSanitizer) private readonly sanitizer: DomSanitizer,\n @Inject(ElementRef) private readonly elementRef: ElementRef<Element>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n @Inject(TUI_SVG_SRC_PROCESSOR)\n private readonly processor: TuiStringHandler<string>,\n ) {\n this.innerHTML$ = this.src$.pipe(\n switchMap(() =>\n this.isExternal\n ? this.getExternalIcon(this.icon)\n : of(this.getSafeHtml(this.icon)),\n ),\n startWith(''),\n );\n }\n\n get src(): string {\n return this.icon;\n }\n\n get use(): string {\n return this.icon.includes('.svg#')\n ? this.icon\n : this.resolveName(this.icon, this.iconsPath);\n }\n\n get isInnerHTML(): boolean {\n return this.isSrc || this.isExternal || (this.isName && this.isShadowDOM);\n }\n\n private get isShadowDOM(): boolean {\n return (\n getDocumentOrShadowRoot(this.elementRef.nativeElement) !== this.documentRef\n );\n }\n\n private get isUse(): boolean {\n return this.use.includes('.svg#');\n }\n\n private get isExternal(): boolean {\n return this.isUrl || (this.isIE && this.isUse) || this.isCrossDomain;\n }\n\n private get isUrl(): boolean {\n return this.icon.endsWith('.svg');\n }\n\n private get isSrc(): boolean {\n return isPresumedHTMLString(this.icon);\n }\n\n private get isName(): boolean {\n return !this.isUrl && !this.isUse && !this.isSrc;\n }\n\n private get isCrossDomain(): boolean {\n const {use, isUse, windowRef} = this;\n\n return (\n isUse &&\n use.startsWith('http') &&\n !!windowRef.origin &&\n !use.startsWith(windowRef.origin)\n );\n }\n\n onError(message: string = MISSING_EXTERNAL_ICON) {\n const {icon} = this;\n const event = tuiCustomEvent<TuiIconError>(\n TUI_ICON_ERROR,\n {\n bubbles: true,\n detail: {\n message,\n icon,\n },\n },\n this.documentRef,\n );\n\n tuiAssert.assert(false, message, icon);\n this.elementRef.nativeElement.dispatchEvent(event);\n }\n\n @tuiPure\n private resolveName(name: string, iconsPath: TuiStringHandler<string>): string {\n return iconsPath(name);\n }\n\n private getSafeHtml(src: string): SafeHtml {\n return this.isSrc ? this.sanitize(src) : this.process(src);\n }\n\n private process(src: string): SafeHtml {\n const icon = this.svgService.getOriginal(src);\n\n if (this.isName && !icon && !!src) {\n this.onError(UNDEFINED_NAMED_ICON);\n }\n\n // Empty line for innerHTML when icon is shown through USE tag\n return !this.isShadowDOM || !this.isName ? '' : this.sanitize(icon || '');\n }\n\n private sanitize(src: string): SafeHtml | string {\n return this.tuiSanitizer\n ? this.sanitizer.bypassSecurityTrustHtml(\n this.tuiSanitizer.sanitize(SecurityContext.HTML, src) || '',\n )\n : src;\n }\n\n private getExternalIcon(src: string): Observable<SafeHtml> {\n const url = src.includes('.svg') ? src : this.use;\n\n return this.staticRequestService.request(url).pipe(\n catchError(() => {\n this.onError(FAILED_EXTERNAL_ICON);\n\n return of('');\n }),\n map(response =>\n this.sanitize(response.replace('<svg', '<svg focusable=\"false\"')),\n ),\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiSvgComponent} from './svg.component';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [TuiSvgComponent],\n exports: [TuiSvgComponent],\n})\nexport class TuiSvgModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -61,11 +61,11 @@ var TUI_DIGIT_REGEXP = /\d/;
61
61
  var TUI_NON_DIGIT_REGEXP = /\D/;
62
62
  var TUI_NON_DIGITS_REGEXP = /\D+/g;
63
63
  var TUI_LEADING_ZEROES_REGEXP = /^0+/;
64
- var TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\/#!$%\\^&\\*;:{}=\\-_\`~()]$/;
64
+ var TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\/#!$%\\^&\\*;:{}=\\-_`~()]$/;
65
65
  var TUI_LATIN_REGEXP = /[A-z]/;
66
66
  var TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;
67
67
 
68
- var VERSION = '2.27.1';
68
+ var VERSION = '2.31.0';
69
69
 
70
70
  /**
71
71
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-constants.js","sources":["ng://@taiga-ui/core/constants/absolute-box-sizes.ts","ng://@taiga-ui/core/constants/decimal-symbols.ts","ng://@taiga-ui/core/constants/default-icons-path.ts","ng://@taiga-ui/core/constants/default-marker-handler.ts","ng://@taiga-ui/core/constants/editing-keys.ts","ng://@taiga-ui/core/constants/events.ts","ng://@taiga-ui/core/constants/mask-caret-trap.ts","ng://@taiga-ui/core/constants/media.ts","ng://@taiga-ui/core/constants/regexp.ts","ng://@taiga-ui/core/constants/version.ts","ng://@taiga-ui/core/constants/taiga-ui-core-constants.ts"],"sourcesContent":["export const DEFAULT_MARGIN = 4;\nexport const DEFAULT_MIN_HEIGHT = 80;\nexport const DEFAULT_MAX_HEIGHT = 400;\nexport const DEFAULT_MAX_WIDTH = 600;\n","export const TUI_DECIMAL_SYMBOLS: ReadonlyArray<string> = [',', '.'];\n","import {TuiStringHandler} from '@taiga-ui/cdk';\n\nexport const DEFAULT_ICONS_PATH: TuiStringHandler<string> = name =>\n name.includes('.svg#') ? name : `#${name}`;\n","import {EMPTY_ARRAY} from '@taiga-ui/cdk';\nimport {TuiMarkerHandler} from '@taiga-ui/core/types';\n\nexport const TUI_DEFAULT_MARKER_HANDLER: TuiMarkerHandler = () => EMPTY_ARRAY;\n","export const tuiEditingKeys: readonly string[] = [\n 'Spacebar',\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Left',\n 'Right',\n 'End',\n 'Home',\n];\n","/**\n * An event indicating that async data for expand has finished loading.\n * Dispatch to finish loading states for {@link TuiExpandComponent}.\n */\nexport const TUI_EXPAND_LOADED = 'tui-expand-loaded';\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbarComponent}.\n */\nexport const TUI_SCROLL_INTO_VIEW = 'tui-scroll-into-view';\n\n/**\n * An event to notify {@link TuiScrollbarComponent} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = 'tui-scrollable';\n\n/**\n * An event indicating and error during icon loading in {@link TuiSvgComponent}.\n */\nexport const TUI_ICON_ERROR = 'tui-icon-error';\n","export const MASK_CARET_TRAP = '[]';\n","/**\n * Media constants are exact the same as css media breakpoints\n * @deprecated use TUI_MEDIA token\n */\nexport const MEDIA = {\n mobile: 320,\n tablet: 600,\n desktopSmall: 1024,\n desktopLarge: 1280,\n};\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\nexport const TUI_LEADING_ZEROES_REGEXP = /^0+/;\nexport const TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\\\/#!$%\\\\^&\\\\*;:{}=\\\\-_\\`~()]$/;\nexport const TUI_LATIN_REGEXP = /[A-z]/;\nexport const TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;\n","export const VERSION = '2.27.1';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;IAAa,cAAc,GAAG,EAAE;IACnB,kBAAkB,GAAG,GAAG;IACxB,kBAAkB,GAAG,IAAI;IACzB,iBAAiB,GAAG;;ICHpB,mBAAmB,GAA0B,CAAC,GAAG,EAAE,GAAG;;ICEtD,kBAAkB,GAA6B,UAAA,IAAI;IAC5D,OAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAI,IAAM;AAA1C;;ICAS,0BAA0B,GAAqB,cAAM,OAAA,WAAW;;ICHhE,cAAc,GAAsB;IAC7C,UAAU;IACV,WAAW;IACX,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;;;ACTV;;;;IAIa,iBAAiB,GAAG,oBAAoB;AAErD;;;IAGa,oBAAoB,GAAG,uBAAuB;AAE3D;;;;IAIa,cAAc,GAAG,iBAAiB;AAE/C;;;IAGa,cAAc,GAAG;;ICpBjB,eAAe,GAAG;;ACA/B;;;;IAIa,KAAK,GAAG;IACjB,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;;;ICRT,gBAAgB,GAAG,KAAK;IACxB,oBAAoB,GAAG,KAAK;IAC5B,qBAAqB,GAAG,OAAO;IAC/B,yBAAyB,GAAG,MAAM;IAClC,gCAAgC,GAAG,oCAAoC;IACvE,gBAAgB,GAAG,QAAQ;IAC3B,4BAA4B,GAAG;;ICN/B,OAAO,GAAG;;ACAvB;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-constants.js","sources":["ng://@taiga-ui/core/constants/absolute-box-sizes.ts","ng://@taiga-ui/core/constants/decimal-symbols.ts","ng://@taiga-ui/core/constants/default-icons-path.ts","ng://@taiga-ui/core/constants/default-marker-handler.ts","ng://@taiga-ui/core/constants/editing-keys.ts","ng://@taiga-ui/core/constants/events.ts","ng://@taiga-ui/core/constants/mask-caret-trap.ts","ng://@taiga-ui/core/constants/media.ts","ng://@taiga-ui/core/constants/regexp.ts","ng://@taiga-ui/core/constants/version.ts","ng://@taiga-ui/core/constants/taiga-ui-core-constants.ts"],"sourcesContent":["export const DEFAULT_MARGIN = 4;\nexport const DEFAULT_MIN_HEIGHT = 80;\nexport const DEFAULT_MAX_HEIGHT = 400;\nexport const DEFAULT_MAX_WIDTH = 600;\n","export const TUI_DECIMAL_SYMBOLS: ReadonlyArray<string> = [',', '.'];\n","import {TuiStringHandler} from '@taiga-ui/cdk';\n\nexport const DEFAULT_ICONS_PATH: TuiStringHandler<string> = name =>\n name.includes('.svg#') ? name : `#${name}`;\n","import {EMPTY_ARRAY} from '@taiga-ui/cdk';\nimport {TuiMarkerHandler} from '@taiga-ui/core/types';\n\nexport const TUI_DEFAULT_MARKER_HANDLER: TuiMarkerHandler = () => EMPTY_ARRAY;\n","export const tuiEditingKeys: readonly string[] = [\n 'Spacebar',\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Left',\n 'Right',\n 'End',\n 'Home',\n];\n","/**\n * An event indicating that async data for expand has finished loading.\n * Dispatch to finish loading states for {@link TuiExpandComponent}.\n */\nexport const TUI_EXPAND_LOADED = 'tui-expand-loaded';\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbarComponent}.\n */\nexport const TUI_SCROLL_INTO_VIEW = 'tui-scroll-into-view';\n\n/**\n * An event to notify {@link TuiScrollbarComponent} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = 'tui-scrollable';\n\n/**\n * An event indicating and error during icon loading in {@link TuiSvgComponent}.\n */\nexport const TUI_ICON_ERROR = 'tui-icon-error';\n","export const MASK_CARET_TRAP = '[]';\n","/**\n * Media constants are exact the same as css media breakpoints\n * @deprecated use TUI_MEDIA token\n */\nexport const MEDIA = {\n mobile: 320,\n tablet: 600,\n desktopSmall: 1024,\n desktopLarge: 1280,\n};\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\nexport const TUI_LEADING_ZEROES_REGEXP = /^0+/;\nexport const TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\\\/#!$%\\\\^&\\\\*;:{}=\\\\-_`~()]$/;\nexport const TUI_LATIN_REGEXP = /[A-z]/;\nexport const TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;\n","export const VERSION = '2.31.0';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;IAAa,cAAc,GAAG,EAAE;IACnB,kBAAkB,GAAG,GAAG;IACxB,kBAAkB,GAAG,IAAI;IACzB,iBAAiB,GAAG;;ICHpB,mBAAmB,GAA0B,CAAC,GAAG,EAAE,GAAG;;ICEtD,kBAAkB,GAA6B,UAAA,IAAI;IAC5D,OAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAI,IAAM;AAA1C;;ICAS,0BAA0B,GAAqB,cAAM,OAAA,WAAW;;ICHhE,cAAc,GAAsB;IAC7C,UAAU;IACV,WAAW;IACX,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;;;ACTV;;;;IAIa,iBAAiB,GAAG,oBAAoB;AAErD;;;IAGa,oBAAoB,GAAG,uBAAuB;AAE3D;;;;IAIa,cAAc,GAAG,iBAAiB;AAE/C;;;IAGa,cAAc,GAAG;;ICpBjB,eAAe,GAAG;;ACA/B;;;;IAIa,KAAK,GAAG;IACjB,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;;;ICRT,gBAAgB,GAAG,KAAK;IACxB,oBAAoB,GAAG,KAAK;IAC5B,qBAAqB,GAAG,OAAO;IAC/B,yBAAyB,GAAG,MAAM;IAClC,gCAAgC,GAAG,mCAAmC;IACtE,gBAAgB,GAAG,QAAQ;IAC3B,4BAA4B,GAAG;;ICN/B,OAAO,GAAG;;ACAvB;;;;;;"}
@@ -173,7 +173,7 @@ var TuiNotificationsHostComponent = /** @class */ (function () {
173
173
  changeDetection: ChangeDetectionStrategy.OnPush,
174
174
  template: "<ng-container *tuiLet=\"service.items$ | async as items\">\n <div\n *ngIf=\"items.length\"\n class=\"wrapper\"\n [@tuiFadeInList]=\"getAnimation(items.length)\"\n [@tuiHeightCollapseList]=\"getAnimation(items.length)\"\n [@tuiSlideInRightList]=\"getAnimation(items.length)\"\n >\n <tui-notification-alert\n *ngFor=\"let item of items\"\n role=\"alert\"\n class=\"alert\"\n [item]=\"item\"\n ></tui-notification-alert>\n </div>\n</ng-container>\n",
175
175
  animations: [tuiFadeInList, tuiSlideInRightList, tuiHeightCollapseList],
176
- styles: [":host{position:fixed;top:0;left:0;width:100%;height:0}.wrapper{width:18rem;margin-left:auto;padding:2rem 3rem 0 0;pointer-events:none}@media screen and (max-width:47.9375em){.wrapper{padding:1rem 1rem 0 0}}@media screen and (min-width:80em){.wrapper{width:23rem}}.alert{pointer-events:auto}.alert:not(:first-child){margin-top:.75rem}"]
176
+ styles: [":host{position:fixed;top:0;left:0;width:100%;height:0}.wrapper{width:18rem;margin-left:auto;padding:2rem 3rem 0 0;pointer-events:none}:host-context(tui-root._mobile) .wrapper{padding:1rem 1rem 0 0}@media screen and (min-width:80em){.wrapper{width:23rem}}.alert{pointer-events:auto}.alert:not(:first-child){margin-top:.75rem}"]
177
177
  }),
178
178
  __param(0, Inject(TUI_ANIMATION_OPTIONS)),
179
179
  __param(1, Inject(TuiNotificationsService))
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-modules-notifications.js","sources":["ng://@taiga-ui/core/modules/notifications/notification-alert/Notification-alert.ts","ng://@taiga-ui/core/modules/notifications/notification-alert/notification-alert.component.ts","ng://@taiga-ui/core/modules/notifications/notification-alert/notification-alert.module.ts","ng://@taiga-ui/core/modules/notifications/notifications.service.ts","ng://@taiga-ui/core/modules/notifications/notifications-host/notifications-host.component.ts","ng://@taiga-ui/core/modules/notifications/notifications.module.ts","ng://@taiga-ui/core/modules/notifications/taiga-ui-core-modules-notifications.ts"],"sourcesContent":["import {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {TuiNotification} from '@taiga-ui/core/enums';\nimport {\n TuiNotificationOptions,\n TuiNotificationOptionsWithData,\n} from '@taiga-ui/core/interfaces';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observer} from 'rxjs';\n\nimport {TuiNotificationContentContext} from '../notification-content-context';\n\nexport class NotificationAlert<O, I> {\n readonly status = this.options.status;\n\n readonly hasIcon = this.options.hasIcon;\n\n readonly autoClose: boolean | number;\n\n readonly hasCloseButton = this.options.hasCloseButton;\n\n readonly label: PolymorpheusContent<TuiContextWithImplicit<TuiNotification>> =\n this.options.label;\n\n readonly data!: I;\n\n constructor(\n readonly observer: Observer<O>,\n readonly content: PolymorpheusContent<TuiNotificationContentContext<O, I>>,\n private readonly options: Required<\n TuiNotificationOptions | TuiNotificationOptionsWithData<I>\n >,\n ) {\n this.autoClose =\n typeof this.options.autoClose === 'function'\n ? this.options.autoClose(this.options.status)\n : this.options.autoClose;\n\n if (options && this.withData(options)) {\n this.data = options.data;\n }\n }\n\n private withData(\n options: TuiNotificationOptions | TuiNotificationOptionsWithData<I>,\n ): options is TuiNotificationOptionsWithData<I> {\n return 'data' in options;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport {isNumber, TuiDestroyService, tuiPure} from '@taiga-ui/cdk';\nimport {NotificationTokenOptions, TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {fromEvent, timer} from 'rxjs';\nimport {repeatWhen, takeUntil} from 'rxjs/operators';\n\nimport {TuiNotificationContentContext} from '../notification-content-context';\nimport {NotificationAlert} from './Notification-alert';\n\nexport const DEFAULT_ALERT_AUTOCLOSE_TIMEOUT = 3000;\n\n@Component({\n selector: 'tui-notification-alert',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './notification-alert.template.html',\n styleUrls: ['./notification-alert.style.less'],\n providers: [TuiDestroyService],\n})\nexport class TuiNotificationAlertComponent<O, I> implements OnInit {\n @Input()\n item!: NotificationAlert<O, I>;\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiDestroyService) private readonly destroy$: TuiDestroyService,\n @Inject(TUI_NOTIFICATION_OPTIONS)\n public readonly options: NotificationTokenOptions,\n ) {}\n\n ngOnInit() {\n this.initAutoClose();\n }\n\n get context(): TuiNotificationContentContext<O, I> {\n return this.calculateContext(this.item);\n }\n\n closeNotification() {\n this.item.observer.complete();\n }\n\n @tuiPure\n private calculateContext({\n status,\n data,\n label,\n observer,\n }: NotificationAlert<O, I>): TuiNotificationContentContext<O, I> {\n return {\n $implicit: status,\n data: data,\n label: label,\n closeHook: () => {\n observer.complete();\n },\n emitHook: (data: O) => {\n observer.next(data);\n },\n emitAndCloseHook: (data: O) => {\n observer.next(data);\n observer.complete();\n },\n };\n }\n\n private initAutoClose() {\n if (!this.item.autoClose) {\n return;\n }\n\n timer(\n isNumber(this.item.autoClose)\n ? this.item.autoClose\n : DEFAULT_ALERT_AUTOCLOSE_TIMEOUT,\n )\n .pipe(\n takeUntil(fromEvent(this.elementRef.nativeElement, 'mouseenter')),\n repeatWhen(() => fromEvent(this.elementRef.nativeElement, 'mouseleave')),\n takeUntil(this.destroy$),\n )\n .subscribe(() => this.closeNotification());\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiNotificationModule} from '@taiga-ui/core/components/notification';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiNotificationAlertComponent} from './notification-alert.component';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiNotificationModule],\n declarations: [TuiNotificationAlertComponent],\n exports: [TuiNotificationAlertComponent],\n})\nexport class TuiNotificationAlertModule {}\n","import {Inject, Injectable} from '@angular/core';\nimport {tuiAssert} from '@taiga-ui/cdk';\nimport {\n TuiNotificationOptions,\n TuiNotificationOptionsWithData,\n} from '@taiga-ui/core/interfaces';\nimport {NotificationTokenOptions, TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable, Observer} from 'rxjs';\n\nimport {NotificationAlert} from './notification-alert/Notification-alert';\nimport {TuiNotificationContentContext} from './notification-content-context';\n\nconst NO_HOST =\n 'Notifications are disabled, enable support by adding TuiNotificationsModule to your main app module';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiNotificationsService {\n /** @internal */\n readonly items$ = new BehaviorSubject<ReadonlyArray<NotificationAlert<any, any>>>([]);\n\n constructor(\n @Inject(TUI_NOTIFICATION_OPTIONS)\n public readonly options: NotificationTokenOptions,\n ) {}\n\n show<O = void>(\n content: PolymorpheusContent<TuiNotificationContentContext<O>>,\n ): Observable<O>;\n show<O = void>(\n content: PolymorpheusContent<TuiNotificationContentContext<O>>,\n options: TuiNotificationOptions,\n ): Observable<O>;\n show<O, I>(\n content: PolymorpheusContent<TuiNotificationContentContext<O, I>>,\n options: TuiNotificationOptionsWithData<I>,\n ): Observable<O>;\n show<O, I>(\n content: PolymorpheusContent<TuiNotificationContentContext<O, I>>,\n options: TuiNotificationOptions | TuiNotificationOptionsWithData<I> = {},\n ): Observable<O> {\n return new Observable((observer: Observer<O>) => {\n tuiAssert.assert(!!this.items$.observers.length, NO_HOST);\n\n const notification = new NotificationAlert(observer, content, {\n ...this.options,\n ...options,\n });\n\n this.items$.next([...this.items$.value, notification]);\n\n return () => {\n this.items$.next(this.items$.value.filter(item => item !== notification));\n };\n });\n }\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {tuiPure} from '@taiga-ui/cdk';\nimport {\n tuiFadeInList,\n tuiHeightCollapseList,\n tuiSlideInRightList,\n} from '@taiga-ui/core/animations';\nimport {TuiAnimationOptions} from '@taiga-ui/core/interfaces';\nimport {TUI_ANIMATION_OPTIONS} from '@taiga-ui/core/tokens';\n\nimport {TuiNotificationsService} from '../notifications.service';\n\n@Component({\n selector: 'tui-notifications-host',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './notifications-host.template.html',\n styleUrls: ['./notifications-host.style.less'],\n animations: [tuiFadeInList, tuiSlideInRightList, tuiHeightCollapseList],\n})\nexport class TuiNotificationsHostComponent {\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(TuiNotificationsService) readonly service: TuiNotificationsService,\n ) {}\n\n @tuiPure\n getAnimation(value: number): TuiAnimationOptions {\n return {\n value: String(value),\n ...this.options,\n };\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiNotificationAlertModule} from './notification-alert/notification-alert.module';\nimport {TuiNotificationsHostComponent} from './notifications-host/notifications-host.component';\n\n// TODO: remove in ivy compilation\nexport const NOTIFICATIONS_HOST = TuiNotificationsHostComponent;\n\n@NgModule({\n imports: [CommonModule, TuiNotificationAlertModule, TuiLetModule],\n declarations: [TuiNotificationsHostComponent],\n exports: [TuiNotificationsHostComponent],\n entryComponents: [TuiNotificationsHostComponent],\n providers: [\n {\n provide: TuiNotificationsHostComponent,\n useValue: NOTIFICATIONS_HOST,\n },\n ],\n})\nexport class TuiNotificationsModule {}\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-core-modules-notifications.js","sources":["ng://@taiga-ui/core/modules/notifications/notification-alert/Notification-alert.ts","ng://@taiga-ui/core/modules/notifications/notification-alert/notification-alert.component.ts","ng://@taiga-ui/core/modules/notifications/notification-alert/notification-alert.module.ts","ng://@taiga-ui/core/modules/notifications/notifications.service.ts","ng://@taiga-ui/core/modules/notifications/notifications-host/notifications-host.component.ts","ng://@taiga-ui/core/modules/notifications/notifications.module.ts","ng://@taiga-ui/core/modules/notifications/taiga-ui-core-modules-notifications.ts"],"sourcesContent":["import {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {TuiNotification} from '@taiga-ui/core/enums';\nimport {\n TuiNotificationOptions,\n TuiNotificationOptionsWithData,\n} from '@taiga-ui/core/interfaces';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observer} from 'rxjs';\n\nimport {TuiNotificationContentContext} from '../notification-content-context';\n\nexport class NotificationAlert<O, I> {\n readonly status = this.options.status;\n\n readonly hasIcon = this.options.hasIcon;\n\n readonly autoClose: boolean | number;\n\n readonly hasCloseButton = this.options.hasCloseButton;\n\n readonly label: PolymorpheusContent<TuiContextWithImplicit<TuiNotification>> =\n this.options.label;\n\n readonly data!: I;\n\n constructor(\n readonly observer: Observer<O>,\n readonly content: PolymorpheusContent<TuiNotificationContentContext<O, I>>,\n private readonly options: Required<\n TuiNotificationOptions | TuiNotificationOptionsWithData<I>\n >,\n ) {\n this.autoClose =\n typeof this.options.autoClose === 'function'\n ? this.options.autoClose(this.options.status)\n : this.options.autoClose;\n\n if (options && this.withData(options)) {\n this.data = options.data;\n }\n }\n\n private withData(\n options: TuiNotificationOptions | TuiNotificationOptionsWithData<I>,\n ): options is TuiNotificationOptionsWithData<I> {\n return 'data' in options;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport {isNumber, TuiDestroyService, tuiPure} from '@taiga-ui/cdk';\nimport {NotificationTokenOptions, TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {fromEvent, timer} from 'rxjs';\nimport {repeatWhen, takeUntil} from 'rxjs/operators';\n\nimport {TuiNotificationContentContext} from '../notification-content-context';\nimport {NotificationAlert} from './Notification-alert';\n\nexport const DEFAULT_ALERT_AUTOCLOSE_TIMEOUT = 3000;\n\n@Component({\n selector: 'tui-notification-alert',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './notification-alert.template.html',\n styleUrls: ['./notification-alert.style.less'],\n providers: [TuiDestroyService],\n})\nexport class TuiNotificationAlertComponent<O, I> implements OnInit {\n @Input()\n item!: NotificationAlert<O, I>;\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiDestroyService) private readonly destroy$: TuiDestroyService,\n @Inject(TUI_NOTIFICATION_OPTIONS)\n readonly options: NotificationTokenOptions,\n ) {}\n\n ngOnInit() {\n this.initAutoClose();\n }\n\n get context(): TuiNotificationContentContext<O, I> {\n return this.calculateContext(this.item);\n }\n\n closeNotification() {\n this.item.observer.complete();\n }\n\n @tuiPure\n private calculateContext({\n status,\n data,\n label,\n observer,\n }: NotificationAlert<O, I>): TuiNotificationContentContext<O, I> {\n return {\n $implicit: status,\n data: data,\n label: label,\n closeHook: () => {\n observer.complete();\n },\n emitHook: (data: O) => {\n observer.next(data);\n },\n emitAndCloseHook: (data: O) => {\n observer.next(data);\n observer.complete();\n },\n };\n }\n\n private initAutoClose() {\n if (!this.item.autoClose) {\n return;\n }\n\n timer(\n isNumber(this.item.autoClose)\n ? this.item.autoClose\n : DEFAULT_ALERT_AUTOCLOSE_TIMEOUT,\n )\n .pipe(\n takeUntil(fromEvent(this.elementRef.nativeElement, 'mouseenter')),\n repeatWhen(() => fromEvent(this.elementRef.nativeElement, 'mouseleave')),\n takeUntil(this.destroy$),\n )\n .subscribe(() => this.closeNotification());\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiNotificationModule} from '@taiga-ui/core/components/notification';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiNotificationAlertComponent} from './notification-alert.component';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiNotificationModule],\n declarations: [TuiNotificationAlertComponent],\n exports: [TuiNotificationAlertComponent],\n})\nexport class TuiNotificationAlertModule {}\n","import {Inject, Injectable} from '@angular/core';\nimport {tuiAssert} from '@taiga-ui/cdk';\nimport {\n TuiNotificationOptions,\n TuiNotificationOptionsWithData,\n} from '@taiga-ui/core/interfaces';\nimport {NotificationTokenOptions, TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable, Observer} from 'rxjs';\n\nimport {NotificationAlert} from './notification-alert/Notification-alert';\nimport {TuiNotificationContentContext} from './notification-content-context';\n\nconst NO_HOST =\n 'Notifications are disabled, enable support by adding TuiNotificationsModule to your main app module';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiNotificationsService {\n /** @internal */\n readonly items$ = new BehaviorSubject<ReadonlyArray<NotificationAlert<any, any>>>([]);\n\n constructor(\n @Inject(TUI_NOTIFICATION_OPTIONS)\n readonly options: NotificationTokenOptions,\n ) {}\n\n show<O = void>(\n content: PolymorpheusContent<TuiNotificationContentContext<O>>,\n ): Observable<O>;\n show<O = void>(\n content: PolymorpheusContent<TuiNotificationContentContext<O>>,\n options: TuiNotificationOptions,\n ): Observable<O>;\n show<O, I>(\n content: PolymorpheusContent<TuiNotificationContentContext<O, I>>,\n options: TuiNotificationOptionsWithData<I>,\n ): Observable<O>;\n show<O, I>(\n content: PolymorpheusContent<TuiNotificationContentContext<O, I>>,\n options: TuiNotificationOptions | TuiNotificationOptionsWithData<I> = {},\n ): Observable<O> {\n return new Observable((observer: Observer<O>) => {\n tuiAssert.assert(!!this.items$.observers.length, NO_HOST);\n\n const notification = new NotificationAlert(observer, content, {\n ...this.options,\n ...options,\n });\n\n this.items$.next([...this.items$.value, notification]);\n\n return () => {\n this.items$.next(this.items$.value.filter(item => item !== notification));\n };\n });\n }\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {tuiPure} from '@taiga-ui/cdk';\nimport {\n tuiFadeInList,\n tuiHeightCollapseList,\n tuiSlideInRightList,\n} from '@taiga-ui/core/animations';\nimport {TuiAnimationOptions} from '@taiga-ui/core/interfaces';\nimport {TUI_ANIMATION_OPTIONS} from '@taiga-ui/core/tokens';\n\nimport {TuiNotificationsService} from '../notifications.service';\n\n@Component({\n selector: 'tui-notifications-host',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './notifications-host.template.html',\n styleUrls: ['./notifications-host.style.less'],\n animations: [tuiFadeInList, tuiSlideInRightList, tuiHeightCollapseList],\n})\nexport class TuiNotificationsHostComponent {\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(TuiNotificationsService) readonly service: TuiNotificationsService,\n ) {}\n\n @tuiPure\n getAnimation(value: number): TuiAnimationOptions {\n return {\n value: String(value),\n ...this.options,\n };\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiNotificationAlertModule} from './notification-alert/notification-alert.module';\nimport {TuiNotificationsHostComponent} from './notifications-host/notifications-host.component';\n\n// TODO: remove in ivy compilation\nexport const NOTIFICATIONS_HOST = TuiNotificationsHostComponent;\n\n@NgModule({\n imports: [CommonModule, TuiNotificationAlertModule, TuiLetModule],\n declarations: [TuiNotificationsHostComponent],\n exports: [TuiNotificationsHostComponent],\n entryComponents: [TuiNotificationsHostComponent],\n providers: [\n {\n provide: TuiNotificationsHostComponent,\n useValue: NOTIFICATIONS_HOST,\n },\n ],\n})\nexport class TuiNotificationsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,16 +1,31 @@
1
- import { Optional, ElementRef } from '@angular/core';
1
+ import { ElementRef, NgZone, Optional } from '@angular/core';
2
+ import { WINDOW } from '@ng-web-apis/common';
3
+ import { tuiZoneOptimized, watch } from '@taiga-ui/cdk';
4
+ import { TUI_IS_MOBILE_RES, TUI_MEDIA, TUI_MODE } from '@taiga-ui/core/tokens';
5
+ import { fromEvent, EMPTY } from 'rxjs';
6
+ import { startWith, map, distinctUntilChanged, takeUntil } from 'rxjs/operators';
2
7
  import { TuiModeDirective } from '@taiga-ui/core/directives/mode';
3
- import { TUI_MODE } from '@taiga-ui/core/tokens';
4
- import { EMPTY } from 'rxjs';
5
- import { startWith, map, takeUntil } from 'rxjs/operators';
6
- import { watch } from '@taiga-ui/cdk';
8
+
9
+ function isMobileResFactory(windowRef, _a, _b, ngZone) {
10
+ var mobile = _a.mobile;
11
+ var nativeElement = _b.nativeElement;
12
+ var mobile$ = fromEvent(windowRef, 'resize').pipe(startWith(null), map(function () { return windowRef.innerWidth < mobile; }), distinctUntilChanged(), tuiZoneOptimized(ngZone));
13
+ nativeElement['$.class._mobile'] = mobile$;
14
+ return mobile$;
15
+ }
16
+ var TUI_IS_MOBILE_RES_PROVIDER = {
17
+ provide: TUI_IS_MOBILE_RES,
18
+ deps: [WINDOW, TUI_MEDIA, ElementRef, NgZone],
19
+ useFactory: isMobileResFactory,
20
+ };
7
21
 
8
22
  function modeFactory(mode, _a) {
9
23
  var nativeElement = _a.nativeElement;
10
24
  var mode$ = mode
11
25
  ? mode.change$.pipe(startWith(null), map(function () { return mode.mode; }))
12
26
  : EMPTY;
13
- return (nativeElement['$.data-mode.attr'] = mode$);
27
+ nativeElement['$.data-mode.attr'] = mode$;
28
+ return mode$;
14
29
  }
15
30
  var MODE_PROVIDER = {
16
31
  provide: TUI_MODE,
@@ -27,5 +42,5 @@ function watchedControllerFactory(controller, changeDetectorRef, destroy$) {
27
42
  * Generated bundle index. Do not edit.
28
43
  */
29
44
 
30
- export { MODE_PROVIDER, modeFactory, watchedControllerFactory };
45
+ export { MODE_PROVIDER, TUI_IS_MOBILE_RES_PROVIDER, isMobileResFactory, modeFactory, watchedControllerFactory };
31
46
  //# sourceMappingURL=taiga-ui-core-providers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-providers.js","sources":["ng://@taiga-ui/core/providers/mode.provider.ts","ng://@taiga-ui/core/providers/watched-controller-provider-factory.ts","ng://@taiga-ui/core/providers/taiga-ui-core-providers.ts"],"sourcesContent":["import {ElementRef, Optional, Provider} from '@angular/core';\nimport {TuiModeDirective} from '@taiga-ui/core/directives/mode';\nimport {TUI_MODE} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {EMPTY, Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\nexport function modeFactory(\n mode: TuiModeDirective | null,\n {nativeElement}: ElementRef,\n): Observable<TuiBrightness | null> {\n const mode$ = mode\n ? mode.change$.pipe(\n startWith(null),\n map(() => mode.mode),\n )\n : EMPTY;\n\n return (nativeElement['$.data-mode.attr'] = mode$);\n}\n\nexport const MODE_PROVIDER: Provider = {\n provide: TUI_MODE,\n deps: [[new Optional(), TuiModeDirective], ElementRef],\n useFactory: modeFactory,\n};\n","import {ChangeDetectorRef} from '@angular/core';\nimport {TuiController, watch} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nexport function watchedControllerFactory(\n controller: TuiController,\n changeDetectorRef: ChangeDetectorRef,\n destroy$: Observable<void>,\n): TuiController {\n controller.change$.pipe(watch(changeDetectorRef), takeUntil(destroy$)).subscribe();\n\n return controller;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;SAOgB,WAAW,CACvB,IAA6B,EAC7B,EAA2B;QAA1B,gCAAa;IAEd,IAAM,KAAK,GAAG,IAAI;UACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,cAAM,OAAA,IAAI,CAAC,IAAI,GAAA,CAAC,CACvB;UACD,KAAK,CAAC;IAEZ,QAAQ,aAAa,CAAC,kBAAkB,CAAC,GAAG,KAAK,EAAE;AACvD,CAAC;IAEY,aAAa,GAAa;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,gBAAgB,CAAC,EAAE,UAAU,CAAC;IACtD,UAAU,EAAE,WAAW;;;SCnBX,wBAAwB,CACpC,UAAyB,EACzB,iBAAoC,EACpC,QAA0B;IAE1B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAEnF,OAAO,UAAU,CAAC;AACtB;;ACbA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-providers.js","sources":["ng://@taiga-ui/core/providers/is-mobile-resolution.provider.ts","ng://@taiga-ui/core/providers/mode.provider.ts","ng://@taiga-ui/core/providers/watched-controller-provider-factory.ts","ng://@taiga-ui/core/providers/taiga-ui-core-providers.ts"],"sourcesContent":["import {ElementRef, NgZone, Provider} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {TuiMedia} from '@taiga-ui/core/interfaces';\nimport {TUI_IS_MOBILE_RES, TUI_MEDIA} from '@taiga-ui/core/tokens';\nimport {fromEvent, Observable} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nexport function isMobileResFactory(\n windowRef: Window,\n {mobile}: TuiMedia,\n {nativeElement}: ElementRef,\n ngZone: NgZone,\n): Observable<boolean> {\n const mobile$ = fromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerWidth < mobile),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n );\n\n nativeElement['$.class._mobile'] = mobile$;\n\n return mobile$;\n}\n\nexport const TUI_IS_MOBILE_RES_PROVIDER: Provider = {\n provide: TUI_IS_MOBILE_RES,\n deps: [WINDOW, TUI_MEDIA, ElementRef, NgZone],\n useFactory: isMobileResFactory,\n};\n","import {ElementRef, Optional, Provider} from '@angular/core';\nimport {TuiModeDirective} from '@taiga-ui/core/directives/mode';\nimport {TUI_MODE} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {EMPTY, Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\nexport function modeFactory(\n mode: TuiModeDirective | null,\n {nativeElement}: ElementRef,\n): Observable<TuiBrightness | null> {\n const mode$ = mode\n ? mode.change$.pipe(\n startWith(null),\n map(() => mode.mode),\n )\n : EMPTY;\n\n nativeElement['$.data-mode.attr'] = mode$;\n\n return mode$;\n}\n\nexport const MODE_PROVIDER: Provider = {\n provide: TUI_MODE,\n deps: [[new Optional(), TuiModeDirective], ElementRef],\n useFactory: modeFactory,\n};\n","import {ChangeDetectorRef} from '@angular/core';\nimport {TuiController, watch} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nexport function watchedControllerFactory(\n controller: TuiController,\n changeDetectorRef: ChangeDetectorRef,\n destroy$: Observable<void>,\n): TuiController {\n controller.change$.pipe(watch(changeDetectorRef), takeUntil(destroy$)).subscribe();\n\n return controller;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;SAQgB,kBAAkB,CAC9B,SAAiB,EACjB,EAAkB,EAClB,EAA2B,EAC3B,MAAc;QAFb,kBAAM;QACN,gCAAa;IAGd,IAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,CAC/C,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,cAAM,OAAA,SAAS,CAAC,UAAU,GAAG,MAAM,GAAA,CAAC,EACxC,oBAAoB,EAAE,EACtB,gBAAgB,CAAC,MAAM,CAAC,CAC3B,CAAC;IAEF,aAAa,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;IAE3C,OAAO,OAAO,CAAC;AACnB,CAAC;IAEY,0BAA0B,GAAa;IAChD,OAAO,EAAE,iBAAiB;IAC1B,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;IAC7C,UAAU,EAAE,kBAAkB;;;SCtBlB,WAAW,CACvB,IAA6B,EAC7B,EAA2B;QAA1B,gCAAa;IAEd,IAAM,KAAK,GAAG,IAAI;UACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,cAAM,OAAA,IAAI,CAAC,IAAI,GAAA,CAAC,CACvB;UACD,KAAK,CAAC;IAEZ,aAAa,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC;IAE1C,OAAO,KAAK,CAAC;AACjB,CAAC;IAEY,aAAa,GAAa;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,gBAAgB,CAAC,EAAE,UAAU,CAAC;IACtD,UAAU,EAAE,WAAW;;;SCrBX,wBAAwB,CACpC,UAAyB,EACzB,iBAAoC,EACpC,QAA0B;IAE1B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAEnF,OAAO,UAAU,CAAC;AACtB;;ACbA;;;;;;"}
@@ -4,6 +4,7 @@ import { iconsPathFactory } from '@taiga-ui/core/utils';
4
4
  import { CHAR_NO_BREAK_SPACE, TUI_SANITIZER as TUI_SANITIZER$1 } from '@taiga-ui/cdk';
5
5
  import { __spread } from 'tslib';
6
6
  import { map } from 'rxjs/operators';
7
+ import { identity } from 'rxjs';
7
8
 
8
9
  var TUI_ANIMATIONS_DURATION = new InjectionToken('Duration of all Taiga UI animations in ms', {
9
10
  factory: function () { return 300; },
@@ -62,6 +63,8 @@ var TUI_ICONS_PATH = new InjectionToken('A handler to retrieve USE id for icon b
62
63
  factory: function () { return iconsPathFactory('assets/taiga-ui/icons/'); },
63
64
  });
64
65
 
66
+ var TUI_IS_MOBILE_RES = new InjectionToken('Mobile resolution stream for private providers');
67
+
65
68
  var TUI_MEDIA = new InjectionToken('Token for media constant', {
66
69
  factory: function () { return ({
67
70
  mobile: 768,
@@ -114,6 +117,10 @@ var TUI_SANITIZER = TUI_SANITIZER$1;
114
117
 
115
118
  var TUI_SCROLL_REF = new InjectionToken('Scrollable container');
116
119
 
120
+ var TUI_SVG_SRC_PROCESSOR = new InjectionToken('Source path processor for svg', {
121
+ factory: function () { return identity; },
122
+ });
123
+
117
124
  var TUI_TEXTFIELD_APPEARANCE = new InjectionToken('Appearance for inputs', {
118
125
  factory: function () { return "textfield" /* Textfield */; },
119
126
  });
@@ -124,5 +131,5 @@ var TUI_VALUE_ACCESSOR = new InjectionToken('Buffer token to pass NG_VALUE_ACCES
124
131
  * Generated bundle index. Do not edit.
125
132
  */
126
133
 
127
- export { TUI_ANIMATIONS_DURATION, TUI_ANIMATION_OPTIONS, TUI_ASSERT_ENABLED, TUI_CLOSE_WORD, TUI_DATA_LIST_ACCESSOR, TUI_DATA_LIST_HOST, TUI_DEFAULT_ERROR_MESSAGE, TUI_DOCUMENT_OR_SHADOW_ROOT, TUI_DROPDOWN_DIRECTIVE, TUI_ELEMENT_REF, TUI_FIRST_DAY_OF_WEEK, TUI_ICONS, TUI_ICONS_PATH, TUI_MEDIA, TUI_MODE, TUI_MONTHS, TUI_NOTHING_FOUND_MESSAGE, TUI_NOTIFICATION_DEFAULT_OPTIONS, TUI_NOTIFICATION_OPTIONS, TUI_NUMBER_FORMAT, TUI_OPTION_CONTENT, TUI_ORDERED_SHORT_WEEK_DAYS, TUI_SANITIZER, TUI_SCROLL_REF, TUI_SHORT_WEEK_DAYS, TUI_SPIN_TEXTS, TUI_TEXTFIELD_APPEARANCE, TUI_VALUE_ACCESSOR, convertToSundayFirstWeekFormat };
134
+ export { TUI_ANIMATIONS_DURATION, TUI_ANIMATION_OPTIONS, TUI_ASSERT_ENABLED, TUI_CLOSE_WORD, TUI_DATA_LIST_ACCESSOR, TUI_DATA_LIST_HOST, TUI_DEFAULT_ERROR_MESSAGE, TUI_DOCUMENT_OR_SHADOW_ROOT, TUI_DROPDOWN_DIRECTIVE, TUI_ELEMENT_REF, TUI_FIRST_DAY_OF_WEEK, TUI_ICONS, TUI_ICONS_PATH, TUI_IS_MOBILE_RES, TUI_MEDIA, TUI_MODE, TUI_MONTHS, TUI_NOTHING_FOUND_MESSAGE, TUI_NOTIFICATION_DEFAULT_OPTIONS, TUI_NOTIFICATION_OPTIONS, TUI_NUMBER_FORMAT, TUI_OPTION_CONTENT, TUI_ORDERED_SHORT_WEEK_DAYS, TUI_SANITIZER, TUI_SCROLL_REF, TUI_SHORT_WEEK_DAYS, TUI_SPIN_TEXTS, TUI_SVG_SRC_PROCESSOR, TUI_TEXTFIELD_APPEARANCE, TUI_VALUE_ACCESSOR, convertToSundayFirstWeekFormat };
128
135
  //# sourceMappingURL=taiga-ui-core-tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-tokens.js","sources":["ng://@taiga-ui/core/tokens/animations-duration.ts","ng://@taiga-ui/core/tokens/animation-options.ts","ng://@taiga-ui/core/tokens/assert-enabled.ts","ng://@taiga-ui/core/tokens/data-list-accessor.ts","ng://@taiga-ui/core/tokens/data-list-host.ts","ng://@taiga-ui/core/tokens/document-or-shadow-root.ts","ng://@taiga-ui/core/tokens/dropdown-directive.ts","ng://@taiga-ui/core/tokens/element-ref.ts","ng://@taiga-ui/core/tokens/first-day-of-week.ts","ng://@taiga-ui/core/tokens/i18n.ts","ng://@taiga-ui/core/tokens/icons.ts","ng://@taiga-ui/core/tokens/icons-path.ts","ng://@taiga-ui/core/tokens/media.ts","ng://@taiga-ui/core/tokens/mode.ts","ng://@taiga-ui/core/tokens/notification-options.ts","ng://@taiga-ui/core/tokens/number-format.ts","ng://@taiga-ui/core/tokens/option-content.ts","ng://@taiga-ui/core/tokens/ordered-short-week-days.ts","ng://@taiga-ui/core/tokens/sanitizer.ts","ng://@taiga-ui/core/tokens/scroll-ref.ts","ng://@taiga-ui/core/tokens/textfield-appearance.ts","ng://@taiga-ui/core/tokens/value-accessor.ts","ng://@taiga-ui/core/tokens/taiga-ui-core-tokens.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\n\nexport const TUI_ANIMATIONS_DURATION = new InjectionToken<number>(\n 'Duration of all Taiga UI animations in ms',\n {\n factory: () => 300,\n },\n);\n","import {AnimationOptions} from '@angular/animations';\nimport {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_ANIMATIONS_DURATION} from './animations-duration';\n\nexport const TUI_ANIMATION_OPTIONS = new InjectionToken<AnimationOptions>(\n 'Options for Taiga UI animations',\n {\n factory: () => ({\n params: {\n duration: inject(TUI_ANIMATIONS_DURATION),\n },\n }),\n },\n);\n","import {InjectionToken, isDevMode} from '@angular/core';\n\nexport const TUI_ASSERT_ENABLED = new InjectionToken(\n 'Flag to enable assertions across Taiga UI',\n {\n factory: () => isDevMode(),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiDataListAccessor} from '@taiga-ui/core/interfaces';\n\nexport const TUI_DATA_LIST_ACCESSOR = new InjectionToken<TuiDataListAccessor>(\n 'Accessor for options',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiDataListHost} from '@taiga-ui/core/interfaces';\n\nexport const TUI_DATA_LIST_HOST = new InjectionToken<TuiDataListHost<any>>(\n 'DataList controller',\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_DOCUMENT_OR_SHADOW_ROOT = new InjectionToken<DocumentOrShadowRoot>(\n 'Document or ShadowRoot',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiDropdown} from '@taiga-ui/core/interfaces';\n\nexport const TUI_DROPDOWN_DIRECTIVE = new InjectionToken<TuiDropdown>(\n 'Directive controlling TuiDropdownBoxComponent',\n);\n","import {ElementRef, InjectionToken} from '@angular/core';\n\nexport const TUI_ELEMENT_REF = new InjectionToken<ElementRef>(\n 'ElementRef when you cannot use @Input for single time injection',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiDayOfWeek} from '@taiga-ui/cdk';\n\nexport const TUI_FIRST_DAY_OF_WEEK = new InjectionToken<TuiDayOfWeek>(\n 'The first day of the week index',\n {\n factory: () => TuiDayOfWeek.Monday,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {extractI18n} from '@taiga-ui/i18n';\n\nexport const TUI_MONTHS = new InjectionToken('Localized months names', {\n factory: extractI18n('months'),\n});\n\nexport const TUI_CLOSE_WORD = new InjectionToken(`i18n 'close' word`, {\n factory: extractI18n('close'),\n});\n\nexport const TUI_NOTHING_FOUND_MESSAGE = new InjectionToken(\n `i18n 'Nothing found' message`,\n {\n factory: extractI18n('nothingFoundMessage'),\n },\n);\n\nexport const TUI_DEFAULT_ERROR_MESSAGE = new InjectionToken(`i18n of error message`, {\n factory: extractI18n('defaultErrorMessage'),\n});\n\nexport const TUI_SPIN_TEXTS = new InjectionToken('spin i18n texts', {\n factory: extractI18n('spinTexts'),\n});\n\nexport const TUI_SHORT_WEEK_DAYS = new InjectionToken('calendars i18n texts', {\n factory: extractI18n('shortWeekDays'),\n});\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_ICONS = new InjectionToken<Record<string, string>>(\n 'A key/value dictionary of icon names and src to be defined with TuiSvgService',\n {\n factory: () => ({}),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiStringHandler} from '@taiga-ui/cdk';\nimport {iconsPathFactory} from '@taiga-ui/core/utils';\n\nexport const TUI_ICONS_PATH: InjectionToken<TuiStringHandler<string>> =\n new InjectionToken<TuiStringHandler<string>>(\n 'A handler to retrieve USE id for icon by name',\n {\n factory: () => iconsPathFactory('assets/taiga-ui/icons/'),\n },\n );\n","import {InjectionToken} from '@angular/core';\nimport {TuiMedia} from '@taiga-ui/core/interfaces';\n\nexport const TUI_MEDIA = new InjectionToken<TuiMedia>('Token for media constant', {\n factory: () => ({\n mobile: 768,\n desktopSmall: 1024,\n desktopLarge: 1280,\n }),\n});\n","import {InjectionToken} from '@angular/core';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\n\nexport const TUI_MODE: InjectionToken<Observable<TuiBrightness | null>> =\n new InjectionToken<Observable<TuiBrightness | null>>(\n 'Mode stream for private providers',\n );\n","import {InjectionToken} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {TuiNotification} from '@taiga-ui/core/enums';\nimport {TuiNotificationAutoClose} from '@taiga-ui/core/interfaces';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface NotificationTokenOptions {\n readonly autoClose: TuiNotificationAutoClose;\n readonly label: PolymorpheusContent<TuiContextWithImplicit<TuiNotification>>;\n readonly status: TuiNotification;\n readonly hasIcon: boolean;\n readonly hasCloseButton: boolean;\n}\n\n/** Default values for the notification options. */\nexport const TUI_NOTIFICATION_DEFAULT_OPTIONS: NotificationTokenOptions = {\n autoClose: true,\n label: '',\n status: TuiNotification.Info,\n hasIcon: true,\n hasCloseButton: true,\n};\n\nexport const TUI_NOTIFICATION_OPTIONS = new InjectionToken<NotificationTokenOptions>(\n 'Default parameters for notification alert component',\n {\n factory: () => TUI_NOTIFICATION_DEFAULT_OPTIONS,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk';\nimport {NumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nexport const TUI_NUMBER_FORMAT = new InjectionToken<NumberFormatSettings>(\n 'Formatting configuration for displayed numbers',\n {\n factory: () => ({\n decimalSeparator: ',',\n thousandSeparator: CHAR_NO_BREAK_SPACE,\n zeroPadding: true,\n }),\n },\n);\n","import {InjectionToken, TemplateRef} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport const TUI_OPTION_CONTENT = new InjectionToken<\n PolymorpheusContent<TuiContextWithImplicit<TemplateRef<{}>>>\n>('Content for tuiOption component');\n","import {inject, InjectionToken} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_FIRST_DAY_OF_WEEK, TUI_SHORT_WEEK_DAYS} from './index';\n\nexport type WEEK_DAYS_NAMES = [string, string, string, string, string, string, string];\n\n// TODO: Remove export in ivy compiation\nexport const convertToSundayFirstWeekFormat = (weekDaysNames: WEEK_DAYS_NAMES) => {\n const sundayIndex = weekDaysNames.length - 1;\n\n return [\n weekDaysNames[sundayIndex],\n ...weekDaysNames.slice(0, sundayIndex),\n ] as WEEK_DAYS_NAMES;\n};\n\nexport const TUI_ORDERED_SHORT_WEEK_DAYS = new InjectionToken<\n Observable<WEEK_DAYS_NAMES>\n>('Ordered calendars i18n texts', {\n factory: () => {\n const firstDayOfWeekIndex = inject(TUI_FIRST_DAY_OF_WEEK);\n\n return inject(TUI_SHORT_WEEK_DAYS).pipe(\n map(convertToSundayFirstWeekFormat),\n map(\n weekDays =>\n [\n ...weekDays.slice(firstDayOfWeekIndex),\n ...weekDays.slice(0, firstDayOfWeekIndex),\n ] as WEEK_DAYS_NAMES,\n ),\n );\n },\n});\n","import {TUI_SANITIZER as TOKEN} from '@taiga-ui/cdk';\n\nexport const TUI_SANITIZER = TOKEN;\n","import {ElementRef, InjectionToken} from '@angular/core';\n\nexport const TUI_SCROLL_REF = new InjectionToken<ElementRef<HTMLElement>>(\n 'Scrollable container',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\n\nexport const TUI_TEXTFIELD_APPEARANCE = new InjectionToken<string>(\n 'Appearance for inputs',\n {\n factory: () => TuiAppearance.Textfield,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {ControlValueAccessor} from '@angular/forms';\n\nexport const TUI_VALUE_ACCESSOR = new InjectionToken<ControlValueAccessor>(\n 'Buffer token to pass NG_VALUE_ACCESSOR to a different Injector',\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TOKEN"],"mappings":";;;;;;;IAEa,uBAAuB,GAAG,IAAI,cAAc,CACrD,2CAA2C,EAC3C;IACI,OAAO,EAAE,cAAM,OAAA,GAAG,GAAA;CACrB;;ICDQ,qBAAqB,GAAG,IAAI,cAAc,CACnD,iCAAiC,EACjC;IACI,OAAO,EAAE,cAAM,QAAC;QACZ,MAAM,EAAE;YACJ,QAAQ,EAAE,MAAM,CAAC,uBAAuB,CAAC;SAC5C;KACJ,IAAC;CACL;;ICXQ,kBAAkB,GAAG,IAAI,cAAc,CAChD,2CAA2C,EAC3C;IACI,OAAO,EAAE,cAAM,OAAA,SAAS,EAAE,GAAA;CAC7B;;ICHQ,sBAAsB,GAAG,IAAI,cAAc,CACpD,sBAAsB;;ICDb,kBAAkB,GAAG,IAAI,cAAc,CAChD,qBAAqB;;ICFZ,2BAA2B,GAAG,IAAI,cAAc,CACzD,wBAAwB;;ICAf,sBAAsB,GAAG,IAAI,cAAc,CACpD,+CAA+C;;ICFtC,eAAe,GAAG,IAAI,cAAc,CAC7C,iEAAiE;;ICAxD,qBAAqB,GAAG,IAAI,cAAc,CACnD,iCAAiC,EACjC;IACI,OAAO,EAAE,cAAM,wBAAmB;CACrC;;ICJQ,UAAU,GAAG,IAAI,cAAc,CAAC,wBAAwB,EAAE;IACnE,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC;CACjC,EAAE;IAEU,cAAc,GAAG,IAAI,cAAc,CAAC,mBAAmB,EAAE;IAClE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;CAChC,EAAE;IAEU,yBAAyB,GAAG,IAAI,cAAc,CACvD,8BAA8B,EAC9B;IACI,OAAO,EAAE,WAAW,CAAC,qBAAqB,CAAC;CAC9C,EACH;IAEW,yBAAyB,GAAG,IAAI,cAAc,CAAC,uBAAuB,EAAE;IACjF,OAAO,EAAE,WAAW,CAAC,qBAAqB,CAAC;CAC9C,EAAE;IAEU,cAAc,GAAG,IAAI,cAAc,CAAC,iBAAiB,EAAE;IAChE,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC;CACpC,EAAE;IAEU,mBAAmB,GAAG,IAAI,cAAc,CAAC,sBAAsB,EAAE;IAC1E,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC;CACxC;;IC1BY,SAAS,GAAG,IAAI,cAAc,CACvC,+EAA+E,EAC/E;IACI,OAAO,EAAE,cAAM,QAAC,EAAE,IAAC;CACtB;;ICFQ,cAAc,GACvB,IAAI,cAAc,CACd,+CAA+C,EAC/C;IACI,OAAO,EAAE,cAAM,OAAA,gBAAgB,CAAC,wBAAwB,CAAC,GAAA;CAC5D;;ICNI,SAAS,GAAG,IAAI,cAAc,CAAW,0BAA0B,EAAE;IAC9E,OAAO,EAAE,cAAM,QAAC;QACZ,MAAM,EAAE,GAAG;QACX,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;KACrB,IAAC;CACL;;ICLY,QAAQ,GACjB,IAAI,cAAc,CACd,mCAAmC;;ACQ3C;IACa,gCAAgC,GAA6B;IACtE,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,EAAE;IACT,MAAM;IACN,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,IAAI;EACtB;IAEW,wBAAwB,GAAG,IAAI,cAAc,CACtD,qDAAqD,EACrD;IACI,OAAO,EAAE,cAAM,OAAA,gCAAgC,GAAA;CAClD;;ICvBQ,iBAAiB,GAAG,IAAI,cAAc,CAC/C,gDAAgD,EAChD;IACI,OAAO,EAAE,cAAM,QAAC;QACZ,gBAAgB,EAAE,GAAG;QACrB,iBAAiB,EAAE,mBAAmB;QACtC,WAAW,EAAE,IAAI;KACpB,IAAC;CACL;;ICRQ,kBAAkB,GAAG,IAAI,cAAc,CAElD,iCAAiC;;ACEnC;IACa,8BAA8B,GAAG,UAAC,aAA8B;IACzE,IAAM,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7C,OAAO;QACH,aAAa,CAAC,WAAW,CAAC;OACvB,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CACtB,CAAC;AACzB,EAAE;IAEW,2BAA2B,GAAG,IAAI,cAAc,CAE3D,8BAA8B,EAAE;IAC9B,OAAO,EAAE;QACL,IAAM,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAE1D,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CACnC,GAAG,CAAC,8BAA8B,CAAC,EACnC,GAAG,CACC,UAAA,QAAQ;YACJ,OAAA,SACO,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,EACnC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CACzB;SAAA,CAC3B,CACJ,CAAC;KACL;CACJ;;ICjCY,aAAa,GAAGA;;ICAhB,cAAc,GAAG,IAAI,cAAc,CAC5C,sBAAsB;;ICAb,wBAAwB,GAAG,IAAI,cAAc,CACtD,uBAAuB,EACvB;IACI,OAAO,EAAE,cAAM,qCAAuB;CACzC;;ICJQ,kBAAkB,GAAG,IAAI,cAAc,CAChD,gEAAgE;;ACJpE;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-tokens.js","sources":["ng://@taiga-ui/core/tokens/animations-duration.ts","ng://@taiga-ui/core/tokens/animation-options.ts","ng://@taiga-ui/core/tokens/assert-enabled.ts","ng://@taiga-ui/core/tokens/data-list-accessor.ts","ng://@taiga-ui/core/tokens/data-list-host.ts","ng://@taiga-ui/core/tokens/document-or-shadow-root.ts","ng://@taiga-ui/core/tokens/dropdown-directive.ts","ng://@taiga-ui/core/tokens/element-ref.ts","ng://@taiga-ui/core/tokens/first-day-of-week.ts","ng://@taiga-ui/core/tokens/i18n.ts","ng://@taiga-ui/core/tokens/icons.ts","ng://@taiga-ui/core/tokens/icons-path.ts","ng://@taiga-ui/core/tokens/is-mobile-resolution.ts","ng://@taiga-ui/core/tokens/media.ts","ng://@taiga-ui/core/tokens/mode.ts","ng://@taiga-ui/core/tokens/notification-options.ts","ng://@taiga-ui/core/tokens/number-format.ts","ng://@taiga-ui/core/tokens/option-content.ts","ng://@taiga-ui/core/tokens/ordered-short-week-days.ts","ng://@taiga-ui/core/tokens/sanitizer.ts","ng://@taiga-ui/core/tokens/scroll-ref.ts","ng://@taiga-ui/core/tokens/svg-src-processor.ts","ng://@taiga-ui/core/tokens/textfield-appearance.ts","ng://@taiga-ui/core/tokens/value-accessor.ts","ng://@taiga-ui/core/tokens/taiga-ui-core-tokens.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\n\nexport const TUI_ANIMATIONS_DURATION = new InjectionToken<number>(\n 'Duration of all Taiga UI animations in ms',\n {\n factory: () => 300,\n },\n);\n","import {AnimationOptions} from '@angular/animations';\nimport {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_ANIMATIONS_DURATION} from './animations-duration';\n\nexport const TUI_ANIMATION_OPTIONS = new InjectionToken<AnimationOptions>(\n 'Options for Taiga UI animations',\n {\n factory: () => ({\n params: {\n duration: inject(TUI_ANIMATIONS_DURATION),\n },\n }),\n },\n);\n","import {InjectionToken, isDevMode} from '@angular/core';\n\nexport const TUI_ASSERT_ENABLED = new InjectionToken(\n 'Flag to enable assertions across Taiga UI',\n {\n factory: () => isDevMode(),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiDataListAccessor} from '@taiga-ui/core/interfaces';\n\nexport const TUI_DATA_LIST_ACCESSOR = new InjectionToken<TuiDataListAccessor>(\n 'Accessor for options',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiDataListHost} from '@taiga-ui/core/interfaces';\n\nexport const TUI_DATA_LIST_HOST = new InjectionToken<TuiDataListHost<any>>(\n 'DataList controller',\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_DOCUMENT_OR_SHADOW_ROOT = new InjectionToken<DocumentOrShadowRoot>(\n 'Document or ShadowRoot',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiDropdown} from '@taiga-ui/core/interfaces';\n\nexport const TUI_DROPDOWN_DIRECTIVE = new InjectionToken<TuiDropdown>(\n 'Directive controlling TuiDropdownBoxComponent',\n);\n","import {ElementRef, InjectionToken} from '@angular/core';\n\nexport const TUI_ELEMENT_REF = new InjectionToken<ElementRef>(\n 'ElementRef when you cannot use @Input for single time injection',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiDayOfWeek} from '@taiga-ui/cdk';\n\nexport const TUI_FIRST_DAY_OF_WEEK = new InjectionToken<TuiDayOfWeek>(\n 'The first day of the week index',\n {\n factory: () => TuiDayOfWeek.Monday,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {extractI18n} from '@taiga-ui/i18n';\n\nexport const TUI_MONTHS = new InjectionToken('Localized months names', {\n factory: extractI18n('months'),\n});\n\nexport const TUI_CLOSE_WORD = new InjectionToken(`i18n 'close' word`, {\n factory: extractI18n('close'),\n});\n\nexport const TUI_NOTHING_FOUND_MESSAGE = new InjectionToken(\n `i18n 'Nothing found' message`,\n {\n factory: extractI18n('nothingFoundMessage'),\n },\n);\n\nexport const TUI_DEFAULT_ERROR_MESSAGE = new InjectionToken(`i18n of error message`, {\n factory: extractI18n('defaultErrorMessage'),\n});\n\nexport const TUI_SPIN_TEXTS = new InjectionToken('spin i18n texts', {\n factory: extractI18n('spinTexts'),\n});\n\nexport const TUI_SHORT_WEEK_DAYS = new InjectionToken('calendars i18n texts', {\n factory: extractI18n('shortWeekDays'),\n});\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_ICONS = new InjectionToken<Record<string, string>>(\n 'A key/value dictionary of icon names and src to be defined with TuiSvgService',\n {\n factory: () => ({}),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiStringHandler} from '@taiga-ui/cdk';\nimport {iconsPathFactory} from '@taiga-ui/core/utils';\n\nexport const TUI_ICONS_PATH: InjectionToken<TuiStringHandler<string>> =\n new InjectionToken<TuiStringHandler<string>>(\n 'A handler to retrieve USE id for icon by name',\n {\n factory: () => iconsPathFactory('assets/taiga-ui/icons/'),\n },\n );\n","import {InjectionToken} from '@angular/core';\nimport {Observable} from 'rxjs';\n\nexport const TUI_IS_MOBILE_RES = new InjectionToken<Observable<boolean>>(\n 'Mobile resolution stream for private providers',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiMedia} from '@taiga-ui/core/interfaces';\n\nexport const TUI_MEDIA = new InjectionToken<TuiMedia>('Token for media constant', {\n factory: () => ({\n mobile: 768,\n desktopSmall: 1024,\n desktopLarge: 1280,\n }),\n});\n","import {InjectionToken} from '@angular/core';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\n\nexport const TUI_MODE: InjectionToken<Observable<TuiBrightness | null>> =\n new InjectionToken<Observable<TuiBrightness | null>>(\n 'Mode stream for private providers',\n );\n","import {InjectionToken} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {TuiNotification} from '@taiga-ui/core/enums';\nimport {TuiNotificationAutoClose} from '@taiga-ui/core/interfaces';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface NotificationTokenOptions {\n readonly autoClose: TuiNotificationAutoClose;\n readonly label: PolymorpheusContent<TuiContextWithImplicit<TuiNotification>>;\n readonly status: TuiNotification;\n readonly hasIcon: boolean;\n readonly hasCloseButton: boolean;\n}\n\n/** Default values for the notification options. */\nexport const TUI_NOTIFICATION_DEFAULT_OPTIONS: NotificationTokenOptions = {\n autoClose: true,\n label: '',\n status: TuiNotification.Info,\n hasIcon: true,\n hasCloseButton: true,\n};\n\nexport const TUI_NOTIFICATION_OPTIONS = new InjectionToken<NotificationTokenOptions>(\n 'Default parameters for notification alert component',\n {\n factory: () => TUI_NOTIFICATION_DEFAULT_OPTIONS,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk';\nimport {NumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nexport const TUI_NUMBER_FORMAT = new InjectionToken<NumberFormatSettings>(\n 'Formatting configuration for displayed numbers',\n {\n factory: () => ({\n decimalSeparator: ',',\n thousandSeparator: CHAR_NO_BREAK_SPACE,\n zeroPadding: true,\n }),\n },\n);\n","import {InjectionToken, TemplateRef} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport const TUI_OPTION_CONTENT = new InjectionToken<\n PolymorpheusContent<TuiContextWithImplicit<TemplateRef<{}>>>\n>('Content for tuiOption component');\n","import {inject, InjectionToken} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_FIRST_DAY_OF_WEEK, TUI_SHORT_WEEK_DAYS} from './index';\n\nexport type WEEK_DAYS_NAMES = [string, string, string, string, string, string, string];\n\n// TODO: Remove export in ivy compiation\nexport const convertToSundayFirstWeekFormat = (weekDaysNames: WEEK_DAYS_NAMES) => {\n const sundayIndex = weekDaysNames.length - 1;\n\n return [\n weekDaysNames[sundayIndex],\n ...weekDaysNames.slice(0, sundayIndex),\n ] as WEEK_DAYS_NAMES;\n};\n\nexport const TUI_ORDERED_SHORT_WEEK_DAYS = new InjectionToken<\n Observable<WEEK_DAYS_NAMES>\n>('Ordered calendars i18n texts', {\n factory: () => {\n const firstDayOfWeekIndex = inject(TUI_FIRST_DAY_OF_WEEK);\n\n return inject(TUI_SHORT_WEEK_DAYS).pipe(\n map(convertToSundayFirstWeekFormat),\n map(\n weekDays =>\n [\n ...weekDays.slice(firstDayOfWeekIndex),\n ...weekDays.slice(0, firstDayOfWeekIndex),\n ] as WEEK_DAYS_NAMES,\n ),\n );\n },\n});\n","import {TUI_SANITIZER as TOKEN} from '@taiga-ui/cdk';\n\nexport const TUI_SANITIZER = TOKEN;\n","import {ElementRef, InjectionToken} from '@angular/core';\n\nexport const TUI_SCROLL_REF = new InjectionToken<ElementRef<HTMLElement>>(\n 'Scrollable container',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiStringHandler} from '@taiga-ui/cdk';\nimport {identity} from 'rxjs';\n\nexport const TUI_SVG_SRC_PROCESSOR: InjectionToken<TuiStringHandler<string>> =\n new InjectionToken<TuiStringHandler<string>>('Source path processor for svg', {\n factory: () => identity,\n });\n","import {InjectionToken} from '@angular/core';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\n\nexport const TUI_TEXTFIELD_APPEARANCE = new InjectionToken<string>(\n 'Appearance for inputs',\n {\n factory: () => TuiAppearance.Textfield,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {ControlValueAccessor} from '@angular/forms';\n\nexport const TUI_VALUE_ACCESSOR = new InjectionToken<ControlValueAccessor>(\n 'Buffer token to pass NG_VALUE_ACCESSOR to a different Injector',\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TOKEN"],"mappings":"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"}
@@ -67,7 +67,7 @@ function processIcon(source, name) {
67
67
  }
68
68
  var width = parseInt(widthString, 10);
69
69
  var height = parseInt(heightString, 10);
70
- return "<g id=\"" + name + "\" xmlns=\"http://www.w3.org/2000/svg\"><svg x=\"50%\" y=\"50%\" width=\"" + width / 16 + "em\" height=\"" + height / 16 + "em\" overflow=\"visible\" viewBox=\"0 0 " + width + " " + height + "\"><svg x=\"" + -width / 2 + "\" y=\"" + -width / 2 + "\">" + src + "</svg></svg></g>";
70
+ return "<g id=\"" + name + "\" xmlns=\"http://www.w3.org/2000/svg\"><svg x=\"50%\" y=\"50%\" width=\"" + width / 16 + "em\" height=\"" + height / 16 + "em\" overflow=\"visible\" viewBox=\"0 0 " + width + " " + height + "\"><svg x=\"" + -width / 2 + "\" y=\"" + -height / 2 + "\">" + src + "</svg></svg></g>";
71
71
  }
72
72
 
73
73
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-utils-dom.js","sources":["ng://@taiga-ui/core/utils/dom/are-css-vars-supported.ts","ng://@taiga-ui/core/utils/dom/check-fixed-position.ts","ng://@taiga-ui/core/utils/dom/get-safe-area-size.ts","ng://@taiga-ui/core/utils/dom/get-screen-width.ts","ng://@taiga-ui/core/utils/dom/process-icon.ts","ng://@taiga-ui/core/utils/dom/taiga-ui-core-utils-dom.ts"],"sourcesContent":["import {isEdgeOlderThan} from '@taiga-ui/cdk';\n\n/**\n * TODO: remove \"any\" in new TS version; https://github.com/ng-web-apis/common/pull/6\n */\nexport function areCssVarsSupported(cssRef: any, userAgent: string): boolean {\n return cssRef.supports('(--a: 0)') && !isEdgeOlderThan(17, userAgent);\n}\n","export function checkFixedPosition(element: HTMLElement | null): boolean {\n if (!element || typeof getComputedStyle === 'undefined') {\n return false;\n }\n\n const style = getComputedStyle(element);\n\n return (\n style.getPropertyValue('position') === 'fixed' ||\n checkFixedPosition(element.parentElement)\n );\n}\n","/**\n * Calculates size of safe area on mobile devices (status bars)\n *\n * ATTENTION: Only use in browser environment\n */\nexport function getSafeAreaSize(): number {\n if (!CSS.supports('padding-top: env(safe-area-inset-top)')) {\n return 0;\n }\n\n const div = document.createElement('div');\n\n div.style.paddingTop = 'env(safe-area-inset-top)';\n document.body.appendChild(div);\n\n const safeAreaSize = parseInt(window.getComputedStyle(div).paddingTop!, 10) || 0;\n\n document.body.removeChild(div);\n\n return safeAreaSize;\n}\n","export function getScreenWidth(documentRef: Document): number {\n return Math.max(\n documentRef.documentElement.clientWidth,\n documentRef.defaultView ? documentRef.defaultView.innerWidth : 0,\n );\n}\n","const WIDTH_SEARCH = 'width=\"';\nconst HEIGHT_SEARCH = 'height=\"';\nconst START = '<svg';\n\nexport function processIcon(source: string, name: string): string {\n if (source.includes(`id=\"${name}\"`)) {\n return source;\n }\n\n const src = source.substring(source.indexOf(START));\n const attributes = src.substring(0, src.indexOf('>'));\n\n if (\n !attributes ||\n !attributes.includes(WIDTH_SEARCH) ||\n !attributes.includes(HEIGHT_SEARCH)\n ) {\n return (\n src.replace(\n START,\n `<svg xmlns=\"http://www.w3.org/2000/svg\"><g id=\"${name}\" xmlns=\"http://www.w3.org/2000/svg\"><svg`,\n ) + '</g></svg>'\n );\n }\n\n const indexOfWidth = attributes.indexOf(WIDTH_SEARCH);\n const indexOfHeight = attributes.indexOf(HEIGHT_SEARCH);\n const widthOffset = indexOfWidth + WIDTH_SEARCH.length;\n const heightOffset = indexOfHeight + HEIGHT_SEARCH.length;\n const widthString = attributes.substring(\n widthOffset,\n attributes.indexOf('\"', widthOffset),\n );\n const heightString = attributes.substring(\n heightOffset,\n attributes.indexOf('\"', heightOffset),\n );\n\n if (\n !heightString ||\n !widthString ||\n widthString.includes('%') ||\n heightString.includes('%') ||\n widthString.includes('em') ||\n heightString.includes('em')\n ) {\n return src.replace(START, `<svg id=\"${name}\"`);\n }\n\n const width = parseInt(widthString, 10);\n const height = parseInt(heightString, 10);\n\n return `<g id=\"${name}\" xmlns=\"http://www.w3.org/2000/svg\"><svg x=\"50%\" y=\"50%\" width=\"${\n width / 16\n }em\" height=\"${\n height / 16\n }em\" overflow=\"visible\" viewBox=\"0 0 ${width} ${height}\"><svg x=\"${-width / 2}\" y=\"${\n -width / 2\n }\">${src}</svg></svg></g>`;\n}\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-core-utils-dom.js","sources":["ng://@taiga-ui/core/utils/dom/are-css-vars-supported.ts","ng://@taiga-ui/core/utils/dom/check-fixed-position.ts","ng://@taiga-ui/core/utils/dom/get-safe-area-size.ts","ng://@taiga-ui/core/utils/dom/get-screen-width.ts","ng://@taiga-ui/core/utils/dom/process-icon.ts","ng://@taiga-ui/core/utils/dom/taiga-ui-core-utils-dom.ts"],"sourcesContent":["import {isEdgeOlderThan} from '@taiga-ui/cdk';\n\n/**\n * TODO: remove \"any\" in new TS version; https://github.com/ng-web-apis/common/pull/6\n */\nexport function areCssVarsSupported(cssRef: any, userAgent: string): boolean {\n return cssRef.supports('(--a: 0)') && !isEdgeOlderThan(17, userAgent);\n}\n","export function checkFixedPosition(element: HTMLElement | null): boolean {\n if (!element || typeof getComputedStyle === 'undefined') {\n return false;\n }\n\n const style = getComputedStyle(element);\n\n return (\n style.getPropertyValue('position') === 'fixed' ||\n checkFixedPosition(element.parentElement)\n );\n}\n","/**\n * Calculates size of safe area on mobile devices (status bars)\n *\n * ATTENTION: Only use in browser environment\n */\nexport function getSafeAreaSize(): number {\n if (!CSS.supports('padding-top: env(safe-area-inset-top)')) {\n return 0;\n }\n\n const div = document.createElement('div');\n\n div.style.paddingTop = 'env(safe-area-inset-top)';\n document.body.appendChild(div);\n\n const safeAreaSize = parseInt(window.getComputedStyle(div).paddingTop!, 10) || 0;\n\n document.body.removeChild(div);\n\n return safeAreaSize;\n}\n","export function getScreenWidth(documentRef: Document): number {\n return Math.max(\n documentRef.documentElement.clientWidth,\n documentRef.defaultView ? documentRef.defaultView.innerWidth : 0,\n );\n}\n","const WIDTH_SEARCH = 'width=\"';\nconst HEIGHT_SEARCH = 'height=\"';\nconst START = '<svg';\n\nexport function processIcon(source: string, name: string): string {\n if (source.includes(`id=\"${name}\"`)) {\n return source;\n }\n\n const src = source.substring(source.indexOf(START));\n const attributes = src.substring(0, src.indexOf('>'));\n\n if (\n !attributes ||\n !attributes.includes(WIDTH_SEARCH) ||\n !attributes.includes(HEIGHT_SEARCH)\n ) {\n return (\n src.replace(\n START,\n `<svg xmlns=\"http://www.w3.org/2000/svg\"><g id=\"${name}\" xmlns=\"http://www.w3.org/2000/svg\"><svg`,\n ) + '</g></svg>'\n );\n }\n\n const indexOfWidth = attributes.indexOf(WIDTH_SEARCH);\n const indexOfHeight = attributes.indexOf(HEIGHT_SEARCH);\n const widthOffset = indexOfWidth + WIDTH_SEARCH.length;\n const heightOffset = indexOfHeight + HEIGHT_SEARCH.length;\n const widthString = attributes.substring(\n widthOffset,\n attributes.indexOf('\"', widthOffset),\n );\n const heightString = attributes.substring(\n heightOffset,\n attributes.indexOf('\"', heightOffset),\n );\n\n if (\n !heightString ||\n !widthString ||\n widthString.includes('%') ||\n heightString.includes('%') ||\n widthString.includes('em') ||\n heightString.includes('em')\n ) {\n return src.replace(START, `<svg id=\"${name}\"`);\n }\n\n const width = parseInt(widthString, 10);\n const height = parseInt(heightString, 10);\n\n return `<g id=\"${name}\" xmlns=\"http://www.w3.org/2000/svg\"><svg x=\"50%\" y=\"50%\" width=\"${\n width / 16\n }em\" height=\"${\n height / 16\n }em\" overflow=\"visible\" viewBox=\"0 0 ${width} ${height}\"><svg x=\"${-width / 2}\" y=\"${\n -height / 2\n }\">${src}</svg></svg></g>`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -12,6 +12,38 @@ function capitalize(value) {
12
12
  return value.toLowerCase().replace(/(?:^|\s)\S/g, function (char) { return char.toUpperCase(); });
13
13
  }
14
14
 
15
+ /**
16
+ * Convert number to string with replacing exponent part on decimals
17
+ *
18
+ * @param value the number
19
+ * @return string representation of a number
20
+ */
21
+ function numberToStringWithoutExp(value) {
22
+ var valueAsString = String(value);
23
+ var _a = __read(valueAsString.split('e-'), 2), numberPart = _a[0], expPart = _a[1];
24
+ var valueWithoutExp = valueAsString;
25
+ if (expPart) {
26
+ var _b = __read(numberPart.split('.'), 2), fractionalPart = _b[1];
27
+ var decimalDigits = Number(expPart) + ((fractionalPart === null || fractionalPart === void 0 ? void 0 : fractionalPart.length) || 0);
28
+ valueWithoutExp = value.toFixed(decimalDigits);
29
+ }
30
+ return valueWithoutExp;
31
+ }
32
+
33
+ /**
34
+ * Return fractional part of number
35
+ *
36
+ * @param value the number
37
+ * @param precision number of digits of decimal part, null to keep untouched
38
+ * @return the fractional part of number
39
+ */
40
+ function getFractionPartPadded(value, precision) {
41
+ var _a = __read(numberToStringWithoutExp(value).split('.'), 2), _b = _a[1], fractionPartPadded = _b === void 0 ? '' : _b;
42
+ return typeof precision === 'number'
43
+ ? fractionPartPadded.substr(0, precision)
44
+ : fractionPartPadded;
45
+ }
46
+
15
47
  /**
16
48
  * Formats number adding thousand separators and correct decimal separator
17
49
  * padding decimal part with zeroes to given length
@@ -29,15 +61,13 @@ function formatNumber(value, decimalLimit, decimalSeparator, thousandSeparator,
29
61
  if (thousandSeparator === void 0) { thousandSeparator = CHAR_NO_BREAK_SPACE; }
30
62
  if (zeroPadding === void 0) { zeroPadding = true; }
31
63
  var integerPartString = Math.floor(Math.abs(value)).toString();
32
- var fractionPartString = value.toString().split('.')[1] || '';
33
- var fractionPartPadded = fractionPartString;
64
+ var fractionPartPadded = getFractionPartPadded(value, decimalLimit);
34
65
  if (decimalLimit !== null) {
35
66
  var zeroPaddingSize = zeroPadding
36
- ? Math.max(decimalLimit - fractionPartString.length, 0)
67
+ ? Math.max(decimalLimit - fractionPartPadded.length, 0)
37
68
  : 0;
38
- var basePartString = fractionPartString.substr(0, decimalLimit);
39
69
  var zeroPartString = '0'.repeat(zeroPaddingSize);
40
- fractionPartPadded = "" + basePartString + zeroPartString;
70
+ fractionPartPadded = "" + fractionPartPadded + zeroPartString;
41
71
  }
42
72
  var remainder = integerPartString.length % 3;
43
73
  var sign = value < 0 ? '-' : '';
@@ -136,5 +166,5 @@ function tuiPluralizeToICU(pluralize) {
136
166
  * Generated bundle index. Do not edit.
137
167
  */
138
168
 
139
- export { capitalize, formatNumber, formatPhone, otherDecimalSymbol, pluralize, tuiPluralizeToICU };
169
+ export { capitalize, formatNumber, formatPhone, getFractionPartPadded, numberToStringWithoutExp, otherDecimalSymbol, pluralize, tuiPluralizeToICU };
140
170
  //# sourceMappingURL=taiga-ui-core-utils-format.js.map