@taiga-ui/cdk 3.43.0 → 3.44.0-canary.b3de48e

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 (35) hide show
  1. package/bundles/taiga-ui-cdk-constants.umd.js +1 -1
  2. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-tokens.umd.js +25 -5
  4. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +4 -0
  6. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-utils-svg.umd.js +10 -5
  8. package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -1
  9. package/constants/version.d.ts +1 -1
  10. package/constants/version.js +1 -1
  11. package/esm2015/constants/version.js +2 -2
  12. package/esm2015/tokens/index.js +2 -1
  13. package/esm2015/tokens/window-height.js +5 -9
  14. package/esm2015/tokens/window-size.js +23 -0
  15. package/esm2015/utils/miscellaneous/create-token.js +4 -1
  16. package/esm2015/utils/svg/svg-linear-gradient-processor.js +11 -6
  17. package/fesm2015/taiga-ui-cdk-constants.js +1 -1
  18. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  19. package/fesm2015/taiga-ui-cdk-tokens.js +22 -6
  20. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  21. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +4 -1
  22. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  23. package/fesm2015/taiga-ui-cdk-utils-svg.js +10 -5
  24. package/fesm2015/taiga-ui-cdk-utils-svg.js.map +1 -1
  25. package/package.json +1 -1
  26. package/schematics/ng-add/steps/add-taiga-modules.js +15 -2
  27. package/schematics/ng-update/utils/replace-text.d.ts +1 -1
  28. package/schematics/ng-update/v3-35/constants/icons.js +12 -0
  29. package/schematics/ng-update/v3-35/index.js +1 -1
  30. package/schematics/utils/push-to-array-property.d.ts +2 -1
  31. package/schematics/utils/push-to-array-property.js +8 -2
  32. package/tokens/index.d.ts +1 -0
  33. package/tokens/window-height.d.ts +1 -1
  34. package/tokens/window-size.d.ts +3 -0
  35. package/utils/miscellaneous/create-token.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-tokens.js","sources":["../../../projects/cdk/tokens/removed-element.ts","../../../projects/cdk/tokens/active-element.ts","../../../projects/cdk/tokens/alerts.ts","../../../projects/cdk/tokens/default-renderer.ts","../../../projects/cdk/tokens/dialogs.ts","../../../projects/cdk/tokens/ensure-base-href.ts","../../../projects/cdk/tokens/focusable-item-accessor.ts","../../../projects/cdk/tokens/is-ios.ts","../../../projects/cdk/tokens/is-mobile.ts","../../../projects/cdk/tokens/is-android.ts","../../../projects/cdk/tokens/is-apple.ts","../../../projects/cdk/tokens/is-chromium.ts","../../../projects/cdk/tokens/is-cypress.ts","../../../projects/cdk/tokens/is-playwright.ts","../../../projects/cdk/tokens/is-e2e.ts","../../../projects/cdk/tokens/is-firefox.ts","../../../projects/cdk/tokens/is-stackblitz.ts","../../../projects/cdk/tokens/is-webkit.ts","../../../projects/cdk/tokens/platform.ts","../../../projects/cdk/tokens/range.ts","../../../projects/cdk/tokens/swipe-options.ts","../../../projects/cdk/tokens/take-only-trusted-events.ts","../../../projects/cdk/tokens/touch-supported.ts","../../../projects/cdk/tokens/window-height.ts","../../../projects/cdk/tokens/zoom-options.ts","../../../projects/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine as AnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {map, share, startWith, switchMap} from 'rxjs/operators';\n\n/**\n * Element currently being removed by AnimationEngine\n */\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n `[TUI_REMOVED_ELEMENT]`,\n {\n factory: () => {\n const stub = {onRemovalComplete: () => {}};\n const element$ = new BehaviorSubject<Element | null>(null);\n const engine = inject(AnimationEngine, InjectFlags.Optional) || stub;\n const {onRemovalComplete = stub.onRemovalComplete} = engine;\n\n engine.onRemovalComplete = (element, context) => {\n element$.next(element);\n onRemovalComplete.call(engine, element, context);\n };\n\n return element$.pipe(\n switchMap(element =>\n timer(0).pipe(\n map(() => null),\n startWith(element),\n ),\n ),\n share(),\n );\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiGetActualTarget, tuiGetDocumentOrShadowRoot} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n repeatWhen,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\n/**\n * Active element on the document for ActiveZone\n */\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n `[TUI_ACTIVE_ELEMENT]`,\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const win = inject(WINDOW);\n const doc = inject(DOCUMENT);\n const focusout$ = tuiTypedFromEvent(win, `focusout`);\n const focusin$ = tuiTypedFromEvent(win, `focusin`);\n const blur$ = tuiTypedFromEvent(win, `blur`);\n const mousedown$ = tuiTypedFromEvent(win, `mousedown`);\n const mouseup$ = tuiTypedFromEvent(win, `mouseup`);\n\n return merge(\n focusout$.pipe(\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(mousedown$),\n /**\n * TODO: replace to\n * repeat({delay: () => mouseup$})\n * in RxJS 7\n */\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(tuiGetActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => doc.activeElement),\n filter(element => !!element?.matches(`iframe`)),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = tuiGetActualTarget(event);\n const root = tuiGetDocumentOrShadowRoot(target) as Document;\n\n return root === doc\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event => {\n const actualTargetInCurrentTime = tuiGetActualTarget(event);\n\n return !doc.activeElement || doc.activeElement === doc.body\n ? of(actualTargetInCurrentTime)\n : focusout$.pipe(\n take(1),\n map(\n /**\n * Do not use `map(() => tuiGetActualTarget(event))`\n * because we have different result in runtime\n */\n () => actualTargetInCurrentTime,\n ),\n takeUntil(timer(0)),\n );\n }),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\n);\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null = null): boolean {\n return (\n // Not due to switching tabs/going to DevTools\n tuiGetDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled or under disabled fieldset\n !target.matches(`:disabled`) &&\n // Not due to element being removed from DOM\n !removedElement?.contains(target)\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n tuiTypedFromEvent(root, `focusin`).pipe(map(({target}) => target)),\n tuiTypedFromEvent(root, `focusout`).pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {Provider, Type} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\nimport {Observable} from 'rxjs';\n\n/**\n * A stream of alerts\n */\nexport const TUI_ALERTS = tuiCreateToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>([]);\n\nexport function tuiAsAlerts(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_ALERTS,\n multi: true,\n useExisting,\n };\n}\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n/**\n * A Renderer2 for global services\n * https://github.com/angular/angular/issues/17824#issuecomment-353239017\n * @deprecated unnecessary\n * TODO: remove in 4.0\n */\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n `[TUI_DEFAULT_RENDERER]`,\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {Provider, Type} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\nimport {Observable} from 'rxjs';\n\n/**\n * A stream of dialogs\n */\nexport const TUI_DIALOGS = tuiCreateToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>([]);\n\nexport function tuiAsDialog(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_DIALOGS,\n multi: true,\n useExisting,\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\n\nexport const TUI_ENSURE_BASE_HREF: InjectionToken<string> = new InjectionToken<string>(\n `[TUI_ENSURE_BASE_HREF]`,\n {\n factory: () => {\n const baseHref = inject(DOCUMENT).querySelector(`base`)?.href;\n\n if (baseHref) {\n return baseHref;\n }\n\n const link = inject(DOCUMENT).createElement(`a`);\n\n link.href = ``;\n\n return link.pathname;\n },\n },\n);\n","import {InjectionToken, Provider, Type} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\n/**\n * A component that can be focused\n */\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>(`[TUI_FOCUSABLE_ITEM_ACCESSOR]`);\n\nexport function tuiAsFocusableItemAccessor(\n useExisting: Type<TuiFocusableElementAccessor>,\n): Provider {\n return {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting,\n };\n}\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiIsIos} from '@taiga-ui/cdk/utils';\n\n/**\n * iOS browser detection\n */\nexport const TUI_IS_IOS = new InjectionToken<boolean>(`[TUI_IS_IOS]`, {\n factory: () => tuiIsIos(inject(NAVIGATOR)),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\n\n// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\nconst firstRegex =\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/;\nconst secondRegex =\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/;\n\n/**\n * Mobile browser detection\n */\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>(`[TUI_IS_MOBILE]`, {\n factory: () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\n/**\n * Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)\n */\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(`[TUI_IS_ANDROID]`, {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiIsApple} from '@taiga-ui/cdk/utils';\n\n/**\n * Apple(safari/webkit) detection\n */\nexport const TUI_IS_APPLE = new InjectionToken<boolean>(`[TUI_IS_APPLE]`, {\n factory: () => tuiIsApple(inject(NAVIGATOR)),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\n/**\n * Chromium browser engine detection\n */\nexport const TUI_IS_CHROMIUM = new InjectionToken<boolean>(`[TUI_IS_CHROMIUM]`, {\n factory: () => !!(inject(WINDOW) as Window & {chrome: unknown}).chrome,\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\ninterface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\n * Detect if app is running under Cypress\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n */\nexport const TUI_IS_CYPRESS = new InjectionToken<boolean>(`[TUI_IS_CYPRESS]`, {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n});\n","import {InjectionToken} from '@angular/core';\nimport {ALWAYS_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\n\n/**\n * Detect if app is running under Playwright\n */\nexport const TUI_IS_PLAYWRIGHT = new InjectionToken<boolean>(`[TUI_IS_PLAYWRIGHT]`, {\n factory: ALWAYS_FALSE_HANDLER,\n});\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_IS_CYPRESS} from './is-cypress';\nimport {TUI_IS_PLAYWRIGHT} from './is-playwright';\n\n/**\n * Detect if app is running under any of test frameworks\n */\nexport const TUI_IS_E2E = new InjectionToken<boolean>(`[TUI_IS_E2E]`, {\n factory: () => inject(TUI_IS_CYPRESS) || inject(TUI_IS_PLAYWRIGHT),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\n/**\n * Firefox browser engine detection\n */\nexport const TUI_IS_FIREFOX = new InjectionToken<boolean>(`[TUI_IS_FIREFOX]`, {\n factory: () =>\n typeof (inject(WINDOW) as Window & {mozCancelFullScreen: unknown})\n ?.mozCancelFullScreen !== `undefined`,\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_STACKBLITZ = new InjectionToken<boolean>(`[TUI_IS_STACKBLITZ]`, {\n factory: () => inject(WINDOW).location.host.endsWith(`stackblitz.io`),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\n/**\n * Webkit browser engine detection\n */\nexport const TUI_IS_WEBKIT = new InjectionToken<boolean>(`[TUI_IS_WEBKIT]`, {\n factory: () =>\n !!(inject(WINDOW) as unknown as {webkitConvertPointFromNodeToPage?: unknown})\n ?.webkitConvertPointFromNodeToPage,\n});\n","import {inject} from '@angular/core';\nimport {TuiPlatform} from '@taiga-ui/cdk/types';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\nimport {TUI_IS_ANDROID} from './is-android';\nimport {TUI_IS_IOS} from './is-ios';\n\n// TODO: Switch to factory in 4.0\nexport const TUI_PLATFORM = tuiCreateToken<TuiPlatform>(`web`);\n\nexport function tuiPlatformFactory(): TuiPlatform {\n if (inject(TUI_IS_IOS)) {\n return `ios`;\n }\n\n if (inject(TUI_IS_ANDROID)) {\n return `android`;\n }\n\n return `web`;\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {inject, InjectionToken, PLATFORM_ID} from '@angular/core';\n\n/**\n * SSR safe default empty Range\n */\nexport const TUI_RANGE = new InjectionToken<Range>(`[TUI_RANGE]`, {\n factory: () =>\n isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : ({} as unknown as Range),\n});\n","import {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\n/**\n * Swipe options\n */\nexport const TUI_SWIPE_OPTIONS = tuiCreateToken<TuiSwipeOptions>({\n timeout: 500,\n threshold: 30,\n});\n","import {InjectionToken} from '@angular/core';\nimport {ALWAYS_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\n\n/**\n * @description:\n * The isTrusted read-only property of the Event interface is a boolean value that is true\n * when the event was generated by a user action, and false when the event was created or\n * modified by a script or dispatched via EventTarget.dispatchEvent().\n */\nexport const TUI_TAKE_ONLY_TRUSTED_EVENTS: InjectionToken<boolean> =\n new InjectionToken<boolean>(`[TUI_TAKE_ONLY_TRUSTED_EVENTS]`, {\n factory: ALWAYS_TRUE_HANDLER,\n });\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_TOUCH_SUPPORTED = new InjectionToken(`[TUI_TOUCH_SUPPORTED]`, {\n factory: () => inject(WINDOW).matchMedia(`(any-pointer: coarse)`).matches,\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\n/**\n * Window height accounting for disappearing address bar\n */\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n `[TUI_WINDOW_HEIGHT]`,\n {\n factory: () => {\n const win = inject(WINDOW);\n\n return tuiTypedFromEvent(win, `resize`).pipe(\n startWith(null),\n map(() => Math.max(win.innerHeight, win.visualViewport?.height || 0)),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","import {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\n/**\n * Zoom options\n */\nexport const TUI_ZOOM_OPTIONS = tuiCreateToken<TuiZoomOptions>({\n wheelSensitivity: 0.01,\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["AnimationEngine"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-tokens.js","sources":["../../../projects/cdk/tokens/removed-element.ts","../../../projects/cdk/tokens/active-element.ts","../../../projects/cdk/tokens/alerts.ts","../../../projects/cdk/tokens/default-renderer.ts","../../../projects/cdk/tokens/dialogs.ts","../../../projects/cdk/tokens/ensure-base-href.ts","../../../projects/cdk/tokens/focusable-item-accessor.ts","../../../projects/cdk/tokens/is-ios.ts","../../../projects/cdk/tokens/is-mobile.ts","../../../projects/cdk/tokens/is-android.ts","../../../projects/cdk/tokens/is-apple.ts","../../../projects/cdk/tokens/is-chromium.ts","../../../projects/cdk/tokens/is-cypress.ts","../../../projects/cdk/tokens/is-playwright.ts","../../../projects/cdk/tokens/is-e2e.ts","../../../projects/cdk/tokens/is-firefox.ts","../../../projects/cdk/tokens/is-stackblitz.ts","../../../projects/cdk/tokens/is-webkit.ts","../../../projects/cdk/tokens/platform.ts","../../../projects/cdk/tokens/range.ts","../../../projects/cdk/tokens/swipe-options.ts","../../../projects/cdk/tokens/take-only-trusted-events.ts","../../../projects/cdk/tokens/touch-supported.ts","../../../projects/cdk/tokens/window-size.ts","../../../projects/cdk/tokens/window-height.ts","../../../projects/cdk/tokens/zoom-options.ts","../../../projects/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine as AnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {map, share, startWith, switchMap} from 'rxjs/operators';\n\n/**\n * Element currently being removed by AnimationEngine\n */\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n `[TUI_REMOVED_ELEMENT]`,\n {\n factory: () => {\n const stub = {onRemovalComplete: () => {}};\n const element$ = new BehaviorSubject<Element | null>(null);\n const engine = inject(AnimationEngine, InjectFlags.Optional) || stub;\n const {onRemovalComplete = stub.onRemovalComplete} = engine;\n\n engine.onRemovalComplete = (element, context) => {\n element$.next(element);\n onRemovalComplete.call(engine, element, context);\n };\n\n return element$.pipe(\n switchMap(element =>\n timer(0).pipe(\n map(() => null),\n startWith(element),\n ),\n ),\n share(),\n );\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiGetActualTarget, tuiGetDocumentOrShadowRoot} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n repeatWhen,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\n/**\n * Active element on the document for ActiveZone\n */\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n `[TUI_ACTIVE_ELEMENT]`,\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const win = inject(WINDOW);\n const doc = inject(DOCUMENT);\n const focusout$ = tuiTypedFromEvent(win, `focusout`);\n const focusin$ = tuiTypedFromEvent(win, `focusin`);\n const blur$ = tuiTypedFromEvent(win, `blur`);\n const mousedown$ = tuiTypedFromEvent(win, `mousedown`);\n const mouseup$ = tuiTypedFromEvent(win, `mouseup`);\n\n return merge(\n focusout$.pipe(\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(mousedown$),\n /**\n * TODO: replace to\n * repeat({delay: () => mouseup$})\n * in RxJS 7\n */\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(tuiGetActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => doc.activeElement),\n filter(element => !!element?.matches(`iframe`)),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = tuiGetActualTarget(event);\n const root = tuiGetDocumentOrShadowRoot(target) as Document;\n\n return root === doc\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event => {\n const actualTargetInCurrentTime = tuiGetActualTarget(event);\n\n return !doc.activeElement || doc.activeElement === doc.body\n ? of(actualTargetInCurrentTime)\n : focusout$.pipe(\n take(1),\n map(\n /**\n * Do not use `map(() => tuiGetActualTarget(event))`\n * because we have different result in runtime\n */\n () => actualTargetInCurrentTime,\n ),\n takeUntil(timer(0)),\n );\n }),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\n);\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null = null): boolean {\n return (\n // Not due to switching tabs/going to DevTools\n tuiGetDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled or under disabled fieldset\n !target.matches(`:disabled`) &&\n // Not due to element being removed from DOM\n !removedElement?.contains(target)\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n tuiTypedFromEvent(root, `focusin`).pipe(map(({target}) => target)),\n tuiTypedFromEvent(root, `focusout`).pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {Provider, Type} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\nimport {Observable} from 'rxjs';\n\n/**\n * A stream of alerts\n */\nexport const TUI_ALERTS = tuiCreateToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>([]);\n\nexport function tuiAsAlerts(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_ALERTS,\n multi: true,\n useExisting,\n };\n}\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n/**\n * A Renderer2 for global services\n * https://github.com/angular/angular/issues/17824#issuecomment-353239017\n * @deprecated unnecessary\n * TODO: remove in 4.0\n */\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n `[TUI_DEFAULT_RENDERER]`,\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {Provider, Type} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\nimport {Observable} from 'rxjs';\n\n/**\n * A stream of dialogs\n */\nexport const TUI_DIALOGS = tuiCreateToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>([]);\n\nexport function tuiAsDialog(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_DIALOGS,\n multi: true,\n useExisting,\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\n\nexport const TUI_ENSURE_BASE_HREF: InjectionToken<string> = new InjectionToken<string>(\n `[TUI_ENSURE_BASE_HREF]`,\n {\n factory: () => {\n const baseHref = inject(DOCUMENT).querySelector(`base`)?.href;\n\n if (baseHref) {\n return baseHref;\n }\n\n const link = inject(DOCUMENT).createElement(`a`);\n\n link.href = ``;\n\n return link.pathname;\n },\n },\n);\n","import {InjectionToken, Provider, Type} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\n/**\n * A component that can be focused\n */\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>(`[TUI_FOCUSABLE_ITEM_ACCESSOR]`);\n\nexport function tuiAsFocusableItemAccessor(\n useExisting: Type<TuiFocusableElementAccessor>,\n): Provider {\n return {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting,\n };\n}\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiIsIos} from '@taiga-ui/cdk/utils';\n\n/**\n * iOS browser detection\n */\nexport const TUI_IS_IOS = new InjectionToken<boolean>(`[TUI_IS_IOS]`, {\n factory: () => tuiIsIos(inject(NAVIGATOR)),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\n\n// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\nconst firstRegex =\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/;\nconst secondRegex =\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/;\n\n/**\n * Mobile browser detection\n */\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>(`[TUI_IS_MOBILE]`, {\n factory: () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\n/**\n * Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)\n */\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(`[TUI_IS_ANDROID]`, {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiIsApple} from '@taiga-ui/cdk/utils';\n\n/**\n * Apple(safari/webkit) detection\n */\nexport const TUI_IS_APPLE = new InjectionToken<boolean>(`[TUI_IS_APPLE]`, {\n factory: () => tuiIsApple(inject(NAVIGATOR)),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\n/**\n * Chromium browser engine detection\n */\nexport const TUI_IS_CHROMIUM = new InjectionToken<boolean>(`[TUI_IS_CHROMIUM]`, {\n factory: () => !!(inject(WINDOW) as Window & {chrome: unknown}).chrome,\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\ninterface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\n * Detect if app is running under Cypress\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n */\nexport const TUI_IS_CYPRESS = new InjectionToken<boolean>(`[TUI_IS_CYPRESS]`, {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n});\n","import {InjectionToken} from '@angular/core';\nimport {ALWAYS_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\n\n/**\n * Detect if app is running under Playwright\n */\nexport const TUI_IS_PLAYWRIGHT = new InjectionToken<boolean>(`[TUI_IS_PLAYWRIGHT]`, {\n factory: ALWAYS_FALSE_HANDLER,\n});\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_IS_CYPRESS} from './is-cypress';\nimport {TUI_IS_PLAYWRIGHT} from './is-playwright';\n\n/**\n * Detect if app is running under any of test frameworks\n */\nexport const TUI_IS_E2E = new InjectionToken<boolean>(`[TUI_IS_E2E]`, {\n factory: () => inject(TUI_IS_CYPRESS) || inject(TUI_IS_PLAYWRIGHT),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\n/**\n * Firefox browser engine detection\n */\nexport const TUI_IS_FIREFOX = new InjectionToken<boolean>(`[TUI_IS_FIREFOX]`, {\n factory: () =>\n typeof (inject(WINDOW) as Window & {mozCancelFullScreen: unknown})\n ?.mozCancelFullScreen !== `undefined`,\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_STACKBLITZ = new InjectionToken<boolean>(`[TUI_IS_STACKBLITZ]`, {\n factory: () => inject(WINDOW).location.host.endsWith(`stackblitz.io`),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\n/**\n * Webkit browser engine detection\n */\nexport const TUI_IS_WEBKIT = new InjectionToken<boolean>(`[TUI_IS_WEBKIT]`, {\n factory: () =>\n !!(inject(WINDOW) as unknown as {webkitConvertPointFromNodeToPage?: unknown})\n ?.webkitConvertPointFromNodeToPage,\n});\n","import {inject} from '@angular/core';\nimport {TuiPlatform} from '@taiga-ui/cdk/types';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\nimport {TUI_IS_ANDROID} from './is-android';\nimport {TUI_IS_IOS} from './is-ios';\n\n// TODO: Switch to factory in 4.0\nexport const TUI_PLATFORM = tuiCreateToken<TuiPlatform>(`web`);\n\nexport function tuiPlatformFactory(): TuiPlatform {\n if (inject(TUI_IS_IOS)) {\n return `ios`;\n }\n\n if (inject(TUI_IS_ANDROID)) {\n return `android`;\n }\n\n return `web`;\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {inject, InjectionToken, PLATFORM_ID} from '@angular/core';\n\n/**\n * SSR safe default empty Range\n */\nexport const TUI_RANGE = new InjectionToken<Range>(`[TUI_RANGE]`, {\n factory: () =>\n isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : ({} as unknown as Range),\n});\n","import {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\n/**\n * Swipe options\n */\nexport const TUI_SWIPE_OPTIONS = tuiCreateToken<TuiSwipeOptions>({\n timeout: 500,\n threshold: 30,\n});\n","import {InjectionToken} from '@angular/core';\nimport {ALWAYS_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\n\n/**\n * @description:\n * The isTrusted read-only property of the Event interface is a boolean value that is true\n * when the event was generated by a user action, and false when the event was created or\n * modified by a script or dispatched via EventTarget.dispatchEvent().\n */\nexport const TUI_TAKE_ONLY_TRUSTED_EVENTS: InjectionToken<boolean> =\n new InjectionToken<boolean>(`[TUI_TAKE_ONLY_TRUSTED_EVENTS]`, {\n factory: ALWAYS_TRUE_HANDLER,\n });\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_TOUCH_SUPPORTED = new InjectionToken(`[TUI_TOUCH_SUPPORTED]`, {\n factory: () => inject(WINDOW).matchMedia(`(any-pointer: coarse)`).matches,\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_SIZE = new InjectionToken<Observable<ClientRect>>(\n `[TUI_WINDOW_SIZE]`,\n {\n factory: () => {\n const w = inject(WINDOW);\n\n return tuiTypedFromEvent(w, `resize`).pipe(\n startWith(null),\n map(() => {\n const width = Math.max(w.innerWidth, w.visualViewport?.width || 0);\n const height = Math.max(w.innerHeight, w.visualViewport?.height || 0);\n\n return {\n width,\n height,\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n };\n }),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_WINDOW_SIZE} from './window-size';\n\n/**\n * @deprecated Use {@link TUI_WINDOW_SIZE} instead\n */\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n `[TUI_WINDOW_HEIGHT]`,\n {\n factory: () => inject(TUI_WINDOW_SIZE).pipe(map(({height}) => height)),\n },\n);\n","import {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\n/**\n * Zoom options\n */\nexport const TUI_ZOOM_OPTIONS = tuiCreateToken<TuiZoomOptions>({\n wheelSensitivity: 0.01,\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["AnimationEngine"],"mappings":"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"}
@@ -40,6 +40,9 @@ function tuiCreateToken(defaults) {
40
40
  factory: () => defaults,
41
41
  });
42
42
  }
43
+ function tuiCreateTokenFromFactory(factory) {
44
+ return new InjectionToken(``, { factory });
45
+ }
43
46
 
44
47
  function tuiDefaultSort(x, y) {
45
48
  if (x === y) {
@@ -184,5 +187,5 @@ function tuiUniqBy(array, key) {
184
187
  * Generated bundle index. Do not edit.
185
188
  */
186
189
 
187
- export { tuiArrayRemove, tuiArrayShallowEquals, tuiArrayToggle, tuiCleanObject, tuiCreateOptions, tuiCreateToken, tuiDefaultSort, tuiDistanceBetweenTouches, tuiEaseInOutQuad, tuiFlatLength, tuiGetOriginalArrayFromQueryList, tuiGetSwipeDirection, tuiIsFalsy, tuiIsNumber, tuiIsObject, tuiIsPresent, tuiIsString, tuiIsValidUrl, tuiMarkControlAsTouchedAndValidate, tuiNullableSame, tuiObjectFromEntries, tuiProvideOptions, tuiUniqBy };
190
+ export { tuiArrayRemove, tuiArrayShallowEquals, tuiArrayToggle, tuiCleanObject, tuiCreateOptions, tuiCreateToken, tuiCreateTokenFromFactory, tuiDefaultSort, tuiDistanceBetweenTouches, tuiEaseInOutQuad, tuiFlatLength, tuiGetOriginalArrayFromQueryList, tuiGetSwipeDirection, tuiIsFalsy, tuiIsNumber, tuiIsObject, tuiIsPresent, tuiIsString, tuiIsValidUrl, tuiMarkControlAsTouchedAndValidate, tuiNullableSame, tuiObjectFromEntries, tuiProvideOptions, tuiUniqBy };
188
191
  //# sourceMappingURL=taiga-ui-cdk-utils-miscellaneous.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.js","sources":["../../../projects/cdk/utils/miscellaneous/array-remove.ts","../../../projects/cdk/utils/miscellaneous/array-shallow-equals.ts","../../../projects/cdk/utils/miscellaneous/array-toggle.ts","../../../projects/cdk/utils/miscellaneous/is-string.ts","../../../projects/cdk/utils/miscellaneous/clean-object.ts","../../../projects/cdk/utils/miscellaneous/create-options.ts","../../../projects/cdk/utils/miscellaneous/create-token.ts","../../../projects/cdk/utils/miscellaneous/default-sort.ts","../../../projects/cdk/utils/miscellaneous/distance-between-touches.ts","../../../projects/cdk/utils/miscellaneous/ease-in-out-quad.ts","../../../projects/cdk/utils/miscellaneous/flat-length.ts","../../../projects/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","../../../projects/cdk/utils/miscellaneous/get-swipe-direction.ts","../../../projects/cdk/utils/miscellaneous/is-falsy.ts","../../../projects/cdk/utils/miscellaneous/is-number.ts","../../../projects/cdk/utils/miscellaneous/is-object.ts","../../../projects/cdk/utils/miscellaneous/is-present.ts","../../../projects/cdk/utils/miscellaneous/is-valid-url.ts","../../../projects/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","../../../projects/cdk/utils/miscellaneous/nullable-same.ts","../../../projects/cdk/utils/miscellaneous/object-from-entries.ts","../../../projects/cdk/utils/miscellaneous/provide-options.ts","../../../projects/cdk/utils/miscellaneous/uniq-by.ts","../../../projects/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["export function tuiArrayRemove<T>(array: readonly T[], index: number): T[] {\n return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));\n}\n","export function tuiArrayShallowEquals<T>(a: readonly T[], b: readonly T[]): boolean {\n return a.length === b.length && a.every((item, index) => item === b[index]);\n}\n","import {tuiArrayRemove} from './array-remove';\n\nexport function tuiArrayToggle<T>(array: readonly T[], item: T): T[] {\n const index = array.indexOf(item);\n\n return index === -1 ? [...array, item] : tuiArrayRemove(array, index);\n}\n","export function tuiIsString(value: unknown): value is string {\n // eslint-disable-next-line @taiga-ui/experience/no-typeof\n return typeof value === `string`;\n}\n","import {TuiDeepPartial} from '@taiga-ui/cdk/types';\n\nimport {tuiIsString} from './is-string';\n\nexport function tuiCleanObject<T>(object: T): TuiDeepPartial<T> {\n return JSON.parse(\n JSON.stringify(object, (_key: string, value: unknown) =>\n checkValueIsEmpty(value) ? undefined : value,\n ),\n );\n}\n\ntype EmptyValue = '' | null | undefined;\n\nfunction checkValueIsEmpty<T>(value: EmptyValue | T): value is EmptyValue {\n const nextValue: any = tuiIsString(value) ? value.trim() : value;\n\n return [undefined, null, NaN, ``].includes(nextValue);\n}\n","import {InjectionToken} from '@angular/core';\n\n/** @deprecated use {@link tuiCreateToken} instead */\nexport function tuiCreateOptions<T>(defaults: T): InjectionToken<T> {\n return new InjectionToken<T>(``, {\n factory: () => defaults,\n });\n}\n","import {InjectionToken} from '@angular/core';\n\nexport function tuiCreateToken<T>(defaults: T): InjectionToken<T> {\n return new InjectionToken<T>(``, {\n factory: () => defaults,\n });\n}\n","import {tuiIsString} from './is-string';\n\nexport function tuiDefaultSort<T>(x: T, y: T): number {\n if (x === y) {\n return 0;\n }\n\n if (tuiIsString(x) && tuiIsString(y)) {\n return x.localeCompare(y);\n }\n\n return x > y ? 1 : -1;\n}\n","export function tuiDistanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function tuiEaseInOutQuad(t: number): number {\n ngDevMode &&\n tuiAssert.assert(\n t >= 0 && t <= 1,\n `Input must be between 0 and 1 inclusive but received `,\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","/**\n * Flattens two-dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function tuiFlatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function tuiGetOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function tuiGetSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? `top` : `bottom`;\n }\n\n return deltaX > 0 ? `left` : `right`;\n}\n","export function tuiIsFalsy(value: unknown): boolean {\n return !value;\n}\n","export function tuiIsNumber(value: unknown): value is number {\n // eslint-disable-next-line @taiga-ui/experience/no-typeof\n return typeof value === `number`;\n}\n","export function tuiIsObject<T extends Record<string, any>>(\n value: unknown,\n): value is NonNullable<T> {\n // eslint-disable-next-line @taiga-ui/experience/no-typeof\n return typeof value === `object` && !!value;\n}\n","export function tuiIsPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","export function tuiIsValidUrl(url: string): boolean {\n const pattern = new RegExp(\n `^([a-zA-Z]+:\\\\/\\\\/)?` + // protocol\n `((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|localhost|` + // domain name\n `((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))` + // OR IP (v4) address\n `(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*` + // port and path\n `(\\\\?[;&a-z\\\\d%_.~+=-]*)?` + // query string\n `(\\\\#[-a-z\\\\d_]*)?$`, // fragment locator\n `i`,\n );\n\n return pattern.test(url);\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function tuiMarkControlAsTouchedAndValidate(control: AbstractControl): void {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function tuiNullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","/**\n * @deprecated use `Object.fromEntries` instead\n * (check browser support first https://caniuse.com/mdn-javascript_builtins_object_fromentries)\n * ___\n * TODO: after we bump Firefox to 63+ replace this function with `Object.fromEntries`.\n * TODO: Add `es2019.object` to `tsconfig.json` => `compilerOptions.lib`.\n *\n */\nexport function tuiObjectFromEntries<K extends number | string, V>(\n keyValuePairs: Array<[K, V]>,\n): Record<K, V> {\n return keyValuePairs.reduce(\n (obj, [key, val]) => ({...obj, [key]: val}),\n {} as Record<K, V>,\n );\n}\n","import {FactoryProvider, InjectionToken, Optional, SkipSelf} from '@angular/core';\n\nexport function tuiProvideOptions<T>(\n provide: InjectionToken<T>,\n options: Partial<T>,\n fallback: T,\n): FactoryProvider {\n return {\n provide,\n deps: [[new Optional(), new SkipSelf(), provide]],\n useFactory: (parent: T | null): T => ({\n ...(parent || fallback),\n ...options,\n }),\n };\n}\n","import {TuiValuesOf} from '@taiga-ui/cdk/types';\n\nexport function tuiUniqBy<T extends Record<string, any>>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<TuiValuesOf<T>, T>(),\n )\n .values(),\n );\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-cdk-utils-miscellaneous.js","sources":["../../../projects/cdk/utils/miscellaneous/array-remove.ts","../../../projects/cdk/utils/miscellaneous/array-shallow-equals.ts","../../../projects/cdk/utils/miscellaneous/array-toggle.ts","../../../projects/cdk/utils/miscellaneous/is-string.ts","../../../projects/cdk/utils/miscellaneous/clean-object.ts","../../../projects/cdk/utils/miscellaneous/create-options.ts","../../../projects/cdk/utils/miscellaneous/create-token.ts","../../../projects/cdk/utils/miscellaneous/default-sort.ts","../../../projects/cdk/utils/miscellaneous/distance-between-touches.ts","../../../projects/cdk/utils/miscellaneous/ease-in-out-quad.ts","../../../projects/cdk/utils/miscellaneous/flat-length.ts","../../../projects/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","../../../projects/cdk/utils/miscellaneous/get-swipe-direction.ts","../../../projects/cdk/utils/miscellaneous/is-falsy.ts","../../../projects/cdk/utils/miscellaneous/is-number.ts","../../../projects/cdk/utils/miscellaneous/is-object.ts","../../../projects/cdk/utils/miscellaneous/is-present.ts","../../../projects/cdk/utils/miscellaneous/is-valid-url.ts","../../../projects/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","../../../projects/cdk/utils/miscellaneous/nullable-same.ts","../../../projects/cdk/utils/miscellaneous/object-from-entries.ts","../../../projects/cdk/utils/miscellaneous/provide-options.ts","../../../projects/cdk/utils/miscellaneous/uniq-by.ts","../../../projects/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["export function tuiArrayRemove<T>(array: readonly T[], index: number): T[] {\n return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));\n}\n","export function tuiArrayShallowEquals<T>(a: readonly T[], b: readonly T[]): boolean {\n return a.length === b.length && a.every((item, index) => item === b[index]);\n}\n","import {tuiArrayRemove} from './array-remove';\n\nexport function tuiArrayToggle<T>(array: readonly T[], item: T): T[] {\n const index = array.indexOf(item);\n\n return index === -1 ? [...array, item] : tuiArrayRemove(array, index);\n}\n","export function tuiIsString(value: unknown): value is string {\n // eslint-disable-next-line @taiga-ui/experience/no-typeof\n return typeof value === `string`;\n}\n","import {TuiDeepPartial} from '@taiga-ui/cdk/types';\n\nimport {tuiIsString} from './is-string';\n\nexport function tuiCleanObject<T>(object: T): TuiDeepPartial<T> {\n return JSON.parse(\n JSON.stringify(object, (_key: string, value: unknown) =>\n checkValueIsEmpty(value) ? undefined : value,\n ),\n );\n}\n\ntype EmptyValue = '' | null | undefined;\n\nfunction checkValueIsEmpty<T>(value: EmptyValue | T): value is EmptyValue {\n const nextValue: any = tuiIsString(value) ? value.trim() : value;\n\n return [undefined, null, NaN, ``].includes(nextValue);\n}\n","import {InjectionToken} from '@angular/core';\n\n/** @deprecated use {@link tuiCreateToken} instead */\nexport function tuiCreateOptions<T>(defaults: T): InjectionToken<T> {\n return new InjectionToken<T>(``, {\n factory: () => defaults,\n });\n}\n","import {InjectionToken} from '@angular/core';\n\nexport function tuiCreateToken<T>(defaults: T): InjectionToken<T> {\n return new InjectionToken<T>(``, {\n factory: () => defaults,\n });\n}\n\nexport function tuiCreateTokenFromFactory<T>(factory: () => T): InjectionToken<T> {\n return new InjectionToken<T>(``, {factory});\n}\n","import {tuiIsString} from './is-string';\n\nexport function tuiDefaultSort<T>(x: T, y: T): number {\n if (x === y) {\n return 0;\n }\n\n if (tuiIsString(x) && tuiIsString(y)) {\n return x.localeCompare(y);\n }\n\n return x > y ? 1 : -1;\n}\n","export function tuiDistanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function tuiEaseInOutQuad(t: number): number {\n ngDevMode &&\n tuiAssert.assert(\n t >= 0 && t <= 1,\n `Input must be between 0 and 1 inclusive but received `,\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","/**\n * Flattens two-dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function tuiFlatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function tuiGetOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function tuiGetSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? `top` : `bottom`;\n }\n\n return deltaX > 0 ? `left` : `right`;\n}\n","export function tuiIsFalsy(value: unknown): boolean {\n return !value;\n}\n","export function tuiIsNumber(value: unknown): value is number {\n // eslint-disable-next-line @taiga-ui/experience/no-typeof\n return typeof value === `number`;\n}\n","export function tuiIsObject<T extends Record<string, any>>(\n value: unknown,\n): value is NonNullable<T> {\n // eslint-disable-next-line @taiga-ui/experience/no-typeof\n return typeof value === `object` && !!value;\n}\n","export function tuiIsPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","export function tuiIsValidUrl(url: string): boolean {\n const pattern = new RegExp(\n `^([a-zA-Z]+:\\\\/\\\\/)?` + // protocol\n `((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|localhost|` + // domain name\n `((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))` + // OR IP (v4) address\n `(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*` + // port and path\n `(\\\\?[;&a-z\\\\d%_.~+=-]*)?` + // query string\n `(\\\\#[-a-z\\\\d_]*)?$`, // fragment locator\n `i`,\n );\n\n return pattern.test(url);\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function tuiMarkControlAsTouchedAndValidate(control: AbstractControl): void {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function tuiNullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","/**\n * @deprecated use `Object.fromEntries` instead\n * (check browser support first https://caniuse.com/mdn-javascript_builtins_object_fromentries)\n * ___\n * TODO: after we bump Firefox to 63+ replace this function with `Object.fromEntries`.\n * TODO: Add `es2019.object` to `tsconfig.json` => `compilerOptions.lib`.\n *\n */\nexport function tuiObjectFromEntries<K extends number | string, V>(\n keyValuePairs: Array<[K, V]>,\n): Record<K, V> {\n return keyValuePairs.reduce(\n (obj, [key, val]) => ({...obj, [key]: val}),\n {} as Record<K, V>,\n );\n}\n","import {FactoryProvider, InjectionToken, Optional, SkipSelf} from '@angular/core';\n\nexport function tuiProvideOptions<T>(\n provide: InjectionToken<T>,\n options: Partial<T>,\n fallback: T,\n): FactoryProvider {\n return {\n provide,\n deps: [[new Optional(), new SkipSelf(), provide]],\n useFactory: (parent: T | null): T => ({\n ...(parent || fallback),\n ...options,\n }),\n };\n}\n","import {TuiValuesOf} from '@taiga-ui/cdk/types';\n\nexport function tuiUniqBy<T extends Record<string, any>>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<TuiValuesOf<T>, T>(),\n )\n .values(),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -43,11 +43,16 @@ function extractLinearGradientIdsFromSvg(svg) {
43
43
  return Array.from(new Set(ids));
44
44
  }
45
45
  function setFallbackForGradientFill(svg, fallback) {
46
- const tree = new DOMParser().parseFromString(svg, `text/html`);
47
- tree.body
48
- .querySelectorAll(`[fill^=url]`) // only gradient
49
- .forEach(element => element.setAttribute(`fill`, `${element.getAttribute(`fill`)} ${fallback}`.trim()));
50
- return tree.body.innerHTML.trim();
46
+ try {
47
+ const tree = new DOMParser().parseFromString(svg, `text/html`);
48
+ tree.body
49
+ .querySelectorAll(`[fill^=url]`) // only gradient
50
+ .forEach(element => element.setAttribute(`fill`, `${element.getAttribute(`fill`)} ${fallback}`.trim()));
51
+ return tree.body.innerHTML.trim();
52
+ }
53
+ catch (_a) {
54
+ return svg;
55
+ }
51
56
  }
52
57
 
53
58
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-svg.js","sources":["../../../projects/cdk/utils/svg/svg-linear-gradient-processor.ts","../../../projects/cdk/utils/svg/taiga-ui-cdk-utils-svg.ts"],"sourcesContent":["import {TuiSafeHtml} from '@taiga-ui/cdk/interfaces';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * @description:\n * Any ‘linearGradient’ attributes which are defined on the referenced\n * element which are not defined on this element are inherited by this element.\n * If this element has no defined gradient stops, and the referenced element does\n * (possibly due to its own ‘xlink:href’ attribute), then this element inherits\n * the gradient stop from the referenced element. Inheritance can be indirect\n * to an arbitrary level; thus, if the referenced element inherits attribute\n * or gradient stops due to its own ‘xlink:href’ attribute, then the current\n * element can inherit those attributes or gradient stops.\n *\n * Documentation: https://www.w3.org/TR/SVG11/pservers.html\n *\n */\nexport function tuiSvgLinearGradientProcessor(\n svg: TuiSafeHtml,\n salt: number | string = makeRandomSalt(),\n fallback: string = `rgba(0, 0, 0, 0.7)`,\n): TuiSafeHtml {\n if (tuiIsString(svg)) {\n const uniqueIds = extractLinearGradientIdsFromSvg(svg);\n const rawSvg = uniqueIds.reduce((newSvg, previousId) => {\n const escapedId = escapeRegExp(previousId);\n const newId = `id_${salt}_${previousId}`;\n\n return newSvg\n .replace(new RegExp(`\"${escapedId}\"`, `g`), `\"${newId}\"`)\n .replace(new RegExp(`'${escapedId}'`, `g`), `'${newId}'`)\n .replace(new RegExp(`url\\\\('#${escapedId}'\\\\)`, `g`), `url('#${newId}')`)\n .replace(new RegExp(`url\\\\(\"#${escapedId}\"\\\\)`, `g`), `url(\"#${newId}\")`)\n .replace(new RegExp(`url\\\\(#${escapedId}\\\\)`, `g`), `url(#${newId})`);\n }, svg);\n\n return setFallbackForGradientFill(rawSvg, fallback);\n }\n\n return svg;\n}\n\nfunction makeRandomSalt(): number {\n return Math.floor(Math.random() * Date.now());\n}\n\nfunction escapeRegExp(search: string): string {\n return search.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, `\\\\$&`);\n}\n\nfunction extractLinearGradientIdsFromSvg(svg: string): string[] {\n const ids = (svg.match(/url\\((\"?)('*)#(.*?)('*)\\)/g) ?? []).map(url =>\n url.slice(4, url.length - 1).replace(/['\"#]+/g, ``),\n );\n\n return Array.from(new Set(ids));\n}\n\nfunction setFallbackForGradientFill(svg: string, fallback: string): string {\n const tree = new DOMParser().parseFromString(svg, `text/html`);\n\n tree.body\n .querySelectorAll(`[fill^=url]`) // only gradient\n .forEach(element =>\n element.setAttribute(\n `fill`,\n `${element.getAttribute(`fill`)} ${fallback}`.trim(),\n ),\n );\n\n return tree.body.innerHTML.trim();\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-cdk-utils-svg.js","sources":["../../../projects/cdk/utils/svg/svg-linear-gradient-processor.ts","../../../projects/cdk/utils/svg/taiga-ui-cdk-utils-svg.ts"],"sourcesContent":["import {TuiSafeHtml} from '@taiga-ui/cdk/interfaces';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * @description:\n * Any ‘linearGradient’ attributes which are defined on the referenced\n * element which are not defined on this element are inherited by this element.\n * If this element has no defined gradient stops, and the referenced element does\n * (possibly due to its own ‘xlink:href’ attribute), then this element inherits\n * the gradient stop from the referenced element. Inheritance can be indirect\n * to an arbitrary level; thus, if the referenced element inherits attribute\n * or gradient stops due to its own ‘xlink:href’ attribute, then the current\n * element can inherit those attributes or gradient stops.\n *\n * Documentation: https://www.w3.org/TR/SVG11/pservers.html\n *\n */\nexport function tuiSvgLinearGradientProcessor(\n svg: TuiSafeHtml,\n salt: number | string = makeRandomSalt(),\n fallback: string = `rgba(0, 0, 0, 0.7)`,\n): TuiSafeHtml {\n if (tuiIsString(svg)) {\n const uniqueIds = extractLinearGradientIdsFromSvg(svg);\n const rawSvg = uniqueIds.reduce((newSvg, previousId) => {\n const escapedId = escapeRegExp(previousId);\n const newId = `id_${salt}_${previousId}`;\n\n return newSvg\n .replace(new RegExp(`\"${escapedId}\"`, `g`), `\"${newId}\"`)\n .replace(new RegExp(`'${escapedId}'`, `g`), `'${newId}'`)\n .replace(new RegExp(`url\\\\('#${escapedId}'\\\\)`, `g`), `url('#${newId}')`)\n .replace(new RegExp(`url\\\\(\"#${escapedId}\"\\\\)`, `g`), `url(\"#${newId}\")`)\n .replace(new RegExp(`url\\\\(#${escapedId}\\\\)`, `g`), `url(#${newId})`);\n }, svg);\n\n return setFallbackForGradientFill(rawSvg, fallback);\n }\n\n return svg;\n}\n\nfunction makeRandomSalt(): number {\n return Math.floor(Math.random() * Date.now());\n}\n\nfunction escapeRegExp(search: string): string {\n return search.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, `\\\\$&`);\n}\n\nfunction extractLinearGradientIdsFromSvg(svg: string): string[] {\n const ids = (svg.match(/url\\((\"?)('*)#(.*?)('*)\\)/g) ?? []).map(url =>\n url.slice(4, url.length - 1).replace(/['\"#]+/g, ``),\n );\n\n return Array.from(new Set(ids));\n}\n\nfunction setFallbackForGradientFill(svg: string, fallback: string): string {\n try {\n const tree = new DOMParser().parseFromString(svg, `text/html`);\n\n tree.body\n .querySelectorAll(`[fill^=url]`) // only gradient\n .forEach(element =>\n element.setAttribute(\n `fill`,\n `${element.getAttribute(`fill`)} ${fallback}`.trim(),\n ),\n );\n\n return tree.body.innerHTML.trim();\n } catch {\n return svg;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/cdk",
3
- "version": "3.43.0",
3
+ "version": "3.44.0-canary.b3de48e",
4
4
  "description": "Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance",
5
5
  "keywords": [
6
6
  "angular",
@@ -86,7 +86,11 @@ function addRootTuiProvidersToBootstrapFn(bootstrapOptions) {
86
86
  .getElements()
87
87
  .find(el => ng_morph_1.Node.isCallExpression(el) &&
88
88
  el.getExpression().getText() === `importProvidersFrom`);
89
- const modules = [modules_1.MAIN_MODULE, modules_1.BROWSER_ANIMATION_MODULE];
89
+ const providerAnimation = initializer
90
+ .getElements()
91
+ .find(el => ng_morph_1.Node.isCallExpression(el) &&
92
+ el.getExpression().getText() === `provideAnimations`);
93
+ const modules = [modules_1.MAIN_MODULE];
90
94
  if (ng_morph_1.Node.isCallExpression(providerFrom)) {
91
95
  const existing = providerFrom.getArguments();
92
96
  const moduleNames = modules
@@ -95,7 +99,16 @@ function addRootTuiProvidersToBootstrapFn(bootstrapOptions) {
95
99
  providerFrom.addArguments(moduleNames);
96
100
  }
97
101
  else {
98
- push_to_array_property_1.pushToObjectArrayProperty(bootstrapOptions, `providers`, `importProvidersFrom(TuiRootModule, BrowserAnimationsModule)`);
102
+ push_to_array_property_1.pushToObjectArrayProperty(bootstrapOptions, `providers`, `importProvidersFrom(TuiRootModule)`);
103
+ }
104
+ if (!providerAnimation) {
105
+ modules.push({
106
+ name: `providerAnimation`,
107
+ packageName: `@angular/platform-browser/animations`,
108
+ });
109
+ push_to_array_property_1.pushToObjectArrayProperty(bootstrapOptions, `providers`, `providerAnimation()`, {
110
+ index: 0,
111
+ });
99
112
  }
100
113
  [...modules, { name: `importProvidersFrom`, packageName: `@angular/core` }].forEach(({ name, packageName }) => {
101
114
  add_unique_import_1.addUniqueImport(bootstrapOptions.getSourceFile().getFilePath(), name, packageName);
@@ -1,4 +1,4 @@
1
1
  export declare function replaceText(replaceable: Array<{
2
- from: string;
2
+ from: RegExp | string;
3
3
  to: string;
4
4
  }>, pattern?: import("ng-morph").Pattern): void;
@@ -738,6 +738,10 @@ exports.ICONS = [
738
738
  to: `tuiIconTdsEyeSmallPragmatic`,
739
739
  from: `tuiIconShow`,
740
740
  },
741
+ {
742
+ to: `tuiIconTdsEyeMediumPragmatic`,
743
+ from: `tuiIconShowLarge`,
744
+ },
741
745
  {
742
746
  to: `tuiIconTdsEyeSmallPragmatic`,
743
747
  from: `tuiIconEye`,
@@ -754,6 +758,10 @@ exports.ICONS = [
754
758
  to: `tuiIconTdsEyeOffSmallPragmatic`,
755
759
  from: `tuiIconHide`,
756
760
  },
761
+ {
762
+ to: `tuiIconTdsEyeOffMediumPragmatic`,
763
+ from: `tuiIconHideLarge`,
764
+ },
757
765
  {
758
766
  to: `tuiIconTdsEyeOffSmallPragmatic`,
759
767
  from: `tuiIconEyeOff`,
@@ -1686,6 +1694,10 @@ exports.ICONS = [
1686
1694
  to: `tuiIconTdsArrowsLeftRightSmallPragmatic`,
1687
1695
  from: `tuiIconRefresh`,
1688
1696
  },
1697
+ {
1698
+ to: `tuiIconTdsArrowsLeftRightMediumPragmatic`,
1699
+ from: `tuiIconRefreshLarge`,
1700
+ },
1689
1701
  {
1690
1702
  to: `tuiIconTdsArrowsLeftRightSmallPragmatic`,
1691
1703
  from: `tuiIconRefreshCw`,
@@ -20,7 +20,7 @@ function updateToV3_35(options) {
20
20
  replace_imports_1.replaceImports(constants_1.ICONS_TS, options);
21
21
  !options[`skip-logs`] &&
22
22
  colored_log_1.infoLog(`${colored_log_1.SMALL_TAB_SYMBOL}${colored_log_1.REPLACE_SYMBOL} replacing strings...`);
23
- replace_text_1.replaceText(icons_1.ICONS);
23
+ replace_text_1.replaceText(icons_1.ICONS.map(({ from, to }) => ({ from: new RegExp(`\\b${from}\\b`, `g`), to })));
24
24
  fileSystem.commitEdits();
25
25
  ng_morph_1.saveActiveProject();
26
26
  !options[`skip-logs`] &&
@@ -1,5 +1,6 @@
1
1
  import { ObjectLiteralExpression } from 'ng-morph';
2
- export declare function pushToObjectArrayProperty(objectExpression: ObjectLiteralExpression, propertyName: string, initializer: string, { unique, forceToArray, }?: {
2
+ export declare function pushToObjectArrayProperty(objectExpression: ObjectLiteralExpression, propertyName: string, initializer: string, { unique, forceToArray, index, }?: {
3
3
  forceToArray?: boolean;
4
+ index?: number | null;
4
5
  unique?: boolean;
5
6
  }): void;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pushToObjectArrayProperty = void 0;
4
4
  const ng_morph_1 = require("ng-morph");
5
- function pushToObjectArrayProperty(objectExpression, propertyName, initializer, { unique = false, forceToArray = false, } = {}) {
5
+ function pushToObjectArrayProperty(objectExpression, propertyName, initializer, { unique = false, forceToArray = false, index = null, } = {}) {
6
6
  var _a, _b;
7
7
  const property = (_a = objectExpression.getProperty(propertyName)) !== null && _a !== void 0 ? _a : objectExpression.addProperty(`${propertyName}: []`);
8
8
  if (!ng_morph_1.Node.isPropertyAssignment(property)) {
@@ -21,6 +21,12 @@ function pushToObjectArrayProperty(objectExpression, propertyName, initializer,
21
21
  .some(element => element.getText() === initializer)) {
22
22
  return;
23
23
  }
24
- importsInitializer.addElement(initializer);
24
+ // eslint-disable-next-line @taiga-ui/experience/no-typeof
25
+ if (typeof index === `number`) {
26
+ importsInitializer.insertElement(index, initializer);
27
+ }
28
+ else {
29
+ importsInitializer.addElement(initializer);
30
+ }
25
31
  }
26
32
  exports.pushToObjectArrayProperty = pushToObjectArrayProperty;
package/tokens/index.d.ts CHANGED
@@ -22,4 +22,5 @@ export * from './swipe-options';
22
22
  export * from './take-only-trusted-events';
23
23
  export * from './touch-supported';
24
24
  export * from './window-height';
25
+ export * from './window-size';
25
26
  export * from './zoom-options';
@@ -1,6 +1,6 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
3
  /**
4
- * Window height accounting for disappearing address bar
4
+ * @deprecated Use {@link TUI_WINDOW_SIZE} instead
5
5
  */
6
6
  export declare const TUI_WINDOW_HEIGHT: InjectionToken<Observable<number>>;
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ export declare const TUI_WINDOW_SIZE: InjectionToken<Observable<ClientRect>>;
@@ -1,2 +1,3 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export declare function tuiCreateToken<T>(defaults: T): InjectionToken<T>;
3
+ export declare function tuiCreateTokenFromFactory<T>(factory: () => T): InjectionToken<T>;