@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
1 lines • 6.25 kB
Source Map (JSON)
{"version":3,"file":"taiga-ui-core-utils-miscellaneous.mjs","sources":["../../../projects/core/utils/miscellaneous/font-scaling.ts","../../../projects/core/utils/miscellaneous/is-editing-key.ts","../../../projects/core/utils/miscellaneous/is-obscured.ts","../../../projects/core/utils/miscellaneous/override-options.ts","../../../projects/core/utils/miscellaneous/size-bigger.ts","../../../projects/core/utils/miscellaneous/to-animation-options.ts","../../../projects/core/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n inject,\n InjectionToken,\n type Provider,\n signal,\n type WritableSignal,\n} from '@angular/core';\nimport {TUI_FONT_SIZE_HANDLER} from '@taiga-ui/cdk/directives/font-size';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_FONT_OFFSET = new InjectionToken<WritableSignal<number>>(\n ngDevMode ? 'TUI_FONT_OFFSET' : '',\n {factory: () => signal(0)},\n);\n\nexport function tuiEnableFontScaling(): Provider {\n return {\n provide: TUI_FONT_SIZE_HANDLER,\n useFactory: () => {\n const offset = inject(TUI_FONT_OFFSET);\n const {documentElement} = inject(DOCUMENT);\n\n return (size: number): void => {\n const current = tuiClamp(size, 17, 28) - 17;\n\n offset.set(current);\n\n return documentElement.style.setProperty(\n '--tui-font-offset',\n tuiPx(current),\n );\n };\n },\n };\n}\n","const KEYS: readonly string[] = [\n 'Spacebar',\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Left',\n 'Right',\n 'End',\n 'Home',\n];\n\n/**\n * Check if pressed key is interactive in terms of input field\n */\nexport function tuiIsEditingKey(key = ''): boolean {\n return key.length === 1 || KEYS.includes(key);\n}\n","import {tuiGetElementObscures} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * @internal\n */\nexport function tuiIsObscured(el: HTMLElement, exceptSelector = 'tui-hints'): boolean {\n return !!tuiGetElementObscures(el)?.some((el) => !el.closest(exceptSelector));\n}\n","export function tuiOverrideOptions<T>(\n override: Partial<T>,\n fallback: T,\n): (directive: T | null, options: T | null) => T {\n return (directive, options) => {\n const result: T = directive || {...(options || fallback)};\n\n Object.keys(override).forEach((key) => {\n // Update directive props with new defaults before inputs are processed\n (result as Record<string, unknown>)[key] = override[key as keyof T];\n });\n\n return result;\n };\n}\n","import {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nconst SIZES: Record<TuiSizeXXL | TuiSizeXXS, number> = {\n xxs: 0,\n xs: 1,\n s: 2,\n m: 3,\n l: 4,\n xl: 5,\n xxl: 6,\n};\n\n/**\n * Compares size constants to determine if first size is bigger than the second\n *\n * @param size size that we need to compare\n * @param biggerThanSize size to compare with, 's' by default\n */\nexport function tuiSizeBigger(\n size: TuiSizeXXL | TuiSizeXXS,\n biggerThanSize: TuiSizeXXL | TuiSizeXXS = 's',\n): boolean {\n return SIZES[size] > SIZES[biggerThanSize];\n}\n","import {type AnimationOptions} from '@angular/animations';\nimport {inject} from '@angular/core';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\n\nexport const TUI_ANIMATIONS_DEFAULT_DURATION = 300;\n\nexport function tuiToAnimationOptions(\n speed: number = inject(TUI_ANIMATIONS_SPEED),\n easing?: string,\n): AnimationOptions {\n return {\n value: '',\n params: {\n duration: tuiGetDuration(speed),\n easing,\n },\n } as unknown as AnimationOptions;\n}\n\nexport function tuiGetDuration(speed: number): number {\n return speed && TUI_ANIMATIONS_DEFAULT_DURATION / speed;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAYO,MAAM,eAAe,GAAG,IAAI,cAAc,CAC7C,SAAS,GAAG,iBAAiB,GAAG,EAAE,EAClC,EAAC,OAAO,EAAE,MAAM,MAAM,CAAC,CAAC,CAAC,EAAC,EAC5B;SAEc,oBAAoB,GAAA;IAChC,OAAO;AACH,QAAA,OAAO,EAAE,qBAAqB;QAC9B,UAAU,EAAE,MAAK;AACb,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;YACvC,MAAM,EAAC,eAAe,EAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE3C,OAAO,CAAC,IAAY,KAAU;AAC1B,gBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAE5C,gBAAA,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAEpB,gBAAA,OAAO,eAAe,CAAC,KAAK,CAAC,WAAW,CACpC,mBAAmB,EACnB,KAAK,CAAC,OAAO,CAAC,CACjB,CAAC;AACN,aAAC,CAAC;SACL;KACJ,CAAC;AACN;;ACpCA,MAAM,IAAI,GAAsB;IAC5B,UAAU;IACV,WAAW;IACX,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;CACT,CAAC;AAEF;;AAEG;AACa,SAAA,eAAe,CAAC,GAAG,GAAG,EAAE,EAAA;AACpC,IAAA,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAClD;;ACfA;;AAEG;SACa,aAAa,CAAC,EAAe,EAAE,cAAc,GAAG,WAAW,EAAA;IACvE,OAAO,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;AAClF;;ACPgB,SAAA,kBAAkB,CAC9B,QAAoB,EACpB,QAAW,EAAA;AAEX,IAAA,OAAO,CAAC,SAAS,EAAE,OAAO,KAAI;AAC1B,QAAA,MAAM,MAAM,GAAM,SAAS,IAAI,EAAC,IAAI,OAAO,IAAI,QAAQ,CAAC,EAAC,CAAC;QAE1D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;;YAEjC,MAAkC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAc,CAAC,CAAC;AACxE,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,MAAM,CAAC;AAClB,KAAC,CAAC;AACN;;ACZA,MAAM,KAAK,GAA4C;AACnD,IAAA,GAAG,EAAE,CAAC;AACN,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,GAAG,EAAE,CAAC;CACT,CAAC;AAEF;;;;;AAKG;SACa,aAAa,CACzB,IAA6B,EAC7B,iBAA0C,GAAG,EAAA;IAE7C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;AAC/C;;ACnBO,MAAM,+BAA+B,GAAG,IAAI;AAE7C,SAAU,qBAAqB,CACjC,KAAA,GAAgB,MAAM,CAAC,oBAAoB,CAAC,EAC5C,MAAe,EAAA;IAEf,OAAO;AACH,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,MAAM,EAAE;AACJ,YAAA,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC;YAC/B,MAAM;AACT,SAAA;KAC2B,CAAC;AACrC,CAAC;AAEK,SAAU,cAAc,CAAC,KAAa,EAAA;AACxC,IAAA,OAAO,KAAK,IAAI,+BAA+B,GAAG,KAAK,CAAC;AAC5D;;ACrBA;;AAEG;;;;"}