ca-web-components
Version:
web components for Clínica Alemana
242 lines (219 loc) • 7.43 kB
JavaScript
var o=Object.defineProperty;var l=(i,a,t)=>a in i?o(i,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[a]=t;var s=(i,a,t)=>l(i,typeof a!="symbol"?a+"":a,t);import{i as r,r as d,x as n}from"../assets/unsafe-html-DS3AO1W7.js";const p=[{id:1,color:"#E57373",title:"Educación continua",text:"Brindamos apoyo a nuestros profesionales para que se capaciten y actualicen constantemente en conocimientos y técnicas médicas.",url:"https://www.clinicaalemana.cl/desarrollo-academico-e-investigacion/educacion-continua"},{id:2,color:"#7BCFE2",title:"Campo clínico",text:"Velamos por el buen desarrollo de las actividades docente-asistenciales de pre y postgrado que se llevan a cabo en nuestras instalaciones.",url:"https://www.clinicaalemana.cl/desarrollo-academico-e-investigacion/campo-clinico"},{id:3,color:"#857BE2",title:"Investigación",text:"Fomentamos la investigación clínica a través del fortalecimiento de las competencias científicas, el respeto por las buenas prácticas, la ética y los derechos de los sujetos involucrados en la investigación.",url:"https://www.clinicaalemana.cl/desarrollo-academico-e-investigacion/investigacion"},{id:4,color:"#4DBFB8",title:"Convenio internacional",text:"Gestionamos y coordinamos los convenios académicos internacionales que Clínica Alemana tiene con prestigiosos centros de salud a nivel mundial.",url:"https://www.clinicaalemana.cl/desarrollo-academico-e-investigacion/convenios-internacionales"}],g=["https://d51h1y0hva8v.cloudfront.net/images/default-source/dai/alianzas/al1.png","https://d51h1y0hva8v.cloudfront.net/images/default-source/dai/alianzas/al2.png","https://d51h1y0hva8v.cloudfront.net/images/default-source/dai/alianzas/al3.png","https://d51h1y0hva8v.cloudfront.net/images/default-source/dai/alianzas/al4.png"],m=r`
:host {
display: flex;
justify-content: center;
}
section {
margin: 100px 0;
}
[data-theme="dark"] {
background-color: #364855;
color: #fff;
}
.inner-container {
max-width: 1200px;
padding: 0 32px;
margin: 0 auto;
display: grid;
grid-template-columns: 530px 1fr;
align-items: center;
gap: 48px;
}
.circles {
display: flex;
gap: 12px;
}
.circles span {
width: 20px;
height: 20px;
border-radius: 50%;
background: #f1f1f1;
}
.circles span:nth-child(1) {
background: #E57373;
}
.circles span:nth-child(2) {
background: #7BCFE2;
}
.circles span:nth-child(3) {
background: #857BE2;
}
.circles span:nth-child(4) {
background: #4DBFB8;
}
.text-content {
display: flex;
flex-direction: column;
gap: 12px;
padding: 24px 0 64px;
}
.actions {
display: flex;
gap: 8px;
}
[data-theme="dark"] .actions {
color: #364855;
}
.btn {
background: #FFFFFF;
border: 1px solid #DCD9F7;
color: currentColor;
border-radius: 30px;
padding: 0 30px;
height: 44px;
gap: 8px;
text-decoration: none;
display: flex;
align-items: center;
justify-content: center;
white-space: nowrap;
}
.item {
position: relative;
display: flex;
flex-direction: column;
color: #FFFFFF;
background: #f1f1f1;
padding: 56px 24px 24px;
border-radius: 30px;
gap: 12px;
text-decoration: none;
--eloisa-ds-icon-color: currentColor;
box-shadow: 0 30px 40px rgba(200, 200, 200, 0.25);
}
.item cas-icon {
position: absolute;
right: 24px;
bottom: 24px;
}
.cards {
display: grid;
grid-template-columns: repeat(7, 1fr);
grid-template-rows: repeat(6, 116px);
gap: 16px;
//aspect-ratio: 1/1.15;
}
.item:nth-child(1) {
grid-column: 2 / 5;
grid-row: 2 / 5;
}
.item:nth-child(2) {
grid-column: 5 / 8;
grid-row: 1 / 4;
}
.item:nth-child(3) {
grid-column: 5 / 8;
grid-row: 4 / 7;
}
.item:nth-child(4) {
grid-column: 1 / 5;
grid-row: 5 / 7;
}
.alliances {
position: relative;
display: flex;
flex-direction: column;
gap: 16px;
margin-top: 64px;
}
.alliances .list {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 8px;
}
.alliances .list .image {
background-color: #FFFFFF;
border-radius: 4px;
overflow: hidden;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
[data-theme="dark"] .alliances .list .image {
padding: 2px;
}
.alliances .list img {
max-width: 100%;
max-height: 48px;
}
@media (max-width: 1024px) {
.inner-container {
padding: 0;
grid-template-columns: 1fr;
gap: 4px;
}
.start {
padding: 16px;
}
.actions {
display:grid;
grid-template-columns: 1fr 1fr;
}
.btn {
padding: 0 10px;
}
.text-content {
padding: 24px 0 20px;
}
.cards {
display: flex;
gap: 12px;
overflow-x: scroll;
padding: 16px;
}
.item {
grid-column: initial;
grid-row: initial;
padding: 62px 16px !important;
min-width: 180px;
}
.item cas-icon {
bottom: 16px;
right: 16px;
}
.alliances {
margin-top: 32px;
}
.alliances .list {
height: 40px;
}
}
`;class c extends d{constructor(){super()}static get properties(){return{theme:{type:String},urlAction1:{type:String},urlAction2:{type:String}}}render(){const a=p.map(e=>n`
<a class="item" href="${e.url}" target="_blank" style="background: ${e.color}">
<cas-text variant="headline2">${e.title}</cas-text>
<cas-text variant="footnote2" mobileVariant="m-caption2">${e.text}</cas-text>
<cas-icon name="flat-chevronRight" size="32"></cas-icon>
</a>
`),t=g.map(e=>n`<div class="image"><img src="${e}" alt="Alianza" loading="lazy"/></div>`);return n`
<section data-theme="${this.theme}">
<div class="inner-container">
<div class="start">
<div class="circles"><span></span><span></span><span></span><span></span></div>
<div class="text-content">
<cas-text variant="display2" mobilevariant="m-headline1"><slot name="title"></slot></cas-text>
<cas-text variant="headline4" mobilevariant="m-body1"><slot name="subtitle"></slot></cas-text>
</div>
<div class="actions">
<a class="btn" href="${this.urlAction1}" target="_blank">
<cas-icon name="flat-youtube" size="20"></cas-icon>
<cas-text variant="body2">Ver video</cas-text>
</a>
<a class="btn" href="${this.urlAction2}" target="_blank">
<cas-text variant="body2">Más información</cas-text>
</a>
</div>
<div class="alliances">
<cas-text variant="body2">Nuestras alianzas</cas-text>
<div class="list">
${t}
</div>
</div>
</div>
<div class="cards">
${a}
</div>
</div>
</section>
`}}s(c,"styles",m);customElements.get("ca-dai")||customElements.define("ca-dai",c);