Commit 6215ca50b443d771d3c5da4848bc04bb029ad610

Authored by Luis Suarez
Exists in develop

solving merge

src/app/modules/carrito/carrito.component.html
... ... @@ -24,7 +24,7 @@
24 24 <div
25 25 class="col-12 col-xl-6 p-2 h-50 h-md-25 h-xl-40 text-center text-truncate carrito-articulo"
26 26 *ngFor="let articulo of articuloService.carrito; let i = index;"
27   - @EnterLeave>
  27 + @EnterLeaveX>
28 28 <!-- ARTICULO -->
29 29 <div class="h-100 border border-primary rounded-sm">
30 30 <div class="row align-items-center mx-0 h-100">
... ... @@ -36,10 +36,10 @@
36 36 (contextmenu)="false"
37 37 class="d-none d-md-block mx-auto h-55 rounded-sm shadow-sm"
38 38 src="{{urlImagenes}}{{articulo.imagenes[0].imagen}}"
39   - onerror="this.src='assets/img/image-not-found.jpg'">
  39 + onerror="this.src='assets/img/imagen-no-encontrada.jpg'">
40 40 <div class="row mx-0 h-100 h-md-45">
41 41 <p class="col text-primary text-truncate align-self-center">
42   - <small>{{articulo.DetArt}}</small>
  42 + <small>{{articulo.MKT_DESC ? articulo.MKT_DESC.toUpperCase() : articulo.DetArt.toUpperCase()}}</small>
43 43 </p>
44 44 </div>
45 45 </div>
src/app/modules/carrito/carrito.component.ts
... ... @@ -2,28 +2,16 @@ import { Component, OnInit, OnDestroy, HostListener } from &#39;@angular/core&#39;;
2 2 import { Location } from '@angular/common';
3 3 import { ArticuloService } from 'src/app/services/articulo/articulo.service';
4 4 import { APP_SETTINGS } from 'src/etc/AppSettings';
5   -import { trigger, state, style, transition, animate } from '@angular/animations';
6   -import { IArticulo } from 'src/app/interfaces/IArticulo';
7 5 import { Router } from '@angular/router';
8 6 import { BsModalRef } from 'ngx-bootstrap/modal/public_api';
9 7 import { InactiveScreenService } from 'src/app/services/inactive-screen/inactive-screen.service';
  8 +import { ANIMATIONS } from 'src/app/utils/animations';
10 9  
11 10 @Component({
12 11 selector: 'app-carrito',
13 12 templateUrl: './carrito.component.html',
14 13 styleUrls: ['./carrito.component.scss'],
15   - animations: [
16   - trigger('EnterLeave', [
17   - state('flyIn', style({ transform: 'translateX(0)' })),
18   - transition(':enter', [
19   - style({ transform: 'translateX(-100%)' }),
20   - animate('1s ease-in')
21   - ]),
22   - transition(':leave', [
23   - animate('1s ease-out', style({ transform: 'translateX(-100%)' }))
24   - ])
25   - ])
26   - ]
  14 + animations: [ANIMATIONS.EnterLeaveX]
27 15 })
28 16 export class CarritoComponent implements OnInit, OnDestroy {
29 17 urlImagenes = `${APP_SETTINGS.apiDeboSuite}/imagenes/`;
src/app/modules/forma-pago/forma-pago.component.html
1 1 <div class="h-92 bg-white fade-in-left">
2   - <div class="row mx-0 h-15">
  2 + <div class="row mx-0 h-20">
3 3 <div class="col-12 px-0 h-80 my-auto">
4 4 <img
5 5 draggable="false"
... ... @@ -9,65 +9,74 @@
9 9 src="assets/img/logo-spot.svg">
10 10 </div>
11 11 </div>
12   - <div class="h-85">
13   - <div class="row mt-5 mx-3 h-auto border border-primary rounded-sm">
  12 + <div class="h-100">
  13 + <div class="h-10"></div>
  14 + <div class="row mt-5 mx-3 h-auto">
14 15 <div class="col-12 px-0 py-2 align-self-center">
15 16 <div class="px-3 text-center">
16   - <p class="h6 text-truncate">SELECCIONA UNA FORMA DE PAGO</p>
  17 + <p class="h4 text-truncate">SELECCIONA UNA FORMA DE PAGO</p>
17 18 </div>
18 19 </div>
19 20 </div>
20 21 <!-- OPCION PAGO ELECTRONICO -->
21   - <div class="row mt-5 h-auto justify-content-center mx-0 reduce-card-1">
22   - <div class="col-auto px-0 h-auto align-self-start">
23   - <div
24   - class="btn-effect col-auto align-self-center px-0 bg-white"
25   - (click)="medioPago(9)">
26   - <div class="row mx-0 bg-primary badge-pill">
27   - <div class="col-auto p-0">
28   - <img
29   - draggable="false"
30   - ondragstart="return false;"
31   - (contextmenu)="false"
32   - class="p-1 icon-50"
33   - src="assets/img/icono-plato.svg">
34   - </div>
35   - <div class="col-auto align-self-center text-white">Pago electrรณnico</div>
36   - <div class="col-auto align-self-center p-0">
37   - <img
38   - draggable="false"
39   - ondragstart="return false;"
40   - (contextmenu)="false"
41   - class="p-1 icon-30"
42   - src="assets/img/ir.svg">
  22 + <div class="row mt-5 h-auto justify-content-center mx-0">
  23 + <div class="col-5 px-0 h-auto align-self-start reduce-card-1">
  24 + <div class="row justify-content-between">
  25 + <div class="col-12">
  26 + <div
  27 + class="btn-effect col-auto align-self-center px-0 bg-white"
  28 + (click)="medioPago(9)">
  29 + <div class="row mx-0 bg-primary badge-pill heigth-80">
  30 + <div class="col-2 p-0">
  31 + <img
  32 + draggable="false"
  33 + ondragstart="return false;"
  34 + (contextmenu)="false"
  35 + class="pt-3 pl-2 icon-50"
  36 + src="assets/img/icono-pago-electronico.svg">
  37 + </div>
  38 + <div class="col-8 align-self-center text-center text-white h4">Pago electrรณnico</div>
  39 + <div class="col-1 align-self-center p-0">
  40 + <img
  41 + draggable="false"
  42 + ondragstart="return false;"
  43 + (contextmenu)="false"
  44 + class="p-1 icon-50"
  45 + src="assets/img/ir.svg">
  46 + </div>
  47 + </div>
43 48 </div>
44 49 </div>
45 50 </div>
46 51 </div>
47 52 </div>
48 53 <!-- OPCION PAGO CON TARJETA -->
49   - <div class="row mt-5 h-auto justify-content-center mx-0 reduce-card-2">
50   - <div class="col-auto px-0 h-auto align-self-start">
51   - <div
52   - class="btn-effect col-auto align-self-center px-0 bg-white"
53   - (click)="medioPago(4)">
54   - <div class="row mx-0 bg-primary badge-pill">
55   - <div class="col-auto p-0">
56   - <img
57   - draggable="false"
58   - ondragstart="return false;"
59   - (contextmenu)="false"
60   - class="p-1 icon-50"
61   - src="assets/img/icono-take-away.svg">
62   - </div>
63   - <div class="col-auto align-self-center text-white">Pago con tarjeta</div>
64   - <div class="col-auto align-self-center p-0">
65   - <img
66   - draggable="false"
67   - ondragstart="return false;"
68   - (contextmenu)="false"
69   - class="p-1 icon-30"
70   - src="assets/img/ir.svg">
  54 + <div class="row mt-5 h-auto justify-content-center mx-0">
  55 + <div class="col-5 px-0 h-auto align-self-start reduce-card-1">
  56 + <div class="row justify-content-between">
  57 + <div class="col-12">
  58 + <div
  59 + class="btn-effect col-auto align-self-center px-0 bg-white"
  60 + (click)="medioPago(4)">
  61 + <div class="row mx-0 bg-primary badge-pill heigth-80">
  62 + <div class="col-2 p-0">
  63 + <img
  64 + draggable="false"
  65 + ondragstart="return false;"
  66 + (contextmenu)="false"
  67 + class="pt-4 pl-2 icon-50"
  68 + src="assets/img/icono-pago-tarjeta.svg">
  69 + </div>
  70 + <div class="col-8 align-self-center text-center text-white h4">Pago con tarjeta</div>
  71 + <div class="col-2 align-self-center p-0">
  72 + <img
  73 + draggable="false"
  74 + ondragstart="return false;"
  75 + (contextmenu)="false"
  76 + class="p-1 icon-50"
  77 + src="assets/img/ir.svg">
  78 + </div>
  79 + </div>
71 80 </div>
72 81 </div>
73 82 </div>
src/app/modules/opcion-pedido/opcion-pedido.component.scss
... ... @@ -17,7 +17,3 @@
17 17 right: 10%;
18 18 margin-right: 0 !important;
19 19 }
20   -
21   -.heigth-80 {
22   - height: 80px;
23   -}
src/app/modules/seleccion-articulos/filtro-categorias/filtro-categorias.component.html
... ... @@ -41,7 +41,7 @@
41 41 (contextmenu)="false"
42 42 class="col-12 img-fluid align-self-end d-none d-sm-block rounded-circle"
43 43 src="{{urlImagenes}}{{categoria.path_imagen}}"
44   - onerror="this.src='assets/img/image-not-found.jpg'">
  44 + onerror="this.src='assets/img/imagen-no-encontrada.jpg'">
45 45 <small class="col-12 px-1 my-1 h-100 h-md-25 align-self-end text-center text-truncate">{{categoria.detalle}}</small>
46 46 </div>
47 47 </div>
src/app/modules/seleccion-articulos/filtro-categorias/filtro-categorias.component.ts
1   -import { Component, OnInit, Input, HostListener, Output, EventEmitter } from '@angular/core';
  1 +import { Component, OnInit, HostListener, Output, EventEmitter } from '@angular/core';
2 2 import { ICategoria } from 'src/app/interfaces/ICategoria';
3 3 import { InactiveScreenService } from 'src/app/services/inactive-screen/inactive-screen.service';
4 4 import { CategoriaService } from 'src/app/services/categoria/categoria.service';
src/app/modules/seleccion-articulos/seleccion-articulos.component.html
... ... @@ -39,18 +39,14 @@
39 39 ondragstart="return false;"
40 40 (contextmenu)="false"
41 41 src="{{urlImagenes}}{{articulo.imagenes[0].imagen}}"
42   - onerror="this.src='assets/img/image-not-found.jpg'"
  42 + onerror="this.src='assets/img/imagen-no-encontrada.jpg'"
43 43 class="card-img-top h-30 h-md-55 rounded-sm">
44 44 <div class="row mx-0 py-1 h-auto justify-content-center">
45   - <p
46   - [ngClass]="{'text-primary': articulo.PRO, 'text-secondary': !articulo.PRO}"
47   - class="col-12 px-1 h6 h-auto text-center min-h-60">
48   - {{articulo.DetArt.toUpperCase()}}
  45 + <p class="col-12 px-1 h6 h-auto text-primary text-center min-h-60">
  46 + {{articulo.MKT_DESC ? articulo.MKT_DESC.toUpperCase() : articulo.DetArt.toUpperCase()}}
49 47 </p>
50 48 <div class="col-12 px-1 align-self-end h-auto">
51   - <div
52   - [ngClass]="{'bg-primary': articulo.PRO, 'bg-secondary': !articulo.PRO}"
53   - class="row mx-0 justify-content-between badge-pill">
  49 + <div class="row mx-0 justify-content-between bg-primary badge-pill">
54 50 <div class="col px-0 align-self-center text-white text-right">
55 51 {{articulo.PreVen | currency}}
56 52 </div>
... ... @@ -117,7 +113,7 @@
117 113 <div
118 114 class="col-10 col-sm-4 col-lg-2 px-2 px-xl-4 align-self-center border-right border-primary"
119 115 *ngFor="let articulo of articuloService.carrito; let i = index;"
120   - @EnterLeave>
  116 + @EnterLeaveY>
121 117 <img
122 118 class="btn-effect icon-20 mr-2 position-absolute right-0"
123 119 src="assets/img/icono-cancelar-color.svg"
... ... @@ -128,9 +124,9 @@
128 124 (contextmenu)="false"
129 125 class="d-block img-fluid p-2 mx-auto rounded"
130 126 src="{{urlImagenes}}{{articulo.imagenes[0].imagen}}"
131   - onerror="this.src='assets/img/image-not-found.jpg'">
  127 + onerror="this.src='assets/img/imagen-no-encontrada.jpg'">
132 128 <p class="d-block mt-auto text-center text-primary text-truncate">
133   - <small>{{articulo.DetArt}}</small>
  129 + <small>{{articulo.MKT_DESC ? articulo.MKT_DESC.toUpperCase() : articulo.DetArt.toUpperCase()}}</small>
134 130 </p>
135 131 <app-articulo-cantidad [articulo]="articulo"></app-articulo-cantidad>
136 132 </div>
src/app/modules/seleccion-articulos/seleccion-articulos.component.ts
1   -import { Component, OnInit, OnDestroy, HostListener, ViewChild, ViewChildren, AfterViewInit } from '@angular/core';
  1 +import { Component, OnInit, OnDestroy, HostListener, ViewChild, AfterViewInit } from '@angular/core';
2 2 import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
3 3 import { ArticuloService } from 'src/app/services/articulo/articulo.service';
4 4 import { IArticulo } from 'src/app/interfaces/IArticulo';
5 5 import { APP_SETTINGS } from 'src/etc/AppSettings';
6 6 import { ICategoria } from 'src/app/interfaces/ICategoria';
7 7 import { ISinonimo } from 'src/app/interfaces/ISinonimo';
8   -import { CategoriaService } from 'src/app/services/categoria/categoria.service';
9 8 import { PromocionComponent } from 'src/app/shared/promocion/promocion.component';
10 9 import { InactiveScreenService } from 'src/app/services/inactive-screen/inactive-screen.service';
11 10 import { SinonimoService } from 'src/app/services/sinonimo/sinonimo.service';
12 11 import { SinonimoComponent } from 'src/app/shared/sinonimo/sinonimo.component';
13   -import { trigger, state, style, transition, animate } from '@angular/animations';
14 12 import { FiltroCategoriasComponent } from './filtro-categorias/filtro-categorias.component';
15 13 import * as _ from 'lodash';
  14 +import { ANIMATIONS } from 'src/app/utils/animations';
16 15  
17 16 @Component({
18 17 selector: 'app-seleccion-articulos',
19 18 templateUrl: './seleccion-articulos.component.html',
20 19 styleUrls: ['./seleccion-articulos.component.scss'],
21   - animations: [
22   - trigger('EnterLeave', [
23   - state('flyIn', style({ transform: 'translateY(0)' })),
24   - transition(':enter', [
25   - style({ transform: 'translateY(-100%)' }),
26   - animate('0.5s ease-in')
27   - ]),
28   - transition(':leave', [
29   - animate('0.5s ease-out', style({ transform: 'translateY(-100%)' }))
30   - ])
31   - ])
32   - ]
  20 + animations: [ANIMATIONS.EnterLeaveY]
33 21 })
34 22 export class SeleccionArticulosComponent implements OnInit, AfterViewInit, OnDestroy {
35 23 showSpinner = true;
... ... @@ -46,7 +34,6 @@ export class SeleccionArticulosComponent implements OnInit, AfterViewInit, OnDes
46 34  
47 35 constructor(
48 36 public articuloService: ArticuloService,
49   - private categoriaService: CategoriaService,
50 37 private sinonimoService: SinonimoService,
51 38 private modalService: BsModalService,
52 39 private inactiveScreen: InactiveScreenService,
... ... @@ -127,13 +114,13 @@ export class SeleccionArticulosComponent implements OnInit, AfterViewInit, OnDes
127 114 getSinonimos(articulo: IArticulo) {
128 115 this.sinonimoService.getSinonimos(articulo.CodSec, articulo.CodArt)
129 116 .subscribe((res: any[]) => {
130   - const sinonimos = [];
131   - const gruposArticulos = _.groupBy(res[0].productos, 'ID_SIN');
132   - Object.keys(gruposArticulos).forEach(key => {
133   - sinonimos.push({ productos: gruposArticulos[key] });
134   - });
135   - res = sinonimos;
136 117 if (res.length) {
  118 + const sinonimos = [];
  119 + const gruposArticulos = _.groupBy(res[0].productos, 'ID_SIN');
  120 + Object.keys(gruposArticulos).forEach(key => {
  121 + sinonimos.push({ productos: gruposArticulos[key] });
  122 + });
  123 + res = sinonimos;
137 124 this.openModalSinonimos(res, articulo);
138 125 } else {
139 126 this.articuloService.setArticulo(articulo);
src/app/shared/confirmacion/confirmacion.component.html
... ... @@ -10,7 +10,7 @@
10 10 ondragstart="return false;"
11 11 (contextmenu)="false"
12 12 src="{{urlImagenes}}{{imagenPath}}"
13   - onerror="this.src='assets/img/image-not-found.jpg'"
  13 + onerror="this.src='assets/img/imagen-no-encontrada.jpg'"
14 14 class="card-img-top img-fluid rounded-circle">
15 15 </div>
16 16 </div>
src/app/shared/footer/footer.component.html
... ... @@ -8,7 +8,7 @@
8 8 ondragstart="return false;"
9 9 (contextmenu)="false"
10 10 class="p-2 icon-60"
11   - src="assets/img/iconos-accesibilidad.svg">
  11 + src="assets/img/icono-silla-de-ruedas.svg">
12 12 </div>
13 13 </div>
14 14 </div>
src/app/shared/header-publicidad/header-publicidad.component.ts
... ... @@ -72,7 +72,7 @@ export class HeaderPublicidadComponent implements OnInit {
72 72 {
73 73 initialState: {
74 74 titleMessage: articulo.DET_LAR,
75   - imagenPath: articulo.imagenes.length ? articulo.imagenes[0].imagen : 'assets/img/image-not-found.jpg',
  75 + imagenPath: articulo.imagenes.length ? articulo.imagenes[0].imagen : 'assets/img/imagen-no-encontrada.jpg',
76 76 footerMessageFirst: `ยฟDESEA AGREGAR ESTE ARTรCULO`,
77 77 footerMessageSecond: `a su carrito?`,
78 78 footerConfirmation: articulo.PreVen,
src/app/shared/promocion/promocion.component.html
... ... @@ -34,7 +34,7 @@
34 34 ondragstart="return false;"
35 35 (contextmenu)="false"
36 36 src="{{urlImagenes}}{{articulosPromo[0].imagenes[0].imagen}}"
37   - onerror="this.src='assets/img/image-not-found.jpg'"
  37 + onerror="this.src='assets/img/imagen-no-encontrada.jpg'"
38 38 class="card-img-top img-fluid rounded-circle">
39 39 </div>
40 40 </div>
src/app/shared/promocion/promocion.component.ts
... ... @@ -9,6 +9,7 @@ import { InactiveScreenService } from &#39;src/app/services/inactive-screen/inactive
9 9 import { SinonimoService } from 'src/app/services/sinonimo/sinonimo.service';
10 10 import { ISinonimo } from 'src/app/interfaces/ISinonimo';
11 11 import { SinonimoComponent } from '../sinonimo/sinonimo.component';
  12 +import * as _ from 'lodash';
12 13  
13 14 @Component({
14 15 selector: 'app-promocion',
... ... @@ -40,6 +41,12 @@ export class PromocionComponent implements OnInit {
40 41 this.sinonimoService.getSinonimos(promo.CodSec, promo.CodArt)
41 42 .subscribe((res: ISinonimo[]) => {
42 43 if (res.length) {
  44 + const sinonimos = [];
  45 + const gruposArticulos = _.groupBy(res[0].productos, 'ID_SIN');
  46 + Object.keys(gruposArticulos).forEach(key => {
  47 + sinonimos.push({ productos: gruposArticulos[key] });
  48 + });
  49 + res = sinonimos;
43 50 this.openModalSinonimos(res, promo);
44 51 } else {
45 52 promo.cantidad = 1;
src/app/shared/sinonimo/sinonimo.component.html
1 1 <div class="bg-primary rounded text-white">
2 2 <div class="modal-header">
3   - <p class="h4">Elige una opciรณn</p>
  3 + <p class="h4 col-6 px-0 align-self-center">Eliga opciones {{sinonimos.length}}</p>
  4 + <div class="col-6 text-right">
  5 + <p *ngFor="let s of sinonimos; let i = index">
  6 + <span
  7 + class="pr-2 btn-effect"
  8 + (click)="scrollTo(i)">
  9 + Ir a opciรณn {{i+1}}</span>
  10 + <i class="far fa-hand-point-left"></i>
  11 + </p>
  12 + </div>
4 13 </div>
5 14  
6 15 <div class="modal-body lista-sinonimos scroll-y-visible my-2 mr-2">
7 16 <div *ngFor="let s of sinonimos; let i = index">
8   - <br>
  17 + <div [id]="i"></div>
  18 + <hr [hidden]="i === 0" class="bg-white">
9 19 <div *ngFor="let articulo of s.productos">
10 20 <div class="custom-control custom-checkbox">
11 21 <input
src/app/shared/sinonimo/sinonimo.component.ts
... ... @@ -4,6 +4,7 @@ import { IArticulo } from &#39;src/app/interfaces/IArticulo&#39;;
4 4 import { BsModalRef } from 'ngx-bootstrap/modal';
5 5 import { Subject, forkJoin } from 'rxjs';
6 6 import { ArticuloService } from 'src/app/services/articulo/articulo.service';
  7 +import { element } from 'protractor';
7 8  
8 9 @Component({
9 10 selector: 'app-sinonimo',
... ... @@ -73,4 +74,9 @@ export class SinonimoComponent implements OnInit {
73 74 }, err => console.error(err));
74 75 }
75 76  
  77 + scrollTo(index: number) {
  78 + const element = document.getElementById(index.toString());
  79 + element.scrollIntoView({ behavior: "smooth", block: "center" });
  80 + }
  81 +
76 82 }
src/app/utils/animations.ts
... ... @@ -0,0 +1,24 @@
  1 +import { trigger, state, style, transition, animate } from '@angular/animations';
  2 +
  3 +export const ANIMATIONS = {
  4 + EnterLeaveY: trigger('EnterLeaveY', [
  5 + state('flyIn', style({ transform: 'translateY(0)' })),
  6 + transition(':enter', [
  7 + style({ transform: 'translateY(-100%)' }),
  8 + animate('0.5s ease-in')
  9 + ]),
  10 + transition(':leave', [
  11 + animate('0.5s ease-out', style({ transform: 'translateY(-100%)' }))
  12 + ])
  13 + ]),
  14 + EnterLeaveX: trigger('EnterLeaveX', [
  15 + state('flyIn', style({ transform: 'translateX(0)' })),
  16 + transition(':enter', [
  17 + style({ transform: 'translateX(-100%)' }),
  18 + animate('1s ease-in')
  19 + ]),
  20 + transition(':leave', [
  21 + animate('1s ease-out', style({ transform: 'translateX(-100%)' }))
  22 + ])
  23 + ])
  24 +};
src/assets/img/icono-pago-electronico.svg
... ... @@ -0,0 +1,18 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  3 +<!-- Creator: CorelDRAW X7 -->
  4 +<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="29.7016mm" height="29.6264mm" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
  5 +viewBox="0 0 677 675"
  6 + xmlns:xlink="http://www.w3.org/1999/xlink">
  7 + <defs>
  8 + <style type="text/css">
  9 + <![CDATA[
  10 + .fil0 {fill:#F4B223}
  11 + ]]>
  12 + </style>
  13 + </defs>
  14 + <g id="Capa_x0020_1">
  15 + <metadata id="CorelCorpID_0Corel-Layer"/>
  16 + <path class="fil0" d="M0 656c9,11 6,19 32,19 16,0 34,3 44,-7 11,-12 -7,-8 32,-19 12,-4 30,-10 41,-12 7,-4 27,-9 36,-11 12,-4 26,-7 38,-11 27,-9 36,-27 51,-45 27,-35 56,-73 83,-108 5,-5 7,-9 11,-14l32 -41c18,-23 35,-36 12,-61 -8,-7 -13,-19 -32,-16 -11,2 -20,14 -27,20 -2,1 -5,3 -7,5l-25 23c-4,4 -14,14 -19,16 -14,-6 -25,-32 -31,-51 -11,-34 -10,-31 -3,-66 3,-11 6,-22 8,-34 2,-7 11,-29 -5,-27 -8,1 -9,16 -12,29 -12,55 -20,53 -5,100 7,21 16,41 28,55 3,4 18,16 28,10 6,-4 14,-13 21,-19 5,-3 6,-6 11,-9l32 -29c4,-3 6,-9 14,-7 1,1 18,16 18,23 0,6 -38,52 -44,59l-71 92c-5,8 -12,16 -18,24 -24,31 -29,46 -64,57 -21,7 -42,13 -63,19 -21,6 -42,14 -63,19 0,-30 0,-61 0,-91 0,-19 -3,-71 4,-85l127 -254 30 -36c6,-8 13,-17 20,-25 4,-5 19,-21 16,-28 -8,-11 -14,-2 -19,4l-59 75c-7,9 -115,227 -122,241 -9,-9 -10,-12 -28,-12 -11,0 -29,-2 -38,3 -19,9 -13,42 -13,66 0,24 1,146 -1,159zm520 -97c15,-25 6,-34 0,-49 33,1 73,0 107,0 24,1 15,-13 11,-15 -4,-3 -222,-1 -263,-1 -13,0 -28,-4 -25,11 3,9 34,5 49,5 18,0 36,0 54,0 -11,26 -11,23 0,50 -16,0 -115,1 -124,-2 -7,-3 -10,-10 -17,-8 -10,2 -9,17 15,24 12,4 269,2 304,2 15,0 23,-3 33,-12 12,-12 12,-26 12,-46l0 -409c0,-48 12,-109 -45,-109l-255 0c-36,0 -64,-4 -76,26 -6,15 -3,81 -3,101 0,68 0,136 0,204 0,8 0,18 0,26 0,8 6,15 14,8 5,-4 3,-38 3,-48 0,-34 0,-68 0,-102l0 -153c0,-50 10,-45 57,-45l255 0c42,0 33,25 33,68l0 410c0,11 2,42 -2,49 -5,14 -17,16 -35,16 -17,0 -34,0 -51,0 -15,0 -37,1 -51,-1zm-503 -101l0 179c0,23 -3,21 32,21 21,0 18,-2 18,-22l0 -178c0,-17 -8,-13 -24,-13 -17,0 -26,-4 -26,13zm494 -280l0 54c0,19 5,15 42,15 49,0 41,12 41,-69 0,-17 -8,-13 -41,-13 -34,0 -42,-5 -42,13zm-51 67c3,-11 2,-27 2,-40 0,-47 7,-40 -43,-40 -47,0 -40,-7 -40,42 0,8 -2,34 3,38 5,4 72,3 78,0zm-116 -163l287 1c16,0 16,-17 0,-17l-287 0c-8,0 -14,0 -14,8 0,8 6,8 14,8zm183 148l50 1 0 -50 -49 0 -1 49zm-131 0l49 0 0 -49 -49 0 0 49zm2 83l47 0c0,15 0,31 0,46 0,7 -1,16 5,19 9,4 12,-4 12,-12 0,-14 0,-27 0,-41 0,-34 10,-29 -71,-29 -7,0 -13,4 -11,12 2,7 10,5 18,5zm80 -33c0,23 -3,36 15,31 3,-8 2,-18 2,-29 0,-16 0,-19 -16,-19l-75 0c-9,0 -26,-3 -24,10 1,10 19,7 28,7 21,0 51,-2 70,0zm33 82l-16 0c0,-19 3,-39 -15,-31 -3,9 -2,17 -2,27 0,10 -2,19 9,21 6,1 20,0 27,0 13,0 14,-4 14,-16l0 -51c0,-8 0,-15 -9,-16 -9,0 -8,9 -8,17 0,17 0,33 0,49zm-29 149c-12,2 -22,14 -20,29 2,12 15,22 30,19 31,-7 21,-54 -10,-48zm96 -168c21,10 16,-17 16,-41 0,-10 4,-37 -8,-38 -14,-2 -9,24 -9,34 0,13 -1,35 1,45zm-98 -98c13,5 15,-1 15,-14l0 -51c0,-8 -1,-18 -12,-15 -7,2 -5,15 -5,24 0,15 -2,44 2,56zm-33 -210c-6,20 13,15 30,15 9,0 43,1 48,-3 5,-5 2,-13 -5,-14 -5,-1 -19,0 -25,0 -10,0 -42,-1 -48,2zm66 244c10,2 21,0 31,1 0,11 -1,22 2,31 13,5 15,-1 15,-14 -1,-38 5,-34 -34,-34 -13,0 -19,3 -14,16zm48 83c0,-7 0,-18 0,-24 -1,-7 -8,-12 -14,-7 -4,4 -4,41 -1,45 4,4 41,4 45,1 6,-6 1,-14 -5,-15 -5,-1 -19,0 -25,0z"/>
  17 + </g>
  18 +</svg>
src/assets/img/icono-pago-tarjeta.svg
... ... @@ -0,0 +1,20 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  3 +<!-- Creator: CorelDRAW X7 -->
  4 +<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="40.8317mm" height="28.4598mm" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
  5 +viewBox="0 0 6182 4309"
  6 + xmlns:xlink="http://www.w3.org/1999/xlink">
  7 + <defs>
  8 + <style type="text/css">
  9 + <![CDATA[
  10 + .fil0 {fill:#F4B223}
  11 + ]]>
  12 + </style>
  13 + </defs>
  14 + <g id="Capa_x0020_1">
  15 + <metadata id="CorelCorpID_0Corel-Layer"/>
  16 + <path class="fil0" d="M255 1396l1430 0 0 -1141c0,-141 115,-255 255,-255l3987 0c141,0 255,114 255,255 0,801 0,1602 0,2403 0,140 -115,254 -255,254l-1431 0 0 1141c0,141 -114,256 -254,256l-3987 0c-140,0 -255,-115 -255,-256 0,-801 0,-1601 0,-2402 0,-140 114,-255 255,-255zm1551 0l2436 0c140,0 254,115 254,255l0 1141 1431 0c74,0 135,-61 135,-134l0 -1737 -4256 0 0 475zm4256 -595l0 -209 -4256 0 0 209 4256 0zm0 -329l0 -217c0,-74 -61,-135 -135,-135l-3987 0c-74,0 -134,61 -134,135l0 217 4256 0zm-5942 1395l4256 0 0 -216c0,-74 -61,-134 -134,-134l-3987 0c-74,0 -135,60 -135,134l0 216zm4256 451l-4256 0 0 1735c0,74 61,135 135,135l3987 0c73,0 134,-61 134,-135l0 -1735zm0 -330l-4256 0 0 209 4256 0 0 -209z"/>
  17 + <path class="fil0" d="M595 2984l919 0 0 361 -982 0 0 -361 63 0zm794 125l-731 0 0 111 731 0 0 -111z"/>
  18 + <polygon class="fil0" points="514,3843 2095,3843 2095,3963 514,3963 "/>
  19 + </g>
  20 +</svg>
src/assets/img/icono-silla-de-ruedas.svg
... ... @@ -0,0 +1,21 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  3 +<!-- Creator: CorelDRAW X7 -->
  4 +<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="19.7986mm" height="18.7181mm" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
  5 +viewBox="0 0 176 166"
  6 + xmlns:xlink="http://www.w3.org/1999/xlink">
  7 + <defs>
  8 + <style type="text/css">
  9 + <![CDATA[
  10 + .fil0 {fill:#CFD1D2}
  11 + ]]>
  12 + </style>
  13 + </defs>
  14 + <g id="Capa_x0020_1">
  15 + <metadata id="CorelCorpID_0Corel-Layer"/>
  16 + <path class="fil0" d="M119 148c0,4 3,8 7,8 5,0 8,-4 8,-8 0,-4 -3,-8 -8,-8 -4,0 -7,4 -7,8l0 0zm10 0c0,2 -1,3 -3,3 -1,0 -2,-1 -2,-3 0,-1 1,-2 2,-2 2,0 3,1 3,2l0 0zm0 0z"/>
  17 + <path class="fil0" d="M49 78c-21,0 -39,18 -39,39 0,22 18,39 39,39 21,0 39,-17 39,-39 0,-21 -18,-39 -39,-39l0 0zm0 73c-19,0 -34,-15 -34,-34 0,-18 15,-34 34,-34 18,0 33,16 33,34 0,19 -15,34 -33,34l0 0zm0 0z"/>
  18 + <path class="fil0" d="M49 107c-6,0 -10,4 -10,10 0,6 4,10 10,10 6,0 10,-4 10,-10 0,-6 -4,-10 -10,-10l0 0zm0 15c-3,0 -5,-2 -5,-5 0,-3 2,-5 5,-5 3,0 5,2 5,5 0,3 -2,5 -5,5l0 0zm0 0z"/>
  19 + <path class="fil0" d="M173 135l-20 0 -6 -31c-2,-6 -7,-10 -13,-10l-5 0 0 -39c0,-7 -6,-13 -13,-13l-8 0c-1,-6 -6,-10 -13,-10l-38 0 0 -19c0,-7 -6,-13 -13,-13l-36 0c-2,0 -5,1 -6,3 -2,1 -2,3 -2,6 1,4 4,7 8,7l33 0 0 53c-23,3 -41,24 -41,48 0,27 22,49 49,49 27,0 49,-22 49,-49 0,-6 -1,-12 -4,-18l30 0 0 16 -18 0c-2,0 -3,1 -3,2 0,2 1,3 3,3l18 0 0 10c-9,2 -16,9 -16,18 0,10 8,18 18,18 10,0 18,-8 18,-18 0,-9 -6,-16 -15,-18l0 -31 5 0c4,0 7,3 8,6l6 33c0,0 0,0 0,0l2 11c0,1 1,2 3,2l20 0c2,0 3,-1 3,-3l0 -10c0,-2 -1,-3 -3,-3l0 0zm-34 13c0,7 -6,13 -13,13 -7,0 -13,-6 -13,-13 0,-7 6,-13 13,-13 7,0 13,6 13,13l0 0zm-44 -111c4,0 7,2 8,5l-46 0 0 -5 38 0zm-87 -27c-1,0 -3,-1 -3,-2 0,-1 0,-1 1,-2 0,0 1,-1 2,-1l33 0 0 5 -33 0zm38 -4c3,1 6,4 6,7l0 55c-1,0 -2,0 -3,0 -1,0 -2,0 -3,0l0 -62 0 0zm3 155c-24,0 -44,-20 -44,-44 0,-24 20,-44 44,-44 24,0 44,20 44,44 0,24 -20,44 -44,44l0 0zm43 -67c-7,-13 -20,-23 -35,-25l0 -6 49 0c1,0 2,-1 2,-3 0,-1 -1,-2 -2,-2l-49 0 0 -11 59 0c4,0 8,4 8,8l0 3 -8 0c-1,0 -3,1 -3,2 0,2 2,3 3,3l8 0 0 31 -32 0zm79 52l-16 0 -1 -6 17 0 0 6zm0 0z"/>
  20 + </g>
  21 +</svg>
src/assets/img/image-not-found.jpg

41.5 KB

src/assets/img/imagen-no-encontrada.jpg

30.5 KB

src/scss/height-width.scss
... ... @@ -39,3 +39,7 @@
39 39 .max-h-80 {
40 40 max-height: 80%;
41 41 }
  42 +
  43 +.heigth-80 {
  44 + height: 80px;
  45 +}
src/scss/styles-bootstrap.scss
... ... @@ -40,21 +40,35 @@ $border-radius-sm: 0.5rem;
40 40 height: 100% !important;
41 41 }
42 42  
  43 +.custom-checkbox .custom-control-label::before {
  44 + border-radius: 50% !important;
  45 +}
  46 +
43 47 .custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
44 48 background-color: $primary !important;
45 49 }
46 50  
47   -.custom-control-input:checked ~ .custom-control-label::before {
48   - border-color: $primary !important;
49   - background-color: $primary !important;
  51 +.custom-checkbox .custom-control-input:checked:focus ~ .custom-control-label::before {
  52 + box-shadow: none !important;
  53 +}
  54 +.custom-checkbox .custom-control-input:focus ~ .custom-control-label::before {
  55 + box-shadow: none !important;
50 56 }
51 57  
52 58 .custom-control-input:checked ~ .custom-control-label::before {
53   - color: #fff;
54   - border-color: $primary !important;
  59 + background-color: white !important;
  60 + border-color: white !important;
  61 + border-width: 2px;
  62 +}
  63 +
  64 +.custom-checkbox .custom-control-input:active ~ .custom-control-label::before {
55 65 background-color: $primary !important;
56 66 }
57 67  
  68 +.modal {
  69 + background-color: #0000004d;
  70 +}
  71 +
58 72 .modal-promo > div {
59 73 border: none !important;
60 74 border-radius: $border-radius;