43 lines
1.6 KiB
Text
43 lines
1.6 KiB
Text
import "./param-blend" as paramBlend
|
|
|
|
export : define [build parametersData styles blendParams] : begin
|
|
local param {.}
|
|
|
|
define [introStyle style] : begin
|
|
local hive parametersData.(style)
|
|
if (!hive) : return nothing
|
|
|
|
if hive.inherits : foreach [h : items-of hive.inherits] : introStyle h
|
|
|
|
foreach [k : items-of : Object.keys hive] : piecewise
|
|
(k === "multiplies") : foreach [k : items-of : Object.keys hive.multiplies] : begin
|
|
set param.(k) : param.(k) * hive.multiplies.(k)
|
|
(k === "adds") : foreach [k : items-of : Object.keys hive.adds] : begin
|
|
set param.(k) : param.(k) + hive.adds.(k)
|
|
(k === "appends") : foreach [k : items-of : Object.keys hive.appends] : begin
|
|
set param.(k) : (param.(k) || {}).concat(hive.appends.(k))
|
|
true : set param.(k) hive.(k)
|
|
|
|
paramBlend style hive blendParams param
|
|
|
|
foreach [style : items-of styles] : introStyle style
|
|
return param
|
|
|
|
extern isFinite
|
|
define [numericConfigExists x] : [isFinite x] && (x != null)
|
|
|
|
export : define [applyMetricOverride para mo] : begin
|
|
if [numericConfigExists mo.leading]
|
|
set para.leading mo.leading
|
|
if [numericConfigExists mo.winMetricAscenderPad]
|
|
set para.winMetricAscenderPad mo.winMetricAscenderPad
|
|
if [numericConfigExists mo.winMetricDescenderPad]
|
|
set para.winMetricDescenderPad mo.winMetricDescenderPad
|
|
if [numericConfigExists mo.powerlineScaleY]
|
|
set para.powerlineScaleY mo.powerlineScaleY
|
|
if [numericConfigExists mo.powerlineScaleX]
|
|
set para.powerlineScaleX mo.powerlineScaleX
|
|
if [numericConfigExists mo.powerlineShiftY]
|
|
set para.powerlineShiftY mo.powerlineShiftY
|
|
if [numericConfigExists mo.powerlineShiftX]
|
|
set para.powerlineShiftX mo.powerlineShiftX
|