MCPcopy Index your code
hub / github.com/NativeScript/NativeScript / parseLinearGradient

Function parseLinearGradient

packages/core/css/parser.ts:510–547  ·  view source on GitHub ↗
(text: string, start = 0)

Source from the content-addressed store, hash-verified

508
509const linearGradientStartRegEx = /\s*linear-gradient\s*/gy;
510export function parseLinearGradient(text: string, start = 0): Parsed<LinearGradient> {
511 linearGradientStartRegEx.lastIndex = start;
512 const lgs = linearGradientStartRegEx.exec(text);
513 if (!lgs) {
514 return null;
515 }
516 let end = linearGradientStartRegEx.lastIndex;
517
518 let angle = Math.PI;
519 const colors: ColorStop[] = [];
520
521 const parsedArgs = parseArgumentsList<Angle | ColorStop>(text, end, (text, start, index) => {
522 if (index === 0) {
523 // First arg can be gradient direction
524 const angleArg = parseAngle(text, start) || parseDirection(text, start);
525 if (angleArg) {
526 angle = angleArg.value;
527
528 return angleArg;
529 }
530 }
531
532 const colorStop = parseColorStop(text, start);
533 if (colorStop) {
534 colors.push(colorStop.value);
535
536 return colorStop;
537 }
538
539 return null;
540 });
541 if (!parsedArgs) {
542 return null;
543 }
544 end = parsedArgs.end;
545
546 return { start, end, value: { angle, colors } };
547}
548
549const slashRegEx = /\s*(\/)\s*/gy;
550function parseSlash(text: string, start: number): Parsed<'/'> {

Callers 3

_updateShadeCoverMethod · 0.90
_updateShadeCoverMethod · 0.90
parseBackgroundFunction · 0.85

Calls 5

parseArgumentsListFunction · 0.85
parseAngleFunction · 0.85
parseDirectionFunction · 0.85
parseColorStopFunction · 0.85
pushMethod · 0.45

Tested by

no test coverage detected