Advertisement
Guest User

Untitled

a guest
Mar 9th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5 18.85 KB | None | 0 0
  1. <template>
  2.     <div class="register-form">
  3.         <div v-if="loading">
  4.             <loader :fullscreen="true"></loader>
  5.         </div>
  6.         <div class="loginForm__error" v-if="error&&!loading">
  7.             Er is een fout opgetreden, controleer de ingevulde gegevens.
  8.             <span v-if="error!==true" v-html="error"></span>
  9.         </div>
  10.         <div class="formfield small">
  11.             <span class="label">Geslacht</span>
  12.             <select v-model="user.salutation" name="salutation"
  13.                       v-validate="{ required: true, regex: /^([^0-9]*)$/ }"
  14.                       :style="computeStyle('salutation')">
  15.                 <option value="0" disabled selected hidden>Aanhef</option>
  16.                 <option v-for="option in salutationOptions.options"
  17.                           :key="option.option"
  18.                           :value="option.value">
  19.                     {{ option.value }}
  20.                 </option>
  21.             </select>
  22.         </div>
  23.         <div class="formfield medium">
  24.             <span class="label">Voornaam</span>
  25.             <input type="text"
  26.                      name="firstname"
  27.                      placeholder="Voornaam"
  28.                      v-model.lazy="user.firstname"
  29.                      v-validate="'required'"
  30.                      :style="computeStyle('firstname')" />
  31.         </div>
  32.  
  33.         <div class="formfield small">
  34.             <span class="label">Tussenvoegsel</span>
  35.             <input type="text"
  36.                      name="tussenvoegsel"
  37.                      placeholder="Tussenvoegsel"
  38.                      v-model="user.prefix" />
  39.         </div>
  40.         <div class="formfield medium">
  41.             <span class="label">Achternaam</span>
  42.             <input type="text"
  43.                      name="lastname"
  44.                      placeholder="Achternaam"
  45.                      v-model.lazy="user.lastname"
  46.                      v-validate="'required'"
  47.                      :style="computeStyle('lastname')" />
  48.         </div>
  49.  
  50.         <div class="formfield half">
  51.             <span class="label">Geboortedatum</span>
  52.             <select name="birthdate-day"
  53.                       v-model="user.inputBirthdate.day"
  54.                       v-validate="{ required: true }"
  55.                       :style="computeStyle('birthday-day')"
  56.                       @change="updateBirthdate()">
  57.                 <option value="0" selected hidden disabled>Dag</option>
  58.                 <option v-for="day in days">{{ day }}</option>
  59.             </select>
  60.             <select name="birthdate-month"
  61.                       v-model="user.inputBirthdate.month"
  62.                       v-validate="{ required: true }"
  63.                       :style="computeStyle('birthday-month')"
  64.                       @change="updateBirthdate()">
  65.                 <option value="0" selected hidden disabled>Maand</option>
  66.                 <option v-for="month in months">{{ month }}</option>
  67.             </select>
  68.             <select name="birthdate-day"
  69.                       v-model="user.inputBirthdate.year"
  70.                       v-validate="{ required: true }"
  71.                       :style="computeStyle('birthday-year')"
  72.                       @change="updateBirthdate()">
  73.                 <option value="0" selected hidden disabled>Jaar</option>
  74.                 <option v-for="year in years">{{ year }}</option>
  75.             </select>
  76.         </div>
  77.  
  78.         <div class="formfield half">
  79.             <span class="label">Land</span>
  80.             <select name="countryCode"
  81.                       v-model="user.countryCode"
  82.                       v-validate="{ required: true }"
  83.                       :style="computeStyle('country-code')">
  84.                 <option value="0" selected hidden disabled>Landcode</option>
  85.                 <option v-for="option in countryCodeOptions.options"
  86.                           :key="option.option"
  87.                           :value="option.value">
  88.                     {{ option.value }}
  89.                 </option>
  90.             </select>
  91.  
  92.             <span class="label">Telefoon</span>
  93.             <input type="tel"
  94.                      name="phone"
  95.                      placeholder="Telefoon"
  96.                      v-model.lazy="user.phone"
  97.                      v-validate="'required|numeric'"
  98.                      :style="computeStyle('phone')" />
  99.         </div>
  100.  
  101.         <div class="formfield small">
  102.             <span class="label">Straatnaam</span>
  103.             <input type="text"
  104.                      name="street"
  105.                      v-model.lazy="user.address.street"
  106.                      v-validate="'required'"
  107.                      :style="computeStyle('street')" />
  108.         </div>
  109.         <div class="formfield small">
  110.             <span class="label">Huisnummer</span>
  111.             <input type="text"
  112.                      name="housenumber"
  113.                      placeholder="Nummer"
  114.                      v-model="user.address.housenumber"
  115.                      v-validate="'required'"
  116.                     @keyup="checkZip($event)"
  117.                      :style="computeStyle('housenumber')" />
  118.         </div>
  119.  
  120.         <div class="formfield small">
  121.             <span class="label">Postcode</span>
  122.             <input type="text"
  123.                      name="zipcode"
  124.                      v-model="user.address.zipcode"
  125.                      v-validate="{ required: true, regex: /\d{4} ?[a-zA-Z]{2}/ }"
  126.                      pattern="\d{4} ?[a-zA-Z]{2}"
  127.                     @keyup="checkZip($event)"
  128.                      :style="computeStyle('zipcode')" />
  129.         </div>
  130.         <div class="formfield medium">
  131.             <span class="label">Plaats</span>
  132.             <input type="text"
  133.                      name="city"
  134.                      v-model.lazy="user.address.city"
  135.                      v-validate="'required'"
  136.                      :style="computeStyle('city')" />
  137.         </div>
  138.         <div class="loader-zipcode" v-if="loadingZipCode">
  139.             <loader></loader>
  140.             <p>Gegevens worden opgehaald...</p>
  141.         </div>
  142.         <div v-else-if="zipcodeCheck != null">
  143.             <div class="formfield medium">
  144.                 <input type="text"
  145.                        name="street"
  146.                        placeholder="Straatnaam"
  147.                        v-model.lazy="user.address.street"
  148.                        v-validate="'required'"
  149.                        :style="computeStyle('street')" />
  150.             </div>
  151.             <div class="formfield medium">
  152.                 <input type="text"
  153.                        name="city"
  154.                        placeholder="Plaats"
  155.                        v-model.lazy="user.address.city"
  156.                        v-validate="'required'"
  157.                        :style="computeStyle('city')" />
  158.             </div>
  159.         </div>
  160.  
  161.         <div class="formfield large">
  162.             <span class="label">Emailadres</span>
  163.             <input type="email"
  164.                      name="email"
  165.                      placeholder="Email"
  166.                      v-model.lazy="user.email"
  167.                      v-validate="'required|email'"
  168.                      :style="computeStyle('email')" />
  169.         </div>
  170.  
  171.         <div class="formfield large">
  172.             <span class="label">Wachtwoord</span>
  173.             <password :name="'password'"
  174.                          :placeholder="'Wachtwoord'"
  175.                          :secureLength="8"
  176.                          v-model="user.password"
  177.                          v-validate="'required|min:8'"
  178.                          :style="computeStyle('password')" />
  179.         </div>
  180.         <div class="formfield large">
  181.             <span class="label">Herhaal wachtwoord</span>
  182.             <input type="password"
  183.                      name="passwordConfirmation"
  184.                      placeholder="Wachtwoord bevestigen"
  185.                      v-model.lazy="user.passwordConfirmation"
  186.                      v-validate="'required|min:6'"
  187.                      :style="computeStyle('passwordConfirmation')" />
  188.         </div>
  189.  
  190.         <p class="collect-alternative">Wanneer een product helaas niet op voorraad is, wilt u dan dat wij een alternatief product verzamelen?</p>
  191.         <div class="formfield large">
  192.  
  193.             <span class="arrow"></span>
  194.             <select v-model="user.collectalternatives" name="collectalternatives"
  195.                       v-validate="'required'"
  196.                       :style="computeStyle('collectalternatives')">
  197.  
  198.                 <option value="0" disabled>Alternatief verzamelen?</option>
  199.                 <option v-for="option in collectalternativesoptions"
  200.                           :key="option.option"
  201.                           :value="option.option" v-html="option.value"></option>
  202.             </select>
  203.         </div>
  204.  
  205.         <div class="formfield large">
  206.             <div class="select_filiaal">
  207.                 <input autocomplete="off" type="text" class="select__filiaal__input" v-model="storeInput" placeholder="Zoek een Poiesz supermarkt op plaatsnaam" />
  208.             </div>
  209.             <div class="select_filiaal__options" :class="{open: storeInput.length>0}">
  210.                 <div v-for="store in storeItems" :key="store.name">
  211.                     <select-store :store="store" @STORE_SELECTED="storeSelected"></select-store>
  212.                 </div>
  213.             </div>
  214.             <div class="selected_filiaal__selected-store" v-if="user.store.name != null">
  215.                 <div class="text">Geselecteerde Poiesz: {{ user.store.name }}</div>
  216.             </div>
  217.         </div>
  218.  
  219.         <div class="formfield large">
  220.             <label class="switch">
  221.                 <input type="checkbox" @click="user.isCompany = !user.isCompany">
  222.                 <span class="slider round"></span>
  223.             </label>
  224.             <label class="switch-label">Dit is {{ changeAccountText }} account</label>
  225.         </div>
  226.  
  227.         <transition name="fade">
  228.             <div class="bedrijfs-sectie" v-if="user.isCompany">
  229.                 <div class="formfield large">
  230.                     <span class="label">Bedrijfsnaam</span>
  231.                     <input type="text"
  232.                              name="companyName"
  233.                              placeholder="Bedrijfsnaam"
  234.                              v-model.lazy="user.companyName"
  235.                              v-validate="{ rules: { required: this.user.isCompany} }"
  236.                              :style="computeStyle('companyName')" />
  237.                 </div>
  238.  
  239.                 <div class="formfield large">
  240.                     <span class="formfield large">Type bedrijf</span>
  241.                     <select name="companyType"
  242.                               v-model="user.companyType"
  243.                               v-validate="{ required: true }">
  244.                         <option value="0" selected hidden disabled>Selecteer bedrijf</option>
  245.                         <option v-for="option in companyTypeOptions.options"
  246.                                   :key="option.option"
  247.                                   :value="option.value">
  248.                             {{ option.value }}
  249.                         </option>
  250.                     </select>
  251.                 </div>
  252.  
  253.                 <div class="formfield large">
  254.                     <span class="label">Kvk nummer</span>
  255.                     <input type="text"
  256.                              name="CoCNumber"
  257.                              placeholder="Kvk nummer"
  258.                              v-model.lazy="user.CoCNumber"
  259.                              v-validate="{ rules: { required: this.user.isCompany} }"
  260.                              :style="computeStyle('CoCNumber')" />
  261.                 </div>
  262.  
  263.                 <div class="formfield large">
  264.                     <label> Factuuradres</label>
  265.                 </div>
  266.  
  267.                 <div class="formfield medium">
  268.                     <span class="label">Straatnaam</span>
  269.                     <input type="text"
  270.                              name="companyStreet"
  271.                              placeholder="Straatnaam"
  272.                              v-model.lazy="user.companyAddress.street"
  273.                              v-validate="{ rules: { required: this.user.isCompany} }"
  274.                              :style="computeStyle('companyStreet')" />
  275.                 </div>
  276.                 <div class="formfield small">
  277.                     <span class="label">Nummer</span>
  278.                     <input type="text"
  279.                              name="companyHouseNumber"
  280.                              placeholder="Nummer"
  281.                              v-model.lazy="user.companyAddress.housenumber"
  282.                              v-validate="{ rules: { required: this.user.isCompany} }"
  283.                              :style="computeStyle('companyHouseNumber')" />
  284.                 </div>
  285.  
  286.  
  287.                 <div class="formfield small">
  288.                     <span class="label">Postcode</span>
  289.                     <input type="text"
  290.                              name="companyZipcode"
  291.                              placeholder="Postcode"
  292.                              v-model.lazy="user.companyAddress.zipcode"
  293.                              v-validate="{ required: this.user.isCompany, regex: /\d{4} ?[a-zA-Z]{2}/ }"
  294.                              :style="computeStyle('companyZipcode')" />
  295.                 </div>
  296.                 <div class="formfield medium">
  297.                     <span class="label">Plaats</span>
  298.                     <input type="text"
  299.                              name="companyCity"
  300.                              placeholder="Plaats"
  301.                              v-model.lazy="user.companyAddress.city"
  302.                              v-validate="{ rules: { required: this.user.isCompany} }"
  303.                              :style="computeStyle('companyCity')" />
  304.                 </div>
  305.                 <!--<div class="formfield large">-->
  306.                 <!--<input-->
  307.                 <!--type="text"-->
  308.                 <!--name="companyBankAccount"-->
  309.                 <!--placeholder="IBAN rekeningnummer"-->
  310.                 <!--v-model.lazy="user.companyBankAccount"-->
  311.                 <!--v-validate="{ rules: { required: this.user.isCompany} }"-->
  312.                 <!--:style="computeStyle('companyBankAccount')"/>-->
  313.                 <!--</div>-->
  314.             </div>
  315.         </transition>
  316.  
  317.         <div class="formfield button half" @click="sendForm">Maak account aan</div>
  318.     </div>
  319.  
  320. </template>
  321. <script>
  322.     import Vue from 'vue';
  323.     import myDatepicker from 'vue-datepicker'
  324.     import VeeValidate from 'vee-validate';
  325.  
  326.     import { UserApi, StoresApi } from '~/api';
  327.     import { mapActions } from 'vuex';
  328.     import SelectStore from "../orderprocess/SelectStore.vue";
  329.     import Password from 'vue-password-strength-meter'
  330.     import Loader from "../global/Loader.vue";
  331.  
  332.     Vue.use(VeeValidate);
  333.  
  334.     export default {
  335.         data() {
  336.             return {
  337.                 customErrors: [],
  338.                 loading: false,
  339.                 user: {
  340.                     salutation: 0,
  341.                     firstname: '',
  342.                     prefix: '',
  343.                     lastname: '',
  344.                     birthdate: new Date(),
  345.                     inputBirthdate: {
  346.                         day: 0,
  347.                         month: 0,
  348.                         year: 0
  349.                     },
  350.                     countryCode: 0,
  351.                     phone: '',
  352.                     //street: '',
  353.                     //housenumber: '',
  354.                     //zipcode: '',
  355.                     //city: '',
  356.                     email: '',
  357.                     password: '',
  358.                     passwordConfirmation: '',
  359.                     filiaalOpen: false,
  360.                     isCompany: false,
  361.                     companyName: '',
  362.                     companyType: 0,
  363.                     CoCNumber: '',
  364.                     companyStreet: '',
  365.                     companyHouseNumber: '',
  366.                     companyZipcode: '',
  367.                     companyCity: '',
  368.                     companyBankAccount: '',
  369.                     store: 0,
  370.                     collectalternatives: 0,
  371.                     isAdmin: false,
  372.                     address: {
  373.                         name: '',
  374.                         street: '',
  375.                         housenumber: '',
  376.                         zipcode: '',
  377.                         city: ''
  378.                     },
  379.                     companyAddress: {
  380.                         name: '',
  381.                         street: '',
  382.                         housenumber: '',
  383.                         zipcode: '',
  384.                         city: ''
  385.                     }
  386.                 },
  387.                 stores: [],
  388.                 collectalternativesoptions: [
  389.                     { option: 1, value: `Ja, alleen huismerk` },
  390.                     { option: 2, value: `Ja, alleen A-merk` },
  391.                     { option: 3, value: `Ja, geen voorkeur voor merk` },
  392.                     { option: 4, value: `Nee, geen alternatief toegestaan` }
  393.                 ],
  394.                 salutationOptions: {
  395.                     options: [
  396.                         { option: 'Dhr', value: 'Dhr' },
  397.                         { option: 'Mevr', value: 'Mevr' }
  398.                     ]
  399.                 },
  400.                 error: false,
  401.                 storeInput: '',
  402.                 storeOpen: false,
  403.                 countryCodeOptions: {
  404.                     options: [
  405.                         { option: '0031', value: '0031' },
  406.                         { option: '0032', value: '0032' },
  407.                         { option: '0033', value: '0033' },
  408.                         { option: '0044', value: '0044' },
  409.                         { option: '0049', value: '0049' }
  410.                     ]
  411.                 },
  412.                 companyTypeOptions: {
  413.                     options: [
  414.                         { option: 'Zorginstelling', value: 'Zorginstelling' },
  415.                         { option: 'Kinderopvang', value: 'Kinderopvang' },
  416.                         { option: 'School', value: 'School' },
  417.                         { option: 'Sportvereniging', value: 'Sportvereniging' },
  418.                         { option: 'Overig', value: 'Overig' }
  419.                     ]
  420.                 },
  421.                 zipcodeCheck: null,
  422.                 loadingZipCode: true,
  423.                 interval: null
  424.             }
  425.         },
  426.         methods: {
  427.             sendForm() {
  428.                 const $vm = this;
  429.  
  430.                 Logger.log("Sendform");
  431.  
  432.                 this.customErrors.clear();
  433.  
  434.                 if (this.user.salutation === 0)
  435.                     this.customErrors.push('salutation');
  436.  
  437.                 if (this.user.countryCode === 0)
  438.                     this.customErrors.push('country-code');
  439.  
  440.                 if (this.user.inputBirthdate.day === 0)
  441.                     this.customErrors.push('birthdate-day');
  442.  
  443.                 if (this.user.inputBirthdate.month === 0)
  444.                     this.customErrors.push('birthdate-month');
  445.  
  446.                 if (this.user.inputBirthdate.year === 0)
  447.                     this.customErrors.push('birthdate-year');
  448.  
  449.                 if (this.user.collectalternatives === 0)
  450.                     this.customErrors.push('collectalternatives');
  451.  
  452.  
  453.                 if (this.user.password != this.user.passwordConfirmation) {
  454.                     $vm.error = `Wachtwoorden komen niet overeen`;
  455.                     this.customErrors.push('password');
  456.                     this.customErrors.push('passwordConfirmation');
  457.                     return;
  458.                 }
  459.  
  460.                 if (!this.validatePassword()) {
  461.                     $vm.error = `Wachtwoord voldoet niet aan de eisen. Wachtwoord moet minimaal bestaan uit: 1 kleine letter, 1 hoofdletter, 1 cijfer, 1 leesteken en 8 karakters.`;
  462.                     this.customErrors.push('password');
  463.                     return;
  464.                 }
  465.  
  466.                 if (this.customErrors.length > 0) {
  467.                     $vm.error = `Controleer of alle velden correct zijn ingevuld`;
  468.                     return;
  469.                 }
  470.  
  471.                 this.error = true;
  472.                 this.$validator
  473.                     .validateAll()
  474.                     .then(function (response) {
  475.                         Logger.log("Sendform: ", response);
  476.                         if (response) {
  477.                             $vm.loading = true;
  478.                             UserApi.createUser($vm.user).then(user => {
  479.                                 $vm.setUser(user);
  480.  
  481.                                 $vm.error = false;
  482.                                 Event.fire('USER_LOGGED_IN', user);
  483.                             }).catch(error => {
  484.                                 Logger.log(error);
  485.                                 $vm.error = error.response.data.message;
  486.                             }).then(() => {
  487.                                 $vm.loading = false;
  488.                             });
  489.                         }
  490.                     })
  491.                     .catch(function (e) {
  492.                         Logger.error(e);
  493.                         $vm.error = true;
  494.                     })
  495.             },
  496.             computeStyle(field) {
  497.                 if (this.errors.has(field) || this.customErrors.contains(field))
  498.                     return `border: 1px solid #e84e1b;`;
  499.                 else
  500.                     return ``;
  501.             },
  502.             ...mapActions({
  503.                 setUser: 'setUser'
  504.             }),
  505.             storeSelected(store) {
  506.                 this.storeOpen = false;
  507.                 this.user.store = store;
  508.                 this.storeInput = '';
  509.             },
  510.             storeInputChange() {
  511.                 console.log('input change');
  512.                 this.storeOpen = true;
  513.             },
  514.             updateBirthdate() {
  515.                 let str = this.user.inputBirthdate;
  516.                 console.log("updatebirthdate", str);
  517.  
  518.                 let temp = [];
  519.                 temp.push(this.user.inputBirthdate.year, this.user.inputBirthdate.month, this.user.inputBirthdate.day);
  520.  
  521.                 this.user.birthdate = (new Date(temp.join("-"))).toUTCString();
  522.                 console.log(this.user.birthdate);
  523.             },
  524.             validatePassword() {
  525.                 let password = this.user.password;
  526.  
  527.                 if (password.length < 8)
  528.                     return false;
  529.  
  530.                 let regex = new RegExp(`^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-_=+]).{8,}$`);
  531.  
  532.                 return regex.test(password);
  533.             },
  534.             checkZip(event) {
  535.                 clearInterval(this.interval);
  536.                
  537.                 if ((event.which <= 90 && event.which >= 48) || (event.which >= 96 && event.which <= 105) || event.which === 8 || event.which === 46) {
  538.                     if (!(this.user.address.zipcode.length > 5 && this.user.address.housenumber.length > 0))
  539.                         return;
  540.  
  541.                     this.loadingZipCode = true;
  542.  
  543.                     this.interval = setTimeout(() => {
  544.                         UserApi.zipcodeCheck({
  545.                             zipcode: this.user.address.zipcode,
  546.                             housenumber: this.user.address.housenumber,
  547.                             housenumberaddition: this.user.address.housenumberaddition
  548.                         }).then(data => {
  549.                             console.log(data)
  550.                             this.user.address.street = data.streetNen;
  551.                             this.user.address.city = data.city;
  552.                         }).catch(error => {
  553.                             console.error(error)
  554.                         });
  555.                         this.loadingZipCode = false;
  556.                     }, 1000);
  557.  
  558.                 }
  559.             }
  560.         },
  561.         mounted() {
  562.             const $vm = this;
  563.  
  564.             StoresApi.getStores().then(stores => {
  565.                 $vm.stores = stores;
  566.             }).catch(error => {
  567.                 Logger.error(error);
  568.                 throw error;
  569.             });
  570.         },
  571.         computed: {
  572.             changeAccountText() {
  573.                 if (this.user.isCompany) {
  574.                     return "geen zakelijk"
  575.                 } else {
  576.                     return "een zakelijk"
  577.                 }
  578.             },
  579.             storeItems() {
  580.                 return this.stores.filter(store => {
  581.                     let name = `${store.name} ${store.address} ${store.city} ${store.zipcode}`.toLowerCase();
  582.                     let input = this.storeInput.toLowerCase();
  583.                     return name.contains(input);
  584.                 });
  585.             },
  586.             days() {
  587.                 let array = [];
  588.                 for (let i = 1; i <= 31; i++) {
  589.                     if (i.toString().length === 1) {
  590.                         array.push('0' + i.toString());
  591.                     } else {
  592.                         array.push(i.toString());
  593.                     }
  594.                 }
  595.                 return array;
  596.             },
  597.             months() {
  598.                 let array = [];
  599.                 for (let i = 1; i <= 12; i++) {
  600.                     if (i.toString().length === 1) {
  601.                         array.push('0' + i.toString());
  602.                     } else {
  603.                         array.push(i.toString());
  604.                     }
  605.                 }
  606.                 return array;
  607.             },
  608.             years() {
  609.                 let array = [];
  610.                 for (let i = 1900; i <= ((new Date()).getFullYear() - 18); i++) {
  611.                     array.push(i.toString());
  612.                 }
  613.                 return array;
  614.             }
  615.         },
  616.         components: {
  617.             Loader,
  618.             'date-picker': myDatepicker,
  619.             SelectStore,
  620.             Password
  621.         }
  622.     }
  623. </script>
  624. <style>
  625.     .fade-enter,
  626.     .fade-leave-active {
  627.         opacity: 0;
  628.     }
  629.  
  630.     .fade-enter-active,
  631.     .fade-leave-active {
  632.         transition: opacity 0.4s ease-out;
  633.     }
  634.  
  635.     .cov-vue-date {
  636.         width: 100%;
  637.     }
  638.  
  639.     .cov-datepicker {
  640.         padding-left: 20px !important;
  641.         box-shadow: none !important;
  642.         border: 1px solid #E1E1E1 !important;
  643.         border-radius: 4px !important;
  644.     }
  645.  
  646.     .cov-date-body {
  647.         font-family: "FagoPro" !important;
  648.     }
  649.  
  650.         .cov-date-body .day.checked {
  651.             background: #f28808 !important;
  652.         }
  653.  
  654.     .cov-date-caption {
  655.         color: #f28808 !important;
  656.     }
  657.  
  658.     .cov-picker-box .week ul li {
  659.         margin: 0;
  660.     }
  661. </style>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement