<?xml version="1.0" encoding="utf-8"?>
<Application>
	<AppTitle>Password validation</AppTitle>
	<AppShortName>MyApp</AppShortName>
	<Author>Asmat Qatea</Author>
	<Version>1.0</Version>
	<DesignDeviceName>Desktop</DesignDeviceName>
	<VariablesScanned>False</VariablesScanned>
	<PageWidth>640</PageWidth>
	<PageHeight>480</PageHeight>
	<AutoSizeWidth>False</AutoSizeWidth>
	<AutoSizeHeight>False</AutoSizeHeight>
	<HideScrollbars>False</HideScrollbars>
	<ResponsiveSize>False</ResponsiveSize>
	<PublishPlatform>WebApp</PublishPlatform>
	<EmptyBuildFolder>False</EmptyBuildFolder>
	<AppIcon>C:\Users\asmat\Documents\VisualNeoWeb\Libraries\img\default-icon.png</AppIcon>
	<CustomCSS>#validation .valid{
color:rgba(255,255,255,0.5);
}

#validation svg{
 fill:white;
}

#validation .valid svg{
 fill:#19ff0d;
}


.inputBox input{
position:relative;
width:100%;
outline:none;
border:none;
padding: 5px 10px;
height:100%;
}

#togglebtn{
position:absolute;
background:rgba(0,0,0,0.05);
top:0px!important;
bottom:0px!important;
margin:auto!important;
width:34px;
height:34px;
right:10px;
border-radius:50%;
color:black;
}




.flexCenter{
display:flex;
justify-content:center;
align-items:center;
}

.flexTop{
display:flex;
flex-direction:column;
align-items:center;
justify-content:flex-start;
}

.flexLeft{
display:flex;
align-items:center;
justify-content:flex-start;
}</CustomCSS>
	<LanguageCode>en</LanguageCode>
	<DisplayMode>standalone</DisplayMode>
	<ServiceWorker>Offline page</ServiceWorker>
	<ThemeColor>#000000</ThemeColor>
	<MobileOSTypes>[AndroidOS,iOS,WindowsPhoneOS]</MobileOSTypes>
	<WindowState>normal</WindowState>
	<TitleBar>True</TitleBar>
	<Sizeable>True</Sizeable>
	<MaximizeBtn>False</MaximizeBtn>
	<MinimizeBtn>True</MinimizeBtn>
	<SystemMenu>True</SystemMenu>
	<ContextMenu>False</ContextMenu>
	<AlwaysOnTop>False</AlwaysOnTop>
	<ShowInTaskbar>True</ShowInTaskbar>
	<SingleInstance>False</SingleInstance>
	<ChromeKioskMode>False</ChromeKioskMode>
	<startup>NeoScriptToJS</startup>
	<Components>
		<FunctionList name="Subroutines">
			<Components>
				<Function name="checkPassword">
					<Code>let lower = new RegExp(&apos;(?=.*[a-z])&apos;);
let upper = new RegExp(&apos;(?=.*[A-Z])&apos;);
let number = new RegExp(&apos;(?=.*[0-9])&apos;);
let special = new RegExp(&apos;(?=.*[!@#\$%\^&amp;\*])&apos;);
let minLength = new RegExp(&apos;(?=.{8,})&apos;);



function valid(obj){
  $(&apos;#&apos;+obj).addClass(&apos;valid&apos;);
  $(&apos;#&apos;+obj+&apos; svg&apos;).html($(&apos;#tick svg&apos;).html());
}
function unValid(obj){
  $(&apos;#&apos;+obj).removeClass(&apos;valid&apos;);
  $(&apos;#&apos;+obj+&apos; svg&apos;).html($(&apos;#circle svg&apos;).html());
}

//lowerCase validation check
if(lower.test(data)){
 valid(&apos;lower&apos;);
}else{
  unValid(&apos;lower&apos;)
}

//upperCase validation check
if(upper.test(data)){
  valid(&apos;upper&apos;);
}else{
  unValid(&apos;upper&apos;);
}

//Number validation check
if(number.test(data)){
  valid(&apos;number&apos;);
}else{
  unValid(&apos;number&apos;);
}


//Special character validation check
if(special.test(data)){
  valid(&apos;special&apos;);
}else{
  unValid(&apos;special&apos;);
}

if(minLength.test(data)){
  valid(&apos;minLength&apos;);
}else{
  unValid(&apos;minLength&apos;);
}</Code>
					<Params>data|STRING|</Params>
					<ScriptLanguage>JavaScript</ScriptLanguage>
				</Function>
				<Function name="toggleButton">
					<Code>if($(&apos;#pswrd&apos;).attr(&apos;type&apos;) == &quot;password&quot;){
   $(&apos;#pswrd&apos;).attr(&apos;type&apos;,&apos;text&apos;);
   $(obj).html($(&apos;#eyeClose&apos;).html());
}else{
   $(&apos;#pswrd&apos;).attr(&apos;type&apos;,&apos;password&apos;);
   $(obj).html($(&apos;#eyeOpen&apos;).html());
}</Code>
					<Params>obj|STRING|</Params>
					<ScriptLanguage>JavaScript</ScriptLanguage>
				</Function>
			</Components>
		</FunctionList>
		<LibraryList name="Libraries"/>
		<PageList name="Main">
			<Components>
				<Page id="NewPage">
					<style>background-color:#8ccafd</style>
					<pageenter>. The value of input will save in [password] variable...</pageenter>
					<Components>
						<Container id="Container2">
							<left>144px</left>
							<top>67px</top>
							<width>352px</width>
							<height>52px</height>
							<style>font-size:12pt;background-color:#fff;border-radius:5px;box-shadow:0 15px 25px rgba(0,0,0,0.15)</style>
							<css_class>inputBox</css_class>
							<html>&lt;input type=&quot;password&quot;   ng-model=&quot;$root.password&quot; id=&quot;pswrd&quot; placeholder=&quot;Password&quot; onkeyup=&quot;neosubroutine.checkPassword(this.value)&quot;&gt;

&lt;span id=&quot;togglebtn&quot; class=&quot;flexCenter&quot; onclick=&quot;neosubroutine.toggleButton(this)&quot;&gt;


&lt;svg style=&quot;width:24px;height:24px&quot; viewBox=&quot;0 0 24 24&quot;&gt;
    &lt;path fill=&quot;currentColor&quot; d=&quot;M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;


&lt;/span&gt;</html>
						</Container>
						<Container id="eyeClose">
							<left>-146px</left>
							<top>4px</top>
							<width>39px</width>
							<height>37px</height>
							<style>border-width:1px;border-style:solid;background-color:#fff;</style>
							<html>&lt;svg style=&quot;width:24px;height:24px&quot; viewBox=&quot;0 0 24 24&quot;&gt;
    &lt;path fill=&quot;currentColor&quot; d=&quot;M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z&quot; /&gt;
&lt;/svg&gt;</html>
						</Container>
						<Container id="validation">
							<left>138px</left>
							<top>144px</top>
							<width>364px</width>
							<height>196px</height>
							<style>background-color:#386385;border-radius:10px;animation-direction:normal;animation-duration:0.5s;animation-fill-mode:backwards;animation-iteration-count:1;animation-name:zoomIn;animation-timing-function:ease-in;transition:all 0.3s linear 0s</style>
							<css_class>flexTop</css_class>
							<Components>
								<Container id="lower">
									<left>18px</left>
									<top>0px</top>
									<width>96%</width>
									<height>50px</height>
									<style>color:white;padding-left:5px</style>
									<align>top</align>
									<margin_top>5px</margin_top>
									<css_class>flexLeft</css_class>
									<neo_custom>icon=&quot;asmat&quot;</neo_custom>
									<html>&lt;svg style=&quot;width:24px;height:24px&quot; viewBox=&quot;0 0 24 24&quot;&gt;
    &lt;path fill=&quot;white&quot; d=&quot;M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;
&amp;nbsp;

At least one lowercase character</html>
								</Container>
								<Container id="upper">
									<left>15px</left>
									<top>13px</top>
									<width>96%</width>
									<height>50px</height>
									<style>color:white;padding-left:5px</style>
									<align>top</align>
									<margin_top>5px</margin_top>
									<css_class>flexLeft</css_class>
									<html>&lt;svg style=&quot;width:24px;height:24px&quot; viewBox=&quot;0 0 24 24&quot;&gt;
    &lt;path fill=&quot;currentColor&quot; d=&quot;M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;
&amp;nbsp;
At least one uppercase character</html>
								</Container>
								<Container id="number">
									<left>15px</left>
									<top>59px</top>
									<width>96%</width>
									<height>50px</height>
									<style>color:white;padding-left:5px</style>
									<align>top</align>
									<margin_top>5px</margin_top>
									<css_class>flexLeft</css_class>
									<html>&lt;svg style=&quot;width:24px;height:24px&quot; viewBox=&quot;0 0 24 24&quot;&gt;
    &lt;path fill=&quot;currentColor&quot; d=&quot;M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;
&amp;nbsp;

At least one number</html>
								</Container>
								<Container id="special">
									<left>15px</left>
									<top>105px</top>
									<width>96%</width>
									<height>50px</height>
									<style>color:white;padding-left:5px</style>
									<align>top</align>
									<margin_top>5px</margin_top>
									<css_class>flexLeft</css_class>
									<html>&lt;svg style=&quot;width:24px;height:24px&quot; viewBox=&quot;0 0 24 24&quot;&gt;
    &lt;path fill=&quot;currentColor&quot; d=&quot;M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;
&amp;nbsp;

At least one special character</html>
								</Container>
								<Container id="minLength">
									<left>15px</left>
									<top>151px</top>
									<width>96%</width>
									<height>50px</height>
									<style>color:white;padding-left:5px</style>
									<align>top</align>
									<margin_top>5px</margin_top>
									<margin_bottom>5px</margin_bottom>
									<css_class>flexLeft</css_class>
									<html>&lt;svg style=&quot;width:24px;height:24px&quot; viewBox=&quot;0 0 24 24&quot;&gt;
    &lt;path fill=&quot;currentColor&quot; d=&quot;M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;
&amp;nbsp;

At least 8 character</html>
								</Container>
							</Components>
						</Container>
						<Container id="tick">
							<left>-144px</left>
							<top>53px</top>
							<width>56px</width>
							<height>32px</height>
							<style>border-style:solid;border-width:1px</style>
							<html>&lt;svg style=&quot;width:24px;height:24px&quot; viewBox=&quot;0 0 24 24&quot;&gt;
    &lt;path d=&quot;M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;</html>
						</Container>
						<Container id="circle">
							<left>-143px</left>
							<top>89px</top>
							<width>56px</width>
							<height>32px</height>
							<style>border-style:solid;border-width:1px</style>
							<html>&lt;svg style=&quot;width:24px;height:24px&quot; viewBox=&quot;0 0 24 24&quot;&gt;
    &lt;path  d=&quot;M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;</html>
						</Container>
						<Container id="eyeOpen">
							<left>-99px</left>
							<top>5px</top>
							<width>39px</width>
							<height>37px</height>
							<style>border-width:1px;border-style:solid;background-color:#fff;</style>
							<html>&lt;svg style=&quot;width:24px;height:24px&quot; viewBox=&quot;0 0 24 24&quot;&gt;
    &lt;path fill=&quot;currentColor&quot; d=&quot;M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z&quot;&gt;&lt;/path&gt;
&lt;/svg&gt;</html>
						</Container>
						<Container id="Container1">
							<left>170px</left>
							<top>438px</top>
							<width>300px</width>
							<height>36px</height>
							<style>color:white</style>
							<css_class>flexCenter</css_class>
							<html>Author: Asmat Qatea</html>
						</Container>
					</Components>
				</Page>
			</Components>
		</PageList>
		<PageList name="Master">
			<Components>
				<Page id="MasterPage"/>
			</Components>
		</PageList>
		<PageList name="Dialog">
			<Components>
				<Page id="NewDialog">
					<Components>
						<DialogContainer id="DialogContainer1">
							<left>0px</left>
							<top>0px</top>
							<width>640px</width>
							<height>480px</height>
							<close_button>False</close_button>
							<kind>custom</kind>
						</DialogContainer>
					</Components>
				</Page>
			</Components>
		</PageList>
	</Components>
</Application>
