@taiga-ui/cdk 2.49.2 → 2.50.2

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 (50) hide show
  1. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +3 -2
  2. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +1 -1
  4. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-services.umd.js +3 -1
  6. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  8. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  10. package/directives/auto-focus/autofocus.options.d.ts +1 -1
  11. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
  12. package/esm2015/directives/auto-focus/autofocus.options.js +5 -4
  13. package/esm2015/services/directive-styles.service.js +4 -2
  14. package/esm2015/tokens/is-cypress.js +1 -1
  15. package/esm5/directives/auto-focus/autofocus.options.js +5 -4
  16. package/esm5/services/directive-styles.service.js +4 -2
  17. package/esm5/tokens/is-cypress.js +1 -1
  18. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +4 -3
  19. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  20. package/fesm2015/taiga-ui-cdk-services.js +3 -1
  21. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  22. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  23. package/fesm5/taiga-ui-cdk-directives-auto-focus.js +4 -3
  24. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  25. package/fesm5/taiga-ui-cdk-services.js +3 -1
  26. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  27. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  28. package/package.json +1 -1
  29. package/schematics/ng-add/steps/add-taiga-icons.d.ts +1 -2
  30. package/schematics/ng-add/steps/add-taiga-icons.js +9 -15
  31. package/schematics/ng-add/steps/add-taiga-styles.d.ts +1 -2
  32. package/schematics/ng-add/steps/add-taiga-styles.js +12 -16
  33. package/schematics/ng-update/constants/consts.js +21 -0
  34. package/schematics/ng-update/constants/functions.d.ts +0 -0
  35. package/schematics/ng-update/constants/functions.js +1 -0
  36. package/schematics/ng-update/constants/templates.js +41 -1
  37. package/schematics/ng-update/constants/types.js +45 -0
  38. package/schematics/ng-update/constants/warnings.js +10 -0
  39. package/schematics/ng-update/index.js +4 -0
  40. package/schematics/ng-update/steps/migrate-sliders/index.js +2 -0
  41. package/schematics/ng-update/steps/migrate-sliders/migrate-input-range.d.ts +2 -0
  42. package/schematics/ng-update/steps/migrate-sliders/migrate-input-range.js +80 -0
  43. package/schematics/ng-update/steps/migrate-templates.js +88 -29
  44. package/schematics/ng-update/steps/miscellaneous.d.ts +1 -0
  45. package/schematics/ng-update/steps/miscellaneous.js +65 -0
  46. package/schematics/ng-update/steps/replace-functions.d.ts +1 -0
  47. package/schematics/ng-update/steps/replace-functions.js +61 -0
  48. package/schematics/utils/get-project.js +2 -1
  49. package/services/directive-styles.service.d.ts +3 -1
  50. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-tokens.js","sources":["ng://@taiga-ui/cdk/tokens/removed-element.ts","ng://@taiga-ui/cdk/tokens/active-element.ts","ng://@taiga-ui/cdk/tokens/alerts.ts","ng://@taiga-ui/cdk/tokens/default-renderer.ts","ng://@taiga-ui/cdk/tokens/dialogs.ts","ng://@taiga-ui/cdk/tokens/focusable-item-accessor.ts","ng://@taiga-ui/cdk/tokens/is-ios.ts","ng://@taiga-ui/cdk/tokens/is-mobile.ts","ng://@taiga-ui/cdk/tokens/is-android.ts","ng://@taiga-ui/cdk/tokens/is-apple.ts","ng://@taiga-ui/cdk/tokens/is-chromium.ts","ng://@taiga-ui/cdk/tokens/is-cypress.ts","ng://@taiga-ui/cdk/tokens/is-firefox.ts","ng://@taiga-ui/cdk/tokens/is-webkit.ts","ng://@taiga-ui/cdk/tokens/sanitizer.ts","ng://@taiga-ui/cdk/tokens/swipe-options.ts","ng://@taiga-ui/cdk/tokens/take-only-trusted-events.ts","ng://@taiga-ui/cdk/tokens/touch-supported.ts","ng://@taiga-ui/cdk/tokens/window-height.ts","ng://@taiga-ui/cdk/tokens/zoom-options.ts","ng://@taiga-ui/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {mapTo, share, startWith, switchMap} from 'rxjs/operators';\n\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n 'Element currently being removed by AnimationEngine',\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(element, context);\n };\n\n return element$.pipe(\n switchMap(element => timer(0).pipe(mapTo(null), startWith(element))),\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 {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget, getDocumentOrShadowRoot} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\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\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n 'Active element on the document for ActiveZone',\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const windowRef = inject(WINDOW);\n const documentRef = inject(DOCUMENT);\n const focusout$ = typedFromEvent(windowRef, 'focusout');\n const focusin$ = typedFromEvent(windowRef, 'focusin');\n const blur$ = typedFromEvent(windowRef, 'blur');\n const mousedown$ = typedFromEvent(windowRef, 'mousedown');\n const mouseup$ = typedFromEvent(windowRef, 'mouseup');\n\n return merge(\n focusout$.pipe(\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(mousedown$),\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(getActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => documentRef.activeElement),\n filter(element => !!element && element.matches('iframe')),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = getActualTarget(event);\n const root = getDocumentOrShadowRoot(target) as Document;\n\n return root === documentRef\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event =>\n !documentRef.activeElement ||\n documentRef.activeElement === documentRef.body\n ? of(getActualTarget(event))\n : focusout$.pipe(\n take(1),\n mapTo(getActualTarget(event)),\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 getDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled\n !target.disabled &&\n // Not due to element being removed from DOM\n (!removedElement || !removedElement.contains(target))\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n typedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n typedFromEvent(root, 'focusout').pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_ALERTS = new InjectionToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>('A stream of alerts', {\n factory: () => [],\n});\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n// https://github.com/angular/angular/issues/17824#issuecomment-353239017\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n 'A Renderer2 for global services',\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_DIALOGS = new InjectionToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>('A stream of dialogs', {\n factory: () => [],\n});\n","import {InjectionToken} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>('A component that can be focused');\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {isIos} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_IOS = new InjectionToken<boolean>('iOS browser detection', {\n factory: () => isIos(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\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>('Mobile browser detection', {\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\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(\n 'Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)',\n {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {isApple} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_APPLE = new InjectionToken<boolean>(\n 'Apple(safari/webkit) detection',\n {factory: () => isApple(inject(NAVIGATOR))},\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_CHROMIUM = new InjectionToken<boolean>(\n 'Chromium browser engine detection',\n {\n factory: () => !!(inject(WINDOW) as Window & {chrome: unknown}).chrome,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport interface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\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>(\n 'Detect if app is running under Cypress',\n {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_FIREFOX = new InjectionToken<boolean>(\n 'Firefox browser engine detection',\n {\n factory: () =>\n typeof (inject(WINDOW) as Window & {InstallTrigger: unknown})\n ?.InstallTrigger !== 'undefined',\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_WEBKIT = new InjectionToken<boolean>(\n 'Webkit browser engine detection',\n {\n factory: () => !!inject(WINDOW).webkitConvertPointFromNodeToPage,\n },\n);\n","import {InjectionToken, Sanitizer} from '@angular/core';\n\n/* @deprecated export token from @taiga-ui/core package **/\nexport const TUI_SANITIZER = new InjectionToken<Sanitizer>(\n 'A custom Sanitizer to sanitize source before inlining',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_SWIPE_OPTIONS = new InjectionToken<TuiSwipeOptions>('Swipe options', {\n factory: () => ({timeout: 500, threshold: 30}),\n});\n","import {InjectionToken} from '@angular/core';\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>(\n 'This token need for override behavior the `pressedObservable` function',\n {\n factory: () => true,\n },\n );\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_TOUCH_SUPPORTED = new InjectionToken('Touch support detection', {\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 {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n 'Window height accounting for disappearing address bar',\n {\n factory: () => {\n const windowRef = inject(WINDOW);\n\n return typedFromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerHeight),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_ZOOM_OPTIONS = new InjectionToken<TuiZoomOptions>('Zoom options', {\n factory: () => ({\n wheelSensitivity: 0.01,\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-tokens.js","sources":["ng://@taiga-ui/cdk/tokens/removed-element.ts","ng://@taiga-ui/cdk/tokens/active-element.ts","ng://@taiga-ui/cdk/tokens/alerts.ts","ng://@taiga-ui/cdk/tokens/default-renderer.ts","ng://@taiga-ui/cdk/tokens/dialogs.ts","ng://@taiga-ui/cdk/tokens/focusable-item-accessor.ts","ng://@taiga-ui/cdk/tokens/is-ios.ts","ng://@taiga-ui/cdk/tokens/is-mobile.ts","ng://@taiga-ui/cdk/tokens/is-android.ts","ng://@taiga-ui/cdk/tokens/is-apple.ts","ng://@taiga-ui/cdk/tokens/is-chromium.ts","ng://@taiga-ui/cdk/tokens/is-cypress.ts","ng://@taiga-ui/cdk/tokens/is-firefox.ts","ng://@taiga-ui/cdk/tokens/is-webkit.ts","ng://@taiga-ui/cdk/tokens/sanitizer.ts","ng://@taiga-ui/cdk/tokens/swipe-options.ts","ng://@taiga-ui/cdk/tokens/take-only-trusted-events.ts","ng://@taiga-ui/cdk/tokens/touch-supported.ts","ng://@taiga-ui/cdk/tokens/window-height.ts","ng://@taiga-ui/cdk/tokens/zoom-options.ts","ng://@taiga-ui/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {mapTo, share, startWith, switchMap} from 'rxjs/operators';\n\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n 'Element currently being removed by AnimationEngine',\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(element, context);\n };\n\n return element$.pipe(\n switchMap(element => timer(0).pipe(mapTo(null), startWith(element))),\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 {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget, getDocumentOrShadowRoot} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\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\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n 'Active element on the document for ActiveZone',\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const windowRef = inject(WINDOW);\n const documentRef = inject(DOCUMENT);\n const focusout$ = typedFromEvent(windowRef, 'focusout');\n const focusin$ = typedFromEvent(windowRef, 'focusin');\n const blur$ = typedFromEvent(windowRef, 'blur');\n const mousedown$ = typedFromEvent(windowRef, 'mousedown');\n const mouseup$ = typedFromEvent(windowRef, 'mouseup');\n\n return merge(\n focusout$.pipe(\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(mousedown$),\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(getActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => documentRef.activeElement),\n filter(element => !!element && element.matches('iframe')),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = getActualTarget(event);\n const root = getDocumentOrShadowRoot(target) as Document;\n\n return root === documentRef\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event =>\n !documentRef.activeElement ||\n documentRef.activeElement === documentRef.body\n ? of(getActualTarget(event))\n : focusout$.pipe(\n take(1),\n mapTo(getActualTarget(event)),\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 getDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled\n !target.disabled &&\n // Not due to element being removed from DOM\n (!removedElement || !removedElement.contains(target))\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n typedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n typedFromEvent(root, 'focusout').pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_ALERTS = new InjectionToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>('A stream of alerts', {\n factory: () => [],\n});\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n// https://github.com/angular/angular/issues/17824#issuecomment-353239017\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n 'A Renderer2 for global services',\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_DIALOGS = new InjectionToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>('A stream of dialogs', {\n factory: () => [],\n});\n","import {InjectionToken} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>('A component that can be focused');\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {isIos} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_IOS = new InjectionToken<boolean>('iOS browser detection', {\n factory: () => isIos(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\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>('Mobile browser detection', {\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\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(\n 'Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)',\n {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {isApple} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_APPLE = new InjectionToken<boolean>(\n 'Apple(safari/webkit) detection',\n {factory: () => isApple(inject(NAVIGATOR))},\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_CHROMIUM = new InjectionToken<boolean>(\n 'Chromium browser engine detection',\n {\n factory: () => !!(inject(WINDOW) as Window & {chrome: unknown}).chrome,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\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>(\n 'Detect if app is running under Cypress',\n {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_FIREFOX = new InjectionToken<boolean>(\n 'Firefox browser engine detection',\n {\n factory: () =>\n typeof (inject(WINDOW) as Window & {InstallTrigger: unknown})\n ?.InstallTrigger !== 'undefined',\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_WEBKIT = new InjectionToken<boolean>(\n 'Webkit browser engine detection',\n {\n factory: () => !!inject(WINDOW).webkitConvertPointFromNodeToPage,\n },\n);\n","import {InjectionToken, Sanitizer} from '@angular/core';\n\n/* @deprecated export token from @taiga-ui/core package **/\nexport const TUI_SANITIZER = new InjectionToken<Sanitizer>(\n 'A custom Sanitizer to sanitize source before inlining',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_SWIPE_OPTIONS = new InjectionToken<TuiSwipeOptions>('Swipe options', {\n factory: () => ({timeout: 500, threshold: 30}),\n});\n","import {InjectionToken} from '@angular/core';\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>(\n 'This token need for override behavior the `pressedObservable` function',\n {\n factory: () => true,\n },\n );\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_TOUCH_SUPPORTED = new InjectionToken('Touch support detection', {\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 {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n 'Window height accounting for disappearing address bar',\n {\n factory: () => {\n const windowRef = inject(WINDOW);\n\n return typedFromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerHeight),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_ZOOM_OPTIONS = new InjectionToken<TuiZoomOptions>('Zoom options', {\n factory: () => ({\n wheelSensitivity: 0.01,\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": "2.49.2",
3
+ "version": "2.50.2",
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",
@@ -1,5 +1,4 @@
1
- import { workspaces } from '@angular-devkit/core';
2
1
  import { Rule } from '@angular-devkit/schematics';
3
2
  import { Schema } from '../schema';
4
3
  export declare function addTaigaIcons(options: Schema): Rule;
5
- export declare function addTaigaStylesToAngularJson(workspace: workspaces.WorkspaceDefinition, project: workspaces.ProjectDefinition): Rule;
4
+ export declare function addTaigaStylesToAngularJson(options: Schema): Rule;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const workspace_1 = require("@schematics/angular/utility/workspace");
5
- const workspace_2 = require("@schematics/angular/utility/workspace");
6
5
  const get_project_1 = require("../../utils/get-project");
7
6
  const get_project_target_options_1 = require("../../utils/get-project-target-options");
8
7
  const ICON_ASSETS = {
@@ -11,22 +10,17 @@ const ICON_ASSETS = {
11
10
  output: 'assets/taiga-ui/icons',
12
11
  };
13
12
  function addTaigaIcons(options) {
14
- return (tree) => tslib_1.__awaiter(this, void 0, void 0, function* () {
15
- const workspace = yield workspace_2.getWorkspace(tree);
16
- const project = get_project_1.getProject(options, workspace);
17
- return addTaigaStylesToAngularJson(workspace, project);
13
+ return (_) => tslib_1.__awaiter(this, void 0, void 0, function* () {
14
+ return addTaigaStylesToAngularJson(options);
18
15
  });
19
16
  }
20
17
  exports.addTaigaIcons = addTaigaIcons;
21
- function addTaigaStylesToAngularJson(workspace, project) {
22
- const targetOptions = get_project_target_options_1.getProjectTargetOptions(project, 'build');
23
- const assets = targetOptions.assets;
24
- if (!assets) {
25
- targetOptions.assets = [ICON_ASSETS];
26
- }
27
- else {
28
- targetOptions.assets = [...assets, ICON_ASSETS];
29
- }
30
- return workspace_1.updateWorkspace(workspace);
18
+ function addTaigaStylesToAngularJson(options) {
19
+ return workspace_1.updateWorkspace(workspace => {
20
+ const project = get_project_1.getProject(options, workspace);
21
+ const targetOptions = get_project_target_options_1.getProjectTargetOptions(project, 'build');
22
+ const assets = targetOptions.assets;
23
+ targetOptions.assets = assets ? [...assets, ICON_ASSETS] : [ICON_ASSETS];
24
+ });
31
25
  }
32
26
  exports.addTaigaStylesToAngularJson = addTaigaStylesToAngularJson;
@@ -1,5 +1,4 @@
1
- import { workspaces } from '@angular-devkit/core';
2
1
  import { Rule } from '@angular-devkit/schematics';
3
2
  import { Schema } from '../schema';
4
3
  export declare function addTaigaStyles(options: Schema): Rule;
5
- export declare function addTaigaStylesToAngularJson(workspace: workspaces.WorkspaceDefinition, project: workspaces.ProjectDefinition): Rule;
4
+ export declare function addTaigaStylesToAngularJson(options: Schema): Rule;
@@ -2,29 +2,25 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const workspace_1 = require("@schematics/angular/utility/workspace");
5
- const workspace_2 = require("@schematics/angular/utility/workspace");
6
5
  const get_project_1 = require("../../utils/get-project");
7
6
  const get_project_target_options_1 = require("../../utils/get-project-target-options");
8
7
  const TAIGA_GLOBAL_STYLE = 'node_modules/@taiga-ui/core/styles/taiga-ui-global.less';
9
8
  const TAIGA_THEME_STYLE = 'node_modules/@taiga-ui/core/styles/taiga-ui-theme.less';
10
9
  function addTaigaStyles(options) {
11
- return (tree) => tslib_1.__awaiter(this, void 0, void 0, function* () {
12
- const workspace = yield workspace_2.getWorkspace(tree);
13
- const project = get_project_1.getProject(options, workspace);
14
- return addTaigaStylesToAngularJson(workspace, project);
10
+ return (_) => tslib_1.__awaiter(this, void 0, void 0, function* () {
11
+ return addTaigaStylesToAngularJson(options);
15
12
  });
16
13
  }
17
14
  exports.addTaigaStyles = addTaigaStyles;
18
- function addTaigaStylesToAngularJson(workspace, project) {
19
- const targetOptions = get_project_target_options_1.getProjectTargetOptions(project, 'build');
20
- const styles = targetOptions.styles;
21
- const taigaStyles = [TAIGA_GLOBAL_STYLE, TAIGA_THEME_STYLE];
22
- if (!styles) {
23
- targetOptions.styles = taigaStyles;
24
- }
25
- else {
26
- targetOptions.styles = Array.from(new Set([...taigaStyles, ...styles]));
27
- }
28
- return workspace_1.updateWorkspace(workspace);
15
+ function addTaigaStylesToAngularJson(options) {
16
+ return workspace_1.updateWorkspace(workspace => {
17
+ const project = get_project_1.getProject(options, workspace);
18
+ const targetOptions = get_project_target_options_1.getProjectTargetOptions(project, 'build');
19
+ const styles = targetOptions.styles;
20
+ const taigaStyles = [TAIGA_GLOBAL_STYLE, TAIGA_THEME_STYLE];
21
+ targetOptions.styles = styles
22
+ ? Array.from(new Set([...taigaStyles, ...styles]))
23
+ : taigaStyles;
24
+ });
29
25
  }
30
26
  exports.addTaigaStylesToAngularJson = addTaigaStylesToAngularJson;
@@ -91,4 +91,25 @@ exports.CONSTS_TO_REPLACE = [
91
91
  namedImport: 'AbstractTuiController',
92
92
  },
93
93
  },
94
+ {
95
+ from: {
96
+ name: 'TuiFilterByInputBase',
97
+ moduleSpecifier: '@taiga-ui/kit',
98
+ },
99
+ to: {
100
+ name: 'AbstractTuiFilterByInput',
101
+ moduleSpecifier: '@taiga-ui/kit',
102
+ namedImport: 'AbstractTuiFilterByInput',
103
+ },
104
+ },
105
+ {
106
+ from: {
107
+ name: 'TuiFieldErrorModule',
108
+ moduleSpecifier: '@taiga-ui/kit',
109
+ },
110
+ to: {
111
+ name: 'TuiFieldErrorPipeModule',
112
+ moduleSpecifier: '@taiga-ui/kit',
113
+ },
114
+ },
94
115
  ];
File without changes
@@ -0,0 +1 @@
1
+ "use strict";
@@ -7,7 +7,15 @@ exports.ATTRS_TO_REPLACE = [
7
7
  to: { attrName: 'tuiTh [resizable]="true"' },
8
8
  },
9
9
  {
10
- from: { attrName: 'new', withTagNames: ['tui-editor'] },
10
+ from: {
11
+ attrName: 'new',
12
+ withTagNames: [
13
+ 'tui-editor',
14
+ 'tui-range',
15
+ 'tui-input-range',
16
+ 'tui-input-slider',
17
+ ],
18
+ },
11
19
  to: { attrName: '' },
12
20
  },
13
21
  {
@@ -30,6 +38,24 @@ exports.ATTRS_TO_REPLACE = [
30
38
  attrName: '[active]',
31
39
  },
32
40
  },
41
+ {
42
+ from: {
43
+ attrName: '(rangeChange)',
44
+ withTagNames: ['tui-calendar-range'],
45
+ },
46
+ to: {
47
+ attrName: '(valueChange)',
48
+ },
49
+ },
50
+ {
51
+ from: {
52
+ attrName: '[quantum]',
53
+ withAttrsNames: ['tuiSlider'],
54
+ },
55
+ to: {
56
+ attrName: '[step]',
57
+ },
58
+ },
33
59
  ];
34
60
  exports.TAGS_TO_REPLACE = [
35
61
  {
@@ -42,6 +68,11 @@ exports.TAGS_TO_REPLACE = [
42
68
  to: 'div',
43
69
  addAttributes: ['tuiWrapper'],
44
70
  },
71
+ {
72
+ from: 'tui-slider',
73
+ to: 'input',
74
+ addAttributes: ['tuiSlider', 'type="range"'],
75
+ },
45
76
  ];
46
77
  exports.ATTR_TO_DIRECTIVE = [
47
78
  {
@@ -89,4 +120,13 @@ exports.ATTR_TO_DIRECTIVE = [
89
120
  moduleSpecifier: '@taiga-ui/core',
90
121
  },
91
122
  },
123
+ {
124
+ componentSelector: 'tui-input-range',
125
+ inputProperty: 'size',
126
+ directive: 'tuiTextfieldSize',
127
+ directiveModule: {
128
+ name: 'TuiTextfieldControllerModule',
129
+ moduleSpecifier: '@taiga-ui/core',
130
+ },
131
+ },
92
132
  ];
@@ -76,4 +76,49 @@ exports.TYPES_TO_RENAME = [
76
76
  to: 'TuiNumberFormatSettings',
77
77
  moduleSpecifier: ['@taiga-ui/core'],
78
78
  },
79
+ {
80
+ from: 'LanguageCore',
81
+ to: 'TuiLanguageCore',
82
+ moduleSpecifier: ['@taiga-ui/i18n'],
83
+ },
84
+ {
85
+ from: 'LanguageKit',
86
+ to: 'TuiLanguageKit',
87
+ moduleSpecifier: ['@taiga-ui/i18n'],
88
+ },
89
+ {
90
+ from: 'LanguageKit',
91
+ to: 'TuiLanguageKit',
92
+ moduleSpecifier: ['@taiga-ui/i18n'],
93
+ },
94
+ {
95
+ from: 'LanguageCommerce',
96
+ to: 'TuiLanguageCommerce',
97
+ moduleSpecifier: ['@taiga-ui/i18n'],
98
+ },
99
+ {
100
+ from: 'LanguageTable',
101
+ to: 'TuiLanguageTable',
102
+ moduleSpecifier: ['@taiga-ui/i18n'],
103
+ },
104
+ {
105
+ from: 'LanguageTable',
106
+ to: 'TuiLanguageTable',
107
+ moduleSpecifier: ['@taiga-ui/i18n'],
108
+ },
109
+ {
110
+ from: 'LanguageEditor',
111
+ to: 'TuiLanguageEditor',
112
+ moduleSpecifier: ['@taiga-ui/i18n'],
113
+ },
114
+ {
115
+ from: 'LanguagePreview',
116
+ to: 'TuiLanguagePreview',
117
+ moduleSpecifier: ['@taiga-ui/i18n'],
118
+ },
119
+ {
120
+ from: 'Language',
121
+ to: 'TuiLanguage',
122
+ moduleSpecifier: ['@taiga-ui/i18n'],
123
+ },
79
124
  ];
@@ -77,4 +77,14 @@ exports.MIGRATION_WARNINGS = [
77
77
  moduleSpecifier: '@taiga-ui/core',
78
78
  message: 'pressedChange and hoveredChange outputs have been removed from AbstractTuiInteractive, please use tuiPressedChange and tuiHoveredChange directives instead',
79
79
  },
80
+ {
81
+ name: 'MEDIA',
82
+ moduleSpecifier: '@taiga-ui/core',
83
+ message: 'MEDIA constant has been deleted in 3.0. Please use TUI_MEDIA token from @taiga-ui/core',
84
+ },
85
+ {
86
+ name: 'colorFallback',
87
+ moduleSpecifier: '@taiga-ui/core',
88
+ message: 'colorFallback has been deleted in 3.0, please use CSS variables',
89
+ },
80
90
  ];
@@ -12,6 +12,8 @@ const replace_services_1 = require("./steps/replace-services");
12
12
  const migrate_templates_1 = require("./steps/migrate-templates");
13
13
  const migrate_sliders_1 = require("./steps/migrate-sliders");
14
14
  const remove_module_1 = require("./steps/remove-module");
15
+ const miscellaneous_1 = require("./steps/miscellaneous");
16
+ const replace_functions_1 = require("./steps/replace-functions");
15
17
  function updateToV3(_) {
16
18
  return (tree, context) => tslib_1.__awaiter(this, void 0, void 0, function* () {
17
19
  context.logger.info(`taiga packages will be updated to ${versions_1.TAIGA_VERSION}`);
@@ -25,6 +27,8 @@ function updateToV3(_) {
25
27
  migrate_templates_1.migrateTemplates(tree);
26
28
  migrate_sliders_1.migrateSliders(tree);
27
29
  remove_module_1.removeModules();
30
+ replace_functions_1.replaceFunctions();
31
+ miscellaneous_1.miscellaneousMigrations();
28
32
  ng_morph_1.saveActiveProject();
29
33
  });
30
34
  }
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const migrate_input_slider_1 = require("./migrate-input-slider");
4
+ const migrate_input_range_1 = require("./migrate-input-range");
4
5
  function migrateSliders(tree) {
5
6
  migrate_input_slider_1.migrateInputSlider(tree);
7
+ migrate_input_range_1.migrateInputRange(tree);
6
8
  }
7
9
  exports.migrateSliders = migrateSliders;
@@ -0,0 +1,2 @@
1
+ import { Tree } from '@angular-devkit/schematics';
2
+ export declare function migrateInputRange(tree: Tree): void;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_file_system_1 = require("ng-morph/project/classes/devkit-file-system");
4
+ const get_component_templates_1 = require("../../../utils/templates/get-component-templates");
5
+ const ng_component_input_manipulations_1 = require("../../../utils/templates/ng-component-input-manipulations");
6
+ const ng_morph_1 = require("ng-morph");
7
+ const ng_component_1 = require("../../../utils/angular/ng-component");
8
+ const add_unique_import_1 = require("../../../utils/add-unique-import");
9
+ function migrateInputRange(tree) {
10
+ const fileSystem = new devkit_file_system_1.DevkitFileSystem(tree);
11
+ const templateResources = get_component_templates_1.getComponentTemplates('**/**');
12
+ for (const templateResource of templateResources) {
13
+ replaceMinLabel(templateResource, fileSystem);
14
+ replaceMaxLabel(templateResource, fileSystem);
15
+ }
16
+ }
17
+ exports.migrateInputRange = migrateInputRange;
18
+ function replaceMinLabel(templateResource, fileSystem) {
19
+ const MIGRATION_VARIABLE_NAME = 'tuiMigrationInputRangeMinLabel';
20
+ const wasModified = ng_component_input_manipulations_1.replaceInputProperty({
21
+ templateResource,
22
+ fileSystem,
23
+ componentSelector: 'tui-input-range',
24
+ from: 'minLabel',
25
+ to: '[leftValueContent]',
26
+ newValue: MIGRATION_VARIABLE_NAME,
27
+ });
28
+ save(fileSystem);
29
+ if (wasModified) {
30
+ addMinMaxLabelMethod(templateResource.componentPath, MIGRATION_VARIABLE_NAME, [
31
+ 'const currentValue = context.$implicit;',
32
+ 'const minValue = 0; // TODO replace with the MIN value of the input-range',
33
+ 'const minLabelText = "Min"; // TODO replace with the required label',
34
+ 'if (currentValue === minValue) return minLabelText;',
35
+ 'return String(currentValue);',
36
+ ]);
37
+ }
38
+ }
39
+ function replaceMaxLabel(templateResource, fileSystem) {
40
+ const MIGRATION_VARIABLE_NAME = 'tuiMigrationInputRangeMaxLabel';
41
+ const wasModified = ng_component_input_manipulations_1.replaceInputProperty({
42
+ templateResource,
43
+ fileSystem,
44
+ componentSelector: 'tui-input-range',
45
+ from: 'maxLabel',
46
+ to: '[rightValueContent]',
47
+ newValue: MIGRATION_VARIABLE_NAME,
48
+ });
49
+ save(fileSystem);
50
+ if (wasModified) {
51
+ addMinMaxLabelMethod(templateResource.componentPath, MIGRATION_VARIABLE_NAME, [
52
+ 'const currentValue = context.$implicit;',
53
+ 'const maxValue = 100; // TODO replace with the MAX value of the input',
54
+ 'const maxLabelText = "Max"; // TODO replace with the required label',
55
+ 'if (currentValue === maxValue) return maxLabelText;',
56
+ 'return String(currentValue);',
57
+ ]);
58
+ }
59
+ }
60
+ function addMinMaxLabelMethod(componentPath, methodName, methodCode) {
61
+ const [ngComponent] = ng_component_1.getNgComponents(componentPath);
62
+ if (ngComponent) {
63
+ add_unique_import_1.addUniqueImport(ngComponent.getSourceFile().getFilePath(), 'TuiContextWithImplicit', '@taiga-ui/cdk');
64
+ ng_morph_1.addMethods(ngComponent, {
65
+ name: methodName,
66
+ returnType: 'string',
67
+ parameters: [{ name: 'context', type: 'TuiContextWithImplicit<number>' }],
68
+ statements: methodCode,
69
+ });
70
+ }
71
+ }
72
+ /**
73
+ * We should update virtual file tree after template manipulations
74
+ * otherwise all following ng-morph commands will overwrite all previous template manipulations
75
+ * */
76
+ function save(fileSystem) {
77
+ fileSystem.commitEdits();
78
+ ng_morph_1.saveActiveProject();
79
+ ng_morph_1.setActiveProject(ng_morph_1.createProject(fileSystem.tree, '/', '**/**'));
80
+ }