fingerprintjs

Форк
0
/
monochrome.ts 
25 строк · 916.0 Байт
1
const maxValueToCheck = 100
2

3
/**
4
 * If the display is monochrome (e.g. black&white), the value will be ≥0 and will mean the number of bits per pixel.
5
 * If the display is not monochrome, the returned value will be 0.
6
 * If the browser doesn't support this feature, the returned value will be undefined.
7
 *
8
 * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/monochrome
9
 */
10
export default function getMonochromeDepth(): number | undefined {
11
  if (!matchMedia('(min-monochrome: 0)').matches) {
12
    // The media feature isn't supported by the browser
13
    return undefined
14
  }
15

16
  // A variation of binary search algorithm can be used here.
17
  // But since expected values are very small (≤10), there is no sense in adding the complexity.
18
  for (let i = 0; i <= maxValueToCheck; ++i) {
19
    if (matchMedia(`(max-monochrome: ${i})`).matches) {
20
      return i
21
    }
22
  }
23

24
  throw new Error('Too high value')
25
}
26

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.