11cb0ef41Sopenharmony_ciconst CHAR_THRESHOLD = 68; // Around 68 characters, we have to take into 21cb0ef41Sopenharmony_ci// account the left column that appears on screen 31cb0ef41Sopenharmony_ci// wider than 1024px. 41cb0ef41Sopenharmony_ci 51cb0ef41Sopenharmony_ciconst ESTIMATED_CHAR_WIDTH = 8; // If the root element font-size is 16px (default value), 1ch is 7.8025px. 61cb0ef41Sopenharmony_ciconst TOGGLE_WIDTH = 142; // https://github.com/nodejs/node/blob/dbd938549b16718f2e4cc2809746b8c44a191b1d/doc/api_assets/style.css#L954 71cb0ef41Sopenharmony_ci 81cb0ef41Sopenharmony_ciconst PRE_MARGIN_LEFT = 16; // https://github.com/nodejs/node/blob/dbd938549b16718f2e4cc2809746b8c44a191b1d/doc/api_assets/style.css#L516 91cb0ef41Sopenharmony_ciconst PRE_MARGIN_RIGHT = 16; // https://github.com/nodejs/node/blob/dbd938549b16718f2e4cc2809746b8c44a191b1d/doc/api_assets/style.css#L516 101cb0ef41Sopenharmony_ciconst PRE_PADDING_LEFT = 16; // https://github.com/nodejs/node/blob/dbd938549b16718f2e4cc2809746b8c44a191b1d/doc/api_assets/style.css#L513 111cb0ef41Sopenharmony_ciconst PRE_PADDING_RIGHT = 16; // https://github.com/nodejs/node/blob/dbd938549b16718f2e4cc2809746b8c44a191b1d/doc/api_assets/style.css#L513 121cb0ef41Sopenharmony_ci 131cb0ef41Sopenharmony_ci 141cb0ef41Sopenharmony_ciconst COLUMN_RIGHT_MARGIN_LEFT_LARGE_SCREEN = 234; // https://github.com/nodejs/node/blob/dbd938549b16718f2e4cc2809746b8c44a191b1d/doc/api_assets/style.css#L653 151cb0ef41Sopenharmony_ciconst COLUMN_RIGHT_MARGIN_LEFT_SMALL_SCREEN = 0; // https://github.com/nodejs/node/blob/dbd938549b16718f2e4cc2809746b8c44a191b1d/doc/api_assets/style.css#L906 161cb0ef41Sopenharmony_ciconst COLUMN_RIGHT_MARGIN_RIGHT_LARGE_SCREEN = 0; 171cb0ef41Sopenharmony_ciconst COLUMN_RIGHT_MARGIN_RIGHT_SMALL_SCREEN = 0; 181cb0ef41Sopenharmony_ciconst COLUMN_RIGHT_PADDING_LEFT_LARGE_SCREEN = 24; // https://github.com/nodejs/node/blob/dbd938549b16718f2e4cc2809746b8c44a191b1d/doc/api_assets/style.css#L655 191cb0ef41Sopenharmony_ciconst COLUMN_RIGHT_PADDING_LEFT_SMALL_SCREEN = 8; // https://github.com/nodejs/node/blob/dbd938549b16718f2e4cc2809746b8c44a191b1d/doc/api_assets/style.css#L907 201cb0ef41Sopenharmony_ciconst COLUMN_RIGHT_PADDING_RIGHT_LARGE_SCREEN = 32; // https://github.com/nodejs/node/blob/dbd938549b16718f2e4cc2809746b8c44a191b1d/doc/api_assets/style.css#L654 211cb0ef41Sopenharmony_ciconst COLUMN_RIGHT_PADDING_RIGHT_SMALL_SCREEN = 8; // https://github.com/nodejs/node/blob/dbd938549b16718f2e4cc2809746b8c44a191b1d/doc/api_assets/style.css#L908 221cb0ef41Sopenharmony_ci 231cb0ef41Sopenharmony_ciconst getMarginLeft = (charCount) => 241cb0ef41Sopenharmony_ci (charCount > CHAR_THRESHOLD ? 251cb0ef41Sopenharmony_ci COLUMN_RIGHT_MARGIN_LEFT_LARGE_SCREEN : 261cb0ef41Sopenharmony_ci COLUMN_RIGHT_MARGIN_LEFT_SMALL_SCREEN) + PRE_MARGIN_LEFT; 271cb0ef41Sopenharmony_ciconst getPaddingLeft = (charCount) => 281cb0ef41Sopenharmony_ci (charCount > CHAR_THRESHOLD ? 291cb0ef41Sopenharmony_ci COLUMN_RIGHT_PADDING_LEFT_LARGE_SCREEN : 301cb0ef41Sopenharmony_ci COLUMN_RIGHT_PADDING_LEFT_SMALL_SCREEN) + PRE_PADDING_LEFT; 311cb0ef41Sopenharmony_ciconst getPaddingRight = (charCount) => 321cb0ef41Sopenharmony_ci (charCount > CHAR_THRESHOLD ? 331cb0ef41Sopenharmony_ci COLUMN_RIGHT_PADDING_RIGHT_LARGE_SCREEN : 341cb0ef41Sopenharmony_ci COLUMN_RIGHT_PADDING_RIGHT_SMALL_SCREEN) + PRE_PADDING_RIGHT; 351cb0ef41Sopenharmony_ciconst getMarginRight = (charCount) => 361cb0ef41Sopenharmony_ci (charCount > CHAR_THRESHOLD ? 371cb0ef41Sopenharmony_ci COLUMN_RIGHT_MARGIN_RIGHT_LARGE_SCREEN : 381cb0ef41Sopenharmony_ci COLUMN_RIGHT_MARGIN_RIGHT_SMALL_SCREEN) + PRE_MARGIN_RIGHT; 391cb0ef41Sopenharmony_ci 401cb0ef41Sopenharmony_ci 411cb0ef41Sopenharmony_ciexport default function buildCSSForFlavoredJS(dynamicSizes) { 421cb0ef41Sopenharmony_ci if (dynamicSizes == null || dynamicSizes.length === 0) return ''; 431cb0ef41Sopenharmony_ci 441cb0ef41Sopenharmony_ci return `<style>${Array.from(dynamicSizes, (charCount) => 451cb0ef41Sopenharmony_ci `@media(max-width:${getMarginLeft(charCount) + getPaddingLeft(charCount) + 461cb0ef41Sopenharmony_ci charCount * ESTIMATED_CHAR_WIDTH + TOGGLE_WIDTH + 471cb0ef41Sopenharmony_ci getPaddingRight(charCount) + getMarginRight(charCount)}px){` + 481cb0ef41Sopenharmony_ci `.with-${charCount}-chars>.js-flavor-selector{` + 491cb0ef41Sopenharmony_ci 'float:none;' + 501cb0ef41Sopenharmony_ci 'margin:0 0 1em auto;' + 511cb0ef41Sopenharmony_ci '}' + 521cb0ef41Sopenharmony_ci '}').join('')}</style>`; 531cb0ef41Sopenharmony_ci} 54