yuyeon 0.3.3 → 0.3.4-beta.13

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 (687) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +3109 -3082
  3. package/dist/yuyeon.umd.cjs +3 -3
  4. package/lib/abstract/items.js.map +1 -1
  5. package/lib/components/alert/YAlert.js +3 -4
  6. package/lib/components/alert/YAlert.js.map +1 -1
  7. package/lib/components/alert/index.js.map +1 -1
  8. package/lib/components/app/YApp.js +2 -2
  9. package/lib/components/app/YApp.js.map +1 -1
  10. package/lib/components/app/index.js.map +1 -1
  11. package/lib/components/badge/YBadge.js +3 -3
  12. package/lib/components/badge/YBadge.js.map +1 -1
  13. package/lib/components/badge/YBadge.scss +3 -2
  14. package/lib/components/badge/index.js.map +1 -1
  15. package/lib/components/bench/YBench.js +3 -4
  16. package/lib/components/bench/YBench.js.map +1 -1
  17. package/lib/components/bench/index.js.map +1 -1
  18. package/lib/components/button/YButton.js +1 -2
  19. package/lib/components/button/YButton.js.map +1 -1
  20. package/lib/components/button/index.js.map +1 -1
  21. package/lib/components/card/YCard.js.map +1 -1
  22. package/lib/components/card/YCard.scss +2 -2
  23. package/lib/components/card/YCardBody.js.map +1 -1
  24. package/lib/components/card/YCardFooter.js.map +1 -1
  25. package/lib/components/card/YCardHeader.js.map +1 -1
  26. package/lib/components/card/index.js.map +1 -1
  27. package/lib/components/checkbox/YCheckbox.js +1 -2
  28. package/lib/components/checkbox/YCheckbox.js.map +1 -1
  29. package/lib/components/checkbox/YInputCheckbox.js +1 -2
  30. package/lib/components/checkbox/YInputCheckbox.js.map +1 -1
  31. package/lib/components/checkbox/index.js.map +1 -1
  32. package/lib/components/chip/YChip.js +1 -2
  33. package/lib/components/chip/YChip.js.map +1 -1
  34. package/lib/components/chip/index.js.map +1 -1
  35. package/lib/components/date-picker/YDateCalendar.js +55 -53
  36. package/lib/components/date-picker/YDateCalendar.js.map +1 -1
  37. package/lib/components/date-picker/YDatePicker.js +24 -25
  38. package/lib/components/date-picker/YDatePicker.js.map +1 -1
  39. package/lib/components/date-picker/YDatePickerControl.js +19 -20
  40. package/lib/components/date-picker/YDatePickerControl.js.map +1 -1
  41. package/lib/components/date-picker/YMonthPicker.js +10 -11
  42. package/lib/components/date-picker/YMonthPicker.js.map +1 -1
  43. package/lib/components/date-picker/YYearPicker.js +11 -13
  44. package/lib/components/date-picker/YYearPicker.js.map +1 -1
  45. package/lib/components/date-picker/index.js.map +1 -1
  46. package/lib/components/default-provider/YDefaultProvider.js.map +1 -1
  47. package/lib/components/default-provider/index.js.map +1 -1
  48. package/lib/components/dialog/YDialog.js +32 -32
  49. package/lib/components/dialog/YDialog.js.map +1 -1
  50. package/lib/components/dialog/index.js.map +1 -1
  51. package/lib/components/divider/YDivider.js +5 -5
  52. package/lib/components/divider/YDivider.js.map +1 -1
  53. package/lib/components/divider/index.js.map +1 -1
  54. package/lib/components/draggable/YDraggable.js +10 -11
  55. package/lib/components/draggable/YDraggable.js.map +1 -1
  56. package/lib/components/draggable/index.js +2 -0
  57. package/lib/components/draggable/index.js.map +1 -0
  58. package/lib/components/dropdown/YDropdown.js +16 -17
  59. package/lib/components/dropdown/YDropdown.js.map +1 -1
  60. package/lib/components/dropdown/index.js.map +1 -1
  61. package/lib/components/field-input/YFieldInput.js +42 -40
  62. package/lib/components/field-input/YFieldInput.js.map +1 -1
  63. package/lib/components/field-input/index.js.map +1 -1
  64. package/lib/components/form/YForm.js +12 -14
  65. package/lib/components/form/YForm.js.map +1 -1
  66. package/lib/components/form/index.js.map +1 -1
  67. package/lib/components/hover/YHover.js +9 -8
  68. package/lib/components/hover/YHover.js.map +1 -1
  69. package/lib/components/hover/index.js.map +1 -1
  70. package/lib/components/icon/YIcon.js +2 -4
  71. package/lib/components/icon/YIcon.js.map +1 -1
  72. package/lib/components/icon/index.js.map +1 -1
  73. package/lib/components/icons/YIconCheckbox.js +7 -6
  74. package/lib/components/icons/YIconCheckbox.js.map +1 -1
  75. package/lib/components/icons/YIconClear.js +2 -1
  76. package/lib/components/icons/YIconClear.js.map +1 -1
  77. package/lib/components/icons/YIconDropdown.js +2 -1
  78. package/lib/components/icons/YIconDropdown.js.map +1 -1
  79. package/lib/components/icons/YIconExpand.js +1 -0
  80. package/lib/components/icons/YIconExpand.js.map +1 -1
  81. package/lib/components/icons/YIconPageControl.js +7 -6
  82. package/lib/components/icons/YIconPageControl.js.map +1 -1
  83. package/lib/components/icons/YIconSort.js +6 -5
  84. package/lib/components/icons/YIconSort.js.map +1 -1
  85. package/lib/components/icons/YIconSort.scss +2 -0
  86. package/lib/components/icons/index.js.map +1 -1
  87. package/lib/components/img/YImg.js +30 -31
  88. package/lib/components/img/YImg.js.map +1 -1
  89. package/lib/components/img/index.js.map +1 -1
  90. package/lib/components/index.js.map +1 -1
  91. package/lib/components/input/YInput.js +1 -2
  92. package/lib/components/input/YInput.js.map +1 -1
  93. package/lib/components/input/YInput.scss +10 -9
  94. package/lib/components/input/index.js.map +1 -1
  95. package/lib/components/ip-field/YIpv4Field.js +1 -2
  96. package/lib/components/ip-field/YIpv4Field.js.map +1 -1
  97. package/lib/components/ip-field/index.js.map +1 -1
  98. package/lib/components/layer/YLayer.js +4 -3
  99. package/lib/components/layer/YLayer.js.map +1 -1
  100. package/lib/components/layer/active-delay.js.map +1 -1
  101. package/lib/components/layer/active-stack.js.map +1 -1
  102. package/lib/components/layer/base.js.map +1 -1
  103. package/lib/components/layer/content.js.map +1 -1
  104. package/lib/components/layer/index.js.map +1 -1
  105. package/lib/components/layer/scroll-strategies.js.map +1 -1
  106. package/lib/components/list/YList.js +1 -2
  107. package/lib/components/list/YList.js.map +1 -1
  108. package/lib/components/list/YListItem.js +1 -2
  109. package/lib/components/list/YListItem.js.map +1 -1
  110. package/lib/components/list/index.js.map +1 -1
  111. package/lib/components/loading/YSpinnerRing.js.map +1 -1
  112. package/lib/components/loading/index.js.map +1 -1
  113. package/lib/components/menu/YMenu.js +5 -8
  114. package/lib/components/menu/YMenu.js.map +1 -1
  115. package/lib/components/menu/YMenu.scss +3 -4
  116. package/lib/components/menu/index.js.map +1 -1
  117. package/lib/components/navigation/YNavigation.js +1 -2
  118. package/lib/components/navigation/YNavigation.js.map +1 -1
  119. package/lib/components/navigation/index.js.map +1 -1
  120. package/lib/components/pagination/YPagination.js +1 -2
  121. package/lib/components/pagination/YPagination.js.map +1 -1
  122. package/lib/components/pagination/index.js.map +1 -1
  123. package/lib/components/panel/YDividePanel.js +1 -2
  124. package/lib/components/panel/YDividePanel.js.map +1 -1
  125. package/lib/components/panel/YDividePanel.scss +1 -0
  126. package/lib/components/panel/index.js.map +1 -1
  127. package/lib/components/plate/YPlate.js +3 -4
  128. package/lib/components/plate/YPlate.js.map +1 -1
  129. package/lib/components/plate/index.js.map +1 -1
  130. package/lib/components/progress-bar/YProgressBar.js +1 -2
  131. package/lib/components/progress-bar/YProgressBar.js.map +1 -1
  132. package/lib/components/progress-bar/index.js.map +1 -1
  133. package/lib/components/progress-ring/YProgressRing.js +3 -4
  134. package/lib/components/progress-ring/YProgressRing.js.map +1 -1
  135. package/lib/components/progress-ring/index.js.map +1 -1
  136. package/lib/components/radio/YRadio.js +58 -0
  137. package/lib/components/radio/YRadio.js.map +1 -0
  138. package/lib/components/radio/YRadio.scss +38 -0
  139. package/lib/components/radio/YRadioIcon.js +33 -0
  140. package/lib/components/radio/YRadioIcon.js.map +1 -0
  141. package/lib/components/radio/YRadioIcon.scss +43 -0
  142. package/lib/components/radio/index.js +3 -0
  143. package/lib/components/radio/index.js.map +1 -0
  144. package/lib/components/select/YSelect.js +41 -43
  145. package/lib/components/select/YSelect.js.map +1 -1
  146. package/lib/components/select/index.js.map +1 -1
  147. package/lib/components/slider/YSlider.js.map +1 -1
  148. package/lib/components/slider/index.js.map +1 -1
  149. package/lib/components/slider/slider.js.map +1 -1
  150. package/lib/components/snackbar/YSnackbar.js +6 -6
  151. package/lib/components/snackbar/YSnackbar.js.map +1 -1
  152. package/lib/components/snackbar/index.js.map +1 -1
  153. package/lib/components/switch/YSwitch.js +1 -2
  154. package/lib/components/switch/YSwitch.js.map +1 -1
  155. package/lib/components/switch/index.js.map +1 -1
  156. package/lib/components/tab/YTab.js +2 -3
  157. package/lib/components/tab/YTab.js.map +1 -1
  158. package/lib/components/tab/YTab.scss +1 -1
  159. package/lib/components/tab/YTabs.js +1 -2
  160. package/lib/components/tab/YTabs.js.map +1 -1
  161. package/lib/components/tab/index.js.map +1 -1
  162. package/lib/components/tab/shared.js.map +1 -1
  163. package/lib/components/tab/types.js.map +1 -1
  164. package/lib/components/table/YDataTable.js +8 -6
  165. package/lib/components/table/YDataTable.js.map +1 -1
  166. package/lib/components/table/YDataTableBody.js +2 -3
  167. package/lib/components/table/YDataTableBody.js.map +1 -1
  168. package/lib/components/table/YDataTableCell.js +1 -2
  169. package/lib/components/table/YDataTableCell.js.map +1 -1
  170. package/lib/components/table/YDataTableControl.js +8 -6
  171. package/lib/components/table/YDataTableControl.js.map +1 -1
  172. package/lib/components/table/YDataTableControl.scss +10 -0
  173. package/lib/components/table/YDataTableHead.js +1 -1
  174. package/lib/components/table/YDataTableHead.js.map +1 -1
  175. package/lib/components/table/YDataTableLayer.js +1 -2
  176. package/lib/components/table/YDataTableLayer.js.map +1 -1
  177. package/lib/components/table/YDataTableLayerRow.js +1 -2
  178. package/lib/components/table/YDataTableLayerRow.js.map +1 -1
  179. package/lib/components/table/YDataTableLayerRows.js +1 -2
  180. package/lib/components/table/YDataTableLayerRows.js.map +1 -1
  181. package/lib/components/table/YDataTableRow.js +1 -2
  182. package/lib/components/table/YDataTableRow.js.map +1 -1
  183. package/lib/components/table/YDataTableServer.js +8 -6
  184. package/lib/components/table/YDataTableServer.js.map +1 -1
  185. package/lib/components/table/YTable.js +1 -2
  186. package/lib/components/table/YTable.js.map +1 -1
  187. package/lib/components/table/composables/expand.js.map +1 -1
  188. package/lib/components/table/composables/header.js.map +1 -1
  189. package/lib/components/table/composables/items.js.map +1 -1
  190. package/lib/components/table/composables/measure.js +1 -1
  191. package/lib/components/table/composables/measure.js.map +1 -1
  192. package/lib/components/table/composables/options.js.map +1 -1
  193. package/lib/components/table/composables/pagination.js.map +1 -1
  194. package/lib/components/table/composables/provides.js.map +1 -1
  195. package/lib/components/table/composables/selection.js.map +1 -1
  196. package/lib/components/table/composables/sorted-items.js.map +1 -1
  197. package/lib/components/table/composables/sorting.js.map +1 -1
  198. package/lib/components/table/index.js.map +1 -1
  199. package/lib/components/table/types/common.js.map +1 -1
  200. package/lib/components/table/types/header.js.map +1 -1
  201. package/lib/components/table/types/index.js.map +1 -1
  202. package/lib/components/table/types/item.js.map +1 -1
  203. package/lib/components/table/types/row.js.map +1 -1
  204. package/lib/components/text-ellipsis/YTextEllipsis.js +1 -2
  205. package/lib/components/text-ellipsis/YTextEllipsis.js.map +1 -1
  206. package/lib/components/text-ellipsis/index.js.map +1 -1
  207. package/lib/components/text-highlighter/YTextHighlighter.js +2 -1
  208. package/lib/components/text-highlighter/YTextHighlighter.js.map +1 -1
  209. package/lib/components/text-highlighter/index.js.map +1 -1
  210. package/lib/components/text-interpolation/YTi.js +2 -2
  211. package/lib/components/text-interpolation/YTi.js.map +1 -1
  212. package/lib/components/text-interpolation/index.js.map +1 -1
  213. package/lib/components/textarea/YTextarea.js +1 -2
  214. package/lib/components/textarea/YTextarea.js.map +1 -1
  215. package/lib/components/textarea/index.js.map +1 -1
  216. package/lib/components/toggle-button/YToggleButton.js.map +1 -1
  217. package/lib/components/toggle-button/index.js.map +1 -1
  218. package/lib/components/tooltip/YTooltip.js +1 -2
  219. package/lib/components/tooltip/YTooltip.js.map +1 -1
  220. package/lib/components/tooltip/index.js.map +1 -1
  221. package/lib/components/transitions/expand-transition.js.map +1 -1
  222. package/lib/components/transitions/index.js.map +1 -1
  223. package/lib/components/tree-view/YTreeView.js +1 -2
  224. package/lib/components/tree-view/YTreeView.js.map +1 -1
  225. package/lib/components/tree-view/YTreeViewNode.js +7 -4
  226. package/lib/components/tree-view/YTreeViewNode.js.map +1 -1
  227. package/lib/components/tree-view/index.js.map +1 -1
  228. package/lib/components/tree-view/tree-view.js.map +1 -1
  229. package/lib/components/tree-view/types.js.map +1 -1
  230. package/lib/components/tree-view/util.js.map +1 -1
  231. package/lib/composables/choice-link.js.map +1 -1
  232. package/lib/composables/choice.js.map +1 -1
  233. package/lib/composables/communication.js.map +1 -1
  234. package/lib/composables/component.js.map +1 -1
  235. package/lib/composables/coordinate/arrangement.js.map +1 -1
  236. package/lib/composables/coordinate/index.js.map +1 -1
  237. package/lib/composables/coordinate/levitation.js +2 -2
  238. package/lib/composables/coordinate/levitation.js.map +1 -1
  239. package/lib/composables/coordinate/types.js.map +1 -1
  240. package/lib/composables/coordinate/utils/point.js.map +1 -1
  241. package/lib/composables/date/factory.js.map +1 -1
  242. package/lib/composables/date/index.js.map +1 -1
  243. package/lib/composables/date/setting.js.map +1 -1
  244. package/lib/composables/date/types.js.map +1 -1
  245. package/lib/composables/defaults/index.js.map +1 -1
  246. package/lib/composables/defaults/share.js.map +1 -1
  247. package/lib/composables/defaults/types.js.map +1 -1
  248. package/lib/composables/dimension.js.map +1 -1
  249. package/lib/composables/focus.js.map +1 -1
  250. package/lib/composables/form.js +5 -5
  251. package/lib/composables/form.js.map +1 -1
  252. package/lib/composables/i18n/index.js.map +1 -1
  253. package/lib/composables/i18n/locale.js.map +1 -1
  254. package/lib/composables/i18n/rtl.js.map +1 -1
  255. package/lib/composables/i18n/share.js.map +1 -1
  256. package/lib/composables/icon.js +1 -2
  257. package/lib/composables/icon.js.map +1 -1
  258. package/lib/composables/index.js.map +1 -1
  259. package/lib/composables/layer-group.js.map +1 -1
  260. package/lib/composables/layout.js.map +1 -1
  261. package/lib/composables/list-items.js.map +1 -1
  262. package/lib/composables/progress.js.map +1 -1
  263. package/lib/composables/ref.js.map +1 -1
  264. package/lib/composables/resize-observer.js.map +1 -1
  265. package/lib/composables/scope.js.map +1 -1
  266. package/lib/composables/style-color.js +1 -2
  267. package/lib/composables/style-color.js.map +1 -1
  268. package/lib/composables/theme/factory.js.map +1 -1
  269. package/lib/composables/theme/helper.js.map +1 -1
  270. package/lib/composables/theme/index.js +8 -1
  271. package/lib/composables/theme/index.js.map +1 -1
  272. package/lib/composables/theme/setting.js.map +1 -1
  273. package/lib/composables/theme/types.js.map +1 -1
  274. package/lib/composables/timing.js.map +1 -1
  275. package/lib/composables/transition.js.map +1 -1
  276. package/lib/composables/validation.js +7 -4
  277. package/lib/composables/validation.js.map +1 -1
  278. package/lib/composables/vue-router.js.map +1 -1
  279. package/lib/directives/complement-click/index.js.map +1 -1
  280. package/lib/directives/index.js +3 -0
  281. package/lib/directives/index.js.map +1 -0
  282. package/lib/directives/plate-wave/index.js +2 -2
  283. package/lib/directives/plate-wave/index.js.map +1 -1
  284. package/lib/directives/plate-wave/plate-wave.scss +17 -6
  285. package/lib/directives/theme-class/index.js +24 -0
  286. package/lib/directives/theme-class/index.js.map +1 -0
  287. package/lib/etc/index.js.map +1 -1
  288. package/lib/i18n/built-in.js.map +1 -1
  289. package/lib/i18n/config.js.map +1 -1
  290. package/lib/i18n/types.js.map +1 -1
  291. package/lib/index.js +3 -3
  292. package/lib/index.js.map +1 -1
  293. package/lib/locales/en.js.map +1 -1
  294. package/lib/locales/index.js.map +1 -1
  295. package/lib/locales/ko.js.map +1 -1
  296. package/lib/mixins/di.js.map +1 -1
  297. package/lib/mixins/rebind-attrs.js +0 -2
  298. package/lib/mixins/rebind-attrs.js.map +1 -1
  299. package/lib/styles/_elevation.scss +0 -1
  300. package/lib/styles/base.scss +3 -1
  301. package/lib/styles/settings/_elevation.scss +12 -12
  302. package/lib/styles/settings/_provided.scss +23 -23
  303. package/lib/styles/theme/dark.scss +3 -3
  304. package/lib/styles/theme/index.scss +0 -1
  305. package/lib/styles/theme/light.scss +3 -3
  306. package/lib/styles/util/_mixin.scss +16 -16
  307. package/lib/types/index.js.map +1 -1
  308. package/lib/util/anchor.js.map +1 -1
  309. package/lib/util/array.js.map +1 -1
  310. package/lib/util/collection.js.map +1 -1
  311. package/lib/util/color/apca.js +1 -0
  312. package/lib/util/color/apca.js.map +1 -1
  313. package/lib/util/color/const.js.map +1 -1
  314. package/lib/util/color/contrast/contrast.js.map +1 -1
  315. package/lib/util/color/conversion.js.map +1 -1
  316. package/lib/util/color/hct/cam16.js.map +1 -1
  317. package/lib/util/color/hct/hct-solver.js +6 -6
  318. package/lib/util/color/hct/hct-solver.js.map +1 -1
  319. package/lib/util/color/hct/hct.js.map +1 -1
  320. package/lib/util/color/hct/viewing-conditions.js +6 -4
  321. package/lib/util/color/hct/viewing-conditions.js.map +1 -1
  322. package/lib/util/color/index.js +13 -13
  323. package/lib/util/color/index.js.map +1 -1
  324. package/lib/util/color/palettes/core-palette.js.map +1 -1
  325. package/lib/util/color/palettes/tonal-palette.js +3 -3
  326. package/lib/util/color/palettes/tonal-palette.js.map +1 -1
  327. package/lib/util/color/types.js.map +1 -1
  328. package/lib/util/color/utils/math-utils.js +62 -62
  329. package/lib/util/color/utils/math-utils.js.map +1 -1
  330. package/lib/util/common.js +28 -13
  331. package/lib/util/common.js.map +1 -1
  332. package/lib/util/component/component.js.map +1 -1
  333. package/lib/util/component/index.js.map +1 -1
  334. package/lib/util/component/inject-self.js.map +1 -1
  335. package/lib/util/component/props.js.map +1 -1
  336. package/lib/util/component/types.js.map +1 -1
  337. package/lib/util/date/adapters/yuyeon-date-adapter.js +3 -3
  338. package/lib/util/date/adapters/yuyeon-date-adapter.js.map +1 -1
  339. package/lib/util/date/built-in.js +2 -0
  340. package/lib/util/date/built-in.js.map +1 -1
  341. package/lib/util/date/index.js +1 -1
  342. package/lib/util/date/index.js.map +1 -1
  343. package/lib/util/date/types.js.map +1 -1
  344. package/lib/util/debounce.js +1 -1
  345. package/lib/util/debounce.js.map +1 -1
  346. package/lib/util/dom.js +10 -1
  347. package/lib/util/dom.js.map +1 -1
  348. package/lib/util/environments.js.map +1 -1
  349. package/lib/util/frame-scheduler.js +3 -3
  350. package/lib/util/frame-scheduler.js.map +1 -1
  351. package/lib/util/index.js +11 -11
  352. package/lib/util/index.js.map +1 -1
  353. package/lib/util/reactivity.js +3 -3
  354. package/lib/util/reactivity.js.map +1 -1
  355. package/lib/util/rect.js.map +1 -1
  356. package/lib/util/scroll.js.map +1 -1
  357. package/lib/util/string.js +6 -1
  358. package/lib/util/string.js.map +1 -1
  359. package/lib/util/ui.js +8 -7
  360. package/lib/util/ui.js.map +1 -1
  361. package/lib/util/validation.js.map +1 -1
  362. package/package.json +132 -123
  363. package/types/abstract/items.d.ts +4 -4
  364. package/types/components/alert/YAlert.d.ts +2 -2
  365. package/types/components/badge/YBadge.d.ts +0 -3
  366. package/types/components/button/YButton.d.ts +3 -3
  367. package/types/components/checkbox/YCheckbox.d.ts +4 -4
  368. package/types/components/chip/YChip.d.ts +0 -3
  369. package/types/components/date-picker/YDateCalendar.d.ts +3 -3
  370. package/types/components/date-picker/YDatePickerControl.d.ts +7 -7
  371. package/types/components/dialog/YDialog.d.ts +108 -6480
  372. package/types/components/draggable/YDraggable.d.ts +6 -6
  373. package/types/components/draggable/index.d.ts +1 -0
  374. package/types/components/dropdown/YDropdown.d.ts +87 -87
  375. package/types/components/field-input/YFieldInput.d.ts +20 -14
  376. package/types/components/form/YForm.d.ts +3 -3
  377. package/types/components/icon/YIcon.d.ts +4 -4
  378. package/types/components/icons/YIconPageControl.d.ts +1 -1
  379. package/types/components/icons/YIconSort.d.ts +1 -1
  380. package/types/components/icons/index.d.ts +4 -4
  381. package/types/components/img/YImg.d.ts +26 -26
  382. package/types/components/input/YInput.d.ts +13 -13
  383. package/types/components/ip-field/YIpv4Field.d.ts +5 -5
  384. package/types/components/layer/YLayer.d.ts +55 -3240
  385. package/types/components/layer/scroll-strategies.d.ts +4 -4
  386. package/types/components/menu/YMenu.d.ts +74 -6446
  387. package/types/components/pagination/YPagination.d.ts +3 -3
  388. package/types/components/radio/YRadio.d.ts +25 -0
  389. package/types/components/radio/YRadioIcon.d.ts +6 -0
  390. package/types/components/radio/index.d.ts +2 -0
  391. package/types/components/select/YSelect.d.ts +178 -496
  392. package/types/components/slider/YSlider.d.ts +1 -1
  393. package/types/components/snackbar/YSnackbar.d.ts +55 -55
  394. package/types/components/tab/YTab.d.ts +3 -3
  395. package/types/components/tab/YTabs.d.ts +1 -1
  396. package/types/components/table/YDataTable.d.ts +33 -87
  397. package/types/components/table/YDataTableBody.d.ts +3 -3
  398. package/types/components/table/YDataTableCell.d.ts +2 -2
  399. package/types/components/table/YDataTableControl.d.ts +18 -6
  400. package/types/components/table/YDataTableLayer.d.ts +2 -2
  401. package/types/components/table/YDataTableRow.d.ts +1 -1
  402. package/types/components/table/YDataTableServer.d.ts +54 -99
  403. package/types/components/table/YTable.d.ts +3 -3
  404. package/types/components/table/composables/expand.d.ts +4 -4
  405. package/types/components/table/composables/header.d.ts +16 -48
  406. package/types/components/table/composables/items.d.ts +2 -2
  407. package/types/components/table/composables/pagination.d.ts +10 -10
  408. package/types/components/table/composables/selection.d.ts +6 -6
  409. package/types/components/table/composables/sorting.d.ts +8 -14
  410. package/types/components/table/types/item.d.ts +1 -1
  411. package/types/components/textarea/YTextarea.d.ts +30 -30
  412. package/types/components/tooltip/YTooltip.d.ts +67 -67
  413. package/types/components/tree-view/YTreeView.d.ts +7 -7
  414. package/types/components/tree-view/YTreeViewNode.d.ts +5 -5
  415. package/types/components/tree-view/tree-view.d.ts +2 -2
  416. package/types/composables/choice.d.ts +2 -2
  417. package/types/composables/coordinate/index.d.ts +27 -3205
  418. package/types/composables/dimension.d.ts +6 -6
  419. package/types/composables/form.d.ts +17 -27
  420. package/types/composables/list-items.d.ts +3 -3
  421. package/types/composables/style-color.d.ts +0 -1
  422. package/types/composables/theme/index.d.ts +1 -0
  423. package/types/composables/transition.d.ts +10 -10
  424. package/types/composables/validation.d.ts +6 -6
  425. package/types/composables/vue-router.d.ts +3 -3
  426. package/types/declares.d.ts +1 -0
  427. package/types/directives/index.d.ts +2 -0
  428. package/types/directives/plate-wave/index.d.ts +7 -1
  429. package/types/globals.d.ts +19 -20
  430. package/types/shims.d.ts +58 -52
  431. package/types/src/abstract/items.d.ts +49 -0
  432. package/types/src/components/alert/YAlert.d.ts +13 -0
  433. package/types/src/components/alert/index.d.ts +1 -0
  434. package/types/src/components/app/YApp.d.ts +8 -0
  435. package/types/src/components/app/index.d.ts +1 -0
  436. package/types/src/components/badge/YBadge.d.ts +126 -0
  437. package/types/src/components/badge/index.d.ts +1 -0
  438. package/types/src/components/bench/YBench.d.ts +4 -0
  439. package/types/src/components/bench/index.d.ts +1 -0
  440. package/types/src/components/button/YButton.d.ts +189 -0
  441. package/types/src/components/button/index.d.ts +1 -0
  442. package/types/src/components/card/YCard.d.ts +9 -0
  443. package/types/src/components/card/YCardBody.d.ts +2 -0
  444. package/types/src/components/card/YCardFooter.d.ts +2 -0
  445. package/types/src/components/card/YCardHeader.d.ts +2 -0
  446. package/types/src/components/card/index.d.ts +4 -0
  447. package/types/src/components/checkbox/YCheckbox.d.ts +23 -0
  448. package/types/src/components/checkbox/YInputCheckbox.d.ts +31 -0
  449. package/types/src/components/checkbox/index.d.ts +4 -0
  450. package/types/src/components/chip/YChip.d.ts +37 -0
  451. package/types/src/components/chip/index.d.ts +1 -0
  452. package/types/src/components/date-picker/YDateCalendar.d.ts +115 -0
  453. package/types/src/components/date-picker/YDatePicker.d.ts +94 -0
  454. package/types/src/components/date-picker/YDatePickerControl.d.ts +97 -0
  455. package/types/src/components/date-picker/YMonthPicker.d.ts +25 -0
  456. package/types/src/components/date-picker/YYearPicker.d.ts +38 -0
  457. package/types/src/components/date-picker/index.d.ts +3 -0
  458. package/types/src/components/default-provider/YDefaultProvider.d.ts +0 -0
  459. package/types/src/components/default-provider/index.d.ts +0 -0
  460. package/types/src/components/dialog/YDialog.d.ts +715 -0
  461. package/types/src/components/dialog/index.d.ts +1 -0
  462. package/types/src/components/divider/YDivider.d.ts +14 -0
  463. package/types/src/components/divider/index.d.ts +1 -0
  464. package/types/src/components/draggable/YDraggable.d.ts +36 -0
  465. package/types/src/components/draggable/index.d.ts +1 -0
  466. package/types/src/components/dropdown/YDropdown.d.ts +574 -0
  467. package/types/src/components/dropdown/index.d.ts +1 -0
  468. package/types/src/components/field-input/YFieldInput.d.ts +322 -0
  469. package/types/src/components/field-input/index.d.ts +1 -0
  470. package/types/src/components/form/YForm.d.ts +20 -0
  471. package/types/src/components/form/index.d.ts +1 -0
  472. package/types/src/components/hover/YHover.d.ts +57 -0
  473. package/types/src/components/hover/index.d.ts +1 -0
  474. package/types/src/components/icon/YIcon.d.ts +67 -0
  475. package/types/src/components/icon/index.d.ts +1 -0
  476. package/types/src/components/icons/YIconCheckbox.d.ts +6 -0
  477. package/types/src/components/icons/YIconClear.d.ts +1 -0
  478. package/types/src/components/icons/YIconDropdown.d.ts +1 -0
  479. package/types/src/components/icons/YIconExpand.d.ts +1 -0
  480. package/types/src/components/icons/YIconPageControl.d.ts +14 -0
  481. package/types/src/components/icons/YIconSort.d.ts +10 -0
  482. package/types/src/components/icons/index.d.ts +51 -0
  483. package/types/src/components/img/YImg.d.ts +133 -0
  484. package/types/src/components/img/index.d.ts +0 -0
  485. package/types/src/components/index.d.ts +38 -0
  486. package/types/src/components/input/YInput.d.ts +249 -0
  487. package/types/src/components/input/index.d.ts +1 -0
  488. package/types/src/components/ip-field/YIpv4Field.d.ts +65 -0
  489. package/types/src/components/ip-field/index.d.ts +1 -0
  490. package/types/src/components/layer/YLayer.d.ts +436 -0
  491. package/types/src/components/layer/active-delay.d.ts +4 -0
  492. package/types/src/components/layer/active-stack.d.ts +16 -0
  493. package/types/src/components/layer/base.d.ts +28 -0
  494. package/types/src/components/layer/content.d.ts +21 -0
  495. package/types/src/components/layer/index.d.ts +1 -0
  496. package/types/src/components/layer/scroll-strategies.d.ts +41 -0
  497. package/types/src/components/list/YList.d.ts +19 -0
  498. package/types/src/components/list/YListItem.d.ts +42 -0
  499. package/types/src/components/list/index.d.ts +2 -0
  500. package/types/src/components/loading/YSpinnerRing.d.ts +3 -0
  501. package/types/src/components/loading/index.d.ts +1 -0
  502. package/types/src/components/menu/YMenu.d.ts +517 -0
  503. package/types/src/components/menu/index.d.ts +1 -0
  504. package/types/src/components/navigation/YNavigation.d.ts +1 -0
  505. package/types/src/components/navigation/index.d.ts +1 -0
  506. package/types/src/components/pagination/YPagination.d.ts +137 -0
  507. package/types/src/components/pagination/index.d.ts +1 -0
  508. package/types/src/components/panel/YDividePanel.d.ts +5 -0
  509. package/types/src/components/panel/index.d.ts +1 -0
  510. package/types/src/components/plate/YPlate.d.ts +9 -0
  511. package/types/src/components/plate/index.d.ts +1 -0
  512. package/types/src/components/progress-bar/YProgressBar.d.ts +38 -0
  513. package/types/src/components/progress-bar/index.d.ts +1 -0
  514. package/types/src/components/progress-ring/YProgressRing.d.ts +34 -0
  515. package/types/src/components/progress-ring/index.d.ts +1 -0
  516. package/types/src/components/radio/YRadio.d.ts +25 -0
  517. package/types/src/components/radio/YRadioIcon.d.ts +6 -0
  518. package/types/src/components/radio/index.d.ts +2 -0
  519. package/types/src/components/select/YSelect.d.ts +1221 -0
  520. package/types/src/components/select/index.d.ts +1 -0
  521. package/types/src/components/slider/YSlider.d.ts +16 -0
  522. package/types/src/components/slider/index.d.ts +1 -0
  523. package/types/src/components/slider/slider.d.ts +0 -0
  524. package/types/src/components/snackbar/YSnackbar.d.ts +452 -0
  525. package/types/src/components/snackbar/index.d.ts +1 -0
  526. package/types/src/components/switch/YSwitch.d.ts +137 -0
  527. package/types/src/components/switch/index.d.ts +1 -0
  528. package/types/src/components/tab/YTab.d.ts +218 -0
  529. package/types/src/components/tab/YTabs.d.ts +98 -0
  530. package/types/src/components/tab/index.d.ts +3 -0
  531. package/types/src/components/tab/shared.d.ts +4 -0
  532. package/types/src/components/tab/types.d.ts +5 -0
  533. package/types/src/components/table/YDataTable.d.ts +459 -0
  534. package/types/src/components/table/YDataTableBody.d.ts +99 -0
  535. package/types/src/components/table/YDataTableCell.d.ts +32 -0
  536. package/types/src/components/table/YDataTableControl.d.ts +68 -0
  537. package/types/src/components/table/YDataTableHead.d.ts +54 -0
  538. package/types/src/components/table/YDataTableLayer.d.ts +13 -0
  539. package/types/src/components/table/YDataTableLayerRow.d.ts +22 -0
  540. package/types/src/components/table/YDataTableLayerRows.d.ts +9 -0
  541. package/types/src/components/table/YDataTableRow.d.ts +53 -0
  542. package/types/src/components/table/YDataTableServer.d.ts +502 -0
  543. package/types/src/components/table/YTable.d.ts +65 -0
  544. package/types/src/components/table/composables/expand.d.ts +42 -0
  545. package/types/src/components/table/composables/header.d.ts +175 -0
  546. package/types/src/components/table/composables/items.d.ts +55 -0
  547. package/types/src/components/table/composables/measure.d.ts +8 -0
  548. package/types/src/components/table/composables/options.d.ts +11 -0
  549. package/types/src/components/table/composables/pagination.d.ts +81 -0
  550. package/types/src/components/table/composables/provides.d.ts +15 -0
  551. package/types/src/components/table/composables/selection.d.ts +82 -0
  552. package/types/src/components/table/composables/sorted-items.d.ts +7 -0
  553. package/types/src/components/table/composables/sorting.d.ts +56 -0
  554. package/types/src/components/table/index.d.ts +10 -0
  555. package/types/src/components/table/types/common.d.ts +2 -0
  556. package/types/src/components/table/types/header.d.ts +25 -0
  557. package/types/src/components/table/types/index.d.ts +59 -0
  558. package/types/src/components/table/types/item.d.ts +23 -0
  559. package/types/src/components/table/types/row.d.ts +4 -0
  560. package/types/src/components/text-ellipsis/YTextEllipsis.d.ts +11 -0
  561. package/types/src/components/text-ellipsis/index.d.ts +1 -0
  562. package/types/src/components/text-highlighter/YTextHighlighter.d.ts +26 -0
  563. package/types/src/components/text-highlighter/index.d.ts +1 -0
  564. package/types/src/components/text-interpolation/YTi.d.ts +11 -0
  565. package/types/src/components/text-interpolation/index.d.ts +1 -0
  566. package/types/src/components/textarea/YTextarea.d.ts +583 -0
  567. package/types/src/components/textarea/index.d.ts +1 -0
  568. package/types/src/components/toggle-button/YToggleButton.d.ts +4 -0
  569. package/types/src/components/toggle-button/index.d.ts +1 -0
  570. package/types/src/components/tooltip/YTooltip.d.ts +502 -0
  571. package/types/src/components/tooltip/index.d.ts +1 -0
  572. package/types/src/components/transitions/expand-transition.d.ts +20 -0
  573. package/types/src/components/transitions/index.d.ts +38 -0
  574. package/types/src/components/tree-view/YTreeView.d.ts +172 -0
  575. package/types/src/components/tree-view/YTreeViewNode.d.ts +176 -0
  576. package/types/src/components/tree-view/index.d.ts +2 -0
  577. package/types/src/components/tree-view/tree-view.d.ts +51 -0
  578. package/types/src/components/tree-view/types.d.ts +17 -0
  579. package/types/src/components/tree-view/util.d.ts +6 -0
  580. package/types/src/composables/choice-link.d.ts +3 -0
  581. package/types/src/composables/choice.d.ts +113 -0
  582. package/types/src/composables/communication.d.ts +8 -0
  583. package/types/src/composables/component.d.ts +3 -0
  584. package/types/src/composables/coordinate/arrangement.d.ts +7 -0
  585. package/types/src/composables/coordinate/index.d.ts +87 -0
  586. package/types/src/composables/coordinate/levitation.d.ts +7 -0
  587. package/types/src/composables/coordinate/types.d.ts +7 -0
  588. package/types/src/composables/coordinate/utils/point.d.ts +22 -0
  589. package/types/src/composables/date/factory.d.ts +3 -0
  590. package/types/src/composables/date/index.d.ts +12 -0
  591. package/types/src/composables/date/setting.d.ts +5 -0
  592. package/types/src/composables/date/types.d.ts +13 -0
  593. package/types/src/composables/defaults/index.d.ts +11 -0
  594. package/types/src/composables/defaults/share.d.ts +4 -0
  595. package/types/src/composables/defaults/types.d.ts +12 -0
  596. package/types/src/composables/dimension.d.ts +54 -0
  597. package/types/src/composables/focus.d.ts +30 -0
  598. package/types/src/composables/form.d.ts +132 -0
  599. package/types/src/composables/i18n/index.d.ts +9 -0
  600. package/types/src/composables/i18n/locale.d.ts +3 -0
  601. package/types/src/composables/i18n/rtl.d.ts +21 -0
  602. package/types/src/composables/i18n/share.d.ts +1 -0
  603. package/types/src/composables/icon.d.ts +79 -0
  604. package/types/src/composables/index.d.ts +10 -0
  605. package/types/src/composables/layer-group.d.ts +10 -0
  606. package/types/src/composables/layout.d.ts +10 -0
  607. package/types/src/composables/list-items.d.ts +113 -0
  608. package/types/src/composables/progress.d.ts +4 -0
  609. package/types/src/composables/ref.d.ts +6 -0
  610. package/types/src/composables/resize-observer.d.ts +24 -0
  611. package/types/src/composables/scope.d.ts +3 -0
  612. package/types/src/composables/style-color.d.ts +14 -0
  613. package/types/src/composables/theme/factory.d.ts +4 -0
  614. package/types/src/composables/theme/helper.d.ts +3 -0
  615. package/types/src/composables/theme/index.d.ts +57 -0
  616. package/types/src/composables/theme/setting.d.ts +11 -0
  617. package/types/src/composables/theme/types.d.ts +29 -0
  618. package/types/src/composables/timing.d.ts +20 -0
  619. package/types/src/composables/transition.d.ts +40 -0
  620. package/types/src/composables/validation.d.ts +82 -0
  621. package/types/src/composables/vue-router.d.ts +43 -0
  622. package/types/src/declares.d.ts +1 -0
  623. package/types/src/directives/complement-click/index.d.ts +26 -0
  624. package/types/src/directives/index.d.ts +2 -0
  625. package/types/src/directives/plate-wave/index.d.ts +20 -0
  626. package/types/src/directives/theme-class/index.d.ts +4 -0
  627. package/types/src/etc/index.d.ts +1 -0
  628. package/types/src/globals.d.ts +20 -0
  629. package/types/src/i18n/built-in.d.ts +3 -0
  630. package/types/src/i18n/config.d.ts +81 -0
  631. package/types/src/i18n/types.d.ts +20 -0
  632. package/types/src/index.d.ts +13 -0
  633. package/types/src/locales/en.d.ts +6 -0
  634. package/types/src/locales/index.d.ts +2 -0
  635. package/types/src/locales/ko.d.ts +6 -0
  636. package/types/src/mixins/di.d.ts +2 -0
  637. package/types/src/mixins/rebind-attrs.d.ts +5 -0
  638. package/types/src/shims.d.ts +64 -0
  639. package/types/src/types/index.d.ts +9 -0
  640. package/types/src/util/anchor.d.ts +23 -0
  641. package/types/src/util/array.d.ts +2 -0
  642. package/types/src/util/collection.d.ts +1 -0
  643. package/types/src/util/color/apca.d.ts +29 -0
  644. package/types/src/util/color/const.d.ts +5 -0
  645. package/types/src/util/color/contrast/contrast.d.ts +74 -0
  646. package/types/src/util/color/conversion.d.ts +131 -0
  647. package/types/src/util/color/hct/cam16.d.ts +116 -0
  648. package/types/src/util/color/hct/hct-solver.d.ts +131 -0
  649. package/types/src/util/color/hct/hct.d.ts +71 -0
  650. package/types/src/util/color/hct/viewing-conditions.d.ts +58 -0
  651. package/types/src/util/color/index.d.ts +5 -0
  652. package/types/src/util/color/palettes/core-palette.d.ts +44 -0
  653. package/types/src/util/color/palettes/tonal-palette.d.ts +40 -0
  654. package/types/src/util/color/types.d.ts +14 -0
  655. package/types/src/util/color/utils/math-utils.d.ts +82 -0
  656. package/types/src/util/common.d.ts +17 -0
  657. package/types/src/util/component/component.d.ts +5 -0
  658. package/types/src/util/component/index.d.ts +11 -0
  659. package/types/src/util/component/inject-self.d.ts +3 -0
  660. package/types/src/util/component/props.d.ts +32 -0
  661. package/types/src/util/component/types.d.ts +21 -0
  662. package/types/src/util/date/adapters/yuyeon-date-adapter.d.ts +43 -0
  663. package/types/src/util/date/built-in.d.ts +41 -0
  664. package/types/src/util/date/index.d.ts +3 -0
  665. package/types/src/util/date/types.d.ts +167 -0
  666. package/types/src/util/debounce.d.ts +11 -0
  667. package/types/src/util/dom.d.ts +5 -0
  668. package/types/src/util/environments.d.ts +6 -0
  669. package/types/src/util/frame-scheduler.d.ts +7 -0
  670. package/types/src/util/index.d.ts +16 -0
  671. package/types/src/util/reactivity.d.ts +7 -0
  672. package/types/src/util/rect.d.ts +36 -0
  673. package/types/src/util/scroll.d.ts +3 -0
  674. package/types/src/util/string.d.ts +9 -0
  675. package/types/src/util/ui.d.ts +4 -0
  676. package/types/src/util/validation.d.ts +3 -0
  677. package/types/types/index.d.ts +3 -0
  678. package/types/util/anchor.d.ts +1 -1
  679. package/types/util/common.d.ts +3 -0
  680. package/types/util/component/component.d.ts +1 -2
  681. package/types/util/component/props.d.ts +1 -1
  682. package/types/util/component/types.d.ts +1 -1
  683. package/types/util/date/index.d.ts +1 -1
  684. package/types/util/dom.d.ts +2 -0
  685. package/types/util/index.d.ts +11 -11
  686. package/types/util/string.d.ts +1 -0
  687. /package/types/directives/{theme-class.d.ts → theme-class/index.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"conversion.js","names":["SRGB_TO_XYZ","WHITE_POINT_D65","XYZ_TO_SRGB","mathUtils","rgbFromHex","color","hexCodeStr","substring","length","hexCodeLength","rgbValues","multiple","i","hexCode","push","Number","parseInt","undefined","hexFromRgb","red","green","blue","hex","toString","padStart","hexFromArgb","argb","argbFromRgb","argbFromLinrgb","linrgb","r","delinearized","g","b","alphaFromArgb","redFromArgb","greenFromArgb","blueFromArgb","isOpaque","argbFromXyz","x","y","z","matrix","linearR","linearG","linearB","xyzFromArgb","linearized","matrixMultiply","argbFromLab","l","a","whitePoint","fy","fx","fz","xNormalized","labInvf","yNormalized","zNormalized","labFromArgb","labF","argbFromLstar","lstar","yFromLstar","component","lstarFromArgb","lstarFromY","rgbComponent","normalized","Math","pow","clampInt","round","whitePointD65","rgbaFromArgb","argbFromRgba","_ref","rValue","clampComponent","gValue","bValue","aValue","value","t","e","kappa","ft","ft3"],"sources":["../../../src/util/color/conversion.ts"],"sourcesContent":["import { SRGB_TO_XYZ, WHITE_POINT_D65, XYZ_TO_SRGB } from './const';\nimport { Rgba } from './types';\nimport * as mathUtils from './utils/math-utils';\n\nexport function rgbFromHex(color: string): number[] | undefined {\n if (color && color[0] === '#') {\n const hexCodeStr = color.substring(1, color.length);\n const hexCodeLength = hexCodeStr.length;\n const rgbValues = [];\n if (hexCodeLength === 3 || hexCodeLength === 6) {\n const multiple = hexCodeLength === 6 ? 2 : 1;\n for (let i = 0; i < 3; i += 1) {\n const hexCode = hexCodeStr.substring(\n i * multiple,\n i * multiple + multiple,\n );\n rgbValues.push(Number.parseInt(hexCode, 16));\n }\n return rgbValues;\n }\n }\n return undefined;\n}\n\nexport function hexFromRgb(red: number, green: number, blue: number) {\n const hex = (\n (((red & 255) << 16) | ((green & 255) << 8) | (blue & 255)) >>>\n 0\n )\n .toString(16)\n .padStart(6, '0');\n return `#${hex}`;\n}\n\nexport function hexFromArgb(argb: number) {\n return `#${(argb & 16777215).toString(16)}`;\n}\n\n/**\n * Converts a color from RGB components to ARGB format.\n */\nexport function argbFromRgb(red: number, green: number, blue: number): number {\n return (\n ((255 << 24) |\n ((red & 255) << 16) |\n ((green & 255) << 8) |\n (blue & 255)) >>>\n 0\n );\n}\n\n/**\n * Converts a color from linear RGB components to ARGB format.\n */\nexport function argbFromLinrgb(linrgb: number[]): number {\n const r = delinearized(linrgb[0]);\n const g = delinearized(linrgb[1]);\n const b = delinearized(linrgb[2]);\n return argbFromRgb(r, g, b);\n}\n\n/**\n * Returns the alpha component of a color in ARGB format.\n */\nexport function alphaFromArgb(argb: number): number {\n return (argb >> 24) & 255;\n}\n\n/**\n * Returns the red component of a color in ARGB format.\n */\nexport function redFromArgb(argb: number): number {\n return (argb >> 16) & 255;\n}\n\n/**\n * Returns the green component of a color in ARGB format.\n */\nexport function greenFromArgb(argb: number): number {\n return (argb >> 8) & 255;\n}\n\n/**\n * Returns the blue component of a color in ARGB format.\n */\nexport function blueFromArgb(argb: number): number {\n return argb & 255;\n}\n\n/**\n * Returns whether a color in ARGB format is opaque.\n */\nexport function isOpaque(argb: number): boolean {\n return alphaFromArgb(argb) >= 255;\n}\n\n/**\n * Converts a color from ARGB to XYZ.\n */\nexport function argbFromXyz(x: number, y: number, z: number): number {\n const matrix = XYZ_TO_SRGB;\n const linearR = matrix[0][0] * x + matrix[0][1] * y + matrix[0][2] * z;\n const linearG = matrix[1][0] * x + matrix[1][1] * y + matrix[1][2] * z;\n const linearB = matrix[2][0] * x + matrix[2][1] * y + matrix[2][2] * z;\n const r = delinearized(linearR);\n const g = delinearized(linearG);\n const b = delinearized(linearB);\n return argbFromRgb(r, g, b);\n}\n\n/**\n * Converts a color from XYZ to ARGB.\n */\nexport function xyzFromArgb(argb: number): number[] {\n const r = linearized(redFromArgb(argb));\n const g = linearized(greenFromArgb(argb));\n const b = linearized(blueFromArgb(argb));\n return mathUtils.matrixMultiply([r, g, b], SRGB_TO_XYZ);\n}\n\n/**\n * Converts a color represented in Lab color space into an ARGB\n * integer.\n */\nexport function argbFromLab(l: number, a: number, b: number): number {\n const whitePoint = WHITE_POINT_D65;\n const fy = (l + 16.0) / 116.0;\n const fx = a / 500.0 + fy;\n const fz = fy - b / 200.0;\n const xNormalized = labInvf(fx);\n const yNormalized = labInvf(fy);\n const zNormalized = labInvf(fz);\n const x = xNormalized * whitePoint[0];\n const y = yNormalized * whitePoint[1];\n const z = zNormalized * whitePoint[2];\n return argbFromXyz(x, y, z);\n}\n\n/**\n * Converts a color from ARGB representation to L*a*b*\n * representation.\n *\n * @param argb the ARGB representation of a color\n * @return a Lab object representing the color\n */\nexport function labFromArgb(argb: number): number[] {\n const linearR = linearized(redFromArgb(argb));\n const linearG = linearized(greenFromArgb(argb));\n const linearB = linearized(blueFromArgb(argb));\n const matrix = SRGB_TO_XYZ;\n const x =\n matrix[0][0] * linearR + matrix[0][1] * linearG + matrix[0][2] * linearB;\n const y =\n matrix[1][0] * linearR + matrix[1][1] * linearG + matrix[1][2] * linearB;\n const z =\n matrix[2][0] * linearR + matrix[2][1] * linearG + matrix[2][2] * linearB;\n const whitePoint = WHITE_POINT_D65;\n const xNormalized = x / whitePoint[0];\n const yNormalized = y / whitePoint[1];\n const zNormalized = z / whitePoint[2];\n const fx = labF(xNormalized);\n const fy = labF(yNormalized);\n const fz = labF(zNormalized);\n const l = 116.0 * fy - 16;\n const a = 500.0 * (fx - fy);\n const b = 200.0 * (fy - fz);\n return [l, a, b];\n}\n\n/**\n * Converts an L* value to an ARGB representation.\n *\n * @param lstar L* in L*a*b*\n * @return ARGB representation of grayscale color with lightness\n * matching L*\n */\nexport function argbFromLstar(lstar: number): number {\n const y = yFromLstar(lstar);\n const component = delinearized(y);\n return argbFromRgb(component, component, component);\n}\n\n/**\n * Computes the L* value of a color in ARGB representation.\n *\n * @param argb ARGB representation of a color\n * @return L*, from L*a*b*, coordinate of the color\n */\nexport function lstarFromArgb(argb: number): number {\n const y = xyzFromArgb(argb)[1];\n return 116.0 * labF(y / 100.0) - 16.0;\n}\n\n/**\n * Converts an L* value to a Y value.\n *\n * L* in L*a*b* and Y in XYZ measure the same quantity, luminance.\n *\n * L* measures perceptual luminance, a linear scale. Y in XYZ\n * measures relative luminance, a logarithmic scale.\n *\n * @param lstar L* in L*a*b*\n * @return Y in XYZ\n */\nexport function yFromLstar(lstar: number): number {\n return 100.0 * labInvf((lstar + 16.0) / 116.0);\n}\n\n/**\n * Converts a Y value to an L* value.\n *\n * L* in L*a*b* and Y in XYZ measure the same quantity, luminance.\n *\n * L* measures perceptual luminance, a linear scale. Y in XYZ\n * measures relative luminance, a logarithmic scale.\n *\n * @param y Y in XYZ\n * @return L* in L*a*b*\n */\nexport function lstarFromY(y: number): number {\n return labF(y / 100.0) * 116.0 - 16.0;\n}\n\n/**\n * Linearizes an RGB component.\n *\n * @param rgbComponent 0 <= rgb_component <= 255, represents R/G/B\n * channel\n * @return 0.0 <= output <= 100.0, color channel converted to\n * linear RGB space\n */\nexport function linearized(rgbComponent: number): number {\n const normalized = rgbComponent / 255.0;\n if (normalized <= 0.040449936) {\n return (normalized / 12.92) * 100.0;\n } else {\n return Math.pow((normalized + 0.055) / 1.055, 2.4) * 100.0;\n }\n}\n\n/**\n * Delinearizes an RGB component.\n *\n * @param rgbComponent 0.0 <= rgb_component <= 100.0, represents\n * linear R/G/B channel\n * @return 0 <= output <= 255, color channel converted to regular\n * RGB space\n */\nexport function delinearized(rgbComponent: number): number {\n const normalized = rgbComponent / 100.0;\n let delinearized = 0.0;\n if (normalized <= 0.0031308) {\n delinearized = normalized * 12.92;\n } else {\n delinearized = 1.055 * Math.pow(normalized, 1.0 / 2.4) - 0.055;\n }\n return mathUtils.clampInt(0, 255, Math.round(delinearized * 255.0));\n}\n\n/**\n * Returns the standard white point; white on a sunny day.\n *\n * @return The white point\n */\nexport function whitePointD65(): number[] {\n return WHITE_POINT_D65;\n}\n\n/**\n * Return RGBA from a given int32 color\n *\n * @param argb ARGB representation of a int32 color.\n * @return RGBA representation of a int32 color.\n */\nexport function rgbaFromArgb(argb: number): Rgba {\n const r = redFromArgb(argb);\n const g = greenFromArgb(argb);\n const b = blueFromArgb(argb);\n const a = alphaFromArgb(argb);\n return { r, g, b, a };\n}\n\n/**\n * Return int32 color from a given RGBA component\n *\n * @param rgba RGBA representation of a int32 color.\n * @returns ARGB representation of a int32 color.\n */\nexport function argbFromRgba({ r, g, b, a }: Rgba): number {\n const rValue = clampComponent(r);\n const gValue = clampComponent(g);\n const bValue = clampComponent(b);\n const aValue = clampComponent(a);\n return (aValue << 24) | (rValue << 16) | (gValue << 8) | bValue;\n}\n\nfunction clampComponent(value: number) {\n if (value < 0) return 0;\n if (value > 255) return 255;\n return value;\n}\n\nfunction labF(t: number): number {\n const e = 216.0 / 24389.0;\n const kappa = 24389.0 / 27.0;\n if (t > e) {\n return Math.pow(t, 1.0 / 3.0);\n } else {\n return (kappa * t + 16) / 116;\n }\n}\n\nfunction labInvf(ft: number): number {\n const e = 216.0 / 24389.0;\n const kappa = 24389.0 / 27.0;\n const ft3 = ft * ft * ft;\n if (ft3 > e) {\n return ft3;\n } else {\n return (116 * ft - 16) / kappa;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"conversion.js","names":["SRGB_TO_XYZ","WHITE_POINT_D65","XYZ_TO_SRGB","mathUtils","rgbFromHex","color","hexCodeStr","substring","length","hexCodeLength","rgbValues","multiple","i","hexCode","push","Number","parseInt","undefined","hexFromRgb","red","green","blue","hex","toString","padStart","hexFromArgb","argb","argbFromRgb","argbFromLinrgb","linrgb","r","delinearized","g","b","alphaFromArgb","redFromArgb","greenFromArgb","blueFromArgb","isOpaque","argbFromXyz","x","y","z","matrix","linearR","linearG","linearB","xyzFromArgb","linearized","matrixMultiply","argbFromLab","l","a","whitePoint","fy","fx","fz","xNormalized","labInvf","yNormalized","zNormalized","labFromArgb","labF","argbFromLstar","lstar","yFromLstar","component","lstarFromArgb","lstarFromY","rgbComponent","normalized","Math","pow","clampInt","round","whitePointD65","rgbaFromArgb","argbFromRgba","_ref","rValue","clampComponent","gValue","bValue","aValue","value","t","e","kappa","ft","ft3"],"sources":["../../../src/util/color/conversion.ts"],"sourcesContent":["import { SRGB_TO_XYZ, WHITE_POINT_D65, XYZ_TO_SRGB } from './const';\nimport { Rgba } from './types';\nimport * as mathUtils from './utils/math-utils';\n\nexport function rgbFromHex(color: string): number[] | undefined {\n if (color && color[0] === '#') {\n const hexCodeStr = color.substring(1, color.length);\n const hexCodeLength = hexCodeStr.length;\n const rgbValues = [];\n if (hexCodeLength === 3 || hexCodeLength === 6) {\n const multiple = hexCodeLength === 6 ? 2 : 1;\n for (let i = 0; i < 3; i += 1) {\n const hexCode = hexCodeStr.substring(\n i * multiple,\n i * multiple + multiple,\n );\n rgbValues.push(Number.parseInt(hexCode, 16));\n }\n return rgbValues;\n }\n }\n return undefined;\n}\n\nexport function hexFromRgb(red: number, green: number, blue: number) {\n const hex = (\n (((red & 255) << 16) | ((green & 255) << 8) | (blue & 255)) >>>\n 0\n )\n .toString(16)\n .padStart(6, '0');\n return `#${hex}`;\n}\n\nexport function hexFromArgb(argb: number) {\n return `#${(argb & 16777215).toString(16)}`;\n}\n\n/**\n * Converts a color from RGB components to ARGB format.\n */\nexport function argbFromRgb(red: number, green: number, blue: number): number {\n return (\n ((255 << 24) |\n ((red & 255) << 16) |\n ((green & 255) << 8) |\n (blue & 255)) >>>\n 0\n );\n}\n\n/**\n * Converts a color from linear RGB components to ARGB format.\n */\nexport function argbFromLinrgb(linrgb: number[]): number {\n const r = delinearized(linrgb[0]);\n const g = delinearized(linrgb[1]);\n const b = delinearized(linrgb[2]);\n return argbFromRgb(r, g, b);\n}\n\n/**\n * Returns the alpha component of a color in ARGB format.\n */\nexport function alphaFromArgb(argb: number): number {\n return (argb >> 24) & 255;\n}\n\n/**\n * Returns the red component of a color in ARGB format.\n */\nexport function redFromArgb(argb: number): number {\n return (argb >> 16) & 255;\n}\n\n/**\n * Returns the green component of a color in ARGB format.\n */\nexport function greenFromArgb(argb: number): number {\n return (argb >> 8) & 255;\n}\n\n/**\n * Returns the blue component of a color in ARGB format.\n */\nexport function blueFromArgb(argb: number): number {\n return argb & 255;\n}\n\n/**\n * Returns whether a color in ARGB format is opaque.\n */\nexport function isOpaque(argb: number): boolean {\n return alphaFromArgb(argb) >= 255;\n}\n\n/**\n * Converts a color from ARGB to XYZ.\n */\nexport function argbFromXyz(x: number, y: number, z: number): number {\n const matrix = XYZ_TO_SRGB;\n const linearR = matrix[0][0] * x + matrix[0][1] * y + matrix[0][2] * z;\n const linearG = matrix[1][0] * x + matrix[1][1] * y + matrix[1][2] * z;\n const linearB = matrix[2][0] * x + matrix[2][1] * y + matrix[2][2] * z;\n const r = delinearized(linearR);\n const g = delinearized(linearG);\n const b = delinearized(linearB);\n return argbFromRgb(r, g, b);\n}\n\n/**\n * Converts a color from XYZ to ARGB.\n */\nexport function xyzFromArgb(argb: number): number[] {\n const r = linearized(redFromArgb(argb));\n const g = linearized(greenFromArgb(argb));\n const b = linearized(blueFromArgb(argb));\n return mathUtils.matrixMultiply([r, g, b], SRGB_TO_XYZ);\n}\n\n/**\n * Converts a color represented in Lab color space into an ARGB\n * integer.\n */\nexport function argbFromLab(l: number, a: number, b: number): number {\n const whitePoint = WHITE_POINT_D65;\n const fy = (l + 16.0) / 116.0;\n const fx = a / 500.0 + fy;\n const fz = fy - b / 200.0;\n const xNormalized = labInvf(fx);\n const yNormalized = labInvf(fy);\n const zNormalized = labInvf(fz);\n const x = xNormalized * whitePoint[0];\n const y = yNormalized * whitePoint[1];\n const z = zNormalized * whitePoint[2];\n return argbFromXyz(x, y, z);\n}\n\n/**\n * Converts a color from ARGB representation to L*a*b*\n * representation.\n *\n * @param argb the ARGB representation of a color\n * @return a Lab object representing the color\n */\nexport function labFromArgb(argb: number): number[] {\n const linearR = linearized(redFromArgb(argb));\n const linearG = linearized(greenFromArgb(argb));\n const linearB = linearized(blueFromArgb(argb));\n const matrix = SRGB_TO_XYZ;\n const x =\n matrix[0][0] * linearR + matrix[0][1] * linearG + matrix[0][2] * linearB;\n const y =\n matrix[1][0] * linearR + matrix[1][1] * linearG + matrix[1][2] * linearB;\n const z =\n matrix[2][0] * linearR + matrix[2][1] * linearG + matrix[2][2] * linearB;\n const whitePoint = WHITE_POINT_D65;\n const xNormalized = x / whitePoint[0];\n const yNormalized = y / whitePoint[1];\n const zNormalized = z / whitePoint[2];\n const fx = labF(xNormalized);\n const fy = labF(yNormalized);\n const fz = labF(zNormalized);\n const l = 116.0 * fy - 16;\n const a = 500.0 * (fx - fy);\n const b = 200.0 * (fy - fz);\n return [l, a, b];\n}\n\n/**\n * Converts an L* value to an ARGB representation.\n *\n * @param lstar L* in L*a*b*\n * @return ARGB representation of grayscale color with lightness\n * matching L*\n */\nexport function argbFromLstar(lstar: number): number {\n const y = yFromLstar(lstar);\n const component = delinearized(y);\n return argbFromRgb(component, component, component);\n}\n\n/**\n * Computes the L* value of a color in ARGB representation.\n *\n * @param argb ARGB representation of a color\n * @return L*, from L*a*b*, coordinate of the color\n */\nexport function lstarFromArgb(argb: number): number {\n const y = xyzFromArgb(argb)[1];\n return 116.0 * labF(y / 100.0) - 16.0;\n}\n\n/**\n * Converts an L* value to a Y value.\n *\n * L* in L*a*b* and Y in XYZ measure the same quantity, luminance.\n *\n * L* measures perceptual luminance, a linear scale. Y in XYZ\n * measures relative luminance, a logarithmic scale.\n *\n * @param lstar L* in L*a*b*\n * @return Y in XYZ\n */\nexport function yFromLstar(lstar: number): number {\n return 100.0 * labInvf((lstar + 16.0) / 116.0);\n}\n\n/**\n * Converts a Y value to an L* value.\n *\n * L* in L*a*b* and Y in XYZ measure the same quantity, luminance.\n *\n * L* measures perceptual luminance, a linear scale. Y in XYZ\n * measures relative luminance, a logarithmic scale.\n *\n * @param y Y in XYZ\n * @return L* in L*a*b*\n */\nexport function lstarFromY(y: number): number {\n return labF(y / 100.0) * 116.0 - 16.0;\n}\n\n/**\n * Linearizes an RGB component.\n *\n * @param rgbComponent 0 <= rgb_component <= 255, represents R/G/B\n * channel\n * @return 0.0 <= output <= 100.0, color channel converted to\n * linear RGB space\n */\nexport function linearized(rgbComponent: number): number {\n const normalized = rgbComponent / 255.0;\n if (normalized <= 0.040449936) {\n return (normalized / 12.92) * 100.0;\n } else {\n return Math.pow((normalized + 0.055) / 1.055, 2.4) * 100.0;\n }\n}\n\n/**\n * Delinearizes an RGB component.\n *\n * @param rgbComponent 0.0 <= rgb_component <= 100.0, represents\n * linear R/G/B channel\n * @return 0 <= output <= 255, color channel converted to regular\n * RGB space\n */\nexport function delinearized(rgbComponent: number): number {\n const normalized = rgbComponent / 100.0;\n let delinearized = 0.0;\n if (normalized <= 0.0031308) {\n delinearized = normalized * 12.92;\n } else {\n delinearized = 1.055 * Math.pow(normalized, 1.0 / 2.4) - 0.055;\n }\n return mathUtils.clampInt(0, 255, Math.round(delinearized * 255.0));\n}\n\n/**\n * Returns the standard white point; white on a sunny day.\n *\n * @return The white point\n */\nexport function whitePointD65(): number[] {\n return WHITE_POINT_D65;\n}\n\n/**\n * Return RGBA from a given int32 color\n *\n * @param argb ARGB representation of a int32 color.\n * @return RGBA representation of a int32 color.\n */\nexport function rgbaFromArgb(argb: number): Rgba {\n const r = redFromArgb(argb);\n const g = greenFromArgb(argb);\n const b = blueFromArgb(argb);\n const a = alphaFromArgb(argb);\n return { r, g, b, a };\n}\n\n/**\n * Return int32 color from a given RGBA component\n *\n * @param rgba RGBA representation of a int32 color.\n * @returns ARGB representation of a int32 color.\n */\nexport function argbFromRgba({ r, g, b, a }: Rgba): number {\n const rValue = clampComponent(r);\n const gValue = clampComponent(g);\n const bValue = clampComponent(b);\n const aValue = clampComponent(a);\n return (aValue << 24) | (rValue << 16) | (gValue << 8) | bValue;\n}\n\nfunction clampComponent(value: number) {\n if (value < 0) return 0;\n if (value > 255) return 255;\n return value;\n}\n\nfunction labF(t: number): number {\n const e = 216.0 / 24389.0;\n const kappa = 24389.0 / 27.0;\n if (t > e) {\n return Math.pow(t, 1.0 / 3.0);\n } else {\n return (kappa * t + 16) / 116;\n }\n}\n\nfunction labInvf(ft: number): number {\n const e = 216.0 / 24389.0;\n const kappa = 24389.0 / 27.0;\n const ft3 = ft * ft * ft;\n if (ft3 > e) {\n return ft3;\n } else {\n return (116 * ft - 16) / kappa;\n }\n}\n"],"mappings":"SAASA,WAAW,EAAEC,eAAe,EAAEC,WAAW;AAAA,OAE3C,KAAKC,SAAS;AAErB,OAAO,SAASC,UAAUA,CAACC,KAAa,EAAwB;EAC9D,IAAIA,KAAK,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC7B,MAAMC,UAAU,GAAGD,KAAK,CAACE,SAAS,CAAC,CAAC,EAAEF,KAAK,CAACG,MAAM,CAAC;IACnD,MAAMC,aAAa,GAAGH,UAAU,CAACE,MAAM;IACvC,MAAME,SAAS,GAAG,EAAE;IACpB,IAAID,aAAa,KAAK,CAAC,IAAIA,aAAa,KAAK,CAAC,EAAE;MAC9C,MAAME,QAAQ,GAAGF,aAAa,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;MAC5C,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,CAAC,EAAE;QAC7B,MAAMC,OAAO,GAAGP,UAAU,CAACC,SAAS,CAClCK,CAAC,GAAGD,QAAQ,EACZC,CAAC,GAAGD,QAAQ,GAAGA,QACjB,CAAC;QACDD,SAAS,CAACI,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACH,OAAO,EAAE,EAAE,CAAC,CAAC;MAC9C;MACA,OAAOH,SAAS;IAClB;EACF;EACA,OAAOO,SAAS;AAClB;AAEA,OAAO,SAASC,UAAUA,CAACC,GAAW,EAAEC,KAAa,EAAEC,IAAY,EAAE;EACnE,MAAMC,GAAG,GAAG,CACV,CAAE,CAACH,GAAG,GAAG,GAAG,KAAK,EAAE,GAAK,CAACC,KAAK,GAAG,GAAG,KAAK,CAAE,GAAIC,IAAI,GAAG,GAAI,MAC1D,CAAC,EAEAE,QAAQ,CAAC,EAAE,CAAC,CACZC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EACnB,OAAO,IAAIF,GAAG,EAAE;AAClB;AAEA,OAAO,SAASG,WAAWA,CAACC,IAAY,EAAE;EACxC,OAAO,IAAI,CAACA,IAAI,GAAG,QAAQ,EAAEH,QAAQ,CAAC,EAAE,CAAC,EAAE;AAC7C;;AAEA;AACA;AACA;AACA,OAAO,SAASI,WAAWA,CAACR,GAAW,EAAEC,KAAa,EAAEC,IAAY,EAAU;EAC5E,OACE,CAAE,GAAG,IAAI,EAAE,GACR,CAACF,GAAG,GAAG,GAAG,KAAK,EAAG,GAClB,CAACC,KAAK,GAAG,GAAG,KAAK,CAAE,GACnBC,IAAI,GAAG,GAAI,MACd,CAAC;AAEL;;AAEA;AACA;AACA;AACA,OAAO,SAASO,cAAcA,CAACC,MAAgB,EAAU;EACvD,MAAMC,CAAC,GAAGC,YAAY,CAACF,MAAM,CAAC,CAAC,CAAC,CAAC;EACjC,MAAMG,CAAC,GAAGD,YAAY,CAACF,MAAM,CAAC,CAAC,CAAC,CAAC;EACjC,MAAMI,CAAC,GAAGF,YAAY,CAACF,MAAM,CAAC,CAAC,CAAC,CAAC;EACjC,OAAOF,WAAW,CAACG,CAAC,EAAEE,CAAC,EAAEC,CAAC,CAAC;AAC7B;;AAEA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACR,IAAY,EAAU;EAClD,OAAQA,IAAI,IAAI,EAAE,GAAI,GAAG;AAC3B;;AAEA;AACA;AACA;AACA,OAAO,SAASS,WAAWA,CAACT,IAAY,EAAU;EAChD,OAAQA,IAAI,IAAI,EAAE,GAAI,GAAG;AAC3B;;AAEA;AACA;AACA;AACA,OAAO,SAASU,aAAaA,CAACV,IAAY,EAAU;EAClD,OAAQA,IAAI,IAAI,CAAC,GAAI,GAAG;AAC1B;;AAEA;AACA;AACA;AACA,OAAO,SAASW,YAAYA,CAACX,IAAY,EAAU;EACjD,OAAOA,IAAI,GAAG,GAAG;AACnB;;AAEA;AACA;AACA;AACA,OAAO,SAASY,QAAQA,CAACZ,IAAY,EAAW;EAC9C,OAAOQ,aAAa,CAACR,IAAI,CAAC,IAAI,GAAG;AACnC;;AAEA;AACA;AACA;AACA,OAAO,SAASa,WAAWA,CAACC,CAAS,EAAEC,CAAS,EAAEC,CAAS,EAAU;EACnE,MAAMC,MAAM,GAAGzC,WAAW;EAC1B,MAAM0C,OAAO,GAAGD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,GAAGG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGF,CAAC,GAAGE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC;EACtE,MAAMG,OAAO,GAAGF,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,GAAGG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGF,CAAC,GAAGE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC;EACtE,MAAMI,OAAO,GAAGH,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,GAAGG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGF,CAAC,GAAGE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC;EACtE,MAAMZ,CAAC,GAAGC,YAAY,CAACa,OAAO,CAAC;EAC/B,MAAMZ,CAAC,GAAGD,YAAY,CAACc,OAAO,CAAC;EAC/B,MAAMZ,CAAC,GAAGF,YAAY,CAACe,OAAO,CAAC;EAC/B,OAAOnB,WAAW,CAACG,CAAC,EAAEE,CAAC,EAAEC,CAAC,CAAC;AAC7B;;AAEA;AACA;AACA;AACA,OAAO,SAASc,WAAWA,CAACrB,IAAY,EAAY;EAClD,MAAMI,CAAC,GAAGkB,UAAU,CAACb,WAAW,CAACT,IAAI,CAAC,CAAC;EACvC,MAAMM,CAAC,GAAGgB,UAAU,CAACZ,aAAa,CAACV,IAAI,CAAC,CAAC;EACzC,MAAMO,CAAC,GAAGe,UAAU,CAACX,YAAY,CAACX,IAAI,CAAC,CAAC;EACxC,OAAOvB,SAAS,CAAC8C,cAAc,CAAC,CAACnB,CAAC,EAAEE,CAAC,EAAEC,CAAC,CAAC,EAAEjC,WAAW,CAAC;AACzD;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASkD,WAAWA,CAACC,CAAS,EAAEC,CAAS,EAAEnB,CAAS,EAAU;EACnE,MAAMoB,UAAU,GAAGpD,eAAe;EAClC,MAAMqD,EAAE,GAAG,CAACH,CAAC,GAAG,IAAI,IAAI,KAAK;EAC7B,MAAMI,EAAE,GAAGH,CAAC,GAAG,KAAK,GAAGE,EAAE;EACzB,MAAME,EAAE,GAAGF,EAAE,GAAGrB,CAAC,GAAG,KAAK;EACzB,MAAMwB,WAAW,GAAGC,OAAO,CAACH,EAAE,CAAC;EAC/B,MAAMI,WAAW,GAAGD,OAAO,CAACJ,EAAE,CAAC;EAC/B,MAAMM,WAAW,GAAGF,OAAO,CAACF,EAAE,CAAC;EAC/B,MAAMhB,CAAC,GAAGiB,WAAW,GAAGJ,UAAU,CAAC,CAAC,CAAC;EACrC,MAAMZ,CAAC,GAAGkB,WAAW,GAAGN,UAAU,CAAC,CAAC,CAAC;EACrC,MAAMX,CAAC,GAAGkB,WAAW,GAAGP,UAAU,CAAC,CAAC,CAAC;EACrC,OAAOd,WAAW,CAACC,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASmB,WAAWA,CAACnC,IAAY,EAAY;EAClD,MAAMkB,OAAO,GAAGI,UAAU,CAACb,WAAW,CAACT,IAAI,CAAC,CAAC;EAC7C,MAAMmB,OAAO,GAAGG,UAAU,CAACZ,aAAa,CAACV,IAAI,CAAC,CAAC;EAC/C,MAAMoB,OAAO,GAAGE,UAAU,CAACX,YAAY,CAACX,IAAI,CAAC,CAAC;EAC9C,MAAMiB,MAAM,GAAG3C,WAAW;EAC1B,MAAMwC,CAAC,GACLG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGC,OAAO,GAAGD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGE,OAAO,GAAGF,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGG,OAAO;EAC1E,MAAML,CAAC,GACLE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGC,OAAO,GAAGD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGE,OAAO,GAAGF,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGG,OAAO;EAC1E,MAAMJ,CAAC,GACLC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGC,OAAO,GAAGD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGE,OAAO,GAAGF,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGG,OAAO;EAC1E,MAAMO,UAAU,GAAGpD,eAAe;EAClC,MAAMwD,WAAW,GAAGjB,CAAC,GAAGa,UAAU,CAAC,CAAC,CAAC;EACrC,MAAMM,WAAW,GAAGlB,CAAC,GAAGY,UAAU,CAAC,CAAC,CAAC;EACrC,MAAMO,WAAW,GAAGlB,CAAC,GAAGW,UAAU,CAAC,CAAC,CAAC;EACrC,MAAME,EAAE,GAAGO,IAAI,CAACL,WAAW,CAAC;EAC5B,MAAMH,EAAE,GAAGQ,IAAI,CAACH,WAAW,CAAC;EAC5B,MAAMH,EAAE,GAAGM,IAAI,CAACF,WAAW,CAAC;EAC5B,MAAMT,CAAC,GAAG,KAAK,GAAGG,EAAE,GAAG,EAAE;EACzB,MAAMF,CAAC,GAAG,KAAK,IAAIG,EAAE,GAAGD,EAAE,CAAC;EAC3B,MAAMrB,CAAC,GAAG,KAAK,IAAIqB,EAAE,GAAGE,EAAE,CAAC;EAC3B,OAAO,CAACL,CAAC,EAAEC,CAAC,EAAEnB,CAAC,CAAC;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS8B,aAAaA,CAACC,KAAa,EAAU;EACnD,MAAMvB,CAAC,GAAGwB,UAAU,CAACD,KAAK,CAAC;EAC3B,MAAME,SAAS,GAAGnC,YAAY,CAACU,CAAC,CAAC;EACjC,OAAOd,WAAW,CAACuC,SAAS,EAAEA,SAAS,EAAEA,SAAS,CAAC;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACzC,IAAY,EAAU;EAClD,MAAMe,CAAC,GAAGM,WAAW,CAACrB,IAAI,CAAC,CAAC,CAAC,CAAC;EAC9B,OAAO,KAAK,GAAGoC,IAAI,CAACrB,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASwB,UAAUA,CAACD,KAAa,EAAU;EAChD,OAAO,KAAK,GAAGN,OAAO,CAAC,CAACM,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,UAAUA,CAAC3B,CAAS,EAAU;EAC5C,OAAOqB,IAAI,CAACrB,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASO,UAAUA,CAACqB,YAAoB,EAAU;EACvD,MAAMC,UAAU,GAAGD,YAAY,GAAG,KAAK;EACvC,IAAIC,UAAU,IAAI,WAAW,EAAE;IAC7B,OAAQA,UAAU,GAAG,KAAK,GAAI,KAAK;EACrC,CAAC,MAAM;IACL,OAAOC,IAAI,CAACC,GAAG,CAAC,CAACF,UAAU,GAAG,KAAK,IAAI,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK;EAC5D;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASvC,YAAYA,CAACsC,YAAoB,EAAU;EACzD,MAAMC,UAAU,GAAGD,YAAY,GAAG,KAAK;EACvC,IAAItC,YAAY,GAAG,GAAG;EACtB,IAAIuC,UAAU,IAAI,SAAS,EAAE;IAC3BvC,YAAY,GAAGuC,UAAU,GAAG,KAAK;EACnC,CAAC,MAAM;IACLvC,YAAY,GAAG,KAAK,GAAGwC,IAAI,CAACC,GAAG,CAACF,UAAU,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK;EAChE;EACA,OAAOnE,SAAS,CAACsE,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAEF,IAAI,CAACG,KAAK,CAAC3C,YAAY,GAAG,KAAK,CAAC,CAAC;AACrE;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS4C,aAAaA,CAAA,EAAa;EACxC,OAAO1E,eAAe;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS2E,YAAYA,CAAClD,IAAY,EAAQ;EAC/C,MAAMI,CAAC,GAAGK,WAAW,CAACT,IAAI,CAAC;EAC3B,MAAMM,CAAC,GAAGI,aAAa,CAACV,IAAI,CAAC;EAC7B,MAAMO,CAAC,GAAGI,YAAY,CAACX,IAAI,CAAC;EAC5B,MAAM0B,CAAC,GAAGlB,aAAa,CAACR,IAAI,CAAC;EAC7B,OAAO;IAAEI,CAAC;IAAEE,CAAC;IAAEC,CAAC;IAAEmB;EAAE,CAAC;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASyB,YAAYA,CAAAC,IAAA,EAA+B;EAAA,IAA9B;IAAEhD,CAAC;IAAEE,CAAC;IAAEC,CAAC;IAAEmB;EAAQ,CAAC,GAAA0B,IAAA;EAC/C,MAAMC,MAAM,GAAGC,cAAc,CAAClD,CAAC,CAAC;EAChC,MAAMmD,MAAM,GAAGD,cAAc,CAAChD,CAAC,CAAC;EAChC,MAAMkD,MAAM,GAAGF,cAAc,CAAC/C,CAAC,CAAC;EAChC,MAAMkD,MAAM,GAAGH,cAAc,CAAC5B,CAAC,CAAC;EAChC,OAAQ+B,MAAM,IAAI,EAAE,GAAKJ,MAAM,IAAI,EAAG,GAAIE,MAAM,IAAI,CAAE,GAAGC,MAAM;AACjE;AAEA,SAASF,cAAcA,CAACI,KAAa,EAAE;EACrC,IAAIA,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC;EACvB,IAAIA,KAAK,GAAG,GAAG,EAAE,OAAO,GAAG;EAC3B,OAAOA,KAAK;AACd;AAEA,SAAStB,IAAIA,CAACuB,CAAS,EAAU;EAC/B,MAAMC,CAAC,GAAG,KAAK,GAAG,OAAO;EACzB,MAAMC,KAAK,GAAG,OAAO,GAAG,IAAI;EAC5B,IAAIF,CAAC,GAAGC,CAAC,EAAE;IACT,OAAOf,IAAI,CAACC,GAAG,CAACa,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;EAC/B,CAAC,MAAM;IACL,OAAO,CAACE,KAAK,GAAGF,CAAC,GAAG,EAAE,IAAI,GAAG;EAC/B;AACF;AAEA,SAAS3B,OAAOA,CAAC8B,EAAU,EAAU;EACnC,MAAMF,CAAC,GAAG,KAAK,GAAG,OAAO;EACzB,MAAMC,KAAK,GAAG,OAAO,GAAG,IAAI;EAC5B,MAAME,GAAG,GAAGD,EAAE,GAAGA,EAAE,GAAGA,EAAE;EACxB,IAAIC,GAAG,GAAGH,CAAC,EAAE;IACX,OAAOG,GAAG;EACZ,CAAC,MAAM;IACL,OAAO,CAAC,GAAG,GAAGD,EAAE,GAAG,EAAE,IAAID,KAAK;EAChC;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"cam16.js","names":["ViewingConditions","argbFromXyz","linearized","math","Cam16","constructor","hue","chroma","j","q","m","s","jstar","astar","bstar","distance","other","dJ","dA","dB","dEPrime","Math","sqrt","dE","pow","fromInt","argb","fromIntInViewingConditions","DEFAULT","viewingConditions","red","green","blue","redL","greenL","blueL","x","y","z","rC","gC","bC","rD","rgbD","gD","bD","rAF","fl","abs","gAF","bAF","rA","signum","gA","bA","a","b","u","p2","atan2","atanDegrees","PI","hueRadians","ac","nbb","aw","c","fLRoot","huePrime","eHue","cos","p1","nc","ncb","t","alpha","n","mstar","log","sin","fromJch","h","fromJchInViewingConditions","fromUcs","fromUcsInViewingConditions","M","exp","toInt","viewed","hRad","hSin","hCos","gamma","rCBase","max","gCBase","bCBase","rF","gF","bF","fromXyzInViewingConditions","J","Q","C","xyzInViewingConditions"],"sources":["../../../../src/util/color/hct/cam16.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ViewingConditions } from './viewing-conditions';\n\nimport { argbFromXyz, linearized } from '../conversion';\nimport * as math from '../utils/math-utils';\n\n/**\n * CAM16, a color appearance model. Colors are not just defined by their hex\n * code, but rather, a hex code and viewing conditions.\n *\n * CAM16 instances also have coordinates in the CAM16-UCS space, called J*, a*,\n * b*, or jstar, astar, bstar in code. CAM16-UCS is included in the CAM16\n * specification, and should be used when measuring distances between colors.\n *\n * In traditional color spaces, a color can be identified solely by the\n * observer's measurement of the color. Color appearance models such as CAM16\n * also use information about the environment where the color was\n * observed, known as the viewing conditions.\n *\n * For example, white under the traditional assumption of a midday sun white\n * point is accurately measured as a slightly chromatic blue by CAM16. (roughly,\n * hue 203, chroma 3, lightness 100)\n */\nexport class Cam16 {\n /**\n * All of the CAM16 dimensions can be calculated from 3 of the dimensions, in\n * the following combinations:\n * - {j or q} and {c, m, or s} and hue\n * - jstar, astar, bstar\n * Prefer using a static method that constructs from 3 of those dimensions.\n * This constructor is intended for those methods to use to return all\n * possible dimensions.\n *\n * @param hue\n * @param chroma informally, colorfulness / color intensity. like saturation\n * in HSL, except perceptually accurate.\n * @param j lightness\n * @param q brightness; ratio of lightness to white point's lightness\n * @param m colorfulness\n * @param s saturation; ratio of chroma to white point's chroma\n * @param jstar CAM16-UCS J coordinate\n * @param astar CAM16-UCS a coordinate\n * @param bstar CAM16-UCS b coordinate\n */\n constructor(\n readonly hue: number,\n readonly chroma: number,\n readonly j: number,\n readonly q: number,\n readonly m: number,\n readonly s: number,\n readonly jstar: number,\n readonly astar: number,\n readonly bstar: number,\n ) {}\n\n /**\n * CAM16 instances also have coordinates in the CAM16-UCS space, called J*,\n * a*, b*, or jstar, astar, bstar in code. CAM16-UCS is included in the CAM16\n * specification, and is used to measure distances between colors.\n */\n distance(other: Cam16): number {\n const dJ = this.jstar - other.jstar;\n const dA = this.astar - other.astar;\n const dB = this.bstar - other.bstar;\n const dEPrime = Math.sqrt(dJ * dJ + dA * dA + dB * dB);\n const dE = 1.41 * Math.pow(dEPrime, 0.63);\n return dE;\n }\n\n /**\n * @param argb ARGB representation of a color.\n * @return CAM16 color, assuming the color was viewed in default viewing\n * conditions.\n */\n static fromInt(argb: number): Cam16 {\n return Cam16.fromIntInViewingConditions(argb, ViewingConditions.DEFAULT);\n }\n\n /**\n * @param argb ARGB representation of a color.\n * @param viewingConditions Information about the environment where the color\n * was observed.\n * @return CAM16 color.\n */\n static fromIntInViewingConditions(\n argb: number,\n viewingConditions: ViewingConditions,\n ): Cam16 {\n const red = (argb & 0x00ff0000) >> 16;\n const green = (argb & 0x0000ff00) >> 8;\n const blue = argb & 0x000000ff;\n const redL = linearized(red);\n const greenL = linearized(green);\n const blueL = linearized(blue);\n const x = 0.41233895 * redL + 0.35762064 * greenL + 0.18051042 * blueL;\n const y = 0.2126 * redL + 0.7152 * greenL + 0.0722 * blueL;\n const z = 0.01932141 * redL + 0.11916382 * greenL + 0.95034478 * blueL;\n\n const rC = 0.401288 * x + 0.650173 * y - 0.051461 * z;\n const gC = -0.250268 * x + 1.204414 * y + 0.045854 * z;\n const bC = -0.002079 * x + 0.048952 * y + 0.953127 * z;\n\n const rD = viewingConditions.rgbD[0] * rC;\n const gD = viewingConditions.rgbD[1] * gC;\n const bD = viewingConditions.rgbD[2] * bC;\n\n const rAF = Math.pow((viewingConditions.fl * Math.abs(rD)) / 100.0, 0.42);\n const gAF = Math.pow((viewingConditions.fl * Math.abs(gD)) / 100.0, 0.42);\n const bAF = Math.pow((viewingConditions.fl * Math.abs(bD)) / 100.0, 0.42);\n\n const rA = (math.signum(rD) * 400.0 * rAF) / (rAF + 27.13);\n const gA = (math.signum(gD) * 400.0 * gAF) / (gAF + 27.13);\n const bA = (math.signum(bD) * 400.0 * bAF) / (bAF + 27.13);\n\n const a = (11.0 * rA + -12.0 * gA + bA) / 11.0;\n const b = (rA + gA - 2.0 * bA) / 9.0;\n const u = (20.0 * rA + 20.0 * gA + 21.0 * bA) / 20.0;\n const p2 = (40.0 * rA + 20.0 * gA + bA) / 20.0;\n const atan2 = Math.atan2(b, a);\n const atanDegrees = (atan2 * 180.0) / Math.PI;\n const hue =\n atanDegrees < 0\n ? atanDegrees + 360.0\n : atanDegrees >= 360\n ? atanDegrees - 360.0\n : atanDegrees;\n const hueRadians = (hue * Math.PI) / 180.0;\n\n const ac = p2 * viewingConditions.nbb;\n const j =\n 100.0 *\n Math.pow(\n ac / viewingConditions.aw,\n viewingConditions.c * viewingConditions.z,\n );\n const q =\n (4.0 / viewingConditions.c) *\n Math.sqrt(j / 100.0) *\n (viewingConditions.aw + 4.0) *\n viewingConditions.fLRoot;\n const huePrime = hue < 20.14 ? hue + 360 : hue;\n const eHue = 0.25 * (Math.cos((huePrime * Math.PI) / 180.0 + 2.0) + 3.8);\n const p1 =\n (50000.0 / 13.0) * eHue * viewingConditions.nc * viewingConditions.ncb;\n const t = (p1 * Math.sqrt(a * a + b * b)) / (u + 0.305);\n const alpha =\n Math.pow(t, 0.9) *\n Math.pow(1.64 - Math.pow(0.29, viewingConditions.n), 0.73);\n const c = alpha * Math.sqrt(j / 100.0);\n const m = c * viewingConditions.fLRoot;\n const s =\n 50.0 *\n Math.sqrt((alpha * viewingConditions.c) / (viewingConditions.aw + 4.0));\n const jstar = ((1.0 + 100.0 * 0.007) * j) / (1.0 + 0.007 * j);\n const mstar = (1.0 / 0.0228) * Math.log(1.0 + 0.0228 * m);\n const astar = mstar * Math.cos(hueRadians);\n const bstar = mstar * Math.sin(hueRadians);\n\n return new Cam16(hue, c, j, q, m, s, jstar, astar, bstar);\n }\n\n /**\n * @param j CAM16 lightness\n * @param c CAM16 chroma\n * @param h CAM16 hue\n */\n static fromJch(j: number, c: number, h: number): Cam16 {\n return Cam16.fromJchInViewingConditions(j, c, h, ViewingConditions.DEFAULT);\n }\n\n /**\n * @param j CAM16 lightness\n * @param c CAM16 chroma\n * @param h CAM16 hue\n * @param viewingConditions Information about the environment where the color\n * was observed.\n */\n static fromJchInViewingConditions(\n j: number,\n c: number,\n h: number,\n viewingConditions: ViewingConditions,\n ): Cam16 {\n const q =\n (4.0 / viewingConditions.c) *\n Math.sqrt(j / 100.0) *\n (viewingConditions.aw + 4.0) *\n viewingConditions.fLRoot;\n const m = c * viewingConditions.fLRoot;\n const alpha = c / Math.sqrt(j / 100.0);\n const s =\n 50.0 *\n Math.sqrt((alpha * viewingConditions.c) / (viewingConditions.aw + 4.0));\n const hueRadians = (h * Math.PI) / 180.0;\n const jstar = ((1.0 + 100.0 * 0.007) * j) / (1.0 + 0.007 * j);\n const mstar = (1.0 / 0.0228) * Math.log(1.0 + 0.0228 * m);\n const astar = mstar * Math.cos(hueRadians);\n const bstar = mstar * Math.sin(hueRadians);\n return new Cam16(h, c, j, q, m, s, jstar, astar, bstar);\n }\n\n /**\n * @param jstar CAM16-UCS lightness.\n * @param astar CAM16-UCS a dimension. Like a* in L*a*b*, it is a Cartesian\n * coordinate on the Y axis.\n * @param bstar CAM16-UCS b dimension. Like a* in L*a*b*, it is a Cartesian\n * coordinate on the X axis.\n */\n static fromUcs(jstar: number, astar: number, bstar: number): Cam16 {\n return Cam16.fromUcsInViewingConditions(\n jstar,\n astar,\n bstar,\n ViewingConditions.DEFAULT,\n );\n }\n\n /**\n * @param jstar CAM16-UCS lightness.\n * @param astar CAM16-UCS a dimension. Like a* in L*a*b*, it is a Cartesian\n * coordinate on the Y axis.\n * @param bstar CAM16-UCS b dimension. Like a* in L*a*b*, it is a Cartesian\n * coordinate on the X axis.\n * @param viewingConditions Information about the environment where the color\n * was observed.\n */\n static fromUcsInViewingConditions(\n jstar: number,\n astar: number,\n bstar: number,\n viewingConditions: ViewingConditions,\n ): Cam16 {\n const a = astar;\n const b = bstar;\n const m = Math.sqrt(a * a + b * b);\n const M = (Math.exp(m * 0.0228) - 1.0) / 0.0228;\n const c = M / viewingConditions.fLRoot;\n let h = Math.atan2(b, a) * (180.0 / Math.PI);\n if (h < 0.0) {\n h += 360.0;\n }\n const j = jstar / (1 - (jstar - 100) * 0.007);\n return Cam16.fromJchInViewingConditions(j, c, h, viewingConditions);\n }\n\n /**\n * @return ARGB representation of color, assuming the color was viewed in\n * default viewing conditions, which are near-identical to the default\n * viewing conditions for sRGB.\n */\n toInt(): number {\n return this.viewed(ViewingConditions.DEFAULT);\n }\n\n /**\n * @param viewingConditions Information about the environment where the color\n * will be viewed.\n * @return ARGB representation of color\n */\n viewed(viewingConditions: ViewingConditions): number {\n const alpha =\n this.chroma === 0.0 || this.j === 0.0\n ? 0.0\n : this.chroma / Math.sqrt(this.j / 100.0);\n\n const t = Math.pow(\n alpha / Math.pow(1.64 - Math.pow(0.29, viewingConditions.n), 0.73),\n 1.0 / 0.9,\n );\n const hRad = (this.hue * Math.PI) / 180.0;\n\n const eHue = 0.25 * (Math.cos(hRad + 2.0) + 3.8);\n const ac =\n viewingConditions.aw *\n Math.pow(this.j / 100.0, 1.0 / viewingConditions.c / viewingConditions.z);\n const p1 =\n eHue * (50000.0 / 13.0) * viewingConditions.nc * viewingConditions.ncb;\n const p2 = ac / viewingConditions.nbb;\n\n const hSin = Math.sin(hRad);\n const hCos = Math.cos(hRad);\n\n const gamma =\n (23.0 * (p2 + 0.305) * t) /\n (23.0 * p1 + 11.0 * t * hCos + 108.0 * t * hSin);\n const a = gamma * hCos;\n const b = gamma * hSin;\n const rA = (460.0 * p2 + 451.0 * a + 288.0 * b) / 1403.0;\n const gA = (460.0 * p2 - 891.0 * a - 261.0 * b) / 1403.0;\n const bA = (460.0 * p2 - 220.0 * a - 6300.0 * b) / 1403.0;\n\n const rCBase = Math.max(0, (27.13 * Math.abs(rA)) / (400.0 - Math.abs(rA)));\n const rC =\n math.signum(rA) *\n (100.0 / viewingConditions.fl) *\n Math.pow(rCBase, 1.0 / 0.42);\n const gCBase = Math.max(0, (27.13 * Math.abs(gA)) / (400.0 - Math.abs(gA)));\n const gC =\n math.signum(gA) *\n (100.0 / viewingConditions.fl) *\n Math.pow(gCBase, 1.0 / 0.42);\n const bCBase = Math.max(0, (27.13 * Math.abs(bA)) / (400.0 - Math.abs(bA)));\n const bC =\n math.signum(bA) *\n (100.0 / viewingConditions.fl) *\n Math.pow(bCBase, 1.0 / 0.42);\n const rF = rC / viewingConditions.rgbD[0];\n const gF = gC / viewingConditions.rgbD[1];\n const bF = bC / viewingConditions.rgbD[2];\n\n const x = 1.86206786 * rF - 1.01125463 * gF + 0.14918677 * bF;\n const y = 0.38752654 * rF + 0.62144744 * gF - 0.00897398 * bF;\n const z = -0.0158415 * rF - 0.03412294 * gF + 1.04996444 * bF;\n\n const argb = argbFromXyz(x, y, z);\n return argb;\n }\n\n /// Given color expressed in XYZ and viewed in [viewingConditions], convert to\n /// CAM16.\n static fromXyzInViewingConditions(\n x: number,\n y: number,\n z: number,\n viewingConditions: ViewingConditions,\n ): Cam16 {\n // Transform XYZ to 'cone'/'rgb' responses\n\n const rC = 0.401288 * x + 0.650173 * y - 0.051461 * z;\n const gC = -0.250268 * x + 1.204414 * y + 0.045854 * z;\n const bC = -0.002079 * x + 0.048952 * y + 0.953127 * z;\n\n // Discount illuminant\n const rD = viewingConditions.rgbD[0] * rC;\n const gD = viewingConditions.rgbD[1] * gC;\n const bD = viewingConditions.rgbD[2] * bC;\n\n // chromatic adaptation\n const rAF = Math.pow((viewingConditions.fl * Math.abs(rD)) / 100.0, 0.42);\n const gAF = Math.pow((viewingConditions.fl * Math.abs(gD)) / 100.0, 0.42);\n const bAF = Math.pow((viewingConditions.fl * Math.abs(bD)) / 100.0, 0.42);\n const rA = (math.signum(rD) * 400.0 * rAF) / (rAF + 27.13);\n const gA = (math.signum(gD) * 400.0 * gAF) / (gAF + 27.13);\n const bA = (math.signum(bD) * 400.0 * bAF) / (bAF + 27.13);\n\n // redness-greenness\n const a = (11.0 * rA + -12.0 * gA + bA) / 11.0;\n // yellowness-blueness\n const b = (rA + gA - 2.0 * bA) / 9.0;\n\n // auxiliary components\n const u = (20.0 * rA + 20.0 * gA + 21.0 * bA) / 20.0;\n const p2 = (40.0 * rA + 20.0 * gA + bA) / 20.0;\n\n // hue\n const atan2 = Math.atan2(b, a);\n const atanDegrees = (atan2 * 180.0) / Math.PI;\n const hue =\n atanDegrees < 0\n ? atanDegrees + 360.0\n : atanDegrees >= 360\n ? atanDegrees - 360\n : atanDegrees;\n const hueRadians = (hue * Math.PI) / 180.0;\n\n // achromatic response to color\n const ac = p2 * viewingConditions.nbb;\n\n // CAM16 lightness and brightness\n const J =\n 100.0 *\n Math.pow(\n ac / viewingConditions.aw,\n viewingConditions.c * viewingConditions.z,\n );\n const Q =\n (4.0 / viewingConditions.c) *\n Math.sqrt(J / 100.0) *\n (viewingConditions.aw + 4.0) *\n viewingConditions.fLRoot;\n\n const huePrime = hue < 20.14 ? hue + 360 : hue;\n const eHue =\n (1.0 / 4.0) * (Math.cos((huePrime * Math.PI) / 180.0 + 2.0) + 3.8);\n const p1 =\n (50000.0 / 13.0) * eHue * viewingConditions.nc * viewingConditions.ncb;\n const t = (p1 * Math.sqrt(a * a + b * b)) / (u + 0.305);\n const alpha =\n Math.pow(t, 0.9) *\n Math.pow(1.64 - Math.pow(0.29, viewingConditions.n), 0.73);\n // CAM16 chroma, colorfulness, chroma\n const C = alpha * Math.sqrt(J / 100.0);\n const M = C * viewingConditions.fLRoot;\n const s =\n 50.0 *\n Math.sqrt((alpha * viewingConditions.c) / (viewingConditions.aw + 4.0));\n\n // CAM16-UCS components\n const jstar = ((1.0 + 100.0 * 0.007) * J) / (1.0 + 0.007 * J);\n const mstar = Math.log(1.0 + 0.0228 * M) / 0.0228;\n const astar = mstar * Math.cos(hueRadians);\n const bstar = mstar * Math.sin(hueRadians);\n return new Cam16(hue, C, J, Q, M, s, jstar, astar, bstar);\n }\n\n /// XYZ representation of CAM16 seen in [viewingConditions].\n xyzInViewingConditions(viewingConditions: ViewingConditions): number[] {\n const alpha =\n this.chroma === 0.0 || this.j === 0.0\n ? 0.0\n : this.chroma / Math.sqrt(this.j / 100.0);\n\n const t = Math.pow(\n alpha / Math.pow(1.64 - Math.pow(0.29, viewingConditions.n), 0.73),\n 1.0 / 0.9,\n );\n const hRad = (this.hue * Math.PI) / 180.0;\n\n const eHue = 0.25 * (Math.cos(hRad + 2.0) + 3.8);\n const ac =\n viewingConditions.aw *\n Math.pow(this.j / 100.0, 1.0 / viewingConditions.c / viewingConditions.z);\n const p1 =\n eHue * (50000.0 / 13.0) * viewingConditions.nc * viewingConditions.ncb;\n\n const p2 = ac / viewingConditions.nbb;\n\n const hSin = Math.sin(hRad);\n const hCos = Math.cos(hRad);\n\n const gamma =\n (23.0 * (p2 + 0.305) * t) /\n (23.0 * p1 + 11 * t * hCos + 108.0 * t * hSin);\n const a = gamma * hCos;\n const b = gamma * hSin;\n const rA = (460.0 * p2 + 451.0 * a + 288.0 * b) / 1403.0;\n const gA = (460.0 * p2 - 891.0 * a - 261.0 * b) / 1403.0;\n const bA = (460.0 * p2 - 220.0 * a - 6300.0 * b) / 1403.0;\n\n const rCBase = Math.max(0, (27.13 * Math.abs(rA)) / (400.0 - Math.abs(rA)));\n const rC =\n math.signum(rA) *\n (100.0 / viewingConditions.fl) *\n Math.pow(rCBase, 1.0 / 0.42);\n const gCBase = Math.max(0, (27.13 * Math.abs(gA)) / (400.0 - Math.abs(gA)));\n const gC =\n math.signum(gA) *\n (100.0 / viewingConditions.fl) *\n Math.pow(gCBase, 1.0 / 0.42);\n const bCBase = Math.max(0, (27.13 * Math.abs(bA)) / (400.0 - Math.abs(bA)));\n const bC =\n math.signum(bA) *\n (100.0 / viewingConditions.fl) *\n Math.pow(bCBase, 1.0 / 0.42);\n const rF = rC / viewingConditions.rgbD[0];\n const gF = gC / viewingConditions.rgbD[1];\n const bF = bC / viewingConditions.rgbD[2];\n\n const x = 1.86206786 * rF - 1.01125463 * gF + 0.14918677 * bF;\n const y = 0.38752654 * rF + 0.62144744 * gF - 0.00897398 * bF;\n const z = -0.0158415 * rF - 0.03412294 * gF + 1.04996444 * bF;\n\n return [x, y, z];\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"cam16.js","names":["ViewingConditions","argbFromXyz","linearized","math","Cam16","constructor","hue","chroma","j","q","m","s","jstar","astar","bstar","distance","other","dJ","dA","dB","dEPrime","Math","sqrt","dE","pow","fromInt","argb","fromIntInViewingConditions","DEFAULT","viewingConditions","red","green","blue","redL","greenL","blueL","x","y","z","rC","gC","bC","rD","rgbD","gD","bD","rAF","fl","abs","gAF","bAF","rA","signum","gA","bA","a","b","u","p2","atan2","atanDegrees","PI","hueRadians","ac","nbb","aw","c","fLRoot","huePrime","eHue","cos","p1","nc","ncb","t","alpha","n","mstar","log","sin","fromJch","h","fromJchInViewingConditions","fromUcs","fromUcsInViewingConditions","M","exp","toInt","viewed","hRad","hSin","hCos","gamma","rCBase","max","gCBase","bCBase","rF","gF","bF","fromXyzInViewingConditions","J","Q","C","xyzInViewingConditions"],"sources":["../../../../src/util/color/hct/cam16.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ViewingConditions } from './viewing-conditions';\n\nimport { argbFromXyz, linearized } from '../conversion';\nimport * as math from '../utils/math-utils';\n\n/**\n * CAM16, a color appearance model. Colors are not just defined by their hex\n * code, but rather, a hex code and viewing conditions.\n *\n * CAM16 instances also have coordinates in the CAM16-UCS space, called J*, a*,\n * b*, or jstar, astar, bstar in code. CAM16-UCS is included in the CAM16\n * specification, and should be used when measuring distances between colors.\n *\n * In traditional color spaces, a color can be identified solely by the\n * observer's measurement of the color. Color appearance models such as CAM16\n * also use information about the environment where the color was\n * observed, known as the viewing conditions.\n *\n * For example, white under the traditional assumption of a midday sun white\n * point is accurately measured as a slightly chromatic blue by CAM16. (roughly,\n * hue 203, chroma 3, lightness 100)\n */\nexport class Cam16 {\n /**\n * All of the CAM16 dimensions can be calculated from 3 of the dimensions, in\n * the following combinations:\n * - {j or q} and {c, m, or s} and hue\n * - jstar, astar, bstar\n * Prefer using a static method that constructs from 3 of those dimensions.\n * This constructor is intended for those methods to use to return all\n * possible dimensions.\n *\n * @param hue\n * @param chroma informally, colorfulness / color intensity. like saturation\n * in HSL, except perceptually accurate.\n * @param j lightness\n * @param q brightness; ratio of lightness to white point's lightness\n * @param m colorfulness\n * @param s saturation; ratio of chroma to white point's chroma\n * @param jstar CAM16-UCS J coordinate\n * @param astar CAM16-UCS a coordinate\n * @param bstar CAM16-UCS b coordinate\n */\n constructor(\n readonly hue: number,\n readonly chroma: number,\n readonly j: number,\n readonly q: number,\n readonly m: number,\n readonly s: number,\n readonly jstar: number,\n readonly astar: number,\n readonly bstar: number,\n ) {}\n\n /**\n * CAM16 instances also have coordinates in the CAM16-UCS space, called J*,\n * a*, b*, or jstar, astar, bstar in code. CAM16-UCS is included in the CAM16\n * specification, and is used to measure distances between colors.\n */\n distance(other: Cam16): number {\n const dJ = this.jstar - other.jstar;\n const dA = this.astar - other.astar;\n const dB = this.bstar - other.bstar;\n const dEPrime = Math.sqrt(dJ * dJ + dA * dA + dB * dB);\n const dE = 1.41 * Math.pow(dEPrime, 0.63);\n return dE;\n }\n\n /**\n * @param argb ARGB representation of a color.\n * @return CAM16 color, assuming the color was viewed in default viewing\n * conditions.\n */\n static fromInt(argb: number): Cam16 {\n return Cam16.fromIntInViewingConditions(argb, ViewingConditions.DEFAULT);\n }\n\n /**\n * @param argb ARGB representation of a color.\n * @param viewingConditions Information about the environment where the color\n * was observed.\n * @return CAM16 color.\n */\n static fromIntInViewingConditions(\n argb: number,\n viewingConditions: ViewingConditions,\n ): Cam16 {\n const red = (argb & 0x00ff0000) >> 16;\n const green = (argb & 0x0000ff00) >> 8;\n const blue = argb & 0x000000ff;\n const redL = linearized(red);\n const greenL = linearized(green);\n const blueL = linearized(blue);\n const x = 0.41233895 * redL + 0.35762064 * greenL + 0.18051042 * blueL;\n const y = 0.2126 * redL + 0.7152 * greenL + 0.0722 * blueL;\n const z = 0.01932141 * redL + 0.11916382 * greenL + 0.95034478 * blueL;\n\n const rC = 0.401288 * x + 0.650173 * y - 0.051461 * z;\n const gC = -0.250268 * x + 1.204414 * y + 0.045854 * z;\n const bC = -0.002079 * x + 0.048952 * y + 0.953127 * z;\n\n const rD = viewingConditions.rgbD[0] * rC;\n const gD = viewingConditions.rgbD[1] * gC;\n const bD = viewingConditions.rgbD[2] * bC;\n\n const rAF = Math.pow((viewingConditions.fl * Math.abs(rD)) / 100.0, 0.42);\n const gAF = Math.pow((viewingConditions.fl * Math.abs(gD)) / 100.0, 0.42);\n const bAF = Math.pow((viewingConditions.fl * Math.abs(bD)) / 100.0, 0.42);\n\n const rA = (math.signum(rD) * 400.0 * rAF) / (rAF + 27.13);\n const gA = (math.signum(gD) * 400.0 * gAF) / (gAF + 27.13);\n const bA = (math.signum(bD) * 400.0 * bAF) / (bAF + 27.13);\n\n const a = (11.0 * rA + -12.0 * gA + bA) / 11.0;\n const b = (rA + gA - 2.0 * bA) / 9.0;\n const u = (20.0 * rA + 20.0 * gA + 21.0 * bA) / 20.0;\n const p2 = (40.0 * rA + 20.0 * gA + bA) / 20.0;\n const atan2 = Math.atan2(b, a);\n const atanDegrees = (atan2 * 180.0) / Math.PI;\n const hue =\n atanDegrees < 0\n ? atanDegrees + 360.0\n : atanDegrees >= 360\n ? atanDegrees - 360.0\n : atanDegrees;\n const hueRadians = (hue * Math.PI) / 180.0;\n\n const ac = p2 * viewingConditions.nbb;\n const j =\n 100.0 *\n Math.pow(\n ac / viewingConditions.aw,\n viewingConditions.c * viewingConditions.z,\n );\n const q =\n (4.0 / viewingConditions.c) *\n Math.sqrt(j / 100.0) *\n (viewingConditions.aw + 4.0) *\n viewingConditions.fLRoot;\n const huePrime = hue < 20.14 ? hue + 360 : hue;\n const eHue = 0.25 * (Math.cos((huePrime * Math.PI) / 180.0 + 2.0) + 3.8);\n const p1 =\n (50000.0 / 13.0) * eHue * viewingConditions.nc * viewingConditions.ncb;\n const t = (p1 * Math.sqrt(a * a + b * b)) / (u + 0.305);\n const alpha =\n Math.pow(t, 0.9) *\n Math.pow(1.64 - Math.pow(0.29, viewingConditions.n), 0.73);\n const c = alpha * Math.sqrt(j / 100.0);\n const m = c * viewingConditions.fLRoot;\n const s =\n 50.0 *\n Math.sqrt((alpha * viewingConditions.c) / (viewingConditions.aw + 4.0));\n const jstar = ((1.0 + 100.0 * 0.007) * j) / (1.0 + 0.007 * j);\n const mstar = (1.0 / 0.0228) * Math.log(1.0 + 0.0228 * m);\n const astar = mstar * Math.cos(hueRadians);\n const bstar = mstar * Math.sin(hueRadians);\n\n return new Cam16(hue, c, j, q, m, s, jstar, astar, bstar);\n }\n\n /**\n * @param j CAM16 lightness\n * @param c CAM16 chroma\n * @param h CAM16 hue\n */\n static fromJch(j: number, c: number, h: number): Cam16 {\n return Cam16.fromJchInViewingConditions(j, c, h, ViewingConditions.DEFAULT);\n }\n\n /**\n * @param j CAM16 lightness\n * @param c CAM16 chroma\n * @param h CAM16 hue\n * @param viewingConditions Information about the environment where the color\n * was observed.\n */\n static fromJchInViewingConditions(\n j: number,\n c: number,\n h: number,\n viewingConditions: ViewingConditions,\n ): Cam16 {\n const q =\n (4.0 / viewingConditions.c) *\n Math.sqrt(j / 100.0) *\n (viewingConditions.aw + 4.0) *\n viewingConditions.fLRoot;\n const m = c * viewingConditions.fLRoot;\n const alpha = c / Math.sqrt(j / 100.0);\n const s =\n 50.0 *\n Math.sqrt((alpha * viewingConditions.c) / (viewingConditions.aw + 4.0));\n const hueRadians = (h * Math.PI) / 180.0;\n const jstar = ((1.0 + 100.0 * 0.007) * j) / (1.0 + 0.007 * j);\n const mstar = (1.0 / 0.0228) * Math.log(1.0 + 0.0228 * m);\n const astar = mstar * Math.cos(hueRadians);\n const bstar = mstar * Math.sin(hueRadians);\n return new Cam16(h, c, j, q, m, s, jstar, astar, bstar);\n }\n\n /**\n * @param jstar CAM16-UCS lightness.\n * @param astar CAM16-UCS a dimension. Like a* in L*a*b*, it is a Cartesian\n * coordinate on the Y axis.\n * @param bstar CAM16-UCS b dimension. Like a* in L*a*b*, it is a Cartesian\n * coordinate on the X axis.\n */\n static fromUcs(jstar: number, astar: number, bstar: number): Cam16 {\n return Cam16.fromUcsInViewingConditions(\n jstar,\n astar,\n bstar,\n ViewingConditions.DEFAULT,\n );\n }\n\n /**\n * @param jstar CAM16-UCS lightness.\n * @param astar CAM16-UCS a dimension. Like a* in L*a*b*, it is a Cartesian\n * coordinate on the Y axis.\n * @param bstar CAM16-UCS b dimension. Like a* in L*a*b*, it is a Cartesian\n * coordinate on the X axis.\n * @param viewingConditions Information about the environment where the color\n * was observed.\n */\n static fromUcsInViewingConditions(\n jstar: number,\n astar: number,\n bstar: number,\n viewingConditions: ViewingConditions,\n ): Cam16 {\n const a = astar;\n const b = bstar;\n const m = Math.sqrt(a * a + b * b);\n const M = (Math.exp(m * 0.0228) - 1.0) / 0.0228;\n const c = M / viewingConditions.fLRoot;\n let h = Math.atan2(b, a) * (180.0 / Math.PI);\n if (h < 0.0) {\n h += 360.0;\n }\n const j = jstar / (1 - (jstar - 100) * 0.007);\n return Cam16.fromJchInViewingConditions(j, c, h, viewingConditions);\n }\n\n /**\n * @return ARGB representation of color, assuming the color was viewed in\n * default viewing conditions, which are near-identical to the default\n * viewing conditions for sRGB.\n */\n toInt(): number {\n return this.viewed(ViewingConditions.DEFAULT);\n }\n\n /**\n * @param viewingConditions Information about the environment where the color\n * will be viewed.\n * @return ARGB representation of color\n */\n viewed(viewingConditions: ViewingConditions): number {\n const alpha =\n this.chroma === 0.0 || this.j === 0.0\n ? 0.0\n : this.chroma / Math.sqrt(this.j / 100.0);\n\n const t = Math.pow(\n alpha / Math.pow(1.64 - Math.pow(0.29, viewingConditions.n), 0.73),\n 1.0 / 0.9,\n );\n const hRad = (this.hue * Math.PI) / 180.0;\n\n const eHue = 0.25 * (Math.cos(hRad + 2.0) + 3.8);\n const ac =\n viewingConditions.aw *\n Math.pow(this.j / 100.0, 1.0 / viewingConditions.c / viewingConditions.z);\n const p1 =\n eHue * (50000.0 / 13.0) * viewingConditions.nc * viewingConditions.ncb;\n const p2 = ac / viewingConditions.nbb;\n\n const hSin = Math.sin(hRad);\n const hCos = Math.cos(hRad);\n\n const gamma =\n (23.0 * (p2 + 0.305) * t) /\n (23.0 * p1 + 11.0 * t * hCos + 108.0 * t * hSin);\n const a = gamma * hCos;\n const b = gamma * hSin;\n const rA = (460.0 * p2 + 451.0 * a + 288.0 * b) / 1403.0;\n const gA = (460.0 * p2 - 891.0 * a - 261.0 * b) / 1403.0;\n const bA = (460.0 * p2 - 220.0 * a - 6300.0 * b) / 1403.0;\n\n const rCBase = Math.max(0, (27.13 * Math.abs(rA)) / (400.0 - Math.abs(rA)));\n const rC =\n math.signum(rA) *\n (100.0 / viewingConditions.fl) *\n Math.pow(rCBase, 1.0 / 0.42);\n const gCBase = Math.max(0, (27.13 * Math.abs(gA)) / (400.0 - Math.abs(gA)));\n const gC =\n math.signum(gA) *\n (100.0 / viewingConditions.fl) *\n Math.pow(gCBase, 1.0 / 0.42);\n const bCBase = Math.max(0, (27.13 * Math.abs(bA)) / (400.0 - Math.abs(bA)));\n const bC =\n math.signum(bA) *\n (100.0 / viewingConditions.fl) *\n Math.pow(bCBase, 1.0 / 0.42);\n const rF = rC / viewingConditions.rgbD[0];\n const gF = gC / viewingConditions.rgbD[1];\n const bF = bC / viewingConditions.rgbD[2];\n\n const x = 1.86206786 * rF - 1.01125463 * gF + 0.14918677 * bF;\n const y = 0.38752654 * rF + 0.62144744 * gF - 0.00897398 * bF;\n const z = -0.0158415 * rF - 0.03412294 * gF + 1.04996444 * bF;\n\n const argb = argbFromXyz(x, y, z);\n return argb;\n }\n\n /// Given color expressed in XYZ and viewed in [viewingConditions], convert to\n /// CAM16.\n static fromXyzInViewingConditions(\n x: number,\n y: number,\n z: number,\n viewingConditions: ViewingConditions,\n ): Cam16 {\n // Transform XYZ to 'cone'/'rgb' responses\n\n const rC = 0.401288 * x + 0.650173 * y - 0.051461 * z;\n const gC = -0.250268 * x + 1.204414 * y + 0.045854 * z;\n const bC = -0.002079 * x + 0.048952 * y + 0.953127 * z;\n\n // Discount illuminant\n const rD = viewingConditions.rgbD[0] * rC;\n const gD = viewingConditions.rgbD[1] * gC;\n const bD = viewingConditions.rgbD[2] * bC;\n\n // chromatic adaptation\n const rAF = Math.pow((viewingConditions.fl * Math.abs(rD)) / 100.0, 0.42);\n const gAF = Math.pow((viewingConditions.fl * Math.abs(gD)) / 100.0, 0.42);\n const bAF = Math.pow((viewingConditions.fl * Math.abs(bD)) / 100.0, 0.42);\n const rA = (math.signum(rD) * 400.0 * rAF) / (rAF + 27.13);\n const gA = (math.signum(gD) * 400.0 * gAF) / (gAF + 27.13);\n const bA = (math.signum(bD) * 400.0 * bAF) / (bAF + 27.13);\n\n // redness-greenness\n const a = (11.0 * rA + -12.0 * gA + bA) / 11.0;\n // yellowness-blueness\n const b = (rA + gA - 2.0 * bA) / 9.0;\n\n // auxiliary components\n const u = (20.0 * rA + 20.0 * gA + 21.0 * bA) / 20.0;\n const p2 = (40.0 * rA + 20.0 * gA + bA) / 20.0;\n\n // hue\n const atan2 = Math.atan2(b, a);\n const atanDegrees = (atan2 * 180.0) / Math.PI;\n const hue =\n atanDegrees < 0\n ? atanDegrees + 360.0\n : atanDegrees >= 360\n ? atanDegrees - 360\n : atanDegrees;\n const hueRadians = (hue * Math.PI) / 180.0;\n\n // achromatic response to color\n const ac = p2 * viewingConditions.nbb;\n\n // CAM16 lightness and brightness\n const J =\n 100.0 *\n Math.pow(\n ac / viewingConditions.aw,\n viewingConditions.c * viewingConditions.z,\n );\n const Q =\n (4.0 / viewingConditions.c) *\n Math.sqrt(J / 100.0) *\n (viewingConditions.aw + 4.0) *\n viewingConditions.fLRoot;\n\n const huePrime = hue < 20.14 ? hue + 360 : hue;\n const eHue =\n (1.0 / 4.0) * (Math.cos((huePrime * Math.PI) / 180.0 + 2.0) + 3.8);\n const p1 =\n (50000.0 / 13.0) * eHue * viewingConditions.nc * viewingConditions.ncb;\n const t = (p1 * Math.sqrt(a * a + b * b)) / (u + 0.305);\n const alpha =\n Math.pow(t, 0.9) *\n Math.pow(1.64 - Math.pow(0.29, viewingConditions.n), 0.73);\n // CAM16 chroma, colorfulness, chroma\n const C = alpha * Math.sqrt(J / 100.0);\n const M = C * viewingConditions.fLRoot;\n const s =\n 50.0 *\n Math.sqrt((alpha * viewingConditions.c) / (viewingConditions.aw + 4.0));\n\n // CAM16-UCS components\n const jstar = ((1.0 + 100.0 * 0.007) * J) / (1.0 + 0.007 * J);\n const mstar = Math.log(1.0 + 0.0228 * M) / 0.0228;\n const astar = mstar * Math.cos(hueRadians);\n const bstar = mstar * Math.sin(hueRadians);\n return new Cam16(hue, C, J, Q, M, s, jstar, astar, bstar);\n }\n\n /// XYZ representation of CAM16 seen in [viewingConditions].\n xyzInViewingConditions(viewingConditions: ViewingConditions): number[] {\n const alpha =\n this.chroma === 0.0 || this.j === 0.0\n ? 0.0\n : this.chroma / Math.sqrt(this.j / 100.0);\n\n const t = Math.pow(\n alpha / Math.pow(1.64 - Math.pow(0.29, viewingConditions.n), 0.73),\n 1.0 / 0.9,\n );\n const hRad = (this.hue * Math.PI) / 180.0;\n\n const eHue = 0.25 * (Math.cos(hRad + 2.0) + 3.8);\n const ac =\n viewingConditions.aw *\n Math.pow(this.j / 100.0, 1.0 / viewingConditions.c / viewingConditions.z);\n const p1 =\n eHue * (50000.0 / 13.0) * viewingConditions.nc * viewingConditions.ncb;\n\n const p2 = ac / viewingConditions.nbb;\n\n const hSin = Math.sin(hRad);\n const hCos = Math.cos(hRad);\n\n const gamma =\n (23.0 * (p2 + 0.305) * t) /\n (23.0 * p1 + 11 * t * hCos + 108.0 * t * hSin);\n const a = gamma * hCos;\n const b = gamma * hSin;\n const rA = (460.0 * p2 + 451.0 * a + 288.0 * b) / 1403.0;\n const gA = (460.0 * p2 - 891.0 * a - 261.0 * b) / 1403.0;\n const bA = (460.0 * p2 - 220.0 * a - 6300.0 * b) / 1403.0;\n\n const rCBase = Math.max(0, (27.13 * Math.abs(rA)) / (400.0 - Math.abs(rA)));\n const rC =\n math.signum(rA) *\n (100.0 / viewingConditions.fl) *\n Math.pow(rCBase, 1.0 / 0.42);\n const gCBase = Math.max(0, (27.13 * Math.abs(gA)) / (400.0 - Math.abs(gA)));\n const gC =\n math.signum(gA) *\n (100.0 / viewingConditions.fl) *\n Math.pow(gCBase, 1.0 / 0.42);\n const bCBase = Math.max(0, (27.13 * Math.abs(bA)) / (400.0 - Math.abs(bA)));\n const bC =\n math.signum(bA) *\n (100.0 / viewingConditions.fl) *\n Math.pow(bCBase, 1.0 / 0.42);\n const rF = rC / viewingConditions.rgbD[0];\n const gF = gC / viewingConditions.rgbD[1];\n const bF = bC / viewingConditions.rgbD[2];\n\n const x = 1.86206786 * rF - 1.01125463 * gF + 0.14918677 * bF;\n const y = 0.38752654 * rF + 0.62144744 * gF - 0.00897398 * bF;\n const z = -0.0158415 * rF - 0.03412294 * gF + 1.04996444 * bF;\n\n return [x, y, z];\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
1
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
4
  /**
5
5
  * @license
6
6
  * Copyright 2021 Google LLC
@@ -18,10 +18,10 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
18
18
  * limitations under the License.
19
19
  */
20
20
  // This file is automatically generated. Do not modify it.
21
- import { Cam16 } from "./cam16.js";
22
- import { ViewingConditions } from "./viewing-conditions.js";
23
21
  import { argbFromLinrgb, argbFromLstar, yFromLstar } from "../conversion.js";
24
- import * as mathUtils from "../utils/math-utils.js"; // material_color_utilities is designed to have a consistent API across
22
+ import * as mathUtils from "../utils/math-utils.js";
23
+ import { Cam16 } from "./cam16.js";
24
+ import { ViewingConditions } from "./viewing-conditions.js"; // material_color_utilities is designed to have a consistent API across
25
25
  // platforms and modular components that can be moved around easily. Using a
26
26
  // class as a namespace facilitates this.
27
27
  //
@@ -1 +1 @@
1
- {"version":3,"file":"hct-solver.js","names":["Cam16","ViewingConditions","argbFromLinrgb","argbFromLstar","yFromLstar","mathUtils","HctSolver","sanitizeRadians","angle","Math","PI","trueDelinearized","rgbComponent","normalized","delinearized","pow","chromaticAdaptation","component","af","abs","signum","hueOf","linrgb","scaledDiscount","matrixMultiply","SCALED_DISCOUNT_FROM_LINRGB","rA","gA","bA","a","b","atan2","areInCyclicOrder","c","deltaAB","deltaAC","intercept","source","mid","target","lerpPoint","t","setCoordinate","coordinate","axis","isBounded","x","nthVertex","y","n","kR","Y_FROM_LINRGB","kG","kB","coordA","coordB","g","r","bisectToSegment","targetHue","left","right","leftHue","rightHue","initialized","uncut","midHue","midpoint","criticalPlaneBelow","floor","criticalPlaneAbove","ceil","bisectToLimit","segment","lPlane","rPlane","i","mPlane","midPlaneCoordinate","CRITICAL_PLANES","inverseChromaticAdaptation","adapted","adaptedAbs","base","max","findResultByJ","hueRadians","chroma","j","sqrt","viewingConditions","DEFAULT","tInnerCoeff","eHue","cos","p1","nc","ncb","hSin","sin","hCos","iterationRound","jNormalized","alpha","ac","aw","z","p2","nbb","gamma","rCScaled","gCScaled","bCScaled","LINRGB_FROM_SCALED_DISCOUNT","fnj","solveToInt","hueDegrees","lstar","sanitizeDegreesDouble","exactAnswer","solveToCam","fromInt","_defineProperty"],"sources":["../../../../src/util/color/hct/hct-solver.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// This file is automatically generated. Do not modify it.\nimport { Cam16 } from './cam16';\nimport { ViewingConditions } from './viewing-conditions';\n\nimport { argbFromLinrgb, argbFromLstar, yFromLstar } from '../conversion';\nimport * as mathUtils from '../utils/math-utils';\n\n// material_color_utilities is designed to have a consistent API across\n// platforms and modular components that can be moved around easily. Using a\n// class as a namespace facilitates this.\n//\n// tslint:disable:class-as-namespace\n/**\n * A class that solves the HCT equation.\n */\nexport class HctSolver {\n static SCALED_DISCOUNT_FROM_LINRGB = [\n [0.001200833568784504, 0.002389694492170889, 0.0002795742885861124],\n [0.0005891086651375999, 0.0029785502573438758, 0.0003270666104008398],\n [0.00010146692491640572, 0.0005364214359186694, 0.0032979401770712076],\n ];\n\n static LINRGB_FROM_SCALED_DISCOUNT = [\n [1373.2198709594231, -1100.4251190754821, -7.278681089101213],\n [-271.815969077903, 559.6580465940733, -32.46047482791194],\n [1.9622899599665666, -57.173814538844006, 308.7233197812385],\n ];\n\n static Y_FROM_LINRGB = [0.2126, 0.7152, 0.0722];\n\n static CRITICAL_PLANES = [\n 0.015176349177441876, 0.045529047532325624, 0.07588174588720938,\n 0.10623444424209313, 0.13658714259697685, 0.16693984095186062,\n 0.19729253930674434, 0.2276452376616281, 0.2579979360165119,\n 0.28835063437139563, 0.3188300904430532, 0.350925934958123,\n 0.3848314933096426, 0.42057480301049466, 0.458183274052838,\n 0.4976837250274023, 0.5391024159806381, 0.5824650784040898,\n 0.6277969426914107, 0.6751227633498623, 0.7244668422128921,\n 0.775853049866786, 0.829304845476233, 0.8848452951698498, 0.942497089126609,\n 1.0022825574869039, 1.0642236851973577, 1.1283421258858297,\n 1.1946592148522128, 1.2631959812511864, 1.3339731595349034,\n 1.407011200216447, 1.4823302800086415, 1.5599503113873272,\n 1.6398909516233677, 1.7221716113234105, 1.8068114625156377,\n 1.8938294463134073, 1.9832442801866852, 2.075074464868551,\n 2.1693382909216234, 2.2660538449872063, 2.36523901573795,\n 2.4669114995532007, 2.5710888059345764, 2.6777882626779785,\n 2.7870270208169257, 2.898822059350997, 3.0131901897720907,\n 3.1301480604002863, 3.2497121605402226, 3.3718988244681087,\n 3.4967242352587946, 3.624204428461639, 3.754355295633311, 3.887192587735158,\n 4.022731918402185, 4.160988767090289, 4.301978482107941, 4.445716283538092,\n 4.592217266055746, 4.741496401646282, 4.893568542229298, 5.048448422192488,\n 5.20615066083972, 5.3666897647573375, 5.5300801301023865, 5.696336044816294,\n 5.865471690767354, 6.037501145825082, 6.212438385869475, 6.390297286737924,\n 6.571091626112461, 6.7548350853498045, 6.941541251256611, 7.131223617812143,\n 7.323895587840543, 7.5195704746346665, 7.7182615035334345,\n 7.919981813454504, 8.124744458384042, 8.332562408825165, 8.543448553206703,\n 8.757415699253682, 8.974476575321063, 9.194643831691977, 9.417930041841839,\n 9.644347703669503, 9.873909240696694, 10.106627003236781,\n 10.342513269534024, 10.58158024687427, 10.8238400726681, 11.069304815507364,\n 11.317986476196008, 11.569896988756009, 11.825048221409341,\n 12.083451977536606, 12.345119996613247, 12.610063955123938,\n 12.878295467455942, 13.149826086772048, 13.42466730586372,\n 13.702830557985108, 13.984327217668513, 14.269168601521828,\n 14.55736596900856, 14.848930523210871, 15.143873411576273,\n 15.44220572664832, 15.743938506781891, 16.04908273684337, 16.35764934889634,\n 16.66964922287304, 16.985093187232053, 17.30399201960269, 17.62635644741625,\n 17.95219714852476, 18.281524751807332, 18.614349837764564,\n 18.95068293910138, 19.290534541298456, 19.633915083172692,\n 19.98083495742689, 20.331304511189067, 20.685334046541502,\n 21.042933821039977, 21.404114048223256, 21.76888489811322,\n 22.137256497705877, 22.50923893145328, 22.884842241736916,\n 23.264076429332462, 23.6469514538663, 24.033477234264016, 24.42366364919083,\n 24.817520537484558, 25.21505769858089, 25.61628489293138,\n 26.021211842414342, 26.429848230738664, 26.842203703840827,\n 27.258287870275353, 27.678110301598522, 28.10168053274597,\n 28.529008062403893, 28.96010235337422, 29.39497283293396, 29.83362889318845,\n 30.276079891419332, 30.722335150426627, 31.172403958865512,\n 31.62629557157785, 32.08401920991837, 32.54558406207592, 33.010999283389665,\n 33.4802739966603, 33.953417292456834, 34.430438229418264,\n 34.911345834551085, 35.39614910352207, 35.88485700094671, 36.37747846067349,\n 36.87402238606382, 37.37449765026789, 37.87891309649659, 38.38727753828926,\n 38.89959975977785, 39.41588851594697, 39.93615253289054, 40.460400508064545,\n 40.98864111053629, 41.520882981230194, 42.05713473317016,\n 42.597404951718396, 43.141702194811224, 43.6900349931913, 44.24241185063697,\n 44.798841244188324, 45.35933162437017, 45.92389141541209, 46.49252901546552,\n 47.065252796817916, 47.64207110610409, 48.22299226451468,\n 48.808024568002054, 49.3971762874833, 49.9904556690408, 50.587870934119984,\n 51.189430279724725, 51.79514187861014, 52.40501387947288, 53.0190544071392,\n 53.637271562750364, 54.259673423945976, 54.88626804504493,\n 55.517063457223934, 56.15206766869424, 56.79128866487574, 57.43473440856916,\n 58.08241284012621, 58.734331877617365, 59.39049941699807, 60.05092333227251,\n 60.715611475655585, 61.38457167773311, 62.057811747619894, 62.7353394731159,\n 63.417162620860914, 64.10328893648692, 64.79372614476921, 65.48848194977529,\n 66.18756403501224, 66.89098006357258, 67.59873767827808, 68.31084450182222,\n 69.02730813691093, 69.74813616640164, 70.47333615344107, 71.20291564160104,\n 71.93688215501312, 72.67524319850172, 73.41800625771542, 74.16517879925733,\n 74.9167682708136, 75.67278210128072, 76.43322770089146, 77.1981124613393,\n 77.96744375590167, 78.74122893956174, 79.51947534912904, 80.30219030335869,\n 81.08938110306934, 81.88105503125999, 82.67721935322541, 83.4778813166706,\n 84.28304815182372, 85.09272707154808, 85.90692527145302, 86.72564993000343,\n 87.54890820862819, 88.3767072518277, 89.2090541872801, 90.04595612594655,\n 90.88742016217518, 91.73345337380438, 92.58406282226491, 93.43925555268066,\n 94.29903859396902, 95.16341895893969, 96.03240364439274, 96.9059996312159,\n 97.78421388448044, 98.6670533535366, 99.55452497210776,\n ];\n\n /**\n * Sanitizes a small enough angle in radians.\n *\n * @param angle An angle in radians; must not deviate too much\n * from 0.\n * @return A coterminal angle between 0 and 2pi.\n */\n private static sanitizeRadians(angle: number): number {\n return (angle + Math.PI * 8) % (Math.PI * 2);\n }\n\n /**\n * Delinearizes an RGB component, returning a floating-point\n * number.\n *\n * @param rgbComponent 0.0 <= rgb_component <= 100.0, represents\n * linear R/G/B channel\n * @return 0.0 <= output <= 255.0, color channel converted to\n * regular RGB space\n */\n private static trueDelinearized(rgbComponent: number): number {\n const normalized = rgbComponent / 100.0;\n let delinearized = 0.0;\n if (normalized <= 0.0031308) {\n delinearized = normalized * 12.92;\n } else {\n delinearized = 1.055 * Math.pow(normalized, 1.0 / 2.4) - 0.055;\n }\n return delinearized * 255.0;\n }\n\n private static chromaticAdaptation(component: number): number {\n const af = Math.pow(Math.abs(component), 0.42);\n return (mathUtils.signum(component) * 400.0 * af) / (af + 27.13);\n }\n\n /**\n * Returns the hue of a linear RGB color in CAM16.\n *\n * @param linrgb The linear RGB coordinates of a color.\n * @return The hue of the color in CAM16, in radians.\n */\n private static hueOf(linrgb: number[]): number {\n const scaledDiscount = mathUtils.matrixMultiply(\n linrgb,\n HctSolver.SCALED_DISCOUNT_FROM_LINRGB,\n );\n const rA = HctSolver.chromaticAdaptation(scaledDiscount[0]);\n const gA = HctSolver.chromaticAdaptation(scaledDiscount[1]);\n const bA = HctSolver.chromaticAdaptation(scaledDiscount[2]);\n // redness-greenness\n const a = (11.0 * rA + -12.0 * gA + bA) / 11.0;\n // yellowness-blueness\n const b = (rA + gA - 2.0 * bA) / 9.0;\n return Math.atan2(b, a);\n }\n\n private static areInCyclicOrder(a: number, b: number, c: number): boolean {\n const deltaAB = HctSolver.sanitizeRadians(b - a);\n const deltaAC = HctSolver.sanitizeRadians(c - a);\n return deltaAB < deltaAC;\n }\n\n /**\n * Solves the lerp equation.\n *\n * @param source The starting number.\n * @param mid The number in the middle.\n * @param target The ending number.\n * @return A number t such that lerp(source, target, t) = mid.\n */\n private static intercept(\n source: number,\n mid: number,\n target: number,\n ): number {\n return (mid - source) / (target - source);\n }\n\n private static lerpPoint(\n source: number[],\n t: number,\n target: number[],\n ): number[] {\n return [\n source[0] + (target[0] - source[0]) * t,\n source[1] + (target[1] - source[1]) * t,\n source[2] + (target[2] - source[2]) * t,\n ];\n }\n\n /**\n * Intersects a segment with a plane.\n *\n * @param source The coordinates of point A.\n * @param coordinate The R-, G-, or B-coordinate of the plane.\n * @param target The coordinates of point B.\n * @param axis The axis the plane is perpendicular with. (0: R, 1:\n * G, 2: B)\n * @return The intersection point of the segment AB with the plane\n * R=coordinate, G=coordinate, or B=coordinate\n */\n private static setCoordinate(\n source: number[],\n coordinate: number,\n target: number[],\n axis: number,\n ): number[] {\n const t = HctSolver.intercept(source[axis], coordinate, target[axis]);\n return HctSolver.lerpPoint(source, t, target);\n }\n\n private static isBounded(x: number): boolean {\n return 0.0 <= x && x <= 100.0;\n }\n\n /**\n * Returns the nth possible vertex of the polygonal intersection.\n *\n * @param y The Y value of the plane.\n * @param n The zero-based index of the point. 0 <= n <= 11.\n * @return The nth possible vertex of the polygonal intersection\n * of the y plane and the RGB cube, in linear RGB coordinates, if\n * it exists. If this possible vertex lies outside of the cube,\n * [-1.0, -1.0, -1.0] is returned.\n */\n private static nthVertex(y: number, n: number): number[] {\n const kR = HctSolver.Y_FROM_LINRGB[0];\n const kG = HctSolver.Y_FROM_LINRGB[1];\n const kB = HctSolver.Y_FROM_LINRGB[2];\n const coordA = n % 4 <= 1 ? 0.0 : 100.0;\n const coordB = n % 2 === 0 ? 0.0 : 100.0;\n if (n < 4) {\n const g = coordA;\n const b = coordB;\n const r = (y - g * kG - b * kB) / kR;\n if (HctSolver.isBounded(r)) {\n return [r, g, b];\n } else {\n return [-1.0, -1.0, -1.0];\n }\n } else if (n < 8) {\n const b = coordA;\n const r = coordB;\n const g = (y - r * kR - b * kB) / kG;\n if (HctSolver.isBounded(g)) {\n return [r, g, b];\n } else {\n return [-1.0, -1.0, -1.0];\n }\n } else {\n const r = coordA;\n const g = coordB;\n const b = (y - r * kR - g * kG) / kB;\n if (HctSolver.isBounded(b)) {\n return [r, g, b];\n } else {\n return [-1.0, -1.0, -1.0];\n }\n }\n }\n\n /**\n * Finds the segment containing the desired color.\n *\n * @param y The Y value of the color.\n * @param targetHue The hue of the color.\n * @return A list of two sets of linear RGB coordinates, each\n * corresponding to an endpoint of the segment containing the\n * desired color.\n */\n private static bisectToSegment(y: number, targetHue: number): number[][] {\n let left = [-1.0, -1.0, -1.0];\n let right = left;\n let leftHue = 0.0;\n let rightHue = 0.0;\n let initialized = false;\n let uncut = true;\n for (let n = 0; n < 12; n++) {\n const mid = HctSolver.nthVertex(y, n);\n if (mid[0] < 0) {\n continue;\n }\n const midHue = HctSolver.hueOf(mid);\n if (!initialized) {\n left = mid;\n right = mid;\n leftHue = midHue;\n rightHue = midHue;\n initialized = true;\n continue;\n }\n if (uncut || HctSolver.areInCyclicOrder(leftHue, midHue, rightHue)) {\n uncut = false;\n if (HctSolver.areInCyclicOrder(leftHue, targetHue, midHue)) {\n right = mid;\n rightHue = midHue;\n } else {\n left = mid;\n leftHue = midHue;\n }\n }\n }\n return [left, right];\n }\n\n private static midpoint(a: number[], b: number[]): number[] {\n return [(a[0] + b[0]) / 2, (a[1] + b[1]) / 2, (a[2] + b[2]) / 2];\n }\n\n private static criticalPlaneBelow(x: number): number {\n return Math.floor(x - 0.5);\n }\n\n private static criticalPlaneAbove(x: number): number {\n return Math.ceil(x - 0.5);\n }\n\n /**\n * Finds a color with the given Y and hue on the boundary of the\n * cube.\n *\n * @param y The Y value of the color.\n * @param targetHue The hue of the color.\n * @return The desired color, in linear RGB coordinates.\n */\n private static bisectToLimit(y: number, targetHue: number): number[] {\n const segment = HctSolver.bisectToSegment(y, targetHue);\n let left = segment[0];\n let leftHue = HctSolver.hueOf(left);\n let right = segment[1];\n for (let axis = 0; axis < 3; axis++) {\n if (left[axis] !== right[axis]) {\n let lPlane = -1;\n let rPlane = 255;\n if (left[axis] < right[axis]) {\n lPlane = HctSolver.criticalPlaneBelow(\n HctSolver.trueDelinearized(left[axis]),\n );\n rPlane = HctSolver.criticalPlaneAbove(\n HctSolver.trueDelinearized(right[axis]),\n );\n } else {\n lPlane = HctSolver.criticalPlaneAbove(\n HctSolver.trueDelinearized(left[axis]),\n );\n rPlane = HctSolver.criticalPlaneBelow(\n HctSolver.trueDelinearized(right[axis]),\n );\n }\n for (let i = 0; i < 8; i++) {\n if (Math.abs(rPlane - lPlane) <= 1) {\n break;\n } else {\n const mPlane = Math.floor((lPlane + rPlane) / 2.0);\n const midPlaneCoordinate = HctSolver.CRITICAL_PLANES[mPlane];\n const mid = HctSolver.setCoordinate(\n left,\n midPlaneCoordinate,\n right,\n axis,\n );\n const midHue = HctSolver.hueOf(mid);\n if (HctSolver.areInCyclicOrder(leftHue, targetHue, midHue)) {\n right = mid;\n rPlane = mPlane;\n } else {\n left = mid;\n leftHue = midHue;\n lPlane = mPlane;\n }\n }\n }\n }\n }\n return HctSolver.midpoint(left, right);\n }\n\n private static inverseChromaticAdaptation(adapted: number): number {\n const adaptedAbs = Math.abs(adapted);\n const base = Math.max(0, (27.13 * adaptedAbs) / (400.0 - adaptedAbs));\n return mathUtils.signum(adapted) * Math.pow(base, 1.0 / 0.42);\n }\n\n /**\n * Finds a color with the given hue, chroma, and Y.\n *\n * @param hueRadians The desired hue in radians.\n * @param chroma The desired chroma.\n * @param y The desired Y.\n * @return The desired color as a hexadecimal integer, if found; 0\n * otherwise.\n */\n private static findResultByJ(\n hueRadians: number,\n chroma: number,\n y: number,\n ): number {\n // Initial estimate of j.\n let j = Math.sqrt(y) * 11.0;\n // ===========================================================\n // Operations inlined from Cam16 to avoid repeated calculation\n // ===========================================================\n const viewingConditions = ViewingConditions.DEFAULT;\n const tInnerCoeff =\n 1 / Math.pow(1.64 - Math.pow(0.29, viewingConditions.n), 0.73);\n const eHue = 0.25 * (Math.cos(hueRadians + 2.0) + 3.8);\n const p1 =\n eHue * (50000.0 / 13.0) * viewingConditions.nc * viewingConditions.ncb;\n const hSin = Math.sin(hueRadians);\n const hCos = Math.cos(hueRadians);\n for (let iterationRound = 0; iterationRound < 5; iterationRound++) {\n // ===========================================================\n // Operations inlined from Cam16 to avoid repeated calculation\n // ===========================================================\n const jNormalized = j / 100.0;\n const alpha =\n chroma === 0.0 || j === 0.0 ? 0.0 : chroma / Math.sqrt(jNormalized);\n const t = Math.pow(alpha * tInnerCoeff, 1.0 / 0.9);\n const ac =\n viewingConditions.aw *\n Math.pow(jNormalized, 1.0 / viewingConditions.c / viewingConditions.z);\n const p2 = ac / viewingConditions.nbb;\n const gamma =\n (23.0 * (p2 + 0.305) * t) /\n (23.0 * p1 + 11 * t * hCos + 108.0 * t * hSin);\n const a = gamma * hCos;\n const b = gamma * hSin;\n const rA = (460.0 * p2 + 451.0 * a + 288.0 * b) / 1403.0;\n const gA = (460.0 * p2 - 891.0 * a - 261.0 * b) / 1403.0;\n const bA = (460.0 * p2 - 220.0 * a - 6300.0 * b) / 1403.0;\n const rCScaled = HctSolver.inverseChromaticAdaptation(rA);\n const gCScaled = HctSolver.inverseChromaticAdaptation(gA);\n const bCScaled = HctSolver.inverseChromaticAdaptation(bA);\n const linrgb = mathUtils.matrixMultiply(\n [rCScaled, gCScaled, bCScaled],\n HctSolver.LINRGB_FROM_SCALED_DISCOUNT,\n );\n // ===========================================================\n // Operations inlined from Cam16 to avoid repeated calculation\n // ===========================================================\n if (linrgb[0] < 0 || linrgb[1] < 0 || linrgb[2] < 0) {\n return 0;\n }\n const kR = HctSolver.Y_FROM_LINRGB[0];\n const kG = HctSolver.Y_FROM_LINRGB[1];\n const kB = HctSolver.Y_FROM_LINRGB[2];\n const fnj = kR * linrgb[0] + kG * linrgb[1] + kB * linrgb[2];\n if (fnj <= 0) {\n return 0;\n }\n if (iterationRound === 4 || Math.abs(fnj - y) < 0.002) {\n if (linrgb[0] > 100.01 || linrgb[1] > 100.01 || linrgb[2] > 100.01) {\n return 0;\n }\n return argbFromLinrgb(linrgb);\n }\n // Iterates with Newton method,\n // Using 2 * fn(j) / j as the approximation of fn'(j)\n j = j - ((fnj - y) * j) / (2 * fnj);\n }\n return 0;\n }\n\n /**\n * Finds an sRGB color with the given hue, chroma, and L*, if\n * possible.\n *\n * @param hueDegrees The desired hue, in degrees.\n * @param chroma The desired chroma.\n * @param lstar The desired L*.\n * @return A hexadecimal representing the sRGB color. The color\n * has sufficiently close hue, chroma, and L* to the desired\n * values, if possible; otherwise, the hue and L* will be\n * sufficiently close, and chroma will be maximized.\n */\n static solveToInt(hueDegrees: number, chroma: number, lstar: number): number {\n if (chroma < 0.0001 || lstar < 0.0001 || lstar > 99.9999) {\n return argbFromLstar(lstar);\n }\n hueDegrees = mathUtils.sanitizeDegreesDouble(hueDegrees);\n const hueRadians = (hueDegrees / 180) * Math.PI;\n const y = yFromLstar(lstar);\n const exactAnswer = HctSolver.findResultByJ(hueRadians, chroma, y);\n if (exactAnswer !== 0) {\n return exactAnswer;\n }\n const linrgb = HctSolver.bisectToLimit(y, hueRadians);\n return argbFromLinrgb(linrgb);\n }\n\n /**\n * Finds an sRGB color with the given hue, chroma, and L*, if\n * possible.\n *\n * @param hueDegrees The desired hue, in degrees.\n * @param chroma The desired chroma.\n * @param lstar The desired L*.\n * @return An CAM16 object representing the sRGB color. The color\n * has sufficiently close hue, chroma, and L* to the desired\n * values, if possible; otherwise, the hue and L* will be\n * sufficiently close, and chroma will be maximized.\n */\n static solveToCam(hueDegrees: number, chroma: number, lstar: number): Cam16 {\n return Cam16.fromInt(HctSolver.solveToInt(hueDegrees, chroma, lstar));\n }\n}\n"],"mappings":"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iB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EACxD,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAC3E,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAC1D,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAC1D,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EACzD,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAC1D,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EACzD,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EACzD,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EACzD,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EACzD,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EACzD,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EACzD,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAC3E,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EACxD,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAC1D,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EACzD,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAC1D,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAC3E,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EACxD,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAC3E,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EACxD,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAC3E,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EACxD,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAC1E,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAC1E,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EACzD,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAC3E,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EACxE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EACzE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EACxE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EACzE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,CACvD"}
1
+ {"version":3,"file":"hct-solver.js","names":["argbFromLinrgb","argbFromLstar","yFromLstar","mathUtils","Cam16","ViewingConditions","HctSolver","sanitizeRadians","angle","Math","PI","trueDelinearized","rgbComponent","normalized","delinearized","pow","chromaticAdaptation","component","af","abs","signum","hueOf","linrgb","scaledDiscount","matrixMultiply","SCALED_DISCOUNT_FROM_LINRGB","rA","gA","bA","a","b","atan2","areInCyclicOrder","c","deltaAB","deltaAC","intercept","source","mid","target","lerpPoint","t","setCoordinate","coordinate","axis","isBounded","x","nthVertex","y","n","kR","Y_FROM_LINRGB","kG","kB","coordA","coordB","g","r","bisectToSegment","targetHue","left","right","leftHue","rightHue","initialized","uncut","midHue","midpoint","criticalPlaneBelow","floor","criticalPlaneAbove","ceil","bisectToLimit","segment","lPlane","rPlane","i","mPlane","midPlaneCoordinate","CRITICAL_PLANES","inverseChromaticAdaptation","adapted","adaptedAbs","base","max","findResultByJ","hueRadians","chroma","j","sqrt","viewingConditions","DEFAULT","tInnerCoeff","eHue","cos","p1","nc","ncb","hSin","sin","hCos","iterationRound","jNormalized","alpha","ac","aw","z","p2","nbb","gamma","rCScaled","gCScaled","bCScaled","LINRGB_FROM_SCALED_DISCOUNT","fnj","solveToInt","hueDegrees","lstar","sanitizeDegreesDouble","exactAnswer","solveToCam","fromInt","_defineProperty"],"sources":["../../../../src/util/color/hct/hct-solver.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// This file is automatically generated. Do not modify it.\n\nimport { argbFromLinrgb, argbFromLstar, yFromLstar } from '../conversion';\nimport * as mathUtils from '../utils/math-utils';\nimport { Cam16 } from './cam16';\nimport { ViewingConditions } from './viewing-conditions';\n\n// material_color_utilities is designed to have a consistent API across\n// platforms and modular components that can be moved around easily. Using a\n// class as a namespace facilitates this.\n//\n// tslint:disable:class-as-namespace\n/**\n * A class that solves the HCT equation.\n */\nexport class HctSolver {\n static SCALED_DISCOUNT_FROM_LINRGB = [\n [0.001200833568784504, 0.002389694492170889, 0.0002795742885861124],\n [0.0005891086651375999, 0.0029785502573438758, 0.0003270666104008398],\n [0.00010146692491640572, 0.0005364214359186694, 0.0032979401770712076],\n ];\n\n static LINRGB_FROM_SCALED_DISCOUNT = [\n [1373.2198709594231, -1100.4251190754821, -7.278681089101213],\n [-271.815969077903, 559.6580465940733, -32.46047482791194],\n [1.9622899599665666, -57.173814538844006, 308.7233197812385],\n ];\n\n static Y_FROM_LINRGB = [0.2126, 0.7152, 0.0722];\n\n static CRITICAL_PLANES = [\n 0.015176349177441876, 0.045529047532325624, 0.07588174588720938,\n 0.10623444424209313, 0.13658714259697685, 0.16693984095186062,\n 0.19729253930674434, 0.2276452376616281, 0.2579979360165119,\n 0.28835063437139563, 0.3188300904430532, 0.350925934958123,\n 0.3848314933096426, 0.42057480301049466, 0.458183274052838,\n 0.4976837250274023, 0.5391024159806381, 0.5824650784040898,\n 0.6277969426914107, 0.6751227633498623, 0.7244668422128921,\n 0.775853049866786, 0.829304845476233, 0.8848452951698498, 0.942497089126609,\n 1.0022825574869039, 1.0642236851973577, 1.1283421258858297,\n 1.1946592148522128, 1.2631959812511864, 1.3339731595349034,\n 1.407011200216447, 1.4823302800086415, 1.5599503113873272,\n 1.6398909516233677, 1.7221716113234105, 1.8068114625156377,\n 1.8938294463134073, 1.9832442801866852, 2.075074464868551,\n 2.1693382909216234, 2.2660538449872063, 2.36523901573795,\n 2.4669114995532007, 2.5710888059345764, 2.6777882626779785,\n 2.7870270208169257, 2.898822059350997, 3.0131901897720907,\n 3.1301480604002863, 3.2497121605402226, 3.3718988244681087,\n 3.4967242352587946, 3.624204428461639, 3.754355295633311, 3.887192587735158,\n 4.022731918402185, 4.160988767090289, 4.301978482107941, 4.445716283538092,\n 4.592217266055746, 4.741496401646282, 4.893568542229298, 5.048448422192488,\n 5.20615066083972, 5.3666897647573375, 5.5300801301023865, 5.696336044816294,\n 5.865471690767354, 6.037501145825082, 6.212438385869475, 6.390297286737924,\n 6.571091626112461, 6.7548350853498045, 6.941541251256611, 7.131223617812143,\n 7.323895587840543, 7.5195704746346665, 7.7182615035334345,\n 7.919981813454504, 8.124744458384042, 8.332562408825165, 8.543448553206703,\n 8.757415699253682, 8.974476575321063, 9.194643831691977, 9.417930041841839,\n 9.644347703669503, 9.873909240696694, 10.106627003236781,\n 10.342513269534024, 10.58158024687427, 10.8238400726681, 11.069304815507364,\n 11.317986476196008, 11.569896988756009, 11.825048221409341,\n 12.083451977536606, 12.345119996613247, 12.610063955123938,\n 12.878295467455942, 13.149826086772048, 13.42466730586372,\n 13.702830557985108, 13.984327217668513, 14.269168601521828,\n 14.55736596900856, 14.848930523210871, 15.143873411576273,\n 15.44220572664832, 15.743938506781891, 16.04908273684337, 16.35764934889634,\n 16.66964922287304, 16.985093187232053, 17.30399201960269, 17.62635644741625,\n 17.95219714852476, 18.281524751807332, 18.614349837764564,\n 18.95068293910138, 19.290534541298456, 19.633915083172692,\n 19.98083495742689, 20.331304511189067, 20.685334046541502,\n 21.042933821039977, 21.404114048223256, 21.76888489811322,\n 22.137256497705877, 22.50923893145328, 22.884842241736916,\n 23.264076429332462, 23.6469514538663, 24.033477234264016, 24.42366364919083,\n 24.817520537484558, 25.21505769858089, 25.61628489293138,\n 26.021211842414342, 26.429848230738664, 26.842203703840827,\n 27.258287870275353, 27.678110301598522, 28.10168053274597,\n 28.529008062403893, 28.96010235337422, 29.39497283293396, 29.83362889318845,\n 30.276079891419332, 30.722335150426627, 31.172403958865512,\n 31.62629557157785, 32.08401920991837, 32.54558406207592, 33.010999283389665,\n 33.4802739966603, 33.953417292456834, 34.430438229418264,\n 34.911345834551085, 35.39614910352207, 35.88485700094671, 36.37747846067349,\n 36.87402238606382, 37.37449765026789, 37.87891309649659, 38.38727753828926,\n 38.89959975977785, 39.41588851594697, 39.93615253289054, 40.460400508064545,\n 40.98864111053629, 41.520882981230194, 42.05713473317016,\n 42.597404951718396, 43.141702194811224, 43.6900349931913, 44.24241185063697,\n 44.798841244188324, 45.35933162437017, 45.92389141541209, 46.49252901546552,\n 47.065252796817916, 47.64207110610409, 48.22299226451468,\n 48.808024568002054, 49.3971762874833, 49.9904556690408, 50.587870934119984,\n 51.189430279724725, 51.79514187861014, 52.40501387947288, 53.0190544071392,\n 53.637271562750364, 54.259673423945976, 54.88626804504493,\n 55.517063457223934, 56.15206766869424, 56.79128866487574, 57.43473440856916,\n 58.08241284012621, 58.734331877617365, 59.39049941699807, 60.05092333227251,\n 60.715611475655585, 61.38457167773311, 62.057811747619894, 62.7353394731159,\n 63.417162620860914, 64.10328893648692, 64.79372614476921, 65.48848194977529,\n 66.18756403501224, 66.89098006357258, 67.59873767827808, 68.31084450182222,\n 69.02730813691093, 69.74813616640164, 70.47333615344107, 71.20291564160104,\n 71.93688215501312, 72.67524319850172, 73.41800625771542, 74.16517879925733,\n 74.9167682708136, 75.67278210128072, 76.43322770089146, 77.1981124613393,\n 77.96744375590167, 78.74122893956174, 79.51947534912904, 80.30219030335869,\n 81.08938110306934, 81.88105503125999, 82.67721935322541, 83.4778813166706,\n 84.28304815182372, 85.09272707154808, 85.90692527145302, 86.72564993000343,\n 87.54890820862819, 88.3767072518277, 89.2090541872801, 90.04595612594655,\n 90.88742016217518, 91.73345337380438, 92.58406282226491, 93.43925555268066,\n 94.29903859396902, 95.16341895893969, 96.03240364439274, 96.9059996312159,\n 97.78421388448044, 98.6670533535366, 99.55452497210776,\n ];\n\n /**\n * Sanitizes a small enough angle in radians.\n *\n * @param angle An angle in radians; must not deviate too much\n * from 0.\n * @return A coterminal angle between 0 and 2pi.\n */\n private static sanitizeRadians(angle: number): number {\n return (angle + Math.PI * 8) % (Math.PI * 2);\n }\n\n /**\n * Delinearizes an RGB component, returning a floating-point\n * number.\n *\n * @param rgbComponent 0.0 <= rgb_component <= 100.0, represents\n * linear R/G/B channel\n * @return 0.0 <= output <= 255.0, color channel converted to\n * regular RGB space\n */\n private static trueDelinearized(rgbComponent: number): number {\n const normalized = rgbComponent / 100.0;\n let delinearized = 0.0;\n if (normalized <= 0.0031308) {\n delinearized = normalized * 12.92;\n } else {\n delinearized = 1.055 * Math.pow(normalized, 1.0 / 2.4) - 0.055;\n }\n return delinearized * 255.0;\n }\n\n private static chromaticAdaptation(component: number): number {\n const af = Math.pow(Math.abs(component), 0.42);\n return (mathUtils.signum(component) * 400.0 * af) / (af + 27.13);\n }\n\n /**\n * Returns the hue of a linear RGB color in CAM16.\n *\n * @param linrgb The linear RGB coordinates of a color.\n * @return The hue of the color in CAM16, in radians.\n */\n private static hueOf(linrgb: number[]): number {\n const scaledDiscount = mathUtils.matrixMultiply(\n linrgb,\n HctSolver.SCALED_DISCOUNT_FROM_LINRGB,\n );\n const rA = HctSolver.chromaticAdaptation(scaledDiscount[0]);\n const gA = HctSolver.chromaticAdaptation(scaledDiscount[1]);\n const bA = HctSolver.chromaticAdaptation(scaledDiscount[2]);\n // redness-greenness\n const a = (11.0 * rA + -12.0 * gA + bA) / 11.0;\n // yellowness-blueness\n const b = (rA + gA - 2.0 * bA) / 9.0;\n return Math.atan2(b, a);\n }\n\n private static areInCyclicOrder(a: number, b: number, c: number): boolean {\n const deltaAB = HctSolver.sanitizeRadians(b - a);\n const deltaAC = HctSolver.sanitizeRadians(c - a);\n return deltaAB < deltaAC;\n }\n\n /**\n * Solves the lerp equation.\n *\n * @param source The starting number.\n * @param mid The number in the middle.\n * @param target The ending number.\n * @return A number t such that lerp(source, target, t) = mid.\n */\n private static intercept(\n source: number,\n mid: number,\n target: number,\n ): number {\n return (mid - source) / (target - source);\n }\n\n private static lerpPoint(\n source: number[],\n t: number,\n target: number[],\n ): number[] {\n return [\n source[0] + (target[0] - source[0]) * t,\n source[1] + (target[1] - source[1]) * t,\n source[2] + (target[2] - source[2]) * t,\n ];\n }\n\n /**\n * Intersects a segment with a plane.\n *\n * @param source The coordinates of point A.\n * @param coordinate The R-, G-, or B-coordinate of the plane.\n * @param target The coordinates of point B.\n * @param axis The axis the plane is perpendicular with. (0: R, 1:\n * G, 2: B)\n * @return The intersection point of the segment AB with the plane\n * R=coordinate, G=coordinate, or B=coordinate\n */\n private static setCoordinate(\n source: number[],\n coordinate: number,\n target: number[],\n axis: number,\n ): number[] {\n const t = HctSolver.intercept(source[axis], coordinate, target[axis]);\n return HctSolver.lerpPoint(source, t, target);\n }\n\n private static isBounded(x: number): boolean {\n return 0.0 <= x && x <= 100.0;\n }\n\n /**\n * Returns the nth possible vertex of the polygonal intersection.\n *\n * @param y The Y value of the plane.\n * @param n The zero-based index of the point. 0 <= n <= 11.\n * @return The nth possible vertex of the polygonal intersection\n * of the y plane and the RGB cube, in linear RGB coordinates, if\n * it exists. If this possible vertex lies outside of the cube,\n * [-1.0, -1.0, -1.0] is returned.\n */\n private static nthVertex(y: number, n: number): number[] {\n const kR = HctSolver.Y_FROM_LINRGB[0];\n const kG = HctSolver.Y_FROM_LINRGB[1];\n const kB = HctSolver.Y_FROM_LINRGB[2];\n const coordA = n % 4 <= 1 ? 0.0 : 100.0;\n const coordB = n % 2 === 0 ? 0.0 : 100.0;\n if (n < 4) {\n const g = coordA;\n const b = coordB;\n const r = (y - g * kG - b * kB) / kR;\n if (HctSolver.isBounded(r)) {\n return [r, g, b];\n } else {\n return [-1.0, -1.0, -1.0];\n }\n } else if (n < 8) {\n const b = coordA;\n const r = coordB;\n const g = (y - r * kR - b * kB) / kG;\n if (HctSolver.isBounded(g)) {\n return [r, g, b];\n } else {\n return [-1.0, -1.0, -1.0];\n }\n } else {\n const r = coordA;\n const g = coordB;\n const b = (y - r * kR - g * kG) / kB;\n if (HctSolver.isBounded(b)) {\n return [r, g, b];\n } else {\n return [-1.0, -1.0, -1.0];\n }\n }\n }\n\n /**\n * Finds the segment containing the desired color.\n *\n * @param y The Y value of the color.\n * @param targetHue The hue of the color.\n * @return A list of two sets of linear RGB coordinates, each\n * corresponding to an endpoint of the segment containing the\n * desired color.\n */\n private static bisectToSegment(y: number, targetHue: number): number[][] {\n let left = [-1.0, -1.0, -1.0];\n let right = left;\n let leftHue = 0.0;\n let rightHue = 0.0;\n let initialized = false;\n let uncut = true;\n for (let n = 0; n < 12; n++) {\n const mid = HctSolver.nthVertex(y, n);\n if (mid[0] < 0) {\n continue;\n }\n const midHue = HctSolver.hueOf(mid);\n if (!initialized) {\n left = mid;\n right = mid;\n leftHue = midHue;\n rightHue = midHue;\n initialized = true;\n continue;\n }\n if (uncut || HctSolver.areInCyclicOrder(leftHue, midHue, rightHue)) {\n uncut = false;\n if (HctSolver.areInCyclicOrder(leftHue, targetHue, midHue)) {\n right = mid;\n rightHue = midHue;\n } else {\n left = mid;\n leftHue = midHue;\n }\n }\n }\n return [left, right];\n }\n\n private static midpoint(a: number[], b: number[]): number[] {\n return [(a[0] + b[0]) / 2, (a[1] + b[1]) / 2, (a[2] + b[2]) / 2];\n }\n\n private static criticalPlaneBelow(x: number): number {\n return Math.floor(x - 0.5);\n }\n\n private static criticalPlaneAbove(x: number): number {\n return Math.ceil(x - 0.5);\n }\n\n /**\n * Finds a color with the given Y and hue on the boundary of the\n * cube.\n *\n * @param y The Y value of the color.\n * @param targetHue The hue of the color.\n * @return The desired color, in linear RGB coordinates.\n */\n private static bisectToLimit(y: number, targetHue: number): number[] {\n const segment = HctSolver.bisectToSegment(y, targetHue);\n let left = segment[0];\n let leftHue = HctSolver.hueOf(left);\n let right = segment[1];\n for (let axis = 0; axis < 3; axis++) {\n if (left[axis] !== right[axis]) {\n let lPlane = -1;\n let rPlane = 255;\n if (left[axis] < right[axis]) {\n lPlane = HctSolver.criticalPlaneBelow(\n HctSolver.trueDelinearized(left[axis]),\n );\n rPlane = HctSolver.criticalPlaneAbove(\n HctSolver.trueDelinearized(right[axis]),\n );\n } else {\n lPlane = HctSolver.criticalPlaneAbove(\n HctSolver.trueDelinearized(left[axis]),\n );\n rPlane = HctSolver.criticalPlaneBelow(\n HctSolver.trueDelinearized(right[axis]),\n );\n }\n for (let i = 0; i < 8; i++) {\n if (Math.abs(rPlane - lPlane) <= 1) {\n break;\n } else {\n const mPlane = Math.floor((lPlane + rPlane) / 2.0);\n const midPlaneCoordinate = HctSolver.CRITICAL_PLANES[mPlane];\n const mid = HctSolver.setCoordinate(\n left,\n midPlaneCoordinate,\n right,\n axis,\n );\n const midHue = HctSolver.hueOf(mid);\n if (HctSolver.areInCyclicOrder(leftHue, targetHue, midHue)) {\n right = mid;\n rPlane = mPlane;\n } else {\n left = mid;\n leftHue = midHue;\n lPlane = mPlane;\n }\n }\n }\n }\n }\n return HctSolver.midpoint(left, right);\n }\n\n private static inverseChromaticAdaptation(adapted: number): number {\n const adaptedAbs = Math.abs(adapted);\n const base = Math.max(0, (27.13 * adaptedAbs) / (400.0 - adaptedAbs));\n return mathUtils.signum(adapted) * Math.pow(base, 1.0 / 0.42);\n }\n\n /**\n * Finds a color with the given hue, chroma, and Y.\n *\n * @param hueRadians The desired hue in radians.\n * @param chroma The desired chroma.\n * @param y The desired Y.\n * @return The desired color as a hexadecimal integer, if found; 0\n * otherwise.\n */\n private static findResultByJ(\n hueRadians: number,\n chroma: number,\n y: number,\n ): number {\n // Initial estimate of j.\n let j = Math.sqrt(y) * 11.0;\n // ===========================================================\n // Operations inlined from Cam16 to avoid repeated calculation\n // ===========================================================\n const viewingConditions = ViewingConditions.DEFAULT;\n const tInnerCoeff =\n 1 / Math.pow(1.64 - Math.pow(0.29, viewingConditions.n), 0.73);\n const eHue = 0.25 * (Math.cos(hueRadians + 2.0) + 3.8);\n const p1 =\n eHue * (50000.0 / 13.0) * viewingConditions.nc * viewingConditions.ncb;\n const hSin = Math.sin(hueRadians);\n const hCos = Math.cos(hueRadians);\n for (let iterationRound = 0; iterationRound < 5; iterationRound++) {\n // ===========================================================\n // Operations inlined from Cam16 to avoid repeated calculation\n // ===========================================================\n const jNormalized = j / 100.0;\n const alpha =\n chroma === 0.0 || j === 0.0 ? 0.0 : chroma / Math.sqrt(jNormalized);\n const t = Math.pow(alpha * tInnerCoeff, 1.0 / 0.9);\n const ac =\n viewingConditions.aw *\n Math.pow(jNormalized, 1.0 / viewingConditions.c / viewingConditions.z);\n const p2 = ac / viewingConditions.nbb;\n const gamma =\n (23.0 * (p2 + 0.305) * t) /\n (23.0 * p1 + 11 * t * hCos + 108.0 * t * hSin);\n const a = gamma * hCos;\n const b = gamma * hSin;\n const rA = (460.0 * p2 + 451.0 * a + 288.0 * b) / 1403.0;\n const gA = (460.0 * p2 - 891.0 * a - 261.0 * b) / 1403.0;\n const bA = (460.0 * p2 - 220.0 * a - 6300.0 * b) / 1403.0;\n const rCScaled = HctSolver.inverseChromaticAdaptation(rA);\n const gCScaled = HctSolver.inverseChromaticAdaptation(gA);\n const bCScaled = HctSolver.inverseChromaticAdaptation(bA);\n const linrgb = mathUtils.matrixMultiply(\n [rCScaled, gCScaled, bCScaled],\n HctSolver.LINRGB_FROM_SCALED_DISCOUNT,\n );\n // ===========================================================\n // Operations inlined from Cam16 to avoid repeated calculation\n // ===========================================================\n if (linrgb[0] < 0 || linrgb[1] < 0 || linrgb[2] < 0) {\n return 0;\n }\n const kR = HctSolver.Y_FROM_LINRGB[0];\n const kG = HctSolver.Y_FROM_LINRGB[1];\n const kB = HctSolver.Y_FROM_LINRGB[2];\n const fnj = kR * linrgb[0] + kG * linrgb[1] + kB * linrgb[2];\n if (fnj <= 0) {\n return 0;\n }\n if (iterationRound === 4 || Math.abs(fnj - y) < 0.002) {\n if (linrgb[0] > 100.01 || linrgb[1] > 100.01 || linrgb[2] > 100.01) {\n return 0;\n }\n return argbFromLinrgb(linrgb);\n }\n // Iterates with Newton method,\n // Using 2 * fn(j) / j as the approximation of fn'(j)\n j = j - ((fnj - y) * j) / (2 * fnj);\n }\n return 0;\n }\n\n /**\n * Finds an sRGB color with the given hue, chroma, and L*, if\n * possible.\n *\n * @param hueDegrees The desired hue, in degrees.\n * @param chroma The desired chroma.\n * @param lstar The desired L*.\n * @return A hexadecimal representing the sRGB color. The color\n * has sufficiently close hue, chroma, and L* to the desired\n * values, if possible; otherwise, the hue and L* will be\n * sufficiently close, and chroma will be maximized.\n */\n static solveToInt(hueDegrees: number, chroma: number, lstar: number): number {\n if (chroma < 0.0001 || lstar < 0.0001 || lstar > 99.9999) {\n return argbFromLstar(lstar);\n }\n hueDegrees = mathUtils.sanitizeDegreesDouble(hueDegrees);\n const hueRadians = (hueDegrees / 180) * Math.PI;\n const y = yFromLstar(lstar);\n const exactAnswer = HctSolver.findResultByJ(hueRadians, chroma, y);\n if (exactAnswer !== 0) {\n return exactAnswer;\n }\n const linrgb = HctSolver.bisectToLimit(y, hueRadians);\n return argbFromLinrgb(linrgb);\n }\n\n /**\n * Finds an sRGB color with the given hue, chroma, and L*, if\n * possible.\n *\n * @param hueDegrees The desired hue, in degrees.\n * @param chroma The desired chroma.\n * @param lstar The desired L*.\n * @return An CAM16 object representing the sRGB color. The color\n * has sufficiently close hue, chroma, and L* to the desired\n * values, if possible; otherwise, the hue and L* will be\n * sufficiently close, and chroma will be maximized.\n */\n static solveToCam(hueDegrees: number, chroma: number, lstar: number): Cam16 {\n return Cam16.fromInt(HctSolver.solveToInt(hueDegrees, chroma, lstar));\n }\n}\n"],"mappings":"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AiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EACxD,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAC3E,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAC1D,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAC1D,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EACzD,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAC1D,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EACzD,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EACzD,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EACzD,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EACzD,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EACzD,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EACzD,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAC3E,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EACxD,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAC1D,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EACzD,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAC1D,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAC3E,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EACxD,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAC3E,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EACxD,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAC3E,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EACxD,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAC1E,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAC1E,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EACzD,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAC3E,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EACxE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EACzE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EACxE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAC1E,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EACzE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,CACvD","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"hct.js","names":["Cam16","HctSolver","ViewingConditions","lstarFromArgb","lstarFromY","Hct","from","hue","chroma","tone","solveToInt","fromInt","argb","toInt","internalHue","newHue","setInternalState","internalChroma","internalTone","newChroma","newTone","constructor","cam","inViewingConditions","vc","viewedInVc","xyzInViewingConditions","recastInVc","fromXyzInViewingConditions","make","recastHct"],"sources":["../../../../src/util/color/hct/hct.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * A color system built using CAM16 hue and chroma, and L* from\n * L*a*b*.\n *\n * Using L* creates a link between the color system, contrast, and thus\n * accessibility. Contrast ratio depends on relative luminance, or Y in the XYZ\n * color space. L*, or perceptual luminance can be calculated from Y.\n *\n * Unlike Y, L* is linear to human perception, allowing trivial creation of\n * accurate color tones.\n *\n * Unlike contrast ratio, measuring contrast in L* is linear, and simple to\n * calculate. A difference of 40 in HCT tone guarantees a contrast ratio >= 3.0,\n * and a difference of 50 guarantees a contrast ratio >= 4.5.\n */\nimport { Cam16 } from './cam16';\nimport { HctSolver } from './hct-solver';\nimport { ViewingConditions } from './viewing-conditions';\nimport { lstarFromArgb, lstarFromY } from \"../conversion\";\n\n/**\n * HCT, hue, chroma, and tone. A color system that provides a perceptually\n * accurate color measurement system that can also accurately render what colors\n * will appear as in different lighting environments.\n */\nexport class Hct {\n /**\n * @param hue 0 <= hue < 360; invalid values are corrected.\n * @param chroma 0 <= chroma < ?; Informally, colorfulness. The color\n * returned may be lower than the requested chroma. Chroma has a different\n * maximum for any given hue and tone.\n * @param tone 0 <= tone <= 100; invalid values are corrected.\n * @return HCT representation of a color in default viewing conditions.\n */\n\n internalHue: number;\n internalChroma: number;\n internalTone: number;\n\n static from(hue: number, chroma: number, tone: number) {\n return new Hct(HctSolver.solveToInt(hue, chroma, tone));\n }\n\n /**\n * @param argb ARGB representation of a color.\n * @return HCT representation of a color in default viewing conditions\n */\n static fromInt(argb: number) {\n return new Hct(argb);\n }\n\n toInt(): number {\n return this.argb;\n }\n\n /**\n * A number, in degrees, representing ex. red, orange, yellow, etc.\n * Ranges from 0 <= hue < 360.\n */\n get hue(): number {\n return this.internalHue;\n }\n\n /**\n * @param newHue 0 <= newHue < 360; invalid values are corrected.\n * Chroma may decrease because chroma has a different maximum for any given\n * hue and tone.\n */\n set hue(newHue: number) {\n this.setInternalState(\n HctSolver.solveToInt(newHue, this.internalChroma, this.internalTone),\n );\n }\n\n get chroma(): number {\n return this.internalChroma;\n }\n\n /**\n * @param newChroma 0 <= newChroma < ?\n * Chroma may decrease because chroma has a different maximum for any given\n * hue and tone.\n */\n set chroma(newChroma: number) {\n this.setInternalState(\n HctSolver.solveToInt(this.internalHue, newChroma, this.internalTone),\n );\n }\n\n /** Lightness. Ranges from 0 to 100. */\n get tone(): number {\n return this.internalTone;\n }\n\n /**\n * @param newTone 0 <= newTone <= 100; invalid valids are corrected.\n * Chroma may decrease because chroma has a different maximum for any given\n * hue and tone.\n */\n set tone(newTone: number) {\n this.setInternalState(\n HctSolver.solveToInt(this.internalHue, this.internalChroma, newTone),\n );\n }\n\n private constructor(private argb: number) {\n const cam = Cam16.fromInt(argb);\n this.internalHue = cam.hue;\n this.internalChroma = cam.chroma;\n this.internalTone = lstarFromArgb(argb);\n this.argb = argb;\n }\n\n private setInternalState(argb: number) {\n const cam = Cam16.fromInt(argb);\n this.internalHue = cam.hue;\n this.internalChroma = cam.chroma;\n this.internalTone = lstarFromArgb(argb);\n this.argb = argb;\n }\n\n /**\n * Translates a color into different [ViewingConditions].\n *\n * Colors change appearance. They look different with lights on versus off,\n * the same color, as in hex code, on white looks different when on black.\n * This is called color relativity, most famously explicated by Josef Albers\n * in Interaction of Color.\n *\n * In color science, color appearance models can account for this and\n * calculate the appearance of a color in different settings. HCT is based on\n * CAM16, a color appearance model, and uses it to make these calculations.\n *\n * See [ViewingConditions.make] for parameters affecting color appearance.\n */\n inViewingConditions(vc: ViewingConditions): Hct {\n // 1. Use CAM16 to find XYZ coordinates of color in specified VC.\n const cam = Cam16.fromInt(this.toInt());\n const viewedInVc = cam.xyzInViewingConditions(vc);\n\n // 2. Create CAM16 of those XYZ coordinates in default VC.\n const recastInVc = Cam16.fromXyzInViewingConditions(\n viewedInVc[0],\n viewedInVc[1],\n viewedInVc[2],\n ViewingConditions.make(),\n );\n\n // 3. Create HCT from:\n // - CAM16 using default VC with XYZ coordinates in specified VC.\n // - L* converted from Y in XYZ coordinates in specified VC.\n const recastHct = Hct.from(\n recastInVc.hue,\n recastInVc.chroma,\n lstarFromY(viewedInVc[1]),\n );\n return recastHct;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"hct.js","names":["Cam16","HctSolver","ViewingConditions","lstarFromArgb","lstarFromY","Hct","from","hue","chroma","tone","solveToInt","fromInt","argb","toInt","internalHue","newHue","setInternalState","internalChroma","internalTone","newChroma","newTone","constructor","cam","inViewingConditions","vc","viewedInVc","xyzInViewingConditions","recastInVc","fromXyzInViewingConditions","make","recastHct"],"sources":["../../../../src/util/color/hct/hct.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * A color system built using CAM16 hue and chroma, and L* from\n * L*a*b*.\n *\n * Using L* creates a link between the color system, contrast, and thus\n * accessibility. Contrast ratio depends on relative luminance, or Y in the XYZ\n * color space. L*, or perceptual luminance can be calculated from Y.\n *\n * Unlike Y, L* is linear to human perception, allowing trivial creation of\n * accurate color tones.\n *\n * Unlike contrast ratio, measuring contrast in L* is linear, and simple to\n * calculate. A difference of 40 in HCT tone guarantees a contrast ratio >= 3.0,\n * and a difference of 50 guarantees a contrast ratio >= 4.5.\n */\nimport { Cam16 } from './cam16';\nimport { HctSolver } from './hct-solver';\nimport { ViewingConditions } from './viewing-conditions';\nimport { lstarFromArgb, lstarFromY } from '../conversion';\n\n/**\n * HCT, hue, chroma, and tone. A color system that provides a perceptually\n * accurate color measurement system that can also accurately render what colors\n * will appear as in different lighting environments.\n */\nexport class Hct {\n /**\n * @param hue 0 <= hue < 360; invalid values are corrected.\n * @param chroma 0 <= chroma < ?; Informally, colorfulness. The color\n * returned may be lower than the requested chroma. Chroma has a different\n * maximum for any given hue and tone.\n * @param tone 0 <= tone <= 100; invalid values are corrected.\n * @return HCT representation of a color in default viewing conditions.\n */\n\n internalHue: number;\n internalChroma: number;\n internalTone: number;\n\n static from(hue: number, chroma: number, tone: number) {\n return new Hct(HctSolver.solveToInt(hue, chroma, tone));\n }\n\n /**\n * @param argb ARGB representation of a color.\n * @return HCT representation of a color in default viewing conditions\n */\n static fromInt(argb: number) {\n return new Hct(argb);\n }\n\n toInt(): number {\n return this.argb;\n }\n\n /**\n * A number, in degrees, representing ex. red, orange, yellow, etc.\n * Ranges from 0 <= hue < 360.\n */\n get hue(): number {\n return this.internalHue;\n }\n\n /**\n * @param newHue 0 <= newHue < 360; invalid values are corrected.\n * Chroma may decrease because chroma has a different maximum for any given\n * hue and tone.\n */\n set hue(newHue: number) {\n this.setInternalState(\n HctSolver.solveToInt(newHue, this.internalChroma, this.internalTone),\n );\n }\n\n get chroma(): number {\n return this.internalChroma;\n }\n\n /**\n * @param newChroma 0 <= newChroma < ?\n * Chroma may decrease because chroma has a different maximum for any given\n * hue and tone.\n */\n set chroma(newChroma: number) {\n this.setInternalState(\n HctSolver.solveToInt(this.internalHue, newChroma, this.internalTone),\n );\n }\n\n /** Lightness. Ranges from 0 to 100. */\n get tone(): number {\n return this.internalTone;\n }\n\n /**\n * @param newTone 0 <= newTone <= 100; invalid valids are corrected.\n * Chroma may decrease because chroma has a different maximum for any given\n * hue and tone.\n */\n set tone(newTone: number) {\n this.setInternalState(\n HctSolver.solveToInt(this.internalHue, this.internalChroma, newTone),\n );\n }\n\n private constructor(private argb: number) {\n const cam = Cam16.fromInt(argb);\n this.internalHue = cam.hue;\n this.internalChroma = cam.chroma;\n this.internalTone = lstarFromArgb(argb);\n this.argb = argb;\n }\n\n private setInternalState(argb: number) {\n const cam = Cam16.fromInt(argb);\n this.internalHue = cam.hue;\n this.internalChroma = cam.chroma;\n this.internalTone = lstarFromArgb(argb);\n this.argb = argb;\n }\n\n /**\n * Translates a color into different [ViewingConditions].\n *\n * Colors change appearance. They look different with lights on versus off,\n * the same color, as in hex code, on white looks different when on black.\n * This is called color relativity, most famously explicated by Josef Albers\n * in Interaction of Color.\n *\n * In color science, color appearance models can account for this and\n * calculate the appearance of a color in different settings. HCT is based on\n * CAM16, a color appearance model, and uses it to make these calculations.\n *\n * See [ViewingConditions.make] for parameters affecting color appearance.\n */\n inViewingConditions(vc: ViewingConditions): Hct {\n // 1. Use CAM16 to find XYZ coordinates of color in specified VC.\n const cam = Cam16.fromInt(this.toInt());\n const viewedInVc = cam.xyzInViewingConditions(vc);\n\n // 2. Create CAM16 of those XYZ coordinates in default VC.\n const recastInVc = Cam16.fromXyzInViewingConditions(\n viewedInVc[0],\n viewedInVc[1],\n viewedInVc[2],\n ViewingConditions.make(),\n );\n\n // 3. Create HCT from:\n // - CAM16 using default VC with XYZ coordinates in specified VC.\n // - L* converted from Y in XYZ coordinates in specified VC.\n const recastHct = Hct.from(\n recastInVc.hue,\n recastInVc.chroma,\n lstarFromY(viewedInVc[1]),\n );\n return recastHct;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
1
+ var _ViewingConditions;
2
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
5
  /**
5
6
  * @license
6
7
  * Copyright 2021 Google LLC
@@ -105,6 +106,7 @@ export class ViewingConditions {
105
106
  this.z = z;
106
107
  }
107
108
  }
109
+ _ViewingConditions = ViewingConditions;
108
110
  /** sRGB-like viewing conditions. */
109
- _defineProperty(ViewingConditions, "DEFAULT", ViewingConditions.make());
111
+ _defineProperty(ViewingConditions, "DEFAULT", _ViewingConditions.make());
110
112
  //# sourceMappingURL=viewing-conditions.js.map