yuyeon 0.3.4-rc.4 → 0.3.5
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.
- package/dist/style.css +1 -1
- package/dist/yuyeon.js +4170 -3976
- package/dist/yuyeon.umd.cjs +3 -3
- package/lib/abstract/items.js.map +1 -1
- package/lib/components/alert/YAlert.js +3 -4
- package/lib/components/alert/YAlert.js.map +1 -1
- package/lib/components/alert/index.js.map +1 -1
- package/lib/components/app/YApp.js +2 -2
- package/lib/components/app/YApp.js.map +1 -1
- package/lib/components/app/index.js.map +1 -1
- package/lib/components/badge/YBadge.js +7 -5
- package/lib/components/badge/YBadge.js.map +1 -1
- package/lib/components/badge/YBadge.scss +3 -2
- package/lib/components/badge/index.js.map +1 -1
- package/lib/components/bench/YBench.js +3 -4
- package/lib/components/bench/YBench.js.map +1 -1
- package/lib/components/bench/index.js.map +1 -1
- package/lib/components/button/YButton.js +1 -2
- package/lib/components/button/YButton.js.map +1 -1
- package/lib/components/button/index.js.map +1 -1
- package/lib/components/card/YCard.js.map +1 -1
- package/lib/components/card/YCard.scss +2 -2
- package/lib/components/card/YCardBody.js.map +1 -1
- package/lib/components/card/YCardFooter.js.map +1 -1
- package/lib/components/card/YCardHeader.js.map +1 -1
- package/lib/components/card/index.js.map +1 -1
- package/lib/components/checkbox/YCheckbox.js +1 -2
- package/lib/components/checkbox/YCheckbox.js.map +1 -1
- package/lib/components/checkbox/YInputCheckbox.js +1 -2
- package/lib/components/checkbox/YInputCheckbox.js.map +1 -1
- package/lib/components/checkbox/index.js.map +1 -1
- package/lib/components/chip/YChip.js +1 -2
- package/lib/components/chip/YChip.js.map +1 -1
- package/lib/components/chip/index.js.map +1 -1
- package/lib/components/date-picker/YDateCalendar.js +59 -54
- package/lib/components/date-picker/YDateCalendar.js.map +1 -1
- package/lib/components/date-picker/YDatePicker.js +24 -25
- package/lib/components/date-picker/YDatePicker.js.map +1 -1
- package/lib/components/date-picker/YDatePickerControl.js +19 -20
- package/lib/components/date-picker/YDatePickerControl.js.map +1 -1
- package/lib/components/date-picker/YMonthPicker.js +10 -11
- package/lib/components/date-picker/YMonthPicker.js.map +1 -1
- package/lib/components/date-picker/YYearPicker.js +11 -13
- package/lib/components/date-picker/YYearPicker.js.map +1 -1
- package/lib/components/date-picker/index.js.map +1 -1
- package/lib/components/default-provider/YDefaultProvider.js.map +1 -1
- package/lib/components/default-provider/index.js.map +1 -1
- package/lib/components/dialog/YDialog.js +32 -32
- package/lib/components/dialog/YDialog.js.map +1 -1
- package/lib/components/dialog/index.js.map +1 -1
- package/lib/components/divider/YDivider.js +5 -5
- package/lib/components/divider/YDivider.js.map +1 -1
- package/lib/components/divider/index.js.map +1 -1
- package/lib/components/draggable/YDraggable.js +10 -11
- package/lib/components/draggable/YDraggable.js.map +1 -1
- package/lib/components/draggable/index.js.map +1 -1
- package/lib/components/dropdown/YDropdown.js +16 -17
- package/lib/components/dropdown/YDropdown.js.map +1 -1
- package/lib/components/dropdown/index.js.map +1 -1
- package/lib/components/field-input/YFieldInput.js +39 -39
- package/lib/components/field-input/YFieldInput.js.map +1 -1
- package/lib/components/field-input/index.js.map +1 -1
- package/lib/components/form/YForm.js +12 -14
- package/lib/components/form/YForm.js.map +1 -1
- package/lib/components/form/index.js.map +1 -1
- package/lib/components/hover/YHover.js +9 -8
- package/lib/components/hover/YHover.js.map +1 -1
- package/lib/components/hover/index.js.map +1 -1
- package/lib/components/icon/YIcon.js +2 -4
- package/lib/components/icon/YIcon.js.map +1 -1
- package/lib/components/icon/index.js.map +1 -1
- package/lib/components/icons/YIconCheckbox.js +7 -6
- package/lib/components/icons/YIconCheckbox.js.map +1 -1
- package/lib/components/icons/YIconClear.js +2 -1
- package/lib/components/icons/YIconClear.js.map +1 -1
- package/lib/components/icons/YIconDropdown.js +2 -1
- package/lib/components/icons/YIconDropdown.js.map +1 -1
- package/lib/components/icons/YIconExpand.js +1 -0
- package/lib/components/icons/YIconExpand.js.map +1 -1
- package/lib/components/icons/YIconPageControl.js +7 -6
- package/lib/components/icons/YIconPageControl.js.map +1 -1
- package/lib/components/icons/YIconSort.js +6 -5
- package/lib/components/icons/YIconSort.js.map +1 -1
- package/lib/components/icons/YIconSort.scss +2 -0
- package/lib/components/icons/index.js.map +1 -1
- package/lib/components/img/YImg.js +42 -37
- package/lib/components/img/YImg.js.map +1 -1
- package/lib/components/img/index.js +1 -1
- package/lib/components/img/index.js.map +1 -1
- package/lib/components/index.js +1 -0
- package/lib/components/index.js.map +1 -1
- package/lib/components/input/YInput.js +1 -2
- package/lib/components/input/YInput.js.map +1 -1
- package/lib/components/input/YInput.scss +9 -8
- package/lib/components/input/index.js.map +1 -1
- package/lib/components/ip-field/YIpv4Field.js +1 -2
- package/lib/components/ip-field/YIpv4Field.js.map +1 -1
- package/lib/components/ip-field/index.js.map +1 -1
- package/lib/components/layer/YLayer.js +38 -25
- package/lib/components/layer/YLayer.js.map +1 -1
- package/lib/components/layer/active-delay.js.map +1 -1
- package/lib/components/layer/active-stack.js.map +1 -1
- package/lib/components/layer/base.js +11 -1
- package/lib/components/layer/base.js.map +1 -1
- package/lib/components/layer/content.js.map +1 -1
- package/lib/components/layer/index.js.map +1 -1
- package/lib/components/layer/scroll-strategies.js.map +1 -1
- package/lib/components/list/YList.js +1 -2
- package/lib/components/list/YList.js.map +1 -1
- package/lib/components/list/YListItem.js +1 -2
- package/lib/components/list/YListItem.js.map +1 -1
- package/lib/components/list/index.js.map +1 -1
- package/lib/components/loading/YSpinnerRing.js.map +1 -1
- package/lib/components/loading/index.js.map +1 -1
- package/lib/components/menu/YMenu.js +24 -27
- package/lib/components/menu/YMenu.js.map +1 -1
- package/lib/components/menu/YMenu.scss +3 -4
- package/lib/components/menu/index.js.map +1 -1
- package/lib/components/navigation/YNavigation.js +1 -2
- package/lib/components/navigation/YNavigation.js.map +1 -1
- package/lib/components/navigation/index.js.map +1 -1
- package/lib/components/pagination/YPagination.js +1 -2
- package/lib/components/pagination/YPagination.js.map +1 -1
- package/lib/components/pagination/index.js.map +1 -1
- package/lib/components/panel/YDividePanel.js +1 -2
- package/lib/components/panel/YDividePanel.js.map +1 -1
- package/lib/components/panel/YDividePanel.scss +1 -0
- package/lib/components/panel/index.js.map +1 -1
- package/lib/components/plate/YPlate.js +3 -4
- package/lib/components/plate/YPlate.js.map +1 -1
- package/lib/components/plate/index.js.map +1 -1
- package/lib/components/progress-bar/YProgressBar.js +1 -2
- package/lib/components/progress-bar/YProgressBar.js.map +1 -1
- package/lib/components/progress-bar/index.js.map +1 -1
- package/lib/components/progress-ring/YProgressRing.js +3 -4
- package/lib/components/progress-ring/YProgressRing.js.map +1 -1
- package/lib/components/progress-ring/index.js.map +1 -1
- package/lib/components/radio/YRadio.js +1 -1
- package/lib/components/radio/YRadio.js.map +1 -1
- package/lib/components/radio/YRadioIcon.js.map +1 -1
- package/lib/components/radio/YRadioIcon.scss +2 -3
- package/lib/components/radio/index.js.map +1 -1
- package/lib/components/select/YSelect.js +41 -42
- package/lib/components/select/YSelect.js.map +1 -1
- package/lib/components/select/index.js.map +1 -1
- package/lib/components/slider/YSlider.js.map +1 -1
- package/lib/components/slider/index.js.map +1 -1
- package/lib/components/slider/slider.js.map +1 -1
- package/lib/components/snackbar/YSnackbar.js +6 -6
- package/lib/components/snackbar/YSnackbar.js.map +1 -1
- package/lib/components/snackbar/index.js.map +1 -1
- package/lib/components/switch/YSwitch.js +1 -2
- package/lib/components/switch/YSwitch.js.map +1 -1
- package/lib/components/switch/index.js.map +1 -1
- package/lib/components/tab/YTab.js +2 -3
- package/lib/components/tab/YTab.js.map +1 -1
- package/lib/components/tab/YTab.scss +1 -1
- package/lib/components/tab/YTabs.js +1 -2
- package/lib/components/tab/YTabs.js.map +1 -1
- package/lib/components/tab/index.js.map +1 -1
- package/lib/components/tab/shared.js.map +1 -1
- package/lib/components/tab/types.js.map +1 -1
- package/lib/components/table/YDataTable.js +1 -2
- package/lib/components/table/YDataTable.js.map +1 -1
- package/lib/components/table/YDataTableBody.js +2 -3
- package/lib/components/table/YDataTableBody.js.map +1 -1
- package/lib/components/table/YDataTableCell.js +1 -2
- package/lib/components/table/YDataTableCell.js.map +1 -1
- package/lib/components/table/YDataTableControl.js +1 -1
- package/lib/components/table/YDataTableControl.js.map +1 -1
- package/lib/components/table/YDataTableHead.js +1 -1
- package/lib/components/table/YDataTableHead.js.map +1 -1
- package/lib/components/table/YDataTableLayer.js +1 -2
- package/lib/components/table/YDataTableLayer.js.map +1 -1
- package/lib/components/table/YDataTableLayerRow.js +1 -2
- package/lib/components/table/YDataTableLayerRow.js.map +1 -1
- package/lib/components/table/YDataTableLayerRows.js +3 -4
- package/lib/components/table/YDataTableLayerRows.js.map +1 -1
- package/lib/components/table/YDataTableRow.js +1 -2
- package/lib/components/table/YDataTableRow.js.map +1 -1
- package/lib/components/table/YDataTableServer.js +1 -2
- package/lib/components/table/YDataTableServer.js.map +1 -1
- package/lib/components/table/YTable.js +1 -2
- package/lib/components/table/YTable.js.map +1 -1
- package/lib/components/table/composables/expand.js.map +1 -1
- package/lib/components/table/composables/header.js.map +1 -1
- package/lib/components/table/composables/items.js.map +1 -1
- package/lib/components/table/composables/measure.js +1 -1
- package/lib/components/table/composables/measure.js.map +1 -1
- package/lib/components/table/composables/options.js.map +1 -1
- package/lib/components/table/composables/pagination.js.map +1 -1
- package/lib/components/table/composables/provides.js.map +1 -1
- package/lib/components/table/composables/selection.js.map +1 -1
- package/lib/components/table/composables/sorted-items.js.map +1 -1
- package/lib/components/table/composables/sorting.js.map +1 -1
- package/lib/components/table/index.js.map +1 -1
- package/lib/components/table/types/common.js.map +1 -1
- package/lib/components/table/types/header.js.map +1 -1
- package/lib/components/table/types/index.js.map +1 -1
- package/lib/components/table/types/item.js.map +1 -1
- package/lib/components/table/types/row.js.map +1 -1
- package/lib/components/text-ellipsis/YTextEllipsis.js +1 -2
- package/lib/components/text-ellipsis/YTextEllipsis.js.map +1 -1
- package/lib/components/text-ellipsis/index.js.map +1 -1
- package/lib/components/text-highlighter/YTextHighlighter.js.map +1 -1
- package/lib/components/text-highlighter/index.js.map +1 -1
- package/lib/components/text-interpolation/YTi.js +2 -2
- package/lib/components/text-interpolation/YTi.js.map +1 -1
- package/lib/components/text-interpolation/index.js.map +1 -1
- package/lib/components/textarea/YTextarea.js +1 -2
- package/lib/components/textarea/YTextarea.js.map +1 -1
- package/lib/components/textarea/index.js.map +1 -1
- package/lib/components/toggle-button/YToggleButton.js.map +1 -1
- package/lib/components/toggle-button/index.js.map +1 -1
- package/lib/components/tooltip/YTooltip.js +18 -19
- package/lib/components/tooltip/YTooltip.js.map +1 -1
- package/lib/components/tooltip/index.js.map +1 -1
- package/lib/components/transitions/expand-transition.js.map +1 -1
- package/lib/components/transitions/index.js.map +1 -1
- package/lib/components/tree-view/YTreeView.js +1 -2
- package/lib/components/tree-view/YTreeView.js.map +1 -1
- package/lib/components/tree-view/YTreeViewNode.js +1 -2
- package/lib/components/tree-view/YTreeViewNode.js.map +1 -1
- package/lib/components/tree-view/index.js.map +1 -1
- package/lib/components/tree-view/tree-view.js.map +1 -1
- package/lib/components/tree-view/types.js.map +1 -1
- package/lib/components/tree-view/util.js.map +1 -1
- package/lib/composables/choice-link.js.map +1 -1
- package/lib/composables/choice.js.map +1 -1
- package/lib/composables/communication.js.map +1 -1
- package/lib/composables/component.js.map +1 -1
- package/lib/composables/coordinate/arrangement.js.map +1 -1
- package/lib/composables/coordinate/index.js +23 -13
- package/lib/composables/coordinate/index.js.map +1 -1
- package/lib/composables/coordinate/levitation.js +81 -52
- package/lib/composables/coordinate/levitation.js.map +1 -1
- package/lib/composables/coordinate/types.js.map +1 -1
- package/lib/composables/coordinate/utils/point.js.map +1 -1
- package/lib/composables/date/factory.js.map +1 -1
- package/lib/composables/date/index.js.map +1 -1
- package/lib/composables/date/setting.js.map +1 -1
- package/lib/composables/date/types.js.map +1 -1
- package/lib/composables/defaults/index.js.map +1 -1
- package/lib/composables/defaults/share.js.map +1 -1
- package/lib/composables/defaults/types.js.map +1 -1
- package/lib/composables/dimension.js.map +1 -1
- package/lib/composables/focus.js.map +1 -1
- package/lib/composables/form.js +5 -5
- package/lib/composables/form.js.map +1 -1
- package/lib/composables/i18n/index.js.map +1 -1
- package/lib/composables/i18n/locale.js.map +1 -1
- package/lib/composables/i18n/rtl.js.map +1 -1
- package/lib/composables/i18n/share.js.map +1 -1
- package/lib/composables/icon.js +1 -2
- package/lib/composables/icon.js.map +1 -1
- package/lib/composables/index.js.map +1 -1
- package/lib/composables/layer-group.js.map +1 -1
- package/lib/composables/layout.js.map +1 -1
- package/lib/composables/list-items.js.map +1 -1
- package/lib/composables/progress.js.map +1 -1
- package/lib/composables/ref.js.map +1 -1
- package/lib/composables/resize-observer.js.map +1 -1
- package/lib/composables/scope.js.map +1 -1
- package/lib/composables/style-color.js +6 -5
- package/lib/composables/style-color.js.map +1 -1
- package/lib/composables/theme/factory.js.map +1 -1
- package/lib/composables/theme/helper.js.map +1 -1
- package/lib/composables/theme/index.js +8 -1
- package/lib/composables/theme/index.js.map +1 -1
- package/lib/composables/theme/setting.js.map +1 -1
- package/lib/composables/theme/types.js.map +1 -1
- package/lib/composables/timing.js +13 -5
- package/lib/composables/timing.js.map +1 -1
- package/lib/composables/transition.js.map +1 -1
- package/lib/composables/validation.js.map +1 -1
- package/lib/composables/vue-router.js.map +1 -1
- package/lib/directives/complement-click/index.js.map +1 -1
- package/lib/directives/index.js +3 -0
- package/lib/directives/index.js.map +1 -0
- package/lib/directives/plate-wave/index.js +2 -2
- package/lib/directives/plate-wave/index.js.map +1 -1
- package/lib/directives/plate-wave/plate-wave.scss +17 -6
- package/lib/directives/theme-class/index.js +24 -0
- package/lib/directives/theme-class/index.js.map +1 -0
- package/lib/etc/index.js.map +1 -1
- package/lib/i18n/built-in.js.map +1 -1
- package/lib/i18n/config.js.map +1 -1
- package/lib/i18n/types.js.map +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/locales/en.js.map +1 -1
- package/lib/locales/index.js.map +1 -1
- package/lib/locales/ko.js.map +1 -1
- package/lib/mixins/di.js.map +1 -1
- package/lib/mixins/rebind-attrs.js +0 -2
- package/lib/mixins/rebind-attrs.js.map +1 -1
- package/lib/styles/_elevation.scss +0 -1
- package/lib/styles/base.scss +3 -1
- package/lib/styles/settings/_elevation.scss +12 -12
- package/lib/styles/settings/_provided.scss +23 -23
- package/lib/styles/theme/dark.scss +3 -3
- package/lib/styles/theme/index.scss +0 -1
- package/lib/styles/theme/light.scss +3 -3
- package/lib/styles/util/_mixin.scss +16 -16
- package/lib/types/index.js.map +1 -1
- package/lib/util/anchor.js.map +1 -1
- package/lib/util/array.js.map +1 -1
- package/lib/util/collection.js.map +1 -1
- package/lib/util/color/apca.js +1 -0
- package/lib/util/color/apca.js.map +1 -1
- package/lib/util/color/const.js.map +1 -1
- package/lib/util/color/contrast/contrast.js.map +1 -1
- package/lib/util/color/conversion.js.map +1 -1
- package/lib/util/color/hct/cam16.js.map +1 -1
- package/lib/util/color/hct/hct-solver.js +6 -6
- package/lib/util/color/hct/hct-solver.js.map +1 -1
- package/lib/util/color/hct/hct.js.map +1 -1
- package/lib/util/color/hct/viewing-conditions.js +6 -4
- package/lib/util/color/hct/viewing-conditions.js.map +1 -1
- package/lib/util/color/index.js +13 -13
- package/lib/util/color/index.js.map +1 -1
- package/lib/util/color/palettes/core-palette.js.map +1 -1
- package/lib/util/color/palettes/tonal-palette.js +3 -3
- package/lib/util/color/palettes/tonal-palette.js.map +1 -1
- package/lib/util/color/types.js.map +1 -1
- package/lib/util/color/utils/math-utils.js +62 -62
- package/lib/util/color/utils/math-utils.js.map +1 -1
- package/lib/util/common.js +28 -13
- package/lib/util/common.js.map +1 -1
- package/lib/util/component/component.js.map +1 -1
- package/lib/util/component/index.js.map +1 -1
- package/lib/util/component/inject-self.js.map +1 -1
- package/lib/util/component/props.js.map +1 -1
- package/lib/util/component/types.js.map +1 -1
- package/lib/util/date/adapters/yuyeon-date-adapter.js +3 -3
- package/lib/util/date/adapters/yuyeon-date-adapter.js.map +1 -1
- package/lib/util/date/built-in.js +2 -0
- package/lib/util/date/built-in.js.map +1 -1
- package/lib/util/date/index.js +1 -1
- package/lib/util/date/index.js.map +1 -1
- package/lib/util/date/types.js.map +1 -1
- package/lib/util/debounce.js +1 -1
- package/lib/util/debounce.js.map +1 -1
- package/lib/util/dom.js +10 -1
- package/lib/util/dom.js.map +1 -1
- package/lib/util/environments.js.map +1 -1
- package/lib/util/frame-scheduler.js +3 -3
- package/lib/util/frame-scheduler.js.map +1 -1
- package/lib/util/index.js +11 -11
- package/lib/util/index.js.map +1 -1
- package/lib/util/reactivity.js +3 -3
- package/lib/util/reactivity.js.map +1 -1
- package/lib/util/rect.js.map +1 -1
- package/lib/util/scroll.js.map +1 -1
- package/lib/util/string.js +3 -1
- package/lib/util/string.js.map +1 -1
- package/lib/util/ui.js +8 -7
- package/lib/util/ui.js.map +1 -1
- package/lib/util/validation.js.map +1 -1
- package/package.json +132 -123
- package/types/abstract/items.d.ts +4 -4
- package/types/components/alert/YAlert.d.ts +2 -2
- package/types/components/badge/YBadge.d.ts +9 -3
- package/types/components/button/YButton.d.ts +3 -3
- package/types/components/checkbox/YCheckbox.d.ts +4 -4
- package/types/components/chip/YChip.d.ts +0 -3
- package/types/components/date-picker/YDateCalendar.d.ts +4 -3
- package/types/components/date-picker/YDatePickerControl.d.ts +7 -7
- package/types/components/dialog/YDialog.d.ts +116 -6484
- package/types/components/draggable/YDraggable.d.ts +6 -6
- package/types/components/dropdown/YDropdown.d.ts +87 -87
- package/types/components/field-input/YFieldInput.d.ts +14 -14
- package/types/components/form/YForm.d.ts +3 -3
- package/types/components/icon/YIcon.d.ts +4 -4
- package/types/components/icons/YIconPageControl.d.ts +1 -1
- package/types/components/icons/YIconSort.d.ts +1 -1
- package/types/components/icons/index.d.ts +4 -4
- package/types/components/img/YImg.d.ts +30 -27
- package/types/components/img/index.d.ts +1 -0
- package/types/components/index.d.ts +1 -0
- package/types/components/input/YInput.d.ts +13 -13
- package/types/components/ip-field/YIpv4Field.d.ts +5 -5
- package/types/components/layer/YLayer.d.ts +59 -3242
- package/types/components/layer/base.d.ts +4 -0
- package/types/components/layer/scroll-strategies.d.ts +4 -4
- package/types/components/menu/YMenu.d.ts +83 -6451
- package/types/components/pagination/YPagination.d.ts +3 -3
- package/types/components/select/YSelect.d.ts +172 -496
- package/types/components/slider/YSlider.d.ts +1 -1
- package/types/components/snackbar/YSnackbar.d.ts +55 -55
- package/types/components/tab/YTab.d.ts +3 -3
- package/types/components/tab/YTabs.d.ts +1 -1
- package/types/components/table/YDataTable.d.ts +30 -87
- package/types/components/table/YDataTableBody.d.ts +3 -3
- package/types/components/table/YDataTableCell.d.ts +2 -2
- package/types/components/table/YDataTableControl.d.ts +6 -6
- package/types/components/table/YDataTableLayer.d.ts +2 -2
- package/types/components/table/YDataTableRow.d.ts +1 -1
- package/types/components/table/YDataTableServer.d.ts +37 -94
- package/types/components/table/YTable.d.ts +3 -3
- package/types/components/table/composables/expand.d.ts +4 -4
- package/types/components/table/composables/header.d.ts +16 -48
- package/types/components/table/composables/items.d.ts +2 -2
- package/types/components/table/composables/pagination.d.ts +10 -10
- package/types/components/table/composables/selection.d.ts +6 -6
- package/types/components/table/composables/sorting.d.ts +8 -14
- package/types/components/table/types/item.d.ts +1 -1
- package/types/components/textarea/YTextarea.d.ts +30 -30
- package/types/components/tooltip/YTooltip.d.ts +67 -67
- package/types/components/tree-view/YTreeView.d.ts +7 -7
- package/types/components/tree-view/YTreeViewNode.d.ts +5 -5
- package/types/components/tree-view/tree-view.d.ts +2 -2
- package/types/composables/choice.d.ts +2 -2
- package/types/composables/coordinate/index.d.ts +28 -3207
- package/types/composables/coordinate/levitation.d.ts +4 -2
- package/types/composables/coordinate/types.d.ts +1 -0
- package/types/composables/dimension.d.ts +6 -6
- package/types/composables/form.d.ts +17 -27
- package/types/composables/list-items.d.ts +3 -3
- package/types/composables/style-color.d.ts +22 -1
- package/types/composables/theme/index.d.ts +1 -0
- package/types/composables/transition.d.ts +10 -10
- package/types/composables/validation.d.ts +6 -6
- package/types/composables/vue-router.d.ts +3 -3
- package/types/declares.d.ts +1 -0
- package/types/directives/index.d.ts +2 -0
- package/types/directives/plate-wave/index.d.ts +7 -1
- package/types/globals.d.ts +19 -20
- package/types/shims.d.ts +9 -3
- package/types/types/index.d.ts +3 -0
- package/types/util/anchor.d.ts +1 -1
- package/types/util/common.d.ts +3 -0
- package/types/util/component/component.d.ts +1 -2
- package/types/util/component/props.d.ts +1 -1
- package/types/util/component/types.d.ts +1 -1
- package/types/util/date/index.d.ts +1 -1
- package/types/util/dom.d.ts +2 -0
- package/types/util/index.d.ts +11 -11
- package/types/components/table/composibles/header.d.ts +0 -207
- package/types/components/table/composibles/items.d.ts +0 -55
- package/types/components/table/composibles/measure.d.ts +0 -8
- package/types/components/table/composibles/options.d.ts +0 -11
- package/types/components/table/composibles/pagination.d.ts +0 -81
- package/types/components/table/composibles/selection.d.ts +0 -82
- package/types/components/table/composibles/sorted-items.d.ts +0 -7
- package/types/components/table/composibles/sorting.d.ts +0 -62
- /package/types/directives/{theme-class.d.ts → theme-class/index.d.ts} +0 -0
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getCurrentInstance","nextTick","reactive","allComponents","
|
|
1
|
+
{"version":3,"file":"index.js","names":["getCurrentInstance","nextTick","reactive","allComponents","createDateModule","YUYEON_DATE_KEY","YUYEON_DATE_OPTIONS_KEY","createDefaultsModule","YUYEON_DEFAULTS_KEY","createI18nModule","YUYEON_I18N_KEY","createIconModule","YUYEON_ICON_KEY","createThemeModule","useTheme","YUYEON_THEME_KEY","PlateWave","YUYEON_LOGO","defaultOptions","credit","init","options","arguments","length","undefined","defaultsModule","defaults","themeModule","theme","i18nModule","i18n","dateModule","date","localeModule","iconModule","icon","components","install","app","yuyeon","root","instance","rtlModule","Object","keys","forEach","componentName","comp","component","directive","provide","config","globalProperties","$yuyeon","_container","_instance","classList","add","setAttribute","console","log","unmount","mount","vm","scope","stop","useYuyeon","Error","appContext"],"sources":["../src/index.ts"],"sourcesContent":["import type { App, Component, ComponentInternalInstance } from 'vue';\nimport { getCurrentInstance, nextTick, reactive } from 'vue';\n\nimport * as allComponents from '@/components/';\nimport {\n createDateModule,\n YUYEON_DATE_KEY,\n YUYEON_DATE_OPTIONS_KEY,\n} from '@/composables/date';\nimport { createDefaultsModule } from '@/composables/defaults';\nimport { YUYEON_DEFAULTS_KEY } from '@/composables/defaults/share';\nimport { createI18nModule } from '@/composables/i18n';\nimport { YUYEON_I18N_KEY } from '@/composables/i18n/share';\nimport { createIconModule, YUYEON_ICON_KEY } from '@/composables/icon';\nimport {\n createThemeModule,\n useTheme,\n YUYEON_THEME_KEY,\n} from '@/composables/theme';\nimport PlateWave from '@/directives/plate-wave';\nimport { YUYEON_LOGO } from '@/etc';\n\nimport './styles/base.scss';\n\nconst defaultOptions = {\n credit: true,\n};\n\ndeclare module 'vue' {\n interface ComponentCustomProperties {\n $yuyeon: any;\n }\n}\n\nexport function init(options: any = defaultOptions) {\n const defaultsModule = createDefaultsModule(options?.defaults);\n const themeModule = createThemeModule(options?.theme);\n const i18nModule = createI18nModule(options?.i18n);\n const dateModule = createDateModule(options?.date, i18nModule.localeModule);\n const iconModule = createIconModule(options?.icon);\n const components = options?.components ?? allComponents;\n\n const install = (app: App) => {\n themeModule.install(app);\n\n const yuyeon = reactive({\n app: null as ComponentInternalInstance | null,\n root: null as HTMLElement | null,\n theme: themeModule.instance,\n i18n: {\n ...i18nModule.localeModule,\n ...i18nModule.rtlModule,\n },\n date: dateModule,\n defaults: defaultsModule,\n icon: iconModule,\n });\n\n Object.keys(components).forEach((componentName) => {\n const comp = components[componentName as keyof typeof components];\n if (typeof comp === 'object' && 'name' in comp)\n app.component(componentName, comp as Component);\n });\n\n app.directive('plate-wave', PlateWave);\n\n app.provide(YUYEON_DEFAULTS_KEY, defaultsModule);\n app.provide(YUYEON_THEME_KEY, themeModule.instance);\n app.provide(YUYEON_ICON_KEY, iconModule);\n app.provide(YUYEON_I18N_KEY, {\n ...i18nModule.localeModule,\n ...i18nModule.rtlModule,\n });\n app.provide(YUYEON_DATE_OPTIONS_KEY, dateModule.options);\n app.provide(YUYEON_DATE_KEY, dateModule.instance);\n\n app.config.globalProperties.$yuyeon = yuyeon;\n\n nextTick(() => {\n yuyeon.root = app._container;\n yuyeon.app = app._instance as any;\n if (yuyeon.root) {\n yuyeon.root.classList.add('y-root');\n yuyeon.root.setAttribute('data-y-root', '');\n themeModule.init(yuyeon);\n }\n });\n\n if (options?.credit) {\n console.log(YUYEON_LOGO);\n }\n const { unmount, mount } = app;\n app.mount = (...args) => {\n const vm = mount(...args);\n if (!yuyeon.app) {\n yuyeon.app = app._instance as any;\n }\n if (!yuyeon.root) {\n nextTick(() => {\n yuyeon.root = app._container;\n if (yuyeon.root) {\n yuyeon.root.classList.add('y-root');\n yuyeon.root.setAttribute('data-y-root', '');\n themeModule.init(yuyeon);\n }\n });\n }\n app.mount = mount;\n return vm;\n };\n app.unmount = () => {\n unmount();\n themeModule.scope.stop();\n app.unmount = unmount;\n };\n };\n\n return {\n install,\n };\n}\n\nexport function useYuyeon() {\n const vm = getCurrentInstance();\n if (!vm) throw new Error('[yuyeon] Called outside of setup context');\n\n return vm.appContext.config.globalProperties.$yuyeon;\n}\n\nexport { useTheme };\n"],"mappings":"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","ignoreList":[]}
|
package/lib/locales/en.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","names":["search","noItems","noData"],"sources":["../../src/locales/en.ts"],"sourcesContent":["export default {\
|
|
1
|
+
{"version":3,"file":"en.js","names":["search","noItems","noData"],"sources":["../../src/locales/en.ts"],"sourcesContent":["export default {\n search: 'search',\n noItems: 'No Options',\n noData: 'No Data',\n};\n"],"mappings":"AAAA,eAAe;EACbA,MAAM,EAAE,QAAQ;EAChBC,OAAO,EAAE,YAAY;EACrBC,MAAM,EAAE;AACV,CAAC","ignoreList":[]}
|
package/lib/locales/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","en","ko"],"sources":["../../src/locales/index.ts"],"sourcesContent":["export { default as en } from './en';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","en","ko"],"sources":["../../src/locales/index.ts"],"sourcesContent":["export { default as en } from './en';\nexport { default as ko } from './ko';\n"],"mappings":"SAASA,OAAO,IAAIC,EAAE;AAAA,SACbD,OAAO,IAAIE,EAAE","ignoreList":[]}
|
package/lib/locales/ko.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ko.js","names":["search","noItems","noData"],"sources":["../../src/locales/ko.ts"],"sourcesContent":["export default {\
|
|
1
|
+
{"version":3,"file":"ko.js","names":["search","noItems","noData"],"sources":["../../src/locales/ko.ts"],"sourcesContent":["export default {\n search: '검색',\n noItems: '항목이 없습니다.',\n noData: '데이터가 없습니다.',\n};\n"],"mappings":"AAAA,eAAe;EACbA,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE,WAAW;EACpBC,MAAM,EAAE;AACV,CAAC","ignoreList":[]}
|
package/lib/mixins/di.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di.js","names":["defineComponent","name","inject","form$","default","mounted","register","beforeUnmount","unregister"],"sources":["../../src/mixins/di.ts"],"sourcesContent":["/*\n * Created by yuyeon-ui 2022.\n */\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'DiMixin',\n inject: {\n form$: {\n default: null,\n },\n },\n mounted() {\n ((this as any).form$ as any)?.register(this);\n },\n beforeUnmount() {\n ((this as any).form$ as any)?.unregister(this);\n },\n});\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,KAAK;AAErC,eAAeA,eAAe,CAAC;EAC7BC,IAAI,EAAE,SAAS;EACfC,MAAM,EAAE;IACNC,KAAK,EAAE;MACLC,OAAO,EAAE;IACX;EACF,CAAC;EACDC,OAAOA,CAAA,EAAG;IACN,IAAI,CAASF,KAAK,EAAUG,QAAQ,CAAC,IAAI,CAAC;EAC9C,CAAC;EACDC,aAAaA,CAAA,EAAG;IACZ,IAAI,CAASJ,KAAK,EAAUK,UAAU,CAAC,IAAI,CAAC;EAChD;AACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"di.js","names":["defineComponent","name","inject","form$","default","mounted","register","beforeUnmount","unregister"],"sources":["../../src/mixins/di.ts"],"sourcesContent":["/*\n * Created by yuyeon-ui 2022.\n */\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'DiMixin',\n inject: {\n form$: {\n default: null,\n },\n },\n mounted() {\n ((this as any).form$ as any)?.register(this);\n },\n beforeUnmount() {\n ((this as any).form$ as any)?.unregister(this);\n },\n});\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,KAAK;AAErC,eAAeA,eAAe,CAAC;EAC7BC,IAAI,EAAE,SAAS;EACfC,MAAM,EAAE;IACNC,KAAK,EAAE;MACLC,OAAO,EAAE;IACX;EACF,CAAC;EACDC,OAAOA,CAAA,EAAG;IACN,IAAI,CAASF,KAAK,EAAUG,QAAQ,CAAC,IAAI,CAAC;EAC9C,CAAC;EACDC,aAAaA,CAAA,EAAG;IACZ,IAAI,CAASJ,KAAK,EAAUK,UAAU,CAAC,IAAI,CAAC;EAChD;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -18,7 +18,6 @@ export default defineComponent({
|
|
|
18
18
|
// this.$set(this.$data.$_attrs, attr, val[attr]);
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
|
-
|
|
22
21
|
immediate: true
|
|
23
22
|
},
|
|
24
23
|
$listeners: {
|
|
@@ -29,7 +28,6 @@ export default defineComponent({
|
|
|
29
28
|
// this.$set(this.$data.$_listeners, listener, val[listener]);
|
|
30
29
|
}
|
|
31
30
|
},
|
|
32
|
-
|
|
33
31
|
immediate: true
|
|
34
32
|
}
|
|
35
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebind-attrs.js","names":["defineComponent","data","attrs_$","listeners_$","watch","$attrs","handler","val","attr","$data","immediate","$listeners","listener"],"sources":["../../src/mixins/rebind-attrs.ts"],"sourcesContent":["/*\n * Created by yuyeon-ui 2022.\n */\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n data: () => ({\n attrs_$: {} as any,\n listeners_$: {} as any,\n }),\n watch: {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `v-bind=\"$data.$_attrs\"` instead of `v-bind=\"$attrs\"`\n $attrs: {\n handler(val) {\n // eslint-disable-next-line guard-for-in,no-restricted-syntax\n for (const attr in val) {\n this.$data.attrs_$[attr] = val[attr];\n // this.$set(this.$data.$_attrs, attr, val[attr]);\n }\n },\n immediate: true,\n },\n $listeners: {\n handler(val) {\n // eslint-disable-next-line guard-for-in,no-restricted-syntax\n for (const listener in val) {\n this.$data.listeners_$[listener] = val[listener];\n // this.$set(this.$data.$_listeners, listener, val[listener]);\n }\n },\n immediate: true,\n },\n },\n});\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,KAAK;AAErC,eAAeA,eAAe,CAAC;EAC7BC,IAAI,EAAEA,CAAA,MAAO;IACXC,OAAO,EAAE,CAAC,CAAQ;IAClBC,WAAW,EAAE,CAAC;EAChB,CAAC,CAAC;EACFC,KAAK,EAAE;IACL;IACA;IACAC,MAAM,EAAE;MACNC,OAAOA,CAACC,GAAG,EAAE;QACX;QACA,KAAK,MAAMC,IAAI,IAAID,GAAG,EAAE;UACtB,IAAI,CAACE,KAAK,CAACP,OAAO,CAACM,IAAI,CAAC,GAAGD,GAAG,CAACC,IAAI,CAAC;UACpC;QACF;MACF,CAAC
|
|
1
|
+
{"version":3,"file":"rebind-attrs.js","names":["defineComponent","data","attrs_$","listeners_$","watch","$attrs","handler","val","attr","$data","immediate","$listeners","listener"],"sources":["../../src/mixins/rebind-attrs.ts"],"sourcesContent":["/*\n * Created by yuyeon-ui 2022.\n */\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n data: () => ({\n attrs_$: {} as any,\n listeners_$: {} as any,\n }),\n watch: {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `v-bind=\"$data.$_attrs\"` instead of `v-bind=\"$attrs\"`\n $attrs: {\n handler(val) {\n // eslint-disable-next-line guard-for-in,no-restricted-syntax\n for (const attr in val) {\n this.$data.attrs_$[attr] = val[attr];\n // this.$set(this.$data.$_attrs, attr, val[attr]);\n }\n },\n immediate: true,\n },\n $listeners: {\n handler(val) {\n // eslint-disable-next-line guard-for-in,no-restricted-syntax\n for (const listener in val) {\n this.$data.listeners_$[listener] = val[listener];\n // this.$set(this.$data.$_listeners, listener, val[listener]);\n }\n },\n immediate: true,\n },\n },\n});\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,KAAK;AAErC,eAAeA,eAAe,CAAC;EAC7BC,IAAI,EAAEA,CAAA,MAAO;IACXC,OAAO,EAAE,CAAC,CAAQ;IAClBC,WAAW,EAAE,CAAC;EAChB,CAAC,CAAC;EACFC,KAAK,EAAE;IACL;IACA;IACAC,MAAM,EAAE;MACNC,OAAOA,CAACC,GAAG,EAAE;QACX;QACA,KAAK,MAAMC,IAAI,IAAID,GAAG,EAAE;UACtB,IAAI,CAACE,KAAK,CAACP,OAAO,CAACM,IAAI,CAAC,GAAGD,GAAG,CAACC,IAAI,CAAC;UACpC;QACF;MACF,CAAC;MACDE,SAAS,EAAE;IACb,CAAC;IACDC,UAAU,EAAE;MACVL,OAAOA,CAACC,GAAG,EAAE;QACX;QACA,KAAK,MAAMK,QAAQ,IAAIL,GAAG,EAAE;UAC1B,IAAI,CAACE,KAAK,CAACN,WAAW,CAACS,QAAQ,CAAC,GAAGL,GAAG,CAACK,QAAQ,CAAC;UAChD;QACF;MACF,CAAC;MACDF,SAAS,EAAE;IACb;EACF;AACF,CAAC,CAAC","ignoreList":[]}
|
package/lib/styles/base.scss
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
.slide-fade-enter-active,
|
|
34
34
|
.slide-fade-leave-active {
|
|
35
35
|
transition: transform 240ms variables.$basic-transition-timing-function,
|
|
36
|
-
|
|
36
|
+
opacity 240ms linear;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
.slide-fade-enter-from,
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
transition-timing-function: variables.$basic-transition-timing-function;
|
|
49
49
|
transition-property: height;
|
|
50
50
|
}
|
|
51
|
+
|
|
51
52
|
&-leave-active {
|
|
52
53
|
transition-duration: 240ms;
|
|
53
54
|
transition-timing-function: variables.$basic-transition-timing-function;
|
|
@@ -61,6 +62,7 @@
|
|
|
61
62
|
transition-timing-function: variables.$basic-transition-timing-function;
|
|
62
63
|
transition-property: width;
|
|
63
64
|
}
|
|
65
|
+
|
|
64
66
|
&-leave-active {
|
|
65
67
|
transition-duration: 240ms;
|
|
66
68
|
transition-timing-function: variables.$basic-transition-timing-function;
|
|
@@ -2,19 +2,19 @@ $core-shadow-opacity: 0.3;
|
|
|
2
2
|
$ambient-shadow-opacity: 0.15;
|
|
3
3
|
|
|
4
4
|
$core-shadow-dimension: (
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
0: (0px 0px 0px 0px),
|
|
6
|
+
1: (0px 1px 2px 0px),
|
|
7
|
+
2: (0px 1px 2px 0px),
|
|
8
|
+
3: (0px 1px 3px 0px),
|
|
9
|
+
4: (0px 2px 3px 0px),
|
|
10
|
+
5: (0px 4px 4px 0px),
|
|
11
11
|
);
|
|
12
12
|
|
|
13
13
|
$ambient-shadow-dimension: (
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
0: (0px 0px 0px 0px),
|
|
15
|
+
1: (0px 1px 3px 1px),
|
|
16
|
+
2: (0px 2px 6px 2px),
|
|
17
|
+
3: (0px 4px 8px 3px),
|
|
18
|
+
4: (0px 6px 10px 4px),
|
|
19
|
+
5: (0px 8px 12px 6px),
|
|
20
20
|
)
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
$box-side-direction: ('top', 'right', 'bottom', 'left');
|
|
2
2
|
$box-side-combinations: (
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
3
|
+
'a': (),
|
|
4
|
+
'v': (
|
|
5
|
+
'top',
|
|
6
|
+
'bottom',
|
|
7
|
+
),
|
|
8
|
+
'h': (
|
|
9
|
+
'right',
|
|
10
|
+
'left',
|
|
11
|
+
),
|
|
12
|
+
't': (
|
|
13
|
+
'top',
|
|
14
|
+
),
|
|
15
|
+
'r': (
|
|
16
|
+
'right',
|
|
17
|
+
),
|
|
18
|
+
'b': (
|
|
19
|
+
'bottom',
|
|
20
|
+
),
|
|
21
|
+
'l': (
|
|
22
|
+
'left',
|
|
23
|
+
),
|
|
24
24
|
);
|
|
25
25
|
|
|
26
26
|
$space-types: (
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
'm': 'margin',
|
|
28
|
+
'p': 'padding',
|
|
29
29
|
);
|
|
30
30
|
|
|
31
31
|
$text-aligns: ('center', 'left', 'right');
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
@use 'sass:map';
|
|
2
2
|
|
|
3
3
|
$border-radius: (
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
4
|
+
'top': (
|
|
5
|
+
'top-left',
|
|
6
|
+
'top-right',
|
|
7
|
+
),
|
|
8
|
+
'bottom': (
|
|
9
|
+
'bottom-left',
|
|
10
|
+
'bottom-right',
|
|
11
|
+
),
|
|
12
|
+
'left': (
|
|
13
|
+
'top-left',
|
|
14
|
+
'bottom-left',
|
|
15
|
+
),
|
|
16
|
+
'right': (
|
|
17
|
+
'top-right',
|
|
18
|
+
'bottom-right',
|
|
19
|
+
),
|
|
20
20
|
);
|
|
21
21
|
|
|
22
22
|
@mixin borderRadius($round, $side) {
|
package/lib/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/types/index.ts"],"sourcesContent":["import type { ComponentPublicInstance, FunctionalComponent } from 'vue';\n\nexport type CandidateKey = string | number;\n\nexport type JSXComponent<Props = any> =\n | FunctionalComponent<Props>\n | { new (): ComponentPublicInstance<Props> };\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/types/index.ts"],"sourcesContent":["import type { ComponentPublicInstance, FunctionalComponent } from 'vue';\n\nexport type CandidateKey = string | number;\n\nexport type JSXComponent<Props = any> =\n | FunctionalComponent<Props>\n | { new (): ComponentPublicInstance<Props> };\n\nexport type CssProperties = { [p: `--${string}`]: string | number | undefined };\n"],"mappings":"","ignoreList":[]}
|
package/lib/util/anchor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.js","names":["includes","array","item","block","inline","parseAnchor","anchor","isRtl","side","align","split","toPhysical","str","flipSide","center","top","bottom","left","right","flipAlign","flipCorner","getAxis"],"sources":["../../src/util/anchor.ts"],"sourcesContent":["const includes = <T, A extends T>(\
|
|
1
|
+
{"version":3,"file":"anchor.js","names":["includes","array","item","block","inline","parseAnchor","anchor","isRtl","side","align","split","toPhysical","str","flipSide","center","top","bottom","left","right","flipAlign","flipCorner","getAxis"],"sources":["../../src/util/anchor.ts"],"sourcesContent":["const includes = <T, A extends T>(\n array: ReadonlyArray<A>,\n item: T,\n): item is A => array.includes(item as A);\n\nconst block = ['top', 'bottom'] as const;\nconst inline = ['start', 'end', 'left', 'right'] as const;\ntype Tblock = (typeof block)[number];\ntype Tinline = (typeof inline)[number];\nexport type Anchor =\n | Tblock\n | Tinline\n | 'center'\n | 'center center'\n | `${Tblock} ${Tinline | 'center'}`\n | `${Tinline} ${Tblock | 'center'}`;\nexport type ParsedAnchor =\n | { side: 'center'; align: 'center' }\n | { side: Tblock; align: 'left' | 'right' | 'center' }\n | { side: 'left' | 'right'; align: Tblock | 'center' };\n\n/** Parse a raw anchor string into an object */\nexport function parseAnchor(anchor: Anchor, isRtl: boolean) {\n let [side, align] = anchor.split(' ') as [\n Tblock | Tinline | 'center',\n Tblock | Tinline | 'center' | undefined,\n ];\n if (!align) {\n align = includes(block, side)\n ? 'start'\n : includes(inline, side)\n ? 'top'\n : 'center';\n }\n\n return {\n side: toPhysical(side, isRtl),\n align: toPhysical(align, isRtl),\n } as ParsedAnchor;\n}\n\nexport function toPhysical(str: 'center' | Tblock | Tinline, isRtl: boolean) {\n if (str === 'start') return isRtl ? 'right' : 'left';\n if (str === 'end') return isRtl ? 'left' : 'right';\n return str;\n}\n\nexport function flipSide(anchor: ParsedAnchor) {\n return {\n side: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[anchor.side],\n align: anchor.align,\n } as ParsedAnchor;\n}\n\nexport function flipAlign(anchor: ParsedAnchor) {\n return {\n side: anchor.side,\n align: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[anchor.align],\n } as ParsedAnchor;\n}\n\nexport function flipCorner(anchor: ParsedAnchor) {\n return {\n side: anchor.align,\n align: anchor.side,\n } as ParsedAnchor;\n}\n\nexport function getAxis(anchor: ParsedAnchor) {\n return includes(block, anchor.side) ? 'y' : 'x';\n}\n"],"mappings":"AAAA,MAAMA,QAAQ,GAAGA,CACfC,KAAuB,EACvBC,IAAO,KACOD,KAAK,CAACD,QAAQ,CAACE,IAAS,CAAC;AAEzC,MAAMC,KAAK,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAU;AACxC,MAAMC,MAAM,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAU;AAezD;AACA,OAAO,SAASC,WAAWA,CAACC,MAAc,EAAEC,KAAc,EAAE;EAC1D,IAAI,CAACC,IAAI,EAAEC,KAAK,CAAC,GAAGH,MAAM,CAACI,KAAK,CAAC,GAAG,CAGnC;EACD,IAAI,CAACD,KAAK,EAAE;IACVA,KAAK,GAAGT,QAAQ,CAACG,KAAK,EAAEK,IAAI,CAAC,GACzB,OAAO,GACPR,QAAQ,CAACI,MAAM,EAAEI,IAAI,CAAC,GACpB,KAAK,GACL,QAAQ;EAChB;EAEA,OAAO;IACLA,IAAI,EAAEG,UAAU,CAACH,IAAI,EAAED,KAAK,CAAC;IAC7BE,KAAK,EAAEE,UAAU,CAACF,KAAK,EAAEF,KAAK;EAChC,CAAC;AACH;AAEA,OAAO,SAASI,UAAUA,CAACC,GAAgC,EAAEL,KAAc,EAAE;EAC3E,IAAIK,GAAG,KAAK,OAAO,EAAE,OAAOL,KAAK,GAAG,OAAO,GAAG,MAAM;EACpD,IAAIK,GAAG,KAAK,KAAK,EAAE,OAAOL,KAAK,GAAG,MAAM,GAAG,OAAO;EAClD,OAAOK,GAAG;AACZ;AAEA,OAAO,SAASC,QAAQA,CAACP,MAAoB,EAAE;EAC7C,OAAO;IACLE,IAAI,EAAE;MACJM,MAAM,EAAE,QAAQ;MAChBC,GAAG,EAAE,QAAQ;MACbC,MAAM,EAAE,KAAK;MACbC,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE;IACT,CAAC,CAACZ,MAAM,CAACE,IAAI,CAAC;IACdC,KAAK,EAAEH,MAAM,CAACG;EAChB,CAAC;AACH;AAEA,OAAO,SAASU,SAASA,CAACb,MAAoB,EAAE;EAC9C,OAAO;IACLE,IAAI,EAAEF,MAAM,CAACE,IAAI;IACjBC,KAAK,EAAE;MACLK,MAAM,EAAE,QAAQ;MAChBC,GAAG,EAAE,QAAQ;MACbC,MAAM,EAAE,KAAK;MACbC,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE;IACT,CAAC,CAACZ,MAAM,CAACG,KAAK;EAChB,CAAC;AACH;AAEA,OAAO,SAASW,UAAUA,CAACd,MAAoB,EAAE;EAC/C,OAAO;IACLE,IAAI,EAAEF,MAAM,CAACG,KAAK;IAClBA,KAAK,EAAEH,MAAM,CAACE;EAChB,CAAC;AACH;AAEA,OAAO,SAASa,OAAOA,CAACf,MAAoB,EAAE;EAC5C,OAAON,QAAQ,CAACG,KAAK,EAAEG,MAAM,CAACE,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG;AACjD","ignoreList":[]}
|
package/lib/util/array.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.js","names":["differenceBetween","inspect","exclude","ret","target","includes","push","wrapInArray","arrOrNot","Array","isArray"],"sources":["../../src/util/array.ts"],"sourcesContent":["export function differenceBetween(inspect: any[], exclude: any[]) {\n const ret = [];\n for (const target of exclude) {\n if (!inspect.includes(target)) {\n ret.push(target);\n }\n }\n return ret;\n}\n\nexport function wrapInArray(arrOrNot: any | any[]) {\n return Array.isArray(arrOrNot) ? arrOrNot : [arrOrNot];\n}\n"],"mappings":"AAAA,OAAO,SAASA,iBAAiBA,CAACC,OAAc,EAAEC,OAAc,EAAE;EAChE,MAAMC,GAAG,GAAG,EAAE;EACd,KAAK,MAAMC,MAAM,IAAIF,OAAO,EAAE;IAC5B,IAAI,CAACD,OAAO,CAACI,QAAQ,CAACD,MAAM,CAAC,EAAE;MAC7BD,GAAG,CAACG,IAAI,CAACF,MAAM,CAAC;IAClB;EACF;EACA,OAAOD,GAAG;AACZ;AAEA,OAAO,SAASI,WAAWA,CAACC,QAAqB,EAAE;EACjD,OAAOC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,GAAGA,QAAQ,GAAG,CAACA,QAAQ,CAAC;AACxD"}
|
|
1
|
+
{"version":3,"file":"array.js","names":["differenceBetween","inspect","exclude","ret","target","includes","push","wrapInArray","arrOrNot","Array","isArray"],"sources":["../../src/util/array.ts"],"sourcesContent":["export function differenceBetween(inspect: any[], exclude: any[]) {\n const ret = [];\n for (const target of exclude) {\n if (!inspect.includes(target)) {\n ret.push(target);\n }\n }\n return ret;\n}\n\nexport function wrapInArray(arrOrNot: any | any[]) {\n return Array.isArray(arrOrNot) ? arrOrNot : [arrOrNot];\n}\n"],"mappings":"AAAA,OAAO,SAASA,iBAAiBA,CAACC,OAAc,EAAEC,OAAc,EAAE;EAChE,MAAMC,GAAG,GAAG,EAAE;EACd,KAAK,MAAMC,MAAM,IAAIF,OAAO,EAAE;IAC5B,IAAI,CAACD,OAAO,CAACI,QAAQ,CAACD,MAAM,CAAC,EAAE;MAC7BD,GAAG,CAACG,IAAI,CAACF,MAAM,CAAC;IAClB;EACF;EACA,OAAOD,GAAG;AACZ;AAEA,OAAO,SAASI,WAAWA,CAACC,QAAqB,EAAE;EACjD,OAAOC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,GAAGA,QAAQ,GAAG,CAACA,QAAQ,CAAC;AACxD","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.js","names":["getFlatChildren","children","childrenKey","arguments","length","undefined","map","child"],"sources":["../../src/util/collection.ts"],"sourcesContent":["export function getFlatChildren(\
|
|
1
|
+
{"version":3,"file":"collection.js","names":["getFlatChildren","children","childrenKey","arguments","length","undefined","map","child"],"sources":["../../src/util/collection.ts"],"sourcesContent":["export function getFlatChildren(\n children: any[],\n childrenKey = 'children',\n): any[] {\n return children.map((child) => {\n if (child[childrenKey]) {\n return [child, ...getFlatChildren(child[childrenKey])];\n }\n return [child];\n });\n}\n"],"mappings":"AAAA,OAAO,SAASA,eAAeA,CAC7BC,QAAe,EAER;EAAA,IADPC,WAAW,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,UAAU;EAExB,OAAOF,QAAQ,CAACK,GAAG,CAAEC,KAAK,IAAK;IAC7B,IAAIA,KAAK,CAACL,WAAW,CAAC,EAAE;MACtB,OAAO,CAACK,KAAK,EAAE,GAAGP,eAAe,CAACO,KAAK,CAACL,WAAW,CAAC,CAAC,CAAC;IACxD;IACA,OAAO,CAACK,KAAK,CAAC;EAChB,CAAC,CAAC;AACJ","ignoreList":[]}
|
package/lib/util/color/apca.js
CHANGED
|
@@ -171,6 +171,7 @@ export function APCAcontrast(txtY, bgY) {
|
|
|
171
171
|
if (places < 0) {
|
|
172
172
|
// Default (-1) number out, all others are strings
|
|
173
173
|
return outputContrast * 100.0;
|
|
174
|
+
// biome-ignore lint/suspicious/noDoubleEquals: <explanation>
|
|
174
175
|
} else if (places == 0) {
|
|
175
176
|
return Math.round(Math.abs(outputContrast) * 100.0) + '<sub>' + polCat + '</sub>';
|
|
176
177
|
} else if (Number.isInteger(places)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apca.js","names":["SA98G","mainTRC","mainTRCencode","sRco","sGco","sBco","normBG","normTXT","revTXT","revBG","blkThrs","blkClmp","scaleBoW","scaleWoB","loBoWoffset","loWoBoffset","deltaYmin","loClip","mFactor","mFactInv","mOffsetIn","mExpAdj","mExp","mOffsetOut","sRGBtoY","rgb","arguments","length","undefined","simpleExp","chan","Math","pow","APCAcontrast","txtY","bgY","places","icp","isNaN","min","max","SAPC","outputContrast","polCat","abs","round","Number","isInteger","toFixed","alphaBlend","rgbaFG","rgbBG","compBlend","rgbOut","i"],"sources":["../../../src/util/color/apca.ts"],"sourcesContent":["///////////////////////////////////////////////////////////////////////////////\n/** @preserve\n ///// SAPC APCA - Advanced Perceptual Contrast Algorithm\n ///// Beta 0.1.9 W3 • contrast function only\n ///// DIST: W3 • Revision date: July 3, 2022\n ///// Function to parse color values and determine Lc contrast\n ///// Copyright © 2019-2022 by Andrew Somers. All Rights Reserved.\n ///// LICENSE: W3 LICENSE\n ///// CONTACT: Please use the ISSUES or DISCUSSIONS tab at:\n ///// https://github.com/Myndex/SAPC-APCA/\n /////\n ///////////////////////////////////////////////////////////////////////////////\n /////\n ///// MINIMAL IMPORTS:\n ///// import { APCAcontrast, sRGBtoY, displayP3toY,\n///// calcAPCA, fontLookupAPCA } from 'apca-w3';\n ///// import { colorParsley } from 'colorparsley';\n /////\n ///// FORWARD CONTRAST USAGE:\n ///// Lc = APCAcontrast( sRGBtoY( TEXTcolor ) , sRGBtoY( BACKGNDcolor ) );\n ///// Where the colors are sent as an rgba array [255,255,255,1]\n /////\n ///// Retrieving an array of font sizes for the contrast:\n ///// fontArray = fontLookupAPCA(Lc);\n /////\n ///// Live Demonstrator at https://www.myndex.com/APCA/\n // */\n///////////////////////////////////////////////////////////////////////////////\n\n///// Module Scope Object Containing Constants /////\n///// APCA 0.0.98G - 4g - W3 Compatible Constants\n\n///// 𝒦 SA98G ///////////////////////////////////\nconst SA98G = {\n mainTRC: 2.4, // 2.4 exponent for emulating actual monitor perception\n\n // For reverseAPCA\n get mainTRCencode() {\n return 1 / this.mainTRC;\n },\n\n // sRGB coefficients\n sRco: 0.2126729,\n sGco: 0.7151522,\n sBco: 0.072175,\n\n // G-4g constants for use with 2.4 exponent\n normBG: 0.56,\n normTXT: 0.57,\n revTXT: 0.62,\n revBG: 0.65,\n\n // G-4g Clamps and Scalers\n blkThrs: 0.022,\n blkClmp: 1.414,\n scaleBoW: 1.14,\n scaleWoB: 1.14,\n loBoWoffset: 0.027,\n loWoBoffset: 0.027,\n deltaYmin: 0.0005,\n loClip: 0.1,\n\n ///// MAGIC NUMBERS for UNCLAMP, for use with 0.022 & 1.414 /////\n // Magic Numbers for reverseAPCA\n mFactor: 1.9468554433171,\n get mFactInv() {\n return 1 / this.mFactor;\n },\n mOffsetIn: 0.0387393816571401,\n mExpAdj: 0.283343396420869,\n get mExp() {\n return this.mExpAdj / this.blkClmp;\n },\n mOffsetOut: 0.312865795870758,\n};\n\n//////////////////////////////////////////////////////////////////////////////\n////////// LUMINANCE CONVERTERS |//////////////////////////////////////////\n\n////////// ƒ sRGBtoY() //////////////////////////////////////////////////\nexport function sRGBtoY(rgb = [0, 0, 0]) {\n // send sRGB 8bpc (0xFFFFFF) or string\n\n // NOTE: Currently expects 0-255\n\n ///// APCA 0.0.98G - 4g - W3 Compatible Constants ////////////////////\n /*\n const mainTRC = 2.4; // 2.4 exponent emulates actual monitor perception\n\n const sRco = 0.2126729,\n sGco = 0.7151522,\n sBco = 0.0721750; // sRGB coefficients\n */\n // Future:\n // 0.2126478133913640\t0.7151791475336150\t0.0721730390750208\n // Derived from:\n // xW\tyW\tK\txR\tyR\txG\tyG\txB\tyB\n // 0.312720\t0.329030\t6504\t0.640\t0.330\t0.300\t0.600\t0.150\t0.060\n\n // linearize r, g, or b then apply coefficients\n // and sum then return the resulting luminance\n\n function simpleExp(chan: number) {\n return Math.pow(chan / 255.0, SA98G.mainTRC);\n }\n\n return (\n SA98G.sRco * simpleExp(rgb[0]) +\n SA98G.sGco * simpleExp(rgb[1]) +\n SA98G.sBco * simpleExp(rgb[2])\n );\n}\n\nexport function APCAcontrast(txtY: number, bgY: number, places = -1) {\n // send linear Y (luminance) for text and background.\n // txtY and bgY must be between 0.0-1.0\n // IMPORTANT: Do not swap, polarity is important.\n\n const icp = [0.0, 1.1]; // input range clamp / input error check\n\n if (\n isNaN(txtY) ||\n isNaN(bgY) ||\n Math.min(txtY, bgY) < icp[0] ||\n Math.max(txtY, bgY) > icp[1]\n ) {\n return 0.0; // return zero on error\n // return 'error'; // optional string return for error\n }\n\n ////////// SAPC LOCAL VARS /////////////////////////////////////////\n\n let SAPC = 0.0; // For raw SAPC values\n let outputContrast = 0.0; // For weighted final values\n let polCat = 'BoW'; // Alternate Polarity Indicator. N normal R reverse\n\n // TUTORIAL\n\n // Use Y for text and BG, and soft clamp black,\n // return 0 for very close luminances, determine\n // polarity, and calculate SAPC raw contrast\n // Then scale for easy to remember levels.\n\n // Note that reverse contrast (white text on black)\n // intentionally returns a negative number\n // Proper polarity is important!\n\n ////////// BLACK SOFT CLAMP ////////////////////////////////////////\n\n // Soft clamps Y for either color if it is near black.\n txtY =\n txtY > SA98G.blkThrs\n ? txtY\n : txtY + Math.pow(SA98G.blkThrs - txtY, SA98G.blkClmp);\n bgY =\n bgY > SA98G.blkThrs\n ? bgY\n : bgY + Math.pow(SA98G.blkThrs - bgY, SA98G.blkClmp);\n\n ///// Return 0 Early for extremely low ∆Y\n if (Math.abs(bgY - txtY) < SA98G.deltaYmin) {\n return 0.0;\n }\n\n ////////// APCA/SAPC CONTRAST - LOW CLIP (W3 LICENSE) ///////////////\n\n if (bgY > txtY) {\n // For normal polarity, black text on white (BoW)\n\n // Calculate the SAPC contrast value and scale\n SAPC =\n (Math.pow(bgY, SA98G.normBG) - Math.pow(txtY, SA98G.normTXT)) *\n SA98G.scaleBoW;\n\n // Low Contrast smooth rollout to prevent polarity reversal\n // and also a low-clip for very low contrasts\n outputContrast = SAPC < SA98G.loClip ? 0.0 : SAPC - SA98G.loBoWoffset;\n } else {\n // For reverse polarity, light text on dark (WoB)\n // WoB should always return negative value.\n polCat = 'WoB';\n\n SAPC =\n (Math.pow(bgY, SA98G.revBG) - Math.pow(txtY, SA98G.revTXT)) *\n SA98G.scaleWoB;\n\n outputContrast = SAPC > -SA98G.loClip ? 0.0 : SAPC + SA98G.loWoBoffset;\n }\n\n // return Lc (lightness contrast) as a signed numeric value\n // Round to the nearest whole number as string is optional.\n // Rounded can be a signed INT as output will be within ± 127\n // places = -1 returns signed float, 1 or more set that many places\n // 0 returns rounded string, uses BoW or WoB instead of minus sign\n\n if (places < 0) {\n // Default (-1) number out, all others are strings\n return outputContrast * 100.0;\n } else if (places == 0) {\n return (\n Math.round(Math.abs(outputContrast) * 100.0) + '<sub>' + polCat + '</sub>'\n );\n } else if (Number.isInteger(places)) {\n return (outputContrast * 100.0).toFixed(places);\n } else {\n return 0.0;\n }\n}\n\n// send rgba array for text/icon, rgb for background.\n// Only foreground allows alpha of 0.0 to 1.0\n// This blends using gamma encoded space (standard)\n// rounded 0-255 or set round=false for number 0.0-255.0\nexport function alphaBlend(\n rgbaFG = [0, 0, 0, 1.0],\n rgbBG = [0, 0, 0],\n round = true,\n) {\n rgbaFG[3] = Math.max(Math.min(rgbaFG[3], 1.0), 0.0); // clamp alpha 0-1\n let compBlend = 1.0 - rgbaFG[3];\n let rgbOut = [0, 0, 0, 1, true]; // or just use rgbBG to retain other elements?\n\n for (let i = 0; i < 3; i++) {\n rgbOut[i] = rgbBG[i] * compBlend + rgbaFG[i] * rgbaFG[3];\n if (round) rgbOut[i] = Math.min(Math.round(rgbOut[i] as number), 255);\n }\n return rgbOut;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAMA,KAAK,GAAG;EACZC,OAAO,EAAE,GAAG;EAAE;;EAEd;EACA,IAAIC,aAAaA,CAAA,EAAG;IAClB,OAAO,CAAC,GAAG,IAAI,CAACD,OAAO;EACzB,CAAC;EAED;EACAE,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,QAAQ;EAEd;EACAC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE,IAAI;EACbC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,IAAI;EAEX;EACAC,OAAO,EAAE,KAAK;EACdC,OAAO,EAAE,KAAK;EACdC,QAAQ,EAAE,IAAI;EACdC,QAAQ,EAAE,IAAI;EACdC,WAAW,EAAE,KAAK;EAClBC,WAAW,EAAE,KAAK;EAClBC,SAAS,EAAE,MAAM;EACjBC,MAAM,EAAE,GAAG;EAEX;EACA;EACAC,OAAO,EAAE,eAAe;EACxB,IAAIC,QAAQA,CAAA,EAAG;IACb,OAAO,CAAC,GAAG,IAAI,CAACD,OAAO;EACzB,CAAC;EACDE,SAAS,EAAE,kBAAkB;EAC7BC,OAAO,EAAE,iBAAiB;EAC1B,IAAIC,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACD,OAAO,GAAG,IAAI,CAACV,OAAO;EACpC,CAAC;EACDY,UAAU,EAAE;AACd,CAAC;;AAED;AACA;;AAEA;AACA,OAAO,SAASC,OAAOA,CAAA,EAAkB;EAAA,IAAjBC,GAAG,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EACrC;;EAEA;;EAEA;EACA;AACF;AACA;AACA;AACA;AACA;EAEE;EACA;EACA;EACA;EACA;;EAEA;EACA;;EAEA,SAASG,SAASA,CAACC,IAAY,EAAE;IAC/B,OAAOC,IAAI,CAACC,GAAG,CAACF,IAAI,GAAG,KAAK,EAAE9B,KAAK,CAACC,OAAO,CAAC;EAC9C;EAEA,OACED,KAAK,CAACG,IAAI,GAAG0B,SAAS,CAACJ,GAAG,CAAC,CAAC,CAAC,CAAC,GAC9BzB,KAAK,CAACI,IAAI,GAAGyB,SAAS,CAACJ,GAAG,CAAC,CAAC,CAAC,CAAC,GAC9BzB,KAAK,CAACK,IAAI,GAAGwB,SAAS,CAACJ,GAAG,CAAC,CAAC,CAAC,CAAC;AAElC;AAEA,OAAO,SAASQ,YAAYA,CAACC,IAAY,EAAEC,GAAW,EAAe;EAAA,IAAbC,MAAM,GAAAV,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACjE;EACA;EACA;;EAEA,MAAMW,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;;EAExB,IACEC,KAAK,CAACJ,IAAI,CAAC,IACXI,KAAK,CAACH,GAAG,CAAC,IACVJ,IAAI,CAACQ,GAAG,CAACL,IAAI,EAAEC,GAAG,CAAC,GAAGE,GAAG,CAAC,CAAC,CAAC,IAC5BN,IAAI,CAACS,GAAG,CAACN,IAAI,EAAEC,GAAG,CAAC,GAAGE,GAAG,CAAC,CAAC,CAAC,EAC5B;IACA,OAAO,GAAG,CAAC,CAAC;IACZ;EACF;;EAEA;;EAEA,IAAII,IAAI,GAAG,GAAG,CAAC,CAAC;EAChB,IAAIC,cAAc,GAAG,GAAG,CAAC,CAAC;EAC1B,IAAIC,MAAM,GAAG,KAAK,CAAC,CAAC;;EAEpB;;EAEA;EACA;EACA;EACA;;EAEA;EACA;EACA;;EAEA;;EAEA;EACAT,IAAI,GACFA,IAAI,GAAGlC,KAAK,CAACU,OAAO,GAChBwB,IAAI,GACJA,IAAI,GAAGH,IAAI,CAACC,GAAG,CAAChC,KAAK,CAACU,OAAO,GAAGwB,IAAI,EAAElC,KAAK,CAACW,OAAO,CAAC;EAC1DwB,GAAG,GACDA,GAAG,GAAGnC,KAAK,CAACU,OAAO,GACfyB,GAAG,GACHA,GAAG,GAAGJ,IAAI,CAACC,GAAG,CAAChC,KAAK,CAACU,OAAO,GAAGyB,GAAG,EAAEnC,KAAK,CAACW,OAAO,CAAC;;EAExD;EACA,IAAIoB,IAAI,CAACa,GAAG,CAACT,GAAG,GAAGD,IAAI,CAAC,GAAGlC,KAAK,CAACgB,SAAS,EAAE;IAC1C,OAAO,GAAG;EACZ;;EAEA;;EAEA,IAAImB,GAAG,GAAGD,IAAI,EAAE;IACd;;IAEA;IACAO,IAAI,GACF,CAACV,IAAI,CAACC,GAAG,CAACG,GAAG,EAAEnC,KAAK,CAACM,MAAM,CAAC,GAAGyB,IAAI,CAACC,GAAG,CAACE,IAAI,EAAElC,KAAK,CAACO,OAAO,CAAC,IAC5DP,KAAK,CAACY,QAAQ;;IAEhB;IACA;IACA8B,cAAc,GAAGD,IAAI,GAAGzC,KAAK,CAACiB,MAAM,GAAG,GAAG,GAAGwB,IAAI,GAAGzC,KAAK,CAACc,WAAW;EACvE,CAAC,MAAM;IACL;IACA;IACA6B,MAAM,GAAG,KAAK;IAEdF,IAAI,GACF,CAACV,IAAI,CAACC,GAAG,CAACG,GAAG,EAAEnC,KAAK,CAACS,KAAK,CAAC,GAAGsB,IAAI,CAACC,GAAG,CAACE,IAAI,EAAElC,KAAK,CAACQ,MAAM,CAAC,IAC1DR,KAAK,CAACa,QAAQ;IAEhB6B,cAAc,GAAGD,IAAI,GAAG,CAACzC,KAAK,CAACiB,MAAM,GAAG,GAAG,GAAGwB,IAAI,GAAGzC,KAAK,CAACe,WAAW;EACxE;;EAEA;EACA;EACA;EACA;EACA;;EAEA,IAAIqB,MAAM,GAAG,CAAC,EAAE;IACd;IACA,OAAOM,cAAc,GAAG,KAAK;EAC/B,CAAC,MAAM,IAAIN,MAAM,IAAI,CAAC,EAAE;IACtB,OACEL,IAAI,CAACc,KAAK,CAACd,IAAI,CAACa,GAAG,CAACF,cAAc,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,GAAGC,MAAM,GAAG,QAAQ;EAE9E,CAAC,MAAM,IAAIG,MAAM,CAACC,SAAS,CAACX,MAAM,CAAC,EAAE;IACnC,OAAO,CAACM,cAAc,GAAG,KAAK,EAAEM,OAAO,CAACZ,MAAM,CAAC;EACjD,CAAC,MAAM;IACL,OAAO,GAAG;EACZ;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASa,UAAUA,CAAA,EAIxB;EAAA,IAHAC,MAAM,GAAAxB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;EAAA,IACvByB,KAAK,GAAAzB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EAAA,IACjBmB,KAAK,GAAAnB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAEZwB,MAAM,CAAC,CAAC,CAAC,GAAGnB,IAAI,CAACS,GAAG,CAACT,IAAI,CAACQ,GAAG,CAACW,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;EACrD,IAAIE,SAAS,GAAG,GAAG,GAAGF,MAAM,CAAC,CAAC,CAAC;EAC/B,IAAIG,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;;EAEjC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;IAC1BD,MAAM,CAACC,CAAC,CAAC,GAAGH,KAAK,CAACG,CAAC,CAAC,GAAGF,SAAS,GAAGF,MAAM,CAACI,CAAC,CAAC,GAAGJ,MAAM,CAAC,CAAC,CAAC;IACxD,IAAIL,KAAK,EAAEQ,MAAM,CAACC,CAAC,CAAC,GAAGvB,IAAI,CAACQ,GAAG,CAACR,IAAI,CAACc,KAAK,CAACQ,MAAM,CAACC,CAAC,CAAW,CAAC,EAAE,GAAG,CAAC;EACvE;EACA,OAAOD,MAAM;AACf"}
|
|
1
|
+
{"version":3,"file":"apca.js","names":["SA98G","mainTRC","mainTRCencode","sRco","sGco","sBco","normBG","normTXT","revTXT","revBG","blkThrs","blkClmp","scaleBoW","scaleWoB","loBoWoffset","loWoBoffset","deltaYmin","loClip","mFactor","mFactInv","mOffsetIn","mExpAdj","mExp","mOffsetOut","sRGBtoY","rgb","arguments","length","undefined","simpleExp","chan","Math","pow","APCAcontrast","txtY","bgY","places","icp","isNaN","min","max","SAPC","outputContrast","polCat","abs","round","Number","isInteger","toFixed","alphaBlend","rgbaFG","rgbBG","compBlend","rgbOut","i"],"sources":["../../../src/util/color/apca.ts"],"sourcesContent":["///////////////////////////////////////////////////////////////////////////////\n/** @preserve\n ///// SAPC APCA - Advanced Perceptual Contrast Algorithm\n ///// Beta 0.1.9 W3 • contrast function only\n ///// DIST: W3 • Revision date: July 3, 2022\n ///// Function to parse color values and determine Lc contrast\n ///// Copyright © 2019-2022 by Andrew Somers. All Rights Reserved.\n ///// LICENSE: W3 LICENSE\n ///// CONTACT: Please use the ISSUES or DISCUSSIONS tab at:\n ///// https://github.com/Myndex/SAPC-APCA/\n /////\n ///////////////////////////////////////////////////////////////////////////////\n /////\n ///// MINIMAL IMPORTS:\n ///// import { APCAcontrast, sRGBtoY, displayP3toY,\n///// calcAPCA, fontLookupAPCA } from 'apca-w3';\n ///// import { colorParsley } from 'colorparsley';\n /////\n ///// FORWARD CONTRAST USAGE:\n ///// Lc = APCAcontrast( sRGBtoY( TEXTcolor ) , sRGBtoY( BACKGNDcolor ) );\n ///// Where the colors are sent as an rgba array [255,255,255,1]\n /////\n ///// Retrieving an array of font sizes for the contrast:\n ///// fontArray = fontLookupAPCA(Lc);\n /////\n ///// Live Demonstrator at https://www.myndex.com/APCA/\n // */\n///////////////////////////////////////////////////////////////////////////////\n\n///// Module Scope Object Containing Constants /////\n///// APCA 0.0.98G - 4g - W3 Compatible Constants\n\n///// 𝒦 SA98G ///////////////////////////////////\nconst SA98G = {\n mainTRC: 2.4, // 2.4 exponent for emulating actual monitor perception\n\n // For reverseAPCA\n get mainTRCencode() {\n return 1 / this.mainTRC;\n },\n\n // sRGB coefficients\n sRco: 0.2126729,\n sGco: 0.7151522,\n sBco: 0.072175,\n\n // G-4g constants for use with 2.4 exponent\n normBG: 0.56,\n normTXT: 0.57,\n revTXT: 0.62,\n revBG: 0.65,\n\n // G-4g Clamps and Scalers\n blkThrs: 0.022,\n blkClmp: 1.414,\n scaleBoW: 1.14,\n scaleWoB: 1.14,\n loBoWoffset: 0.027,\n loWoBoffset: 0.027,\n deltaYmin: 0.0005,\n loClip: 0.1,\n\n ///// MAGIC NUMBERS for UNCLAMP, for use with 0.022 & 1.414 /////\n // Magic Numbers for reverseAPCA\n mFactor: 1.9468554433171,\n get mFactInv() {\n return 1 / this.mFactor;\n },\n mOffsetIn: 0.0387393816571401,\n mExpAdj: 0.283343396420869,\n get mExp() {\n return this.mExpAdj / this.blkClmp;\n },\n mOffsetOut: 0.312865795870758,\n};\n\n//////////////////////////////////////////////////////////////////////////////\n////////// LUMINANCE CONVERTERS |//////////////////////////////////////////\n\n////////// ƒ sRGBtoY() //////////////////////////////////////////////////\nexport function sRGBtoY(rgb = [0, 0, 0]) {\n // send sRGB 8bpc (0xFFFFFF) or string\n\n // NOTE: Currently expects 0-255\n\n ///// APCA 0.0.98G - 4g - W3 Compatible Constants ////////////////////\n /*\n const mainTRC = 2.4; // 2.4 exponent emulates actual monitor perception\n\n const sRco = 0.2126729,\n sGco = 0.7151522,\n sBco = 0.0721750; // sRGB coefficients\n */\n // Future:\n // 0.2126478133913640\t0.7151791475336150\t0.0721730390750208\n // Derived from:\n // xW\tyW\tK\txR\tyR\txG\tyG\txB\tyB\n // 0.312720\t0.329030\t6504\t0.640\t0.330\t0.300\t0.600\t0.150\t0.060\n\n // linearize r, g, or b then apply coefficients\n // and sum then return the resulting luminance\n\n function simpleExp(chan: number) {\n return Math.pow(chan / 255.0, SA98G.mainTRC);\n }\n\n return (\n SA98G.sRco * simpleExp(rgb[0]) +\n SA98G.sGco * simpleExp(rgb[1]) +\n SA98G.sBco * simpleExp(rgb[2])\n );\n}\n\nexport function APCAcontrast(txtY: number, bgY: number, places = -1) {\n // send linear Y (luminance) for text and background.\n // txtY and bgY must be between 0.0-1.0\n // IMPORTANT: Do not swap, polarity is important.\n\n const icp = [0.0, 1.1]; // input range clamp / input error check\n\n if (\n isNaN(txtY) ||\n isNaN(bgY) ||\n Math.min(txtY, bgY) < icp[0] ||\n Math.max(txtY, bgY) > icp[1]\n ) {\n return 0.0; // return zero on error\n // return 'error'; // optional string return for error\n }\n\n ////////// SAPC LOCAL VARS /////////////////////////////////////////\n\n let SAPC = 0.0; // For raw SAPC values\n let outputContrast = 0.0; // For weighted final values\n let polCat = 'BoW'; // Alternate Polarity Indicator. N normal R reverse\n\n // TUTORIAL\n\n // Use Y for text and BG, and soft clamp black,\n // return 0 for very close luminances, determine\n // polarity, and calculate SAPC raw contrast\n // Then scale for easy to remember levels.\n\n // Note that reverse contrast (white text on black)\n // intentionally returns a negative number\n // Proper polarity is important!\n\n ////////// BLACK SOFT CLAMP ////////////////////////////////////////\n\n // Soft clamps Y for either color if it is near black.\n txtY =\n txtY > SA98G.blkThrs\n ? txtY\n : txtY + Math.pow(SA98G.blkThrs - txtY, SA98G.blkClmp);\n bgY =\n bgY > SA98G.blkThrs\n ? bgY\n : bgY + Math.pow(SA98G.blkThrs - bgY, SA98G.blkClmp);\n\n ///// Return 0 Early for extremely low ∆Y\n if (Math.abs(bgY - txtY) < SA98G.deltaYmin) {\n return 0.0;\n }\n\n ////////// APCA/SAPC CONTRAST - LOW CLIP (W3 LICENSE) ///////////////\n\n if (bgY > txtY) {\n // For normal polarity, black text on white (BoW)\n\n // Calculate the SAPC contrast value and scale\n SAPC =\n (Math.pow(bgY, SA98G.normBG) - Math.pow(txtY, SA98G.normTXT)) *\n SA98G.scaleBoW;\n\n // Low Contrast smooth rollout to prevent polarity reversal\n // and also a low-clip for very low contrasts\n outputContrast = SAPC < SA98G.loClip ? 0.0 : SAPC - SA98G.loBoWoffset;\n } else {\n // For reverse polarity, light text on dark (WoB)\n // WoB should always return negative value.\n polCat = 'WoB';\n\n SAPC =\n (Math.pow(bgY, SA98G.revBG) - Math.pow(txtY, SA98G.revTXT)) *\n SA98G.scaleWoB;\n\n outputContrast = SAPC > -SA98G.loClip ? 0.0 : SAPC + SA98G.loWoBoffset;\n }\n\n // return Lc (lightness contrast) as a signed numeric value\n // Round to the nearest whole number as string is optional.\n // Rounded can be a signed INT as output will be within ± 127\n // places = -1 returns signed float, 1 or more set that many places\n // 0 returns rounded string, uses BoW or WoB instead of minus sign\n\n if (places < 0) {\n // Default (-1) number out, all others are strings\n return outputContrast * 100.0;\n // biome-ignore lint/suspicious/noDoubleEquals: <explanation>\n } else if (places == 0) {\n return (\n Math.round(Math.abs(outputContrast) * 100.0) + '<sub>' + polCat + '</sub>'\n );\n } else if (Number.isInteger(places)) {\n return (outputContrast * 100.0).toFixed(places);\n } else {\n return 0.0;\n }\n}\n\n// send rgba array for text/icon, rgb for background.\n// Only foreground allows alpha of 0.0 to 1.0\n// This blends using gamma encoded space (standard)\n// rounded 0-255 or set round=false for number 0.0-255.0\nexport function alphaBlend(\n rgbaFG = [0, 0, 0, 1.0],\n rgbBG = [0, 0, 0],\n round = true,\n) {\n rgbaFG[3] = Math.max(Math.min(rgbaFG[3], 1.0), 0.0); // clamp alpha 0-1\n let compBlend = 1.0 - rgbaFG[3];\n let rgbOut = [0, 0, 0, 1, true]; // or just use rgbBG to retain other elements?\n\n for (let i = 0; i < 3; i++) {\n rgbOut[i] = rgbBG[i] * compBlend + rgbaFG[i] * rgbaFG[3];\n if (round) rgbOut[i] = Math.min(Math.round(rgbOut[i] as number), 255);\n }\n return rgbOut;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","names":["RGBA_REGEX","HEX_COLOR_REGEX","SRGB_TO_XYZ","XYZ_TO_SRGB","WHITE_POINT_D65"],"sources":["../../../src/util/color/const.ts"],"sourcesContent":["export const RGBA_REGEX = /rgb(a?)\\((?<v>.*)\\)/;\
|
|
1
|
+
{"version":3,"file":"const.js","names":["RGBA_REGEX","HEX_COLOR_REGEX","SRGB_TO_XYZ","XYZ_TO_SRGB","WHITE_POINT_D65"],"sources":["../../../src/util/color/const.ts"],"sourcesContent":["export const RGBA_REGEX = /rgb(a?)\\((?<v>.*)\\)/;\nexport const HEX_COLOR_REGEX =\n /^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/;\n\nexport const SRGB_TO_XYZ = [\n [0.41233895, 0.35762064, 0.18051042],\n [0.2126, 0.7152, 0.0722],\n [0.01932141, 0.11916382, 0.95034478],\n];\n\nexport const XYZ_TO_SRGB = [\n [3.2413774792388685, -1.5376652402851851, -0.49885366846268053],\n [-0.9691452513005321, 1.8758853451067872, 0.04156585616912061],\n [0.05562093689691305, -0.20395524564742123, 1.0571799111220335],\n];\n\nexport const WHITE_POINT_D65 = [95.047, 100.0, 108.883];\n"],"mappings":"AAAA,OAAO,MAAMA,UAAU,GAAG,qBAAqB;AAC/C,OAAO,MAAMC,eAAe,GAC1B,mDAAmD;AAErD,OAAO,MAAMC,WAAW,GAAG,CACzB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,EACpC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CACrC;AAED,OAAO,MAAMC,WAAW,GAAG,CACzB,CAAC,kBAAkB,EAAE,CAAC,kBAAkB,EAAE,CAAC,mBAAmB,CAAC,EAC/D,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,EAC9D,CAAC,mBAAmB,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAChE;AAED,OAAO,MAAMC,eAAe,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contrast.js","names":["lstarFromY","yFromLstar","clampDouble","Contrast","ratioOfTones","toneA","toneB","ratioOfYs","y1","y2","lighter","darker","tone","ratio","darkY","lightY","realContrast","delta","Math","abs","returnValue","lighterUnsafe","lighterSafe","darkerUnsafe","darkerSafe"],"sources":["../../../../src/util/color/contrast/contrast.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2022 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 { lstarFromY, yFromLstar } from '../conversion';\nimport { clampDouble } from '../utils/math-utils';\n\n/**\n * Utility methods for calculating contrast given two colors, or calculating a\n * color given one color and a contrast ratio.\n *\n * Contrast ratio is calculated using XYZ's Y. When linearized to match human\n * perception, Y becomes HCT's tone and L*a*b*'s' L*. Informally, this is the\n * lightness of a color.\n *\n * Methods refer to tone, T in the the HCT color space.\n * Tone is equivalent to L* in the L*a*b* color space, or L in the LCH color\n * space.\n */\nexport class Contrast {\n /**\n * Returns a contrast ratio, which ranges from 1 to 21.\n *\n * @param toneA Tone between 0 and 100. Values outside will be clamped.\n * @param toneB Tone between 0 and 100. Values outside will be clamped.\n */\n static ratioOfTones(toneA: number, toneB: number): number {\n toneA = clampDouble(0.0, 100.0, toneA);\n toneB = clampDouble(0.0, 100.0, toneB);\n return Contrast.ratioOfYs(yFromLstar(toneA), yFromLstar(toneB));\n }\n\n static ratioOfYs(y1: number, y2: number): number {\n const lighter = y1 > y2 ? y1 : y2;\n const darker = lighter === y2 ? y1 : y2;\n return (lighter + 5.0) / (darker + 5.0);\n }\n\n /**\n * Returns a tone >= tone parameter that ensures ratio parameter.\n * Return value is between 0 and 100.\n * Returns -1 if ratio cannot be achieved with tone parameter.\n *\n * @param tone Tone return value must contrast with.\n * Range is 0 to 100. Invalid values will result in -1 being returned.\n * @param ratio Contrast ratio of return value and tone.\n * Range is 1 to 21, invalid values have undefined behavior.\n */\n static lighter(tone: number, ratio: number): number {\n if (tone < 0.0 || tone > 100.0) {\n return -1.0;\n }\n\n const darkY = yFromLstar(tone);\n const lightY = ratio * (darkY + 5.0) - 5.0;\n const realContrast = Contrast.ratioOfYs(lightY, darkY);\n const delta = Math.abs(realContrast - ratio);\n if (realContrast < ratio && delta > 0.04) {\n return -1;\n }\n\n // Ensure gamut mapping, which requires a 'range' on tone, will still result\n // the correct ratio by darkening slightly.\n const returnValue = lstarFromY(lightY) + 0.4;\n if (returnValue < 0 || returnValue > 100) {\n return -1;\n }\n return returnValue;\n }\n\n /**\n * Returns a tone <= tone parameter that ensures ratio parameter.\n * Return value is between 0 and 100.\n * Returns -1 if ratio cannot be achieved with tone parameter.\n *\n * @param tone Tone return value must contrast with.\n * Range is 0 to 100. Invalid values will result in -1 being returned.\n * @param ratio Contrast ratio of return value and tone.\n * Range is 1 to 21, invalid values have undefined behavior.\n */\n static darker(tone: number, ratio: number): number {\n if (tone < 0.0 || tone > 100.0) {\n return -1.0;\n }\n\n const lightY = yFromLstar(tone);\n const darkY = (lightY + 5.0) / ratio - 5.0;\n const realContrast = Contrast.ratioOfYs(lightY, darkY);\n\n const delta = Math.abs(realContrast - ratio);\n if (realContrast < ratio && delta > 0.04) {\n return -1;\n }\n\n // Ensure gamut mapping, which requires a 'range' on tone, will still result\n // the correct ratio by darkening slightly.\n const returnValue = lstarFromY(darkY) - 0.4;\n if (returnValue < 0 || returnValue > 100) {\n return -1;\n }\n return returnValue;\n }\n\n /**\n * Returns a tone >= tone parameter that ensures ratio parameter.\n * Return value is between 0 and 100.\n * Returns 100 if ratio cannot be achieved with tone parameter.\n *\n * This method is unsafe because the returned value is guaranteed to be in\n * bounds for tone, i.e. between 0 and 100. However, that value may not reach\n * the ratio with tone. For example, there is no color lighter than T100.\n *\n * @param tone Tone return value must contrast with.\n * Range is 0 to 100. Invalid values will result in 100 being returned.\n * @param ratio Desired contrast ratio of return value and tone parameter.\n * Range is 1 to 21, invalid values have undefined behavior.\n */\n static lighterUnsafe(tone: number, ratio: number): number {\n const lighterSafe = Contrast.lighter(tone, ratio);\n return lighterSafe < 0.0 ? 100.0 : lighterSafe;\n }\n\n /**\n * Returns a tone >= tone parameter that ensures ratio parameter.\n * Return value is between 0 and 100.\n * Returns 100 if ratio cannot be achieved with tone parameter.\n *\n * This method is unsafe because the returned value is guaranteed to be in\n * bounds for tone, i.e. between 0 and 100. However, that value may not reach\n * the [ratio with [tone]. For example, there is no color darker than T0.\n *\n * @param tone Tone return value must contrast with.\n * Range is 0 to 100. Invalid values will result in 0 being returned.\n * @param ratio Desired contrast ratio of return value and tone parameter.\n * Range is 1 to 21, invalid values have undefined behavior.\n */\n static darkerUnsafe(tone: number, ratio: number): number {\n const darkerSafe = Contrast.darker(tone, ratio);\n return darkerSafe < 0.0 ? 0.0 : darkerSafe;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contrast.js","names":["lstarFromY","yFromLstar","clampDouble","Contrast","ratioOfTones","toneA","toneB","ratioOfYs","y1","y2","lighter","darker","tone","ratio","darkY","lightY","realContrast","delta","Math","abs","returnValue","lighterUnsafe","lighterSafe","darkerUnsafe","darkerSafe"],"sources":["../../../../src/util/color/contrast/contrast.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2022 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 { lstarFromY, yFromLstar } from '../conversion';\nimport { clampDouble } from '../utils/math-utils';\n\n/**\n * Utility methods for calculating contrast given two colors, or calculating a\n * color given one color and a contrast ratio.\n *\n * Contrast ratio is calculated using XYZ's Y. When linearized to match human\n * perception, Y becomes HCT's tone and L*a*b*'s' L*. Informally, this is the\n * lightness of a color.\n *\n * Methods refer to tone, T in the the HCT color space.\n * Tone is equivalent to L* in the L*a*b* color space, or L in the LCH color\n * space.\n */\nexport class Contrast {\n /**\n * Returns a contrast ratio, which ranges from 1 to 21.\n *\n * @param toneA Tone between 0 and 100. Values outside will be clamped.\n * @param toneB Tone between 0 and 100. Values outside will be clamped.\n */\n static ratioOfTones(toneA: number, toneB: number): number {\n toneA = clampDouble(0.0, 100.0, toneA);\n toneB = clampDouble(0.0, 100.0, toneB);\n return Contrast.ratioOfYs(yFromLstar(toneA), yFromLstar(toneB));\n }\n\n static ratioOfYs(y1: number, y2: number): number {\n const lighter = y1 > y2 ? y1 : y2;\n const darker = lighter === y2 ? y1 : y2;\n return (lighter + 5.0) / (darker + 5.0);\n }\n\n /**\n * Returns a tone >= tone parameter that ensures ratio parameter.\n * Return value is between 0 and 100.\n * Returns -1 if ratio cannot be achieved with tone parameter.\n *\n * @param tone Tone return value must contrast with.\n * Range is 0 to 100. Invalid values will result in -1 being returned.\n * @param ratio Contrast ratio of return value and tone.\n * Range is 1 to 21, invalid values have undefined behavior.\n */\n static lighter(tone: number, ratio: number): number {\n if (tone < 0.0 || tone > 100.0) {\n return -1.0;\n }\n\n const darkY = yFromLstar(tone);\n const lightY = ratio * (darkY + 5.0) - 5.0;\n const realContrast = Contrast.ratioOfYs(lightY, darkY);\n const delta = Math.abs(realContrast - ratio);\n if (realContrast < ratio && delta > 0.04) {\n return -1;\n }\n\n // Ensure gamut mapping, which requires a 'range' on tone, will still result\n // the correct ratio by darkening slightly.\n const returnValue = lstarFromY(lightY) + 0.4;\n if (returnValue < 0 || returnValue > 100) {\n return -1;\n }\n return returnValue;\n }\n\n /**\n * Returns a tone <= tone parameter that ensures ratio parameter.\n * Return value is between 0 and 100.\n * Returns -1 if ratio cannot be achieved with tone parameter.\n *\n * @param tone Tone return value must contrast with.\n * Range is 0 to 100. Invalid values will result in -1 being returned.\n * @param ratio Contrast ratio of return value and tone.\n * Range is 1 to 21, invalid values have undefined behavior.\n */\n static darker(tone: number, ratio: number): number {\n if (tone < 0.0 || tone > 100.0) {\n return -1.0;\n }\n\n const lightY = yFromLstar(tone);\n const darkY = (lightY + 5.0) / ratio - 5.0;\n const realContrast = Contrast.ratioOfYs(lightY, darkY);\n\n const delta = Math.abs(realContrast - ratio);\n if (realContrast < ratio && delta > 0.04) {\n return -1;\n }\n\n // Ensure gamut mapping, which requires a 'range' on tone, will still result\n // the correct ratio by darkening slightly.\n const returnValue = lstarFromY(darkY) - 0.4;\n if (returnValue < 0 || returnValue > 100) {\n return -1;\n }\n return returnValue;\n }\n\n /**\n * Returns a tone >= tone parameter that ensures ratio parameter.\n * Return value is between 0 and 100.\n * Returns 100 if ratio cannot be achieved with tone parameter.\n *\n * This method is unsafe because the returned value is guaranteed to be in\n * bounds for tone, i.e. between 0 and 100. However, that value may not reach\n * the ratio with tone. For example, there is no color lighter than T100.\n *\n * @param tone Tone return value must contrast with.\n * Range is 0 to 100. Invalid values will result in 100 being returned.\n * @param ratio Desired contrast ratio of return value and tone parameter.\n * Range is 1 to 21, invalid values have undefined behavior.\n */\n static lighterUnsafe(tone: number, ratio: number): number {\n const lighterSafe = Contrast.lighter(tone, ratio);\n return lighterSafe < 0.0 ? 100.0 : lighterSafe;\n }\n\n /**\n * Returns a tone >= tone parameter that ensures ratio parameter.\n * Return value is between 0 and 100.\n * Returns 100 if ratio cannot be achieved with tone parameter.\n *\n * This method is unsafe because the returned value is guaranteed to be in\n * bounds for tone, i.e. between 0 and 100. However, that value may not reach\n * the [ratio with [tone]. For example, there is no color darker than T0.\n *\n * @param tone Tone return value must contrast with.\n * Range is 0 to 100. Invalid values will result in 0 being returned.\n * @param ratio Desired contrast ratio of return value and tone parameter.\n * Range is 1 to 21, invalid values have undefined behavior.\n */\n static darkerUnsafe(tone: number, ratio: number): number {\n const darkerSafe = Contrast.darker(tone, ratio);\n return darkerSafe < 0.0 ? 0.0 : darkerSafe;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -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":"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,OAAQ,IAAGF,GAAI,EAAC;AAClB;AAEA,OAAO,SAASG,WAAWA,CAACC,IAAY,EAAE;EACxC,OAAQ,IAAG,CAACA,IAAI,GAAG,QAAQ,EAAEH,QAAQ,CAAC,EAAE,CAAE,EAAC;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"}
|
|
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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","ignoreList":[]}
|