xerga před 1 rokem
rodič
revize
e4c6734298
85 změnil soubory, kde provedl 4905 přidání a 26 odebrání
  1. 22 0
      02_JavaWeb/.idea/02_JavaWeb.iml
  2. 2 0
      02_JavaWeb/.idea/compiler.xml
  3. 4 0
      02_JavaWeb/.idea/encodings.xml
  4. 7 1
      02_JavaWeb/.idea/misc.xml
  5. 2 3
      02_JavaWeb/.idea/modules.xml
  6. 218 11
      02_JavaWeb/.idea/workspace.xml
  7. 0 8
      02_JavaWeb/day12_html_css.iml
  8. 0 1
      02_JavaWeb/day12_html_css/html/TestCss.html
  9. 1 1
      02_JavaWeb/day12_js.iml
  10. 17 0
      02_JavaWeb/day12_js/01_js.html
  11. 90 0
      02_JavaWeb/day12_js/02_js.html
  12. 71 0
      02_JavaWeb/day12_js/03_js.html
  13. 38 0
      02_JavaWeb/day12_js/04_js.html
  14. 58 0
      02_JavaWeb/day12_js/05_js.html
  15. 1 1
      02_JavaWeb/day12_js/day13_js.iml
  16. 6 0
      02_JavaWeb/day12_js/js/helle.js
  17. 10 0
      02_JavaWeb/day13_js/back.html
  18. 10 0
      02_JavaWeb/day13_js/forward.html
  19. 3497 0
      02_JavaWeb/day13_js/html-login/css/style.default.css
  20. binární
      02_JavaWeb/day13_js/html-login/img/image-20230127220258675.png
  21. binární
      02_JavaWeb/day13_js/html-login/img/image-20230127220316018.png
  22. binární
      02_JavaWeb/day13_js/html-login/img/p_big3.jpg
  23. 176 0
      02_JavaWeb/day13_js/html-login/js/front.js
  24. 153 0
      02_JavaWeb/day13_js/html-login/login.html
  25. 159 0
      02_JavaWeb/day13_js/html-login/register.html
  26. 3 0
      02_JavaWeb/day13_js/html-login/vendor/jquery-validation/jquery.validate.min.js
  27. binární
      02_JavaWeb/day13_js/imgs/off.gif
  28. binární
      02_JavaWeb/day13_js/imgs/on.gif
  29. 47 0
      02_JavaWeb/day13_js/js01.html
  30. 30 0
      02_JavaWeb/day13_js/js02.html
  31. 49 0
      02_JavaWeb/day13_js/js02_1.html
  32. 39 0
      02_JavaWeb/day13_js/js03.html
  33. 17 0
      02_JavaWeb/day13_js/js04.html
  34. 27 0
      02_JavaWeb/day13_js/js05.html
  35. 31 0
      02_JavaWeb/day13_js/js06.html
  36. 39 0
      02_JavaWeb/day13_js/js07.html
  37. 25 0
      02_JavaWeb/day13_js/js08.html
  38. 51 0
      02_JavaWeb/day13_js/js09.html
  39. binární
      02_JavaWeb/out/production/day04_maven_jdbc/com/lc/dao/DeptDao.class
  40. binární
      02_JavaWeb/out/production/day04_maven_jdbc/com/lc/pojo/Dept.class
  41. 5 0
      02_JavaWeb/out/production/day04_maven_jdbc/druid.properties
  42. 0 0
      02_JavaWeb/out/production/day06_mybatis/com/lc/mapper/UserMapper.class
  43. 0 0
      02_JavaWeb/out/production/day06_mybatis/com/lc/mapper/UserMapper.xml
  44. 0 0
      02_JavaWeb/out/production/day06_mybatis/com/lc/pojo/User.class
  45. 0 0
      02_JavaWeb/out/production/day06_mybatis/jdbc.properties
  46. 0 0
      02_JavaWeb/out/production/day06_mybatis/mybatis-config.xml
  47. 0 0
      02_JavaWeb/out/production/day07_mybatis/com/lc/mapper/UserMapper.class
  48. 0 0
      02_JavaWeb/out/production/day07_mybatis/com/lc/mapper/UserMapper.xml
  49. 0 0
      02_JavaWeb/out/production/day07_mybatis/com/lc/pojo/User.class
  50. 0 0
      02_JavaWeb/out/production/day07_mybatis/jdbc.properties
  51. 0 0
      02_JavaWeb/out/production/day07_mybatis/log4j.xml
  52. 0 0
      02_JavaWeb/out/production/day07_mybatis/mybatis-config.xml
  53. 0 0
      02_JavaWeb/out/production/day08_mybatis/com/lc/mapper/DeptMapper.class
  54. 0 0
      02_JavaWeb/out/production/day08_mybatis/com/lc/mapper/DeptMapper.xml
  55. 0 0
      02_JavaWeb/out/production/day08_mybatis/com/lc/mapper/UserMapper.class
  56. 0 0
      02_JavaWeb/out/production/day08_mybatis/com/lc/mapper/UserMapper.xml
  57. 0 0
      02_JavaWeb/out/production/day08_mybatis/com/lc/pojo/Dept.class
  58. 0 0
      02_JavaWeb/out/production/day08_mybatis/com/lc/pojo/User.class
  59. 0 0
      02_JavaWeb/out/production/day08_mybatis/jdbc.properties
  60. 0 0
      02_JavaWeb/out/production/day08_mybatis/log4j.xml
  61. 0 0
      02_JavaWeb/out/production/day08_mybatis/mybatis-config.xml
  62. 0 0
      02_JavaWeb/out/production/day09_mybatis/com/lc/mapper/UserMapper.class
  63. 0 0
      02_JavaWeb/out/production/day09_mybatis/com/lc/pojo/User.class
  64. 0 0
      02_JavaWeb/out/production/day10_mybatis/com/lc/mapper/UserMapper.class
  65. 0 0
      02_JavaWeb/out/production/day10_mybatis/com/lc/mapper/UserMapper.xml
  66. 0 0
      02_JavaWeb/out/production/day10_mybatis/com/lc/pojo/User.class
  67. 0 0
      02_JavaWeb/out/production/day10_mybatis/jdbc.properties
  68. 0 0
      02_JavaWeb/out/production/day10_mybatis/log4j.xml
  69. 0 0
      02_JavaWeb/out/production/day10_mybatis/mybatis-config.xml
  70. 0 0
      02_JavaWeb/out/production/day11_mybatis/com/lc/mapper/UserMapper.class
  71. 0 0
      02_JavaWeb/out/production/day11_mybatis/com/lc/mapper/UserMapper.xml
  72. 0 0
      02_JavaWeb/out/production/day11_mybatis/com/lc/pojo/User.class
  73. 0 0
      02_JavaWeb/out/production/day11_mybatis/ehcache.xml
  74. 0 0
      02_JavaWeb/out/production/day11_mybatis/jdbc.properties
  75. 0 0
      02_JavaWeb/out/production/day11_mybatis/log4j.xml
  76. 0 0
      02_JavaWeb/out/production/day11_mybatis/mybatis-config.xml
  77. binární
      02_JavaWeb/out/test/day04_maven_jdbc/TestDept.class
  78. binární
      02_JavaWeb/out/test/day04_maven_jdbc/TestDruid.class
  79. binární
      02_JavaWeb/out/test/day04_maven_jdbc/TestJdbc01.class
  80. 0 0
      02_JavaWeb/out/test/day06_mybatis/TestMybatis01.class
  81. 0 0
      02_JavaWeb/out/test/day07_mybatis/TestMybatis01.class
  82. 0 0
      02_JavaWeb/out/test/day08_mybatis/TestMybatis01.class
  83. 0 0
      02_JavaWeb/out/test/day09_mybatis/TestMybatis01.class
  84. 0 0
      02_JavaWeb/out/test/day10_mybatis/TestMybatis01.class
  85. 0 0
      02_JavaWeb/out/test/day11_mybatis/TestMybatis01.class

+ 22 - 0
02_JavaWeb/.idea/02_JavaWeb.iml

@@ -1,5 +1,27 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <module type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="web" name="Web">
+      <configuration>
+        <descriptors>
+          <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/demo1/src/main/webapp/WEB-INF/web.xml" />
+        </descriptors>
+        <webroots>
+          <root url="file://$MODULE_DIR$/demo1/src/main/webapp" relative="/" />
+        </webroots>
+      </configuration>
+    </facet>
+    <facet type="web" name="Web2">
+      <configuration>
+        <descriptors>
+          <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/demo/src/main/webapp/WEB-INF/web.xml" />
+        </descriptors>
+        <webroots>
+          <root url="file://$MODULE_DIR$/demo/src/main/webapp" relative="/" />
+        </webroots>
+      </configuration>
+    </facet>
+  </component>
   <component name="NewModuleRootManager" inherit-compiler-output="true">
     <exclude-output />
     <content url="file://$MODULE_DIR$" />

+ 2 - 0
02_JavaWeb/.idea/compiler.xml

@@ -28,6 +28,8 @@
       <module name="day10_html_css" target="1.8" />
       <module name="day10_mybatis (1)" target="1.8" />
       <module name="day10_mybatis (2)" target="1.8" />
+      <module name="demo" target="1.8" />
+      <module name="demo1" target="1.8" />
     </bytecodeTargetLevel>
   </component>
 </project>

+ 4 - 0
02_JavaWeb/.idea/encodings.xml

@@ -23,6 +23,10 @@
     <file url="file://$PROJECT_DIR$/day10_mybatis/src/main/resources" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/day11_mybatis/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/day11_mybatis/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/demo/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/demo/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/demo1/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/demo1/src/main/resources" charset="UTF-8" />
     <file url="PROJECT" charset="UTF-8" />
   </component>
 </project>

+ 7 - 1
02_JavaWeb/.idea/misc.xml

@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ExternalStorageConfigurationManager" enabled="true" />
   <component name="MavenProjectsManager">
@@ -15,8 +14,15 @@
         <option value="$PROJECT_DIR$/day10_html_css/pom.xml" />
         <option value="$PROJECT_DIR$/day10_mybatis/pom.xml" />
         <option value="$PROJECT_DIR$/day11_mybatis/pom.xml" />
+        <option value="$PROJECT_DIR$/demo1/pom.xml" />
+        <option value="$PROJECT_DIR$/demo/pom.xml" />
       </list>
     </option>
+    <option name="ignoredFiles">
+      <set>
+        <option value="$PROJECT_DIR$/demo1/pom.xml" />
+      </set>
+    </option>
   </component>
   <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/out" />

+ 2 - 3
02_JavaWeb/.idea/modules.xml

@@ -9,9 +9,8 @@
       <module fileurl="file://$PROJECT_DIR$/day05_mybatis/day05_mybatis.iml" filepath="$PROJECT_DIR$/day05_mybatis/day05_mybatis.iml" />
       <module fileurl="file://$PROJECT_DIR$/day10_html.iml" filepath="$PROJECT_DIR$/day10_html.iml" />
       <module fileurl="file://$PROJECT_DIR$/day10_html1.iml" filepath="$PROJECT_DIR$/day10_html1.iml" />
-      <module fileurl="file://$PROJECT_DIR$/day11.iml" filepath="$PROJECT_DIR$/day11.iml" />
-      <module fileurl="file://$PROJECT_DIR$/day11_html.iml" filepath="$PROJECT_DIR$/day11_html.iml" />
-      <module fileurl="file://$PROJECT_DIR$/day12_html_css.iml" filepath="$PROJECT_DIR$/day12_html_css.iml" />
+      <module fileurl="file://$PROJECT_DIR$/day12_js.iml" filepath="$PROJECT_DIR$/day12_js.iml" />
+      <module fileurl="file://$PROJECT_DIR$/day12_js/day13_js.iml" filepath="$PROJECT_DIR$/day12_js/day13_js.iml" />
     </modules>
   </component>
 </project>

+ 218 - 11
02_JavaWeb/.idea/workspace.xml

@@ -1,17 +1,94 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="ArtifactsWorkspaceSettings">
+    <artifacts-to-build>
+      <artifact name="demo:war exploded" />
+    </artifacts-to-build>
+  </component>
   <component name="AutoImportSettings">
     <option name="autoReloadType" value="SELECTIVE" />
   </component>
   <component name="ChangeListManager">
     <list default="true" id="7222eceb-2db8-407d-9241-ba20a077e1a3" name="Changes" comment="">
-      <change afterPath="$PROJECT_DIR$/day12_html_css.iml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day12_html_css/html/TestCss.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day12_html_css/html/TestForm.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/day12_html_css/html/TestItem.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day12_js/01_js.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day12_js/02_js.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day12_js/03_js.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day12_js/04_js.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day12_js/05_js.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day12_js/js/helle.js" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/back.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/forward.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/html-login/css/style.default.css" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/html-login/img/image-20230127220258675.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/html-login/img/image-20230127220316018.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/html-login/img/p_big3.jpg" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/html-login/js/front.js" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/html-login/login.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/html-login/register.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/html-login/vendor/jquery-validation/jquery.validate.min.js" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/imgs/off.gif" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/imgs/on.gif" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/js01.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/js02.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/js02_1.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/js03.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/js04.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/js05.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/js06.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/js07.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/js08.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/day13_js/js09.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/02_JavaWeb.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/02_JavaWeb.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../maven_test/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../maven_test/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/day06_mybatis/target/classes/com/lc/mapper/UserMapper.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day06_mybatis/target/classes/com/lc/mapper/UserMapper.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day06_mybatis/target/classes/com/lc/pojo/User.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day06_mybatis/target/classes/jdbc.properties" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day06_mybatis/target/classes/mybatis-config.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day06_mybatis/target/test-classes/TestMybatis01.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day07_mybatis/target/classes/com/lc/mapper/UserMapper.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day07_mybatis/target/classes/com/lc/mapper/UserMapper.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day07_mybatis/target/classes/com/lc/pojo/User.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day07_mybatis/target/classes/jdbc.properties" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day07_mybatis/target/classes/log4j.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day07_mybatis/target/classes/mybatis-config.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day07_mybatis/target/test-classes/TestMybatis01.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day08_mybatis/target/classes/com/lc/mapper/DeptMapper.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day08_mybatis/target/classes/com/lc/mapper/DeptMapper.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day08_mybatis/target/classes/com/lc/mapper/UserMapper.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day08_mybatis/target/classes/com/lc/mapper/UserMapper.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day08_mybatis/target/classes/com/lc/pojo/Dept.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day08_mybatis/target/classes/com/lc/pojo/User.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day08_mybatis/target/classes/jdbc.properties" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day08_mybatis/target/classes/log4j.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day08_mybatis/target/classes/mybatis-config.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day08_mybatis/target/test-classes/TestMybatis01.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day09_mybatis/target/classes/com/lc/mapper/UserMapper.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day09_mybatis/target/classes/com/lc/pojo/User.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day09_mybatis/target/test-classes/TestMybatis01.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day10_mybatis/target/classes/com/lc/mapper/UserMapper.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day10_mybatis/target/classes/com/lc/mapper/UserMapper.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day10_mybatis/target/classes/com/lc/pojo/User.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day10_mybatis/target/classes/jdbc.properties" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day10_mybatis/target/classes/log4j.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day10_mybatis/target/classes/mybatis-config.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day10_mybatis/target/test-classes/TestMybatis01.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day11.iml" beforeDir="false" afterPath="$PROJECT_DIR$/day12_js.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/day11_html.iml" beforeDir="false" afterPath="$PROJECT_DIR$/day12_js/day13_js.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/day11_mybatis/target/classes/com/lc/mapper/UserMapper.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day11_mybatis/target/classes/com/lc/mapper/UserMapper.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day11_mybatis/target/classes/com/lc/pojo/User.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day11_mybatis/target/classes/ehcache.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day11_mybatis/target/classes/jdbc.properties" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day11_mybatis/target/classes/log4j.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day11_mybatis/target/classes/mybatis-config.xml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day11_mybatis/target/test-classes/TestMybatis01.class" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day12_html_css.iml" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/day12_html_css/html/TestCss.html" beforeDir="false" afterPath="$PROJECT_DIR$/day12_html_css/html/TestCss.html" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -26,6 +103,7 @@
     <option name="RECENT_TEMPLATES">
       <list>
         <option value="Class" />
+        <option value="JavaScript File" />
         <option value="HTML File" />
       </list>
     </option>
@@ -36,9 +114,23 @@
   <component name="HighlightingSettingsPerFile">
     <setting file="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.5.6/mybatis-3.5.6-sources.jar!/org/apache/ibatis/session/SqlSessionFactory.java" root0="SKIP_INSPECTION" />
   </component>
+  <component name="LogFilters">
+    <option name="FILTER_ERRORS" value="false" />
+    <option name="FILTER_WARNINGS" value="false" />
+    <option name="FILTER_INFO" value="true" />
+    <option name="FILTER_DEBUG" value="true" />
+    <option name="CUSTOM_FILTER" />
+  </component>
   <component name="MarkdownSettingsMigration">
     <option name="stateVersion" value="1" />
   </component>
+  <component name="MavenImportPreferences">
+    <option name="importingSettings">
+      <MavenImportingSettings>
+        <option name="useMavenOutput" value="false" />
+      </MavenImportingSettings>
+    </option>
+  </component>
   <component name="ProjectColorInfo">{
   &quot;associatedIndex&quot;: 2
 }</component>
@@ -52,13 +144,14 @@
   </component>
   <component name="PropertiesComponent"><![CDATA[{
   "keyToString": {
+    "ASKED_ADD_EXTERNAL_FILES": "true",
     "DefaultHtmlFileTemplate": "HTML File",
     "RunOnceActivity.OpenProjectViewOnStart": "true",
     "RunOnceActivity.ShowReadmeOnStart": "true",
     "SHARE_PROJECT_CONFIGURATION_FILES": "true",
     "WebServerToolWindowFactoryState": "false",
     "jdk.selected.JAVA_MODULE": "17",
-    "last_opened_file_path": "C:/LoveCoding/VIP-27/code/02_JavaWeb/day12_html_css/html",
+    "last_opened_file_path": "C:/LoveCoding/VIP-27/code/02_JavaWeb/day13_js",
     "node.js.detected.package.eslint": "true",
     "node.js.detected.package.tslint": "true",
     "node.js.selected.package.eslint": "(autodetect)",
@@ -67,7 +160,7 @@
     "project.structure.last.edited": "Modules",
     "project.structure.proportion": "0.15",
     "project.structure.side.proportion": "0.2908046",
-    "settings.editor.selected.configurable": "editor.preferences.fonts.default",
+    "settings.editor.selected.configurable": "reference.settings.project.maven.importing",
     "vue.rearranger.settings.migration": "true"
   },
   "keyToStringList": {
@@ -83,11 +176,11 @@
 }]]></component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
+      <recent name="C:\LoveCoding\VIP-27\code\02_JavaWeb\day13_js" />
+      <recent name="C:\LoveCoding\VIP-27\code\02_JavaWeb\day13_js\imgs" />
+      <recent name="C:\LoveCoding\VIP-27\code\02_JavaWeb\day12_js" />
       <recent name="C:\LoveCoding\VIP-27\code\02_JavaWeb\day12_html_css\html" />
       <recent name="C:\LoveCoding\VIP-27\code\02_JavaWeb\day11_html\imgs" />
-      <recent name="C:\LoveCoding\VIP-27\code\02_JavaWeb\day11_html\html" />
-      <recent name="C:\LoveCoding\VIP-27\code\02_JavaWeb\day11" />
-      <recent name="C:\LoveCoding\VIP-27\code\02_JavaWeb\day08_mybatis\src\main\resources\com\lc\mapper" />
     </key>
     <key name="MoveFile.RECENT_KEYS">
       <recent name="C:\LoveCoding\VIP-27\code\02_JavaWeb\day06_mybatis\src\main\resources\com" />
@@ -102,7 +195,7 @@
       <recent name="" />
     </key>
   </component>
-  <component name="RunManager" selected="JavaScript Debug.Test02.html">
+  <component name="RunManager" selected="Tomcat Server.Tomcat 8.5.27">
     <configuration name="TestMybatis01" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
       <module name="day11_mybatis" />
       <option name="PACKAGE_NAME" value="" />
@@ -145,6 +238,100 @@
     <configuration name="Test02.html" type="JavascriptDebugType" temporary="true" nameIsGenerated="true" uri="http://localhost:63343/02_JavaWeb/02_JavaWeb/day11_html/html/Test02.html" useBuiltInWebServerPort="true">
       <method v="2" />
     </configuration>
+    <configuration name="Tomcat 8.5.27" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 8.5.27" ALTERNATIVE_JRE_ENABLED="false">
+      <deployment>
+        <artifact name="demo:war exploded">
+          <settings>
+            <option name="CONTEXT_PATH" value="/demo_war_exploded" />
+          </settings>
+        </artifact>
+      </deployment>
+      <server-settings>
+        <option name="BASE_DIRECTORY_NAME" value="357d82dc-9d87-45df-88db-687585ca722a" />
+      </server-settings>
+      <predefined_log_file enabled="true" id="Tomcat" />
+      <predefined_log_file enabled="true" id="Tomcat Catalina" />
+      <predefined_log_file id="Tomcat Manager" />
+      <predefined_log_file id="Tomcat Host Manager" />
+      <predefined_log_file id="Tomcat Localhost Access" />
+      <RunnerSettings RunnerId="Debug">
+        <option name="DEBUG_PORT" value="54441" />
+      </RunnerSettings>
+      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Cover">
+        <option name="USE_ENV_VARIABLES" value="true" />
+        <STARTUP>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </STARTUP>
+        <SHUTDOWN>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </SHUTDOWN>
+      </ConfigurationWrapper>
+      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Debug">
+        <option name="USE_ENV_VARIABLES" value="true" />
+        <STARTUP>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </STARTUP>
+        <SHUTDOWN>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </SHUTDOWN>
+      </ConfigurationWrapper>
+      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Profile">
+        <option name="USE_ENV_VARIABLES" value="true" />
+        <STARTUP>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </STARTUP>
+        <SHUTDOWN>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </SHUTDOWN>
+      </ConfigurationWrapper>
+      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Run">
+        <option name="USE_ENV_VARIABLES" value="true" />
+        <STARTUP>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </STARTUP>
+        <SHUTDOWN>
+          <option name="USE_DEFAULT" value="true" />
+          <option name="SCRIPT" value="" />
+          <option name="VM_PARAMETERS" value="" />
+          <option name="PROGRAM_PARAMETERS" value="" />
+        </SHUTDOWN>
+      </ConfigurationWrapper>
+      <method v="2">
+        <option name="Make" enabled="true" />
+        <option name="BuildArtifacts" enabled="true">
+          <artifact name="demo:war exploded" />
+        </option>
+      </method>
+    </configuration>
+    <list>
+      <item itemvalue="JavaScript Debug.Test02.html" />
+      <item itemvalue="JUnit.TestMybatis01" />
+      <item itemvalue="JUnit.TestMybatis01.test01" />
+      <item itemvalue="JUnit.TestMybatis01.test02" />
+      <item itemvalue="JUnit.TestMybatis01.test03 (1)" />
+      <item itemvalue="Tomcat Server.Tomcat 8.5.27" />
+    </list>
     <recent_temporary>
       <list>
         <item itemvalue="JavaScript Debug.Test02.html" />
@@ -186,6 +373,14 @@
       <workItem from="1695431222331" duration="15300000" />
       <workItem from="1695516934429" duration="32000" />
       <workItem from="1695810454603" duration="3603000" />
+      <workItem from="1696729434597" duration="370000" />
+      <workItem from="1696729816335" duration="1379000" />
+      <workItem from="1696732545781" duration="1075000" />
+      <workItem from="1696849914774" duration="204000" />
+      <workItem from="1696852041687" duration="708000" />
+      <workItem from="1697005011757" duration="9000" />
+      <workItem from="1697019358564" duration="6793000" />
+      <workItem from="1697245336345" duration="16402000" />
     </task>
     <servers />
   </component>
@@ -360,6 +555,18 @@
           <line>39</line>
           <option name="timeStamp" value="63" />
         </line-breakpoint>
+        <line-breakpoint enabled="true" type="javascript">
+          <url>file://$PROJECT_DIR$/day13_js/html-login/login.html</url>
+          <line>137</line>
+          <properties lambdaOrdinal="-1" />
+          <option name="timeStamp" value="64" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="javascript">
+          <url>file://$PROJECT_DIR$/day13_js/html-login/register.html</url>
+          <line>94</line>
+          <properties lambdaOrdinal="-1" />
+          <option name="timeStamp" value="65" />
+        </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
   </component>

+ 0 - 8
02_JavaWeb/day12_html_css.iml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="WEB_MODULE" version="4">
-  <component name="NewModuleRootManager" inherit-compiler-output="true">
-    <exclude-output />
-    <content url="file://$MODULE_DIR$/day12_html_css" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>

+ 0 - 1
02_JavaWeb/day12_html_css/html/TestCss.html

@@ -31,7 +31,6 @@
 </style>
 <body>
 
-
   <h1>你好 css</h1>
 
   <p class="p1">你好 css1</p>

+ 1 - 1
02_JavaWeb/day11.iml → 02_JavaWeb/day12_js.iml

@@ -2,7 +2,7 @@
 <module type="WEB_MODULE" version="4">
   <component name="NewModuleRootManager" inherit-compiler-output="true">
     <exclude-output />
-    <content url="file://$MODULE_DIR$/day11" />
+    <content url="file://$MODULE_DIR$/day12_js" />
     <orderEntry type="sourceFolder" forTests="false" />
   </component>
 </module>

+ 17 - 0
02_JavaWeb/day12_js/01_js.html

@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>入门</title>
+    <!--单独形成一行 -->
+    <script src="js/helle.js"></script>
+</head>
+<body>
+<script>
+    // alert("你好js1")
+    // alert("你好js2")
+    // alert("你好js3")
+</script>
+
+</body>
+</html>

+ 90 - 0
02_JavaWeb/day12_js/02_js.html

@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>入门</title>
+</head>
+<body>
+<script>
+    //弹出框
+    //alert("hello js")
+
+    //写入到页面
+    //document.write("hello javascript")
+
+    //浏览器控制台 推荐
+    console.log("浏览器控制台输出")
+    console.log("浏览器控制台输出")
+
+    //变量 全局变量
+    var a = 12;
+
+    console.log( typeof a);
+    console.log("变量:"+a);
+
+    {
+        var b = 22;
+    }
+    console.log("变量:"+b);
+
+    // {
+    //     let c = 30;
+    // }
+    // console.log("变量:"+c);
+
+    const d = 10;
+    console.log("变量:"+d);
+
+
+    //数据类型
+    /*
+        5种 number String null boolean undefind
+     */
+    let n = 20;
+
+    let s = "hello js";
+
+    let m = null;
+
+    let t = true;
+
+    let f ;
+
+    console.log(typeof n)
+    console.log(typeof s)
+    console.log(typeof m)
+    console.log(typeof t)
+    console.log(typeof f)
+
+    //转换
+    var s1 = "20";
+    var s2 = "30abc";
+
+    var a = +"10"+10;
+
+    console.log(s1+a);
+    console.log(s2+a);
+    console.log(a);
+
+    //方法
+    let number = parseInt("a123abc");
+    console.log(number)
+
+    //布尔  true 1 false 0
+    let b2 = true+1;
+    console.log(b2)
+
+    //数字 booelan 0 false 其余 true
+    if (3){
+        console.log(3)
+    }
+
+    //字符串
+    if (""){
+        console.log("空窜") // false 其余 true
+    }
+
+
+</script>
+</body>
+</html>

+ 71 - 0
02_JavaWeb/day12_js/03_js.html

@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>入门</title>
+</head>
+<body>
+<script>
+    //函数 = 方法
+    /*
+        方法 参数 返回值
+     */
+    //格式1
+    function method1(a){
+        console.log("method1")
+        console.log("参数"+a);
+    }
+
+    //调用
+    method1(20);
+
+    function method2(){
+        return "hello js";
+    }
+
+    //调用
+    let b = method2();
+    console.log("返回值:"+b)
+
+    //格式2
+    let m1 = function (){
+        console.log("m1")
+    }
+
+    //调用
+    m1()
+    m1()
+
+
+    /*
+    打印机: 将指定的字符串传入函数内,在浏览器形成打印机的效果.
+     */
+    let s = "将指定的字符串传入函数内,在浏览器形成打印机的效果";
+    function print(s){
+        let  s1 = "";
+        let body = document.getElementsByName("body")[0];
+        //遍历
+        for (let i = 0; i < s.length; i++) {
+            s1 += s.charAt(i)
+            console.log(s1)
+        }
+    }
+
+    print(s)
+
+    /*
+    闰年判断: 判断是否时闰年,输入年份判断是否时闰年返回boolean值.
+     */
+
+    function isYear(year){
+        return (year % 4== 0 && year % 100 == 0) || year % 400 == 0 ;
+    }
+
+    //调用
+    console.log("是否是闰年:"+isYear(2000))
+
+
+
+</script>
+</body>
+</html>

+ 38 - 0
02_JavaWeb/day12_js/04_js.html

@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>入门</title>
+</head>
+<body>
+<script>
+    //自定义对象
+    let person = {
+        //属性
+        name : "zs",
+        age  : 22,
+
+        studay : function (){
+            console.log("学习方法")
+        }
+    }
+
+    //使用
+    console.log("名称:"+person.name);
+    person.address = "北京"
+    console.log("地址:"+person.address);
+
+    //方法
+    person.studay()
+
+    person.eat = function (){
+        console.log("干饭人")
+    }
+
+    person.eat()
+
+
+
+</script>
+</body>
+</html>

+ 58 - 0
02_JavaWeb/day12_js/05_js.html

@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>入门</title>
+</head>
+<body>
+<script>
+    //数组对象
+    let  arr = new Array("tom","zs","ls");
+
+    let  arr1 = [1,"2",new Object()]
+
+    //操作
+    console.log(arr[0]);
+    console.log(arr[1]);
+    console.log(arr[2]);
+
+    console.log(arr1[0]);
+    console.log(arr1[1]);
+    console.log(arr1[2]);
+
+    //长度
+    console.log(arr1.length)
+    console.log(arr.length)
+
+    //方法
+    let arr2 = new Array();
+
+    arr2[3] = "hij";
+    arr2.push("abc");
+    arr2.push("efg");
+
+    console.log(arr2)
+
+    console.log(arr2.length)
+
+    console.log(arr2.pop()) ;
+    console.log(arr2.pop()) ;
+    console.log(arr2.pop()) ;
+
+    console.log(arr2)
+
+    let arr3 = new Array("1","2","3","4");
+
+    console.log(arr3)
+    //变成字符串 "1","2","3","4"
+
+    let str = arr3.join(",");
+    console.log(str)
+
+    //Date
+    let date = new Date();
+    console.log(date)
+
+</script>
+</body>
+</html>

+ 1 - 1
02_JavaWeb/day11_html.iml → 02_JavaWeb/day12_js/day13_js.iml

@@ -2,7 +2,7 @@
 <module type="WEB_MODULE" version="4">
   <component name="NewModuleRootManager" inherit-compiler-output="true">
     <exclude-output />
-    <content url="file://$MODULE_DIR$/day11_html" />
+    <content url="file://$MODULE_DIR$/day13_js" />
     <orderEntry type="sourceFolder" forTests="false" />
   </component>
 </module>

+ 6 - 0
02_JavaWeb/day12_js/js/helle.js

@@ -0,0 +1,6 @@
+//单行
+
+/*
+    多行注释
+ */
+alert("外部引用方式")

+ 10 - 0
02_JavaWeb/day13_js/back.html

@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>back</title>
+</head>
+<body>
+    back
+</body>
+</html>

+ 10 - 0
02_JavaWeb/day13_js/forward.html

@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>forward</title>
+</head>
+<body>
+    forward
+</body>
+</html>

+ 3497 - 0
02_JavaWeb/day13_js/html-login/css/style.default.css

@@ -0,0 +1,3497 @@
+/*
+==========================================================
+==========================================================
+
+Bootstrap 4 Admin Template
+
+https://bootstrapious.com/p/admin-template
+
+==========================================================
+==========================================================
+*/
+/*
+* ==========================================================
+*     GENERAL STYLES
+* ==========================================================
+*/
+body {
+  overflow-x: hidden;
+}
+
+a,
+i,
+span {
+  display: inline-block;
+  text-decoration: none;
+  -webkit-transition: all 0.3s;
+  transition: all 0.3s;
+}
+
+a:hover, a:focus,
+i:hover,
+i:focus,
+span:hover,
+span:focus {
+  text-decoration: none;
+}
+
+section {
+  padding: 50px 0;
+}
+
+canvas {
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+
+.container-fluid {
+  padding: 0 30px;
+}
+
+@media (max-width: 575px) {
+  .container-fluid {
+    padding: 0 15px;
+  }
+}
+
+header.page-header {
+  padding: 20px 0;
+}
+
+table {
+  font-size: 0.9em;
+  color: #666;
+}
+
+.card-close {
+  position: absolute;
+  top: 15px;
+  right: 15px;
+}
+
+.card-close .dropdown-toggle {
+  color: #999;
+  background: none;
+  border: none;
+}
+
+.card-close .dropdown-toggle:after {
+  display: none;
+}
+
+.card-close .dropdown-menu {
+  border: none;
+  min-width: auto;
+  font-size: 0.9em;
+  border-radius: 0;
+  -webkit-box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.1), -2px -2px 3px rgba(0, 0, 0, 0.1);
+  box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.1), -2px -2px 3px rgba(0, 0, 0, 0.1);
+}
+
+.card-close .dropdown-menu a {
+  color: #999 !important;
+}
+
+.card-close .dropdown-menu a:hover {
+  background: #796AEE;
+  color: #fff !important;
+}
+
+.card-close .dropdown-menu a i {
+  margin-right: 10px;
+  -webkit-transition: none;
+  transition: none;
+}
+
+.content-inner {
+  position: relative;
+  width: calc(100% - 250px);
+  min-height: calc(100vh - 70px);
+  padding-bottom: 60px;
+}
+
+.content-inner.active {
+  width: calc(100% - 90px);
+}
+
+.page-header {
+  background: #fff;
+  padding: 20px;
+  -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
+  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
+  position: relative;
+  z-index: 8;
+}
+
+*[class*="icon-"] {
+  -webkit-transform: translateY(3px);
+  transform: translateY(3px);
+}
+
+button,
+input {
+  outline: none !important;
+}
+
+.card {
+  margin-bottom: 30px;
+  -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1), -1px 0 2px rgba(0, 0, 0, 0.05);
+  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1), -1px 0 2px rgba(0, 0, 0, 0.05);
+}
+
+.card-header {
+  -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.05);
+  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.05);
+}
+
+.card-header h1,
+.card-header h2,
+.card-header h3,
+.card-header h4,
+.card-header h5,
+.card-header h6 {
+  margin-bottom: 0;
+}
+
+.breadcrumb-holder {
+  background: #fff;
+}
+
+.breadcrumb {
+  background: #fff;
+  position: relative;
+  z-index: 7;
+  border-radius: 0;
+  padding: 15px 0;
+  margin-bottom: 0;
+}
+
+.breadcrumb li.breadcrumb-item {
+  color: #aaa;
+  font-weight: 300;
+}
+
+/*=== Helpers ===*/
+.text-bold {
+  font-weight: 700;
+}
+
+.text-small {
+  font-size: 0.9rem;
+}
+
+.text-xsmall {
+  font-size: 0.8rem;
+}
+
+.bg-red {
+  background: #ff7676 !important;
+  color: #fff;
+}
+
+.bg-red:hover {
+  color: #fff;
+}
+
+.bg-blue {
+  background: #85b4f2 !important;
+  color: #fff;
+}
+
+.bg-blue:hover {
+  color: #fff;
+}
+
+.bg-yellow {
+  background: #eef157 !important;
+  color: #fff;
+}
+
+.bg-yellow:hover {
+  color: #fff;
+}
+
+.bg-green {
+  background: #54e69d !important;
+  color: #fff;
+}
+
+.bg-green:hover {
+  color: #fff;
+}
+
+.bg-orange {
+  background: #ffc36d !important;
+  color: #fff;
+}
+
+.bg-orange:hover {
+  color: #fff;
+}
+
+.bg-violet {
+  background: #796AEE !important;
+  color: #fff;
+}
+
+.bg-violet:hover {
+  color: #fff;
+}
+
+.bg-gray {
+  background: #ced4da !important;
+}
+
+.bg-white {
+  background: #fff !important;
+}
+
+.text-red {
+  color: #ff7676;
+}
+
+.text-red:hover {
+  color: #ff7676;
+}
+
+.text-yellow {
+  color: #eef157;
+}
+
+.text-yellow:hover {
+  color: #eef157;
+}
+
+.text-green {
+  color: #54e69d;
+}
+
+.text-green:hover {
+  color: #54e69d;
+}
+
+.text-orange {
+  color: #ffc36d;
+}
+
+.text-orange:hover {
+  color: #ffc36d;
+}
+
+.text-violet {
+  color: #796AEE;
+}
+
+.text-violet:hover {
+  color: #796AEE;
+}
+
+.text-blue {
+  color: #85b4f2;
+}
+
+.text-blue:hover {
+  color: #85b4f2;
+}
+
+.text-gray {
+  color: #ced4da;
+}
+
+.text-gray:hover {
+  color: #ced4da;
+}
+
+.text-uppercase {
+  letter-spacing: 0.2em;
+}
+
+.lh-2 {
+  line-height: 2;
+}
+
+.page {
+  background: #EEF5F9;
+}
+
+.page .text-white {
+  color: #fff;
+}
+
+.no-padding {
+  padding: 0 !important;
+}
+
+.no-padding-bottom {
+  padding-bottom: 0 !important;
+}
+
+.no-padding-top {
+  padding-top: 0 !important;
+}
+
+.no-margin {
+  margin: 0 !important;
+}
+
+.no-margin-bottom {
+  margin-bottom: 0 !important;
+}
+
+.no-margin-top {
+  margin-top: 0 !important;
+}
+
+.page {
+  overflow-x: hidden;
+}
+
+.has-shadow {
+  -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1), -1px 0 2px rgba(0, 0, 0, 0.05);
+  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1), -1px 0 2px rgba(0, 0, 0, 0.05);
+}
+
+.badge {
+  font-weight: 400;
+}
+
+.badge-rounded {
+  border-radius: 50px;
+}
+
+.list-group-item {
+  border-right: 0;
+  border-left: 0;
+}
+
+.list-group-item:first-child, .list-group-item:last-child {
+  border-radius: 0;
+}
+
+.overflow-hidden {
+  overflow: hidden;
+}
+
+.tile-link {
+  position: absolute;
+  cursor: pointer;
+  width: 100%;
+  height: 100%;
+  left: 0;
+  top: 0;
+  z-index: 30;
+}
+
+/*
+* ==========================================================
+*     SIDEBAR
+* ==========================================================
+*/
+nav.side-navbar {
+  background: #fff;
+  min-width: 250px;
+  max-width: 250px;
+  color: #686a76;
+  -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+  z-index: 9;
+  /*==== Sidebar Header ====*/
+  /*==== Sidebar Menu ====*/
+  /*==== Shrinked Sidebar ====*/
+}
+
+nav.side-navbar a {
+  color: inherit;
+  position: relative;
+  font-size: 0.9em;
+}
+
+nav.side-navbar a[data-toggle="collapse"]::before {
+  content: '\f104';
+  display: inline-block;
+  -webkit-transform: translateY(-50%);
+  transform: translateY(-50%);
+  font-family: 'FontAwesome';
+  position: absolute;
+  top: 50%;
+  right: 20px;
+}
+
+nav.side-navbar a[aria-expanded="true"] {
+  background: #EEF5F9;
+}
+
+nav.side-navbar a[aria-expanded="true"]::before {
+  content: '\f107';
+}
+
+nav.side-navbar a i {
+  font-size: 1.2em;
+  margin-right: 10px;
+  -webkit-transition: none;
+  transition: none;
+}
+
+nav.side-navbar .sidebar-header {
+  padding: 30px 15px;
+}
+
+nav.side-navbar .avatar {
+  width: 55px;
+  height: 55px;
+}
+
+nav.side-navbar .title {
+  margin-left: 10px;
+}
+
+nav.side-navbar .title h1 {
+  color: #333;
+}
+
+nav.side-navbar .title p {
+  font-size: 0.9em;
+  font-weight: 200;
+  margin-bottom: 0;
+  color: #aaa;
+}
+
+nav.side-navbar span.heading {
+  text-transform: uppercase;
+  font-weight: 400;
+  margin-left: 20px;
+  color: #ccc;
+  font-size: 0.8em;
+}
+
+nav.side-navbar ul {
+  padding: 15px 0;
+}
+
+nav.side-navbar ul li {
+  /* submenu item active */
+}
+
+nav.side-navbar ul li a {
+  padding: 10px 15px;
+  text-decoration: none;
+  display: block;
+  font-weight: 300;
+  border-left: 4px solid transparent;
+}
+
+nav.side-navbar ul li a:hover {
+  background: #796AEE;
+  border-left: 4px solid #3b25e6;
+  color: #fff;
+}
+
+nav.side-navbar ul li li a {
+  padding-left: 50px;
+  background: #EEF5F9;
+}
+
+nav.side-navbar ul li.active > a {
+  background: #796AEE;
+  color: #fff;
+  border-left: 4px solid #3b25e6;
+}
+
+nav.side-navbar ul li.active > a:hover {
+  background: #796AEE;
+}
+
+nav.side-navbar ul li li.active > a {
+  background: #8e81f1;
+}
+
+nav.side-navbar ul li ul {
+  padding: 0;
+}
+
+nav.side-navbar.shrinked {
+  min-width: 90px;
+  max-width: 90px;
+  text-align: center;
+}
+
+nav.side-navbar.shrinked span.heading {
+  margin: 0;
+}
+
+nav.side-navbar.shrinked ul li a {
+  padding: 15px 2px;
+  border: none;
+  font-size: 0.8em;
+  color: #aaa;
+  -webkit-transition: color 0.3s, background 0.3s;
+  transition: color 0.3s, background 0.3s;
+}
+
+nav.side-navbar.shrinked ul li a[data-toggle="collapse"]::before {
+  content: '\f107';
+  -webkit-transform: translateX(50%);
+  transform: translateX(50%);
+  position: absolute;
+  top: auto;
+  right: 50%;
+  bottom: 0;
+  left: auto;
+}
+
+nav.side-navbar.shrinked ul li a[data-toggle="collapse"][aria-expanded="true"]::before {
+  content: '\f106';
+}
+
+nav.side-navbar.shrinked ul li a:hover {
+  color: #fff;
+  border: none;
+}
+
+nav.side-navbar.shrinked ul li a:hover i {
+  color: #fff;
+}
+
+nav.side-navbar.shrinked ul li a i {
+  margin-right: 0;
+  margin-bottom: 2px;
+  display: block;
+  font-size: 1rem;
+  color: #333;
+  -webkit-transition: color 0.3s;
+  transition: color 0.3s;
+}
+
+nav.side-navbar.shrinked ul li.active > a {
+  color: #fff;
+}
+
+nav.side-navbar.shrinked ul li.active > a i {
+  color: #fff;
+}
+
+nav.side-navbar.shrinked .sidebar-header .title {
+  display: none;
+}
+
+/* SIDEBAR MEDIAQUERIES ----------------------------------- */
+@media (max-width: 1199px) {
+  nav.side-navbar {
+    margin-left: -90px;
+    min-width: 90px;
+    max-width: 90px;
+    text-align: center;
+    overflow: hidden;
+  }
+  nav.side-navbar span.heading {
+    margin: 0;
+  }
+  nav.side-navbar ul li a {
+    padding: 15px 2px;
+    border: none;
+    font-size: 0.8em;
+    color: #aaa;
+    -webkit-transition: color 0.3s, background 0.3s;
+    transition: color 0.3s, background 0.3s;
+  }
+  nav.side-navbar ul li a[data-toggle="collapse"]::before {
+    content: '\f107';
+    -webkit-transform: translateX(50%);
+    transform: translateX(50%);
+    position: absolute;
+    top: auto;
+    right: 50%;
+    bottom: 0;
+    left: auto;
+  }
+  nav.side-navbar ul li a[data-toggle="collapse"][aria-expanded="true"]::before {
+    content: '\f106';
+  }
+  nav.side-navbar ul li a:hover {
+    color: #fff;
+    border: none;
+  }
+  nav.side-navbar ul li a:hover i {
+    color: #fff;
+  }
+  nav.side-navbar ul li a i {
+    margin-right: 0;
+    margin-bottom: 5px;
+    display: block;
+    font-size: 1.6em;
+    color: #333;
+    -webkit-transition: color 0.3s;
+    transition: color 0.3s;
+  }
+  nav.side-navbar ul li.active > a {
+    color: #fff;
+  }
+  nav.side-navbar ul li.active > a i {
+    color: #fff;
+  }
+  nav.side-navbar .sidebar-header .title {
+    display: none;
+  }
+  nav.side-navbar.shrinked {
+    margin-left: 0;
+  }
+  .content-inner {
+    width: 100%;
+  }
+  .content-inner.active {
+    width: calc(100% - 90px);
+  }
+}
+
+/*
+* ==========================================================
+*     MAIN NAVBAR
+* ==========================================================
+*/
+nav.navbar {
+  background: #2f333e;
+  padding-top: 15px;
+  padding-bottom: 15px;
+  color: #fff;
+  position: relative;
+  border-radius: 0;
+  -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2);
+  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2);
+  z-index: 10;
+  padding-left: 0;
+  padding-right: 0;
+  /*==== Toggle Sidebar Btn ====*/
+  /*==== Navbar Items ====*/
+  /*==== Search Box ====*/
+  /*==== Dropdowns ====*/
+}
+
+nav.navbar .badge {
+  width: 22px;
+  height: 22px;
+  line-height: 22px;
+  text-align: center;
+  padding: 0;
+  border-radius: 50%;
+}
+
+nav.navbar .navbar-holder {
+  width: 100%;
+}
+
+nav.navbar a {
+  color: inherit;
+}
+
+nav.navbar .container-fluid {
+  width: 100%;
+}
+
+nav.navbar .menu-btn {
+  margin-right: 20px;
+  font-size: 1.2em;
+  -webkit-transition: all 0.7s;
+  transition: all 0.7s;
+}
+
+nav.navbar .menu-btn span {
+  width: 20px;
+  height: 2px;
+  background: #fff;
+  display: block;
+  margin: 4px auto 0;
+  -webkit-transition: all 0.3s cubic-bezier(0.81, -0.33, 0.345, 1.375);
+  transition: all 0.3s cubic-bezier(0.81, -0.33, 0.345, 1.375);
+}
+
+nav.navbar .menu-btn span:nth-of-type(2) {
+  position: relative;
+  width: 35px;
+  -webkit-transform: rotateY(180deg);
+  transform: rotateY(180deg);
+}
+
+nav.navbar .menu-btn span:nth-of-type(2)::before, nav.navbar .menu-btn span:nth-of-type(2)::after {
+  content: '';
+  width: 6px;
+  height: 2px;
+  display: block;
+  background: #fff;
+  -webkit-transform: rotate(45deg);
+  transform: rotate(45deg);
+  position: absolute;
+  top: 2px;
+  left: 0;
+  -webkit-transition: all 0.7s;
+  transition: all 0.7s;
+}
+
+nav.navbar .menu-btn span:nth-of-type(2)::after {
+  -webkit-transform: rotate(145deg);
+  transform: rotate(145deg);
+  position: absolute;
+  top: -2px;
+  left: 0;
+}
+
+nav.navbar .menu-btn.active span:first-of-type {
+  -webkit-transform: translateY(12px);
+  transform: translateY(12px);
+}
+
+nav.navbar .menu-btn.active span:nth-of-type(2) {
+  -webkit-transform: none;
+  transform: none;
+}
+
+nav.navbar .menu-btn.active span:last-of-type {
+  -webkit-transform: translateY(-12px);
+  transform: translateY(-12px);
+}
+
+nav.navbar .nav-link {
+  position: relative;
+}
+
+nav.navbar .nav-link span.badge-corner {
+  position: absolute;
+  top: 0;
+  right: 0;
+  font-weight: 400;
+  font-size: 0.7em;
+}
+
+nav.navbar .nav-link.language span {
+  margin-left: .3rem;
+  vertical-align: middle;
+}
+
+nav.navbar .nav-link.logout i {
+  margin-left: 10px;
+}
+
+nav.navbar .nav-menu {
+  margin-bottom: 0;
+}
+
+nav.navbar .search-box {
+  width: 100%;
+  height: 100%;
+  position: absolute;
+  top: 0;
+  right: 0;
+  padding: 0;
+  background: #fff;
+  z-index: 12;
+  border-radius: 0;
+  display: none;
+}
+
+nav.navbar .search-box .dismiss {
+  position: absolute;
+  top: 50%;
+  right: 20px;
+  -webkit-transform: translateY(-50%);
+  transform: translateY(-50%);
+  background: none;
+  border: none;
+  cursor: pointer;
+  font-size: 1.5em;
+  color: #999;
+}
+
+nav.navbar .search-box form {
+  height: 100%;
+}
+
+nav.navbar .search-box form input {
+  height: 100%;
+  border: none;
+  padding: 20px;
+}
+
+nav.navbar .dropdown-toggle::after {
+  border: none !important;
+  content: '\f107';
+  vertical-align: baseline;
+  font-family: 'FontAwesome';
+  margin-left: .3rem;
+}
+
+nav.navbar .dropdown-menu {
+  right: 0;
+  min-width: 250px;
+  left: auto;
+  margin-top: 15px;
+  margin-bottom: 0;
+  padding: 15px 0;
+  max-width: 400px;
+  border-radius: 0;
+  border: none;
+  -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1), -2px 0 2px rgba(0, 0, 0, 0.1);
+  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1), -2px 0 2px rgba(0, 0, 0, 0.1);
+}
+
+nav.navbar .dropdown-menu .dropdown-item {
+  background: #fff;
+  padding: 10px 20px;
+  font-size: 0.8rem;
+  color: #777;
+  width: 100%;
+}
+
+nav.navbar .dropdown-menu .dropdown-item:hover {
+  background: #f5f5f5;
+}
+
+nav.navbar .dropdown-menu .dropdown-item i {
+  width: 30px;
+  height: 30px;
+  line-height: 30px;
+  background: #796AEE;
+  text-align: center;
+  color: #fff;
+  border-radius: 50%;
+  margin-right: 10px;
+}
+
+nav.navbar .dropdown-menu .dropdown-item small {
+  margin-left: 40px;
+}
+
+nav.navbar .dropdown-menu span {
+  position: static;
+  font-size: 0.9em;
+  color: #999;
+}
+
+nav.navbar .dropdown-menu strong {
+  font-weight: 700;
+}
+
+nav.navbar .dropdown-menu .msg-profile {
+  width: 45px;
+  height: 45px;
+  margin-right: 10px;
+}
+
+nav.navbar .dropdown-menu h3 {
+  font-weight: 500;
+}
+
+/* MAIN NAVBAR MEDIAQUERIES ----------------------------------- */
+@media (max-width: 1199px) {
+  nav.navbar {
+    /*==== Toggle Sidebar Btn ====*/
+  }
+  nav.navbar .menu-btn {
+    margin-right: 20px;
+    font-size: 1.2em;
+    -webkit-transition: all 0.7s;
+    transition: all 0.7s;
+  }
+  nav.navbar .menu-btn span:first-of-type {
+    -webkit-transform: translateY(12px);
+    transform: translateY(12px);
+  }
+  nav.navbar .menu-btn span:nth-of-type(2) {
+    -webkit-transform: none;
+    transform: none;
+  }
+  nav.navbar .menu-btn span:nth-of-type(2)::before, nav.navbar .menu-btn span:nth-of-type(2)::after {
+    -webkit-transform: rotate(45deg);
+    transform: rotate(45deg);
+  }
+  nav.navbar .menu-btn span:nth-of-type(2)::after {
+    -webkit-transform: rotate(145deg);
+    transform: rotate(145deg);
+    position: absolute;
+    top: -2px;
+    left: 0;
+  }
+  nav.navbar .menu-btn span:last-of-type {
+    -webkit-transform: translateY(-12px);
+    transform: translateY(-12px);
+  }
+  nav.navbar .menu-btn.active span:first-of-type {
+    -webkit-transform: none;
+    transform: none;
+  }
+  nav.navbar .menu-btn.active span:nth-of-type(2) {
+    -webkit-transform: rotateY(180deg);
+    transform: rotateY(180deg);
+  }
+  nav.navbar .menu-btn.active span:last-of-type {
+    -webkit-transform: none;
+    transform: none;
+  }
+}
+
+@media (max-width: 575px) {
+  nav.navbar {
+    font-size: 14px;
+  }
+  nav.navbar .badge {
+    width: 19px;
+    height: 19px;
+  }
+  nav.navbar .nav-item > a {
+    font-size: 13px;
+  }
+  nav.navbar .dropdown-menu {
+    right: auto;
+    left: -50%;
+    -webkit-transform: translateX(-50%);
+    transform: translateX(-50%);
+  }
+}
+
+/*
+* ==========================================================
+*     DASHBOARD COUNTS SECTION
+* ==========================================================
+*/
+section.dashboard-counts .icon {
+  width: 40px;
+  height: 40px;
+  line-height: 40px;
+  text-align: center;
+  min-width: 40px;
+  max-width: 40px;
+  border-radius: 50%;
+}
+
+section.dashboard-counts .title {
+  font-size: 1.1em;
+  font-weight: 300;
+  color: #777;
+  margin: 0 20px;
+}
+
+section.dashboard-counts .progress {
+  margin-top: 10px;
+  height: 4px;
+}
+
+section.dashboard-counts .number {
+  font-size: 1.8em;
+  font-weight: 300;
+}
+
+section.dashboard-counts .number strong {
+  font-weight: 700;
+}
+
+section.dashboard-counts .row {
+  padding: 30px 15px;
+  margin: 0;
+}
+
+section.dashboard-counts div[class*='col-'] .item {
+  border-right: 1px solid #eee;
+  padding: 15px 0;
+}
+
+section.dashboard-counts div[class*='col-']:last-of-type .item {
+  border-right: none;
+}
+
+/*  DASHBOARD COUNTS MEDIAQUERIES ------------------------ */
+@media (max-width: 1199px) {
+  section.dashboard-counts div[class*='col-']:nth-of-type(2) .item {
+    border-right: none;
+  }
+}
+
+@media (max-width: 575px) {
+  section.dashboard-counts div[class*='col-'] .item {
+    border-right: none;
+  }
+}
+
+/*
+* ==========================================================
+*     DASHBOARD HEADER SECTION
+* ==========================================================
+*/
+.statistic {
+  padding: 20px 15px;
+  margin-bottom: 15px;
+}
+
+.statistic:last-of-type {
+  margin-bottom: 0;
+}
+
+.statistic strong {
+  font-size: 1.5em;
+  color: #333;
+  font-weight: 700;
+  line-height: 1;
+}
+
+.statistic small {
+  color: #aaa;
+  text-transform: uppercase;
+}
+
+.statistic .icon {
+  width: 40px;
+  height: 40px;
+  line-height: 40px;
+  text-align: center;
+  min-width: 40px;
+  max-width: 40px;
+  color: #fff;
+  border-radius: 50%;
+  margin-right: 15px;
+}
+
+.chart .title {
+  padding: 15px 0 0 15px;
+}
+
+.chart .title strong {
+  font-weight: 700;
+  font-size: 1.2em;
+}
+
+.chart .title small {
+  color: #aaa;
+  text-transform: uppercase;
+}
+
+.chart .line-chart {
+  width: 100%;
+  height: 100%;
+  padding: 20px 0;
+}
+
+.chart .line-chart canvas {
+  width: calc(100% - 30px) !important;
+}
+
+.chart .bar-chart {
+  margin-bottom: 15px;
+}
+
+.chart .bar-chart canvas {
+  padding: 15px;
+  width: 100%;
+  margin: 0;
+}
+
+/*  DASHBOARD HEADER  MEDIAQUERIES ------------------------*/
+@media (max-width: 991px) {
+  section.dashboard-header div[class*='col-'] {
+    margin-bottom: 20px;
+  }
+}
+
+/*
+* ==========================================================
+*     PROJECTS SECTION
+* ==========================================================
+*/
+.project .row {
+  margin: 0;
+  padding: 15px 0;
+  margin-bottom: 15px;
+}
+
+.project div[class*='col-'] {
+  border-right: 1px solid #eee;
+}
+
+.project .text h3 {
+  margin-bottom: 0;
+  color: #555;
+}
+
+.project .text small {
+  color: #aaa;
+  font-size: 0.75em;
+}
+
+.project .project-date span {
+  font-size: 0.9em;
+  color: #999;
+}
+
+.project .image {
+  max-width: 50px;
+  min-width: 50px;
+  height: 50px;
+  margin-right: 15px;
+}
+
+.project .time,
+.project .comments,
+.project .project-progress {
+  color: #999;
+  font-size: 0.9em;
+  margin-right: 20px;
+}
+
+.project .time i,
+.project .comments i,
+.project .project-progress i {
+  margin-right: 5px;
+}
+
+.project .project-progress {
+  width: 200px;
+}
+
+.project .project-progress .progress {
+  height: 4px;
+}
+
+.project .card {
+  margin-bottom: 0;
+}
+
+/* PROJECTS SECTION ------------------------------------- */
+@media (max-width: 991px) {
+  .project .right-col {
+    margin-top: 20px;
+    margin-left: 65px;
+  }
+  .project .project-progress {
+    width: 150px;
+  }
+}
+
+@media (max-width: 480px) {
+  .project .project-progress {
+    display: none;
+  }
+}
+
+/*
+* ==========================================================
+*     CLIENT SECTION
+* ==========================================================
+*/
+/*====== Work Amount Box ======*/
+.work-amount .chart {
+  margin: 40px auto;
+  position: relative;
+}
+
+.work-amount .chart .text {
+  display: inline-block;
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  -webkit-transform: translate(-50%, -50%);
+  transform: translate(-50%, -50%);
+}
+
+.work-amount .chart strong {
+  font-size: 1.5rem;
+}
+
+.work-amount .chart span {
+  color: #999;
+  font-weight: 300;
+}
+
+.work-amount li span {
+  font-size: 0.85em;
+  margin-bottom: 10px;
+  color: #777;
+  display: block;
+}
+
+.work-amount li span::before {
+  content: '';
+  display: inline-block;
+  margin-right: 10px;
+  width: 7px;
+  height: 7px;
+  line-height: 7px;
+  background: #85b4f2;
+  border-radius: 50%;
+}
+
+/*====== Client Profile Box ======*/
+.client .client-avatar {
+  width: 100px;
+  height: 100px;
+  margin: 0 auto;
+  position: relative;
+}
+
+.client .client-avatar .status {
+  content: '';
+  display: block;
+  width: 18px;
+  height: 18px;
+  border: 3px solid #fff;
+  border-radius: 50%;
+  position: absolute;
+  right: 4px;
+  bottom: 4px;
+}
+
+.client .client-title {
+  margin-top: 20px;
+}
+
+.client .client-title h3 {
+  font-weight: 500;
+  color: #555;
+}
+
+.client .client-title span {
+  font-size: 0.9em;
+  color: #aaa;
+  display: block;
+}
+
+.client .client-title a {
+  padding: 2px 30px;
+  border-radius: 40px;
+  background: #54e69d;
+  color: #fff;
+  margin-top: 5px;
+  font-size: 0.9em;
+  text-decoration: none;
+}
+
+.client .client-title a:hover {
+  background: #85b4f2;
+}
+
+.client .client-info {
+  margin-top: 20px;
+}
+
+.client .client-info strong {
+  font-weight: 700;
+}
+
+.client .client-social {
+  margin-top: 20px;
+}
+
+.client .client-social a {
+  color: #aaa;
+}
+
+/*====== Total Overdue Box ======*/
+.overdue .chart canvas {
+  width: 100% !important;
+  z-index: 1;
+}
+
+.overdue .card {
+  margin-bottom: 0;
+}
+
+.overdue .card-body {
+  padding: 20px;
+}
+
+.overdue .card-body small {
+  font-weight: 300;
+  color: #aaa;
+}
+
+.overdue .card-body h3 {
+  margin-bottom: 5px;
+}
+
+.overdue .number {
+  font-size: 1.8em;
+  font-weight: 400;
+  color: #555;
+  margin: 35px 0;
+}
+
+/*
+* ==========================================================
+*     FEEDS SECTION
+* ==========================================================
+*/
+/*====== Checklist Box ======*/
+.checklist label {
+  font-size: 0.8em;
+  color: #999;
+  line-height: 1.8em;
+  margin-bottom: 0;
+}
+
+.checklist .item {
+  padding: 20px;
+}
+
+.checklist .item:nth-of-type(even) {
+  background: #fafafa;
+}
+
+/*====== Trending Articles Box ======*/
+.articles a {
+  text-decoration: none !important;
+  display: block;
+  margin-bottom: 0;
+  color: #555;
+}
+
+.articles .badge {
+  font-size: 0.7em;
+  padding: 5px 10px;
+  line-height: 1;
+  margin-left: 10px;
+}
+
+.articles .item {
+  padding: 20px;
+}
+
+.articles .item:nth-of-type(even) {
+  background: #fafafa;
+}
+
+.articles .item .image {
+  min-width: 50px;
+  max-width: 50px;
+  height: 50px;
+  margin-right: 15px;
+}
+
+.articles .item img {
+  padding: 3px;
+  border: 1px solid #28a745;
+}
+
+.articles .item h3 {
+  color: #555;
+  font-weight: 400;
+  margin-bottom: 0;
+}
+
+.articles .item small {
+  color: #aaa;
+  font-size: 0.75em;
+}
+
+/*
+* ==========================================================
+*     UPDATES SECTION
+* ==========================================================
+*/
+/*====== Recent Updates Box ======*/
+.recent-updates .item {
+  padding: 20px;
+}
+
+.recent-updates .item:nth-of-type(even) {
+  background: #fafafa;
+}
+
+.recent-updates .icon {
+  margin-right: 10px;
+}
+
+.recent-updates h5 {
+  margin-bottom: 5px;
+  color: #333;
+  font-weight: 400;
+}
+
+.recent-updates p {
+  font-size: 0.8em;
+  color: #aaa;
+  margin-bottom: 0;
+}
+
+.recent-updates .date {
+  font-size: 0.9em;
+  color: #adadad;
+}
+
+.recent-updates .date strong {
+  font-size: 1.4em;
+  line-height: 0.8em;
+  display: block;
+}
+
+.recent-updates .date span {
+  font-size: 0.9em;
+  font-weight: 300;
+}
+
+/*====== Daily Feeds Box ======*/
+.daily-feeds .item {
+  padding: 20px;
+  border-bottom: 1px solid #eee;
+}
+
+.daily-feeds .feed-profile {
+  max-width: 50px;
+  min-width: 50px;
+  margin-right: 10px;
+}
+
+.daily-feeds h5 {
+  margin-bottom: 0;
+  color: #555;
+}
+
+.daily-feeds span {
+  font-size: 0.8em;
+  color: #999;
+}
+
+.daily-feeds .full-date {
+  font-size: 0.85em;
+  color: #aaa;
+  font-weight: 300;
+}
+
+.daily-feeds .CTAs {
+  margin-top: 5px;
+}
+
+.daily-feeds .CTAs a {
+  font-size: 0.7em;
+  padding: 3px 8px;
+  margin-right: 5px;
+}
+
+.daily-feeds .CTAs a i {
+  margin-right: 5px;
+}
+
+.daily-feeds .quote {
+  background: #fafafa;
+  margin-top: 5px;
+  border-radius: 0;
+  padding: 15px;
+  margin-left: 60px;
+}
+
+.daily-feeds .quote small {
+  font-size: 0.75em;
+  color: #777;
+}
+
+.daily-feeds .date {
+  font-size: 0.9em;
+  color: #aaa;
+}
+
+/*====== Recent Activities Box ======*/
+.recent-activities .item {
+  padding: 0 15px;
+  border-bottom: 1px solid #eee;
+}
+
+.recent-activities .item div[class*='col-'] {
+  padding: 15px;
+}
+
+.recent-activities h5 {
+  font-weight: 400;
+  color: #333;
+}
+
+.recent-activities p {
+  font-size: 0.75em;
+  color: #999;
+}
+
+.recent-activities .icon {
+  width: 35px;
+  height: 35px;
+  line-height: 35px;
+  background: #f5f5f5;
+  text-align: center;
+  display: inline-block;
+}
+
+.recent-activities .date {
+  font-size: 0.75em;
+  color: #999;
+  padding: 10px;
+}
+
+.recent-activities .date-holder {
+  padding: 0 !important;
+  border-right: 1px solid #eee;
+}
+
+/*
+* ==========================================================
+*     FOOTER
+* ==========================================================
+*/
+footer.main-footer {
+  position: absolute;
+  bottom: 0;
+  width: 100%;
+  background: #2f333e;
+  color: #fff;
+  padding: 20px 10px;
+}
+
+footer.main-footer a {
+  color: inherit;
+}
+
+footer.main-footer p {
+  margin: 0;
+  font-size: 0.8em;
+}
+
+/* FOOTER MEDIAQUERIES  --------------------------------- */
+@media (max-width: 575px) {
+  footer.main-footer div[class*='col'] {
+    text-align: center !important;
+  }
+}
+
+section.charts div[class*="col-"] {
+  margin-bottom: 30px;
+}
+
+section.charts header {
+  padding: 30px 0;
+}
+
+section.charts div[class*="col-"] {
+  margin-bottom: 0;
+}
+
+/*
+* ==========================================================
+*     LINE CHART
+* ==========================================================
+*/
+.line-chart-example .card-block {
+  padding: 20px;
+}
+
+/*
+* ==========================================================
+*     POLAR CHART
+* ==========================================================
+*/
+/*
+* ==========================================================
+*     POLAR CHART
+* ==========================================================
+*/
+.polar-chart-example canvas {
+  max-width: 350px;
+  max-height: 350px;
+  margin: 20px auto;
+}
+
+/*
+* ==========================================================
+*     PIE CHART
+* ==========================================================
+*/
+.pie-chart-example canvas {
+  max-width: 350px;
+  max-height: 350px;
+  margin: 15px auto;
+}
+
+/*
+* ==========================================================
+*     RADAR CHART
+* ==========================================================
+*/
+.radar-chart-example canvas {
+  max-width: 350px;
+  max-height: 350px;
+  margin: 20px auto;
+}
+
+/* FORMS MEDIAQUERIES -------------------------- */
+@media (max-width: 991px) {
+  section.charts h2 {
+    font-size: 1rem;
+  }
+}
+
+/*
+* ==========================================================
+*     FORMS
+* ==========================================================
+*/
+.form-control {
+  height: calc(2.25rem + 2px);
+  border: 1px solid #dee2e6;
+  border-radius: 0;
+  padding: 0.375rem 0.75rem;
+}
+
+.form-control::-moz-placeholder {
+  font-size: 0.9em;
+  font-weight: 300;
+  font-family: "Poppins", sans-serif;
+  color: #aaa;
+}
+
+.form-control::-webkit-input-placeholder {
+  font-size: 0.9em;
+  font-weight: 300;
+  font-family: "Poppins", sans-serif;
+  color: #aaa;
+}
+
+.form-control:-ms-input-placeholder {
+  font-size: 0.9em;
+  font-weight: 300;
+  font-family: "Poppins", sans-serif;
+  color: #aaa;
+}
+
+.form-control:focus {
+  color: #495057;
+  background-color: #fff;
+  border-color: #796AEE;
+  outline: none;
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.25);
+  box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.25);
+}
+
+.form-control-sm {
+  height: calc(1.8125rem + 2px);
+  padding: 0.25rem 0.5rem;
+  font-size: 0.875rem;
+  line-height: 1.5;
+}
+
+.form-control-lg {
+  height: calc(2.875rem + 2px);
+  padding: 0.5rem 1rem;
+  font-size: 1.25rem;
+  line-height: 1.5;
+}
+
+textarea.form-control {
+  height: auto;
+}
+
+select.form-control[size], select.form-control[multiple] {
+  height: auto;
+}
+
+select.form-control option {
+  color: #999;
+}
+
+.input-group .dropdown-menu {
+  padding: 15px;
+  color: #777;
+  border-radius: 0;
+}
+
+.input-group .dropdown-menu a {
+  padding: 5px 0;
+  color: inherit;
+  text-decoration: none;
+}
+
+.input-group .dropdown-menu a:hover {
+  color: #796AEE;
+  background: none;
+}
+
+.input-group-text {
+  color: #868e96;
+  background: #f8f9fa;
+  border-color: #dee2e6;
+  border-radius: 0;
+}
+
+.input-group-text .checkbox-template, .input-group-text .radio-template {
+  -webkit-transform: none;
+  transform: none;
+}
+
+.form-control-label {
+  font-size: .9rem;
+  color: #777;
+}
+
+button, input[type='submit'] {
+  cursor: pointer;
+  font-family: inherit;
+  font-weight: 300 !important;
+}
+
+.input-group .dropdown-toggle {
+  background: #f5f5f5;
+  color: #777;
+}
+
+.checkbox-template, .radio-template {
+  -webkit-transform: translateY(3px);
+  transform: translateY(3px);
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+  cursor: pointer;
+  position: relative;
+}
+
+.checkbox-template + label, .radio-template + label {
+  margin-left: 10px;
+}
+
+.checkbox-template::before, .radio-template::before {
+  margin-right: 10px;
+  content: '';
+  display: inline-block;
+  -webkit-transform: translate(-2px, -2px);
+  transform: translate(-2px, -2px);
+  width: 18px;
+  height: 18px;
+  line-height: 18px;
+  text-align: center;
+  background: #dae2e7;
+  -webkit-transition: all 0.2s;
+  transition: all 0.2s;
+}
+
+.checkbox-template::after, .radio-template::after {
+  content: '\f00c';
+  width: 12px;
+  height: 12px;
+  line-height: 12px;
+  text-align: center;
+  display: block;
+  font-family: 'FontAwesome';
+  position: absolute;
+  top: 1px;
+  left: 1px;
+  font-size: 0.7em;
+  opacity: 0;
+  -webkit-transition: all 0.2s;
+  transition: all 0.2s;
+  color: #fff;
+}
+
+.checkbox-template:checked::before, .radio-template:checked::before {
+  background: #796AEE;
+}
+
+.checkbox-template:checked::after, .radio-template:checked::after {
+  opacity: 1;
+}
+
+.radio-template::before {
+  border-radius: 50%;
+  -webkit-transform: translate(-3px, -3px);
+  transform: translate(-3px, -3px);
+}
+
+.radio-template::after {
+  width: 6px;
+  height: 6px;
+  line-height: 6px;
+  text-align: center;
+  position: absolute;
+  top: 3px;
+  left: 3px;
+  border-radius: 50%;
+  content: '';
+}
+
+.radio-template:checked::after {
+  background: #fff;
+}
+
+input.input-material {
+  width: 100%;
+  border: none;
+  border-bottom: 1px solid #eee;
+  padding: 10px 0;
+}
+
+input.input-material.is-invalid {
+  border-color: #dc3545 !important;
+}
+
+input.input-material:focus {
+  border-color: #796AEE;
+}
+
+input.input-material ~ label {
+  color: #aaa;
+  position: absolute;
+  top: 14px;
+  left: 0;
+  cursor: text;
+  -webkit-transition: all 0.2s;
+  transition: all 0.2s;
+  font-weight: 300;
+}
+
+input.input-material ~ label.active {
+  font-size: 0.8rem;
+  top: -10px;
+  color: #796AEE;
+}
+
+input.input-material.is-invalid ~ label {
+  color: #dc3545;
+}
+
+.form-group-material {
+  position: relative;
+  margin-bottom: 30px;
+}
+
+.modal-content {
+  border-radius: 0;
+}
+
+.i-checks {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+}
+
+/*
+* ==========================================================
+*     FORM PAGE
+* ==========================================================
+*/
+.forms p {
+  font-size: 0.9em;
+  color: #555;
+}
+
+.forms form small {
+  font-size: 0.8em;
+  color: #999;
+  font-weight: 300;
+}
+
+.forms .line {
+  width: 100%;
+  height: 1px;
+  border-bottom: 1px dashed #eee;
+  margin: 30px 0;
+}
+
+/*
+* ==========================================================
+*     LOGIN PAGE
+* ==========================================================
+*/
+.login-page {
+  position: relative;
+}
+
+.login-page::before {
+  content: '';
+  width: 100%;
+  height: 100%;
+  display: block;
+  z-index: -1;
+  background: url(../img/p_big3.jpg);
+  background-size: cover;
+  -webkit-filter: blur(10px);
+  filter: blur(10px);
+  z-index: 1;
+  position: absolute;
+  top: 0;
+  right: 0;
+}
+
+.login-page .container {
+  min-height: 100vh;
+  z-index: 999;
+  padding: 20px;
+  position: relative;
+}
+
+.login-page .form-holder {
+  width: 100%;
+  border-radius: 5px;
+  overflow: hidden;
+  margin-bottom: 50px;
+}
+
+.login-page .form-holder .info, .login-page .form-holder .form {
+  min-height: 70vh;
+  padding: 40px;
+  height: 100%;
+}
+
+.login-page .form-holder div[class*='col-'] {
+  padding: 0;
+}
+
+.login-page .form-holder .info {
+  background: rgba(121, 106, 238, 0.9);
+  color: #fff;
+}
+
+.login-page .form-holder .info h1 {
+  font-size: 2.5em;
+  font-weight: 600;
+}
+
+.login-page .form-holder .info p {
+  font-weight: 300;
+}
+
+.login-page .form-holder .form .form-group {
+  position: relative;
+  margin-bottom: 30px;
+}
+
+.login-page .form-holder .form .content {
+  width: 100%;
+}
+
+.login-page .form-holder .form form {
+  width: 100%;
+  max-width: 400px;
+}
+
+.login-page .form-holder .form #login, .login-page .form-holder .form #register {
+  margin-bottom: 20px;
+  cursor: pointer;
+}
+
+.login-page .form-holder .form a.forgot-pass, .login-page .form-holder .form a.signup {
+  font-size: 0.9em;
+  color: #85b4f2;
+}
+
+.login-page .form-holder .form small {
+  color: #aaa;
+}
+
+.login-page .form-holder .form .terms-conditions label {
+  cursor: pointer;
+  color: #aaa;
+  font-size: 0.9em;
+}
+
+.login-page .copyrights {
+  width: 100%;
+  z-index: 9999;
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  color: #fff;
+}
+
+@media (max-width: 991px) {
+  .login-page .info, .login-page .form {
+    min-height: auto !important;
+  }
+  .login-page .info {
+    padding-top: 100px !important;
+    padding-bottom: 100px !important;
+  }
+}
+
+/*
+
+=====================
+STYLE SWITCHER FOR DEMO
+=====================
+
+*/
+#style-switch-button {
+  position: fixed;
+  top: 120px;
+  right: 0px;
+  border-radius: 0;
+  z-index: 12;
+}
+
+#style-switch {
+  width: 300px;
+  padding: 20px;
+  position: fixed;
+  top: 160px;
+  right: 0;
+  background: #fff;
+  border: solid 1px #ced4da;
+  z-index: 12;
+}
+
+#style-switch h4 {
+  color: #495057;
+}
+
+/* ========================================= 
+   THEMING OF BOOTSTRAP COMPONENTS           
+   ========================================= */
+/*
+ * 1. NAVBAR
+ */
+.navbar {
+  padding: 0.5rem 1rem;
+}
+
+.navbar-brand {
+  display: inline-block;
+  padding-top: 0.3125rem;
+  padding-bottom: 0.3125rem;
+  margin-right: 1rem;
+  font-size: 1.25rem;
+}
+
+.navbar-toggler {
+  padding: 0.25rem 0.75rem;
+  font-size: 1.25rem;
+  line-height: 1;
+  border: 1px solid transparent;
+  border-radius: 0.25rem;
+}
+
+.navbar-light .navbar-brand {
+  color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover {
+  color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-light .navbar-nav .nav-link {
+  color: rgba(0, 0, 0, 0.5);
+}
+
+.navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover {
+  color: rgba(0, 0, 0, 0.7);
+}
+
+.navbar-light .navbar-nav .nav-link.disabled {
+  color: rgba(0, 0, 0, 0.3);
+}
+
+.navbar-light .navbar-nav .show > .nav-link,
+.navbar-light .navbar-nav .active > .nav-link,
+.navbar-light .navbar-nav .nav-link.show,
+.navbar-light .navbar-nav .nav-link.active {
+  color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-light .navbar-toggler {
+  color: rgba(0, 0, 0, 0.5);
+  border-color: rgba(0, 0, 0, 0.1);
+}
+
+.navbar-light .navbar-toggler-icon {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
+}
+
+.navbar-light .navbar-text {
+  color: rgba(0, 0, 0, 0.5);
+}
+
+.navbar-dark .navbar-brand {
+  color: #fff;
+}
+
+.navbar-dark .navbar-brand:focus, .navbar-dark .navbar-brand:hover {
+  color: #fff;
+}
+
+.navbar-dark .navbar-nav .nav-link {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover {
+  color: rgba(255, 255, 255, 0.75);
+}
+
+.navbar-dark .navbar-nav .nav-link.disabled {
+  color: rgba(255, 255, 255, 0.25);
+}
+
+.navbar-dark .navbar-nav .show > .nav-link,
+.navbar-dark .navbar-nav .active > .nav-link,
+.navbar-dark .navbar-nav .nav-link.show,
+.navbar-dark .navbar-nav .nav-link.active {
+  color: #fff;
+}
+
+.navbar-dark .navbar-toggler {
+  color: rgba(255, 255, 255, 0.5);
+  border-color: rgba(255, 255, 255, 0.1);
+}
+
+.navbar-dark .navbar-toggler-icon {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
+}
+
+.navbar-dark .navbar-text {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+/*
+ * 2. BUTTONS
+ */
+.btn {
+  font-weight: 400;
+  border: 1px solid transparent;
+  padding: 0.375rem 0.75rem;
+  font-size: 1rem;
+  line-height: 1.5;
+  border-radius: 0.25rem;
+  -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+}
+
+.btn:focus, .btn.focus {
+  outline: 0;
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.25);
+  box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.25);
+}
+
+.btn.disabled, .btn:disabled {
+  opacity: .65;
+}
+
+.btn:not([disabled]):not(.disabled):active, .btn:not([disabled]):not(.disabled).active {
+  background-image: none;
+}
+
+.btn-primary {
+  color: color-yiq(#796AEE);
+  background-color: #796AEE;
+  border-color: #796AEE;
+}
+
+.btn-primary:hover {
+  color: color-yiq(#5a48ea);
+  background-color: #5a48ea;
+  border-color: #503ce9;
+}
+
+.btn-primary:focus, .btn-primary.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.5);
+}
+
+.btn-primary.disabled, .btn-primary:disabled {
+  color: color-yiq(#796AEE);
+  background-color: #796AEE;
+  border-color: #796AEE;
+}
+
+.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,
+.show > .btn-primary.dropdown-toggle {
+  color: color-yiq(#503ce9);
+  background-color: #503ce9;
+  border-color: #4631e7;
+}
+
+.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,
+.show > .btn-primary.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.5);
+}
+
+.btn-secondary {
+  color: color-yiq(#868e96);
+  background-color: #868e96;
+  border-color: #868e96;
+}
+
+.btn-secondary:hover {
+  color: color-yiq(#727b84);
+  background-color: #727b84;
+  border-color: #6c757d;
+}
+
+.btn-secondary:focus, .btn-secondary.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
+}
+
+.btn-secondary.disabled, .btn-secondary:disabled {
+  color: color-yiq(#868e96);
+  background-color: #868e96;
+  border-color: #868e96;
+}
+
+.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,
+.show > .btn-secondary.dropdown-toggle {
+  color: color-yiq(#6c757d);
+  background-color: #6c757d;
+  border-color: #666e76;
+}
+
+.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,
+.show > .btn-secondary.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
+}
+
+.btn-success {
+  color: color-yiq(#28a745);
+  background-color: #28a745;
+  border-color: #28a745;
+}
+
+.btn-success:hover {
+  color: color-yiq(#218838);
+  background-color: #218838;
+  border-color: #1e7e34;
+}
+
+.btn-success:focus, .btn-success.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
+}
+
+.btn-success.disabled, .btn-success:disabled {
+  color: color-yiq(#28a745);
+  background-color: #28a745;
+  border-color: #28a745;
+}
+
+.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,
+.show > .btn-success.dropdown-toggle {
+  color: color-yiq(#1e7e34);
+  background-color: #1e7e34;
+  border-color: #1c7430;
+}
+
+.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,
+.show > .btn-success.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
+}
+
+.btn-info {
+  color: color-yiq(#17a2b8);
+  background-color: #17a2b8;
+  border-color: #17a2b8;
+}
+
+.btn-info:hover {
+  color: color-yiq(#138496);
+  background-color: #138496;
+  border-color: #117a8b;
+}
+
+.btn-info:focus, .btn-info.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
+}
+
+.btn-info.disabled, .btn-info:disabled {
+  color: color-yiq(#17a2b8);
+  background-color: #17a2b8;
+  border-color: #17a2b8;
+}
+
+.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,
+.show > .btn-info.dropdown-toggle {
+  color: color-yiq(#117a8b);
+  background-color: #117a8b;
+  border-color: #10707f;
+}
+
+.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,
+.show > .btn-info.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
+}
+
+.btn-warning {
+  color: color-yiq(#ffc107);
+  background-color: #ffc107;
+  border-color: #ffc107;
+}
+
+.btn-warning:hover {
+  color: color-yiq(#e0a800);
+  background-color: #e0a800;
+  border-color: #d39e00;
+}
+
+.btn-warning:focus, .btn-warning.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
+}
+
+.btn-warning.disabled, .btn-warning:disabled {
+  color: color-yiq(#ffc107);
+  background-color: #ffc107;
+  border-color: #ffc107;
+}
+
+.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,
+.show > .btn-warning.dropdown-toggle {
+  color: color-yiq(#d39e00);
+  background-color: #d39e00;
+  border-color: #c69500;
+}
+
+.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,
+.show > .btn-warning.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
+}
+
+.btn-danger {
+  color: color-yiq(#dc3545);
+  background-color: #dc3545;
+  border-color: #dc3545;
+}
+
+.btn-danger:hover {
+  color: color-yiq(#c82333);
+  background-color: #c82333;
+  border-color: #bd2130;
+}
+
+.btn-danger:focus, .btn-danger.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
+}
+
+.btn-danger.disabled, .btn-danger:disabled {
+  color: color-yiq(#dc3545);
+  background-color: #dc3545;
+  border-color: #dc3545;
+}
+
+.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,
+.show > .btn-danger.dropdown-toggle {
+  color: color-yiq(#bd2130);
+  background-color: #bd2130;
+  border-color: #b21f2d;
+}
+
+.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,
+.show > .btn-danger.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
+}
+
+.btn-light {
+  color: color-yiq(#f8f9fa);
+  background-color: #f8f9fa;
+  border-color: #f8f9fa;
+}
+
+.btn-light:hover {
+  color: color-yiq(#e2e6ea);
+  background-color: #e2e6ea;
+  border-color: #dae0e5;
+}
+
+.btn-light:focus, .btn-light.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
+}
+
+.btn-light.disabled, .btn-light:disabled {
+  color: color-yiq(#f8f9fa);
+  background-color: #f8f9fa;
+  border-color: #f8f9fa;
+}
+
+.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,
+.show > .btn-light.dropdown-toggle {
+  color: color-yiq(#dae0e5);
+  background-color: #dae0e5;
+  border-color: #d3d9df;
+}
+
+.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,
+.show > .btn-light.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
+}
+
+.btn-dark {
+  color: color-yiq(#343a40);
+  background-color: #343a40;
+  border-color: #343a40;
+}
+
+.btn-dark:hover {
+  color: color-yiq(#23272b);
+  background-color: #23272b;
+  border-color: #1d2124;
+}
+
+.btn-dark:focus, .btn-dark.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
+}
+
+.btn-dark.disabled, .btn-dark:disabled {
+  color: color-yiq(#343a40);
+  background-color: #343a40;
+  border-color: #343a40;
+}
+
+.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,
+.show > .btn-dark.dropdown-toggle {
+  color: color-yiq(#1d2124);
+  background-color: #1d2124;
+  border-color: #171a1d;
+}
+
+.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,
+.show > .btn-dark.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
+}
+
+.btn-default {
+  color: color-yiq(#ced4da);
+  background-color: #ced4da;
+  border-color: #ced4da;
+}
+
+.btn-default:hover {
+  color: color-yiq(#b8c1ca);
+  background-color: #b8c1ca;
+  border-color: #b1bbc4;
+}
+
+.btn-default:focus, .btn-default.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5);
+}
+
+.btn-default.disabled, .btn-default:disabled {
+  color: color-yiq(#ced4da);
+  background-color: #ced4da;
+  border-color: #ced4da;
+}
+
+.btn-default:not(:disabled):not(.disabled):active, .btn-default:not(:disabled):not(.disabled).active,
+.show > .btn-default.dropdown-toggle {
+  color: color-yiq(#b1bbc4);
+  background-color: #b1bbc4;
+  border-color: #aab4bf;
+}
+
+.btn-default:not(:disabled):not(.disabled):active:focus, .btn-default:not(:disabled):not(.disabled).active:focus,
+.show > .btn-default.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5);
+}
+
+.btn-outline-primary {
+  color: #796AEE;
+  background-color: transparent;
+  background-image: none;
+  border-color: #796AEE;
+}
+
+.btn-outline-primary:hover {
+  color: #fff;
+  background-color: #796AEE;
+  border-color: #796AEE;
+}
+
+.btn-outline-primary:focus, .btn-outline-primary.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.5);
+}
+
+.btn-outline-primary.disabled, .btn-outline-primary:disabled {
+  color: #796AEE;
+  background-color: transparent;
+}
+
+.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,
+.show > .btn-outline-primary.dropdown-toggle {
+  color: color-yiq(#796AEE);
+  background-color: #796AEE;
+  border-color: #796AEE;
+}
+
+.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,
+.show > .btn-outline-primary.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.5);
+}
+
+.btn-outline-secondary {
+  color: #868e96;
+  background-color: transparent;
+  background-image: none;
+  border-color: #868e96;
+}
+
+.btn-outline-secondary:hover {
+  color: #fff;
+  background-color: #868e96;
+  border-color: #868e96;
+}
+
+.btn-outline-secondary:focus, .btn-outline-secondary.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
+}
+
+.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
+  color: #868e96;
+  background-color: transparent;
+}
+
+.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,
+.show > .btn-outline-secondary.dropdown-toggle {
+  color: color-yiq(#868e96);
+  background-color: #868e96;
+  border-color: #868e96;
+}
+
+.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
+.show > .btn-outline-secondary.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
+}
+
+.btn-outline-success {
+  color: #28a745;
+  background-color: transparent;
+  background-image: none;
+  border-color: #28a745;
+}
+
+.btn-outline-success:hover {
+  color: #fff;
+  background-color: #28a745;
+  border-color: #28a745;
+}
+
+.btn-outline-success:focus, .btn-outline-success.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
+}
+
+.btn-outline-success.disabled, .btn-outline-success:disabled {
+  color: #28a745;
+  background-color: transparent;
+}
+
+.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,
+.show > .btn-outline-success.dropdown-toggle {
+  color: color-yiq(#28a745);
+  background-color: #28a745;
+  border-color: #28a745;
+}
+
+.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,
+.show > .btn-outline-success.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
+}
+
+.btn-outline-info {
+  color: #17a2b8;
+  background-color: transparent;
+  background-image: none;
+  border-color: #17a2b8;
+}
+
+.btn-outline-info:hover {
+  color: #fff;
+  background-color: #17a2b8;
+  border-color: #17a2b8;
+}
+
+.btn-outline-info:focus, .btn-outline-info.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
+}
+
+.btn-outline-info.disabled, .btn-outline-info:disabled {
+  color: #17a2b8;
+  background-color: transparent;
+}
+
+.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,
+.show > .btn-outline-info.dropdown-toggle {
+  color: color-yiq(#17a2b8);
+  background-color: #17a2b8;
+  border-color: #17a2b8;
+}
+
+.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,
+.show > .btn-outline-info.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
+}
+
+.btn-outline-warning {
+  color: #ffc107;
+  background-color: transparent;
+  background-image: none;
+  border-color: #ffc107;
+}
+
+.btn-outline-warning:hover {
+  color: #fff;
+  background-color: #ffc107;
+  border-color: #ffc107;
+}
+
+.btn-outline-warning:focus, .btn-outline-warning.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
+}
+
+.btn-outline-warning.disabled, .btn-outline-warning:disabled {
+  color: #ffc107;
+  background-color: transparent;
+}
+
+.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,
+.show > .btn-outline-warning.dropdown-toggle {
+  color: color-yiq(#ffc107);
+  background-color: #ffc107;
+  border-color: #ffc107;
+}
+
+.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,
+.show > .btn-outline-warning.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
+}
+
+.btn-outline-danger {
+  color: #dc3545;
+  background-color: transparent;
+  background-image: none;
+  border-color: #dc3545;
+}
+
+.btn-outline-danger:hover {
+  color: #fff;
+  background-color: #dc3545;
+  border-color: #dc3545;
+}
+
+.btn-outline-danger:focus, .btn-outline-danger.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
+}
+
+.btn-outline-danger.disabled, .btn-outline-danger:disabled {
+  color: #dc3545;
+  background-color: transparent;
+}
+
+.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,
+.show > .btn-outline-danger.dropdown-toggle {
+  color: color-yiq(#dc3545);
+  background-color: #dc3545;
+  border-color: #dc3545;
+}
+
+.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,
+.show > .btn-outline-danger.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
+}
+
+.btn-outline-light {
+  color: #f8f9fa;
+  background-color: transparent;
+  background-image: none;
+  border-color: #f8f9fa;
+}
+
+.btn-outline-light:hover {
+  color: #fff;
+  background-color: #f8f9fa;
+  border-color: #f8f9fa;
+}
+
+.btn-outline-light:focus, .btn-outline-light.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
+}
+
+.btn-outline-light.disabled, .btn-outline-light:disabled {
+  color: #f8f9fa;
+  background-color: transparent;
+}
+
+.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,
+.show > .btn-outline-light.dropdown-toggle {
+  color: color-yiq(#f8f9fa);
+  background-color: #f8f9fa;
+  border-color: #f8f9fa;
+}
+
+.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,
+.show > .btn-outline-light.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
+}
+
+.btn-outline-dark {
+  color: #343a40;
+  background-color: transparent;
+  background-image: none;
+  border-color: #343a40;
+}
+
+.btn-outline-dark:hover {
+  color: #fff;
+  background-color: #343a40;
+  border-color: #343a40;
+}
+
+.btn-outline-dark:focus, .btn-outline-dark.focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
+}
+
+.btn-outline-dark.disabled, .btn-outline-dark:disabled {
+  color: #343a40;
+  background-color: transparent;
+}
+
+.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,
+.show > .btn-outline-dark.dropdown-toggle {
+  color: color-yiq(#343a40);
+  background-color: #343a40;
+  border-color: #343a40;
+}
+
+.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,
+.show > .btn-outline-dark.dropdown-toggle:focus {
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
+}
+
+.btn-lg {
+  padding: 0.5rem 1rem;
+  font-size: 1.25rem;
+  line-height: 1.5;
+  border-radius: 0.3rem;
+}
+
+.btn-sm {
+  padding: 0.25rem 0.5rem;
+  font-size: 0.875rem;
+  line-height: 1.5;
+  border-radius: 0.2rem;
+}
+
+/*
+ * 3. TYPE  
+ */
+body {
+  font-family: "Poppins", sans-serif;
+  font-size: 1rem;
+  font-weight: 400;
+  line-height: 1.5;
+  color: #212529;
+  background-color: #fff;
+}
+
+a {
+  color: #796AEE;
+  text-decoration: none;
+}
+
+a:focus, a:hover {
+  color: #3b25e6;
+  text-decoration: underline;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+  margin-bottom: 0.5rem;
+  font-family: inherit;
+  font-weight: 700;
+  line-height: 1.1;
+  color: inherit;
+}
+
+h1,
+.h1 {
+  font-size: 1.5rem;
+}
+
+h2,
+.h2 {
+  font-size: 1.3rem;
+}
+
+h3,
+.h3 {
+  font-size: 1.2rem;
+}
+
+h4,
+.h4 {
+  font-size: 1.1rem;
+}
+
+h5,
+.h5 {
+  font-size: 1rem;
+}
+
+h6,
+.h6 {
+  font-size: 0.95rem;
+}
+
+.lead {
+  font-size: 1.25rem;
+  font-weight: 300;
+}
+
+.display-1 {
+  font-size: 6rem;
+  font-weight: 300;
+  line-height: 1.1;
+}
+
+.display-2 {
+  font-size: 5.5rem;
+  font-weight: 300;
+  line-height: 1.1;
+}
+
+.display-3 {
+  font-size: 4.5rem;
+  font-weight: 300;
+  line-height: 1.1;
+}
+
+.display-4 {
+  font-size: 3.5rem;
+  font-weight: 300;
+  line-height: 1.1;
+}
+
+hr {
+  border-top: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+small,
+.small {
+  font-size: 80%;
+  font-weight: 400;
+}
+
+mark,
+.mark {
+  padding: 0.2em;
+  background-color: #fcf8e3;
+}
+
+.blockquote {
+  padding: 0.5rem 1rem;
+  margin-bottom: 2rem;
+  font-size: 1.25rem;
+  border-left: 5px solid #796AEE;
+}
+
+.blockquote-footer {
+  color: #868e96;
+}
+
+.blockquote-footer::before {
+  content: "\2014 \00A0";
+}
+
+.text-primary {
+  color: #796AEE !important;
+}
+
+a.text-primary:focus, a.text-primary:hover {
+  color: #503ce9 !important;
+}
+
+/*
+ * 4. PAGINATION
+ */
+.page-item:first-child .page-link {
+  border-top-left-radius: 0.25rem;
+  border-bottom-left-radius: 0.25rem;
+}
+
+.page-item:last-child .page-link {
+  border-top-right-radius: 0.25rem;
+  border-bottom-right-radius: 0.25rem;
+}
+
+.page-item.active .page-link {
+  color: #fff;
+  background-color: #796AEE;
+  border-color: #796AEE;
+}
+
+.page-item.disabled .page-link {
+  color: #868e96;
+  background-color: #fff;
+  border-color: #ddd;
+}
+
+.page-link {
+  padding: 0.5rem 0.75rem;
+  margin-left: -1px;
+  line-height: 1.25;
+  color: #796AEE;
+  background-color: #fff;
+  border: 1px solid #ddd;
+}
+
+.page-link:hover {
+  z-index: 2;
+  color: #3b25e6;
+  background-color: #e9ecef;
+  border-color: #ddd;
+}
+
+.page-link:focus {
+  z-index: 2;
+  outline: 0;
+  -webkit-box-shadow: none;
+  box-shadow: none;
+  text-decoration: none;
+}
+
+.pagination-lg .page-link {
+  padding: 0.75rem 1.5rem;
+  font-size: 1.25rem;
+  line-height: 1.5;
+}
+
+.pagination-lg .page-item:first-child .page-link {
+  border-top-left-radius: 0.3rem;
+  border-bottom-left-radius: 0.3rem;
+}
+
+.pagination-lg .page-item:last-child .page-link {
+  border-top-right-radius: 0.3rem;
+  border-bottom-right-radius: 0.3rem;
+}
+
+.pagination-sm .page-link {
+  padding: 0.25rem 0.5rem;
+  font-size: 0.875rem;
+  line-height: 1.5;
+}
+
+.pagination-sm .page-item:first-child .page-link {
+  border-top-left-radius: 0.2rem;
+  border-bottom-left-radius: 0.2rem;
+}
+
+.pagination-sm .page-item:last-child .page-link {
+  border-top-right-radius: 0.2rem;
+  border-bottom-right-radius: 0.2rem;
+}
+
+/*
+* 5. UTILITIES
+*/
+.bg-primary {
+  background-color: #796AEE !important;
+}
+
+a.bg-primary:focus, a.bg-primary:hover {
+  background-color: #503ce9 !important;
+}
+
+.bg-secondary {
+  background-color: #868e96 !important;
+}
+
+a.bg-secondary:focus, a.bg-secondary:hover {
+  background-color: #6c757d !important;
+}
+
+.bg-success {
+  background-color: #28a745 !important;
+}
+
+a.bg-success:focus, a.bg-success:hover {
+  background-color: #1e7e34 !important;
+}
+
+.bg-info {
+  background-color: #17a2b8 !important;
+}
+
+a.bg-info:focus, a.bg-info:hover {
+  background-color: #117a8b !important;
+}
+
+.bg-warning {
+  background-color: #ffc107 !important;
+}
+
+a.bg-warning:focus, a.bg-warning:hover {
+  background-color: #d39e00 !important;
+}
+
+.bg-danger {
+  background-color: #dc3545 !important;
+}
+
+a.bg-danger:focus, a.bg-danger:hover {
+  background-color: #bd2130 !important;
+}
+
+.bg-light {
+  background-color: #f8f9fa !important;
+}
+
+a.bg-light:focus, a.bg-light:hover {
+  background-color: #dae0e5 !important;
+}
+
+.bg-dark {
+  background-color: #343a40 !important;
+}
+
+a.bg-dark:focus, a.bg-dark:hover {
+  background-color: #1d2124 !important;
+}
+
+.border-primary {
+  border-color: #796AEE !important;
+}
+
+.border-secondary {
+  border-color: #868e96 !important;
+}
+
+.border-success {
+  border-color: #28a745 !important;
+}
+
+.border-info {
+  border-color: #17a2b8 !important;
+}
+
+.border-warning {
+  border-color: #ffc107 !important;
+}
+
+.border-danger {
+  border-color: #dc3545 !important;
+}
+
+.border-light {
+  border-color: #f8f9fa !important;
+}
+
+.border-dark {
+  border-color: #343a40 !important;
+}
+
+.text-primary {
+  color: #796AEE !important;
+}
+
+a.text-primary:focus, a.text-primary:hover {
+  color: #503ce9 !important;
+}
+
+.text-secondary {
+  color: #868e96 !important;
+}
+
+a.text-secondary:focus, a.text-secondary:hover {
+  color: #6c757d !important;
+}
+
+.text-success {
+  color: #28a745 !important;
+}
+
+a.text-success:focus, a.text-success:hover {
+  color: #1e7e34 !important;
+}
+
+.text-info {
+  color: #17a2b8 !important;
+}
+
+a.text-info:focus, a.text-info:hover {
+  color: #117a8b !important;
+}
+
+.text-warning {
+  color: #ffc107 !important;
+}
+
+a.text-warning:focus, a.text-warning:hover {
+  color: #d39e00 !important;
+}
+
+.text-danger {
+  color: #dc3545 !important;
+}
+
+a.text-danger:focus, a.text-danger:hover {
+  color: #bd2130 !important;
+}
+
+.text-light {
+  color: #f8f9fa !important;
+}
+
+a.text-light:focus, a.text-light:hover {
+  color: #dae0e5 !important;
+}
+
+.text-dark {
+  color: #343a40 !important;
+}
+
+a.text-dark:focus, a.text-dark:hover {
+  color: #1d2124 !important;
+}
+
+.badge-primary {
+  color: color-yiq(#796AEE);
+  background-color: #796AEE;
+}
+
+.badge-primary[href]:focus, .badge-primary[href]:hover {
+  color: color-yiq(#796AEE);
+  text-decoration: none;
+  background-color: #503ce9;
+}
+
+.badge-secondary {
+  color: color-yiq(#868e96);
+  background-color: #868e96;
+}
+
+.badge-secondary[href]:focus, .badge-secondary[href]:hover {
+  color: color-yiq(#868e96);
+  text-decoration: none;
+  background-color: #6c757d;
+}
+
+.badge-success {
+  color: color-yiq(#28a745);
+  background-color: #28a745;
+}
+
+.badge-success[href]:focus, .badge-success[href]:hover {
+  color: color-yiq(#28a745);
+  text-decoration: none;
+  background-color: #1e7e34;
+}
+
+.badge-info {
+  color: color-yiq(#17a2b8);
+  background-color: #17a2b8;
+}
+
+.badge-info[href]:focus, .badge-info[href]:hover {
+  color: color-yiq(#17a2b8);
+  text-decoration: none;
+  background-color: #117a8b;
+}
+
+.badge-warning {
+  color: color-yiq(#ffc107);
+  background-color: #ffc107;
+}
+
+.badge-warning[href]:focus, .badge-warning[href]:hover {
+  color: color-yiq(#ffc107);
+  text-decoration: none;
+  background-color: #d39e00;
+}
+
+.badge-danger {
+  color: color-yiq(#dc3545);
+  background-color: #dc3545;
+}
+
+.badge-danger[href]:focus, .badge-danger[href]:hover {
+  color: color-yiq(#dc3545);
+  text-decoration: none;
+  background-color: #bd2130;
+}
+
+.badge-light {
+  color: color-yiq(#f8f9fa);
+  background-color: #f8f9fa;
+}
+
+.badge-light[href]:focus, .badge-light[href]:hover {
+  color: color-yiq(#f8f9fa);
+  text-decoration: none;
+  background-color: #dae0e5;
+}
+
+.badge-dark {
+  color: color-yiq(#343a40);
+  background-color: #343a40;
+}
+
+.badge-dark[href]:focus, .badge-dark[href]:hover {
+  color: color-yiq(#343a40);
+  text-decoration: none;
+  background-color: #1d2124;
+}
+
+/*
+* 6.CODE
+*/
+code {
+  padding: 0.2rem 0.4rem;
+  font-size: 90%;
+  color: #bd4147;
+  background-color: #f8f9fa;
+  border-radius: 0.25rem;
+}
+
+a > code {
+  padding: 0;
+  color: inherit;
+  background-color: inherit;
+}
+
+/*
+* 7. NAV
+*/
+.nav-link {
+  padding: 0.5rem 1rem;
+}
+
+.nav-link.disabled {
+  color: #868e96;
+}
+
+.nav-tabs .nav-item {
+  margin-bottom: -1px;
+}
+
+.nav-tabs .nav-link {
+  border: 1px solid transparent;
+  border-top-left-radius: 0.25rem;
+  border-top-right-radius: 0.25rem;
+}
+
+.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {
+  border-color: #e9ecef #e9ecef #dee2e6;
+}
+
+.nav-tabs .nav-link.disabled {
+  color: #868e96;
+}
+
+.nav-tabs .nav-link.active,
+.nav-tabs .nav-item.show .nav-link {
+  color: #495057;
+  background-color: #fff;
+}
+
+.nav-tabs .dropdown-menu {
+  margin-top: -1px;
+}
+
+.nav-pills .nav-link {
+  border-radius: 0.25rem;
+}
+
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+  color: #fff;
+  background-color: #796AEE;
+}
+
+/*
+* 8. CARD
+*/
+.card {
+  background-color: #fff;
+  border: 0 solid #eee;
+  border-radius: 0;
+}
+
+.card > .list-group:first-child .list-group-item:first-child {
+  border-top-left-radius: 0;
+  border-top-right-radius: 0;
+}
+
+.card > .list-group:last-child .list-group-item:last-child {
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.card-body {
+  padding: 1.25rem;
+}
+
+.card-title {
+  margin-bottom: 1rem;
+}
+
+.card-subtitle {
+  margin-top: -0.5rem;
+}
+
+.card-link + .card-link {
+  margin-left: 1.25rem;
+}
+
+.card-header {
+  padding: 1rem 1.25rem;
+  background-color: #fff;
+  border-bottom: 1px solid #eee;
+}
+
+.card-header:first-child {
+  border-radius: 0 0 0 0;
+}
+
+.card-header-transparent {
+  background-color: rgba(0, 0, 0, 0.3);
+  border-bottom: none;
+}
+
+.card-footer {
+  padding: 1rem 1.25rem;
+  background-color: #f8f9fa;
+  border-top: 1px solid #eee;
+}
+
+.card-footer:last-child {
+  border-radius: 0 0 0 0;
+}
+
+.card-header-tabs {
+  margin-right: -0.625rem;
+  margin-bottom: -1rem;
+  margin-left: -0.625rem;
+  border-bottom: 0;
+}
+
+.card-header-pills {
+  margin-right: -0.625rem;
+  margin-left: -0.625rem;
+}
+
+.card-img-overlay {
+  padding: 1.25rem;
+}
+
+.card-img-overlay-opacity {
+  background: rgba(0, 0, 0, 0.2);
+}
+
+.card-img {
+  border-radius: 0;
+}
+
+.card-img-top {
+  border-top-left-radius: 0;
+  border-top-right-radius: 0;
+}
+
+.card-img-bottom {
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.card-deck .card {
+  margin-bottom: 15px;
+}
+
+@media (min-width: 576px) {
+  .card-deck {
+    margin-right: -15px;
+    margin-left: -15px;
+  }
+  .card-deck .card {
+    margin-right: 15px;
+    margin-left: 15px;
+  }
+}
+
+.custom-select {
+  height: calc(2.25rem + 2px);
+  padding: 0.375rem 1.75rem 0.375rem 0.75rem;
+  line-height: 1.5;
+  color: #495057;
+  vertical-align: middle;
+  background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
+  background-size: 8px 10px;
+  border: 1px solid #ced4da;
+  border-radius: 0;
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  appearance: none;
+}
+
+.custom-select:focus {
+  border-color: #796AEE;
+  outline: 0;
+  -webkit-box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.5);
+  box-shadow: 0 0 0 0.2rem rgba(121, 106, 238, 0.5);
+}
+
+.custom-select:focus::-ms-value {
+  color: #495057;
+  background-color: #fff;
+}
+
+.custom-select[multiple], .custom-select[size]:not([size="1"]) {
+  height: auto;
+  padding-right: 0.75rem;
+  background-image: none;
+}
+
+.custom-select:disabled {
+  color: #868e96;
+  background-color: #e9ecef;
+}
+
+.custom-select::-ms-expand {
+  opacity: 0;
+}
+
+.custom-select-sm {
+  height: calc(1.8125rem + 2px);
+  padding-top: 0.375rem;
+  padding-bottom: 0.375rem;
+  font-size: 75%;
+}
+
+.custom-select-lg {
+  height: calc(2.875rem + 2px);
+  padding-top: 0.375rem;
+  padding-bottom: 0.375rem;
+  font-size: 125%;
+}

binární
02_JavaWeb/day13_js/html-login/img/image-20230127220258675.png


binární
02_JavaWeb/day13_js/html-login/img/image-20230127220316018.png


binární
02_JavaWeb/day13_js/html-login/img/p_big3.jpg


+ 176 - 0
02_JavaWeb/day13_js/html-login/js/front.js

@@ -0,0 +1,176 @@
+$(document).ready(function () {
+
+    'use strict';
+
+    // ------------------------------------------------------- //
+    // Search Box
+    // ------------------------------------------------------ //
+    $('#search').on('click', function (e) {
+        e.preventDefault();
+        $('.search-box').fadeIn();
+    });
+    $('.dismiss').on('click', function () {
+        $('.search-box').fadeOut();
+    });
+
+    // ------------------------------------------------------- //
+    // Card Close
+    // ------------------------------------------------------ //
+    $('.card-close a.remove').on('click', function (e) {
+        e.preventDefault();
+        $(this).parents('.card').fadeOut();
+    });
+
+    // ------------------------------------------------------- //
+    // Tooltips init
+    // ------------------------------------------------------ //    
+
+    $('[data-toggle="tooltip"]').tooltip()    
+
+
+    // ------------------------------------------------------- //
+    // Adding fade effect to dropdowns
+    // ------------------------------------------------------ //
+    $('.dropdown').on('show.bs.dropdown', function () {
+        $(this).find('.dropdown-menu').first().stop(true, true).fadeIn();
+    });
+    $('.dropdown').on('hide.bs.dropdown', function () {
+        $(this).find('.dropdown-menu').first().stop(true, true).fadeOut();
+    });
+
+
+    // ------------------------------------------------------- //
+    // Sidebar Functionality
+    // ------------------------------------------------------ //
+    $('#toggle-btn').on('click', function (e) {
+        e.preventDefault();
+        $(this).toggleClass('active');
+
+        $('.side-navbar').toggleClass('shrinked');
+        $('.content-inner').toggleClass('active');
+        $(document).trigger('sidebarChanged');
+
+        if ($(window).outerWidth() > 1183) {
+            if ($('#toggle-btn').hasClass('active')) {
+                $('.navbar-header .brand-small').hide();
+                $('.navbar-header .brand-big').show();
+            } else {
+                $('.navbar-header .brand-small').show();
+                $('.navbar-header .brand-big').hide();
+            }
+        }
+
+        if ($(window).outerWidth() < 1183) {
+            $('.navbar-header .brand-small').show();
+        }
+    });
+
+    // ------------------------------------------------------- //
+    // Universal Form Validation
+    // ------------------------------------------------------ //
+
+    $('.form-validate').each(function() {  
+        $(this).validate({
+            errorElement: "div",
+            errorClass: 'is-invalid',
+            validClass: 'is-valid',
+            ignore: ':hidden:not(.summernote, .checkbox-template, .form-control-custom),.note-editable.card-block',
+            errorPlacement: function (error, element) {
+                // Add the `invalid-feedback` class to the error element
+                error.addClass("invalid-feedback");
+                console.log(element);
+                if (element.prop("type") === "checkbox") {
+                    error.insertAfter(element.siblings("label"));
+                } 
+                else {
+                    error.insertAfter(element);
+                }
+            }
+        });
+
+    });    
+
+    // ------------------------------------------------------- //
+    // Material Inputs
+    // ------------------------------------------------------ //
+
+    var materialInputs = $('input.input-material');
+
+    // activate labels for prefilled values
+    materialInputs.filter(function() { return $(this).val() !== ""; }).siblings('.label-material').addClass('active');
+
+    // move label on focus
+    materialInputs.on('focus', function () {
+        $(this).siblings('.label-material').addClass('active');
+    });
+
+    // remove/keep label on blur
+    materialInputs.on('blur', function () {
+        $(this).siblings('.label-material').removeClass('active');
+
+        if ($(this).val() !== '') {
+            $(this).siblings('.label-material').addClass('active');
+        } else {
+            $(this).siblings('.label-material').removeClass('active');
+        }
+    });
+
+    // ------------------------------------------------------- //
+    // Footer 
+    // ------------------------------------------------------ //   
+
+    var contentInner = $('.content-inner');
+
+    $(document).on('sidebarChanged', function () {
+        adjustFooter();
+    });
+
+    $(window).on('resize', function () {
+        adjustFooter();
+    })
+
+    function adjustFooter() {
+        var footerBlockHeight = $('.main-footer').outerHeight();
+        contentInner.css('padding-bottom', footerBlockHeight + 'px');
+    }
+
+    // ------------------------------------------------------- //
+    // External links to new window
+    // ------------------------------------------------------ //
+    $('.external').on('click', function (e) {
+
+        e.preventDefault();
+        window.open($(this).attr("href"));
+    });
+
+    // ------------------------------------------------------ //
+    // For demo purposes, can be deleted
+    // ------------------------------------------------------ //
+
+    var stylesheet = $('link#theme-stylesheet');
+    $("<link id='new-stylesheet' rel='stylesheet'>").insertAfter(stylesheet);
+    var alternateColour = $('link#new-stylesheet');
+
+    if ($.cookie("theme_csspath")) {
+        alternateColour.attr("href", $.cookie("theme_csspath"));
+    }
+
+    $("#colour").change(function () {
+
+        if ($(this).val() !== '') {
+
+            var theme_csspath = 'css/style.' + $(this).val() + '.css';
+
+            alternateColour.attr("href", theme_csspath);
+
+            $.cookie("theme_csspath", theme_csspath, {
+                expires: 365,
+                path: document.URL.substr(0, document.URL.lastIndexOf('/'))
+            });
+
+        }
+
+        return false;
+    });
+
+});

+ 153 - 0
02_JavaWeb/day13_js/html-login/login.html

@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <title>login</title>
+    <meta name="description" content="">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta name="robots" content="all,follow">
+    <link rel="stylesheet" href="https://www.jq22.com/jquery/bootstrap-4.2.1.css">
+    <link rel="stylesheet" href="css/style.default.css" id="theme-stylesheet">
+  </head>
+  <body>
+    <div class="page login-page">
+      <div class="container d-flex align-items-center">
+        <div class="form-holder has-shadow">
+          <div class="row">
+            <!-- Logo & Information Panel-->
+            <div class="col-lg-6">
+              <div class="info d-flex align-items-center">
+                <div class="content">
+                  <div class="logo">
+                    <h1>欢迎登录</h1>
+                  </div>
+                  <p>红雨车位管理系统</p>
+                </div>
+              </div>
+            </div>
+            <!-- Form Panel    -->
+            <div class="col-lg-6 bg-white">
+              <div class="form d-flex align-items-center">
+                <div class="content">
+                  <form method="post" action="login.html" class="form-validate" id="loginFrom">
+                    <div class="form-group">
+                      <input id="login-username" type="text" name="userName"  data-msg="请输入用户名" placeholder="用户名" value="admin" class="input-material">
+                      <div id="login-username-err" class="is-invalid invalid-feedback" style="display: block;"></div>
+                    </div>
+                    <div class="form-group">
+                      <input id="login-password" type="password" name="passWord"  data-msg="请输入密码" placeholder="密码" class="input-material">
+                      <div id="login-password-err" class="is-invalid invalid-feedback" style="display: block;"></div>
+                    </div>
+                    <button id="login" type="submit" class="btn btn-primary">登录</button>
+                    <div style="margin-top: -40px;">
+                    	<div class="custom-control custom-checkbox " style="float: right;">
+                            <input type="checkbox" class="custom-control-input" id="check2" >
+                            <label class="custom-control-label" for="check2">自动登录</label>
+                        </div>
+                        <div class="custom-control custom-checkbox " style="float: right;">
+                            <input type="checkbox" class="custom-control-input" id="check1" >
+                            <label class="custom-control-label" for="check1">记住密码&nbsp;&nbsp;</label>
+                        </div>
+                    </div>
+                  </form>
+                  <br />
+                  <small>没有账号?</small><a href="register.html" class="signup">&nbsp;注册</a>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <!-- JavaScript files-->
+    <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script>
+    <script src="https://www.jq22.com/jquery/bootstrap-3.3.4.js"></script>
+    <script src="vendor/jquery-validation/jquery.validate.min.js"></script><!--表单验证-->
+    <!-- Main File-->
+    <script src="js/front.js"></script>
+    <script>
+
+
+      /*
+      验证用户名
+       */
+      function checkUserName(){
+        //标识
+        let usernameFlag;
+        //验证用户名 6-8位
+        let username = document.getElementById("login-username");
+        //获取value
+        username_val = username.value;
+
+        if (username_val.length >= 6 && username_val.length <= 8 ){
+          usernameFlag = true;
+          console.log("符合")
+          //不展示
+          let loginusernameerr = document.getElementById("login-username-err");
+          loginusernameerr.style.display = "none";
+          // loginusernameerr.innerText = "用户名需要6-8位"
+          //return true;
+
+        }else{
+          usernameFlag = false;
+          console.log("不符合")
+          /*展示样式*/
+          let loginusernameerr = document.getElementById("login-username-err");
+          loginusernameerr.style.display = "block";
+          loginusernameerr.innerText = "用户名需要6-8位"
+        }
+
+        return usernameFlag
+      }
+
+      /*
+        验证密码
+       */
+      function checkPassWord(){
+        //验证密码6-8位
+        let password = document.getElementById("login-password");
+        //获取value
+        password_val = password.value;
+
+        if (password_val.length >= 6 && password_val.length <= 8 ){
+          console.log("密码符合")
+          //不展示
+          let lperr = document.getElementById("login-password-err");
+          lperr.style.display = "none";
+          // lperr.innerText = "密码需要6-8位"
+          return true;
+        }else{
+
+          console.log("密码不符合")
+          /*展示样式*/
+          let lperr = document.getElementById("login-password-err");
+          lperr.style.display = "block";
+          lperr.innerText = "密码需要6-8位"
+          return false;
+        }
+      }
+
+
+      /*
+        验证方法
+       */
+      function loginFromOnSubmit(){
+        //调用
+        return checkUserName() && checkPassWord() ;
+      }
+
+
+      //js  获取按钮点击事件
+      let loginBtn = document.getElementById("login");
+      // 点击事件
+      loginBtn.onclick = function (){
+        // 提交表单 抓取表单
+        let loginFrom = document.getElementById("loginFrom");
+        // 提交事件
+        loginFrom.onsubmit = loginFromOnSubmit;
+      }
+
+    </script>
+  </body>
+</html>

+ 159 - 0
02_JavaWeb/day13_js/html-login/register.html

@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <title>register</title>
+    <meta name="description" content="">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta name="robots" content="all,follow">
+    <!-- Bootstrap CSS-->
+    <link rel="stylesheet" href="https://www.jq22.com/jquery/bootstrap-4.2.1.css">
+    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:300,400,700">
+    <link rel="stylesheet" href="css/style.default.css" id="theme-stylesheet">
+  </head>
+  <body>
+    <div class="page login-page">
+      <div class="container d-flex align-items-center">
+        <div class="form-holder has-shadow">
+          <div class="row">
+            <!-- Logo & Information Panel-->
+            <div class="col-lg-6">
+              <div class="info d-flex align-items-center">
+                <div class="content">
+                  <div class="logo">
+                    <h1>欢迎注册</h1>
+                  </div>
+                  <p>红雨车位管理系统</p>
+                </div>
+              </div>
+            </div>
+            <!-- Form Panel    -->
+            <div class="col-lg-6 bg-white">
+              <div class="form d-flex align-items-center">
+                <div class="content">
+                    <div class="form-group">
+                      <input id="register-username" class="input-material" type="text" name="registerUsername" placeholder="请输入用户名/姓名" >
+                      <div id="register-username-err" class="invalid-feedback">用户名必须在2~10位之间</div>
+                    </div>
+                    <div class="form-group">
+                      <input id="register-password" class="input-material" type="password" name="registerPassword" placeholder="请输入密码"   >
+                       <div id="register-passwrod-err" class="invalid-feedback">密码必须在6~10位之间</div>
+                    </div>
+                    <div class="form-group">
+                      <input id="register-passwords" class="input-material" type="password" name="registerPasswords" placeholder="确认密码"   >
+                      <div id="register-passwrods-err" class="invalid-feedback">两次密码必须相同 且在6~10位之间</div>
+                    </div>
+                    <div class="form-group">
+                      <input id="register-phone" class="input-material" type="text" name="registerPhone" placeholder="请输入电话"   >
+                      <div class="invalid-feedback">电话号码必须符合规则</div>
+                    </div>
+                    <div class="form-group">
+                      <input id="register-email" class="input-material" type="email" name="registerEmail" placeholder="请输入邮箱"   >
+                      <div class="invalid-feedback">邮箱必须符合规则</div>
+                    </div>
+                    <div class="form-group">
+                      <button id="regbtn" type="button" name="registerSubmit" class="btn btn-primary">注册</button>
+                    </div>
+                  <small>已有账号?</small><a href="login.html" class="signup">&nbsp;登录</a>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <!-- JavaScript files-->
+    <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script>
+    <script src="https://www.jq22.com/jquery/bootstrap-4.2.1.js"></script>
+    <script>
+    	$(function(){
+          //is-invalid 验证class
+          //验证用户名
+          let username = document.getElementById("register-username");
+          username.onblur = function (){
+            let usernameFlag;
+            //输入值
+            let username_val = username.value
+            //根据正则判断
+            let reg = /^\w{6,8}$/;
+            //判断
+            if (reg.test(username_val)){
+              console.log("符合")
+              usernameErr =  document.getElementById("register-username-err");
+              usernameErr.style.display = "none";
+              usernameFlag = true;
+            }else{
+              usernameErr =  document.getElementById("register-username-err");
+              usernameErr.style.display = "block";
+              usernameErr.innerText = "用户名必须在6~10位之间";
+              console.log("不符合")
+            }
+          }
+          //验证密码1
+          let password = document.getElementById("register-password");
+          password.onblur = function (){
+            let passwordFlag;
+            //输入值
+            let password_val = password.value
+            //根据正则判断
+            let reg = /^\w{6,8}$/;
+            //判断
+            if (reg.test(password_val)){
+              passwordErr =  document.getElementById("register-passwrod-err");
+              passwordErr.style.display = "none";
+              passwordFlag = true;
+            }else{
+              passwordErr =  document.getElementById("register-passwrod-err");
+              passwordErr.style.display = "block";
+              passwordErr.innerText = "密码必须在6~10位之间";
+              passwordFlag = false;
+            }
+          }
+          //验证密码2
+          let password2 = document.getElementById("register-passwords");
+          password2.onblur = function (){
+            let password2Flag;
+            //输入值
+            let password2_val = password2.value
+            let password1_val = password.value
+            console.log(password1_val + "--"+password2_val)
+            //判断
+            if (password2_val == password1_val){
+              passwordErr2 = document.getElementById("register-passwrods-err");
+              passwordErr2.style.display = "block";
+              passwordErr2.innerText = "√";
+              password2Flag = true;
+            }else{
+              passwordErr2 =  document.getElementById("register-passwrods-err");
+              passwordErr2.style.display = "block";
+              passwordErr2.innerText = "两次密码必须一致";
+              password2Flag = false;
+            }
+          }
+
+          //验证 电话号码
+          var reg1 = /^[1][3|4|5|6|7|8|9]\d{9}$/;
+          if (reg1.test("13100000000")){
+            console.log("符合")
+          }else{
+            console.log("不符合")
+          }
+          //验证邮箱
+          var reg2 = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
+          if (reg2.test("123163.com")){
+            console.log("符合")
+          }else{
+            console.log("不符合")
+          }
+    	})
+
+
+        if(name.length<2||name.length>10){
+          $("#register-username").removeClass("form-control is-valid")
+          $("#register-username").addClass("form-control is-invalid");
+          flagName=false;
+
+    </script>
+  </body>
+</html>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 3 - 0
02_JavaWeb/day13_js/html-login/vendor/jquery-validation/jquery.validate.min.js


binární
02_JavaWeb/day13_js/imgs/off.gif


binární
02_JavaWeb/day13_js/imgs/on.gif


+ 47 - 0
02_JavaWeb/day13_js/js01.html

@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Title</title>
+</head>
+<body>
+    <!--
+        选择器  id 获取一个
+
+     -->
+    <img id="light" src="imgs/off.gif"> <br>
+
+    <div class="cls">koobie教育</div>  <br>
+    <div class="cls">爱扣钉程序员</div> <br>
+
+    <input type="checkbox" name="hobby"> 电影
+    <input type="checkbox" name="hobby"> 旅游
+    <input type="checkbox" name="hobby"> 游戏
+    <br>
+    <script>
+        //在此处书写js代码
+        let img = document.getElementById("light");
+        //获取属性
+        console.log(img.src);
+        console.log(img);
+
+        // 标签获取
+        let divArr = document.getElementsByTagName("div");
+        for (let i = 0; i < divArr.length; i++) {
+            console.log(divArr[i])
+        }
+
+        //class获取
+        console.log(document.getElementsByClassName("cls")[0])
+        console.log(document.getElementsByClassName("cls")[1])
+
+        //根据据name属性
+        let insArr = document.getElementsByName("hobby");
+
+        insArr[0].checked = true;
+        insArr[1].checked = true;
+        insArr[2].checked = false;
+
+    </script>
+</body>
+</html>

+ 30 - 0
02_JavaWeb/day13_js/js02.html

@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Title</title>
+</head>
+<body>
+
+    <img id="light" src="imgs/off.gif"> <br>
+    <button onclick="lightFunction()" >点亮</button>
+
+    <!--
+        需求点亮电灯
+        1. img对象获取
+        2. 获取属性 src
+        3. 修改
+        4. 事件 (点击事件)
+     -->
+    <script>
+
+        function lightFunction(){
+            //img对象获取
+            let img = document.getElementById("light");
+            //获取属性 src 修改
+            img.src = "imgs/on.gif"
+        }
+
+    </script>
+</body>
+</html>

+ 49 - 0
02_JavaWeb/day13_js/js02_1.html

@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Title</title>
+</head>
+<body>
+
+    <input type="checkbox" name="hobby"> 电影
+    <input type="checkbox" name="hobby"> 旅游
+    <input type="checkbox" name="hobby"> 游戏
+
+    <button onclick="selectAll()" >全选</button>
+    <button onclick="selectNotAll()" >全不选</button>
+    <button onclick="select()" >反选</button>
+
+    <!--
+        需求 实现全选  全不选  反选
+            1.获取复选框
+            2.修改每一个属性 checked = true
+     -->
+    <script>
+        function selectAll(){
+            let insArr= document.getElementsByName("hobby");
+            //遍历
+            for (let i = 0; i < insArr.length; i++) {
+                //修改每一个
+                insArr[i].checked =  true;
+            }
+        }
+        function selectNotAll(){
+            let insArr= document.getElementsByName("hobby");
+            //遍历
+            for (let i = 0; i < insArr.length; i++) {
+                //修改每一个
+                insArr[i].checked =  false;
+            }
+        }
+        function select(){
+            let insArr= document.getElementsByName("hobby");
+            //遍历
+            for (let i = 0; i < insArr.length; i++) {
+                //修改每一个
+                insArr[i].checked = !insArr[i].checked ;
+            }
+        }
+    </script>
+</body>
+</html>

+ 39 - 0
02_JavaWeb/day13_js/js03.html

@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Window</title>
+</head>
+<body>
+<!-- 浏览器 window   -->
+<script>
+    //alert 弹出框
+    // window.alert("提示框")
+    //
+    // //省略window
+    // alert("提示")
+    //
+    // //确认框 返回值 true false
+    // let b = confirm("确认删除!!!");
+    // if (b){
+    //     console.log("删除成功")
+    // }else{
+    //     console.log("未删除")
+    // }
+
+
+    //定时器 指定时间 循环执行
+    // setInterval(function (){
+    //     console.log("hello js")
+    // },1000)
+
+    //定时器 时间执行一次
+    // setTimeout(function (){
+    //     console.log("hello js")
+    // },3000)
+
+
+
+</script>
+</body>
+</html>

+ 17 - 0
02_JavaWeb/day13_js/js04.html

@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>history</title>
+</head>
+<body>
+<!-- 地址 location   -->
+<button onclick="changeBaiDu()">改变地址为百度</button>
+<script>
+    function changeBaiDu(){
+        //href 属性
+        location.href = "https://www.baidu.com"
+    }
+</script>
+</body>
+</html>

+ 27 - 0
02_JavaWeb/day13_js/js05.html

@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>history</title>
+</head>
+<body>
+<!-- 历史 history   -->
+
+<a href="forward.html">前进页面</a>
+<a href="back.html">后退页面</a>
+
+<button onclick="forward()" >前进按钮</button>
+<button onclick="back()" >后退按钮</button>
+<script>
+    function forward(){
+        // history.forward();
+        // history.go(2)
+    }
+
+    function back(){
+        history.back();
+    }
+
+</script>
+</body>
+</html>

+ 31 - 0
02_JavaWeb/day13_js/js06.html

@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>案例1</title>
+</head>
+<body>
+
+    <img id="light" src="imgs/off.gif"> <br>
+
+    <script>
+        //定时器
+        // 获取img元素
+        // 标识 数字
+        let number = 0;
+        setInterval(function (){
+            //获取元素
+            let img = document.getElementById("light");
+            //判断
+            if ( number % 2 == 0 ){
+                img.src =  "imgs/off.gif";
+            }else{
+                img.src =  "imgs/on.gif";
+            }
+            //标识改变
+            number++;
+        },1000)
+
+    </script>
+</body>
+</html>

+ 39 - 0
02_JavaWeb/day13_js/js07.html

@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>案例2</title>
+</head>
+<body>
+    <!--
+        321跳转百度
+            innerHtml : 可以识别标签
+            innerText : 直接翻译成文本
+            1. 获取h1标签
+            2. 改变 内容 每个1秒
+            3. 定时器 setTimeout
+    -->
+    <h1 id="h1" ></h1>
+    <script>
+        //开启定时器 返回值关闭
+        let count = 1;
+        let index = setInterval(function (){
+            if (count == 3){
+                clearInterval(index)
+                //改变地址
+                location.href = "https://www.baidu.com"
+            }
+            //业务逻辑
+            let h1 = document.getElementById("h1");
+
+            //h1添加内容
+            //h1.innerHTML = "<font color='red'>"+(4-count)+"</font>";
+            h1.innerText = "<font color='red'>"+(4-count)+"</font>";
+            //改变标识
+            count++;
+
+        },1000);
+
+    </script>
+</body>
+</html>

+ 25 - 0
02_JavaWeb/day13_js/js08.html

@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>事件</title>
+</head>
+<body>
+    <button id="btn1" onclick="fun1('1')" >按钮1</button>
+    <button id="btn2" >按钮2</button>
+    <script>
+        function fun1(a){
+            alert("fun1执行"+a)
+        }
+
+        //方式2  动态
+        let btn2 = document.getElementById("btn2");
+
+        btn2.onclick = function (){
+            //执行
+            alert("fun2执行");
+        };
+
+    </script>
+</body>
+</html>

+ 51 - 0
02_JavaWeb/day13_js/js09.html

@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>事件演示</title>
+
+</head>
+<!--
+    onblur元素失去焦点
+    onfocus元素获得焦点
+    onload某个页面或图像被完成加载
+    onsubmit当表单提交时触发该事件
+    onmouseover鼠标被移到某元素之上
+    onmouseout鼠标从某元素移开
+-->
+<body>
+    <form id="userForm" action="https://www.baidu.com"  >
+        <!--  onblur元素失去焦点  -->
+        <input id="username" onblur="onBlur(this)" type="text"  >
+
+        <input type="submit" value="输入框提交">
+        <button onsubmit="userFormSubmit()" >按钮提交</button>
+    </form>
+
+    <script>
+        function userFormSubmit (){
+            console.log("提交")
+            return false;
+        }
+
+        let userForm = document.getElementById("userForm");
+
+        userForm.onsubmit = userFormSubmit;
+
+        //页面加载完成之后执行
+        window.onload = function (){
+            let ins = document.getElementById("username");
+            ins.onfocus = function (){
+                console.log("获取焦点")
+            }
+        }
+        function onBlur(t){
+            //this
+            console.log(t)
+        }
+
+
+
+    </script>
+</body>
+</html>

binární
02_JavaWeb/out/production/day04_maven_jdbc/com/lc/dao/DeptDao.class


binární
02_JavaWeb/out/production/day04_maven_jdbc/com/lc/pojo/Dept.class


+ 5 - 0
02_JavaWeb/out/production/day04_maven_jdbc/druid.properties

@@ -0,0 +1,5 @@
+#数据源信息
+driverClassName=com.mysql.cj.jdbc.Driver
+url=jdbc:mysql:///db2?useSSL=false
+username=root
+password=123456

+ 0 - 0
02_JavaWeb/day06_mybatis/target/classes/com/lc/mapper/UserMapper.class → 02_JavaWeb/out/production/day06_mybatis/com/lc/mapper/UserMapper.class


+ 0 - 0
02_JavaWeb/day06_mybatis/target/classes/com/lc/mapper/UserMapper.xml → 02_JavaWeb/out/production/day06_mybatis/com/lc/mapper/UserMapper.xml


+ 0 - 0
02_JavaWeb/day06_mybatis/target/classes/com/lc/pojo/User.class → 02_JavaWeb/out/production/day06_mybatis/com/lc/pojo/User.class


+ 0 - 0
02_JavaWeb/day06_mybatis/target/classes/jdbc.properties → 02_JavaWeb/out/production/day06_mybatis/jdbc.properties


+ 0 - 0
02_JavaWeb/day06_mybatis/target/classes/mybatis-config.xml → 02_JavaWeb/out/production/day06_mybatis/mybatis-config.xml


+ 0 - 0
02_JavaWeb/day07_mybatis/target/classes/com/lc/mapper/UserMapper.class → 02_JavaWeb/out/production/day07_mybatis/com/lc/mapper/UserMapper.class


+ 0 - 0
02_JavaWeb/day07_mybatis/target/classes/com/lc/mapper/UserMapper.xml → 02_JavaWeb/out/production/day07_mybatis/com/lc/mapper/UserMapper.xml


+ 0 - 0
02_JavaWeb/day07_mybatis/target/classes/com/lc/pojo/User.class → 02_JavaWeb/out/production/day07_mybatis/com/lc/pojo/User.class


+ 0 - 0
02_JavaWeb/day07_mybatis/target/classes/jdbc.properties → 02_JavaWeb/out/production/day07_mybatis/jdbc.properties


+ 0 - 0
02_JavaWeb/day07_mybatis/target/classes/log4j.xml → 02_JavaWeb/out/production/day07_mybatis/log4j.xml


+ 0 - 0
02_JavaWeb/day07_mybatis/target/classes/mybatis-config.xml → 02_JavaWeb/out/production/day07_mybatis/mybatis-config.xml


+ 0 - 0
02_JavaWeb/day08_mybatis/target/classes/com/lc/mapper/DeptMapper.class → 02_JavaWeb/out/production/day08_mybatis/com/lc/mapper/DeptMapper.class


+ 0 - 0
02_JavaWeb/day08_mybatis/target/classes/com/lc/mapper/DeptMapper.xml → 02_JavaWeb/out/production/day08_mybatis/com/lc/mapper/DeptMapper.xml


+ 0 - 0
02_JavaWeb/day08_mybatis/target/classes/com/lc/mapper/UserMapper.class → 02_JavaWeb/out/production/day08_mybatis/com/lc/mapper/UserMapper.class


+ 0 - 0
02_JavaWeb/day08_mybatis/target/classes/com/lc/mapper/UserMapper.xml → 02_JavaWeb/out/production/day08_mybatis/com/lc/mapper/UserMapper.xml


+ 0 - 0
02_JavaWeb/day08_mybatis/target/classes/com/lc/pojo/Dept.class → 02_JavaWeb/out/production/day08_mybatis/com/lc/pojo/Dept.class


+ 0 - 0
02_JavaWeb/day08_mybatis/target/classes/com/lc/pojo/User.class → 02_JavaWeb/out/production/day08_mybatis/com/lc/pojo/User.class


+ 0 - 0
02_JavaWeb/day08_mybatis/target/classes/jdbc.properties → 02_JavaWeb/out/production/day08_mybatis/jdbc.properties


+ 0 - 0
02_JavaWeb/day08_mybatis/target/classes/log4j.xml → 02_JavaWeb/out/production/day08_mybatis/log4j.xml


+ 0 - 0
02_JavaWeb/day08_mybatis/target/classes/mybatis-config.xml → 02_JavaWeb/out/production/day08_mybatis/mybatis-config.xml


+ 0 - 0
02_JavaWeb/day09_mybatis/target/classes/com/lc/mapper/UserMapper.class → 02_JavaWeb/out/production/day09_mybatis/com/lc/mapper/UserMapper.class


+ 0 - 0
02_JavaWeb/day09_mybatis/target/classes/com/lc/pojo/User.class → 02_JavaWeb/out/production/day09_mybatis/com/lc/pojo/User.class


+ 0 - 0
02_JavaWeb/day10_mybatis/target/classes/com/lc/mapper/UserMapper.class → 02_JavaWeb/out/production/day10_mybatis/com/lc/mapper/UserMapper.class


+ 0 - 0
02_JavaWeb/day10_mybatis/target/classes/com/lc/mapper/UserMapper.xml → 02_JavaWeb/out/production/day10_mybatis/com/lc/mapper/UserMapper.xml


+ 0 - 0
02_JavaWeb/day10_mybatis/target/classes/com/lc/pojo/User.class → 02_JavaWeb/out/production/day10_mybatis/com/lc/pojo/User.class


+ 0 - 0
02_JavaWeb/day10_mybatis/target/classes/jdbc.properties → 02_JavaWeb/out/production/day10_mybatis/jdbc.properties


+ 0 - 0
02_JavaWeb/day10_mybatis/target/classes/log4j.xml → 02_JavaWeb/out/production/day10_mybatis/log4j.xml


+ 0 - 0
02_JavaWeb/day10_mybatis/target/classes/mybatis-config.xml → 02_JavaWeb/out/production/day10_mybatis/mybatis-config.xml


+ 0 - 0
02_JavaWeb/day11_mybatis/target/classes/com/lc/mapper/UserMapper.class → 02_JavaWeb/out/production/day11_mybatis/com/lc/mapper/UserMapper.class


+ 0 - 0
02_JavaWeb/day11_mybatis/target/classes/com/lc/mapper/UserMapper.xml → 02_JavaWeb/out/production/day11_mybatis/com/lc/mapper/UserMapper.xml


+ 0 - 0
02_JavaWeb/day11_mybatis/target/classes/com/lc/pojo/User.class → 02_JavaWeb/out/production/day11_mybatis/com/lc/pojo/User.class


+ 0 - 0
02_JavaWeb/day11_mybatis/target/classes/ehcache.xml → 02_JavaWeb/out/production/day11_mybatis/ehcache.xml


+ 0 - 0
02_JavaWeb/day11_mybatis/target/classes/jdbc.properties → 02_JavaWeb/out/production/day11_mybatis/jdbc.properties


+ 0 - 0
02_JavaWeb/day11_mybatis/target/classes/log4j.xml → 02_JavaWeb/out/production/day11_mybatis/log4j.xml


+ 0 - 0
02_JavaWeb/day11_mybatis/target/classes/mybatis-config.xml → 02_JavaWeb/out/production/day11_mybatis/mybatis-config.xml


binární
02_JavaWeb/out/test/day04_maven_jdbc/TestDept.class


binární
02_JavaWeb/out/test/day04_maven_jdbc/TestDruid.class


binární
02_JavaWeb/out/test/day04_maven_jdbc/TestJdbc01.class


+ 0 - 0
02_JavaWeb/day06_mybatis/target/test-classes/TestMybatis01.class → 02_JavaWeb/out/test/day06_mybatis/TestMybatis01.class


+ 0 - 0
02_JavaWeb/day07_mybatis/target/test-classes/TestMybatis01.class → 02_JavaWeb/out/test/day07_mybatis/TestMybatis01.class


+ 0 - 0
02_JavaWeb/day08_mybatis/target/test-classes/TestMybatis01.class → 02_JavaWeb/out/test/day08_mybatis/TestMybatis01.class


+ 0 - 0
02_JavaWeb/day09_mybatis/target/test-classes/TestMybatis01.class → 02_JavaWeb/out/test/day09_mybatis/TestMybatis01.class


+ 0 - 0
02_JavaWeb/day10_mybatis/target/test-classes/TestMybatis01.class → 02_JavaWeb/out/test/day10_mybatis/TestMybatis01.class


+ 0 - 0
02_JavaWeb/day11_mybatis/target/test-classes/TestMybatis01.class → 02_JavaWeb/out/test/day11_mybatis/TestMybatis01.class


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů