You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
32 KiB
1 line
32 KiB
<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="798px" preserveAspectRatio="none" style="width:1743px;height:798px;background:#FFFFFF;" version="1.1" viewBox="0 0 1743 798" width="1743px" zoomAndPan="magnify"><defs/><g><!--class Validator--><g id="elem_Validator"><rect codeLine="2" fill="#F1F1F1" height="85.2422" id="Validator" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="272" x="362" y="394"/><ellipse cx="465.75" cy="410" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M467.9375,411.7656 L463.7969,411.7656 L463.375,412.7969 L463.7969,412.7969 Q464.4063,412.7969 464.6719,413.0313 Q464.9375,413.2656 464.9375,413.6563 Q464.9375,414.0313 464.6719,414.2656 Q464.4063,414.5 463.7969,414.5 L461.5,414.5 Q460.8906,414.5 460.6406,414.2656 Q460.375,414.0313 460.375,413.6406 Q460.375,413.2656 460.6563,413.0313 Q460.9219,412.7813 461.5469,412.7969 L464.2188,406.1406 L463.1094,406.1406 Q462.5,406.1406 462.2344,405.9063 Q461.9688,405.6719 461.9688,405.2813 Q461.9688,404.9063 462.2344,404.6719 Q462.5,404.4375 463.1094,404.4375 L466.7813,404.4375 L470.1719,412.7969 Q470.7656,412.7969 470.9531,412.9375 Q471.3438,413.2031 471.3438,413.6563 Q471.3438,414.0313 471.0781,414.2656 Q470.8281,414.5 470.2188,414.5 L467.9219,414.5 Q467.3125,414.5 467.0469,414.2656 Q466.7813,414.0313 466.7813,413.6406 Q466.7813,413.2656 467.0469,413.0313 Q467.3125,412.7969 467.9219,412.7969 L468.3438,412.7969 L467.9375,411.7656 Z M467.2188,410.0625 L465.8594,406.6875 L464.4844,410.0625 L467.2188,410.0625 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="56" x="486.25" y="415.7969">Validator</text><line style="stroke:#181818;stroke-width:0.5;" x1="363" x2="633" y1="426" y2="426"/><line style="stroke:#181818;stroke-width:0.5;" x1="363" x2="633" y1="434" y2="434"/><ellipse cx="373" cy="448.8105" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="246" x="382" y="453.1074">validate(name: string, val: mixed): array</text><ellipse cx="373" cy="467.4316" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="199" x="382" y="471.7285">then(other: Validator): Validator</text></g><!--class ComposedValidator--><g id="elem_ComposedValidator"><rect codeLine="7" fill="#F1F1F1" height="85.2422" id="ComposedValidator" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="297" x="349.5" y="651"/><ellipse cx="431.75" cy="667" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M434.5156,662.875 Q434.6719,662.6563 434.8594,662.5469 Q435.0469,662.4375 435.2656,662.4375 Q435.6406,662.4375 435.875,662.7031 Q436.1094,662.9531 436.1094,663.5625 L436.1094,665.0156 Q436.1094,665.625 435.875,665.8906 Q435.6406,666.1563 435.2656,666.1563 Q434.9219,666.1563 434.7188,665.9531 Q434.5156,665.7656 434.4063,665.25 Q434.3594,664.8906 434.1719,664.7031 Q433.8438,664.3281 433.2344,664.1094 Q432.625,663.8906 432,663.8906 Q431.2344,663.8906 430.5938,664.2188 Q429.9688,664.5469 429.4688,665.2969 Q428.9844,666.0469 428.9844,667.0781 L428.9844,668.1719 Q428.9844,669.4063 429.875,670.2344 Q430.7656,671.0469 432.3594,671.0469 Q433.2969,671.0469 433.9531,670.7969 Q434.3438,670.6406 434.7656,670.2031 Q435.0313,669.9375 435.1719,669.8594 Q435.3281,669.7813 435.5313,669.7813 Q435.8594,669.7813 436.1094,670.0469 Q436.375,670.2969 436.375,670.6406 Q436.375,670.9844 436.0313,671.3906 Q435.5313,671.9688 434.7344,672.2969 Q433.6563,672.75 432.3594,672.75 Q430.8438,672.75 429.6406,672.125 Q428.6563,671.625 427.9688,670.5625 Q427.2813,669.4844 427.2813,668.2031 L427.2813,667.0469 Q427.2813,665.7188 427.8906,664.5781 Q428.5156,663.4219 429.6094,662.8125 Q430.7031,662.1875 431.9375,662.1875 Q432.6719,662.1875 433.3125,662.3594 Q433.9688,662.5156 434.5156,662.875 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="124" x="452.25" y="672.7969">ComposedValidator</text><line style="stroke:#181818;stroke-width:0.5;" x1="350.5" x2="645.5" y1="683" y2="683"/><line style="stroke:#181818;stroke-width:0.5;" x1="350.5" x2="645.5" y1="691" y2="691"/><ellipse cx="360.5" cy="705.8105" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="271" x="369.5" y="710.1074">__construct(first: Validator, then: Validator)</text><ellipse cx="360.5" cy="724.4316" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="248" x="369.5" y="728.7285">validate(name: string, val: mixed): array</text></g><!--class SimpleFunctionValidator--><g id="elem_SimpleFunctionValidator"><rect codeLine="17" fill="#F1F1F1" height="122.4844" id="SimpleFunctionValidator" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="375" x="681.5" y="632.5"/><ellipse cx="788.25" cy="648.5" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M791.0156,644.375 Q791.1719,644.1563 791.3594,644.0469 Q791.5469,643.9375 791.7656,643.9375 Q792.1406,643.9375 792.375,644.2031 Q792.6094,644.4531 792.6094,645.0625 L792.6094,646.5156 Q792.6094,647.125 792.375,647.3906 Q792.1406,647.6563 791.7656,647.6563 Q791.4219,647.6563 791.2188,647.4531 Q791.0156,647.2656 790.9063,646.75 Q790.8594,646.3906 790.6719,646.2031 Q790.3438,645.8281 789.7344,645.6094 Q789.125,645.3906 788.5,645.3906 Q787.7344,645.3906 787.0938,645.7188 Q786.4688,646.0469 785.9688,646.7969 Q785.4844,647.5469 785.4844,648.5781 L785.4844,649.6719 Q785.4844,650.9063 786.375,651.7344 Q787.2656,652.5469 788.8594,652.5469 Q789.7969,652.5469 790.4531,652.2969 Q790.8438,652.1406 791.2656,651.7031 Q791.5313,651.4375 791.6719,651.3594 Q791.8281,651.2813 792.0313,651.2813 Q792.3594,651.2813 792.6094,651.5469 Q792.875,651.7969 792.875,652.1406 Q792.875,652.4844 792.5313,652.8906 Q792.0313,653.4688 791.2344,653.7969 Q790.1563,654.25 788.8594,654.25 Q787.3438,654.25 786.1406,653.625 Q785.1563,653.125 784.4688,652.0625 Q783.7813,650.9844 783.7813,649.7031 L783.7813,648.5469 Q783.7813,647.2188 784.3906,646.0781 Q785.0156,644.9219 786.1094,644.3125 Q787.2031,643.6875 788.4375,643.6875 Q789.1719,643.6875 789.8125,643.8594 Q790.4688,644.0156 791.0156,644.375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="153" x="808.75" y="654.2969">SimpleFunctionValidator</text><line style="stroke:#181818;stroke-width:0.5;" x1="682.5" x2="1055.5" y1="664.5" y2="664.5"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="689.5" y="676.3105"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115" x="701.5" y="683.6074">predicate: callable</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="689.5" y="694.9316"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="138" x="701.5" y="702.2285">error_factory: callable</text><line style="stroke:#181818;stroke-width:0.5;" x1="682.5" x2="1055.5" y1="709.7422" y2="709.7422"/><ellipse cx="692.5" cy="724.5527" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="349" x="701.5" y="728.8496">__construct(predicate: callable, errorsFactory: callable)</text><ellipse cx="692.5" cy="743.1738" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="248" x="701.5" y="747.4707">validate(name: string, val: mixed): array</text></g><!--class ValidationFail--><g id="elem_ValidationFail"><rect codeLine="25" fill="#F1F1F1" height="196.9688" id="ValidationFail" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="307" x="1411.5" y="338"/><ellipse cx="1518.25" cy="354" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1521.0156,349.875 Q1521.1719,349.6563 1521.3594,349.5469 Q1521.5469,349.4375 1521.7656,349.4375 Q1522.1406,349.4375 1522.375,349.7031 Q1522.6094,349.9531 1522.6094,350.5625 L1522.6094,352.0156 Q1522.6094,352.625 1522.375,352.8906 Q1522.1406,353.1563 1521.7656,353.1563 Q1521.4219,353.1563 1521.2188,352.9531 Q1521.0156,352.7656 1520.9063,352.25 Q1520.8594,351.8906 1520.6719,351.7031 Q1520.3438,351.3281 1519.7344,351.1094 Q1519.125,350.8906 1518.5,350.8906 Q1517.7344,350.8906 1517.0938,351.2188 Q1516.4688,351.5469 1515.9688,352.2969 Q1515.4844,353.0469 1515.4844,354.0781 L1515.4844,355.1719 Q1515.4844,356.4063 1516.375,357.2344 Q1517.2656,358.0469 1518.8594,358.0469 Q1519.7969,358.0469 1520.4531,357.7969 Q1520.8438,357.6406 1521.2656,357.2031 Q1521.5313,356.9375 1521.6719,356.8594 Q1521.8281,356.7813 1522.0313,356.7813 Q1522.3594,356.7813 1522.6094,357.0469 Q1522.875,357.2969 1522.875,357.6406 Q1522.875,357.9844 1522.5313,358.3906 Q1522.0313,358.9688 1521.2344,359.2969 Q1520.1563,359.75 1518.8594,359.75 Q1517.3438,359.75 1516.1406,359.125 Q1515.1563,358.625 1514.4688,357.5625 Q1513.7813,356.4844 1513.7813,355.2031 L1513.7813,354.0469 Q1513.7813,352.7188 1514.3906,351.5781 Q1515.0156,350.4219 1516.1094,349.8125 Q1517.2031,349.1875 1518.4375,349.1875 Q1519.1719,349.1875 1519.8125,349.3594 Q1520.4688,349.5156 1521.0156,349.875 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="85" x="1538.75" y="359.7969">ValidationFail</text><line style="stroke:#181818;stroke-width:0.5;" x1="1412.5" x2="1717.5" y1="370" y2="370"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1419.5" y="381.8105"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="69" x="1431.5" y="389.1074">kind: string</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1419.5" y="400.4316"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="100" x="1431.5" y="407.7285">message: string</text><line style="stroke:#181818;stroke-width:0.5;" x1="1412.5" x2="1717.5" y1="415.2422" y2="415.2422"/><ellipse cx="1422.5" cy="430.0527" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="261" x="1431.5" y="434.3496">__construct(kind: string, message: string)</text><ellipse cx="1422.5" cy="448.6738" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="130" x="1431.5" y="452.9707">getMessage(): string</text><ellipse cx="1422.5" cy="467.2949" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101" x="1431.5" y="471.5918">getKind(): string</text><ellipse cx="1422.5" cy="485.916" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="264" x="1431.5" y="490.2129">notFound(message: string): ValidationFail</text><ellipse cx="1422.5" cy="504.5371" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="281" x="1431.5" y="508.834">unauthorized(message:string): ValidationFail</text><ellipse cx="1422.5" cy="523.1582" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="230" x="1431.5" y="527.4551">error(message:string): ValidationFail</text></g><!--class JsonSerialize--><g id="elem_JsonSerialize"><rect fill="#F1F1F1" height="48" id="JsonSerialize" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="116" x="1507" y="118.5"/><ellipse cx="1522" cy="134.5" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1522.9531,131.1406 L1522.9531,137.7969 L1524.6719,137.7969 Q1525.2813,137.7969 1525.5469,138.0313 Q1525.8125,138.2656 1525.8125,138.6563 Q1525.8125,139.0313 1525.5469,139.2656 Q1525.2813,139.5 1524.6719,139.5 L1519.5313,139.5 Q1518.9219,139.5 1518.6563,139.2656 Q1518.3906,139.0313 1518.3906,138.6406 Q1518.3906,138.2656 1518.6563,138.0313 Q1518.9219,137.7969 1519.5313,137.7969 L1521.25,137.7969 L1521.25,131.1406 L1519.5313,131.1406 Q1518.9219,131.1406 1518.6563,130.9063 Q1518.3906,130.6719 1518.3906,130.2813 Q1518.3906,129.9063 1518.6563,129.6719 Q1518.9219,129.4375 1519.5313,129.4375 L1524.6719,129.4375 Q1525.2813,129.4375 1525.5469,129.6719 Q1525.8125,129.9063 1525.8125,130.2813 Q1525.8125,130.6719 1525.5469,130.9063 Q1525.2813,131.1406 1524.6719,131.1406 L1522.9531,131.1406 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="84" x="1536" y="140.2969">JsonSerialize</text><line style="stroke:#181818;stroke-width:0.5;" x1="1508" x2="1622" y1="150.5" y2="150.5"/><line style="stroke:#181818;stroke-width:0.5;" x1="1508" x2="1622" y1="158.5" y2="158.5"/></g><!--class FieldValidationFail--><g id="elem_FieldValidationFail"><rect codeLine="37" fill="#F1F1F1" height="196.9688" id="FieldValidationFail" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="343" x="1393.5" y="595"/><ellipse cx="1502.75" cy="611" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1505.5156,606.875 Q1505.6719,606.6563 1505.8594,606.5469 Q1506.0469,606.4375 1506.2656,606.4375 Q1506.6406,606.4375 1506.875,606.7031 Q1507.1094,606.9531 1507.1094,607.5625 L1507.1094,609.0156 Q1507.1094,609.625 1506.875,609.8906 Q1506.6406,610.1563 1506.2656,610.1563 Q1505.9219,610.1563 1505.7188,609.9531 Q1505.5156,609.7656 1505.4063,609.25 Q1505.3594,608.8906 1505.1719,608.7031 Q1504.8438,608.3281 1504.2344,608.1094 Q1503.625,607.8906 1503,607.8906 Q1502.2344,607.8906 1501.5938,608.2188 Q1500.9688,608.5469 1500.4688,609.2969 Q1499.9844,610.0469 1499.9844,611.0781 L1499.9844,612.1719 Q1499.9844,613.4063 1500.875,614.2344 Q1501.7656,615.0469 1503.3594,615.0469 Q1504.2969,615.0469 1504.9531,614.7969 Q1505.3438,614.6406 1505.7656,614.2031 Q1506.0313,613.9375 1506.1719,613.8594 Q1506.3281,613.7813 1506.5313,613.7813 Q1506.8594,613.7813 1507.1094,614.0469 Q1507.375,614.2969 1507.375,614.6406 Q1507.375,614.9844 1507.0313,615.3906 Q1506.5313,615.9688 1505.7344,616.2969 Q1504.6563,616.75 1503.3594,616.75 Q1501.8438,616.75 1500.6406,616.125 Q1499.6563,615.625 1498.9688,614.5625 Q1498.2813,613.4844 1498.2813,612.2031 L1498.2813,611.0469 Q1498.2813,609.7188 1498.8906,608.5781 Q1499.5156,607.4219 1500.6094,606.8125 Q1501.7031,606.1875 1502.9375,606.1875 Q1503.6719,606.1875 1504.3125,606.3594 Q1504.9688,606.5156 1505.5156,606.875 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="116" x="1523.25" y="616.7969">FieldValidationFail</text><line style="stroke:#181818;stroke-width:0.5;" x1="1394.5" x2="1735.5" y1="627" y2="627"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1401.5" y="638.8105"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="1413.5" y="646.1074">fieldName: string</text><line style="stroke:#181818;stroke-width:0.5;" x1="1394.5" x2="1735.5" y1="653.6211" y2="653.6211"/><ellipse cx="1404.5" cy="668.4316" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="297" x="1413.5" y="672.7285">__construct(fieldName: string, message: string)</text><ellipse cx="1404.5" cy="687.0527" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="140" x="1413.5" y="691.3496">getFieldName(): string</text><ellipse cx="1404.5" cy="705.6738" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="89" x="1413.5" y="709.9707">jsonSerialize()</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="4" x="1413.5" y="728.5918"> </text><ellipse cx="1404.5" cy="742.916" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="317" x="1413.5" y="747.2129">invalidChars(fieldName: string): FieldValidationFail</text><ellipse cx="1404.5" cy="761.5371" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="277" x="1413.5" y="765.834">empty(fieldName: string): FieldValidationFail</text><ellipse cx="1404.5" cy="780.1582" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="286" x="1413.5" y="784.4551">missing(fieldName: string): FieldValidationFail</text></g><!--class Validation--><g id="elem_Validation"><rect codeLine="49" fill="#F1F1F1" height="66.6211" id="Validation" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="538" x="7" y="109"/><ellipse cx="240.75" cy="125" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M243.5156,120.875 Q243.6719,120.6563 243.8594,120.5469 Q244.0469,120.4375 244.2656,120.4375 Q244.6406,120.4375 244.875,120.7031 Q245.1094,120.9531 245.1094,121.5625 L245.1094,123.0156 Q245.1094,123.625 244.875,123.8906 Q244.6406,124.1563 244.2656,124.1563 Q243.9219,124.1563 243.7188,123.9531 Q243.5156,123.7656 243.4063,123.25 Q243.3594,122.8906 243.1719,122.7031 Q242.8438,122.3281 242.2344,122.1094 Q241.625,121.8906 241,121.8906 Q240.2344,121.8906 239.5938,122.2188 Q238.9688,122.5469 238.4688,123.2969 Q237.9844,124.0469 237.9844,125.0781 L237.9844,126.1719 Q237.9844,127.4063 238.875,128.2344 Q239.7656,129.0469 241.3594,129.0469 Q242.2969,129.0469 242.9531,128.7969 Q243.3438,128.6406 243.7656,128.2031 Q244.0313,127.9375 244.1719,127.8594 Q244.3281,127.7813 244.5313,127.7813 Q244.8594,127.7813 245.1094,128.0469 Q245.375,128.2969 245.375,128.6406 Q245.375,128.9844 245.0313,129.3906 Q244.5313,129.9688 243.7344,130.2969 Q242.6563,130.75 241.3594,130.75 Q239.8438,130.75 238.6406,130.125 Q237.6563,129.625 236.9688,128.5625 Q236.2813,127.4844 236.2813,126.2031 L236.2813,125.0469 Q236.2813,123.7188 236.8906,122.5781 Q237.5156,121.4219 238.6094,120.8125 Q239.7031,120.1875 240.9375,120.1875 Q241.6719,120.1875 242.3125,120.3594 Q242.9688,120.5156 243.5156,120.875 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="62" x="261.25" y="130.7969">Validation</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="544" y1="141" y2="141"/><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="544" y1="149" y2="149"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="522" x="17" y="168.1074">+ validate(val: mixed, valName: string, failures: &array, validators: Validator...): bool</text></g><!--class DefaultValidators--><g id="elem_DefaultValidators"><rect codeLine="55" fill="#F1F1F1" height="271.4531" id="DefaultValidators" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="282" x="580" y="7"/><ellipse cx="662.75" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M665.5156,18.875 Q665.6719,18.6563 665.8594,18.5469 Q666.0469,18.4375 666.2656,18.4375 Q666.6406,18.4375 666.875,18.7031 Q667.1094,18.9531 667.1094,19.5625 L667.1094,21.0156 Q667.1094,21.625 666.875,21.8906 Q666.6406,22.1563 666.2656,22.1563 Q665.9219,22.1563 665.7188,21.9531 Q665.5156,21.7656 665.4063,21.25 Q665.3594,20.8906 665.1719,20.7031 Q664.8438,20.3281 664.2344,20.1094 Q663.625,19.8906 663,19.8906 Q662.2344,19.8906 661.5938,20.2188 Q660.9688,20.5469 660.4688,21.2969 Q659.9844,22.0469 659.9844,23.0781 L659.9844,24.1719 Q659.9844,25.4063 660.875,26.2344 Q661.7656,27.0469 663.3594,27.0469 Q664.2969,27.0469 664.9531,26.7969 Q665.3438,26.6406 665.7656,26.2031 Q666.0313,25.9375 666.1719,25.8594 Q666.3281,25.7813 666.5313,25.7813 Q666.8594,25.7813 667.1094,26.0469 Q667.375,26.2969 667.375,26.6406 Q667.375,26.9844 667.0313,27.3906 Q666.5313,27.9688 665.7344,28.2969 Q664.6563,28.75 663.3594,28.75 Q661.8438,28.75 660.6406,28.125 Q659.6563,27.625 658.9688,26.5625 Q658.2813,25.4844 658.2813,24.2031 L658.2813,23.0469 Q658.2813,21.7188 658.8906,20.5781 Q659.5156,19.4219 660.6094,18.8125 Q661.7031,18.1875 662.9375,18.1875 Q663.6719,18.1875 664.3125,18.3594 Q664.9688,18.5156 665.5156,18.875 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="108" x="683.25" y="28.7969">DefaultValidators</text><line style="stroke:#181818;stroke-width:0.5;" x1="581" x2="861" y1="39" y2="39"/><line style="stroke:#181818;stroke-width:0.5;" x1="581" x2="861" y1="47" y2="47"/><ellipse cx="591" cy="61.8105" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="137" x="600" y="66.1074">nonEmpty(): Validator</text><ellipse cx="591" cy="80.4316" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="199" x="600" y="84.7285">shorterThan(limit: int): Validator</text><ellipse cx="591" cy="99.0527" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="211" x="600" y="103.3496">userString(maxLen: int): Validator</text><ellipse cx="591" cy="117.6738" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="256" x="600" y="121.9707">regex(regex:string, msg:string): Validator</text><ellipse cx="591" cy="136.2949" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="161" x="600" y="140.5918">hex(msg:string): Validator</text><ellipse cx="591" cy="154.916" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="174" x="600" y="159.2129">name(msg:string): Validator</text><ellipse cx="591" cy="173.5371" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="184" x="600" y="177.834">nameWithSpaces(): Validator</text><ellipse cx="591" cy="192.1582" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="240" x="600" y="196.4551">lenBetween(min:int, max:int): Validator</text><ellipse cx="591" cy="210.7793" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="172" x="600" y="215.0762">email(msg:string): Validator</text><ellipse cx="591" cy="229.4004" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="128" x="600" y="233.6973">isInteger(): Validator</text><ellipse cx="591" cy="248.0215" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="245" x="600" y="252.3184">isIntInRange(min:int, max:int): Validator</text><ellipse cx="591" cy="266.6426" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="111" x="600" y="270.9395">isURL(): Validator</text></g><!--class FunctionValidator--><g id="elem_FunctionValidator"><rect codeLine="72" fill="#F1F1F1" height="103.8633" id="FunctionValidator" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="266" x="1092" y="641.5"/><ellipse cx="1165.25" cy="657.5" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1168.0156,653.375 Q1168.1719,653.1563 1168.3594,653.0469 Q1168.5469,652.9375 1168.7656,652.9375 Q1169.1406,652.9375 1169.375,653.2031 Q1169.6094,653.4531 1169.6094,654.0625 L1169.6094,655.5156 Q1169.6094,656.125 1169.375,656.3906 Q1169.1406,656.6563 1168.7656,656.6563 Q1168.4219,656.6563 1168.2188,656.4531 Q1168.0156,656.2656 1167.9063,655.75 Q1167.8594,655.3906 1167.6719,655.2031 Q1167.3438,654.8281 1166.7344,654.6094 Q1166.125,654.3906 1165.5,654.3906 Q1164.7344,654.3906 1164.0938,654.7188 Q1163.4688,655.0469 1162.9688,655.7969 Q1162.4844,656.5469 1162.4844,657.5781 L1162.4844,658.6719 Q1162.4844,659.9063 1163.375,660.7344 Q1164.2656,661.5469 1165.8594,661.5469 Q1166.7969,661.5469 1167.4531,661.2969 Q1167.8438,661.1406 1168.2656,660.7031 Q1168.5313,660.4375 1168.6719,660.3594 Q1168.8281,660.2813 1169.0313,660.2813 Q1169.3594,660.2813 1169.6094,660.5469 Q1169.875,660.7969 1169.875,661.1406 Q1169.875,661.4844 1169.5313,661.8906 Q1169.0313,662.4688 1168.2344,662.7969 Q1167.1563,663.25 1165.8594,663.25 Q1164.3438,663.25 1163.1406,662.625 Q1162.1563,662.125 1161.4688,661.0625 Q1160.7813,659.9844 1160.7813,658.7031 L1160.7813,657.5469 Q1160.7813,656.2188 1161.3906,655.0781 Q1162.0156,653.9219 1163.1094,653.3125 Q1164.2031,652.6875 1165.4375,652.6875 Q1166.1719,652.6875 1166.8125,652.8594 Q1167.4688,653.0156 1168.0156,653.375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="111" x="1185.75" y="663.2969">FunctionValidator</text><line style="stroke:#181818;stroke-width:0.5;" x1="1093" x2="1357" y1="673.5" y2="673.5"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1100" y="685.3105"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="125" x="1112" y="692.6074">validate_fn: callable</text><line style="stroke:#181818;stroke-width:0.5;" x1="1093" x2="1357" y1="700.1211" y2="700.1211"/><ellipse cx="1103" cy="714.9316" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="205" x="1112" y="719.2285">__construct(validate_fn:callable)</text><ellipse cx="1103" cy="733.5527" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="240" x="1112" y="737.8496">validate(name:string, val:mixed): array</text></g><!--reverse link Validator to ComposedValidator--><g id="link_Validator_ComposedValidator"><path d="M474.8885,496.7673 C466.5385,544.1873 469.66,603.57 478.01,650.98 " fill="none" id="Validator-backto-ComposedValidator" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="478.01,479.04,468.9794,495.7268,480.7976,497.8078,478.01,479.04" style="stroke:#181818;stroke-width:1.0;"/></g><!--link ComposedValidator to Validator--><g id="link_ComposedValidator_Validator"><path codeLine="13" d="M498,650.98 C498,603.57 498,532.46 498,485.04 " fill="none" id="ComposedValidator-to-Validator" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="498,479.04,494,488.04,498,484.04,502,488.04,498,479.04" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="29" x="466.6891" y="501.2067">- first</text></g><!--link ComposedValidator to Validator--><g id="link_ComposedValidator_Validator"><path codeLine="14" d="M517.99,650.98 C526.34,603.57 527.3805,532.3691 519.0305,484.9491 " fill="none" id="ComposedValidator-to-Validator-1" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="517.99,479.04,515.6114,488.5973,518.8571,483.9642,523.4902,487.21,517.99,479.04" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="33" x="523.8056" y="501.2067">- then</text></g><!--reverse link Validator to SimpleFunctionValidator--><g id="link_Validator_SimpleFunctionValidator"><path d="M573.2641,489.2355 C633.8341,530.8655 712.88,585.19 781.57,632.41 " fill="none" id="Validator-backto-SimpleFunctionValidator" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="558.43,479.04,569.8656,494.1802,576.6626,484.2908,558.43,479.04" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link JsonSerialize to ValidationFail--><g id="link_JsonSerialize_ValidationFail"><path d="M1565,184.9 C1565,221.64 1565,276.95 1565,337.7 " fill="none" id="JsonSerialize-backto-ValidationFail" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="none" points="1565,166.9,1559,184.9,1571,184.9,1565,166.9" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ValidationFail to FieldValidationFail--><g id="link_ValidationFail_FieldValidationFail"><path d="M1565,553.36 C1565,572.88 1565,575.39 1565,594.9 " fill="none" id="ValidationFail-backto-FieldValidationFail" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1565,535.36,1559,553.36,1571,553.36,1565,535.36" style="stroke:#181818;stroke-width:1.0;"/></g><!--link Validation to Validator--><g id="link_Validation_Validator"><path codeLine="53" d="M300.82,176.15 C341.33,229.42 417.9583,330.2239 462.5783,388.9039 " fill="none" id="Validation-to-Validator" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="466.21,393.68,463.9465,384.0948,463.1836,389.6999,457.5784,388.937,466.21,393.68" style="stroke:#181818;stroke-width:1.0;"/></g><!--link DefaultValidators to Validator--><g id="link_DefaultValidators_Validator"><path codeLine="70" d="M617.99,278.39 C586.03,320.23 556.781,358.521 533.541,388.961 " fill="none" id="DefaultValidators-to-Validator" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="529.9,393.73,538.5408,389.0038,532.9341,389.7558,532.1821,384.1492,529.9,393.73" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Validator to FunctionValidator--><g id="link_Validator_FunctionValidator"><path codeLine="78" d="M651.7567,466.067 C771.0867,490.757 929.89,530.62 1074,595 C1102.06,607.54 1130.89,624.86 1155.73,641.43 " fill="none" id="Validator-backto-FunctionValidator" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="634.13,462.42,650.541,471.9426,652.9723,460.1915,634.13,462.42" style="stroke:#181818;stroke-width:1.0;"/></g><!--SRC=[dLN9Rjim4BthAuWS2Xcr_052u4EJ2aYRzX1tEHgqDBBOSZ58ghMRvjyxehLGYvVK1y7Wl3SpRpWpf1jZDKqjIJarXdoZd6NKAasU0uA_j-JNyGH2IGN41D5CRkVLSKm4sqCsYmdLcXx8CwrzlTHKMu0C5Nvrt3cUUV-3bo0unhrJOgSCP5rys5kGMJ-ZskzwdIg9eShKXZdJndekvowg7- -rEggankb4qV8c8YxQZIVW5B1AmiSrEbTCx3WafKmjK_AysYhlYEmqP2p5n6EIKixfXaDj0QsLNkTOSAKFddMYIXDEvaU-IORy_ofOhtjGMK8P9qwh06aD-M2KN85c2FW3hRQVJ6QDv_f8W35qsyQR4kEpvaD2a_qMxAUZ9PprGZZJHtGnEhyjbrBPH9Le6tgD1zewIYbfQGkbKLT7kyXojRy8RmkRCE3PeBg3bccEczhc5UMpTtMJmpF0d2jdqe17XVlXNsuu2pgPJBekkYkeDkDew6T2c5SaiRE7rzC4CmPXLnDVWd7_rcL4R_uaTBtlvg1VkHnzbHfCJDwuiPWtF1moRnyj5WlCOwEK2-n5N2oM_i8uPdGFEIsvRSzDkvTTjyhthaIzdTgQ3NQb1Vsbe3BaJ31SaqpQQMnfGA-Sa53G_MErGKzYDMnX7xfltBQDsOwwsESKoBY4gVRCLQ3lp1Qh7Kt1d53EGRu3-nlm-H5CngW4CwJx-AGa47Xv5sCpyo0jojRX6Vk3VA8IjyvrWPdv-lGO3j_4yQrFDiVe6MbclsdOTIu7hqP__dtS-VNlR__HykyUhTk_KJHEA_W7]--></g></svg> |