UNPKG

dijit

Version:

Dijit provides a complete collection of user interface controls based on Dojo, giving you the power to create web applications that are highly optimized for usability, performance, internationalization, accessibility, but above all deliver an incredible u

483 lines (452 loc) 22.9 kB
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>TooltipDialog Widget Tests</title> <script type="text/javascript" src="boilerplate.js"></script> <style type="text/css"> body { font-family : sans-serif; } form { margin-bottom : 0; } table { border: none; } .claro .tooltipLink .dijitButtonNode, .claro .tooltipLink .dijitButtonNode .dijitDropDownButtonHover, .claro .buttonLink .dijitButtonNode, .claro .buttonLink .dijitButtonHover .dijitButtonNode { background: none !important; border:none; } .claro .tooltipLink .dijitArrowButtonInner { display:none; } .claro .tooltipLink button, .claro .tooltipLink button .dijitButtonText, .claro .buttonLink button .dijitButtonText { text-decoration:underline !important; color:blue; display:inline; } </style> <script type="text/javascript"> require([ "dojo/_base/declare", "dojo/dom", "dojo/date/stamp", "dojo/parser", "dijit/_WidgetBase", "dijit/_TemplatedMixin", "dijit/TooltipDialog", "dijit/layout/ContentPane", "dijit/form/DropDownButton", "dijit/form/Form", "dijit/form/TextBox", "dijit/form/DateTextBox", "dijit/form/TimeTextBox", "dijit/form/FilteringSelect", "dijit/form/Select", "dijit/layout/TabContainer", "dijit/InlineEditBox", "dijit/Menu", "dijit/MenuItem", "dijit/PopupMenuItem", "dijit/MenuSeparator", "dojo/domReady!" ], function(declare, dom, stamp, parser, _WidgetBase, _TemplatedMixin, TooltipDialog, ContentPane, DropDownButton){ // create a do nothing, only for test widget declare("TestWidget", [_WidgetBase, _TemplatedMixin], { templateString: "<div style='margin: 10px; border: inset #700 4px; padding: 5px;' data-dojo-attach-point='containerNode'></div>" }); // scan page for widgets and instantiate them parser.parse(); // Nested TooltipDialog that contains a nested Menu var innerTtDialog = new TooltipDialog({ id: "innerTtDialog", content: '<div data-dojo-type="dijit/Menu" id="navMenu"><div data-dojo-type="dijit/MenuItem" iconClass="dijitEditorIcon dijitEditorIconCut" >Drama</div><div data-dojo-type="dijit/MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" >Comedy</div><div data-dojo-type="dijit/MenuItem" iconClass="dijitEditorIcon dijitEditorIconPaste" >Romance</div><div data-dojo-type="dijit/MenuSeparator"></div><div data-dojo-type="dijit/PopupMenuItem" id="popupMenuItem"><span>Action</span><div data-dojo-type="dijit/Menu" id="submenu"><div data-dojo-type="dijit/MenuItem">Diehard</div><div data-dojo-type="dijit/MenuItem">Indiana Jones</div></div></div></div>' + '<label for="name">Name:</label><br><input data-dojo-type="dijit/form/TextBox" id="name" name="name"><br>' + '<label for="hobby">Hobby:</label><br><input data-dojo-type="dijit/form/TextBox" id="hobby" name="hobby"><br>' + '<button data-dojo-type="dijit/form/Button" type="button">Save</button>' + '<div id="plaintext">plain text</div>' }); var innerDdBtn = new DropDownButton({ id: "innerDdBtn", label: "Inner TooltipDialog (innerTtDialog)", dropDown: innerTtDialog }); var ddDialogCp = new ContentPane({ id: "ddDialogCp", title: '', refreshOnShow: true }); ddDialogCp.startup(); ddDialogCp.set("content", innerDdBtn); var outerTtDialog = new TooltipDialog({ id: "outerTtDialog", content:ddDialogCp }); var launcherBtn = new DropDownButton({ id: "outerDdBtn", label: "Nested TooltipDialog (ttDialog)", dropDown: outerTtDialog }); dom.byId("dropdownButtonContainer").appendChild(launcherBtn.domNode); }); </script> </head> <body class="claro" role="main"> <h1 class="testTitle">dijit.TooltipDialog tests</h1> <div id="tooltipDlgButton" data-dojo-type="dijit/form/DropDownButton"> <span>Show Tooltip Dialog</span> <div id="tooltipDlg" data-dojo-type="dijit/TooltipDialog" data-dojo-props='title:"Enter Login information"'> <table role="presentation"> <tr> <td><label>InlineEditBox:</label></td> <td><div id="inline" data-dojo-type=dijit/InlineEditBox data-dojo-props='editorParams:{type:"text", name:"inline"}'>inline</div></td> </tr> <tr> <td><label for="text">TextBox:</label></td> <td><input id="text" data-dojo-type=dijit/form/TextBox data-dojo-props='name:"text" '/></td> </tr> <tr> <td><label for="date2">Date:</label></td> <td><input id="date2" data-dojo-type=dijit/form/DateTextBox data-dojo-props='name:"date" '/></td> </tr> <tr> <td><label for="time2">Time:</label></td> <td><input id="time2" data-dojo-type=dijit/form/TimeTextBox data-dojo-props='name:"time" '/></td> </tr> <tr> <td><label for="combo">FilteringSelect:</label></td> <td> <select id="combo" data-dojo-type=dijit/form/FilteringSelect data-dojo-props='name:"combo", hasDownArrow:true'> <option value="cheese">cheese</option> <option value="pepperoni">pepperoni</option> <option value="sausage">sausage</option> </select> </td> </tr> <tr> <td><label for="select">Select:</label></td> <td> <select id="select" data-dojo-type=dijit/form/Select data-dojo-props='name:"select" '> <option value="olives">olives</option> <option value="peppers">peppers</option> <option value="tomatoes">tomatoes</option> </select> </td> </tr> <tr> <td colspan="2" style="text-align:center;"> <button id="submit" data-dojo-type=dijit/form/Button data-dojo-props='type:"submit", name:"submit" '>Order</button> </td> </tr> </table> <div style="width: 300px;">Note: This tooltip dialog has a bunch of nested drop downs for testing keyboard and click handling</div> </div> </div> | <div data-dojo-type="dijit/form/DropDownButton"> <span>Show Tooltip Dialog with TabContainer</span> <div id="tabTooltip" data-dojo-type="dijit/TooltipDialog" data-dojo-props='title:"Tab Container Tooltip"'> <div data-dojo-type="dijit/layout/TabContainer" data-dojo-props='style:"width: 400px; height: 300px;"'> <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props='title:"First tab"'> <p> This is the first tab. </p> <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean semper sagittis velit. Cras in mi. Duis porta mauris ut ligula. Proin porta rutrum lacus. Etiam consequat scelerisque quam. Nulla facilisi. Maecenas luctus venenatis nulla. In sit amet dui non mi semper iaculis. Sed molestie tortor at ipsum. Morbi dictum rutrum magna. Sed vitae risus. </p> </div> <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props='title:"Second tab"'> <p> This is the second tab. </p> <p> <a href="http://www.lipsum.com/">ipsum dolor sit amet</a>, consectetuer adipiscing elit. Aenean semper sagittis velit. Cras in mi. Duis porta mauris ut ligula. Proin porta rutrum lacus. Etiam consequat scelerisque quam. Nulla facilisi. Maecenas luctus venenatis nulla. In sit amet dui non mi semper iaculis. Sed molestie tortor at ipsum. Morbi dictum rutrum magna. Sed vitae risus. </p> </div> </div> </div> </div> | <div id="slowLoadButton" data-dojo-type="dijit/form/DropDownButton"> <span>Test slowloading HREF Tooltip Dialog</span> <div id="slowLoad" data-dojo-type="dijit/TooltipDialog" data-dojo-props='href:"layout/getResponse.php?delay=500&amp;messId=2", title:"tooltip dialog with no focusable items"'></div> </div> | <div data-dojo-type="dijit/form/DropDownButton" data-dojo-props='"class":"tooltipLink"'> <span>What is this?</span> <div data-dojo-id="tooltipHelpDlg" data-dojo-type="dijit/TooltipDialog" data-dojo-props='title:"Test Dialog tooltip", style:"width:350px" '> <div data-dojo-type="dijit/form/Button" data-dojo-props='"class":"buttonLink", style:"float:right;font-size:x-small", title:"close", tabIndex:"0" '>[close] <script type="dojo/method" data-dojo-event="onClick"> tooltipHelpDlg.onCancel(); </script> </div> <div role="alert" style="margin-top:1em"> <strong>Important!</strong> This is a tooltip dialog with just text! It could be used to provide help. It will stay open until the user explicitly closes it via pressing escape, clicking [close] or by clicking somewhere else on the page. To make certain a screen reader will speak this text (at least in Firefox 3), the div containing the text was given an <a href="http://www.w3.org/WAI/PF/aria/">ARIA</a> role of alert. In the future the tooltip dialog may be given a role of alertdialog. </div> </div> </div> <span id="dropdownButtonContainer"> <!-- programatically created nested TooltipDialog will be placed here --> </span> <div data-dojo-type="dijit/form/DropDownButton"> <span>TooltipDialog w/ActionBar</span> <div data-dojo-type="dijit/TooltipDialog" id="loginform" data-dojo-props="title: 'Login...'"> <form data-dojo-type="dijit/form/Form"> <table> <tr><td><label for="username2">Username:</label></td><td><input type="text" id="username2" data-dojo-type="dijit/form/TextBox" /></td></tr> <tr><td><label for="password2">Password:</label></td><td><input type="password" id="password2" data-dojo-type="dijit/form/TextBox" /></td></tr> </table> <div class="dijitDialogPaneActionBar"> <button data-dojo-type="dijit/form/Button" type="reset">Reset</button> <button data-dojo-type="dijit/form/Button" type="submit">Login</button> </div> </form> </div> </div> <div data-dojo-type="dijit/form/DropDownButton" data-dojo-props="dropDownPosition: ['below-centered', 'above-centered']"> <span>Centered TooltipDialog</span> <div data-dojo-type="dijit/TooltipDialog" id="loginform3" data-dojo-props="title: 'Login...'"> <form data-dojo-type="dijit/form/Form"> <table> <tr><td><label for="username3">Username:</label></td><td><input type="text" id="username3" data-dojo-type="dijit/form/TextBox" /></td></tr> <tr><td><label for="password3">Password:</label></td><td><input type="password" id="password3" data-dojo-type="dijit/form/TextBox" /></td></tr> </table> <div class="dijitDialogPaneActionBar"> <button data-dojo-type="dijit/form/Button" type="reset">Reset</button> <button data-dojo-type="dijit/form/Button" type="submit">Login</button> </div> </form> </div> </div> <p><b><i>(scroll down to see more links to click, for testing positioning / scroll handling)</i></b></p> <p>Aliquam vitae enim. Duis scelerisque metus auctor est venenatis imperdiet. Fusce dignissim porta augue. Nulla vestibulum. Integer lorem nunc, ullamcorper a, commodo ac, malesuada sed, dolor. Aenean id mi in massa bibendum suscipit. Integer eros. Nullam suscipit mauris. In pellentesque. Mauris ipsum est, pharetra semper, pharetra in, viverra quis, tellus. Etiam purus. Quisque egestas, tortor ac cursus lacinia, felis leo adipiscing nisi, et rhoncus elit dolor eget eros. Fusce ut quam. Suspendisse eleifend leo vitae ligula. Nulla facilisi. Nulla rutrum, erat vitae lacinia dictum, pede purus imperdiet lacus, ut semper velit ante id metus. Praesent massa dolor, porttitor sed, pulvinar in, consequat ut, leo. Nullam nec est. Aenean id risus blandit tortor pharetra congue. Suspendisse pulvinar. </p> <p>Vestibulum convallis eros ac justo. Proin dolor. Etiam aliquam. Nam ornare elit vel augue. Suspendisse potenti. Etiam sed mauris eu neque nonummy mollis. Vestibulum vel purus ac pede semper accumsan. Vivamus lobortis, sem vitae nonummy lacinia, nisl est gravida magna, non cursus est quam sed urna. Phasellus adipiscing justo in ipsum. Duis sagittis dolor sit amet magna. Suspendisse suscipit, neque eu dictum auctor, nisi augue tincidunt arcu, non lacinia magna purus nec magna. Praesent pretium sollicitudin sapien. Suspendisse imperdiet. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. </p> <form> <div style="text-align:center;"> <select aria-label="select"> <option>1</option> <option>2</option> </select> </div> </form> <p>Mauris pharetra lorem sit amet sapien. Nulla libero metus, tristique et, dignissim a, tempus et, metus. Ut libero. Vivamus tempus purus vel ipsum. Quisque mauris urna, vestibulum commodo, rutrum vitae, ultrices vitae, nisl. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nulla id erat sit amet odio luctus eleifend. Proin massa libero, ultricies non, tincidunt a, vestibulum non, tellus. Nunc nunc purus, lobortis a, pulvinar at, egestas a, mi. Cras adipiscing velit a mauris. Morbi felis. Etiam at felis. Cras eget eros et justo mattis pulvinar. Nullam at justo id risus porttitor dignissim. Vestibulum sed velit vel metus tincidunt tempus. Nunc euismod nisl id dolor tristique tincidunt. Nullam placerat turpis sed odio. Curabitur in est id nibh tempus ultrices. Aliquam consectetuer dapibus eros. Aliquam nisl. </p> <div data-dojo-type="dijit/form/DropDownButton" data-dojo-props='style:"float:right;clear:right;" '> <span>dropdown at right</span> <div id="dialogright" data-dojo-type="dijit/TooltipDialog" > <div style="white-space:nowrap;">Aliquam vitae enim. Duis scelerisque metus auctor est venenatis</div> </div> </div> <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean semper sagittis velit. Cras in mi. Duis porta mauris ut ligula. Proin porta rutrum lacus. Etiam consequat scelerisque quam. Nulla facilisi. Maecenas luctus venenatis nulla. In sit amet dui non mi semper iaculis. Sed molestie tortor at ipsum. Morbi dictum rutrum magna. Sed vitae risus. </p> <p>Aliquam vitae enim. Duis scelerisque metus auctor est venenatis imperdiet. Fusce dignissim porta augue. Nulla vestibulum. Integer lorem nunc, ullamcorper a, commodo ac, malesuada sed, dolor. Aenean id mi in massa bibendum suscipit. Integer eros. Nullam suscipit mauris. In pellentesque. Mauris ipsum est, pharetra semper, pharetra in, viverra quis, tellus. Etiam purus. Quisque egestas, tortor ac cursus lacinia, felis leo adipiscing nisi, et rhoncus elit dolor eget eros. Fusce ut quam. Suspendisse eleifend leo vitae ligula. Nulla facilisi. Nulla rutrum, erat vitae lacinia dictum, pede purus imperdiet lacus, ut semper velit ante id metus. Praesent massa dolor, porttitor sed, pulvinar in, consequat ut, leo. Nullam nec est. Aenean id risus blandit tortor pharetra congue. Suspendisse pulvinar. </p> <div data-dojo-type="dijit/form/DropDownButton" data-dojo-props='title:"Enter Login information2"'> <span>Show Tooltip Dialog pointing upwards, with links</span> <div data-dojo-type="dijit/TooltipDialog" data-dojo-props='title:"General Information Dialog"'> <p>Vestibulum convallis eros ac justo. Proin dolor. Etiam aliquam. Nam ornare elit vel augue. Suspendisse potenti. Etiam sed mauris eu neque nonummy mollis. <a href="http://www.lipsum.com/">Vestibulum</a> vel purus ac pede semper accumsan. Vivamus lobortis, sem vitae nonummy lacinia, nisl est gravida magna, non cursus est quam sed urna. Phasellus adipiscing justo in <a href="http://www.lipsum.com/">ipsum</a>. Duis sagittis dolor sit amet magna. Suspendisse suscipit, neque eu dictum auctor, nisi augue tincidunt arcu, non lacinia magna purus nec magna. Praesent pretium sollicitudin sapien. <a href="http://www.lipsum.com/">Suspendisse imperdiet</a>. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. </p> </div> </div> (will go up if there isn't enough space on the bottom of the screen) <p>Vestibulum convallis eros ac justo. Proin dolor. Etiam aliquam. Nam ornare elit vel augue. Suspendisse potenti. Etiam sed mauris eu neque nonummy mollis. Vestibulum vel purus ac pede semper accumsan. Vivamus lobortis, sem vitae nonummy lacinia, nisl est gravida magna, non cursus est quam sed urna. Phasellus adipiscing justo in ipsum. Duis sagittis dolor sit amet magna. Suspendisse suscipit, neque eu dictum auctor, nisi augue tincidunt arcu, non lacinia magna purus nec magna. Praesent pretium sollicitudin sapien. Suspendisse imperdiet. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. </p> <form> <div style="text-align:center;"> <select aria-label="select"> <option>1</option> <option>2</option> </select> </div> </form> <p>Mauris pharetra lorem sit amet sapien. Nulla libero metus, tristique et, dignissim a, tempus et, metus. Ut libero. Vivamus tempus purus vel ipsum. Quisque mauris urna, vestibulum commodo, rutrum vitae, ultrices vitae, nisl. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nulla id erat sit amet odio luctus eleifend. Proin massa libero, ultricies non, tincidunt a, vestibulum non, tellus. Nunc nunc purus, lobortis a, pulvinar at, egestas a, mi. Cras adipiscing velit a mauris. Morbi felis. Etiam at felis. Cras eget eros et justo mattis pulvinar. Nullam at justo id risus porttitor dignissim. Vestibulum sed velit vel metus tincidunt tempus. Nunc euismod nisl id dolor tristique tincidunt. Nullam placerat turpis sed odio. Curabitur in est id nibh tempus ultrices. Aliquam consectetuer dapibus eros. Aliquam nisl. </p> <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean semper sagittis velit. Cras in mi. Duis porta mauris ut ligula. Proin porta rutrum lacus. Etiam consequat scelerisque quam. Nulla facilisi. Maecenas luctus venenatis nulla. In sit amet dui non mi semper iaculis. Sed molestie tortor at ipsum. Morbi dictum rutrum magna. Sed vitae risus. </p> <p>Aliquam vitae enim. Duis scelerisque metus auctor est venenatis imperdiet. Fusce dignissim porta augue. Nulla vestibulum. Integer lorem nunc, ullamcorper a, commodo ac, malesuada sed, dolor. Aenean id mi in massa bibendum suscipit. Integer eros. Nullam suscipit mauris. In pellentesque. Mauris ipsum est, pharetra semper, pharetra in, viverra quis, tellus. Etiam purus. Quisque egestas, tortor ac cursus lacinia, felis leo adipiscing nisi, et rhoncus elit dolor eget eros. Fusce ut quam. Suspendisse eleifend leo vitae ligula. Nulla facilisi. Nulla rutrum, erat vitae lacinia dictum, pede purus imperdiet lacus, ut semper velit ante id metus. Praesent massa dolor, porttitor sed, pulvinar in, consequat ut, leo. Nullam nec est. Aenean id risus blandit tortor pharetra congue. Suspendisse pulvinar. </p> <p>Vestibulum convallis eros ac justo. Proin dolor. Etiam aliquam. Nam ornare elit vel augue. Suspendisse potenti. Etiam sed mauris eu neque nonummy mollis. Vestibulum vel purus ac pede semper accumsan. Vivamus lobortis, sem vitae nonummy lacinia, nisl est gravida magna, non cursus est quam sed urna. Phasellus adipiscing justo in ipsum. Duis sagittis dolor sit amet magna. Suspendisse suscipit, neque eu dictum auctor, nisi augue tincidunt arcu, non lacinia magna purus nec magna. Praesent pretium sollicitudin sapien. Suspendisse imperdiet. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. </p> <p>Mauris pharetra lorem sit amet sapien. Nulla libero metus, tristique et, dignissim a, tempus et, metus. Ut libero. Vivamus tempus purus vel ipsum. Quisque mauris urna, vestibulum commodo, rutrum vitae, ultrices vitae, nisl. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nulla id erat sit amet odio luctus eleifend. Proin massa libero, ultricies non, tincidunt a, vestibulum non, tellus. Nunc nunc purus, lobortis a, pulvinar at, egestas a, mi. Cras adipiscing velit a mauris. Morbi felis. Etiam at felis. Cras eget eros et justo mattis pulvinar. Nullam at justo id risus porttitor dignissim. Vestibulum sed velit vel metus tincidunt tempus. Nunc euismod nisl id dolor tristique tincidunt. Nullam placerat turpis sed odio. Curabitur in est id nibh tempus ultrices. Aliquam consectetuer dapibus eros. Aliquam nisl. </p> <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean semper sagittis velit. Cras in mi. Duis porta mauris ut ligula. Proin porta rutrum lacus. Etiam consequat scelerisque quam. Nulla facilisi. Maecenas luctus venenatis nulla. In sit amet dui non mi semper iaculis. Sed molestie tortor at ipsum. Morbi dictum rutrum magna. Sed vitae risus. </p> <p>Aliquam vitae enim. Duis scelerisque metus auctor est venenatis imperdiet. Fusce dignissim porta augue. Nulla vestibulum. Integer lorem nunc, ullamcorper a, commodo ac, malesuada sed, dolor. Aenean id mi in massa bibendum suscipit. Integer eros. Nullam suscipit mauris. In pellentesque. Mauris ipsum est, pharetra semper, pharetra in, viverra quis, tellus. Etiam purus. Quisque egestas, tortor ac cursus lacinia, felis leo adipiscing nisi, et rhoncus elit dolor eget eros. Fusce ut quam. Suspendisse eleifend leo vitae ligula. Nulla facilisi. Nulla rutrum, erat vitae lacinia dictum, pede purus imperdiet lacus, ut semper velit ante id metus. Praesent massa dolor, porttitor sed, pulvinar in, consequat ut, leo. Nullam nec est. Aenean id risus blandit tortor pharetra congue. Suspendisse pulvinar. </p> <p>Vestibulum convallis eros ac justo. Proin dolor. Etiam aliquam. Nam ornare elit vel augue. Suspendisse potenti. Etiam sed mauris eu neque nonummy mollis. Vestibulum vel purus ac pede semper accumsan. Vivamus lobortis, sem vitae nonummy lacinia, nisl est gravida magna, non cursus est quam sed urna. Phasellus adipiscing justo in ipsum. Duis sagittis dolor sit amet magna. Suspendisse suscipit, neque eu dictum auctor, nisi augue tincidunt arcu, non lacinia magna purus nec magna. Praesent pretium sollicitudin sapien. Suspendisse imperdiet. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. </p> <p>Mauris pharetra lorem sit amet sapien. Nulla libero metus, tristique et, dignissim a, tempus et, metus. Ut libero. Vivamus tempus purus vel ipsum. Quisque mauris urna, vestibulum commodo, rutrum vitae, ultrices vitae, nisl. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nulla id erat sit amet odio luctus eleifend. Proin massa libero, ultricies non, tincidunt a, vestibulum non, tellus. Nunc nunc purus, lobortis a, pulvinar at, egestas a, mi. Cras adipiscing velit a mauris. Morbi felis. Etiam at felis. Cras eget eros et justo mattis pulvinar. Nullam at justo id risus porttitor dignissim. Vestibulum sed velit vel metus tincidunt tempus. Nunc euismod nisl id dolor tristique tincidunt. Nullam placerat turpis sed odio. Curabitur in est id nibh tempus ultrices. Aliquam consectetuer dapibus eros. Aliquam nisl. </p> </body> </html>