Commit cd29cd94 by rajshah

initial commit

parents
File added
c9c6d646313e03721c98ceb868884b142a715736
<?php get_header(); ?>
<section class="page-not-found position-relative">
<div class="container">
<div class="row">
<div class="col-md-6 mx-auto text-center">
<?php
$image = get_field('pnf_image', 'option');
$size = 'full'; // (thumbnail, medium, large, full or custom size)
if ($image) {
echo wp_get_attachment_image($image, $size);
}
?>
<h2 class="font-secondary text-uppercase text-primary fw-600 mt-4"><?php echo get_field('pnf_title', 'option'); ?></h2>
<p><?php echo get_field('pnf_subtitle', 'option'); ?> </p>
<a href="<?php echo get_home_url(); ?>" class="d-inline-block btn btn-primary btn-padding hover-up btn-start-project font-14 fw-500 btn-padding btn-submit">Go To Homepage <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.125 10H16.875" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
<path d="M11.25 4.375L16.875 10L11.25 15.625" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
</svg>
</a>
</div>
</div>
</div>
</section>
<?php get_footer(); ?>
\ No newline at end of file
<?php
get_header();
$current_page_id = get_queried_object_id();
$currentObject = get_queried_object();
?>
<div class="container-fluid background-dark breadcrumb-background-dark py-40">
<div class="container">
<div class="row">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="<?php echo site_url('/');?>">Home</a></li>
<li class="breadcrumb-item active" aria-current="page">Blog</li>
</ol>
</nav>
</div>
</div>
</div>
<section class="background-dark pb-60 BLOGLISTING-TOP-TITLE-SECTION">
<div class="container">
<div class="row justify-content-between">
<div class="col-lg-3 pb-60 title-wrapper">
<!-- <h1><?php echo $currentObject->name;?></h1> -->
<h1>Blog</h1>
</div>
<div class="col-lg-6 pb-60 paragraph">
<!-- <p><?php echo get_the_excerpt();?></p> -->
<p><?php echo get_field('arch_description', 'option'); ?></p>
</div>
</div>
</div>
</section>
<section class="py-60 BLOGLISTING-LIST-ITEM-SECTION">
<div class="container">
<div class="row justify-content-between">
<div class="col-lg-2 col-12 left-filter">
<?php get_sidebar();?>
</div>
<div class="col-lg-10 col-12 blog-list">
<div class="row justify-content-evenly">
<?php while(have_posts()):the_post();?>
<div class="col-lg-6 col-md-6">
<div class="blog-card">
<a href="<?php the_permalink();?>">
<div class="blog-image-wrapper">
<?php the_post_thumbnail();?>
</div>
<!--<p class="text-dark mb-0">Author: <?php echo get_the_author(); ?></p>-->
<div class="text-wrapper">
<p>
<?php
$post_tags = get_the_tags();
if ($post_tags) {
foreach ($post_tags as $tag) {
echo $tag->name . ',';
}
}
?>
<h6><?php the_title();?></h6>
<?php the_excerpt();?>
<div class="card-detail d-flex justify-content-between">
<div><svg width="20" height="21" viewBox="0 0 20 21" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M16.25 3.625H3.75C3.40482 3.625 3.125 3.90482 3.125 4.25V16.75C3.125 17.0952 3.40482 17.375 3.75 17.375H16.25C16.5952 17.375 16.875 17.0952 16.875 16.75V4.25C16.875 3.90482 16.5952 3.625 16.25 3.625Z"
stroke="#005AFF" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<path d="M13.75 2.375V4.875" stroke="#005AFF" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M6.25 2.375V4.875" stroke="#005AFF" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M3.125 7.375H16.875" stroke="#005AFF" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
<?php echo get_the_date('d, M Y');?></div>
<div><svg width="20" height="20" viewBox="0 0 20 20" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M10 4.375C3.75 4.375 1.25 10 1.25 10C1.25 10 3.75 15.625 10 15.625C16.25 15.625 18.75 10 18.75 10C18.75 10 16.25 4.375 10 4.375Z"
stroke="#005AFF" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<path
d="M10 13.125C11.7259 13.125 13.125 11.7259 13.125 10C13.125 8.27411 11.7259 6.875 10 6.875C8.27411 6.875 6.875 8.27411 6.875 10C6.875 11.7259 8.27411 13.125 10 13.125Z"
stroke="#005AFF" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</svg>
<?php echo (int) get_post_meta(get_the_ID(),'total_views')??0;?> Views</div>
<div class="d-none">
<svg width="18" height="15" viewBox="0 0 18 15" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M4.60515 6C3.99821 6 3.50786 6.44688 3.50786 7C3.50786 7.55312 3.99821 8 4.60515 8C5.2121 8 5.70245 7.55312 5.70245 7C5.70245 6.44688 5.2121 6 4.60515 6ZM8.44569 6C7.83875 6 7.3484 6.44688 7.3484 7C7.3484 7.55312 7.83875 8 8.44569 8C9.05264 8 9.54299 7.55312 9.54299 7C9.54299 6.44688 9.05264 6 8.44569 6ZM12.2862 6C11.6793 6 11.1889 6.44688 11.1889 7C11.1889 7.55312 11.6793 8 12.2862 8C12.8932 8 13.3835 7.55312 13.3835 7C13.3835 6.44688 12.8932 6 12.2862 6ZM8.44569 0.5C3.59701 0.5 -0.332685 3.40937 -0.332685 7C-0.332685 8.4875 0.349697 9.85 1.48128 10.9469C0.970356 12.1781 -0.0926513 13.2219 -0.109797 13.2344C-0.336114 13.4531 -0.397837 13.7719 -0.267533 14.0469C-0.137229 14.3219 0.161099 14.5 0.490288 14.5C2.59916 14.5 4.26225 13.6969 5.2601 13.0531C6.2511 13.3375 7.32096 13.5 8.44569 13.5C13.2944 13.5 17.2241 10.5906 17.2241 7C17.2241 3.40937 13.2944 0.5 8.44569 0.5ZM8.44569 12C7.53014 12 6.62487 11.8719 5.75732 11.6219L4.97892 11.3969L4.31025 11.8281C3.8199 12.1438 3.14781 12.4969 2.33855 12.7344C2.58887 12.3562 2.83233 11.9312 3.02093 11.4781L3.38441 10.6L2.67802 9.91875C2.05737 9.31563 1.31326 8.31875 1.31326 7C1.31326 4.24375 4.51257 2 8.44569 2C12.3788 2 15.5781 4.24375 15.5781 7C15.5781 9.75625 12.3788 12 8.44569 12Z"
fill="#005AFF" />
</svg>
<?php echo get_comments_number();?> Comments
</div>
</div>
</div>
</a>
</div>
</div>
<?php endwhile;?>
</div>
<?php the_posts_pagination();?>
<!-- <nav aria-label="Page navigation example">
<ul class="pagination justify-content-center">
<li class="page-item"><a class="page-link" href="#">Previous</a></li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item"><a class="page-link" href="#">Next</a></li>
</ul>
</nav> -->
</div>
</div>
</div>
</section>
<!-- // <?php echo custom_page_content(get_the_content(null,false,$current_page_id));?> -->
<?php get_footer() ?>
\ No newline at end of file
@charset "UTF-8";/*!
Animate.css - http://daneden.me/animate
Licensed under the MIT license - http://opensource.org/licenses/MIT
Copyright (c) 2013 Daniel Eden
*/.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);-ms-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);-ms-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);-ms-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);-ms-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);-ms-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);-ms-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);-ms-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);-ms-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);-ms-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);-ms-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);-ms-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);-ms-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);-ms-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);-ms-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{0%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);-ms-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;-ms-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);-ms-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);-ms-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);-ms-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);-ms-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);-ms-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);-ms-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);-ms-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);-ms-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);-ms-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);-ms-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);-ms-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);-ms-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);-ms-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);-ms-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);-ms-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);-ms-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);-ms-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);-ms-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;-ms-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);-ms-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);-ms-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);-ms-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);-ms-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);-ms-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);-ms-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);-ms-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);-ms-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);-ms-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);-ms-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);-ms-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);-ms-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);-ms-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-ms-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);-ms-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;-ms-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);-ms-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);-ms-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);-ms-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);-ms-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);-ms-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);-ms-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);-ms-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);-ms-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);-ms-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);-ms-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);-ms-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);-ms-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);-ms-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);-ms-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0,0,1,45deg);-ms-transform:rotate(0,0,1,45deg);transform:rotate(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);-ms-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);-ms-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);-ms-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);-ms-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);-ms-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);-ms-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);-ms-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-ms-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);-ms-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);-ms-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;-ms-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);-ms-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);-ms-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;-ms-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-ms-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-ms-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Downloaded from
www.Dfonts.org
Thousands of Premium Fonts For Free
\ No newline at end of file
[InternetShortcut]
URL=https://www.dfonts.org/
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path id="Vector" d="M8.79425 5.64963L9.44083 5.00205L9.43891 5.00012L8.78656 4.34481L6.9873 2.53739L4.72042 0.258301L2.44199 2.54899L0.640807 4.3564L0.00192476 5.00012L0 5.00205L0.64658 5.64963L2.44584 7.45898L4.72042 9.74193L6.99307 7.45898L8.79425 5.64963Z" fill="#005AFF"/>
</svg>
<svg width="268" height="268" viewBox="0 0 268 268" fill="none" xmlns="http://www.w3.org/2000/svg">
<path id="&#60;Compound Path&#62;" fill-rule="evenodd" clip-rule="evenodd" d="M44.1686 223.391L39.564 227.919L38.7388 227.048L43.7472 222.096C44.2513 216.501 44.2858 210.782 43.8238 205.001C43.8042 204.695 43.7846 204.389 43.7651 204.083C42.8392 193.936 40.4704 183.848 36.4519 173.954C32.4334 164.061 27.0939 155.172 20.6769 147.241C20.4772 147.008 20.2776 146.774 20.078 146.541C16.1392 141.745 11.7699 137.437 7.11351 133.454L0.709037 133.422L0.694007 132.224L7.7482 132.308C12.1317 128.654 16.2158 124.65 19.9104 120.333C20.1196 120.074 20.3288 119.815 20.5379 119.556C27.0297 111.806 32.5598 102.979 36.7051 93.1927C40.8771 83.3433 43.3701 73.2296 44.4201 63.1748C44.4605 62.8444 44.501 62.5141 44.5414 62.1837C45.1062 56.0934 45.1113 49.915 44.603 43.8914L40.0608 39.2866L40.9316 38.4641L45.8998 43.4727C51.5039 43.9848 57.2319 44.0283 63.0206 43.5761C63.3272 43.5571 63.6338 43.538 63.9403 43.5189C74.1015 42.6105 84.2013 40.2613 94.1035 36.2645C104.006 32.2678 112.9 26.9506 120.769 20.529C121.045 20.348 121.3 20.158 121.533 19.959C126.33 16.0338 130.638 11.6779 134.62 7.03498L134.642 0.640334L135.841 0.627224L135.768 7.67051C139.435 12.0531 143.451 16.1373 147.781 19.8331C148.041 20.0423 148.3 20.2516 148.56 20.4609C156.332 26.9549 165.182 32.4906 174.989 36.645C184.86 40.8262 194.993 43.3313 205.065 44.3956C205.396 44.4365 205.727 44.4774 206.058 44.5183C212.159 45.0918 218.347 45.1067 224.379 44.6087L228.983 40.0807L229.808 40.9515L224.8 45.9041C224.296 51.4989 224.261 57.2181 224.75 62.9355C224.752 63.2837 224.763 63.6109 224.782 63.9171C225.708 74.0642 228.077 84.1523 232.095 94.0456C236.114 103.939 241.453 112.828 247.897 120.696C248.079 120.971 248.27 121.226 248.469 121.459C252.408 126.255 256.777 130.563 261.434 134.546L267.838 134.578L267.853 135.776L260.799 135.692C256.415 139.346 252.358 143.286 248.637 147.667C248.428 147.926 248.218 148.185 248.009 148.444C241.517 156.194 235.987 165.021 231.842 174.807C227.67 184.656 225.177 194.77 224.127 204.825C224.087 205.155 224.055 205.465 224.032 205.753C223.441 211.906 223.436 218.085 223.944 224.108L228.486 228.713L227.616 229.536L222.647 224.527C217.043 224.015 211.315 223.972 205.527 224.424C205.22 224.443 204.913 224.462 204.607 224.481C194.446 225.389 184.346 227.739 174.444 231.735C164.568 235.669 155.647 241.049 147.778 247.471C147.502 247.652 147.248 247.842 147.014 248.041C142.217 251.966 137.909 256.322 133.927 260.965L133.905 267.359L132.706 267.373L132.779 260.329C129.113 255.947 125.096 251.863 120.766 248.167C120.506 247.957 120.247 247.748 119.987 247.539C112.215 241.045 103.366 235.509 93.5579 231.355C83.6869 227.174 73.5537 224.669 63.4819 223.604C63.1509 223.563 62.82 223.522 62.489 223.482C56.3885 222.908 50.2006 222.893 44.1686 223.391ZM132.754 258.978L132.896 242.433C132.431 241.888 131.944 241.335 131.436 240.772C131.236 240.538 131.058 240.314 130.9 240.098C124.841 233.436 117.695 227.58 109.607 222.888C109.053 222.554 108.489 222.24 107.916 221.948C105.148 220.378 102.287 218.968 99.3346 217.717C96.3395 216.449 93.3153 215.366 90.262 214.47C89.6536 214.262 89.0363 214.075 88.4101 213.909C79.4132 211.364 70.2977 210.332 61.297 210.615C60.9904 210.634 60.6838 210.654 60.3772 210.673C59.2108 210.725 58.0356 210.798 56.8514 210.892L45.093 222.442C50.7916 222.027 56.4563 222.043 62.187 222.609C62.5358 222.608 62.8545 222.619 63.1433 222.642C73.5217 223.687 83.8448 226.272 93.9056 230.534C103.903 234.769 112.942 240.385 120.914 247.112C121.131 247.304 121.361 247.525 121.603 247.777C125.67 251.212 129.36 255.009 132.754 258.978ZM26.3635 133.64C27.0337 134.172 27.6649 134.737 28.2572 135.336C28.4747 135.527 28.7132 135.727 28.9728 135.937C35.2261 141.787 40.7083 148.578 45.203 156.29C45.5 156.763 45.7882 157.257 46.0674 157.773C47.8789 161.072 49.5737 164.471 51.035 168.068C52.4963 171.666 53.651 175.282 54.6524 178.908C54.8115 179.472 54.9707 180.036 55.1299 180.6C57.2208 189.23 58.022 197.91 57.5871 206.512C57.5645 206.8 57.563 207.098 57.5826 207.404C57.5665 207.794 57.5204 208.197 57.4443 208.611L69.2028 197.061C69.4499 194.187 69.5706 191.259 69.4479 188.378C69.4283 188.071 69.4176 187.744 69.4159 187.396C69.0138 179.184 67.2224 170.904 63.9978 162.836C60.6832 154.805 56.1911 147.615 50.748 141.437C50.5484 141.204 50.3488 140.97 50.1492 140.737C47.8367 138.268 45.4707 135.925 42.8711 133.782L26.3635 133.64ZM71.0134 68.9289C73.8921 69.1802 76.8242 69.3053 79.7101 69.1873C80.0167 69.1683 80.3444 69.1581 80.6931 69.1569C88.9176 68.7685 97.2072 66.9929 105.282 63.7859C113.321 60.4891 120.514 56.0153 126.693 50.5902C126.927 50.3913 127.16 50.1924 127.394 49.9934C129.863 47.6883 132.205 45.3296 134.348 42.7374L134.464 26.2553C133.89 26.9057 133.324 27.5351 132.768 28.1434C132.577 28.3602 132.377 28.5981 132.168 28.857C126.318 35.0914 119.526 40.5546 111.809 45.0302C111.335 45.326 110.841 45.6129 110.325 45.8909C107.024 47.6945 103.622 49.3813 100.022 50.8347C96.4209 52.2881 92.8005 53.4353 89.1704 54.4294C88.6059 54.5874 88.0415 54.7455 87.477 54.9035C78.837 56.9776 70.1455 57.7639 61.529 57.3161C61.2403 57.293 60.9426 57.291 60.636 57.3101C60.2029 57.2756 59.7908 57.25 59.3999 57.2333L71.0134 68.9289ZM168.955 51.0669C165.348 49.5392 161.975 47.8125 158.682 45.8964C158.194 45.6399 157.693 45.3534 157.18 45.0369C149.589 40.4066 142.859 34.8006 137.1 28.4888C136.9 28.2553 136.7 28.0219 136.501 27.7884C136.235 27.4771 135.969 27.1658 135.702 26.8544L135.523 43.3098C137.42 45.5279 139.433 47.6465 141.563 49.6657C141.822 49.8749 142.052 50.0963 142.252 50.3298C148.359 55.8208 155.49 60.4798 163.526 63.8837C171.499 67.2608 179.807 69.1417 188 69.7081C188.306 69.689 188.625 69.6999 188.956 69.7408C192.321 69.9004 195.64 69.817 198.95 69.5805L210.708 58.03C209.891 58.0809 209.052 58.1228 208.192 58.1557C207.886 58.1748 207.579 58.1939 207.272 58.2129C198.732 58.4673 190.022 57.5335 181.415 55.3023C180.831 55.1542 180.277 54.994 179.753 54.8217C176.086 53.7895 172.498 52.5679 168.955 51.0669ZM242.21 134.297C241.54 133.765 240.909 133.199 240.317 132.601C240.099 132.41 239.882 132.218 239.664 132.027C233.348 126.149 227.866 119.359 223.371 111.647C223.074 111.174 222.786 110.679 222.507 110.164C220.695 106.865 219 103.466 217.539 99.8686C216.078 96.271 214.923 92.6544 213.922 89.0282C213.762 88.4643 213.624 87.9094 213.507 87.3634C211.353 78.7066 210.552 70.0271 210.987 61.4245C211.009 61.1362 211.011 60.839 210.991 60.5329C211.007 60.1425 211.053 59.7401 211.13 59.3255L199.371 70.876C199.124 73.7499 199.003 76.6774 199.126 79.5591C199.128 79.9073 199.138 80.2345 199.158 80.5406C199.56 88.7531 201.352 97.0329 204.576 105.101C207.891 113.132 212.383 120.322 217.826 126.5C218.025 126.733 218.246 126.976 218.488 127.227C220.737 129.669 223.103 132.011 225.703 134.155L242.21 134.297ZM197.561 199.008C194.682 198.756 191.813 198.658 188.864 198.749C188.557 198.768 188.251 198.787 187.944 198.807C179.656 199.168 171.367 200.944 163.355 204.178C155.253 207.448 148.123 211.948 141.944 217.373C141.668 217.554 141.414 217.744 141.18 217.943C138.711 220.248 136.432 222.634 134.226 225.199L134.11 241.681C134.684 241.031 135.249 240.402 135.806 239.793C135.997 239.576 136.197 239.339 136.406 239.08C142.256 232.845 149.048 227.382 156.765 222.906C157.239 222.611 157.733 222.324 158.249 222.046C161.55 220.242 164.951 218.555 168.552 217.102C172.153 215.649 175.773 214.501 179.404 213.507C179.968 213.349 180.532 213.191 181.097 213.033C189.737 210.959 198.428 210.173 207.045 210.621C207.334 210.644 207.631 210.646 207.938 210.627C208.371 210.661 208.774 210.708 209.147 210.767L197.561 199.008ZM99.709 216.833C103.252 218.334 106.626 220.061 109.919 221.977C110.407 222.234 110.907 222.52 111.42 222.837C119.011 227.467 125.741 233.073 131.501 239.385C131.701 239.618 131.9 239.852 132.1 240.085C132.366 240.396 132.653 240.717 132.962 241.046L133.077 224.564C131.181 222.346 129.168 220.227 127.038 218.208C126.778 217.999 126.54 217.798 126.322 217.607C120.242 212.053 113.111 207.394 105.138 204.017C97.1019 200.613 88.794 198.732 80.5741 198.229C80.2853 198.206 79.9754 198.174 79.6445 198.133C76.2792 197.973 72.9602 198.057 69.651 198.293L57.8925 209.844C58.7101 209.793 59.5487 209.751 60.4085 209.718C60.7151 209.699 61.0216 209.68 61.3283 209.661C69.8691 209.406 78.5782 210.34 87.1856 212.571C87.7697 212.719 88.3237 212.88 88.8478 213.052C92.5151 214.084 96.1023 215.306 99.709 216.833ZM44.314 133.723C46.4707 135.679 48.6005 137.698 50.6502 139.906C50.8498 140.14 51.0494 140.373 51.249 140.607C56.8552 146.928 61.447 154.235 64.8347 162.446C68.1957 170.72 69.9702 179.216 70.2919 187.618C70.3115 187.924 70.3311 188.23 70.3507 188.537C70.4294 191.052 70.3849 193.565 70.2171 196.075L80.6742 185.835C81.4033 176.538 80.0835 166.969 76.3572 157.795C72.5116 148.198 66.3913 140.096 58.9723 133.825L44.314 133.723ZM82.3007 80.3374C91.6133 81.0801 101.168 79.8405 110.377 76.0713C119.919 72.2199 127.998 66.1849 134.266 58.7872L134.373 44.0883C132.48 46.2653 130.435 48.4519 128.253 50.4318C128.019 50.6307 127.786 50.8297 127.552 51.0286C121.23 56.6162 113.92 61.1895 105.638 64.5323C97.4193 67.9018 88.9131 69.6602 80.4988 69.9682C80.1922 69.9872 79.8856 70.0063 79.579 70.0254C77.0598 70.1 74.5429 70.0516 72.0284 69.8801L82.3007 80.3374ZM224.35 134.178C222.103 132.258 220 130.176 218.014 127.994C217.814 127.761 217.615 127.527 217.415 127.294C211.782 121.035 207.127 113.702 203.766 105.428C200.442 97.2432 198.667 88.7472 198.282 80.3185C198.262 80.0123 198.243 79.7062 198.223 79.4C198.162 76.8424 198.216 74.3084 198.384 71.7981L187.963 82.1281C187.197 91.3353 188.517 100.905 192.243 110.078C196.152 119.702 202.209 127.778 209.628 134.048L224.35 134.178ZM186.336 187.626C177.114 186.847 167.532 188.15 158.35 191.856C148.718 195.744 140.639 201.779 134.371 209.176L134.264 223.875C136.184 221.635 138.266 219.538 140.448 217.559C140.681 217.36 140.915 217.161 141.148 216.962C147.407 211.347 154.744 206.711 163.026 203.368C171.281 200.088 179.787 198.33 188.165 197.932C188.472 197.913 188.778 197.894 189.085 197.875C191.637 197.839 194.163 197.867 196.699 198.047L186.336 187.626ZM60.2718 133.929C66.2693 139.15 71.3256 145.537 75.0609 152.927C75.772 154.42 76.5463 155.939 77.1406 157.531C77.8249 159.087 78.3292 160.715 78.8603 162.281C81.1892 169.82 82.0485 177.482 81.5718 184.95L89.5332 177.078C89.7562 174.789 89.7627 172.484 89.6426 170.124C89.6231 169.818 89.6302 169.449 89.6107 169.143C89.1611 164.038 88.0351 158.944 85.9625 153.971C83.9533 149.024 81.2336 144.521 77.9935 140.542C77.7939 140.309 77.5675 140.138 77.3046 139.878C75.5081 137.777 73.568 135.838 71.4845 134.062L60.2718 133.929ZM90.9957 89.233C93.3147 89.3962 95.6605 89.4963 98.0499 89.3169C98.3565 89.2979 98.6363 89.3419 98.9697 89.2597C104.055 88.8821 109.182 87.7027 114.196 85.7311C119.147 83.7328 123.653 81.0244 127.569 77.7687C127.829 77.5066 128.063 77.3076 128.296 77.1087C130.398 75.3182 132.346 73.3632 134.139 71.2435L134.164 60.0845C128.971 66.0015 122.647 71.0667 115.187 74.7579C113.667 75.5286 112.146 76.2994 110.616 76.9171C108.996 77.5711 107.429 78.0988 105.799 78.5998C98.3145 80.9401 90.6426 81.7859 83.0992 81.2714L90.9957 89.233ZM157.9 76.9893C156.318 76.3192 154.853 75.5497 153.388 74.7802C146.352 71.1296 140.347 66.2777 135.403 60.6836L135.315 71.8159C136.875 73.5938 138.462 75.3086 140.193 76.8608C140.482 77.058 140.682 77.2914 140.972 77.4886C144.849 80.8437 149.274 83.6116 154.209 85.7022C159.208 87.8196 164.275 89.0721 169.382 89.523C169.662 89.567 170.032 89.5748 170.312 89.6189C173.115 89.8134 175.884 89.7949 178.619 89.5634L186.554 81.7547C178.646 82.2771 170.55 81.3051 162.689 78.7202C161.117 78.2032 159.482 77.6594 157.9 76.9893ZM208.302 134.008C202.305 128.786 197.248 122.4 193.513 115.01C192.739 113.49 192.028 111.998 191.37 110.379C190.749 108.85 190.245 107.221 189.714 105.656C187.385 98.1165 186.525 90.455 187.002 82.987L178.977 90.8321C178.818 93.1473 178.784 95.5161 178.931 97.8122C178.951 98.1184 178.944 98.4877 178.963 98.7938C179.35 103.872 180.539 108.993 182.611 113.966C184.594 118.976 187.34 123.416 190.58 127.394C190.78 127.628 190.98 127.861 191.179 128.095C193.018 130.214 194.988 132.141 197.089 133.875L208.302 134.008ZM177.578 178.704C175.196 178.514 172.887 178.504 170.524 178.62C170.217 178.639 169.911 178.658 169.604 178.677C164.519 179.055 159.392 180.234 154.378 182.206C149.4 184.267 144.895 186.975 140.978 190.231C140.745 190.43 140.511 190.629 140.278 190.828C138.158 192.661 136.21 194.616 134.435 196.693L134.346 207.825C139.539 201.908 145.927 196.87 153.387 193.179C154.844 192.381 156.338 191.674 157.958 191.02C159.578 190.366 161.145 189.838 162.749 189.4C170.259 186.997 177.905 186.214 185.385 186.702L177.578 178.704ZM110.737 190.974C112.256 191.617 113.811 192.351 115.276 193.12C122.249 196.744 128.254 201.596 133.234 207.28L133.349 196.084C131.789 194.307 130.175 192.655 128.381 191.076C128.182 190.842 127.982 190.609 127.692 190.412C123.815 187.057 119.39 184.289 114.455 182.198C109.456 180.081 104.389 178.828 99.2815 178.377C98.9384 178.307 98.6318 178.326 98.3252 178.345C95.5398 178.108 92.7796 178.105 90.0446 178.337L82.11 186.146C90.018 185.623 98.0507 186.568 105.975 189.18C107.547 189.697 109.155 190.304 110.737 190.974ZM72.9274 134.003C74.7092 135.552 76.3652 137.221 77.8956 139.011C78.0952 139.245 78.2948 139.478 78.4945 139.712C81.9244 143.771 84.8072 148.418 86.8627 153.607C89.0083 158.761 90.1807 164.097 90.55 169.392C90.5696 169.698 90.5891 170.004 90.6087 170.31C90.7327 172.249 90.7334 174.186 90.6108 176.119L98.5455 168.311C99.0202 162.257 98.1323 156.072 95.6846 150.046C93.0909 143.661 89.0229 138.289 84.0769 134.109L72.9274 134.003ZM99.9072 98.1459C105.998 98.5664 112.227 97.7795 118.195 95.3183C124.65 92.7654 130.023 88.7121 134.139 83.7535L134.254 72.5581C132.705 74.3346 131.027 76.0066 129.219 77.5739C128.985 77.7728 128.815 77.9986 128.581 78.1975C124.458 81.589 119.809 84.46 114.678 86.531C109.457 88.6384 104.114 89.8005 98.8751 90.1877C98.5685 90.2068 98.1986 90.1991 97.8921 90.2181C95.9681 90.2968 94.0288 90.2944 92.074 90.211L99.9072 98.1459ZM195.827 133.861C194.087 132.33 192.431 130.66 190.858 128.853C190.659 128.619 190.432 128.449 190.259 128.152C186.829 124.093 183.947 119.447 181.864 114.32C179.746 109.103 178.573 103.767 178.177 98.5353C178.158 98.2292 178.165 97.8599 178.145 97.5537C178.021 95.6148 178.021 93.6784 178.143 91.7446L170.208 99.5533C169.734 105.607 170.595 111.855 173.069 117.818C175.663 124.203 179.704 129.638 184.677 133.755L195.827 133.861ZM168.82 169.781C162.756 169.298 156.5 170.148 150.559 172.546C144.078 175.162 138.731 179.152 134.615 184.111L134.5 195.306C136.049 193.529 137.727 191.857 139.535 190.29C139.769 190.091 139.939 189.865 140.172 189.667C144.296 186.275 148.918 183.467 154.076 181.333C159.27 179.289 164.613 178.127 169.879 177.676C170.185 177.657 170.529 177.728 170.835 177.709C172.777 177.588 174.716 177.591 176.653 177.716L168.82 169.781ZM85.403 134.149C90.1325 138.312 93.9741 143.514 96.4948 149.719C98.8961 155.502 99.7743 161.534 99.533 167.389L107.468 159.58C107.734 155.076 107.107 150.566 105.317 146.159C103.381 141.392 100.32 137.34 96.6425 134.219L85.403 134.149ZM108.639 107.131C113.087 107.377 117.666 106.785 122.014 104.978C126.875 103.016 130.901 100.03 133.985 96.2729L134.074 85.1407C129.939 89.7932 124.708 93.6838 118.497 96.1909C112.673 98.4895 106.67 99.4467 100.769 99.1066L108.639 107.131ZM183.271 133.904C178.541 129.741 174.663 124.45 172.206 118.271C169.804 112.488 168.926 106.457 169.167 100.602L161.206 108.473C160.903 112.888 161.594 117.425 163.384 121.832C165.32 126.598 168.38 130.65 172.058 133.771L183.271 133.904ZM160.008 160.985C155.587 160.676 150.981 161.331 146.597 163.048C141.799 165.037 137.773 168.023 134.689 171.78L134.6 182.913C138.735 178.26 143.965 174.37 150.177 171.863C156.001 169.564 161.977 168.67 167.905 168.947L160.008 160.985ZM97.9152 134.386C100.525 136.682 102.767 139.494 104.542 142.703C105.1 143.734 105.611 144.819 106.073 145.958C106.536 147.097 106.927 148.231 107.245 149.358C108.154 152.499 108.449 155.677 108.339 158.757L116.363 150.912C116.43 148.111 116.028 145.185 114.895 142.397C113.617 139.249 111.628 136.545 109.128 134.518C109.146 134.476 109.176 134.464 109.218 134.482L97.9152 134.386ZM117.434 116.144C120.239 116.215 123.169 115.818 125.959 114.692C129.11 113.42 131.815 111.438 133.841 108.945C133.883 108.963 133.896 108.993 133.878 109.035L133.956 97.7501C131.66 100.352 128.848 102.586 125.637 104.353C124.605 104.909 123.519 105.417 122.379 105.878C121.239 106.338 120.104 106.726 118.975 107.042C115.832 107.944 112.649 108.234 109.564 108.119L117.434 116.144ZM145.831 105.833C144.692 105.351 143.601 104.814 142.558 104.223C139.808 102.612 137.281 100.648 135.195 98.3493L135.08 109.545C137.03 111.636 139.357 113.367 142.141 114.546C145.305 115.886 148.599 116.388 151.782 116.098C151.782 116.098 151.773 116.119 151.755 116.161L159.807 108.253C156.308 108.409 152.716 108.079 149.265 107.064C148.115 106.726 146.97 106.316 145.831 105.833ZM170.742 133.884C168.096 131.497 165.827 128.749 164.115 125.567C163.514 124.518 162.983 123.424 162.52 122.285C162.057 121.146 161.676 119.991 161.375 118.821C160.53 115.708 160.144 112.566 160.255 109.485L152.32 117.294C152.163 120.132 152.566 123.057 153.698 125.846C155.04 129.02 157.056 131.661 159.466 133.725C159.466 133.725 159.457 133.746 159.439 133.788L170.742 133.884ZM151.223 152.126C148.381 151.964 145.515 152.389 142.724 153.515C139.483 154.823 136.842 156.831 134.779 159.234C134.779 159.234 134.758 159.225 134.716 159.207L134.637 170.493C136.996 167.918 139.772 165.594 142.957 163.89C144.048 163.309 145.143 162.78 146.241 162.302C147.381 161.842 148.537 161.463 149.708 161.165C152.825 160.325 155.944 160.008 159.056 160.061L151.223 152.126ZM122.862 162.526C123.959 162.991 125.029 163.519 126.072 164.109C128.912 165.685 131.349 167.685 133.525 169.947L133.55 158.788C131.664 156.723 129.273 154.966 126.553 153.813C123.389 152.473 120.094 151.971 116.848 152.235C116.866 152.192 116.875 152.171 116.875 152.171L108.823 160.08C112.349 159.86 115.914 160.254 119.428 161.295C120.578 161.634 121.723 162.044 122.862 162.526ZM110.454 134.559C112.711 136.632 114.536 139.192 115.742 142.16C116.801 144.768 117.311 147.442 117.297 150.117L125.232 142.308C125.244 141.047 125.075 139.859 124.564 138.599C123.906 136.981 122.808 135.696 121.604 134.665L110.454 134.559ZM126.192 125.066C127.391 125.053 128.645 124.914 129.842 124.378C131.462 123.724 132.81 122.657 133.778 121.429L133.866 110.296C131.857 112.573 129.295 114.392 126.325 115.591C123.714 116.645 120.974 117.122 118.359 117.131L126.192 125.066ZM158.176 133.774C155.983 131.728 154.157 129.167 152.888 126.173C151.829 123.564 151.382 120.918 151.396 118.243L143.398 126.025C143.386 127.286 143.618 128.501 144.066 129.733C144.724 131.352 145.822 132.636 147.09 133.695L158.176 133.774ZM142.438 143.267C141.175 143.253 139.986 143.419 138.725 143.928C137.105 144.582 135.847 145.613 134.789 146.877L134.701 158.01C136.773 155.76 139.335 153.941 142.332 152.679C144.916 151.688 147.592 151.184 150.271 151.201L142.438 143.267ZM122.893 134.615C123.882 135.63 124.79 136.833 125.311 138.246C125.749 139.325 125.971 140.387 126.04 141.458L132.843 134.734L122.893 134.615ZM133.726 132.651L133.829 122.716C132.788 123.765 131.611 124.606 130.17 125.188C129.117 125.561 128.054 125.78 126.98 125.847L133.726 132.651ZM145.7 133.628C144.712 132.613 143.867 131.436 143.283 129.997C142.844 128.918 142.686 127.883 142.554 126.784L135.75 133.508L145.7 133.628ZM134.868 135.592L134.828 145.553C135.805 144.478 136.983 143.637 138.423 143.055C139.477 142.682 140.54 142.463 141.613 142.396L134.868 135.592ZM133.668 135.605L126.541 142.564C128.047 142.532 129.447 142.753 130.902 143.369C131.914 143.798 132.757 144.453 133.599 145.107L133.668 135.605ZM142.72 141.897C142.722 140.483 142.967 139.023 143.556 137.634C143.983 136.624 144.601 135.694 145.319 134.881L135.712 134.833L142.72 141.897ZM141.999 125.805C140.583 125.8 139.12 125.553 137.728 124.964C136.652 124.508 135.783 123.917 134.968 123.199L134.872 132.764L141.999 125.805ZM125.883 126.499C125.881 127.913 125.636 129.373 125.048 130.762C124.62 131.772 124.002 132.702 123.285 133.515L132.891 133.563L125.883 126.499ZM117.745 151.349C120.785 151.221 123.863 151.706 126.837 152.966C129.431 154.065 131.658 155.678 133.562 157.527L133.65 146.395C132.762 145.497 131.73 144.762 130.528 144.253C128.946 143.583 127.24 143.382 125.653 143.603L117.745 151.349ZM151.505 150.756C151.373 147.721 151.853 144.648 153.11 141.681C154.207 139.092 155.819 136.871 157.668 134.974L146.518 134.868C145.621 135.753 144.886 136.783 144.378 137.982C143.71 139.561 143.511 141.263 143.708 142.911L151.505 150.756ZM150.885 116.984C147.845 117.111 144.767 116.627 141.793 115.367C139.199 114.268 136.945 112.718 135.068 110.806L134.98 121.938C135.868 122.835 136.9 123.57 138.102 124.08C139.684 124.75 141.39 124.951 142.977 124.73L150.885 116.984ZM117.125 117.577C117.258 120.612 116.777 123.684 115.52 126.652C114.423 129.24 112.874 131.488 110.962 133.359L122.112 133.465C123.009 132.579 123.744 131.55 124.252 130.351C124.92 128.772 125.093 127.132 124.895 125.485L117.125 117.577ZM160.327 159.705C160.101 156.184 160.489 152.626 161.527 149.118C161.864 147.97 162.273 146.828 162.755 145.692C163.218 144.597 163.745 143.53 164.335 142.489C165.909 139.656 167.908 137.226 170.17 135.057L159.021 134.951C156.929 136.894 155.136 139.188 153.959 141.966C152.622 145.123 152.188 148.439 152.483 151.617C152.423 151.641 152.393 151.654 152.393 151.654L160.327 159.705ZM108.367 108.654C108.529 112.148 108.204 115.734 107.166 119.241C106.829 120.389 106.429 121.51 105.965 122.605C105.484 123.741 104.948 124.83 104.358 125.87C102.721 128.677 100.785 131.133 98.4599 133.276L109.699 133.346C111.765 131.465 113.521 129.081 114.697 126.303C116.008 123.21 116.505 119.921 116.237 116.679C116.237 116.679 116.258 116.688 116.3 116.706L108.367 108.654ZM99.901 168.81C106.159 168.483 112.623 169.433 118.76 172.033C124.582 174.499 129.462 178.13 133.371 182.467L133.486 171.271C130.565 167.949 126.817 165.17 122.451 163.32C117.705 161.31 112.705 160.607 107.899 161.028L99.901 168.81ZM169.112 168.564C168.71 162.288 169.652 155.836 172.246 149.712C174.68 143.967 178.309 139.1 182.673 135.14L171.523 135.034C168.11 137.982 165.359 141.657 163.514 146.013C161.508 150.749 160.812 155.741 161.215 160.603L169.112 168.564ZM168.783 99.3961C162.497 99.7869 156.097 98.8631 149.896 96.2365C144.138 93.7974 139.258 90.1665 135.286 85.803L135.234 97.0252C138.155 100.348 141.84 103.1 146.206 104.949C151.015 106.986 156.015 107.69 160.821 107.268L168.783 99.3961ZM99.572 99.6421C99.9733 105.918 98.9682 112.343 96.3741 118.468C93.9404 124.213 90.3117 129.08 85.9477 133.04L97.1604 133.172C100.51 130.198 103.261 126.523 105.106 122.166C107.112 117.431 107.808 112.439 107.405 107.577L99.572 99.6421ZM90.9788 177.541C93.3293 177.395 95.6896 177.402 98.0597 177.562C98.4295 177.57 98.7361 177.551 99.016 177.595C104.34 178.063 109.623 179.333 114.749 181.504C119.937 183.701 124.525 186.613 128.566 190.112C128.792 190.282 128.992 190.515 129.191 190.749C130.671 192.071 132.052 193.45 133.334 194.887L133.423 183.754C129.404 179.148 124.451 175.337 118.439 172.791C112.112 170.111 105.432 169.143 99.0034 169.696L90.9788 177.541ZM177.87 177.487C177.72 175.14 177.723 172.783 177.879 170.417C177.923 170.137 177.93 169.768 177.911 169.462C178.408 164.236 179.698 158.9 181.864 153.786C184.057 148.609 186.966 144.033 190.373 140.04C190.634 139.778 190.867 139.579 191.037 139.353C192.359 137.878 193.738 136.501 195.175 135.223L183.999 135.181C179.418 139.123 175.583 144.126 173.069 150.061C170.394 156.374 169.436 163.042 170.063 169.489L177.87 177.487ZM177.615 90.7016C175.264 90.8478 172.904 90.8409 170.534 90.6808C170.227 90.6999 169.921 90.719 169.577 90.6481C164.317 90.2068 159.033 88.937 153.845 86.7392C148.719 84.5681 144.068 81.63 140.091 78.1581C139.865 77.9877 139.602 77.7275 139.402 77.494C137.964 76.19 136.605 74.8196 135.322 73.383L135.234 84.5153C139.19 89.095 144.206 92.9326 150.154 95.452C156.545 98.1591 163.161 99.1001 169.653 98.5735L177.615 90.7016ZM90.7237 90.756C90.8738 93.1032 90.8706 95.4599 90.7141 97.8261C90.6704 98.1055 90.69 98.4116 90.6195 98.7541C90.1858 104.006 88.8957 109.343 86.7294 114.457C84.5632 119.571 81.6278 124.21 78.1569 128.176C77.9599 128.465 77.7264 128.664 77.5562 128.889C76.2525 130.323 74.8522 131.691 73.3553 132.993L84.5948 133.062C89.1753 129.12 92.9476 124.09 95.4615 118.155C98.1626 111.779 99.0946 105.174 98.557 98.6909L90.7237 90.756ZM186.628 186.409C186.092 178.512 187.053 170.43 189.629 162.586C190.145 161.017 190.687 159.385 191.355 157.807C192.024 156.228 192.792 154.766 193.561 153.305C197.206 146.285 202.056 140.297 207.651 135.37L196.501 135.264C194.723 136.819 193.008 138.401 191.429 140.19C191.259 140.415 191.026 140.614 190.829 140.903C187.474 144.77 184.709 149.183 182.623 154.108C180.511 159.096 179.264 164.152 178.821 169.252C178.777 169.531 178.77 169.9 178.726 170.18C178.536 172.978 178.559 175.743 178.795 178.474L186.628 186.409ZM81.9022 81.8068C82.4379 89.7037 81.4773 97.7857 78.9008 105.63C78.3587 107.262 77.8434 108.831 77.1748 110.409C76.5062 111.988 75.7378 113.45 74.9427 114.974C71.3244 121.931 66.4745 127.919 60.8797 132.846L72.0292 132.952C73.7806 131.46 75.5223 129.815 77.0741 128.089C77.2711 127.801 77.5046 127.602 77.6749 127.376C81.029 123.51 83.8208 119.033 85.9068 114.108C87.9929 109.184 89.2661 104.064 89.7095 98.9644C89.7532 98.685 89.7337 98.3789 89.8041 98.0364C89.9767 95.2798 89.966 92.5449 89.772 89.8316L81.9022 81.8068ZM70.5218 197.47C73.4611 197.226 76.4468 197.225 79.379 197.35C79.6677 197.373 79.9776 197.405 80.3085 197.446C88.6817 197.94 97.2063 199.838 105.369 203.295C113.595 206.78 120.826 211.555 127.069 217.253C127.287 217.444 127.525 217.645 127.785 217.854C129.64 219.583 131.387 221.39 133.026 223.276L133.106 208.64C127.081 201.546 119.411 195.691 110.236 191.804C100.682 187.757 90.6802 186.351 81.0056 187.167L70.5218 197.47ZM197.852 197.791C197.603 194.856 197.597 191.875 197.718 188.947C197.74 188.659 197.751 188.341 197.749 187.992C198.23 179.633 200.181 171.151 203.631 163.006C207.108 154.799 211.816 147.559 217.512 141.334C217.746 141.135 217.967 140.906 218.176 140.648C219.908 138.849 221.703 137.078 223.598 135.423L208.94 135.32C201.844 141.325 195.993 148.973 192.115 158.128C188.076 167.662 186.683 177.646 187.516 187.307L197.852 197.791ZM197.909 70.6288C194.969 70.8731 192.047 70.9011 189.115 70.776C188.784 70.7351 188.465 70.7242 188.158 70.7433C179.722 70.2228 171.287 68.2883 163.062 64.8039C154.899 61.3464 147.641 56.6339 141.398 50.9362C141.198 50.7027 140.968 50.4813 140.709 50.272C138.854 48.5432 137.107 46.7358 135.468 44.8501L135.388 59.4858C141.413 66.5803 149.082 72.4352 158.194 76.2948C167.749 80.342 177.75 81.7488 187.488 80.9589L197.909 70.6288ZM70.5516 70.3715C70.8008 73.3068 70.8335 76.2247 70.7129 79.1522C70.6724 79.4826 70.6409 79.7919 70.6183 80.0802C70.1104 88.503 68.2495 96.9484 64.7728 105.156C61.3228 113.301 56.5513 120.513 50.8547 126.738C50.6634 126.955 50.4631 127.193 50.2539 127.452C48.5221 129.25 46.7269 131.021 44.832 132.676L59.4903 132.779C66.5861 126.774 72.4379 119.126 76.289 110.034C80.3273 100.501 81.7204 90.5167 80.9139 80.7925L70.5516 70.3715ZM210.301 210.51C210.248 209.694 210.205 208.857 210.171 207.998C210.151 207.692 210.132 207.386 210.112 207.08C209.844 198.551 210.765 189.857 212.986 181.266C213.134 180.683 213.293 180.13 213.465 179.607C214.493 175.947 215.711 172.368 217.235 168.769C218.733 165.233 220.457 161.868 222.371 158.583C222.645 158.054 222.931 157.554 223.229 157.085C227.854 149.513 233.458 142.802 239.771 137.061C240.004 136.862 240.238 136.663 240.471 136.464C240.783 136.199 241.103 135.913 241.432 135.605L224.925 135.464C222.706 137.354 220.524 139.334 218.569 141.484C218.377 141.701 218.156 141.93 217.904 142.171C212.415 148.26 207.76 155.373 204.39 163.328C200.994 171.346 199.15 179.575 198.569 187.818C198.588 188.124 198.578 188.443 198.537 188.773C198.383 192.133 198.472 195.447 198.714 198.752L210.301 210.51ZM58.013 57.6884C58.0652 58.5048 58.1085 59.3422 58.1429 60.2007C58.1625 60.5069 58.161 60.8041 58.1384 61.0924C58.4699 69.6473 57.5484 78.3417 55.3274 86.9325C55.1378 87.4975 54.9782 88.0504 54.8486 88.5913C53.8207 92.2514 52.6029 95.8311 51.1052 99.3668C49.5808 102.966 47.8568 106.331 45.943 109.616C45.6447 110.085 45.3585 110.584 45.0846 111.114C40.4592 118.686 34.8552 125.397 28.4796 131.111C28.2882 131.328 28.0758 131.536 27.8423 131.735C27.5309 132 27.2195 132.265 26.9081 132.53L43.389 132.735C45.6075 130.845 47.7262 128.838 49.7451 126.715C49.9543 126.456 50.1545 126.218 50.3459 126.001C55.8989 119.939 60.5538 112.826 63.9502 104.808C67.3199 96.8525 69.1906 88.5602 69.6816 80.3536C69.7042 80.0653 69.7357 79.756 69.7762 79.4256C69.9307 76.0657 69.8419 72.7517 69.5998 69.4471L58.013 57.6884ZM221.606 223.639L209.956 211.854C209.234 211.796 208.512 211.738 207.79 211.681C207.501 211.658 207.203 211.656 206.897 211.675C197.91 211.219 188.732 212.097 179.742 214.47C179.075 214.634 178.439 214.787 177.832 214.927C174.77 215.814 171.738 216.863 168.738 218.074C165.737 219.285 162.827 220.634 160.008 222.121C159.475 222.441 158.92 222.752 158.344 223.054C150.204 227.648 143.025 233.32 136.888 239.88C136.679 240.139 136.458 240.367 136.224 240.566C135.459 241.434 134.694 242.301 133.928 243.168L133.813 259.65C137.544 255.422 141.565 251.392 146.038 247.702C146.272 247.503 146.505 247.304 146.739 247.105C154.752 240.521 163.853 235.068 174.025 230.962C184.107 226.893 194.45 224.498 204.801 223.67C205.126 223.608 205.462 223.577 205.811 223.576C211.05 223.189 216.345 223.198 221.606 223.639ZM259.266 135.787L242.758 135.646C242.213 136.11 241.66 136.595 241.097 137.102C240.881 137.258 240.657 137.436 240.423 137.635C233.76 143.674 227.906 150.8 223.22 158.868C222.904 159.38 222.6 159.921 222.308 160.493C220.74 163.254 219.324 166.129 218.058 169.117C216.792 172.106 215.713 175.124 214.82 178.171C214.612 178.778 214.426 179.394 214.261 180.019C211.726 188.998 210.707 198.098 211.005 207.086C211.025 207.392 211.044 207.698 211.064 208.004C211.118 209.169 211.193 210.342 211.289 211.525L222.876 223.283C222.45 217.593 222.458 211.937 223.016 206.216C223.014 205.868 223.033 205.528 223.074 205.198C224.077 194.9 226.65 184.597 230.903 174.558C235.128 164.583 240.765 155.503 247.464 147.617C247.673 147.358 247.894 147.129 248.128 146.931C251.562 142.875 255.296 139.169 259.266 135.787ZM223.696 46.9256L211.937 58.4761C211.863 59.2389 211.797 59.9807 211.741 60.7014C211.718 60.9897 211.717 61.2869 211.736 61.5931C211.294 70.565 212.188 79.7305 214.578 88.7107C214.72 89.3167 214.882 89.9315 215.066 90.5554C215.959 93.6145 217.006 96.6641 218.206 99.7042C219.423 102.702 220.788 105.589 222.299 108.363C222.603 108.939 222.915 109.493 223.236 110.026C227.824 118.224 233.515 125.401 240.095 131.539C240.312 131.73 240.551 131.931 240.81 132.14C241.662 132.948 242.532 133.713 243.42 134.437L259.927 134.578C255.661 130.909 251.644 126.825 247.915 122.416C247.715 122.182 247.515 121.949 247.316 121.715C240.709 113.704 235.26 104.545 231.105 94.4453C227.013 84.3721 224.625 73.9778 223.753 63.7044C223.709 63.3383 223.677 63.0022 223.657 62.696C223.288 57.4015 223.289 52.1147 223.696 46.9256ZM135.677 9.12085L135.534 25.6662C136 26.211 136.487 26.7647 136.995 27.3274C137.152 27.543 137.339 27.7465 137.557 27.9379C143.589 34.663 150.762 40.4566 158.823 45.2114C159.336 45.5279 159.878 45.8323 160.451 46.1245C163.219 47.6942 166.101 49.1133 169.096 50.382C172.091 51.6506 175.115 52.7331 178.168 53.6292C178.777 53.8373 179.394 54.0243 180.02 54.1903C189.044 56.6722 198.133 57.7669 207.16 57.4207C207.449 57.4438 207.747 57.4457 208.053 57.4267C209.22 57.3747 210.395 57.3016 211.579 57.2075L223.337 45.657C217.639 46.0728 211.911 46.0293 206.243 45.4903C205.912 45.4494 205.573 45.4296 205.224 45.4308C194.935 44.3492 184.586 41.8268 174.525 37.5652C164.527 33.3304 155.451 27.6244 147.516 20.9868C147.275 20.7355 147.045 20.5141 146.828 20.3227C142.76 16.8872 139.07 13.0901 135.677 9.12085ZM46.708 44.5597L58.2948 56.3184C59.0589 56.3939 59.8019 56.4604 60.5238 56.5179C60.8304 56.4989 61.128 56.5008 61.4168 56.5239C70.4032 56.9794 79.5813 56.1014 88.5715 53.7289C89.196 53.5467 89.8205 53.3644 90.445 53.1821C93.4896 52.3371 96.5333 51.318 99.5761 50.1247C102.577 48.9136 105.465 47.5557 108.242 46.0511C108.818 45.7489 109.381 45.4168 109.933 45.0546C118.046 40.5236 125.315 34.8157 131.452 28.256C131.643 28.0392 131.835 27.8224 132.026 27.6056C132.833 26.7562 133.599 25.889 134.322 25.0038L134.438 8.52167C130.77 12.7763 126.686 16.7801 122.302 20.4337C122.051 20.6748 121.808 20.8947 121.575 21.0937C113.499 27.651 104.398 33.104 94.3155 37.1735C84.2066 41.306 73.8002 43.6743 63.5124 44.5291C63.1637 44.5303 62.836 44.5405 62.5294 44.5595C57.2006 44.9831 51.9325 44.911 46.708 44.5597ZM8.98435 132.385L25.5553 132.553C26.1001 132.089 26.6539 131.604 27.2167 131.097C27.4502 130.898 27.6626 130.69 27.854 130.474C34.5799 124.461 40.3443 117.371 45.0937 109.33C45.4277 108.777 45.7405 108.214 46.0323 107.643C47.6 104.882 49.0168 102.007 50.2827 99.0184C51.5307 96.072 52.6011 93.0752 53.4938 90.0279C53.7013 89.4208 53.8876 88.8047 54.0528 88.1797C56.5243 79.1738 57.633 70.0375 57.2721 61.0233C57.2769 60.7771 57.2695 60.5009 57.2499 60.1948C57.1959 59.0301 57.1209 57.8565 57.0248 56.674L45.438 44.9153C45.8634 50.6059 45.8557 56.2619 45.2981 61.9829C45.2577 62.3133 45.2472 62.6316 45.2668 62.9377C44.1998 73.2087 41.6632 83.6018 37.4377 93.5774C33.1854 103.616 27.5118 112.606 20.8498 120.581C20.6163 120.78 20.3949 121.009 20.1857 121.268C16.7514 125.324 12.9543 129.003 8.98435 132.385ZM44.618 221.273L56.3765 209.723C56.4508 208.96 56.5163 208.218 56.5728 207.497C56.5532 207.191 56.5547 206.894 56.5773 206.606C57.0194 197.634 56.1255 188.468 53.7352 179.488C53.5695 178.822 53.3949 178.177 53.2114 177.553C52.3602 174.512 51.3258 171.493 50.1081 168.495C48.8903 165.497 47.5258 162.61 46.0146 159.835C45.711 159.26 45.3864 158.676 45.0406 158.082C40.4899 149.974 34.7349 142.771 28.1555 136.633C27.938 136.442 27.7295 136.229 27.5299 135.996C26.6601 135.23 25.7814 134.486 24.8938 133.762L8.41295 133.557C12.6531 137.289 16.6963 141.311 20.3357 145.756C20.5775 146.008 20.7982 146.25 20.9978 146.484C27.6047 154.495 33.0804 163.59 37.1453 173.727C41.2369 183.8 43.7153 194.158 44.5609 204.494C44.5805 204.8 44.5911 205.128 44.5929 205.476C45.0255 210.797 44.9884 215.994 44.618 221.273Z" fill="white"/>
</svg>
/*!
* jquery.countup.js 1.0.3
*
* Copyright 2016, Adrián Guerra Marrero http://agmstudio.io @AGMStudio_io
* Released under the MIT License
*
* Date: Oct 27, 2016
*/
(function ($) {
"use strict";
$.fn.countUp = function (options) {
// Defaults
var settings = $.extend({
'time': 2000,
'delay': 10
}, options);
return this.each(function () {
// Store the object
var $this = $(this);
var $settings = settings;
var counterUpper = function () {
if (!$this.data('counterupTo')) {
$this.data('counterupTo', $this.text());
}
var time = parseInt($this.data("counter-time")) > 0 ? parseInt($this.data("counter-time")) : $settings.time;
var delay = parseInt($this.data("counter-delay")) > 0 ? parseInt($this.data("counter-delay")) : $settings.delay;
var divisions = time / delay;
var num = $this.data('counterupTo');
var nums = [num];
var isComma = /[0-9]+,[0-9]+/.test(num);
num = num.replace(/,/g, '');
var isInt = /^[0-9]+$/.test(num);
var isFloat = /^[0-9]+\.[0-9]+$/.test(num);
var decimalPlaces = isFloat ? (num.split('.')[1] || []).length : 0;
// Generate list of incremental numbers to display
for (var i = divisions; i >= 1; i--) {
// Preserve as int if input was int
var newNum = parseInt(Math.round(num / divisions * i));
// Preserve float if input was float
if (isFloat) {
newNum = parseFloat(num / divisions * i).toFixed(decimalPlaces);
}
// Preserve commas if input had commas
if (isComma) {
while (/(\d+)(\d{3})/.test(newNum.toString())) {
newNum = newNum.toString().replace(/(\d+)(\d{3})/, '$1' + ',' + '$2');
}
}
nums.unshift(newNum);
}
$this.data('counterup-nums', nums);
$this.text('0');
// Updates the number until we're done
var f = function () {
$this.text($this.data('counterup-nums').shift());
if ($this.data('counterup-nums').length) {
setTimeout($this.data('counterup-func'), delay);
} else {
delete $this.data('counterup-nums');
$this.data('counterup-nums', null);
$this.data('counterup-func', null);
}
};
$this.data('counterup-func', f);
// Start the count up
setTimeout($this.data('counterup-func'), delay);
};
// Perform counts when the element gets into view
$this.waypoint(counterUpper, { offset: '100%', triggerOnce: true });
});
};
})(jQuery);
// Requires jQuery
// Initialize slider:
$(document).ready(function() {
$('.noUi-handle').on('click', function() {
$(this).width(50);
});
var rangeSlider = document.getElementById('slider-range');
var moneyFormat = wNumb({
decimals: 0,
thousand: ',',
prefix: 'Rs '
});
noUiSlider.create(rangeSlider, {
start: [20000, 50000],
step: 1,
range: {
'min': [1000],
'max': [100000]
},
format: moneyFormat,
connect: true
});
// Set visual min and max values and also update value hidden form inputs
rangeSlider.noUiSlider.on('update', function(values, handle) {
document.getElementById('slider-range-value1').innerHTML = values[0];
document.getElementById('slider-range-value2').innerHTML = values[1];
document.getElementsByName('min-value').value = moneyFormat.from(
values[0]);
document.getElementsByName('max-value').value = moneyFormat.from(
values[1]);
});
});
// https://refreshless.com/nouislider/
/*! nouislider - 8.3.0 - 2016-02-14 17:37:19 */
(function(factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define([], factory);
} else if (typeof exports === 'object') {
// Node/CommonJS
module.exports = factory();
} else {
// Browser globals
window.noUiSlider = factory();
}
}(function() {
'use strict';
// Removes duplicates from an array.
function unique(array) {
return array.filter(function(a) {
return !this[a] ? this[a] = true : false;
}, {});
}
// Round a value to the closest 'to'.
function closest(value, to) {
return Math.round(value / to) * to;
}
// Current position of an element relative to the document.
function offset(elem) {
var rect = elem.getBoundingClientRect(),
doc = elem.ownerDocument,
docElem = doc.documentElement,
pageOffset = getPageOffset();
// getBoundingClientRect contains left scroll in Chrome on Android.
// I haven't found a feature detection that proves this. Worst case
// scenario on mis-match: the 'tap' feature on horizontal sliders breaks.
if (/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)) {
pageOffset.x = 0;
}
return {
top: rect.top + pageOffset.y - docElem.clientTop,
left: rect.left + pageOffset.x - docElem.clientLeft
};
}
// Checks whether a value is numerical.
function isNumeric(a) {
return typeof a === 'number' && !isNaN(a) && isFinite(a);
}
// Rounds a number to 7 supported decimals.
function accurateNumber(number) {
var p = Math.pow(10, 7);
return Number((Math.round(number * p) / p).toFixed(7));
}
// Sets a class and removes it after [duration] ms.
function addClassFor(element, className, duration) {
addClass(element, className);
setTimeout(function() {
removeClass(element, className);
}, duration);
}
// Limits a value to 0 - 100
function limit(a) {
return Math.max(Math.min(a, 100), 0);
}
// Wraps a variable as an array, if it isn't one yet.
function asArray(a) {
return Array.isArray(a) ? a : [a];
}
// Counts decimals
function countDecimals(numStr) {
var pieces = numStr.split(".");
return pieces.length > 1 ? pieces[1].length : 0;
}
// http://youmightnotneedjquery.com/#add_class
function addClass(el, className) {
if (el.classList) {
el.classList.add(className);
} else {
el.className += ' ' + className;
}
}
// http://youmightnotneedjquery.com/#remove_class
function removeClass(el, className) {
if (el.classList) {
el.classList.remove(className);
} else {
el.className = el.className.replace(new RegExp('(^|\\b)' +
className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
}
}
// https://plainjs.com/javascript/attributes/adding-removing-and-testing-for-classes-9/
function hasClass(el, className) {
return el.classList ? el.classList.contains(className) : new RegExp(
'\\b' + className + '\\b').test(el.className);
}
// https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY#Notes
function getPageOffset() {
var supportPageOffset = window.pageXOffset !== undefined,
isCSS1Compat = ((document.compatMode || "") === "CSS1Compat"),
x = supportPageOffset ? window.pageXOffset : isCSS1Compat ?
document.documentElement.scrollLeft : document.body.scrollLeft,
y = supportPageOffset ? window.pageYOffset : isCSS1Compat ?
document.documentElement.scrollTop : document.body.scrollTop;
return {
x: x,
y: y
};
}
// Shorthand for stopPropagation so we don't have to create a dynamic method
function stopPropagation(e) {
e.stopPropagation();
}
// todo
function addCssPrefix(cssPrefix) {
return function(className) {
return cssPrefix + className;
};
}
var
// Determine the events to bind. IE11 implements pointerEvents without
// a prefix, which breaks compatibility with the IE10 implementation.
/** @const */
actions = window.navigator.pointerEnabled ? {
start: 'pointerdown',
move: 'pointermove',
end: 'pointerup'
} : window.navigator.msPointerEnabled ? {
start: 'MSPointerDown',
move: 'MSPointerMove',
end: 'MSPointerUp'
} : {
start: 'mousedown touchstart',
move: 'mousemove touchmove',
end: 'mouseup touchend'
},
defaultCssPrefix = 'noUi-';
// Value calculation
// Determine the size of a sub-range in relation to a full range.
function subRangeRatio(pa, pb) {
return (100 / (pb - pa));
}
// (percentage) How many percent is this value of this range?
function fromPercentage(range, value) {
return (value * 100) / (range[1] - range[0]);
}
// (percentage) Where is this value on this range?
function toPercentage(range, value) {
return fromPercentage(range, range[0] < 0 ? value + Math.abs(range[0]) :
value - range[0]);
}
// (value) How much is this percentage on this range?
function isPercentage(range, value) {
return ((value * (range[1] - range[0])) / 100) + range[0];
}
// Range conversion
function getJ(value, arr) {
var j = 1;
while (value >= arr[j]) {
j += 1;
}
return j;
}
// (percentage) Input a value, find where, on a scale of 0-100, it applies.
function toStepping(xVal, xPct, value) {
if (value >= xVal.slice(-1)[0]) {
return 100;
}
var j = getJ(value, xVal),
va, vb, pa, pb;
va = xVal[j - 1];
vb = xVal[j];
pa = xPct[j - 1];
pb = xPct[j];
return pa + (toPercentage([va, vb], value) / subRangeRatio(pa, pb));
}
// (value) Input a percentage, find where it is on the specified range.
function fromStepping(xVal, xPct, value) {
// There is no range group that fits 100
if (value >= 100) {
return xVal.slice(-1)[0];
}
var j = getJ(value, xPct),
va, vb, pa, pb;
va = xVal[j - 1];
vb = xVal[j];
pa = xPct[j - 1];
pb = xPct[j];
return isPercentage([va, vb], (value - pa) * subRangeRatio(pa, pb));
}
// (percentage) Get the step that applies at a certain value.
function getStep(xPct, xSteps, snap, value) {
if (value === 100) {
return value;
}
var j = getJ(value, xPct),
a, b;
// If 'snap' is set, steps are used as fixed points on the slider.
if (snap) {
a = xPct[j - 1];
b = xPct[j];
// Find the closest position, a or b.
if ((value - a) > ((b - a) / 2)) {
return b;
}
return a;
}
if (!xSteps[j - 1]) {
return value;
}
return xPct[j - 1] + closest(value - xPct[j - 1], xSteps[j - 1]);
}
// Entry parsing
function handleEntryPoint(index, value, that) {
var percentage;
// Wrap numerical input in an array.
if (typeof value === "number") {
value = [value];
}
// Reject any invalid input, by testing whether value is an array.
if (Object.prototype.toString.call(value) !== '[object Array]') {
throw new Error("noUiSlider: 'range' contains invalid value.");
}
// Covert min/max syntax to 0 and 100.
if (index === 'min') {
percentage = 0;
} else if (index === 'max') {
percentage = 100;
} else {
percentage = parseFloat(index);
}
// Check for correct input.
if (!isNumeric(percentage) || !isNumeric(value[0])) {
throw new Error("noUiSlider: 'range' value isn't numeric.");
}
// Store values.
that.xPct.push(percentage);
that.xVal.push(value[0]);
// NaN will evaluate to false too, but to keep
// logging clear, set step explicitly. Make sure
// not to override the 'step' setting with false.
if (!percentage) {
if (!isNaN(value[1])) {
that.xSteps[0] = value[1];
}
} else {
that.xSteps.push(isNaN(value[1]) ? false : value[1]);
}
}
function handleStepPoint(i, n, that) {
// Ignore 'false' stepping.
if (!n) {
return true;
}
// Factor to range ratio
that.xSteps[i] = fromPercentage([
that.xVal[i], that.xVal[i + 1]
], n) / subRangeRatio(that.xPct[i], that.xPct[i + 1]);
}
// Interface
// The interface to Spectrum handles all direction-based
// conversions, so the above values are unaware.
function Spectrum(entry, snap, direction, singleStep) {
this.xPct = [];
this.xVal = [];
this.xSteps = [singleStep || false];
this.xNumSteps = [false];
this.snap = snap;
this.direction = direction;
var index, ordered = [ /* [0, 'min'], [1, '50%'], [2, 'max'] */ ];
// Map the object keys to an array.
for (index in entry) {
if (entry.hasOwnProperty(index)) {
ordered.push([entry[index], index]);
}
}
// Sort all entries by value (numeric sort).
if (ordered.length && typeof ordered[0][0] === "object") {
ordered.sort(function(a, b) {
return a[0][0] - b[0][0];
});
} else {
ordered.sort(function(a, b) {
return a[0] - b[0];
});
}
// Convert all entries to subranges.
for (index = 0; index < ordered.length; index++) {
handleEntryPoint(ordered[index][1], ordered[index][0], this);
}
// Store the actual step values.
// xSteps is sorted in the same order as xPct and xVal.
this.xNumSteps = this.xSteps.slice(0);
// Convert all numeric steps to the percentage of the subrange they represent.
for (index = 0; index < this.xNumSteps.length; index++) {
handleStepPoint(index, this.xNumSteps[index], this);
}
}
Spectrum.prototype.getMargin = function(value) {
return this.xPct.length === 2 ? fromPercentage(this.xVal, value) :
false;
};
Spectrum.prototype.toStepping = function(value) {
value = toStepping(this.xVal, this.xPct, value);
// Invert the value if this is a right-to-left slider.
if (this.direction) {
value = 100 - value;
}
return value;
};
Spectrum.prototype.fromStepping = function(value) {
// Invert the value if this is a right-to-left slider.
if (this.direction) {
value = 100 - value;
}
return accurateNumber(fromStepping(this.xVal, this.xPct, value));
};
Spectrum.prototype.getStep = function(value) {
// Find the proper step for rtl sliders by search in inverse direction.
// Fixes issue #262.
if (this.direction) {
value = 100 - value;
}
value = getStep(this.xPct, this.xSteps, this.snap, value);
if (this.direction) {
value = 100 - value;
}
return value;
};
Spectrum.prototype.getApplicableStep = function(value) {
// If the value is 100%, return the negative step twice.
var j = getJ(value, this.xPct),
offset = value === 100 ? 2 : 1;
return [this.xNumSteps[j - 2], this.xVal[j - offset], this.xNumSteps[
j - offset]];
};
// Outside testing
Spectrum.prototype.convert = function(value) {
return this.getStep(this.toStepping(value));
};
/* Every input option is tested and parsed. This'll prevent
endless validation in internal methods. These tests are
structured with an item for every option available. An
option can be marked as required by setting the 'r' flag.
The testing function is provided with three arguments:
- The provided value for the option;
- A reference to the options object;
- The name for the option;
The testing function returns false when an error is detected,
or true when everything is OK. It can also modify the option
object, to make sure all values can be correctly looped elsewhere. */
var defaultFormatter = {
'to': function(value) {
return value !== undefined && value.toFixed(2);
},
'from': Number
};
function testStep(parsed, entry) {
if (!isNumeric(entry)) {
throw new Error("noUiSlider: 'step' is not numeric.");
}
// The step option can still be used to set stepping
// for linear sliders. Overwritten if set in 'range'.
parsed.singleStep = entry;
}
function testRange(parsed, entry) {
// Filter incorrect input.
if (typeof entry !== 'object' || Array.isArray(entry)) {
throw new Error("noUiSlider: 'range' is not an object.");
}
// Catch missing start or end.
if (entry.min === undefined || entry.max === undefined) {
throw new Error("noUiSlider: Missing 'min' or 'max' in 'range'.");
}
// Catch equal start or end.
if (entry.min === entry.max) {
throw new Error(
"noUiSlider: 'range' 'min' and 'max' cannot be equal.");
}
parsed.spectrum = new Spectrum(entry, parsed.snap, parsed.dir, parsed
.singleStep);
}
function testStart(parsed, entry) {
entry = asArray(entry);
// Validate input. Values aren't tested, as the public .val method
// will always provide a valid location.
if (!Array.isArray(entry) || !entry.length || entry.length > 2) {
throw new Error("noUiSlider: 'start' option is incorrect.");
}
// Store the number of handles.
parsed.handles = entry.length;
// When the slider is initialized, the .val method will
// be called with the start options.
parsed.start = entry;
}
function testSnap(parsed, entry) {
// Enforce 100% stepping within subranges.
parsed.snap = entry;
if (typeof entry !== 'boolean') {
throw new Error("noUiSlider: 'snap' option must be a boolean.");
}
}
function testAnimate(parsed, entry) {
// Enforce 100% stepping within subranges.
parsed.animate = entry;
if (typeof entry !== 'boolean') {
throw new Error("noUiSlider: 'animate' option must be a boolean.");
}
}
function testConnect(parsed, entry) {
if (entry === 'lower' && parsed.handles === 1) {
parsed.connect = 1;
} else if (entry === 'upper' && parsed.handles === 1) {
parsed.connect = 2;
} else if (entry === true && parsed.handles === 2) {
parsed.connect = 3;
} else if (entry === false) {
parsed.connect = 0;
} else {
throw new Error(
"noUiSlider: 'connect' option doesn't match handle count.");
}
}
function testOrientation(parsed, entry) {
// Set orientation to an a numerical value for easy
// array selection.
switch (entry) {
case 'horizontal':
parsed.ort = 0;
break;
case 'vertical':
parsed.ort = 1;
break;
default:
throw new Error("noUiSlider: 'orientation' option is invalid.");
}
}
function testMargin(parsed, entry) {
if (!isNumeric(entry)) {
throw new Error("noUiSlider: 'margin' option must be numeric.");
}
// Issue #582
if (entry === 0) {
return;
}
parsed.margin = parsed.spectrum.getMargin(entry);
if (!parsed.margin) {
throw new Error(
"noUiSlider: 'margin' option is only supported on linear sliders."
);
}
}
function testLimit(parsed, entry) {
if (!isNumeric(entry)) {
throw new Error("noUiSlider: 'limit' option must be numeric.");
}
parsed.limit = parsed.spectrum.getMargin(entry);
if (!parsed.limit) {
throw new Error(
"noUiSlider: 'limit' option is only supported on linear sliders."
);
}
}
function testDirection(parsed, entry) {
// Set direction as a numerical value for easy parsing.
// Invert connection for RTL sliders, so that the proper
// handles get the connect/background classes.
switch (entry) {
case 'ltr':
parsed.dir = 0;
break;
case 'rtl':
parsed.dir = 1;
parsed.connect = [0, 2, 1, 3][parsed.connect];
break;
default:
throw new Error(
"noUiSlider: 'direction' option was not recognized.");
}
}
function testBehaviour(parsed, entry) {
// Make sure the input is a string.
if (typeof entry !== 'string') {
throw new Error(
"noUiSlider: 'behaviour' must be a string containing options.");
}
// Check if the string contains any keywords.
// None are required.
var tap = entry.indexOf('tap') >= 0,
drag = entry.indexOf('drag') >= 0,
fixed = entry.indexOf('fixed') >= 0,
snap = entry.indexOf('snap') >= 0,
hover = entry.indexOf('hover') >= 0;
// Fix #472
if (drag && !parsed.connect) {
throw new Error(
"noUiSlider: 'drag' behaviour must be used with 'connect': true."
);
}
parsed.events = {
tap: tap || snap,
drag: drag,
fixed: fixed,
snap: snap,
hover: hover
};
}
function testTooltips(parsed, entry) {
var i;
if (entry === false) {
return;
} else if (entry === true) {
parsed.tooltips = [];
for (i = 0; i < parsed.handles; i++) {
parsed.tooltips.push(true);
}
} else {
parsed.tooltips = asArray(entry);
if (parsed.tooltips.length !== parsed.handles) {
throw new Error(
"noUiSlider: must pass a formatter for all handles.");
}
parsed.tooltips.forEach(function(formatter) {
if (typeof formatter !== 'boolean' && (typeof formatter !==
'object' || typeof formatter.to !== 'function')) {
throw new Error(
"noUiSlider: 'tooltips' must be passed a formatter or 'false'."
);
}
});
}
}
function testFormat(parsed, entry) {
parsed.format = entry;
// Any object with a to and from method is supported.
if (typeof entry.to === 'function' && typeof entry.from ===
'function') {
return true;
}
throw new Error(
"noUiSlider: 'format' requires 'to' and 'from' methods.");
}
function testCssPrefix(parsed, entry) {
if (entry !== undefined && typeof entry !== 'string') {
throw new Error("noUiSlider: 'cssPrefix' must be a string.");
}
parsed.cssPrefix = entry;
}
// Test all developer settings and parse to assumption-safe values.
function testOptions(options) {
// To prove a fix for #537, freeze options here.
// If the object is modified, an error will be thrown.
// Object.freeze(options);
var parsed = {
margin: 0,
limit: 0,
animate: true,
format: defaultFormatter
},
tests;
// Tests are executed in the order they are presented here.
tests = {
'step': {
r: false,
t: testStep
},
'start': {
r: true,
t: testStart
},
'connect': {
r: true,
t: testConnect
},
'direction': {
r: true,
t: testDirection
},
'snap': {
r: false,
t: testSnap
},
'animate': {
r: false,
t: testAnimate
},
'range': {
r: true,
t: testRange
},
'orientation': {
r: false,
t: testOrientation
},
'margin': {
r: false,
t: testMargin
},
'limit': {
r: false,
t: testLimit
},
'behaviour': {
r: true,
t: testBehaviour
},
'format': {
r: false,
t: testFormat
},
'tooltips': {
r: false,
t: testTooltips
},
'cssPrefix': {
r: false,
t: testCssPrefix
}
};
var defaults = {
'connect': false,
'direction': 'ltr',
'behaviour': 'tap',
'orientation': 'horizontal'
};
// Run all options through a testing mechanism to ensure correct
// input. It should be noted that options might get modified to
// be handled properly. E.g. wrapping integers in arrays.
Object.keys(tests).forEach(function(name) {
// If the option isn't set, but it is required, throw an error.
if (options[name] === undefined && defaults[name] === undefined) {
if (tests[name].r) {
throw new Error("noUiSlider: '" + name + "' is required.");
}
return true;
}
tests[name].t(parsed, options[name] === undefined ? defaults[
name] : options[name]);
});
// Forward pips options
parsed.pips = options.pips;
// Pre-define the styles.
parsed.style = parsed.ort ? 'top' : 'left';
return parsed;
}
function closure(target, options) {
// All variables local to 'closure' are prefixed with 'scope_'
var scope_Target = target,
scope_Locations = [-1, -1],
scope_Base,
scope_Handles,
scope_Spectrum = options.spectrum,
scope_Values = [],
scope_Events = {},
scope_Self;
var cssClasses = [
/* 0 */
'target'
/* 1 */
, 'base'
/* 2 */
, 'origin'
/* 3 */
, 'handle'
/* 4 */
, 'horizontal'
/* 5 */
, 'vertical'
/* 6 */
, 'background'
/* 7 */
, 'connect'
/* 8 */
, 'ltr'
/* 9 */
, 'rtl'
/* 10 */
, 'draggable'
/* 11 */
, ''
/* 12 */
, 'state-drag'
/* 13 */
, ''
/* 14 */
, 'state-tap'
/* 15 */
, 'active'
/* 16 */
, ''
/* 17 */
, 'stacking'
/* 18 */
, 'tooltip'
/* 19 */
, ''
/* 20 */
, 'pips'
/* 21 */
, 'marker'
/* 22 */
, 'value'
].map(addCssPrefix(options.cssPrefix || defaultCssPrefix));
// Delimit proposed values for handle positions.
function getPositions(a, b, delimit) {
// Add movement to current position.
var c = a + b[0],
d = a + b[1];
// Only alter the other position on drag,
// not on standard sliding.
if (delimit) {
if (c < 0) {
d += Math.abs(c);
}
if (d > 100) {
c -= (d - 100);
}
// Limit values to 0 and 100.
return [limit(c), limit(d)];
}
return [c, d];
}
// Provide a clean event with standardized offset values.
function fixEvent(e, pageOffset) {
// Prevent scrolling and panning on touch events, while
// attempting to slide. The tap event also depends on this.
e.preventDefault();
// Filter the event to register the type, which can be
// touch, mouse or pointer. Offset changes need to be
// made on an event specific basis.
var touch = e.type.indexOf('touch') === 0,
mouse = e.type.indexOf('mouse') === 0,
pointer = e.type.indexOf('pointer') === 0,
x, y, event = e;
// IE10 implemented pointer events with a prefix;
if (e.type.indexOf('MSPointer') === 0) {
pointer = true;
}
if (touch) {
// noUiSlider supports one movement at a time,
// so we can select the first 'changedTouch'.
x = e.changedTouches[0].pageX;
y = e.changedTouches[0].pageY;
}
pageOffset = pageOffset || getPageOffset();
if (mouse || pointer) {
x = e.clientX + pageOffset.x;
y = e.clientY + pageOffset.y;
}
event.pageOffset = pageOffset;
event.points = [x, y];
event.cursor = mouse || pointer; // Fix #435
return event;
}
// Append a handle to the base.
function addHandle(direction, index) {
var origin = document.createElement('div'),
handle = document.createElement('div'),
additions = ['-lower', '-upper'];
if (direction) {
additions.reverse();
}
addClass(handle, cssClasses[3]);
addClass(handle, cssClasses[3] + additions[index]);
addClass(origin, cssClasses[2]);
origin.appendChild(handle);
return origin;
}
// Add the proper connection classes.
function addConnection(connect, target, handles) {
// Apply the required connection classes to the elements
// that need them. Some classes are made up for several
// segments listed in the class list, to allow easy
// renaming and provide a minor compression benefit.
switch (connect) {
case 1:
addClass(target, cssClasses[7]);
addClass(handles[0], cssClasses[6]);
break;
case 3:
addClass(handles[1], cssClasses[6]);
/* falls through */
case 2:
addClass(handles[0], cssClasses[7]);
/* falls through */
case 0:
addClass(target, cssClasses[6]);
break;
}
}
// Add handles to the slider base.
function addHandles(nrHandles, direction, base) {
var index, handles = [];
// Append handles.
for (index = 0; index < nrHandles; index += 1) {
// Keep a list of all added handles.
handles.push(base.appendChild(addHandle(direction, index)));
}
return handles;
}
// Initialize a single slider.
function addSlider(direction, orientation, target) {
// Apply classes and data to the target.
addClass(target, cssClasses[0]);
addClass(target, cssClasses[8 + direction]);
addClass(target, cssClasses[4 + orientation]);
var div = document.createElement('div');
addClass(div, cssClasses[1]);
target.appendChild(div);
return div;
}
function addTooltip(handle, index) {
if (!options.tooltips[index]) {
return false;
}
var element = document.createElement('div');
element.className = cssClasses[18];
return handle.firstChild.appendChild(element);
}
// The tooltips option is a shorthand for using the 'update' event.
function tooltips() {
if (options.dir) {
options.tooltips.reverse();
}
// Tooltips are added with options.tooltips in original order.
var tips = scope_Handles.map(addTooltip);
if (options.dir) {
tips.reverse();
options.tooltips.reverse();
}
bindEvent('update', function(f, o, r) {
if (tips[o]) {
tips[o].innerHTML = options.tooltips[o] === true ? f[o] :
options.tooltips[o].to(r[o]);
}
});
}
function getGroup(mode, values, stepped) {
// Use the range.
if (mode === 'range' || mode === 'steps') {
return scope_Spectrum.xVal;
}
if (mode === 'count') {
// Divide 0 - 100 in 'count' parts.
var spread = (100 / (values - 1)),
v, i = 0;
values = [];
// List these parts and have them handled as 'positions'.
while ((v = i++ * spread) <= 100) {
values.push(v);
}
mode = 'positions';
}
if (mode === 'positions') {
// Map all percentages to on-range values.
return values.map(function(value) {
return scope_Spectrum.fromStepping(stepped ?
scope_Spectrum.getStep(value) : value);
});
}
if (mode === 'values') {
// If the value must be stepped, it needs to be converted to a percentage first.
if (stepped) {
return values.map(function(value) {
// Convert to percentage, apply step, return to value.
return scope_Spectrum.fromStepping(scope_Spectrum.getStep(
scope_Spectrum.toStepping(value)));
});
}
// Otherwise, we can simply use the values.
return values;
}
}
function generateSpread(density, mode, group) {
function safeIncrement(value, increment) {
// Avoid floating point variance by dropping the smallest decimal places.
return (value + increment).toFixed(7) / 1;
}
var originalSpectrumDirection = scope_Spectrum.direction,
indexes = {},
firstInRange = scope_Spectrum.xVal[0],
lastInRange = scope_Spectrum.xVal[scope_Spectrum.xVal.length -
1],
ignoreFirst = false,
ignoreLast = false,
prevPct = 0;
// This function loops the spectrum in an ltr linear fashion,
// while the toStepping method is direction aware. Trick it into
// believing it is ltr.
scope_Spectrum.direction = 0;
// Create a copy of the group, sort it and filter away all duplicates.
group = unique(group.slice().sort(function(a, b) {
return a - b;
}));
// Make sure the range starts with the first element.
if (group[0] !== firstInRange) {
group.unshift(firstInRange);
ignoreFirst = true;
}
// Likewise for the last one.
if (group[group.length - 1] !== lastInRange) {
group.push(lastInRange);
ignoreLast = true;
}
group.forEach(function(current, index) {
// Get the current step and the lower + upper positions.
var step, i, q,
low = current,
high = group[index + 1],
newPct, pctDifference, pctPos, type,
steps, realSteps, stepsize;
// When using 'steps' mode, use the provided steps.
// Otherwise, we'll step on to the next subrange.
if (mode === 'steps') {
step = scope_Spectrum.xNumSteps[index];
}
// Default to a 'full' step.
if (!step) {
step = high - low;
}
// Low can be 0, so test for false. If high is undefined,
// we are at the last subrange. Index 0 is already handled.
if (low === false || high === undefined) {
return;
}
// Find all steps in the subrange.
for (i = low; i <= high; i = safeIncrement(i, step)) {
// Get the percentage value for the current step,
// calculate the size for the subrange.
newPct = scope_Spectrum.toStepping(i);
pctDifference = newPct - prevPct;
steps = pctDifference / density;
realSteps = Math.round(steps);
// This ratio represents the ammount of percentage-space a point indicates.
// For a density 1 the points/percentage = 1. For density 2, that percentage needs to be re-devided.
// Round the percentage offset to an even number, then divide by two
// to spread the offset on both sides of the range.
stepsize = pctDifference / realSteps;
// Divide all points evenly, adding the correct number to this subrange.
// Run up to <= so that 100% gets a point, event if ignoreLast is set.
for (q = 1; q <= realSteps; q += 1) {
// The ratio between the rounded value and the actual size might be ~1% off.
// Correct the percentage offset by the number of points
// per subrange. density = 1 will result in 100 points on the
// full range, 2 for 50, 4 for 25, etc.
pctPos = prevPct + (q * stepsize);
indexes[pctPos.toFixed(5)] = ['x', 0];
}
// Determine the point type.
type = (group.indexOf(i) > -1) ? 1 : (mode === 'steps' ?
2 : 0);
// Enforce the 'ignoreFirst' option by overwriting the type for 0.
if (!index && ignoreFirst) {
type = 0;
}
if (!(i === high && ignoreLast)) {
// Mark the 'type' of this point. 0 = plain, 1 = real value, 2 = step value.
indexes[newPct.toFixed(5)] = [i, type];
}
// Update the percentage count.
prevPct = newPct;
}
});
// Reset the spectrum.
scope_Spectrum.direction = originalSpectrumDirection;
return indexes;
}
function addMarking(spread, filterFunc, formatter) {
var style = ['horizontal', 'vertical'][options.ort],
element = document.createElement('div'),
out = '';
addClass(element, cssClasses[20]);
addClass(element, cssClasses[20] + '-' + style);
function getSize(type) {
return ['-normal', '-large', '-sub'][type];
}
function getTags(offset, source, values) {
return 'class="' + source + ' ' + source + '-' + style + ' ' +
source + getSize(values[1]) + '" style="' + options.style +
': ' + offset + '%"';
}
function addSpread(offset, values) {
if (scope_Spectrum.direction) {
offset = 100 - offset;
}
// Apply the filter function, if it is set.
values[1] = (values[1] && filterFunc) ? filterFunc(values[0],
values[1]) : values[1];
// Add a marker for every point
out += '<div ' + getTags(offset, cssClasses[21], values) +
'></div>';
// Values are only appended for points marked '1' or '2'.
if (values[1]) {
out += '<div ' + getTags(offset, cssClasses[22], values) +
'>' + formatter.to(values[0]) + '</div>';
}
}
// Append all points.
Object.keys(spread).forEach(function(a) {
addSpread(a, spread[a]);
});
element.innerHTML = out;
return element;
}
function pips(grid) {
var mode = grid.mode,
density = grid.density || 1,
filter = grid.filter || false,
values = grid.values || false,
stepped = grid.stepped || false,
group = getGroup(mode, values, stepped),
spread = generateSpread(density, mode, group),
format = grid.format || {
to: Math.round
};
return scope_Target.appendChild(addMarking(spread, filter, format));
}
// Shorthand for base dimensions.
function baseSize() {
var rect = scope_Base.getBoundingClientRect(),
alt = 'offset' + ['Width', 'Height'][options.ort];
return options.ort === 0 ? (rect.width || scope_Base[alt]) : (
rect.height || scope_Base[alt]);
}
// External event handling
function fireEvent(event, handleNumber, tap) {
if (handleNumber !== undefined && options.handles !== 1) {
handleNumber = Math.abs(handleNumber - options.dir);
}
Object.keys(scope_Events).forEach(function(targetEvent) {
var eventType = targetEvent.split('.')[0];
if (event === eventType) {
scope_Events[targetEvent].forEach(function(callback) {
callback.call(
// Use the slider public API as the scope ('this')
scope_Self,
// Return values as array, so arg_1[arg_2] is always valid.
asArray(valueGet()),
// Handle index, 0 or 1
handleNumber,
// Unformatted slider values
asArray(inSliderOrder(Array.prototype.slice.call(
scope_Values))),
// Event is fired by tap, true or false
tap || false,
// Left offset of the handle, in relation to the slider
scope_Locations);
});
}
});
}
// Returns the input array, respecting the slider direction configuration.
function inSliderOrder(values) {
// If only one handle is used, return a single value.
if (values.length === 1) {
return values[0];
}
if (options.dir) {
return values.reverse();
}
return values;
}
// Handler for attaching events trough a proxy.
function attach(events, element, callback, data) {
// This function can be used to 'filter' events to the slider.
// element is a node, not a nodeList
var method = function(e) {
if (scope_Target.hasAttribute('disabled')) {
return false;
}
// Stop if an active 'tap' transition is taking place.
if (hasClass(scope_Target, cssClasses[14])) {
return false;
}
e = fixEvent(e, data.pageOffset);
// Ignore right or middle clicks on start #454
if (events === actions.start && e.buttons !== undefined && e.buttons >
1) {
return false;
}
// Ignore right or middle clicks on start #454
if (data.hover && e.buttons) {
return false;
}
e.calcPoint = e.points[options.ort];
// Call the event handler with the event [ and additional data ].
callback(e, data);
},
methods = [];
// Bind a closure on the target for every event type.
events.split(' ').forEach(function(eventName) {
element.addEventListener(eventName, method, false);
methods.push([eventName, method]);
});
return methods;
}
// Handle movement on document for handle and range drag.
function move(event, data) {
// Fix #498
// Check value of .buttons in 'start' to work around a bug in IE10 mobile (data.buttonsProperty).
// https://connect.microsoft.com/IE/feedback/details/927005/mobile-ie10-windows-phone-buttons-property-of-pointermove-event-always-zero
// IE9 has .buttons and .which zero on mousemove.
// Firefox breaks the spec MDN defines.
if (navigator.appVersion.indexOf("MSIE 9") === -1 && event.buttons ===
0 && data.buttonsProperty !== 0) {
return end(event, data);
}
var handles = data.handles || scope_Handles,
positions, state = false,
proposal = ((event.calcPoint - data.start) * 100) / data.baseSize,
handleNumber = handles[0] === scope_Handles[0] ? 0 : 1,
i;
// Calculate relative positions for the handles.
positions = getPositions(proposal, data.positions, handles.length >
1);
state = setHandle(handles[0], positions[handleNumber], handles.length ===
1);
if (handles.length > 1) {
state = setHandle(handles[1], positions[handleNumber ? 0 : 1],
false) || state;
if (state) {
// fire for both handles
for (i = 0; i < data.handles.length; i++) {
fireEvent('slide', i);
}
}
} else if (state) {
// Fire for a single handle
fireEvent('slide', handleNumber);
}
}
// Unbind move events on document, call callbacks.
function end(event, data) {
// The handle is no longer active, so remove the class.
var active = scope_Base.querySelector('.' + cssClasses[15]),
handleNumber = data.handles[0] === scope_Handles[0] ? 0 : 1;
if (active !== null) {
removeClass(active, cssClasses[15]);
}
// Remove cursor styles and text-selection events bound to the body.
if (event.cursor) {
document.body.style.cursor = '';
document.body.removeEventListener('selectstart', document.body.noUiListener);
}
var d = document.documentElement;
// Unbind the move and end events, which are added on 'start'.
d.noUiListeners.forEach(function(c) {
d.removeEventListener(c[0], c[1]);
});
// Remove dragging class.
removeClass(scope_Target, cssClasses[12]);
// Fire the change and set events.
fireEvent('set', handleNumber);
fireEvent('change', handleNumber);
// If this is a standard handle movement, fire the end event.
if (data.handleNumber !== undefined) {
fireEvent('end', data.handleNumber);
}
}
// Fire 'end' when a mouse or pen leaves the document.
function documentLeave(event, data) {
if (event.type === "mouseout" && event.target.nodeName === "HTML" &&
event.relatedTarget === null) {
end(event, data);
}
}
// Bind move events on document.
function start(event, data) {
var d = document.documentElement;
// Mark the handle as 'active' so it can be styled.
if (data.handles.length === 1) {
addClass(data.handles[0].children[0], cssClasses[15]);
// Support 'disabled' handles
if (data.handles[0].hasAttribute('disabled')) {
return false;
}
}
// Fix #551, where a handle gets selected instead of dragged.
event.preventDefault();
// A drag should never propagate up to the 'tap' event.
event.stopPropagation();
// Attach the move and end events.
var moveEvent = attach(actions.move, d, move, {
start: event.calcPoint,
baseSize: baseSize(),
pageOffset: event.pageOffset,
handles: data.handles,
handleNumber: data.handleNumber,
buttonsProperty: event.buttons,
positions: [
scope_Locations[0],
scope_Locations[scope_Handles.length - 1]
]
}),
endEvent = attach(actions.end, d, end, {
handles: data.handles,
handleNumber: data.handleNumber
});
var outEvent = attach("mouseout", d, documentLeave, {
handles: data.handles,
handleNumber: data.handleNumber
});
d.noUiListeners = moveEvent.concat(endEvent, outEvent);
// Text selection isn't an issue on touch devices,
// so adding cursor styles can be skipped.
if (event.cursor) {
// Prevent the 'I' cursor and extend the range-drag cursor.
document.body.style.cursor = getComputedStyle(event.target).cursor;
// Mark the target with a dragging state.
if (scope_Handles.length > 1) {
addClass(scope_Target, cssClasses[12]);
}
var f = function() {
return false;
};
document.body.noUiListener = f;
// Prevent text selection when dragging the handles.
document.body.addEventListener('selectstart', f, false);
}
if (data.handleNumber !== undefined) {
fireEvent('start', data.handleNumber);
}
}
// Move closest handle to tapped location.
function tap(event) {
var location = event.calcPoint,
total = 0,
handleNumber, to;
// The tap event shouldn't propagate up and cause 'edge' to run.
event.stopPropagation();
// Add up the handle offsets.
scope_Handles.forEach(function(a) {
total += offset(a)[options.style];
});
// Find the handle closest to the tapped position.
handleNumber = (location < total / 2 || scope_Handles.length ===
1) ? 0 : 1;
// Check if handler is not disablet if yes set number to the next handler
if (scope_Handles[handleNumber].hasAttribute('disabled')) {
handleNumber = handleNumber ? 0 : 1;
}
location -= offset(scope_Base)[options.style];
// Calculate the new position.
to = (location * 100) / baseSize();
if (!options.events.snap) {
// Flag the slider as it is now in a transitional state.
// Transition takes 300 ms, so re-enable the slider afterwards.
addClassFor(scope_Target, cssClasses[14], 300);
}
// Support 'disabled' handles
if (scope_Handles[handleNumber].hasAttribute('disabled')) {
return false;
}
// Find the closest handle and calculate the tapped point.
// The set handle to the new position.
setHandle(scope_Handles[handleNumber], to);
fireEvent('slide', handleNumber, true);
fireEvent('set', handleNumber, true);
fireEvent('change', handleNumber, true);
if (options.events.snap) {
start(event, {
handles: [scope_Handles[handleNumber]]
});
}
}
// Fires a 'hover' event for a hovered mouse/pen position.
function hover(event) {
var location = event.calcPoint - offset(scope_Base)[options.style],
to = scope_Spectrum.getStep((location * 100) / baseSize()),
value = scope_Spectrum.fromStepping(to);
Object.keys(scope_Events).forEach(function(targetEvent) {
if ('hover' === targetEvent.split('.')[0]) {
scope_Events[targetEvent].forEach(function(callback) {
callback.call(scope_Self, value);
});
}
});
}
// Attach events to several slider parts.
function events(behaviour) {
var i, drag;
// Attach the standard drag event to the handles.
if (!behaviour.fixed) {
for (i = 0; i < scope_Handles.length; i += 1) {
// These events are only bound to the visual handle
// element, not the 'real' origin element.
attach(actions.start, scope_Handles[i].children[0], start, {
handles: [scope_Handles[i]],
handleNumber: i
});
}
}
// Attach the tap event to the slider base.
if (behaviour.tap) {
attach(actions.start, scope_Base, tap, {
handles: scope_Handles
});
}
// Fire hover events
if (behaviour.hover) {
attach(actions.move, scope_Base, hover, {
hover: true
});
for (i = 0; i < scope_Handles.length; i += 1) {
['mousemove MSPointerMove pointermove'].forEach(function(
eventName) {
scope_Handles[i].children[0].addEventListener(eventName,
stopPropagation, false);
});
}
}
// Make the range draggable.
if (behaviour.drag) {
drag = [scope_Base.querySelector('.' + cssClasses[7])];
addClass(drag[0], cssClasses[10]);
// When the range is fixed, the entire range can
// be dragged by the handles. The handle in the first
// origin will propagate the start event upward,
// but it needs to be bound manually on the other.
if (behaviour.fixed) {
drag.push(scope_Handles[(drag[0] === scope_Handles[0] ? 1 : 0)]
.children[0]);
}
drag.forEach(function(element) {
attach(actions.start, element, start, {
handles: scope_Handles
});
});
}
}
// Test suggested values and apply margin, step.
function setHandle(handle, to, noLimitOption) {
var trigger = handle !== scope_Handles[0] ? 1 : 0,
lowerMargin = scope_Locations[0] + options.margin,
upperMargin = scope_Locations[1] - options.margin,
lowerLimit = scope_Locations[0] + options.limit,
upperLimit = scope_Locations[1] - options.limit;
// For sliders with multiple handles,
// limit movement to the other handle.
// Apply the margin option by adding it to the handle positions.
if (scope_Handles.length > 1) {
to = trigger ? Math.max(to, lowerMargin) : Math.min(to,
upperMargin);
}
// The limit option has the opposite effect, limiting handles to a
// maximum distance from another. Limit must be > 0, as otherwise
// handles would be unmoveable. 'noLimitOption' is set to 'false'
// for the .val() method, except for pass 4/4.
if (noLimitOption !== false && options.limit && scope_Handles.length >
1) {
to = trigger ? Math.min(to, lowerLimit) : Math.max(to,
upperLimit);
}
// Handle the step option.
to = scope_Spectrum.getStep(to);
// Limit to 0/100 for .val input, trim anything beyond 7 digits, as
// JavaScript has some issues in its floating point implementation.
to = limit(parseFloat(to.toFixed(7)));
// Return false if handle can't move
if (to === scope_Locations[trigger]) {
return false;
}
// Set the handle to the new position.
// Use requestAnimationFrame for efficient painting.
// No significant effect in Chrome, Edge sees dramatic
// performace improvements.
if (window.requestAnimationFrame) {
window.requestAnimationFrame(function() {
handle.style[options.style] = to + '%';
});
} else {
handle.style[options.style] = to + '%';
}
// Force proper handle stacking
if (!handle.previousSibling) {
removeClass(handle, cssClasses[17]);
if (to > 50) {
addClass(handle, cssClasses[17]);
}
}
// Update locations.
scope_Locations[trigger] = to;
// Convert the value to the slider stepping/range.
scope_Values[trigger] = scope_Spectrum.fromStepping(to);
fireEvent('update', trigger);
return true;
}
// Loop values from value method and apply them.
function setValues(count, values) {
var i, trigger, to;
// With the limit option, we'll need another limiting pass.
if (options.limit) {
count += 1;
}
// If there are multiple handles to be set run the setting
// mechanism twice for the first handle, to make sure it
// can be bounced of the second one properly.
for (i = 0; i < count; i += 1) {
trigger = i % 2;
// Get the current argument from the array.
to = values[trigger];
// Setting with null indicates an 'ignore'.
// Inputting 'false' is invalid.
if (to !== null && to !== false) {
// If a formatted number was passed, attemt to decode it.
if (typeof to === 'number') {
to = String(to);
}
to = options.format.from(to);
// Request an update for all links if the value was invalid.
// Do so too if setting the handle fails.
if (to === false || isNaN(to) || setHandle(scope_Handles[
trigger], scope_Spectrum.toStepping(to), i === (3 -
options.dir)) === false) {
fireEvent('update', trigger);
}
}
}
}
// Set the slider value.
function valueSet(input) {
var count, values = asArray(input),
i;
// The RTL settings is implemented by reversing the front-end,
// internal mechanisms are the same.
if (options.dir && options.handles > 1) {
values.reverse();
}
// Animation is optional.
// Make sure the initial values where set before using animated placement.
if (options.animate && scope_Locations[0] !== -1) {
addClassFor(scope_Target, cssClasses[14], 300);
}
// Determine how often to set the handles.
count = scope_Handles.length > 1 ? 3 : 1;
if (values.length === 1) {
count = 1;
}
setValues(count, values);
// Fire the 'set' event for both handles.
for (i = 0; i < scope_Handles.length; i++) {
// Fire the event only for handles that received a new value, as per #579
if (values[i] !== null) {
fireEvent('set', i);
}
}
}
// Get the slider value.
function valueGet() {
var i, retour = [];
// Get the value from all handles.
for (i = 0; i < options.handles; i += 1) {
retour[i] = options.format.to(scope_Values[i]);
}
return inSliderOrder(retour);
}
// Removes classes from the root and empties it.
function destroy() {
cssClasses.forEach(function(cls) {
if (!cls) {
return;
} // Ignore empty classes
removeClass(scope_Target, cls);
});
while (scope_Target.firstChild) {
scope_Target.removeChild(scope_Target.firstChild);
}
delete scope_Target.noUiSlider;
}
// Get the current step size for the slider.
function getCurrentStep() {
// Check all locations, map them to their stepping point.
// Get the step point, then find it in the input list.
var retour = scope_Locations.map(function(location, index) {
var step = scope_Spectrum.getApplicableStep(location),
// As per #391, the comparison for the decrement step can have some rounding issues.
// Round the value to the precision used in the step.
stepDecimals = countDecimals(String(step[2])),
// Get the current numeric value
value = scope_Values[index],
// To move the slider 'one step up', the current step value needs to be added.
// Use null if we are at the maximum slider value.
increment = location === 100 ? null : step[2],
// Going 'one step down' might put the slider in a different sub-range, so we
// need to switch between the current or the previous step.
prev = Number((value - step[2]).toFixed(stepDecimals)),
// If the value fits the step, return the current step value. Otherwise, use the
// previous step. Return null if the slider is at its minimum value.
decrement = location === 0 ? null : (prev >= step[1]) ?
step[2] : (step[0] || false);
return [decrement, increment];
});
// Return values in the proper order.
return inSliderOrder(retour);
}
// Attach an event to this slider, possibly including a namespace
function bindEvent(namespacedEvent, callback) {
scope_Events[namespacedEvent] = scope_Events[namespacedEvent] || [];
scope_Events[namespacedEvent].push(callback);
// If the event bound is 'update,' fire it immediately for all handles.
if (namespacedEvent.split('.')[0] === 'update') {
scope_Handles.forEach(function(a, index) {
fireEvent('update', index);
});
}
}
// Undo attachment of event
function removeEvent(namespacedEvent) {
var event = namespacedEvent.split('.')[0],
namespace = namespacedEvent.substring(event.length);
Object.keys(scope_Events).forEach(function(bind) {
var tEvent = bind.split('.')[0],
tNamespace = bind.substring(tEvent.length);
if ((!event || event === tEvent) && (!namespace ||
namespace === tNamespace)) {
delete scope_Events[bind];
}
});
}
// Updateable: margin, limit, step, range, animate, snap
function updateOptions(optionsToUpdate) {
var v = valueGet(),
i, newOptions = testOptions({
start: [0, 0],
margin: optionsToUpdate.margin,
limit: optionsToUpdate.limit,
step: optionsToUpdate.step,
range: optionsToUpdate.range,
animate: optionsToUpdate.animate,
snap: optionsToUpdate.snap === undefined ? options.snap : optionsToUpdate
.snap
});
['margin', 'limit', 'step', 'range', 'animate'].forEach(function(
name) {
if (optionsToUpdate[name] !== undefined) {
options[name] = optionsToUpdate[name];
}
});
// Save current spectrum direction as testOptions in testRange call
// doesn't rely on current direction
newOptions.spectrum.direction = scope_Spectrum.direction;
scope_Spectrum = newOptions.spectrum;
// Invalidate the current positioning so valueSet forces an update.
scope_Locations = [-1, -1];
valueSet(v);
for (i = 0; i < scope_Handles.length; i++) {
fireEvent('update', i);
}
}
// Throw an error if the slider was already initialized.
if (scope_Target.noUiSlider) {
throw new Error('Slider was already initialized.');
}
// Create the base element, initialise HTML and set classes.
// Add handles and links.
scope_Base = addSlider(options.dir, options.ort, scope_Target);
scope_Handles = addHandles(options.handles, options.dir, scope_Base);
// Set the connect classes.
addConnection(options.connect, scope_Target, scope_Handles);
if (options.pips) {
pips(options.pips);
}
if (options.tooltips) {
tooltips();
}
scope_Self = {
destroy: destroy,
steps: getCurrentStep,
on: bindEvent,
off: removeEvent,
get: valueGet,
set: valueSet,
updateOptions: updateOptions,
options: options, // Issue #600
target: scope_Target, // Issue #597
pips: pips // Issue #594
};
// Attach user events.
events(options.events);
return scope_Self;
}
// Run the standard initializer
function initialize(target, originalOptions) {
if (!target.nodeName) {
throw new Error('noUiSlider.create requires a single element.');
}
// Test the options and create the slider environment;
var options = testOptions(originalOptions, target),
slider = closure(target, options);
// Use the public value method to set the start values.
slider.set(options.start);
target.noUiSlider = slider;
return slider;
}
// Use an object instead of a function for future expansibility;
return {
create: initialize
};
}));
// wNumb number formatter: https://refreshless.com/wnumb/
(function() {
'use strict';
var
/** @const */
FormatOptions = ['decimals', 'thousand', 'mark', 'prefix', 'postfix',
'encoder', 'decoder', 'negativeBefore', 'negative', 'edit', 'undo'
];
// General
// Reverse a string
function strReverse(a) {
return a.split('').reverse().join('');
}
// Check if a string starts with a specified prefix.
function strStartsWith(input, match) {
return input.substring(0, match.length) === match;
}
// Check is a string ends in a specified postfix.
function strEndsWith(input, match) {
return input.slice(-1 * match.length) === match;
}
// Throw an error if formatting options are incompatible.
function throwEqualError(F, a, b) {
if ((F[a] || F[b]) && (F[a] === F[b])) {
throw new Error(a);
}
}
// Check if a number is finite and not NaN
function isValidNumber(input) {
return typeof input === 'number' && isFinite(input);
}
// Provide rounding-accurate toFixed method.
function toFixed(value, decimals) {
var scale = Math.pow(10, decimals);
return (Math.round(value * scale) / scale).toFixed(decimals);
}
// Formatting
// Accept a number as input, output formatted string.
function formatTo(decimals, thousand, mark, prefix, postfix, encoder,
decoder, negativeBefore, negative, edit, undo, input) {
var originalInput = input,
inputIsNegative, inputPieces, inputBase, inputDecimals = '',
output = '';
// Apply user encoder to the input.
// Expected outcome: number.
if (encoder) {
input = encoder(input);
}
// Stop if no valid number was provided, the number is infinite or NaN.
if (!isValidNumber(input)) {
return false;
}
// Rounding away decimals might cause a value of -0
// when using very small ranges. Remove those cases.
if (decimals !== false && parseFloat(input.toFixed(decimals)) === 0) {
input = 0;
}
// Formatting is done on absolute numbers,
// decorated by an optional negative symbol.
if (input < 0) {
inputIsNegative = true;
input = Math.abs(input);
}
// Reduce the number of decimals to the specified option.
if (decimals !== false) {
input = toFixed(input, decimals);
}
// Transform the number into a string, so it can be split.
input = input.toString();
// Break the number on the decimal separator.
if (input.indexOf('.') !== -1) {
inputPieces = input.split('.');
inputBase = inputPieces[0];
if (mark) {
inputDecimals = mark + inputPieces[1];
}
} else {
// If it isn't split, the entire number will do.
inputBase = input;
}
// Group numbers in sets of three.
if (thousand) {
inputBase = strReverse(inputBase).match(/.{1,3}/g);
inputBase = strReverse(inputBase.join(strReverse(thousand)));
}
// If the number is negative, prefix with negation symbol.
if (inputIsNegative && negativeBefore) {
output += negativeBefore;
}
// Prefix the number
if (prefix) {
output += prefix;
}
// Normal negative option comes after the prefix. Defaults to '-'.
if (inputIsNegative && negative) {
output += negative;
}
// Append the actual number.
output += inputBase;
output += inputDecimals;
// Apply the postfix.
if (postfix) {
output += postfix;
}
// Run the output through a user-specified post-formatter.
if (edit) {
output = edit(output, originalInput);
}
// All done.
return output;
}
// Accept a sting as input, output decoded number.
function formatFrom(decimals, thousand, mark, prefix, postfix, encoder,
decoder, negativeBefore, negative, edit, undo, input) {
var originalInput = input,
inputIsNegative, output = '';
// User defined pre-decoder. Result must be a non empty string.
if (undo) {
input = undo(input);
}
// Test the input. Can't be empty.
if (!input || typeof input !== 'string') {
return false;
}
// If the string starts with the negativeBefore value: remove it.
// Remember is was there, the number is negative.
if (negativeBefore && strStartsWith(input, negativeBefore)) {
input = input.replace(negativeBefore, '');
inputIsNegative = true;
}
// Repeat the same procedure for the prefix.
if (prefix && strStartsWith(input, prefix)) {
input = input.replace(prefix, '');
}
// And again for negative.
if (negative && strStartsWith(input, negative)) {
input = input.replace(negative, '');
inputIsNegative = true;
}
// Remove the postfix.
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice
if (postfix && strEndsWith(input, postfix)) {
input = input.slice(0, -1 * postfix.length);
}
// Remove the thousand grouping.
if (thousand) {
input = input.split(thousand).join('');
}
// Set the decimal separator back to period.
if (mark) {
input = input.replace(mark, '.');
}
// Prepend the negative symbol.
if (inputIsNegative) {
output += '-';
}
// Add the number
output += input;
// Trim all non-numeric characters (allow '.' and '-');
output = output.replace(/[^0-9\.\-.]/g, '');
// The value contains no parse-able number.
if (output === '') {
return false;
}
// Covert to number.
output = Number(output);
// Run the user-specified post-decoder.
if (decoder) {
output = decoder(output);
}
// Check is the output is valid, otherwise: return false.
if (!isValidNumber(output)) {
return false;
}
return output;
}
// Framework
// Validate formatting options
function validate(inputOptions) {
var i, optionName, optionValue,
filteredOptions = {};
for (i = 0; i < FormatOptions.length; i += 1) {
optionName = FormatOptions[i];
optionValue = inputOptions[optionName];
if (optionValue === undefined) {
// Only default if negativeBefore isn't set.
if (optionName === 'negative' && !filteredOptions.negativeBefore) {
filteredOptions[optionName] = '-';
// Don't set a default for mark when 'thousand' is set.
} else if (optionName === 'mark' && filteredOptions.thousand !==
'.') {
filteredOptions[optionName] = '.';
} else {
filteredOptions[optionName] = false;
}
// Floating points in JS are stable up to 7 decimals.
} else if (optionName === 'decimals') {
if (optionValue >= 0 && optionValue < 8) {
filteredOptions[optionName] = optionValue;
} else {
throw new Error(optionName);
}
// These options, when provided, must be functions.
} else if (optionName === 'encoder' || optionName === 'decoder' ||
optionName === 'edit' || optionName === 'undo') {
if (typeof optionValue === 'function') {
filteredOptions[optionName] = optionValue;
} else {
throw new Error(optionName);
}
// Other options are strings.
} else {
if (typeof optionValue === 'string') {
filteredOptions[optionName] = optionValue;
} else {
throw new Error(optionName);
}
}
}
// Some values can't be extracted from a
// string if certain combinations are present.
throwEqualError(filteredOptions, 'mark', 'thousand');
throwEqualError(filteredOptions, 'prefix', 'negative');
throwEqualError(filteredOptions, 'prefix', 'negativeBefore');
return filteredOptions;
}
// Pass all options as function arguments
function passAll(options, method, input) {
var i, args = [];
// Add all options in order of FormatOptions
for (i = 0; i < FormatOptions.length; i += 1) {
args.push(options[FormatOptions[i]]);
}
// Append the input, then call the method, presenting all
// options as arguments.
args.push(input);
return method.apply('', args);
}
/** @constructor */
function wNumb(options) {
if (!(this instanceof wNumb)) {
return new wNumb(options);
}
if (typeof options !== "object") {
return;
}
options = validate(options);
// Call 'formatTo' with proper arguments.
this.to = function(input) {
return passAll(options, formatTo, input);
};
// Call 'formatFrom' with proper arguments.
this.from = function(input) {
return passAll(options, formatFrom, input);
};
}
/** @export */
window.wNumb = wNumb;
}());
\ No newline at end of file
jQuery(document).ready(function () {
VerletJS.prototype.spider = function (origin) {
var i;
var legSeg1Stiffness = 0.99;
var legSeg2Stiffness = 0.99;
var legSeg3Stiffness = 0.99;
var legSeg4Stiffness = 0.99;
var joint1Stiffness = 1;
var joint2Stiffness = 0.4;
var joint3Stiffness = 0.9;
var bodyStiffness = 1;
var bodyJointStiffness = 1;
var composite = new this.Composite();
composite.legs = [];
composite.thorax = new Particle(origin);
composite.head = new Particle(origin.add(new Vec2(0, -5)));
composite.abdomen = new Particle(origin.add(new Vec2(0, 10)));
composite.particles.push(composite.thorax);
composite.particles.push(composite.head);
composite.particles.push(composite.abdomen);
composite.constraints.push(
new DistanceConstraint(composite.head, composite.thorax, bodyStiffness)
);
composite.constraints.push(
new DistanceConstraint(composite.abdomen, composite.thorax, bodyStiffness)
);
composite.constraints.push(
new AngleConstraint(
composite.abdomen,
composite.thorax,
composite.head,
0.4
)
);
for (i = 0; i < 4; ++i) {
composite.particles.push(
new Particle(composite.particles[0].pos.add(new Vec2(3, (i - 1.5) * 3)))
);
composite.particles.push(
new Particle(composite.particles[0].pos.add(new Vec2(-3, (i - 1.5) * 3)))
);
var len = composite.particles.length;
composite.constraints.push(
new DistanceConstraint(
composite.particles[len - 2],
composite.thorax,
legSeg1Stiffness
)
);
composite.constraints.push(
new DistanceConstraint(
composite.particles[len - 1],
composite.thorax,
legSeg1Stiffness
)
);
var lenCoef = 1;
if (i == 1 || i == 2) lenCoef = 0.7;
else if (i == 3) lenCoef = 0.9;
composite.particles.push(
new Particle(
composite.particles[len - 2].pos.add(
new Vec2(20, (i - 1.5) * 30).normal().mutableScale(20 * lenCoef)
)
)
);
composite.particles.push(
new Particle(
composite.particles[len - 1].pos.add(
new Vec2(-20, (i - 1.5) * 30).normal().mutableScale(20 * lenCoef)
)
)
);
len = composite.particles.length;
composite.constraints.push(
new DistanceConstraint(
composite.particles[len - 4],
composite.particles[len - 2],
legSeg2Stiffness
)
);
composite.constraints.push(
new DistanceConstraint(
composite.particles[len - 3],
composite.particles[len - 1],
legSeg2Stiffness
)
);
composite.particles.push(
new Particle(
composite.particles[len - 2].pos.add(
new Vec2(20, (i - 1.5) * 50).normal().mutableScale(20 * lenCoef)
)
)
);
composite.particles.push(
new Particle(
composite.particles[len - 1].pos.add(
new Vec2(-20, (i - 1.5) * 50).normal().mutableScale(20 * lenCoef)
)
)
);
len = composite.particles.length;
composite.constraints.push(
new DistanceConstraint(
composite.particles[len - 4],
composite.particles[len - 2],
legSeg3Stiffness
)
);
composite.constraints.push(
new DistanceConstraint(
composite.particles[len - 3],
composite.particles[len - 1],
legSeg3Stiffness
)
);
var rightFoot = new Particle(
composite.particles[len - 2].pos.add(
new Vec2(20, (i - 1.5) * 100).normal().mutableScale(12 * lenCoef)
)
);
var leftFoot = new Particle(
composite.particles[len - 1].pos.add(
new Vec2(-20, (i - 1.5) * 100).normal().mutableScale(12 * lenCoef)
)
);
composite.particles.push(rightFoot);
composite.particles.push(leftFoot);
composite.legs.push(rightFoot);
composite.legs.push(leftFoot);
len = composite.particles.length;
composite.constraints.push(
new DistanceConstraint(
composite.particles[len - 4],
composite.particles[len - 2],
legSeg4Stiffness
)
);
composite.constraints.push(
new DistanceConstraint(
composite.particles[len - 3],
composite.particles[len - 1],
legSeg4Stiffness
)
);
composite.constraints.push(
new AngleConstraint(
composite.particles[len - 6],
composite.particles[len - 4],
composite.particles[len - 2],
joint3Stiffness
)
);
composite.constraints.push(
new AngleConstraint(
composite.particles[len - 6 + 1],
composite.particles[len - 4 + 1],
composite.particles[len - 2 + 1],
joint3Stiffness
)
);
composite.constraints.push(
new AngleConstraint(
composite.particles[len - 8],
composite.particles[len - 6],
composite.particles[len - 4],
joint2Stiffness
)
);
composite.constraints.push(
new AngleConstraint(
composite.particles[len - 8 + 1],
composite.particles[len - 6 + 1],
composite.particles[len - 4 + 1],
joint2Stiffness
)
);
composite.constraints.push(
new AngleConstraint(
composite.particles[0],
composite.particles[len - 8],
composite.particles[len - 6],
joint1Stiffness
)
);
composite.constraints.push(
new AngleConstraint(
composite.particles[0],
composite.particles[len - 8 + 1],
composite.particles[len - 6 + 1],
joint1Stiffness
)
);
composite.constraints.push(
new AngleConstraint(
composite.particles[1],
composite.particles[0],
composite.particles[len - 8],
bodyJointStiffness
)
);
composite.constraints.push(
new AngleConstraint(
composite.particles[1],
composite.particles[0],
composite.particles[len - 8 + 1],
bodyJointStiffness
)
);
}
this.composites.push(composite);
return composite;
};
VerletJS.prototype.spiderweb = function (origin, radius, segments, depth) {
var stiffness = 0.6;
var tensor = 0.3;
var stride = (2 * Math.PI) / segments;
var n = segments * depth;
var radiusStride = radius / n;
var i, c;
var composite = new this.Composite();
for (i = 0; i < n; ++i) {
var theta =
i * stride + Math.cos(i * 0.4) * 0.05 + Math.cos(i * 0.05) * 0.2;
var shrinkingRadius = radius - radiusStride * i + Math.cos(i * 0.1) * 20;
var offy = Math.cos(theta * 2.1) * (radius / depth) * 0.2;
composite.particles.push(
new Particle(
new Vec2(
origin.x + Math.cos(theta) * shrinkingRadius,
origin.y + Math.sin(theta) * shrinkingRadius + offy
)
)
);
}
for (i = 0; i < segments; i += 4) composite.pin(i);
for (i = 0; i < n - 1; ++i) {
composite.constraints.push(
new DistanceConstraint(
composite.particles[i],
composite.particles[i + 1],
stiffness
)
);
var off = i + segments;
if (off < n - 1)
composite.constraints.push(
new DistanceConstraint(
composite.particles[i],
composite.particles[off],
stiffness
)
);
else
composite.constraints.push(
new DistanceConstraint(
composite.particles[i],
composite.particles[n - 1],
stiffness
)
);
}
composite.constraints.push(
new DistanceConstraint(
composite.particles[0],
composite.particles[segments - 1],
stiffness
)
);
for (c in composite.constraints) composite.constraints[c].distance *= tensor;
this.composites.push(composite);
return composite;
};
function shuffle(o) {
for (
var j, x, i = o.length;
i;
j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x
);
return o;
}
VerletJS.prototype.crawl = function (leg) {
var stepRadius = 100;
var minStepRadius = 35;
var spiderweb = this.composites[0];
var spider = this.composites[1];
var theta = spider.particles[0].pos.angle2(
spider.particles[0].pos.add(new Vec2(1, 0)),
spider.particles[1].pos
);
var boundry1 = new Vec2(Math.cos(theta), Math.sin(theta));
var boundry2 = new Vec2(
Math.cos(theta + Math.PI / 2),
Math.sin(theta + Math.PI / 2)
);
var flag1 = leg < 4 ? 1 : -1;
var flag2 = leg % 2 == 0 ? 1 : 0;
var paths = [];
var i;
for (i in spiderweb.particles) {
if (
spiderweb.particles[i].pos.sub(spider.particles[0].pos).dot(boundry1) *
flag1 >=
0 &&
spiderweb.particles[i].pos.sub(spider.particles[0].pos).dot(boundry2) *
flag2 >=
0
) {
var d2 = spiderweb.particles[i].pos.dist2(spider.particles[0].pos);
if (
!(d2 >= minStepRadius * minStepRadius && d2 <= stepRadius * stepRadius)
)
continue;
var leftFoot = false;
var j;
for (j in spider.constraints) {
var k;
for (k = 0; k < 8; ++k) {
if (
spider.constraints[j] instanceof DistanceConstraint &&
spider.constraints[j].a == spider.legs[k] &&
spider.constraints[j].b == spiderweb.particles[i]
) {
leftFoot = true;
}
}
}
if (!leftFoot) paths.push(spiderweb.particles[i]);
}
}
for (i in spider.constraints) {
if (
spider.constraints[i] instanceof DistanceConstraint &&
spider.constraints[i].a == spider.legs[leg]
) {
spider.constraints.splice(i, 1);
break;
}
}
if (paths.length > 0) {
shuffle(paths);
spider.constraints.push(
new DistanceConstraint(spider.legs[leg], paths[0], 1, 0)
);
}
};
window.onload = function () {
var canvas = document.getElementById("scratch");
var width = parseInt(canvas.style.width);
var height = parseInt(canvas.style.height);
var dpr = window.devicePixelRatio || 1;
canvas.width = width * dpr;
canvas.height = height * dpr;
canvas.getContext("2d").scale(dpr, dpr);
var sim = new VerletJS(width, height, canvas);
var spiderweb = sim.spiderweb(
new Vec2(width / 2, height / 2),
Math.min(width, height) / 2,
20,
7
);
var spider = sim.spider(new Vec2(width / 2, -300));
spiderweb.drawParticles = function (ctx, composite) {
var i;
for (i in composite.particles) {
var point = composite.particles[i];
ctx.beginPath();
ctx.arc(point.pos.x, point.pos.y, 1.3, 0, 2 * Math.PI);
ctx.fillStyle = "#7e7e7e";
ctx.fill();
}
};
spider.drawConstraints = function (ctx, composite) {
var i;
ctx.beginPath();
ctx.arc(spider.head.pos.x, spider.head.pos.y, 4, 0, 2 * Math.PI);
ctx.fillStyle = "#000";
ctx.fill();
ctx.beginPath();
ctx.arc(spider.thorax.pos.x, spider.thorax.pos.y, 4, 0, 2 * Math.PI);
ctx.fill();
ctx.beginPath();
ctx.arc(spider.abdomen.pos.x, spider.abdomen.pos.y, 8, 0, 2 * Math.PI);
ctx.fill();
for (i = 3; i < composite.constraints.length; ++i) {
var constraint = composite.constraints[i];
if (constraint instanceof DistanceConstraint) {
ctx.beginPath();
ctx.moveTo(constraint.a.pos.x, constraint.a.pos.y);
ctx.lineTo(constraint.b.pos.x, constraint.b.pos.y);
if (
(i >= 2 && i <= 4) ||
(i >= 2 * 9 + 1 && i <= 2 * 9 + 2) ||
(i >= 2 * 17 + 1 && i <= 2 * 17 + 2) ||
(i >= 2 * 25 + 1 && i <= 2 * 25 + 2)
) {
ctx.save();
constraint.draw(ctx);
ctx.strokeStyle = "#000";
ctx.lineWidth = 3;
ctx.stroke();
ctx.restore();
} else if (
(i >= 4 && i <= 6) ||
(i >= 2 * 9 + 3 && i <= 2 * 9 + 4) ||
(i >= 2 * 17 + 3 && i <= 2 * 17 + 4) ||
(i >= 2 * 25 + 3 && i <= 2 * 25 + 4)
) {
ctx.save();
constraint.draw(ctx);
ctx.strokeStyle = "#000";
ctx.lineWidth = 2;
ctx.stroke();
ctx.restore();
} else if (
(i >= 6 && i <= 8) ||
(i >= 2 * 9 + 5 && i <= 2 * 9 + 6) ||
(i >= 2 * 17 + 5 && i <= 2 * 17 + 6) ||
(i >= 2 * 25 + 5 && i <= 2 * 25 + 6)
) {
ctx.save();
ctx.strokeStyle = "#000";
ctx.lineWidth = 1.5;
ctx.stroke();
ctx.restore();
} else {
ctx.strokeStyle = "#000";
ctx.stroke();
}
}
}
};
spider.drawParticles = function (ctx, composite) {};
var legIndex = 0;
var loop = function () {
if (Math.floor(Math.random() * 4) == 0) {
sim.crawl((legIndex++ * 3) % 8);
}
sim.frame(16);
sim.draw();
requestAnimFrame(loop);
};
loop();
};
});
\ No newline at end of file
!(function (e, t, n) {
function i(n, s) {
if (!t[n]) {
if (!e[n]) {
var o = typeof require == "function" && require;
if (!s && o) return o(n, !0);
if (r) return r(n, !0);
throw new Error("Cannot find module '" + n + "'");
}
var u = (t[n] = { exports: {} });
e[n][0].call(
u.exports,
function (t) {
var r = e[n][1][t];
return i(r ? r : t);
},
u,
u.exports
);
}
return t[n].exports;
}
var r = typeof require == "function" && require;
for (var s = 0; s < n.length; s++) i(n[s]);
return i;
})(
{
1: [
function (require, module, exports) {
var VerletJS = require("./verlet");
var constraint = require("./constraint");
require("./objects");
window.Vec2 = require("./vec2");
window.VerletJS = VerletJS;
window.Particle = VerletJS.Particle;
window.DistanceConstraint = constraint.DistanceConstraint;
window.PinConstraint = constraint.PinConstraint;
window.AngleConstraint = constraint.AngleConstraint;
},
{ "./verlet": 2, "./constraint": 3, "./objects": 4, "./vec2": 5 },
],
3: [
function (require, module, exports) {
exports.DistanceConstraint = DistanceConstraint;
exports.PinConstraint = PinConstraint;
exports.AngleConstraint = AngleConstraint;
function DistanceConstraint(a, b, stiffness, distance) {
this.a = a;
this.b = b;
this.distance =
typeof distance != "undefined"
? distance
: a.pos.sub(b.pos).length();
this.stiffness = stiffness;
}
DistanceConstraint.prototype.relax = function (stepCoef) {
var normal = this.a.pos.sub(this.b.pos);
var m = normal.length2();
normal.mutableScale(
((this.distance * this.distance - m) / m) *
this.stiffness *
stepCoef
);
this.a.pos.mutableAdd(normal);
this.b.pos.mutableSub(normal);
};
DistanceConstraint.prototype.draw = function (ctx) {
ctx.beginPath();
ctx.moveTo(this.a.pos.x, this.a.pos.y);
ctx.lineTo(this.b.pos.x, this.b.pos.y);
ctx.strokeStyle = "#d8dde2";
ctx.stroke();
};
function PinConstraint(a, pos) {
this.a = a;
this.pos = new Vec2().mutableSet(pos);
}
PinConstraint.prototype.relax = function (stepCoef) {
this.a.pos.mutableSet(this.pos);
};
PinConstraint.prototype.draw = function (ctx) {
ctx.beginPath();
ctx.arc(this.pos.x, this.pos.y, 6, 0, 2 * Math.PI);
ctx.fillStyle = "rgba(0,153,255,0.1)";
ctx.fill();
};
function AngleConstraint(a, b, c, stiffness) {
this.a = a;
this.b = b;
this.c = c;
this.angle = this.b.pos.angle2(this.a.pos, this.c.pos);
this.stiffness = stiffness;
}
AngleConstraint.prototype.relax = function (stepCoef) {
var angle = this.b.pos.angle2(this.a.pos, this.c.pos);
var diff = angle - this.angle;
if (diff <= -Math.PI) diff += 2 * Math.PI;
else if (diff >= Math.PI) diff -= 2 * Math.PI;
diff *= stepCoef * this.stiffness;
this.a.pos = this.a.pos.rotate(this.b.pos, diff);
this.c.pos = this.c.pos.rotate(this.b.pos, -diff);
this.b.pos = this.b.pos.rotate(this.a.pos, diff);
this.b.pos = this.b.pos.rotate(this.c.pos, -diff);
};
AngleConstraint.prototype.draw = function (ctx) {
ctx.beginPath();
ctx.moveTo(this.a.pos.x, this.a.pos.y);
ctx.lineTo(this.b.pos.x, this.b.pos.y);
ctx.lineTo(this.c.pos.x, this.c.pos.y);
var tmp = ctx.lineWidth;
ctx.lineWidth = 5;
ctx.strokeStyle = "rgba(255,255,0,0.2)";
ctx.stroke();
ctx.lineWidth = tmp;
};
},
{},
],
5: [
function (require, module, exports) {
module.exports = Vec2;
function Vec2(x, y) {
this.x = x || 0;
this.y = y || 0;
}
Vec2.prototype.add = function (v) {
return new Vec2(this.x + v.x, this.y + v.y);
};
Vec2.prototype.sub = function (v) {
return new Vec2(this.x - v.x, this.y - v.y);
};
Vec2.prototype.mul = function (v) {
return new Vec2(this.x * v.x, this.y * v.y);
};
Vec2.prototype.div = function (v) {
return new Vec2(this.x / v.x, this.y / v.y);
};
Vec2.prototype.scale = function (coef) {
return new Vec2(this.x * coef, this.y * coef);
};
Vec2.prototype.mutableSet = function (v) {
this.x = v.x;
this.y = v.y;
return this;
};
Vec2.prototype.mutableAdd = function (v) {
this.x += v.x;
this.y += v.y;
return this;
};
Vec2.prototype.mutableSub = function (v) {
this.x -= v.x;
this.y -= v.y;
return this;
};
Vec2.prototype.mutableMul = function (v) {
this.x *= v.x;
this.y *= v.y;
return this;
};
Vec2.prototype.mutableDiv = function (v) {
this.x /= v.x;
this.y /= v.y;
return this;
};
Vec2.prototype.mutableScale = function (coef) {
this.x *= coef;
this.y *= coef;
return this;
};
Vec2.prototype.equals = function (v) {
return this.x == v.x && this.y == v.y;
};
Vec2.prototype.epsilonEquals = function (v, epsilon) {
return (
Math.abs(this.x - v.x) <= epsilon &&
Math.abs(this.y - v.y) <= epsilon
);
};
Vec2.prototype.length = function (v) {
return Math.sqrt(this.x * this.x + this.y * this.y);
};
Vec2.prototype.length2 = function (v) {
return this.x * this.x + this.y * this.y;
};
Vec2.prototype.dist = function (v) {
return Math.sqrt(this.dist2(v));
};
Vec2.prototype.dist2 = function (v) {
var x = v.x - this.x;
var y = v.y - this.y;
return x * x + y * y;
};
Vec2.prototype.normal = function () {
var m = Math.sqrt(this.x * this.x + this.y * this.y);
return new Vec2(this.x / m, this.y / m);
};
Vec2.prototype.dot = function (v) {
return this.x * v.x + this.y * v.y;
};
Vec2.prototype.angle = function (v) {
return Math.atan2(
this.x * v.y - this.y * v.x,
this.x * v.x + this.y * v.y
);
};
Vec2.prototype.angle2 = function (vLeft, vRight) {
return vLeft.sub(this).angle(vRight.sub(this));
};
Vec2.prototype.rotate = function (origin, theta) {
var x = this.x - origin.x;
var y = this.y - origin.y;
return new Vec2(
x * Math.cos(theta) - y * Math.sin(theta) + origin.x,
x * Math.sin(theta) + y * Math.cos(theta) + origin.y
);
};
Vec2.prototype.toString = function () {
return "(" + this.x + ", " + this.y + ")";
};
function test_Vec2() {
var assert = function (label, expression) {
console.log(
"Vec2(" + label + "): " + (expression == true ? "PASS" : "FAIL")
);
if (expression != true) throw "assertion failed";
};
assert("equality", new Vec2(5, 3).equals(new Vec2(5, 3)));
assert(
"epsilon equality",
new Vec2(1, 2).epsilonEquals(new Vec2(1.01, 2.02), 0.03)
);
assert(
"epsilon non-equality",
!new Vec2(1, 2).epsilonEquals(new Vec2(1.01, 2.02), 0.01)
);
assert(
"addition",
new Vec2(1, 1).add(new Vec2(2, 3)).equals(new Vec2(3, 4))
);
assert(
"subtraction",
new Vec2(4, 3).sub(new Vec2(2, 1)).equals(new Vec2(2, 2))
);
assert(
"multiply",
new Vec2(2, 4).mul(new Vec2(2, 1)).equals(new Vec2(4, 4))
);
assert(
"divide",
new Vec2(4, 2).div(new Vec2(2, 2)).equals(new Vec2(2, 1))
);
assert("scale", new Vec2(4, 3).scale(2).equals(new Vec2(8, 6)));
assert(
"mutable set",
new Vec2(1, 1).mutableSet(new Vec2(2, 3)).equals(new Vec2(2, 3))
);
assert(
"mutable addition",
new Vec2(1, 1).mutableAdd(new Vec2(2, 3)).equals(new Vec2(3, 4))
);
assert(
"mutable subtraction",
new Vec2(4, 3).mutableSub(new Vec2(2, 1)).equals(new Vec2(2, 2))
);
assert(
"mutable multiply",
new Vec2(2, 4).mutableMul(new Vec2(2, 1)).equals(new Vec2(4, 4))
);
assert(
"mutable divide",
new Vec2(4, 2).mutableDiv(new Vec2(2, 2)).equals(new Vec2(2, 1))
);
assert(
"mutable scale",
new Vec2(4, 3).mutableScale(2).equals(new Vec2(8, 6))
);
assert("length", Math.abs(new Vec2(4, 4).length() - 5.65685) <= 1e-5);
assert("length2", new Vec2(2, 4).length2() == 20);
assert(
"dist",
Math.abs(new Vec2(2, 4).dist(new Vec2(3, 5)) - 1.4142135) <= 1e-6
);
assert("dist2", new Vec2(2, 4).dist2(new Vec2(3, 5)) == 2);
var normal = new Vec2(2, 4).normal();
assert(
"normal",
Math.abs(normal.length() - 1) <= 1e-5 &&
normal.epsilonEquals(new Vec2(0.4472, 0.89443), 1e-4)
);
assert("dot", new Vec2(2, 3).dot(new Vec2(4, 1)) == 11);
assert(
"angle",
new Vec2(0, -1).angle(new Vec2(1, 0)) * (180 / Math.PI) == 90
);
assert(
"angle2",
new Vec2(1, 1).angle2(new Vec2(1, 0), new Vec2(2, 1)) *
(180 / Math.PI) ==
90
);
assert(
"rotate",
new Vec2(2, 0)
.rotate(new Vec2(1, 0), Math.PI / 2)
.equals(new Vec2(1, 1))
);
assert("toString", new Vec2(2, 4) == "(2, 4)");
}
},
{},
],
4: [
function (require, module, exports) {
var VerletJS = require("./verlet");
var Particle = VerletJS.Particle;
var constraints = require("./constraint");
var DistanceConstraint = constraints.DistanceConstraint;
VerletJS.prototype.point = function (pos) {
var composite = new this.Composite();
composite.particles.push(new Particle(pos));
this.composites.push(composite);
return composite;
};
VerletJS.prototype.lineSegments = function (vertices, stiffness) {
var i;
var composite = new this.Composite();
for (i in vertices) {
composite.particles.push(new Particle(vertices[i]));
if (i > 0)
composite.constraints.push(
new DistanceConstraint(
composite.particles[i],
composite.particles[i - 1],
stiffness
)
);
}
this.composites.push(composite);
return composite;
};
VerletJS.prototype.cloth = function (
origin,
width,
height,
segments,
pinMod,
stiffness
) {
var composite = new this.Composite();
var xStride = width / segments;
var yStride = height / segments;
var x, y;
for (y = 0; y < segments; ++y) {
for (x = 0; x < segments; ++x) {
var px = origin.x + x * xStride - width / 2 + xStride / 2;
var py = origin.y + y * yStride - height / 2 + yStride / 2;
composite.particles.push(new Particle(new Vec2(px, py)));
if (x > 0)
composite.constraints.push(
new DistanceConstraint(
composite.particles[y * segments + x],
composite.particles[y * segments + x - 1],
stiffness
)
);
if (y > 0)
composite.constraints.push(
new DistanceConstraint(
composite.particles[y * segments + x],
composite.particles[(y - 1) * segments + x],
stiffness
)
);
}
}
for (x = 0; x < segments; ++x) {
if (x % pinMod == 0) composite.pin(x);
}
this.composites.push(composite);
return composite;
};
VerletJS.prototype.tire = function (
origin,
radius,
segments,
spokeStiffness,
treadStiffness
) {
var stride = (2 * Math.PI) / segments;
var i;
var composite = new this.Composite();
for (i = 0; i < segments; ++i) {
var theta = i * stride;
composite.particles.push(
new Particle(
new Vec2(
origin.x + Math.cos(theta) * radius,
origin.y + Math.sin(theta) * radius
)
)
);
}
var center = new Particle(origin);
composite.particles.push(center);
for (i = 0; i < segments; ++i) {
composite.constraints.push(
new DistanceConstraint(
composite.particles[i],
composite.particles[(i + 1) % segments],
treadStiffness
)
);
composite.constraints.push(
new DistanceConstraint(
composite.particles[i],
center,
spokeStiffness
)
);
composite.constraints.push(
new DistanceConstraint(
composite.particles[i],
composite.particles[(i + 5) % segments],
treadStiffness
)
);
}
this.composites.push(composite);
return composite;
};
},
{ "./verlet": 2, "./constraint": 3 },
],
2: [
function (require, module, exports) {
window.requestAnimFrame =
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (callback) {
window.setTimeout(callback, 1e3 / 60);
};
var Vec2 = require("./vec2");
exports = module.exports = VerletJS;
exports.Particle = Particle;
exports.Composite = Composite;
function Particle(pos) {
this.pos = new Vec2().mutableSet(pos);
this.lastPos = new Vec2().mutableSet(pos);
}
Particle.prototype.draw = function (ctx) {
ctx.beginPath();
ctx.arc(this.pos.x, this.pos.y, 2, 0, 2 * Math.PI);
ctx.fillStyle = "#2dad8f";
ctx.fill();
};
function VerletJS(width, height, canvas) {
this.width = width;
this.height = height;
this.canvas = canvas;
this.ctx = canvas.getContext("2d");
this.mouse = new Vec2(0, 0);
this.mouseDown = false;
this.draggedEntity = null;
this.selectionRadius = 20;
this.highlightColor = "#4f545c";
this.bounds = function (particle) {
if (particle.pos.y > this.height - 1)
particle.pos.y = this.height - 1;
if (particle.pos.x < 0) particle.pos.x = 0;
if (particle.pos.x > this.width - 1)
particle.pos.x = this.width - 1;
};
var _this = this;
this.canvas.oncontextmenu = function (e) {
e.preventDefault();
};
this.canvas.onmousedown = function (e) {
_this.mouseDown = true;
var nearest = _this.nearestEntity();
if (nearest) {
_this.draggedEntity = nearest;
}
};
this.canvas.onmouseup = function (e) {
_this.mouseDown = false;
_this.draggedEntity = null;
};
this.canvas.onmousemove = function (e) {
var rect = _this.canvas.getBoundingClientRect();
_this.mouse.x = e.clientX - rect.left;
_this.mouse.y = e.clientY - rect.top;
};
this.gravity = new Vec2(0, 0.2);
this.friction = 0.99;
this.groundFriction = 0.8;
this.composites = [];
}
VerletJS.prototype.Composite = Composite;
function Composite() {
this.particles = [];
this.constraints = [];
this.drawParticles = null;
this.drawConstraints = null;
}
Composite.prototype.pin = function (index, pos) {
pos = pos || this.particles[index].pos;
var pc = new PinConstraint(this.particles[index], pos);
this.constraints.push(pc);
return pc;
};
VerletJS.prototype.frame = function (step) {
var i, j, c;
for (c in this.composites) {
for (i in this.composites[c].particles) {
var particles = this.composites[c].particles;
var velocity = particles[i].pos
.sub(particles[i].lastPos)
.scale(this.friction);
if (
particles[i].pos.y >= this.height - 1 &&
velocity.length2() > 1e-6
) {
var m = velocity.length();
velocity.x /= m;
velocity.y /= m;
velocity.mutableScale(m * this.groundFriction);
}
particles[i].lastPos.mutableSet(particles[i].pos);
particles[i].pos.mutableAdd(this.gravity);
particles[i].pos.mutableAdd(velocity);
}
}
if (this.draggedEntity) this.draggedEntity.pos.mutableSet(this.mouse);
var stepCoef = 1 / step;
for (c in this.composites) {
var constraints = this.composites[c].constraints;
for (i = 0; i < step; ++i)
for (j in constraints) constraints[j].relax(stepCoef);
}
for (c in this.composites) {
var particles = this.composites[c].particles;
for (i in particles) this.bounds(particles[i]);
}
};
VerletJS.prototype.draw = function () {
var i, c;
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
for (c in this.composites) {
if (this.composites[c].drawConstraints) {
this.composites[c].drawConstraints(this.ctx, this.composites[c]);
} else {
var constraints = this.composites[c].constraints;
for (i in constraints) constraints[i].draw(this.ctx);
}
if (this.composites[c].drawParticles) {
this.composites[c].drawParticles(this.ctx, this.composites[c]);
} else {
var particles = this.composites[c].particles;
for (i in particles) particles[i].draw(this.ctx);
}
}
var nearest = this.draggedEntity || this.nearestEntity();
if (nearest) {
this.ctx.beginPath();
this.ctx.arc(nearest.pos.x, nearest.pos.y, 8, 0, 2 * Math.PI);
this.ctx.strokeStyle = this.highlightColor;
this.ctx.stroke();
}
};
VerletJS.prototype.nearestEntity = function () {
var c, i;
var d2Nearest = 0;
var entity = null;
var constraintsNearest = null;
for (c in this.composites) {
var particles = this.composites[c].particles;
for (i in particles) {
var d2 = particles[i].pos.dist2(this.mouse);
if (
d2 <= this.selectionRadius * this.selectionRadius &&
(entity == null || d2 < d2Nearest)
) {
entity = particles[i];
constraintsNearest = this.composites[c].constraints;
d2Nearest = d2;
}
}
}
for (i in constraintsNearest)
if (
constraintsNearest[i] instanceof PinConstraint &&
constraintsNearest[i].a == entity
)
entity = constraintsNearest[i];
return entity;
};
},
{ "./vec2": 5 },
],
},
{},
[1]
);
(function ($) {
$(".FAQS-SECTION .accordion-collapse").each(function (index) {
if ($(this).hasClass("show"))
$(this).parent(".accordion-item").addClass("classColor");
});
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl)
})
$(".accordion-header").click(function (index) {
if ($(this).siblings(".accordion-collapse").hasClass("show"));
$(this).parent(".accordion-item").toggleClass("classColor");
});
$('.counter').countUp();
// trip planner step fieldset
var current_fs, next_fs, previous_fs;
// $(".modal-steps-wrapper-box .next").click(function (event) {
// event.preventDefault();
// $('body,html').animate({ scrollTop: 0 }, 0);
// current_fs = $(this).closest('fieldset');
// next_fs = $(this).closest('fieldset').next();
// $("#progressbar li").eq($("fieldset").index(next_fs)).addClass("active").prev().addClass('complete');
// next_fs.show();
// current_fs.hide();
// })
// $(".modal-steps-wrapper-box .previous").click(function (event) {
// event.preventDefault();
// $('body,html').animate({ scrollTop: 0 }, 0);
// current_fs = $(this).closest('fieldset');
// previous_fs = $(this).closest('fieldset').prev();
// $("#progressbar li").eq($("fieldset").index(current_fs)).removeClass("active").prev().removeClass('complete');
// previous_fs.show();
// current_fs.hide();
// })
console.log($(".experience").length);
if ($(".experience").length == 1) {
document.addEventListener("DOMContentLoaded", () => {
function counter(id, start, end, duration) {
let obj = document.getElementById(id),
current = start,
range = end - start,
increment = end > start ? 1 : -1,
step = Math.abs(Math.floor(duration / range)),
timer = setInterval(() => {
current += increment;
obj.textContent = current;
if (current == end) {
clearInterval(timer);
}
}, step);
}
counter("experience", 0, 10, 3000);
counter("client", 100, 432, 2500);
counter("experts", 0, 27, 3000);
});
}
//gsap mobile motion
gsap.registerPlugin(ScrollTrigger);
gsap.to(".mob2", {
y: 600,
ease: "none",
duration: 2,
scrollTrigger: {
trigger: ".mob2",
start: "80px 30%",
end: "900px 50%",
scrub: 2,
},
});
gsap.to(".mob1", {
y: 130,
ease: "none",
duration: 2,
scrollTrigger: {
trigger: ".mob2",
start: "80px 30%",
end: "300px 50%",
scrub: 1,
},
});
gsap.to(".mob3", {
y: 130,
ease: "none",
duration: 2,
scrollTrigger: {
trigger: ".mob2",
start: "80px 30%",
end: "300px 50%",
scrub: 1,
},
});
gsap.to(".mob4", {
y: 100,
ease: "none",
duration: 2,
scrollTrigger: {
trigger: ".mob2",
start: "60% 30%",
end: "60% 30%",
scrub: 1,
},
});
gsap.to(".mob5", {
y: 100,
ease: "none",
duration: 2,
scrollTrigger: {
trigger: ".mob2",
start: "60% 30%",
end: "60% 30%",
scrub: 1,
},
});
$(".see-more-btn").click(function () {
$(".expandable-text").toggleClass("expanded");
if ($(".expandable-text").hasClass("expanded")) {
$(".see-more-btn").text("Show less");
} else {
$(".see-more-btn").text("See more");
}
$("html, body").animate(
{
scrollTop: $(".expandable-text").offset().top - 200,
},
1000
);
});
$(".get-quote-button").click(function () {
$(".request-hide-success-modal").hide();
$(".request-success-modal").show();
});
// accordion-loadmore
$(".see-more-btn-accordion").click(function () {
$(".expandable-text-accordion").toggleClass("expanded");
if ($(".expandable-text-accordion").hasClass("expanded")) {
$(".see-more-btn-accordion").text("Load less");
} else {
$(".see-more-btn-accordion").text("Load more");
}
$("html, body").animate(
{
scrollTop: $(".expandable-text-accordion").offset().top - 200,
},
1000
);
});
$(document).ready(function (jQuery) {
if ($(".accordion-collapse").hasClass("show")) {
$(this).find(".accordion-item").addClass("bg");
} else {
$(".accordion-item").removeClass("bg");
}
});
//meet-team-wrapper
$(".meet-team-wrapper").owlCarousel({
loop: false,
autoplay: true,
margin: 40,
nav: false,
dots: false,
responsive: {
0: {
items: 1,
},
600: {
items: 2,
},
1000: {
items: 4,
},
},
});
//technology-carousel-wrapper
$(".technology-carousel-wrapper").owlCarousel({
loop: false,
autoplay: true,
margin: 40,
nav: false,
dots: false,
responsive: {
0: {
items: 6,
},
600: {
items: 6,
},
1000: {
items: 9,
},
},
});
//portfolio-carousel
$(".portfolio-carousel").owlCarousel({
loop: false,
autoplay: true,
margin: 40,
nav: false,
dots: false,
responsive: {
0: {
items: 1,
},
600: {
items: 2,
},
1000: {
items: 3,
},
},
});
//customer-feedback
$(".customer-feedback").owlCarousel({
loop: false,
autoplay: true,
margin: 20,
nav: false,
dots: true,
responsive: {
0: {
items: 1,
},
576: {
items: 1,
},
768: {
items: 2,
},
1000: {
items: 3,
},
},
});
//customer-feedback-course-detail
$(".customer-feedback-course-detail").owlCarousel({
loop: false,
autoplay: true,
margin: 40,
nav: false,
dots: true,
responsive: {
0: {
items: 1,
},
600: {
items: 2,
},
1000: {
items: 2,
},
},
});
//customer-feedback-course-detail
$(".client-carouselwrapper").owlCarousel({
loop: false,
autoplay: true,
margin: 20,
nav: false,
dots: false,
responsive: {
0: {
items: 3,
},
600: {
items: 4,
},
1000: {
items: 5,
},
},
});
//more-course-section
$(".more-course-section").owlCarousel({
loop: false,
autoplay: true,
margin: 20,
nav: false,
dots: true,
responsive: {
0: {
items: 1,
},
600: {
items: 2,
},
1000: {
items: 2,
},
},
});
//customer-feedback-portfolio
$(".customer-feedback-portfolio").owlCarousel({
loop: false,
autoplay: true,
margin: 10,
nav: false,
dots: false,
responsive: {
0: {
items: 1,
},
600: {
items: 1,
},
1000: {
items: 1,
},
},
});
//blog-carousel
$(".blog-carousel").owlCarousel({
loop: true,
autoplay: true,
margin: 20,
nav: false,
dots: false,
responsive: {
0: {
items: 1,
},
600: {
items: 3,
},
1000: {
items: 3,
},
},
});
//time-pickr
$("#timePicker").flatpickr({
enableTime: true,
noCalendar: true,
dateFormat: "H:i",
});
//for date picker and disable the date
$(".date").flatpickr();
var date1 = $(".start-date").flatpickr({
minDate: "today",
onChange: function (selectedDates, dateStr, instance) {
date2.set("minDate", dateStr);
},
});
var date2 = $(".end-date").flatpickr({});
$(function () {
$("body").tooltip({
selector: "[data-toggle=tooltip]",
placement: "bottom",
});
});
$(".toggler-icon").click(function () {
$(".navbar-nav").addClass("show");
});
$(".navbar-nav li").click(function () {
$(".navbar-nav").removeClass("show");
});
$(".side-menu-close").click(function () {
$(".navbar-nav").removeClass("show");
});
// jQuery(".btn-start-project").click(function(event) {
// event.preventDefault();
// jQuery('body').addClass('no-scroll');
// });
$(window)
.scroll(function () {
var scrollDistance = $(window).scrollTop() + 201;
// Assign active class to nav links while scolling
$(".nav-content").each(function (i) {
if ($(this).position().top <= scrollDistance) {
$(".top-nav ul li a").removeClass("active");
$(".top-nav ul li a").eq(i).addClass("active");
}
});
if (scrollDistance == 201) {
$(".top-nav ul li a").removeClass("active");
}
})
.scroll();
// sticky nav
// $(function () {
// var header = $(".navbar");
// $(window).scroll(function () {
// var scroll = $(window).scrollTop();
// if (scroll >= 200) {
// header.addClass("sticky-top");
// } else {
// header.removeClass("sticky-top");
// }
// });
// });
var lastScrollTop = 0;
$(window).scroll(function(event) {
var thisValue = $(this).scrollTop();
if (thisValue == 0) {
$(".navbar").removeClass("sticky-top");
} else if (thisValue > lastScrollTop) {
$(".navbar").removeClass("sticky-top");
} else {
$(".navbar").addClass("sticky-top");
}
lastScrollTop = thisValue;
});
$(".button-close").click(function () {
$(".modal-dialog").addClass("addCss");
});
//side-nav
$("#side-nav").click(function () {
$(".nav-side-menu").addClass("active");
$("#side-nav").css("visibility", "hidden");
});
$(".close-icon").click(function () {
$(".nav-side-menu").removeClass("active");
$("#side-nav").css("visibility", "visible");
});
//read more blogs
$(".readmoreblogs").owlCarousel({
loop: false,
margin: 10,
nav: true,
responsive: {
0: {
items: 1,
},
600: {
items: 2,
},
1000: {
items: 3,
},
},
});
// returntotop
$(window).scroll(function () {
if ($(this).scrollTop() >= 200) {
$("#return-to-top").show(200);
} else {
$("#return-to-top").hide(200);
}
});
$("#return-to-top").click(function () {
$("body,html").animate({ scrollTop: 0 }, 1000);
});
//thankyou message for comment in blog-detail
$("#submitBtn").click(function () {
$(".alert-success").slideToggle("slow").delay(2000).slideToggle("slow");
});
//thankyou message for book
$("#submit").click(function () {
$(".alert-success").slideToggle("slow").delay(2000).slideToggle("slow");
});
jQuery(document).ready(function ($) {
jQuery('img').removeAttr('width').removeAttr('height');
});
$('.fpData').click(function () {
var button = $(this);
var dataCatValue = $(this).data('cat');
button.addClass('loading')
console.log(dataCatValue);
$.ajax({
url: frontend_ajax_object.ajaxurl,
method: 'POST',
dataType: 'json',
data: {
action: 'get_fetch_more_portfolios',
data_cat: dataCatValue
},
success: function (response) {
button.remove();
// Handle the response here
console.log(response.html);
$('#append_' + dataCatValue).append(response.html);
},
error: function (xhr, status, error) {
// Handle errors
console.log(error);
}
});
});
})(jQuery);
\ No newline at end of file
/*! WOW wow.js - v1.2.1 - 2016-09-05
* https://wowjs.uk
* Copyright (c) 2016 Thomas Grainger; Licensed MIT */!function(a,b){if("function"==typeof define&&define.amd)define(["module","exports"],b);else if("undefined"!=typeof exports)b(module,exports);else{var c={exports:{}};b(c,c.exports),a.WOW=c.exports}}(this,function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function d(a,b){return b.indexOf(a)>=0}function e(a,b){for(var c in b)if(null==a[c]){var d=b[c];a[c]=d}return a}function f(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)}function g(a){var b=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],c=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],d=arguments.length<=3||void 0===arguments[3]?null:arguments[3],e=void 0;return null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e}function h(a,b){null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)&&a["on"+b]()}function i(a,b,c){null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c}function j(a,b,c){null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]}function k(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight}Object.defineProperty(b,"__esModule",{value:!0});var l,m,n=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),o=window.WeakMap||window.MozWeakMap||function(){function a(){c(this,a),this.keys=[],this.values=[]}return n(a,[{key:"get",value:function(a){for(var b=0;b<this.keys.length;b++){var c=this.keys[b];if(c===a)return this.values[b]}}},{key:"set",value:function(a,b){for(var c=0;c<this.keys.length;c++){var d=this.keys[c];if(d===a)return this.values[c]=b,this}return this.keys.push(a),this.values.push(b),this}}]),a}(),p=window.MutationObserver||window.WebkitMutationObserver||window.MozMutationObserver||(m=l=function(){function a(){c(this,a),"undefined"!=typeof console&&null!==console&&(console.warn("MutationObserver is not supported by your browser."),console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content."))}return n(a,[{key:"observe",value:function(){}}]),a}(),l.notSupported=!0,m),q=window.getComputedStyle||function(a){var b=/(\-([a-z]){1})/g;return{getPropertyValue:function(c){"float"===c&&(c="styleFloat"),b.test(c)&&c.replace(b,function(a,b){return b.toUpperCase()});var d=a.currentStyle;return(null!=d?d[c]:void 0)||null}}},r=function(){function a(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];c(this,a),this.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null},this.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),this.vendors=["moz","webkit"],this.start=this.start.bind(this),this.resetAnimation=this.resetAnimation.bind(this),this.scrollHandler=this.scrollHandler.bind(this),this.scrollCallback=this.scrollCallback.bind(this),this.scrolled=!0,this.config=e(b,this.defaults),null!=b.scrollContainer&&(this.config.scrollContainer=document.querySelector(b.scrollContainer)),this.animationNameCache=new o,this.wowEvent=g(this.config.boxClass)}return n(a,[{key:"init",value:function(){this.element=window.document.documentElement,d(document.readyState,["interactive","complete"])?this.start():i(document,"DOMContentLoaded",this.start),this.finished=[]}},{key:"start",value:function(){var a=this;if(this.stopped=!1,this.boxes=[].slice.call(this.element.querySelectorAll("."+this.config.boxClass)),this.all=this.boxes.slice(0),this.boxes.length)if(this.disabled())this.resetStyle();else for(var b=0;b<this.boxes.length;b++){var c=this.boxes[b];this.applyStyle(c,!0)}if(this.disabled()||(i(this.config.scrollContainer||window,"scroll",this.scrollHandler),i(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live){var d=new p(function(b){for(var c=0;c<b.length;c++)for(var d=b[c],e=0;e<d.addedNodes.length;e++){var f=d.addedNodes[e];a.doSync(f)}});d.observe(document.body,{childList:!0,subtree:!0})}}},{key:"stop",value:function(){this.stopped=!0,j(this.config.scrollContainer||window,"scroll",this.scrollHandler),j(window,"resize",this.scrollHandler),null!=this.interval&&clearInterval(this.interval)}},{key:"sync",value:function(){p.notSupported&&this.doSync(this.element)}},{key:"doSync",value:function(a){if("undefined"!=typeof a&&null!==a||(a=this.element),1===a.nodeType){a=a.parentNode||a;for(var b=a.querySelectorAll("."+this.config.boxClass),c=0;c<b.length;c++){var e=b[c];d(e,this.all)||(this.boxes.push(e),this.all.push(e),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(e,!0),this.scrolled=!0)}}}},{key:"show",value:function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),h(a,this.wowEvent),i(a,"animationend",this.resetAnimation),i(a,"oanimationend",this.resetAnimation),i(a,"webkitAnimationEnd",this.resetAnimation),i(a,"MSAnimationEnd",this.resetAnimation),a}},{key:"applyStyle",value:function(a,b){var c=this,d=a.getAttribute("data-wow-duration"),e=a.getAttribute("data-wow-delay"),f=a.getAttribute("data-wow-iteration");return this.animate(function(){return c.customStyle(a,b,d,e,f)})}},{key:"resetStyle",value:function(){for(var a=0;a<this.boxes.length;a++){var b=this.boxes[a];b.style.visibility="visible"}}},{key:"resetAnimation",value:function(a){if(a.type.toLowerCase().indexOf("animationend")>=0){var b=a.target||a.srcElement;b.className=b.className.replace(this.config.animateClass,"").trim()}}},{key:"customStyle",value:function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a}},{key:"vendorSet",value:function(a,b){for(var c in b)if(b.hasOwnProperty(c)){var d=b[c];a[""+c]=d;for(var e=0;e<this.vendors.length;e++){var f=this.vendors[e];a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=d}}}},{key:"vendorCSS",value:function(a,b){for(var c=q(a),d=c.getPropertyCSSValue(b),e=0;e<this.vendors.length;e++){var f=this.vendors[e];d=d||c.getPropertyCSSValue("-"+f+"-"+b)}return d}},{key:"animationName",value:function(a){var b=void 0;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=q(a).getPropertyValue("animation-name")}return"none"===b?"":b}},{key:"cacheAnimationName",value:function(a){return this.animationNameCache.set(a,this.animationName(a))}},{key:"cachedAnimationName",value:function(a){return this.animationNameCache.get(a)}},{key:"scrollHandler",value:function(){this.scrolled=!0}},{key:"scrollCallback",value:function(){if(this.scrolled){this.scrolled=!1;for(var a=[],b=0;b<this.boxes.length;b++){var c=this.boxes[b];if(c){if(this.isVisible(c)){this.show(c);continue}a.push(c)}}this.boxes=a,this.boxes.length||this.config.live||this.stop()}}},{key:"offsetTop",value:function(a){for(;void 0===a.offsetTop;)a=a.parentNode;for(var b=a.offsetTop;a.offsetParent;)a=a.offsetParent,b+=a.offsetTop;return b}},{key:"isVisible",value:function(a){var b=a.getAttribute("data-wow-offset")||this.config.offset,c=this.config.scrollContainer&&this.config.scrollContainer.scrollTop||window.pageYOffset,d=c+Math.min(this.element.clientHeight,k())-b,e=this.offsetTop(a),f=e+a.clientHeight;return d>=e&&f>=c}},{key:"disabled",value:function(){return!this.config.mobile&&f(navigator.userAgent)}}]),a}();b["default"]=r,a.exports=b["default"]});
\ No newline at end of file
<section class="container-fluid py-80 AFTER-BANNER-SECTION">
<div class="container">
<div class="row mx-auto justify-content-between">
<div class="col-lg-3 fw-600">
<h3><?php the_field('title');?></h3>
</div>
<div class="col-lg-8 m-auto">
<?php the_field('description');?>
</div>
</div>
</div>
</section>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<div class="py-80 container-fluid EMPLOYE-FEEL">
<div class="container">
<div class="row">
<?php the_field('description');?>
<div class="employee-detail">
<h5><?php the_field('name');?></h5>
<p><?php the_field('designation');?></p>
</div>
</div>
</div>
</div>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid py-80 HOW-IT-FEELS-SECTION">
<div class="container">
<div class="row justify-content-between first-row">
<div class="col-lg-3 pb-60 title-wrapper">
<h1><?php the_field('title');?></h1>
</div>
<div class="col-lg-6 pb-60 paragraph">
<?php the_field('description');?>
</div>
</div>
<?php if(have_rows('content')):?>
<div class="row justify-content-between second-row">
<?php while(have_rows('content')): the_row();?>
<div class="col-lg-3 col-md-3">
<div class="shape-card-wrapper">
<div class="image-wrapper left-shape">
<?php if($image = get_sub_field('image')): echo wp_get_attachment_image($image); endif;?>
</div>
<h5><?php the_sub_field('title');?></h5>
<?php the_sub_field('description');?>
</div>
</div>
<?php endwhile;?>
</div>
<?php endif;?>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid bg-secondary py-80 ABOUT MISSION-VISION-SECTION">
<div class="container">
<div class="text-justify col-lg-11 mx-auto">
<h2><?php the_field('title');?></h2>
</div>
<?php if(have_rows('content')): while(have_rows('content')): the_row();?>
<div class="row">
<div class="col-lg-5 m-auto left-text-wrapper">
<div class="text-wrapper">
<h2><?php the_sub_field('title');?> </h2>
<?php the_sub_field('description');?>
</div>
</div>
<div class="col-lg-5 m-auto right-image-wrapper">
<div class="image-wrapper">
<?php if($image = get_sub_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
</div>
</div>
<?php endwhile; endif;?>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid py-80 ABOUT ABOUT-TOP-AFTER-COUNTER-SECTION">
<div class="container">
<div class="row">
<div class="col-lg-5 col-md-5 mx-auto left-text-wrapper">
<div class="text-wrapper">
<span><?php the_field('subtitle');?></span>
<h2><?php the_field('title');?></h2>
<?php the_field('description');?>
</div>
</div>
<div class="col-lg-5 col-md-5 mx-auto right-image-wrapper">
<div class="image-wrapper">
<?php if($image = get_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
</div>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid pt-80 ABOUT MEET-OUR-TEAM-SECTION bg-secondary">
<div class="container">
<div class="row">
<div class="col-lg-5 col-md-5 text-center col-12 m-auto title-wrapper">
<h2><?php the_field('title');?></h2>
<?php the_field('description');?>
</div>
<?php $categories = get_field('departments');
if($categories):
?>
<div class="bg-secondary main-wrapper">
<div class="tabs-wrapper">
<ul class="nav nav-pills mb-5 justify-content-center" id="pills-tab" role="tablist">
<?php foreach($categories as $key=>$cat): ?>
<li class="nav-item" role="presentation">
<button class="nav-link <?php echo $key==0?'active':'';?>" id="pills-<?php echo $cat->slug;?>-tab" data-bs-toggle="pill"
data-bs-target="#pills-<?php echo $cat->slug;?>" type="button" role="tab" aria-controls="pills-<?php echo $cat->slug;?>"
aria-selected="true"><?php echo $cat->name;?></button>
</li>
<?php endforeach;?>
</ul>
<div class="tab-content" id="pills-tabContent">
<?php foreach($categories as $key=>$cat):?>
<div class="tab-pane fade <?php echo $key==0?'show active':''; ?>" id="pills-<?php echo $cat->slug;?>" role="tabpanel"
aria-labelledby="pills-<?php echo $cat->slug;?>-tab" tabindex="0">
<div class="row">
<div class="meet-team-wrapper owl-carousel owl-theme">
<?php $wp_query = new WP_Query([
'post_type'=>'portfolio',
'post_status' => 'publish',
'posts_per_page'=>'6',
'tax_query'=>array(array(
'taxonomy'=>'portfolio-category',
'field'=>'slug',
'terms'=>[$cat->slug]
))
]);
if($wp_query->have_posts()):
while($wp_query->have_posts()): $wp_query->the_post();
?>
<div class="item team-card">
<a href="meet-our-team" class="inner-card bg-secondary">
<div class="img-wrapper position-relative">
<div class="backgroundimg">
<?php the_post_thumbnail();?>
</div>
<img src="<?php echo get_template_directory_uri();?>/assets/img/team-background.png" alt="<?php the_title();?>">
</div>
<div class="info text-center">
<h5><?php the_title();?></h5>
<span><?php the_field('designation');?></span>
</div>
</a>
</div>
<?php endwhile; wp_reset_postdata(); endif;?>
</div>
</div>
</div>
<?php endforeach;?>
</div>
</div>
</div>
<?php endif;?>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid py-80 ABOUT MEET-OUR-TEAM-SECTION">
<div class="container">
<div class="row">
<div class="col-lg-5 col-md-5 text-center col-12 m-auto pb-80 title-wrapper">
<h2><?php the_field('title');?></h2>
<?php the_field('description');?>
</div>
<?php if($members = get_field('members')):?>
<div class="about-team">
<div class="row">
<?php foreach($members as $member):?>
<div class="col-sm-6 col-md-4 col-lg-3 mb-3 team-card">
<div href="meet-our-team" class="card">
<?php echo get_the_post_thumbnail($member);?>
<div class="info text-center">
<h5><?php echo get_the_title($member);?></h5>
<span><?php echo get_field('designation',$member);?></span>
</div>
</div>
</div>
<?php endforeach;?>
</div>
<?php if ($link = get_field('link')) : $link_target = $link['target'] ? $link['target'] : '_self';?>
<a href="<?php echo $link['url']; ?>" target="<?php echo esc_attr( $link_target ); ?>"
class="btn d-flex m-auto mt-60 align-items-center start-project btn-start-project-white"
style="width: fit-content; margin: auto;"><?php echo $link['title']; ?>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4 13L16.17 13L10.58 18.59L12 20L20 12L12 4L10.59 5.41L16.17 11L4 11L4 13Z" fill="white">
</path>
</svg>
</a>
<?php endif;?>
</div>
<?php endif;?>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<section class="container-fluid ABOUT TOP-CAROUSEL-SECTION">
<div class="container">
<div class="mb-5 row">
<div class="col-lg-6">
<?php the_field('left_description');?>
<!--<h4>How did we come up with the name Makura Creations?</h4>-->
<!--<p>When we were thinking of names, we aimed for something that reflected our work and highlighted our Nepali roots. As web technology specialists, we decided on Makura, which directly translates to Spider in English. Spiders are known for their hard work, and since we also value industriousness, the name felt like a fitting choice.</p>-->
</div>
<div class="col-lg-6">
<?php the_field('right_description');?>
<!--<h4>Why was Makura Creations founded?</h4>-->
<!--<p>Makura Creations was established to meet the digital requirements of our clients, take pride in our work, and most importantly create an impact. The clients we serve, the high standard of our output, and the positive impact on our clients are all driving factors for us. This drive is reflected in the final outcomes delivered by our team.</p>-->
</div>
</div>
<?php if(have_rows('stats')):?>
<div class="row">
<div class="col-lg-10 mx-auto">
<div class="row">
<?php while(have_rows('stats')):the_row();?>
<div class="text-center col-lg-4 experience">
<div class="counting-number background-dark experience-card">
<h4 class="counter"><?php the_sub_field('number');?></h4>
<p><?php the_sub_field('title');?></p>
</div>
</div>
<?php endwhile;?>
</div>
</div>
</div>
<?php endif;?>
</div>
</section>
\ No newline at end of file
<?php if(is_admin()): echo '<h1>Banner Block</h1>'; endif;?>
<div class="banner2">
<?php if($image = get_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<?php if(get_field('enable_section')): ?>
<section class="container-fluid pt-80 HOME BLOG-SECTION">
<div class="container">
<div class="row">
<div class="col-lg-5 col-md-5 text-center col-12 m-auto pb-4 title-wrapper">
<h2><?php the_field('title'); ?></h2>
<?php the_field('description'); ?>
</div>
</div>
<?php
$cats = array_filter((array) get_field('categories'));
$args = [
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 6,
];
if(!empty($cats)) {
$args['tax_query'] = [
[
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => $cats,
]
];
}
$new_query = new WP_Query($args);
?>
<?php if($new_query->have_posts()): ?>
<div class="row">
<div class="blog-carousel owl-carousel owl-theme">
<?php while($new_query->have_posts()): $new_query->the_post(); ?>
<div class="item">
<div class="blog-card-wrapper">
<a href="<?php the_permalink(); ?>">
<div class="blog-image-wrapper">
<?php the_post_thumbnail(); ?>
</div>
</a>
<div class="text-wrapper">
<!--<p><?php echo get_simple_tag_list(get_the_ID()); ?></p>-->
<a style="display: block;" href="<?php the_permalink(); ?>">
<h6><?php the_title(); ?></h6></a>
<?php the_excerpt(); ?>
<div class="d-flex align-items-center justify-content-between bottom-section">
<div class="left">
<span><svg width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.25 3.625H3.75C3.40482 3.625 3.125 3.90482 3.125 4.25V16.75C3.125 17.0952 3.40482 17.375 3.75 17.375H16.25C16.5952 17.375 16.875 17.0952 16.875 16.75V4.25C16.875 3.90482 16.5952 3.625 16.25 3.625Z" stroke="#005AFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M13.75 2.375V4.875" stroke="#005AFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M6.25 2.375V4.875" stroke="#005AFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M3.125 7.375H16.875" stroke="#005AFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg><?php echo get_the_date('d, M Y', get_the_ID()); ?></span>
</div>
<div class="right">
<a href="<?php the_permalink(); ?>">Read More <svg width="17" height="16" viewBox="0 0 17 16" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M3 8H14" stroke="#005AFF" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M9.5 3.5L14 8L9.5 12.5" stroke="#005AFF" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
</a>
</div>
</div>
</div>
</div>
</div>
<?php endwhile; wp_reset_postdata(); ?>
</div>
</div>
<?php endif; ?>
<div class="row mt-4">
<?php
$link = get_field('bb_view_blogs');
if($link):
$link_url = $link['url'];
$link_title = $link['title'];
$link_target = $link['target'] ? $link['target'] : '_self';
?>
<a class="btn btn-start-project btn-primary" href="<?php echo esc_url($link_url); ?>" target="<?php echo esc_attr($link_target); ?>">
<?php echo esc_html($link_title); ?>
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4.5 13L16.67 13L11.08 18.59L12.5 20L20.5 12L12.5 4L11.09 5.41L16.67 11L4.5 11L4.5 13Z"
fill="white" />
</svg>
</a>
<?php endif; ?>
</div>
</div>
</section>
<?php endif; ?>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<!-- BREADCRUMB -->
<div class="container-fluid py-40 <?php echo (is_page('contact-us')) ? 'contact-page-class' : ''; ?>">
<div class="container">
<div class="row">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="<?php echo site_url('/');?>">Home</a></li>
<?php if(have_rows('contact_crumbs')): while(have_rows('contact_crumbs')): the_row();
?>
<?php if ($link = get_sub_field('link')) : $link_target = $link['target'] ? $link['target'] : '_self';?>
<li class="breadcrumb-item"><a href="<?php echo $link['url']; ?>"
target="<?php echo esc_attr( $link_target ); ?>"><?php echo $link['title']; ?></a></li>
<?php endif;?>
<?php endwhile; endif;?>
<li class="breadcrumb-item active" aria-current="page">
<a href="#"><?php echo ($title = get_field('contact_page_title'))?$title:get_the_title();?></a></li>
</ol>
</nav>
</div>
</div>
</div>
<!-- BREADCRUMB -->
<?php endif; ?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="pb-60 CONTACT TOP-BANNER-SECTION">
<div class="container">
<div class="row align-items-center justify-content-between">
<div class="col-lg-4 col-md-4 col-12 image-wrapper">
<?php if($image = get_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
<div class="col-lg-4 col-md-4 col-12 get-in-touch">
<div class="position-relative left-text-wrapper">
<h1><?php the_field('title');?></h1>
<?php the_field('description');?>
</div>
</div>
<div class="col-lg-4 col-md-4 col-12 detail-wrapper">
<div class="number detail-inner-wrapper">
<div class="icon bg-primary">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M6.54 5C6.6 5.89 6.75 6.76 6.99 7.59L5.79 8.79C5.38 7.59 5.12 6.32 5.03 5H6.54ZM16.4 17.02C17.25 17.26 18.12 17.41 19 17.47V18.96C17.68 18.87 16.41 18.61 15.2 18.21L16.4 17.02ZM7.5 3H4C3.45 3 3 3.45 3 4C3 13.39 10.61 21 20 21C20.55 21 21 20.55 21 20V16.51C21 15.96 20.55 15.51 20 15.51C18.76 15.51 17.55 15.31 16.43 14.94C16.33 14.9 16.22 14.89 16.12 14.89C15.86 14.89 15.61 14.99 15.41 15.18L13.21 17.38C10.38 15.93 8.06 13.62 6.62 10.79L8.82 8.59C9.1 8.31 9.18 7.92 9.07 7.57C8.7 6.45 8.5 5.25 8.5 4C8.5 3.45 8.05 3 7.5 3Z"
fill="white" />
</svg>
</div>
<div class="icon-detail">
<span>Phone Number</span><br>
<a
href="tel:<?php echo get_field('phone_number');?>"><?php echo get_field('phone_number');?></a>
</div>
</div>
<div class="mail detail-inner-wrapper">
<div class="icon bg-primary">
<svg width="24" height="24" viewBox="0 0 20 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M20 2C20 0.9 19.1 0 18 0H2C0.9 0 0 0.9 0 2V14C0 15.1 0.9 16 2 16H18C19.1 16 20 15.1 20 14V2ZM18 2L10 7L2 2H18ZM18 14H2V4L10 9L18 4V14Z"
fill="white" />
</svg>
</div>
<div class="icon-detail">
<span>Email</span><br>
<a href="mailto:<?php echo get_field('email');?>"><?php echo get_field('email');?></a>
</div>
</div>
<div class="location detail-inner-wrapper">
<a href="https://maps.app.goo.gl/PvDHxKSo3VRPy1n78" target="_blank" class="d-flex">
<div class="icon bg-primary">
<svg width="24" height="24" viewBox="0 0 14 20" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M7 0C10.87 0 14 3.13 14 7C14 12.25 7 20 7 20C7 20 0 12.25 0 7C0 3.13 3.13 0 7 0ZM2 7C2 9.85 4.92 14.21 7 16.88C9.12 14.19 12 9.88 12 7C12 4.24 9.76 2 7 2C4.24 2 2 4.24 2 7ZM7 9.5C5.61929 9.5 4.5 8.38071 4.5 7C4.5 5.61929 5.61929 4.5 7 4.5C8.38071 4.5 9.5 5.61929 9.5 7C9.5 8.38071 8.38071 9.5 7 9.5Z"
fill="white" />
</svg>
</div>
<div class="icon-detail">
<span>Address</span>
<div><?php the_field('address');?></div>
</div>
</a>
</div>
</div>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="bg-secondary container-fluid py-80 CONTACT-FORM-SECTION">
<div class="container">
<div class="row justify-content-between">
<div class="col-lg-5 col-md-5 col-12 left-section">
<h2><?php the_field('title');?></h2>
<?php the_field('description');?>
<!--<h2>Get in Touch</h2>-->
<!--<p>Have an idea to execute or wanna know about us? Ring us up</p>-->
<div class="image-wrapper">
<?php if($image = get_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
</div>
<div class="form-wrapper col-lg-5 col-md-5 col-12">
<?php echo do_shortcode(get_field('contact_form_shortcode'));?>
</div>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="bg-secondary map">
<?php the_field('map_iframe');?>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="background-dark pb-60 ABOUT TOP-BANNER-SECTION">
<div class="container">
<div class="row align-items-center justify-content-between">
<div class="col-lg-6 col-12">
<div class="position-relative left-text-wrapper">
<?php the_field('description');?>
</div>
</div>
<div class="col-lg-5 col-md-5 mx-auto col-12 text-center right-image">
<!--<?php if($image = get_field('image')): echo wp_get_attachment_image($image); endif;?>-->
<?php
$image = get_field('image');
$size = 'full';
if ($image) {
echo wp_get_attachment_image($image, $size);
} ?>
</div>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<div class="container-fluid py-40 background-dark breadcrumb-background-dark">
<div class="container">
<div class="row">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="<?php echo site_url('/');?>">Home</a></li>
<?php if(have_rows('crumbs')): while(have_rows('crumbs')): the_row();
?>
<?php if ($link = get_sub_field('link')) : $link_target = $link['target'] ? $link['target'] : '_self';?>
<li class="breadcrumb-item"><a href="<?php echo $link['url']; ?>" target="<?php echo esc_attr( $link_target ); ?>"><?php echo $link['title']; ?></a></li>
<?php endif;?>
<?php endwhile; endif;?>
<li class="breadcrumb-item active" aria-current="page"><?php echo ($title = get_field('page_title'))?$title:get_the_title();?></li>
</ol>
</nav>
</div>
</div>
</div>
<?php endif;?>
\ No newline at end of file
<?php if($image = get_field('banner')):?>
<section class="container-fluid PAGE-BANNER">
<div class="row">
<?php echo wp_get_attachment_image($image,'full');?>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(is_admin()): echo '<h1>Custom Quote Block</h1>'; endif;?>
<div class="p-40 mb-60 quote background-dark">
<svg width="29" height="24" viewBox="0 0 29 24" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M28.6018 0V5.52212H26.9027C25.5339 5.52212 24.4484 5.73451 23.646 6.15929C22.8437 6.58407 22.2537 7.31563 21.8761 8.35398C21.4985 9.34513 21.3097 10.6903 21.3097 12.3894V17.6283L19.2566 13.6637C19.587 13.4277 20.059 13.2389 20.6726 13.0973C21.2861 12.9086 21.9233 12.8142 22.5841 12.8142C24.1416 12.8142 25.4395 13.3097 26.4779 14.3009C27.5162 15.2448 28.0354 16.5664 28.0354 18.2655C28.0354 19.8702 27.5398 21.2389 26.5487 22.3717C25.5575 23.4572 24.1416 24 22.3009 24C21.1209 24 20.0118 23.7404 18.9735 23.2212C17.9823 22.6549 17.1799 21.7109 16.5664 20.3894C15.9528 19.0206 15.646 17.1563 15.646 14.7965V13.5929C15.646 10.2419 16.0944 7.57522 16.9912 5.59292C17.9351 3.61062 19.2802 2.19469 21.0265 1.34513C22.7729 0.448377 24.8968 0 27.3982 0H28.6018ZM12.9558 0V5.52212H11.2566C9.88791 5.52212 8.80236 5.73451 8 6.15929C7.19764 6.58407 6.60767 7.31563 6.23009 8.35398C5.85251 9.34513 5.66372 10.6903 5.66372 12.3894V17.6283L3.61062 13.6637C3.941 13.4277 4.41298 13.2389 5.02655 13.0973C5.64012 12.9086 6.27729 12.8142 6.93805 12.8142C8.49558 12.8142 9.79351 13.3097 10.8319 14.3009C11.8702 15.2448 12.3894 16.5664 12.3894 18.2655C12.3894 19.8702 11.8938 21.2389 10.9027 22.3717C9.91151 23.4572 8.49558 24 6.65487 24C5.47493 24 4.36578 23.7404 3.32743 23.2212C2.33628 22.6549 1.53392 21.7109 0.920354 20.3894C0.306785 19.0206 0 17.1563 0 14.7965V13.5929C0 10.2419 0.448378 7.57522 1.34513 5.59292C2.28909 3.61062 3.63422 2.19469 5.38053 1.34513C7.12684 0.448377 9.25074 0 11.7522 0H12.9558Z"
fill="#005AFF" />
</svg>
<?php the_field('description');?>
</div>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid py-80 HOME FAQS-SECTION">
<div class="container">
<div class="row">
<span><?php the_field('subtitle');?></span>
<div class="col-lg-4 col-md-4 col-12 left-section">
<h2><?php the_field('title');?></h2>
<?php the_field('description');?>
<div class="image-wrapper">
<?php if($image = get_field('image')): echo wp_get_attachment_image($image, 'full'); endif;?>
</div>
</div>
<?php $faqs = get_field('faqs'); if($faqs):?>
<div class="accordion-wrapper col-lg-7 col-md-7 col-12">
<div class="accordion" id="accordionPanelsStayOpenExample">
<?php foreach($faqs as $key=>$faq):?>
<div class="accordion-item">
<h2 class="accordion-header" id="panelsStayOpen-heading<?php echo $faq->ID;?>">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#panelsStayOpen-collapse<?php echo $faq->ID;?>" aria-expanded="<?php echo $key==0?'true':'false';?>"
aria-controls="panelsStayOpen-collapse<?php echo $faq->ID;?>">
<?php echo get_the_title($faq);?>
</button>
</h2>
<div id="panelsStayOpen-collapse<?php echo $faq->ID;?>" class="accordion-collapse collapse <?php echo $key==0?'show':'';?>"
aria-labelledby="panelsStayOpen-heading<?php echo $faq->ID;?>">
<div class="accordion-body">
<?php echo get_the_content(null,false,$faq);?>
</div>
</div>
</div>
<?php endforeach;?>
</div>
<?php if ($link = get_field('link')) : $link_target = $link['target'] ? $link['target'] : '_self';?>
<a href="<?php echo $link['url']; ?>" target="<?php echo esc_attr( $link_target ); ?>" class="btn m-auto d-flex align-items-center btn-start-project-white"><?php echo $link['title']; ?>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4 13L16.17 13L10.58 18.59L12 20L20 12L12 4L10.59 5.41L16.17 11L4 11L4 13Z"
fill="white" />
</svg>
</a>
<?php endif;?>
</div>
<?php endif;?>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid py-80 SERVICE HOMEPAGE-TOP-AFTER-CAROUSEL-SECTION">
<div class="container">
<div class="row">
<div class="title-wrapper">
<h3><?php the_field('title');?></h3>
<?php the_field('description');?>
</div>
</div>
<?php if(have_rows('content')): while(have_rows('content')): the_row();?>
<div class="row">
<div class="col-lg-6 m-auto left-text-wrapper">
<div class="text-wrapper">
<h2><?php the_sub_field('title');?></h2>
<?php the_sub_field('description');?>
</div>
<div class="technology-used">
<h3><?php the_sub_field('technology_title');?></h3>
<?php if($images = get_sub_field('technology_images')):?>
<ul class="d-flex list-unstyled">
<?php foreach( $images as $image_id ): ?>
<li>
<?php echo wp_get_attachment_image( $image_id, 'full' ); ?>
</li>
<?php endforeach;?>
</ul>
<?php endif;?>
</div>
</div>
<div class="col-lg-6 m-auto right-image-wrapper">
<div class="image-wrapper">
<?php if($image=get_sub_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
</div>
</div>
<?php endwhile; endif;?>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if (get_field('enable_ti_section')) : ?>
<section class="container-fluid py-60 HOME HOMEPAGE-TOP-AFTER-CAROUSEL-SECTION">
<div class="container">
<?php if(have_rows('content')):
while(have_rows('content')):
the_row();?>
<div class="row">
<div class="col-lg-5 m-auto left-text-wrapper">
<div class="text-wrapper">
<h2><?php the_sub_field('title') ?></h2>
<?php the_sub_field('subtitle');?>
<?php if ($link = get_sub_field('link')) : $link_target = $link['target'] ? $link['target'] : '_self';?>
<a href="<?php echo $link['url']; ?>"
class="btn btn-start-project-white" target="<?php echo esc_attr( $link_target ); ?>"><?php echo $link['title']; ?>
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" viewBox="0 0 25 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4.5 13L16.67 13L11.08 18.59L12.5 20L20.5 12L12.5 4L11.09 5.41L16.67 11L4.5 11L4.5 13Z"
fill="white" />
</svg>
</a>
<?php endif; ?>
</div>
</div>
<div class="col-lg-5 m-auto right-image-wrapper">
<div class="image-wrapper">
<?php
$image = get_sub_field('image');
$size = 'full';
if ($image) {
echo wp_get_attachment_image($image, $size);
} ?>
</div>
</div>
</div>
<?php endwhile; endif;?>
</div>
</section>
<?php endif; ?>
\ No newline at end of file
<?php if (get_field('enable_partners_carousel_section')) : ?>
<section class="py-80 container-fluid HOME TOP-CAROUSEL-SECTION reversed">
<div class="container">
<div class="row mb-60 pb-60 border-bottom">
<div class="mb-3 text-center title-wrapper">
<h5><?php echo get_field('pc_title'); ?></h5>
</div>
<div class="col-lg-10 mx-auto">
<div class="client-carouselwrapper owl-carousel owl-theme">
<?php
if (have_rows('pc_partners_list')) :
while (have_rows('pc_partners_list')) : the_row(); ?>
<!--<a target="_blank" href="<?php echo get_sub_field('link'); ?>" class="item">-->
<!--<a href="" onclick="return false;" class="item">-->
<?php
$image = get_sub_field('logo');
$size = 'full'; // (thumbnail, medium, large, full or custom size)
if ($image) {
echo wp_get_attachment_image($image, $size);
} ?>
<!--</a>-->
<?php endwhile;
endif; ?>
</div>
</div>
</div>
</div>
</section>
<?php endif; ?>
\ No newline at end of file
<section class="background-dark pb-60 PD-TOP-SECTION">
<div class="container">
<div class="row justify-content-between">
<div class="col-lg-5 pb-60 title-wrapper">
<?php the_field('description');?>
</div>
<div class="col-lg-4">
<div class="client-logo-wrapper">
<?php if($image = get_field('client_logo')):echo wp_get_attachment_image($image,'full'); endif;?>
</div>
<?php if($scope = get_field('scope_of_work')):?>
<div class="scope-work-wrapper">
<ul class="list-unstyled">
<?php echo $scope;?>
</ul>
</div>
<?php endif;?>
</div>
</div>
<?php if ($link = get_field('link')) : $link_target = $link['target'] ? $link['target'] : '_self';?>
<div class="row justify-content-between">
<div class="col-lg-4 col-md-4 col-12 d-flex align-items-center go-to-section">
<div class="border-div d-flex align-items-center">
<a href="<?php echo $link['url']; ?>" target="_blank">
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M8.25349 16.4601C8.49594 16.2183 8.82439 16.0825 9.16682 16.0825C9.50925 16.0825 9.8377 16.2183 10.0802 16.4601C10.1999 16.5797 10.2949 16.7218 10.3598 16.8782C10.4246 17.0345 10.458 17.2022 10.458 17.3714C10.458 17.5407 10.4246 17.7083 10.3598 17.8647C10.2949 18.0211 10.1999 18.1632 10.0802 18.2828L7.34015 21.0188C7.1004 21.258 6.91019 21.5423 6.78041 21.8551C6.65063 22.168 6.58383 22.5034 6.58383 22.8421C6.58383 23.1808 6.65063 23.5162 6.78041 23.8291C6.91019 24.142 7.1004 24.4262 7.34015 24.6654C7.82505 25.1491 8.48196 25.4207 9.16682 25.4207C9.85168 25.4207 10.5086 25.1491 10.9935 24.6654L17.3855 18.2828C17.5053 18.1632 17.6003 18.0211 17.6651 17.8647C17.7299 17.7083 17.7633 17.5407 17.7633 17.3714C17.7633 17.2022 17.7299 17.0345 17.6651 16.8782C17.6003 16.7218 17.5053 16.5797 17.3855 16.4601C17.2655 16.3405 17.1703 16.1983 17.1054 16.0418C17.0404 15.8853 17.007 15.7176 17.007 15.5481C17.007 15.3787 17.0404 15.2109 17.1054 15.0544C17.1703 14.8979 17.2655 14.7558 17.3855 14.6361C17.6279 14.3943 17.9564 14.2585 18.2988 14.2585C18.6412 14.2585 18.9697 14.3943 19.2122 14.6361C19.5719 14.995 19.8573 15.4214 20.052 15.8907C20.2467 16.3601 20.347 16.8633 20.347 17.3714C20.347 17.8796 20.2467 18.3828 20.052 18.8521C19.8573 19.3215 19.5719 19.7479 19.2122 20.1068L12.8188 26.4894C11.8492 27.457 10.5353 28.0005 9.16549 28.0005C7.79566 28.0005 6.48178 27.457 5.51215 26.4894C5.03265 26.0109 4.65223 25.4425 4.39267 24.8167C4.13311 24.191 3.99951 23.5202 3.99951 22.8428C3.99951 22.1653 4.13311 21.4945 4.39267 20.8688C4.65223 20.2431 5.03265 19.6747 5.51215 19.1961L8.25349 16.4588V16.4601ZM23.7468 15.5401C23.5044 15.7819 23.1759 15.9177 22.8335 15.9177C22.4911 15.9177 22.1626 15.7819 21.9202 15.5401C21.8004 15.4205 21.7054 15.2784 21.6405 15.1221C21.5757 14.9657 21.5423 14.7981 21.5423 14.6288C21.5423 14.4595 21.5757 14.2919 21.6405 14.1355C21.7054 13.9791 21.8004 13.8371 21.9202 13.7174L24.6602 10.9814C24.8999 10.7422 25.0901 10.458 25.2199 10.1451C25.3497 9.83223 25.4165 9.49683 25.4165 9.15811C25.4165 8.81939 25.3497 8.484 25.2199 8.17113C25.0901 7.85826 24.8999 7.57405 24.6602 7.33478C24.1753 6.85114 23.5183 6.57954 22.8335 6.57954C22.1486 6.57954 21.4917 6.85114 21.0068 7.33478L14.6162 13.7174C14.4964 13.8371 14.4014 13.9791 14.3365 14.1355C14.2717 14.2919 14.2383 14.4595 14.2383 14.6288C14.2383 14.7981 14.2717 14.9657 14.3365 15.1221C14.4014 15.2784 14.4964 15.4205 14.6162 15.5401C14.7361 15.6598 14.8313 15.8019 14.8963 15.9584C14.9612 16.1149 14.9946 16.2827 14.9946 16.4521C14.9946 16.6216 14.9612 16.7893 14.8963 16.9458C14.8313 17.1023 14.7361 17.2445 14.6162 17.3641C14.3737 17.6059 14.0452 17.7417 13.7028 17.7417C13.3604 17.7417 13.0319 17.6059 12.7895 17.3641C12.4298 17.0052 12.1444 16.5788 11.9496 16.1095C11.7549 15.6401 11.6547 15.1369 11.6547 14.6288C11.6547 14.1206 11.7549 13.6175 11.9496 13.1481C12.1444 12.6787 12.4298 12.2524 12.7895 11.8934L19.1828 5.51078C20.1524 4.54318 21.4663 3.99976 22.8362 3.99976C24.206 3.99976 25.5199 4.54318 26.4895 5.51078C26.969 5.98932 27.3494 6.55773 27.609 7.18347C27.8685 7.80922 28.0021 8.48001 28.0021 9.15745C28.0021 9.83489 27.8685 10.5057 27.609 11.1314C27.3494 11.7572 26.969 12.3256 26.4895 12.8041L23.7468 15.5414V15.5401Z"
fill="#005AFF" />
</svg>
<h2 class="m-0"><?php echo $link['title']; ?></h2>
</a>
</div>
</div>
</div>
<?php endif;?>
</div>
</section>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid HOME OUR-MOST-RECENT-WORKS mb-60">
<div class="container">
<div class="row">
<div class="main-wrapper">
<div class="row justify-content-between">
<div class="col-lg-6 top-title-wrapper">
<span><?php the_field('subtitle');?></span>
<h2><?php the_field('title');?></h2>
<?php the_field('description');?>
</div>
<div class="col-lg-4 top-title-wrapper">
<?php if($image=get_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
</div>
</div>
</div>
<?php $categories = get_field('categories');
if($categories):
?>
<div class="row">
<div class="tabs-wrapper">
<ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
<?php foreach($categories as $key=>$cat): ?>
<li class="nav-item" role="presentation">
<button class="nav-link <?php echo $key==0?'active':'';?>" id="pills-<?php echo $cat->slug;?>-tab" data-bs-toggle="pill"
data-bs-target="#pills-<?php echo $cat->slug;?>" type="button" role="tab" aria-controls="pills-<?php echo $cat->slug;?>"
aria-selected="true"><?php echo $cat->name;?></button>
</li>
<?php endforeach;?>
</ul>
<div class="tab-content" id="pills-tabContent">
<?php foreach($categories as $key=>$cat): ?>
<div class="tab-pane fade <?php echo $key==0 ? 'show active' : ''; ?>" id="pills-<?php echo $cat->slug; ?>" role="tabpanel"
aria-labelledby="pills-home-tab" tabindex="0">
<div class="row pb-60">
<?php
$wp_query = new WP_Query([
'post_type' => 'portfolio',
'post_status' => 'publish',
'posts_per_page' => '6',
'tax_query' => array(array(
'taxonomy' => 'portfolio-category',
'field' => 'slug',
'terms' => [$cat->slug]
))
]);
if($wp_query->have_posts()):
while($wp_query->have_posts()): $wp_query->the_post();
get_template_part('template-parts/content-portfolio');
endwhile;
wp_reset_postdata();
else: ?>
<div class="col-12 text-center">
<p>No portfolio items found in this category.</p>
</div>
<?php endif; ?>
</div>
<a href="<?php get_home_url(); ?>/portfolio/" class="btn m-auto d-flex align-items-center start-project btn-start-project-white load-more-content" style="width: fit-content;">View
All Works
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4 13L16.17 13L10.58 18.59L12 20L20 12L12 4L10.59 5.41L16.17 11L4 11L4 13Z"
fill="white" />
</svg>
</a>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
<?php endif;?>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<section class="position-relative PROJECT-CONCLUSION">
<div class="container">
<div class="row">
<div class="col-lg-5">
<?php if($image = get_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
<div class="col-lg-7">
<?php echo get_field('description');?>
<?php if(have_rows('stats')): ?>
<div class="percentage-box">
<div class="row">
<?php while(have_rows('stats')): the_row();?>
<div class="col-lg-6">
<div class="inner-wrapper">
<span><?php the_sub_field('number');?></span>
<p><?php the_sub_field('title');?></p>
</div>
</div>
<?php endwhile;?>
</div>
</div>
<?php endif;?>
</div>
</div>
<?php if($quote_text=get_field('quote_text')):?>
<div class="row ax-auto">
<div class="col-lg-10 mx-auto">
<div class="position-relative py-100 quote-text">
<div class="icon-wrapper">
<svg width="136" height="114" viewBox="0 0 136 114" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path opacity="0.16"
d="M136 0V26.0755H127.977C121.514 26.0755 116.388 27.0784 112.599 29.0842C108.81 31.09 106.024 34.5444 104.241 39.4475C102.458 44.1277 101.567 50.4795 101.567 58.5027V83.241L91.8723 64.5201C93.4323 63.4058 95.661 62.5143 98.5583 61.8457C101.456 60.9542 104.464 60.5085 107.584 60.5085C114.939 60.5085 121.068 62.8486 125.971 67.5288C130.874 71.9862 133.326 78.2264 133.326 86.2497C133.326 93.8272 130.985 100.29 126.305 105.639C121.625 110.765 114.939 113.328 106.247 113.328C100.676 113.328 95.4381 112.102 90.5351 109.651C85.8548 106.976 82.0661 102.519 79.1688 96.2787C76.2715 89.8155 74.8229 81.0123 74.8229 69.8689V64.1858C74.8229 48.3622 76.9402 35.7702 81.1746 26.4098C85.632 17.0494 91.9837 10.3633 100.23 6.35172C108.476 2.11724 118.505 0 130.317 0H136ZM62.1195 0V26.0755H54.0962C47.6331 26.0755 42.5071 27.0784 38.7184 29.0842C34.9297 31.09 32.1438 34.5444 30.3609 39.4475C28.5779 44.1277 27.6865 50.4795 27.6865 58.5027V83.241L17.9917 64.5201C19.5518 63.4058 21.7805 62.5143 24.6778 61.8457C27.575 60.9542 30.5837 60.5085 33.7039 60.5085C41.0585 60.5085 47.1874 62.8486 52.0904 67.5288C56.9935 71.9862 59.4451 78.2264 59.4451 86.2497C59.4451 93.8272 57.105 100.29 52.4247 105.639C47.7445 110.765 41.0585 113.328 32.3667 113.328C26.795 113.328 21.5576 112.102 16.6545 109.651C11.9743 106.976 8.18557 102.519 5.2883 96.2787C2.39102 89.8155 0.942383 81.0123 0.942383 69.8689V64.1858C0.942383 48.3622 3.05962 35.7702 7.2941 26.4098C11.7514 17.0494 18.1032 10.3633 26.3493 6.35172C34.5954 2.11724 44.6244 0 56.4364 0H62.1195Z"
fill="#005AFF" />
</svg>
</div>
<?php echo $quote_text;?>
</div>
</div>
</div>
<?php endif;?>
</div>
</section>
\ No newline at end of file
<?php if (get_field('enable_section')) :
$terms = get_terms('portfolio-category');
if ($terms) :
?>
<section class="background-dark mb-60 ABOUT TOP-BANNER-SECTION">
<div class="container">
<div class="row">
<ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
<?php foreach ($terms as $key => $term) : ?>
<li class="nav-item" role="presentation">
<button class="nav-link <?php echo $key == 0 ? 'active' : ''; ?>" id="pills-<?php echo $term->slug; ?>-tab" data-bs-toggle="pill" data-bs-target="#pills-<?php echo $term->slug; ?>" type="button" role="tab" aria-controls="pills-<?php echo $term->slug; ?>" aria-selected="<?php echo $key == 0 ? true : false; ?>"><?php echo $term->name; ?></button>
</li>
<?php endforeach; ?>
</ul>
</div>
</div>
</section>
<section class="container-fluid HOME OUR-MOST-RECENT-WORKS mb-60">
<div class="container">
<div class="row">
<div class="tabs-wrapper">
<div class="tab-content" id="pills-tabContent">
<?php foreach ($terms as $key => $term) : ?>
<?php $total_items = 0; ?>
<div class="tab-pane fade <?php echo $key == 0 ? 'show active' : ''; ?>" id="pills-<?php echo $term->slug; ?>" role="tabpanel" aria-labelledby="pills-<?php echo $term->slug; ?>-tab" tabindex="0">
<div class="row" id="append_<?php echo $term->slug; ?>">
<?php $wp_query = new WP_Query([
'post_type' => 'portfolio',
'post_status' => 'publish',
'posts_per_page' => 6,
'tax_query' => array(array(
'taxonomy' => 'portfolio-category',
'field' => 'slug',
'terms' => [$term->slug]
))
]);
$total_items = $wp_query->found_posts;
if ($wp_query->have_posts()) :
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<div class="col-sm-12 col-md-6 col-lg-4 col-12 recent-card-wrapper m-auto d-block">
<a href="<?php the_permalink(); ?>">
<?php the_post_thumbnail(); ?>
<div class="bottom-text">
<div class="d-flex align-items-center justify-content-between title">
<div class="heading">
<h3><?php the_title(); ?></h3>
</div>
<div class="site-link">
<p>View Site <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4 12L12 4" stroke="#58595A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
<path d="M5.5 4H12V10.5" stroke="#58595A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</svg>
</p>
</div>
</div>
<ul class="list-unstyled d-flex">
<?php
$post_tags = get_the_terms(get_the_ID(), 'portfolio-tag');
if ($post_tags && !is_wp_error($post_tags)) :
foreach ($post_tags as $tag) :
?>
<li>#<?php echo $tag->name; ?></li>
<?php
endforeach;
endif;
?>
</ul>
</div>
</a>
</div>
<?php endwhile;
wp_reset_postdata();
endif; ?>
</div>
<?php if ($total_items > 6) : ?>
<button data-cat="<?php echo $term->slug; ?>" class="btn m-auto d-flex align-items-center start-project btn-start-project-white load-more-content fpData" id="fpData">
<span class="loaded">
Load More
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 13L16.17 13L10.58 18.59L12 20L20 12L12 4L10.59 5.41L16.17 11L4 11L4 13Z" fill="white" />
</svg>
</span>
<span class="load">
<div class="lds-ellipsis">
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</span>
</button>
<?php endif; ?>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
</section>
<?php endif;
endif; ?>
\ No newline at end of file
<?php
if(have_rows('content')):
while(have_rows('content')):
the_row();
$image_position = get_sub_field('image_position');
$image = get_sub_field('image');
?>
<section class="<?php echo (get_sub_field('background_colour')=='dark')?'background-dark':'bg-primary';?> container-fluid py-80 ONLY-TEXT-SECTION">
<div class="container">
<div class="row">
<?php if($image_position=='left'):?>
<div class="col-lg-6 col-12">
<?php if($image): echo wp_get_attachment_image($image,'full');endif;?>
</div>
<?php endif;?>
<div class="col-lg-6 col-12">
<?php echo get_sub_field('description');?>
</div>
<?php if($image_position!='left'):?>
<div class="col-lg-6 col-12">
<?php if($image): echo wp_get_attachment_image($image,'full');endif;?>
</div>
<?php endif;?>
</div>
</div>
</section>
<?php endwhile; endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid YOU-MAY-LIKE">
<div class="container">
<div class="row">
<div class="main-wrapper">
<div class="col-lg-8 top-title-wrapper">
<h2><?php the_field('title');?></h2>
<?php the_field('description');?>
</div>
</div>
<?php if($portfolios = get_field('related_portfolios')):?>
<div class="portfolio-carousel owl-carousel owl-theme">
<?php foreach($portfolios as $portfolio):
// Check if $portfolio is an object or an ID
$post_id = is_object($portfolio) ? $portfolio->ID : $portfolio;
?>
<div class="item">
<div class="recent-card-wrapper">
<a href="<?php echo get_the_permalink($post_id);?>">
<?php echo get_the_post_thumbnail($portfolio);?>
<div class="bottom-text">
<div class="d-flex align-items-center justify-content-between title">
<div class="heading">
<h3><?php echo get_the_title($portfolio);?></h3>
</div>
<div class="site-link">
<p>View Site <svg width="16" height="16" viewBox="0 0 16 16" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M4 12L12 4" stroke="#58595A" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M5.5 4H12V10.5" stroke="#58595A" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
</p>
</div>
</div>
<ul class="list-unstyled d-flex">
<?php
$terms = get_terms('portfolio-category');
foreach ($terms as $term) {
echo '<li>#' . $term->name . '</li>';
}
?>
</ul>
</div>
</a>
</div>
</div>
<?php endforeach;?>
</div>
<?php endif; ?>
<?php if ($link = get_field('link')) : $link_target = $link['target'] ? $link['target'] : '_self';?>
<a href="<?php echo $link['url']; ?>" target="<?php echo esc_attr( $link_target ); ?>" class="btn my-60 mx-auto d-flex align-items-center start-project btn-start-project-white"
style="width: fit-content;"><?php echo $link['title']; ?>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4 13L16.17 13L10.58 18.59L12 20L20 12L12 4L10.59 5.41L16.17 11L4 11L4 13Z" fill="white">
</path>
</svg>
</a>
<?php endif;?>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="analysis-section background-dark">
<div class="container">
<div class="row">
<div class="col-lg-7">
<?php if( $image = get_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
<div class="col-lg-5">
<div class="right-content-wrapper py-5">
<?php the_field('description');?>
</div>
</div>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid py-80 SERVICE HOMEPAGE-TOP-AFTER-CAROUSEL-SECTION">
<div class="container">
<div class="row">
<div class="title-wrapper">
<h3><?php the_field('title');?></h3>
<?php the_field('description');?>
</div>
</div>
<?php if(have_rows('content')): while(have_rows('content')): the_row();?>
<div class="row">
<div class="col-lg-6 m-auto left-text-wrapper">
<div class="text-wrapper">
<h2><?php the_sub_field('title');?></h2>
<?php the_sub_field('description');?>
</div>
<div class="technology-used">
<h3><?php the_sub_field('technology_title');?></h3>
<?php if($images = get_sub_field('technology_images')):?>
<ul class="d-flex list-unstyled">
<?php foreach( $images as $image_id ): ?>
<li>
<?php echo wp_get_attachment_image( $image_id, 'full' ); ?>
</li>
<?php endforeach;?>
</ul>
<?php endif;?>
</div>
</div>
<div class="col-lg-6 m-auto right-image-wrapper">
<div class="image-wrapper">
<?php if($image=get_sub_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
</div>
</div>
<?php endwhile; endif;?>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid py-80 SERVICE services-list HOMEPAGE-TOP-AFTER-CAROUSEL-SECTION">
<div class="container">
<?php
if( have_rows('service_list') ):
while( have_rows('service_list') ) : the_row();
?>
<div class="row">
<div class="col-lg-6 m-auto left-text-wrapper">
<div class="text-wrapper">
<?php echo get_sub_field('title_description'); ?>
</div>
<div class="tags-wrapper">
<?php echo get_sub_field('tags_list'); ?>
</div>
<a href="<?php echo get_sub_field('view_service_detail_link'); ?>"
class="btn d-flex align-items-center start-project btn-start-project-white">View
Detail
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4 13L16.17 13L10.58 18.59L12 20L20 12L12 4L10.59 5.41L16.17 11L4 11L4 13Z" fill="white">
</path>
</svg>
</a>
</div>
<div class="col-lg-6 m-auto right-image-wrapper">
<div class="image-wrapper">
<?php
$image = get_sub_field('service_thumbnail');
if( !empty( $image ) ): ?>
<img src="<?php echo esc_url($image['url']); ?>" alt="<?php echo esc_attr($image['alt']); ?>" />
<?php endif; ?>
</div>
</div>
</div>
<?php
endwhile;
endif;
?>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid YOU-MAY-LIKE">
<div class="container">
<div class="row">
<div class="main-wrapper">
<div class="top-title-wrapper">
<h2 class="mb-0"><?php the_field('title');?></h2>
<p><?php the_field('description');?></p>
</div>
</div>
<div class="portfolio-carousel owl-carousel owl-theme">
<?php $portfolios = get_field('portfolios')??[]; foreach($portfolios as $key=>$portfolio):?>
<div class="item">
<div class="recent-card-wrapper">
<a href="<?php echo get_permalink($portfolio);?>">
<?php echo get_the_post_thumbnail($portfolio);?>
<div class="bottom-text">
<div class="d-flex align-items-center justify-content-between title">
<div class="heading">
<h3><?php echo get_the_title($portfolio);?></h3>
</div>
<div class="site-link">
<p>View Site <svg width="16" height="16" viewBox="0 0 16 16" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M4 12L12 4" stroke="#58595A" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M5.5 4H12V10.5" stroke="#58595A" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
</p>
</div>
</div>
<ul class="d-none list-unstyled d-flex">
<?php if($tags = get_tags(['taxonomy'=>'portfolio-tag'])): foreach($tags as $tag):?>
<li>#<?php echo $tag->name;?></li>
<?php endforeach; endif;?>
</ul>
</div>
</a>
</div>
</div>
<?php endforeach;?>
</div>
<?php if ($link = get_field('link')) : $link_target = $link['target'] ? $link['target'] : '_self';?>
<a class="btn my-60 mx-auto d-flex align-items-center start-project btn-start-project-white" href="<?php echo $link['url']; ?>" target="<?php echo esc_attr( $link_target ); ?>"
style="width: fit-content;"><?php echo $link['title']; ?>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4 13L16.17 13L10.58 18.59L12 20L20 12L12 4L10.59 5.41L16.17 11L4 11L4 13Z" fill="white">
</path>
</svg>
</a>
<?php endif;?>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="my-60 WORKS-ON-WORK-SECTION">
<div class="container">
<div class="row">
<div class="main-wrapper">
<div class="top-title-wrapper">
<h2><?php the_field('title');?></h2>
<?php the_field('description');?>
</div>
</div>
<?php if(have_rows('steps')): ?>
<div class="inner-list-wrapper">
<div class="row">
<?php while(have_rows('steps')): the_row();?>
<div class="text-center mx-auto col-lg-2 col-6 mb-2">
<div class="m-auto icon-wrapper">
<?php if($image = get_sub_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
<h5><?php the_sub_field('title');?></h5>
<?php the_sub_field('description');?>
</div>
<?php endwhile;?>
</div>
</div>
<?php endif;?>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid FINAL-THOUGHT-SECTION">
<div class="container">
<div class="row pt-80">
<div class="col-lg-6 mx-auto text-center">
<div class="share-article">
<p class="font-18"><?php echo get_field('title');?></p>
<div class="d-flex social-icon justify-content-center">
<a href="https://www.addtoany.com/add_to/facebook?linkurl=<?php echo urlencode(get_the_permalink());?>&linkname=<?php echo urlencode(get_the_title());?>&linknote=" rel="nofollow noopener" target="_blank" class="a2a_button_facebook share-option-icon icon d-flex align-items-center justify-content-center facebook">
<svg width="12" height="21" viewBox="0 0 12 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.6484 11.75H7.71875V20.5H3.8125V11.75H0.609375V8.15625H3.8125V5.38281C3.8125 2.25781 5.6875 0.5 8.53906 0.5C9.90625 0.5 11.3516 0.773438 11.3516 0.773438V3.85938H9.75C8.1875 3.85938 7.71875 4.79688 7.71875 5.8125V8.15625H11.1953L10.6484 11.75Z" fill="white"/>
</svg>
</a>
<a href="https://www.addtoany.com/add_to/twitter?linkurl=<?php echo urlencode(get_the_permalink());?>&linkname=<?php echo urlencode(get_the_title());?>&linknote=" class="share-option-icon a2a_button_twitter icon d-flex align-items-center justify-content-center twitter">
<svg width="20" height="17" viewBox="0 0 20 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.9297 4.4375C17.9297 4.63281 17.9297 4.78906 17.9297 4.98438C17.9297 10.4141 13.8281 16.625 6.28906 16.625C3.94531 16.625 1.79688 15.9609 0 14.7891C0.3125 14.8281 0.625 14.8672 0.976562 14.8672C2.89062 14.8672 4.64844 14.2031 6.05469 13.1094C4.25781 13.0703 2.73438 11.8984 2.22656 10.2578C2.5 10.2969 2.73438 10.3359 3.00781 10.3359C3.35938 10.3359 3.75 10.2578 4.0625 10.1797C2.1875 9.78906 0.78125 8.14844 0.78125 6.15625V6.11719C1.32812 6.42969 1.99219 6.58594 2.65625 6.625C1.52344 5.88281 0.820312 4.63281 0.820312 3.22656C0.820312 2.44531 1.01562 1.74219 1.36719 1.15625C3.39844 3.61719 6.44531 5.25781 9.84375 5.45312C9.76562 5.14062 9.72656 4.82812 9.72656 4.51562C9.72656 2.25 11.5625 0.414062 13.8281 0.414062C15 0.414062 16.0547 0.882812 16.8359 1.70312C17.7344 1.50781 18.6328 1.15625 19.4141 0.6875C19.1016 1.66406 18.4766 2.44531 17.6172 2.95312C18.4375 2.875 19.2578 2.64062 19.9609 2.32812C19.4141 3.14844 18.7109 3.85156 17.9297 4.4375Z" fill="white"/>
</svg>
</a>
<a href="https://www.addtoany.com/add_to/linkedin?linkurl=<?php echo urlencode(get_the_permalink());?>&linkname=<?php echo urlencode(get_the_title());?>&linknote=" class="share-option-icon a2a_button_linkedin icon d-flex align-items-center justify-content-center linkedin">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.15625 18H0.523438V6.32031H4.15625V18ZM2.32031 4.75781C1.1875 4.75781 0.25 3.78125 0.25 2.60938C0.25 1.47656 1.1875 0.539062 2.32031 0.539062C3.49219 0.539062 4.42969 1.47656 4.42969 2.60938C4.42969 3.78125 3.49219 4.75781 2.32031 4.75781ZM17.7109 18H14.1172V12.3359C14.1172 10.9688 14.0781 9.25 12.2031 9.25C10.3281 9.25 10.0547 10.6953 10.0547 12.2188V18H6.42188V6.32031H9.89844V7.92188H9.9375C10.4453 7.02344 11.6172 6.04688 13.375 6.04688C17.0469 6.04688 17.75 8.46875 17.75 11.5938V18H17.7109Z" fill="white"/>
</svg>
</a>
</div>
</div>
</div>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid">
<div class="row">
<div class="pb-30 bg-secondary upper-footer">
<div class="col-lg-6 col-md-6 col-12 m-auto text-center pt-120 inner-text-wrapper">
<div class="inner-wrapper">
<h2><?php the_field('title');?></h2>
</div>
<?php if ($link = get_field('link')) : $link_target = $link['target'] ? $link['target'] : '_self';?>
<a data-bs-toggle="modal" data-bs-target="#exampleModal" href="<?php echo $link['url']; ?>" target="<?php echo esc_attr( $link_target ); ?>">
<h3><?php echo $link['title']; ?></h3>
</a>
<?php endif;?>
</div>
<div class="left-img">
<?php if($image=get_field('left_image')): echo wp_get_attachment_image($image); endif;?>
</div>
<div class="right-img">
<?php if($image=get_field('right_image')): echo wp_get_attachment_image($image); endif;?>
</div>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<section class="py-80 TECHNOLOGY-USED-SECTION">
<div class="container">
<div class="row">
<div class="col-6 mx-auto text-center">
<h4><?php the_field('title');?></h4>
<?php if($images = get_field('images')):?>
<div class="technology-carousel-wrapper owl-carousel owl-theme">
<?php foreach( $images as $image_id ): ?>
<div class="item">
<?php echo wp_get_attachment_image( $image_id, 'full' ); ?>
</div>
<?php endforeach;?>
</div>
<?php endif;?>
</div>
</div>
</div>
</section>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid background-dark py-80 HOME OUR-CUSTOMERS-SAY-SECTION <?php if (is_singular('portfolio')): ?>single-what-customers-say<?php endif; ?>">
<div class="container">
<div class="row top-title pb-60 justify-content-between">
<div class="col-lg-5 col-md-6 col-12">
<h2>
<?php the_field('title');?>
</h2>
</div>
<div class="col-lg-5 col-md-5 col-12">
<?php the_field('description');?>
</div>
</div>
<?php $testimonials = get_field('testimonials'); if($testimonials): $carousle_type = get_field('carousel_type'); ?>
<div class="row">
<div class="<?php if($carousle_type==3): echo 'customer-feedback'; elseif($carousle_type==2): echo ''; else: echo 'customer-feedback-portfolio'; endif;?> owl-carousel owl-theme">
<?php foreach($testimonials as $testimonial):?>
<div class="item feedback-wrapper p-40">
<svg width="29" height="25" viewBox="0 0 29 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M28.6018 0.0012207V5.52334H26.9027C25.5339 5.52334 24.4484 5.73573 23.646 6.16051C22.8437 6.58529 22.2537 7.31685 21.8761 8.3552C21.4985 9.34635 21.3097 10.6915 21.3097 12.3906V17.6295L19.2566 13.6649C19.587 13.4289 20.059 13.2402 20.6726 13.0986C21.2861 12.9098 21.9233 12.8154 22.5841 12.8154C24.1416 12.8154 25.4395 13.311 26.4779 14.3021C27.5162 15.2461 28.0354 16.5676 28.0354 18.2667C28.0354 19.8714 27.5398 21.2402 26.5487 22.3729C25.5575 23.4584 24.1416 24.0012 22.3009 24.0012C21.1209 24.0012 20.0118 23.7416 18.9735 23.2225C17.9823 22.6561 17.1799 21.7121 16.5664 20.3906C15.9528 19.0219 15.646 17.1576 15.646 14.7977V13.5941C15.646 10.2431 16.0944 7.57644 16.9912 5.59414C17.9351 3.61184 19.2802 2.19591 21.0265 1.34635C22.7729 0.449598 24.8968 0.0012207 27.3982 0.0012207H28.6018ZM12.9558 0.0012207V5.52334H11.2566C9.88791 5.52334 8.80236 5.73573 8 6.16051C7.19764 6.58529 6.60767 7.31685 6.23009 8.3552C5.85251 9.34635 5.66372 10.6915 5.66372 12.3906V17.6295L3.61062 13.6649C3.941 13.4289 4.41298 13.2402 5.02655 13.0986C5.64012 12.9098 6.27729 12.8154 6.93805 12.8154C8.49558 12.8154 9.79351 13.311 10.8319 14.3021C11.8702 15.2461 12.3894 16.5676 12.3894 18.2667C12.3894 19.8714 11.8938 21.2402 10.9027 22.3729C9.91151 23.4584 8.49558 24.0012 6.65487 24.0012C5.47493 24.0012 4.36578 23.7416 3.32743 23.2225C2.33628 22.6561 1.53392 21.7121 0.920354 20.3906C0.306785 19.0219 0 17.1576 0 14.7977V13.5941C0 10.2431 0.448378 7.57644 1.34513 5.59414C2.28909 3.61184 3.63422 2.19591 5.38053 1.34635C7.12684 0.449598 9.25074 0.0012207 11.7522 0.0012207H12.9558Z"
fill="#005AFF" />
</svg>
<?php echo get_the_content(null,false,$testimonial);?>
<hr>
<div class="author-info d-flex align-items-center">
<?php echo get_the_post_thumbnail($testimonial);?>
<div class="detail">
<div><?php the_field('name',$testimonial);?></div>
<span><?php the_field('profession',$testimonial);?></span>
</div>
</div>
</div>
<?php endforeach;?>
</div>
</div>
<?php endif;?>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid HOME NOT-LISTED-SECTION pt-60 mb-100">
<div class="container">
<div class="row text-center align-items-center justify-content-center">
<div class="col-lg-2 col-md-2">
<h5><?php the_field('title');?></h5>
</div>
<div class="col-lg-5 col-md-5">
<?php the_field('subtitle');?>
</div>
<?php if ($link = get_field('link')) : $link_target = $link['target'] ? $link['target'] : '_self';?>
<div class="col-lg-3 col-md-3">
<a href="<?php echo $link['url']; ?>" target="<?php echo esc_attr( $link_target ); ?>">
<button class="btn btn-start-project-white contact"><?php echo $link['title']; ?>
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4.5 13L16.67 13L11.08 18.59L12.5 20L20.5 12L12.5 4L11.09 5.41L16.67 11L4.5 11L4.5 13Z"
fill="white" />
</svg>
</button>
</a>
</div>
<?php endif;?>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
<?php if(is_admin()): echo '<h1>Two Columns with right image Block</h1>'; endif;?>
<div class="row launch-container py-60">
<div class="col-lg-6 m-auto left-text-wrapper">
<div class="text-wrapper">
<?php the_field('description');?>
</div>
</div>
<div class="col-lg-5 m-auto right-image-wrapper">
<div class="image-wrapper">
<?php if($image = get_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
</div>
</div>
\ No newline at end of file
<?php if(get_field('enable_section')): ?>
<section class="container-fluid py-80 VACANCY SEARCH-SECTION">
<div class="container">
<div class="row">
<?php $paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1; $wp_query = new WP_Query([
'post_type'=>'vacancy','posts_per_page'=>10,'paged' => $paged,'s'=>sanitize_text_field($_GET['q']??''),
'meta_query'=>[
'relation'=>"AND",
[
'key'=>'is_open',
'compare'=>'=',
'value'=>1
],
[
'key'=>'deadline',
'compare'=>'>=',
'value'=>date( 'Ymd' )
]
]
]);
if($wp_query->have_posts()): while($wp_query->have_posts()): $wp_query->the_post();?>
<?php
$now = date_create('now');
$deadline= date_create(get_field('deadline',get_the_ID()));
$interval = date_diff($now,$deadline);
?>
<div class="search-container col-lg-11 col-md-11 mx-auto col-12">
<form action="<?php echo get_permalink(get_queried_object());?>">
<div class="input-group mb-4">
<input type="text" name="q" value="<?php echo sanitize_text_field($_GET['q']??'');?>"
placeholder="What're you searching for?" aria-describedby="button-addon5"
class="form-control rounded-0" required>
<div class="input-group-append">
<button id="button-addon5" type="submit" class="btn btn-dark rounded-0"><svg width="25"
height="25" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M25.3333 14.6667C25.3333 20.5579 20.5579 25.3333 14.6667 25.3333C8.77547 25.3333 4 20.5579 4 14.6667C4 8.77547 8.77547 4 14.6667 4C20.5579 4 25.3333 8.77547 25.3333 14.6667Z"
stroke="white" stroke-width="5" stroke-linecap="round"
stroke-linejoin="round" />
<path d="M27.9992 28L22.1992 22.2" stroke="white" stroke-width="5"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
</button>
</div>
</div>
</form>
</div>
<div class="col-lg-11 col-md-11 mx-auto col-12 align-items-center job-lists-wrapper">
<a href="<?php the_permalink();?>">
<div class="inner-wrapper py-40 d-flex align-items-center justify-content-between">
<div class="job-list">
<h2><?php the_title();?></h2>
<div class="font-16 fw-600 vacancy-duration d-flex">
<span>Deadline : <?php the_field('deadline',get_the_ID());?></span>
<p>(<?php echo $interval->format('%R%a days');?> Left)</p>
</div>
</div>
<div class="button-wrapper">
<button class="btn m-auto d-flex align-items-center btn-start-project-white">Find out
more
</button>
</div>
</div>
</a>
</div>
<?php endwhile;
else: ?>
<div class="col-lg-11 col-md-11 mx-auto col-12 text-center">
<?php _e( 'We do not have any openings at the moment. However, if you still believe you can add value to the company by joining us, please reach out to us at info@makuracreations.com.' ); ?>
</div>
<?php endif;
wp_reset_postdata();
?>
</div>
<?php echo paginate_links([
// 'current' => max( 1, $paged ),
'total' => $wp_query->max_num_pages
]);?>
</section>
<?php endif;?>
\ No newline at end of file
<?php if (get_field('enable_spider_welcome_banner_section')) : ?>
<section class="py-80 HOME TOP-BANNER-SECTION home2">
<div class="container">
<div class="row align-items-center">
<div class="col-lg-5 col-md-5 col-12 mx-auto left-text">
<div class="position-relative left-text-wrapper">
<h1><?php echo get_field('wb_title') ?></h1>
<p><?php echo get_field('wb_subtitle') ?></p>
</div>
<div class="button-wrapper">
<a href="<?php echo get_field('wb_button_link') ?>" class="btn btn-start-project btn-primary"><?php echo get_field('wb_button_text') ?></a>
</div>
</div>
<div class="col-lg-6 col-md-6 col-12 mx-auto">
<div class="jumbotron showcase parallax-window" data-parallax="scroll"
data-image-src="images/showcase-bg.jpg" data-position="-80% -90%" style="margin-top:70px;">
<div class="col-md-5" style="margin-top:-50px;">
<canvas id="scratch" style="width: 500px; height: 400px;"></canvas>
</div>
</div>
</div>
</div>
</div>
</section>
<?php endif; ?>
\ No newline at end of file
<?php if (get_field('enable_welcome_banner_section')) : ?>
<section class="bg-secondary background-dark py-80 HOME TOP-BANNER-SECTION">
<div class="container">
<div class="row align-items-center">
<div class="col-lg-5 col-md-5 col-12 mx-auto left-text">
<div class="position-relative left-text-wrapper">
<h1><?php echo get_field('wb_title') ?></h1>
<p><?php echo get_field('wb_subtitle') ?></p>
</div>
<div class="button-wrapper">
<a href="<?php echo get_field('wb_button_link') ?>" class="btn btn-start-project btn-primary"><?php echo get_field('wb_button_text') ?></a>
</div>
</div>
<div class="col-lg-6 col-md-6 col-12 mx-auto">
<?php
$image = get_field('banner_image');
$size = 'full'; // (thumbnail, medium, large, full or custom size)
if ($image) {
echo wp_get_attachment_image($image, $size);
} ?>
</div>
</div>
</div>
</section>
<?php endif; ?>
\ No newline at end of file
<?php if(get_field('enable_section')):?>
<section class="container-fluid pt-80 HOME WHAT-WE-DO-SECTION">
<div class="container">
<div class="row">
<div class="col-lg-8 top-title">
<h2><?php the_field('title');?></h2>
<?php the_field('description');?>
</div>
</div>
<?php if(have_rows('content')):?>
<div class="row">
<?php while(have_rows('content')):the_row();?>
<div class="col-lg-4">
<div class="card-wrapper p-40">
<?php if($image = get_sub_field('image')): echo wp_get_attachment_image($image,'full'); endif;?>
<h4><?php the_sub_field('title');?></h4>
<div class="tags-wrapper">
<?php the_sub_field('description');?>
</div>
</div>
</div>
<?php endwhile;?>
</div>
<?php endif;?>
</div>
</section>
<?php endif; ?>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<?php
require 'includes/enqueuer.php';
// require 'includes/custom-fields.php';
require 'includes/gutenberg/blocks.php';
function construction_theme_support()
{
add_theme_support('title-tag');
add_theme_support('custom-logo');
add_theme_support('custom-header');
add_theme_support('post-thumbnails');
}
add_action('after_setup_theme', 'construction_theme_support');
add_post_type_support('posts', 'excerpt');
if (function_exists('acf_add_options_page')) {
acf_add_options_page(array(
'page_title' => 'Theme General Settings',
'menu_title' => 'Theme Settings',
'menu_slug' => 'theme-general-settings',
'capability' => 'edit_posts',
'redirect' => false
));
acf_add_options_sub_page(array(
'page_title' => 'Footer Settings',
'menu_title' => 'Footer Settings',
'parent_slug' => 'theme-general-settings',
));
acf_add_options_sub_page(array(
'page_title' => 'Blog Settings',
'menu_title' => 'Blog Settings',
'parent_slug' => 'theme-general-settings',
));
}
add_post_type_support('page', 'excerpt');
function wpcs_custom_validation_filter( $result, $tag ) {
$name = $tag->name;
$value = isset( $_POST[$name] )
? trim( wp_unslash( strtr( (string) $_POST[$name], "\n", " " ) ) )
: '';
if ( 'text' == $tag->basetype ) {
// checking for numbers
if ( preg_match('/\d/', $value ) ) {
// $result->invalidate( $tag, wpcf7_get_message( 'invalid_wpcs_custom_error' ) );
$result->invalidate( $tag, 'Sorry! Names are not math equations. Try letters only.' );
}
// checking for special characters
if ( preg_match('/[^a-zA-Z0-9\s]/', $value ) ) {
// $result->invalidate( $tag, wpcf7_get_message( 'invalid_wpcs_custom_error' ) );
$result->invalidate( $tag, 'Sorry! No secret codes or hieroglyphs, please!' );
}
}
return $result;
}
function custom_phone_validation($result,$tag){
$type = $tag->type;
$name = $tag->name;
if($type == 'tel' || $type == 'tel*' || $type == 'number' || $type == 'number*' ){
$phoneNumber = isset( $_POST[$name] ) ? trim( $_POST[$name] ) : '';
$phoneNumber = preg_replace('/[() .+-]/', '', $phoneNumber);
if (strlen((string)$phoneNumber) != 10) {
$result->invalidate( $tag, 'Please enter a valid phone number.' );
}
}
return $result;
}
add_filter( 'wpcf7_validate_text', 'wpcs_custom_validation_filter', 10, 2 );
add_filter( 'wpcf7_validate_text*', 'wpcs_custom_validation_filter', 10, 2 );
add_filter('wpcf7_validate_tel','custom_phone_validation', 10, 2);
add_filter('wpcf7_validate_tel*', 'custom_phone_validation', 10, 2);
add_filter('wpcf7_validate_number', 'custom_phone_validation', 10, 2);
add_filter('wpcf7_validate_number*', 'custom_phone_validation', 10, 2);
//
// test checkout form validation
//
add_action('woocommerce_checkout_process', 'wh_phoneValidateCheckoutFields');
function wh_phoneValidateCheckoutFields() {
$billing_phone = filter_input(INPUT_POST, 'billing_phone');
if (strlen(trim(preg_replace('/^[6789]\d{9}$/', '', $billing_phone))) > 0) {
wc_add_notice(__('Invalid <strong>Phone Number</strong>, please check your input.'), 'error');
}
}
function custom_page_content($content)
{
$content = apply_filters( 'the_content', $content );
$content = str_replace( ']]>', ']]&gt;', $content );
return $content;
}
function tutsplus_widgets_init()
{
register_sidebar(
array(
'name' => esc_html__( 'Categories', 'makura' ),
'id' => 'sidebar-1',
'description' => esc_html__( 'Add widgets here.', 'makura' ),
'before_title' => '',
'after_title' => '',
'before_widget' => '',
'after_widget' => '',
)
);
register_sidebar(
array(
'name' => esc_html__( 'Archives', 'makura' ),
'id' => 'sidebar-2',
'description' => esc_html__( 'Add widgets here.', 'makura' ),
'before_title' => '',
'after_title' => '',
'before_widget' => '',
'after_widget' => '',
)
);
// First footer widget area, located in the footer. Empty by default.
register_sidebar(array(
'name' => __('Services'),
'id' => 'services',
'before_widget' => '<div id="%1$s" class="widget-container %2$s">',
'after_widget' => '</div>',
));
// Second footer widget area, located in the footer. Empty by default.
register_sidebar(array(
'name' => __('Quick Links'),
'id' => 'quick-links',
'before_widget' => '<div id="%1$s" class="widget-container %2$s">',
'after_widget' => '</div>',
));
// Third footer widget area, located in the footer. Empty by default.
register_sidebar(array(
'name' => __('Company'),
'id' => 'company',
'before_widget' => '<div id="%1$s" class="widget-container %2$s">',
'after_widget' => '</div>',
));
// Recent Posts Widget
register_sidebar(array(
'name' => __('Recent Posts'),
'id' => 'recent-posts',
'before_widget' => '<div id="%1$s" class="widget-container %2$s">',
'after_widget' => '</div>',
));
}
// Register sidebars by running tutsplus_widgets_init() on the widgets_init hook.
add_action('widgets_init', 'tutsplus_widgets_init');
add_filter('nav_menu_css_class', 'special_nav_class', 10, 2);
function special_nav_class($classes, $item)
{
if (in_array('current-menu-item', $classes)) {
$classes[] = 'active ';
}
return $classes;
}
add_filter('wp_nav_menu_items', 'your_custom_menu_item', 10, 2);
function your_custom_menu_item($items, $args)
{
if ($args->menu === 'main-menu') {
$items .= '
<li class="book-now"><a data-bs-toggle="modal" data-bs-target="#consultationForm"
class=" btn btn-primary text-white">Book
a consulation</a></li>
<div class="close-navbar d-lg-none d-block" id="menuClose">
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-x" width="24"
height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="#000" fill="none"
stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<line x1="18" y1="6" x2="6" y2="18" />
<line x1="6" y1="6" x2="18" y2="18" />
</svg>
</div>
';
}
return $items;
}
/* Custom pagination function for custom query */
function my_custom_pagination($numpages = '', $pagerange = '', $paged = '', $search = false)
{
if (empty($pagerange)) {
$pagerange = 2;
}
/**
* This first part of our function is a fallback
* for custom pagination inside a regular loop that
* uses the global $paged and global $wp_query variables.
*
* It's good because we can now override default pagination
* in our theme, and use this function in default queries
* and custom queries.
*/
global $paged;
if (empty($paged)) {
$paged = 1;
}
if ($numpages == '') {
global $wp_query;
$numpages = $wp_query->max_num_pages;
if (!$numpages) {
$numpages = 1;
}
}
if ($search) {
$format = '&paged=%#%';
} else {
$format = 'page/%#%';
}
/**
* We construct the pagination arguments to enter into our paginate_links
* function.
*/
$pagination_args = array(
'base' => get_pagenum_link(1) . '%_%',
'format' => $format,
// 'format' => '&paged=%#%',
'total' => $numpages,
'current' => $paged,
'show_all' => False,
'end_size' => 1,
'mid_size' => $pagerange,
'prev_next' => True,
'prev_text' => __('&laquo;'),
'next_text' => __('&raquo;'),
'type' => 'plain',
'add_args' => false,
'add_fragment' => ''
);
$paginate_links = paginate_links($pagination_args);
if ($paginate_links) {
echo "<nav class='Page navigation example text-center'>";
//echo "<span class='page-numbers page-num'>Page " . $paged . " of " . $numpages . "</span> ";
echo $paginate_links;
echo "</nav>";
}
}
register_nav_menus(
array(
'menu-web' => esc_html__( 'Primary Menu', 'makura' )
)
);
add_filter('post_thumbnail_html','custom_post_thumbnail');
function custom_post_thumbnail($html)
{
if($html){
return $html;
}
$image = get_field('default_post_thumbnail','option');
if($image){
echo wp_get_attachment_image($image,'full');
}
}
function get_banner_image($id)
{
$banner_image = get_field('banner_image',$id);
if(!$banner_image){
$banner_image = get_field('default_banner_image','option');
}
if($banner_image){
echo wp_get_attachment_image($banner_image,'full');
}
}
function get_simple_tag_list($postId){
$tags = (array) get_tags($postId);
$html = '';
if($tags){
$tags = array_column($tags,'name');
$html = implode(', ',$tags);
// foreach($tags as $tag){
// $html.=$tag->name.' ';
// }
}
return $html;
}
// disable srcset on frontend
function disable_wp_responsive_images() {
return 1;
}
add_filter('max_srcset_image_width', 'disable_wp_responsive_images');
function fetch_more_portfolios()
{
$data_cat = isset($_POST['data_cat']) ? sanitize_text_field($_POST['data_cat']) : '';
// Query posts of custom post type 'portfolio' with the specified category
$args = array(
'post_type' => 'portfolio',
'posts_per_page' => -1, // Get all posts
'offset' => 6,
'post_status' => 'publish',
'tax_query' => array(array(
'taxonomy' => 'portfolio-category',
'field' => 'slug',
'terms' => [$data_cat]
))
);
$query = new WP_Query($args);
// Check if there are posts
if ($query->have_posts()) {
$counter = 0;
// Initialize an empty string to store HTML markup for posts
$html_output = '';
// Loop through posts and construct HTML markup
while ($query->have_posts()) {
$query->the_post();
$counter++;
if ($counter <= 6) {
continue;
}
// Construct HTML markup for each post
$html_output .= '<div class="col-lg-4 col-12 recent-card-wrapper m-auto d-block">';
$html_output .= '<a href="' . get_the_permalink() . '">';
$html_output .= get_the_post_thumbnail();
$html_output .= '<div class="bottom-text">';
$html_output .= '<div class="d-flex align-items-center justify-content-between title">';
$html_output .= '<div class="heading">';
$html_output .= '<h3>' . get_the_title() . '</h3>';
$html_output .= '</div>';
$html_output .= '<div class="site-link">';
$html_output .= '<p>View Site <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">';
$html_output .= '<path d="M4 12L12 4" stroke="#58595A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />';
$html_output .= '<path d="M5.5 4H12V10.5" stroke="#58595A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />';
$html_output .= '</svg></p>';
$html_output .= '</div>';
$html_output .= '</div>';
$html_output .= '<ul class="list-unstyled d-flex">';
// Get post tags
$post_tags = get_the_terms(get_the_ID(), 'portfolio-tag');
if ($post_tags && !is_wp_error($post_tags)) {
foreach ($post_tags as $tag) {
$html_output .= '<li>#' . $tag->name . '</li>';
}
}
$html_output .= '</ul>';
$html_output .= '</div>';
$html_output .= '</a>';
$html_output .= '</div>';
}
// Reset post data
wp_reset_postdata();
// Send the HTML markup as response
echo json_encode(array('success' => true, 'html' => $html_output));
} else {
// No posts found
echo json_encode(array('success' => false, 'message' => 'No posts found.'));
}
// Always exit to avoid further execution
wp_die();
}
add_action('wp_ajax_get_fetch_more_portfolios', 'fetch_more_portfolios');
add_action('wp_ajax_nopriv_get_fetch_more_portfolios', 'fetch_more_portfolios');
function custom_rewrite_rules() {
add_rewrite_rule(
'^category/?$',
'index.php?pagename=blogs',
'top'
);
}
add_action('init', 'custom_rewrite_rules');
<?php
// Template Name: General page
get_header();
?>
<!-- BREADCRUMB -->
<div class="container-fluid py-40">
<div class="container">
<div class="row">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="<?php echo get_home_url('/'); ?>">Home</a></li>
<li class="breadcrumb-item active" aria-current="page"><a href="#"><?php echo the_title(); ?></a>
</li>
</ol>
</nav>
</div>
</div>
</div>
<!-- BREADCRUMB -->
<section class="terms-and-conditions-wrapper">
<div class="container">
<div class="row">
<div class="col-lg-3">
<div class="terms-sidebar-wrapper">
<ul>
<?php
if( have_rows('general_sidebar_links') ):
while( have_rows('general_sidebar_links') ) : the_row();
?>
<li class="active"><a href="<?php echo esc_attr( get_sub_field('links') ); ?>"><?php echo get_sub_field('title'); ?></a></li>
<?php
endwhile;
endif;
?>
</ul>
</div>
</div>
<div class="col-lg-9">
<div class="right-top-content-wrapper">
<h1><?php echo get_the_title(); ?></h1>
<div class="updated-date">Last Updated: <?php echo get_the_date('d F Y'); ?></div>
<p><?php the_excerpt(); ?></p>
</div>
<div class="point-frame-wrapper">
<?php the_content(); ?>
</div>
</div>
</div>
</div>
</section>
<?php get_footer(); ?>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<?php wp_head(); ?>
<meta name="google-site-verification" content="DPEItwBusmmpY1RLo_YnoM9jRctsvqfM0AJNpkGiKwc" />
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-T7SF2XRJ');</script>
<!-- End Google Tag Manager -->
</head>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-T7SF2XRJ"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<nav class="navbar navbar-expand-lg navbar-light top-nav p-0" id="myTopnav">
<div class="container">
<div class="row align-items-center position-relative nav-wrapper justify-content-between w-100">
<div class="col-5 col-lg-1 d-flex align-items-center nav-left">
<div class="logo d-flex align-items-center">
<?php echo get_custom_logo(); ?>
</div>
</div>
<div class="col-6 col-lg-10 d-flex align-items-center justify-content-end nav-right">
<?php
wp_nav_menu( array(
'theme_location' => 'menu-web',
'depth' => 9,
'container' => false,
'menu_class' => 'menu h-100',
'add_li_class' => 'nav-item',
'items_wrap' => '<ul class="navbar-nav align-items-center"><div class="side-menu-close d-none text-end">
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="32" width="32" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>
</div>%3$s</ul>'
));
?>
<div class="book-button">
<a href="#" data-bs-toggle="modal" data-bs-target="#exampleModal"
class="btn btn-primary btn-padding hover-up btn-start-project font-14 fw-500 btn-padding btn-submit">Start
your project
<svg width="24" height="24" viewBox="0 0 24 24" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4 13L16.17 13L10.58 18.59L12 20L20 12L12 4L10.59 5.41L16.17 11L4 11L4 13Z"
fill="white"></path>
</svg>
<span class="bg-hover" style="left: 108px; top: 62.1562px;"></span>
</a>
</div>
</div>
<div class="col-1 menu-toggler">
<div class="toggler-icon">
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="32" width="32" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"></path></svg>
</div>
</div>
</div>
</div>
</nav>
\ No newline at end of file
<?php
get_header();
$current_page_id = get_queried_object_id();
?>
<div class="container-fluid background-dark blog-breadcrumb-background-dark breadcrumb-background-dark py-40">
<div class="container">
<div class="row">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="<?php echo site_url('/');?>">Home</a></li>
<li class="breadcrumb-item active" aria-current="page"><?php echo get_the_title(get_queried_object_id());?></li>
</ol>
</nav>
</div>
</div>
</div>
<section class="background-dark pb-60 BLOGLISTING-TOP-TITLE-SECTION">
<div class="container">
<div class="row justify-content-between">
<div class="col-lg-3 pb-60 title-wrapper">
<h1><?php echo get_the_title(get_queried_object_id());?></h1>
</div>
<div class="col-lg-6 pb-60 paragraph">
<p><?php echo get_the_excerpt(get_queried_object_id());?></p>
</div>
</div>
</div>
</section>
<section class="py-60 BLOGLISTING-LIST-ITEM-SECTION">
<div class="container">
<div class="row justify-content-between">
<div class="col-lg-2 col-12 left-filter">
<!-- <?php dynamic_sidebar('archives'); ?> -->
<?php get_sidebar();?>
</div>
<div class="col-lg-10 col-12 blog-list">
<div class="row justify-content-evenly">
<?php while(have_posts()):the_post();?>
<div class="col-lg-6 col-md-6">
<div class="blog-card">
<a href="<?php the_permalink();?>">
<div class="blog-image-wrapper">
<?php the_post_thumbnail();?>
</div>
<!--<p class="text-dark mb-0">Author: <?php echo get_the_author(); ?></p>-->
<div class="text-wrapper">
<p>
<?php
$post_tags = get_the_tags();
if ($post_tags) {
foreach ($post_tags as $tag) {
echo $tag->name . ',';
}
}
?>
<h6><?php the_title();?></h6>
<?php the_excerpt();?>
<div class="card-detail d-flex justify-content-between">
<div><svg width="20" height="21" viewBox="0 0 20 21" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M16.25 3.625H3.75C3.40482 3.625 3.125 3.90482 3.125 4.25V16.75C3.125 17.0952 3.40482 17.375 3.75 17.375H16.25C16.5952 17.375 16.875 17.0952 16.875 16.75V4.25C16.875 3.90482 16.5952 3.625 16.25 3.625Z"
stroke="#005AFF" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<path d="M13.75 2.375V4.875" stroke="#005AFF" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M6.25 2.375V4.875" stroke="#005AFF" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M3.125 7.375H16.875" stroke="#005AFF" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
<?php echo get_the_date('d M Y');?></div>
<div class="d-flex align-items-center"><svg class="me-1" width="20" height="20" viewBox="0 0 20 20" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M10 4.375C3.75 4.375 1.25 10 1.25 10C1.25 10 3.75 15.625 10 15.625C16.25 15.625 18.75 10 18.75 10C18.75 10 16.25 4.375 10 4.375Z"
stroke="#005AFF" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<path
d="M10 13.125C11.7259 13.125 13.125 11.7259 13.125 10C13.125 8.27411 11.7259 6.875 10 6.875C8.27411 6.875 6.875 8.27411 6.875 10C6.875 11.7259 8.27411 13.125 10 13.125Z"
stroke="#005AFF" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</svg>
<?php echo do_shortcode('[post-views]'); ?> <span class="ms-2">Views</span></div>
<div class="d-none">
<svg width="18" height="15" viewBox="0 0 18 15" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M4.60515 6C3.99821 6 3.50786 6.44688 3.50786 7C3.50786 7.55312 3.99821 8 4.60515 8C5.2121 8 5.70245 7.55312 5.70245 7C5.70245 6.44688 5.2121 6 4.60515 6ZM8.44569 6C7.83875 6 7.3484 6.44688 7.3484 7C7.3484 7.55312 7.83875 8 8.44569 8C9.05264 8 9.54299 7.55312 9.54299 7C9.54299 6.44688 9.05264 6 8.44569 6ZM12.2862 6C11.6793 6 11.1889 6.44688 11.1889 7C11.1889 7.55312 11.6793 8 12.2862 8C12.8932 8 13.3835 7.55312 13.3835 7C13.3835 6.44688 12.8932 6 12.2862 6ZM8.44569 0.5C3.59701 0.5 -0.332685 3.40937 -0.332685 7C-0.332685 8.4875 0.349697 9.85 1.48128 10.9469C0.970356 12.1781 -0.0926513 13.2219 -0.109797 13.2344C-0.336114 13.4531 -0.397837 13.7719 -0.267533 14.0469C-0.137229 14.3219 0.161099 14.5 0.490288 14.5C2.59916 14.5 4.26225 13.6969 5.2601 13.0531C6.2511 13.3375 7.32096 13.5 8.44569 13.5C13.2944 13.5 17.2241 10.5906 17.2241 7C17.2241 3.40937 13.2944 0.5 8.44569 0.5ZM8.44569 12C7.53014 12 6.62487 11.8719 5.75732 11.6219L4.97892 11.3969L4.31025 11.8281C3.8199 12.1438 3.14781 12.4969 2.33855 12.7344C2.58887 12.3562 2.83233 11.9312 3.02093 11.4781L3.38441 10.6L2.67802 9.91875C2.05737 9.31563 1.31326 8.31875 1.31326 7C1.31326 4.24375 4.51257 2 8.44569 2C12.3788 2 15.5781 4.24375 15.5781 7C15.5781 9.75625 12.3788 12 8.44569 12Z"
fill="#005AFF" />
</svg>
<?php echo get_comments_number();?> Comments
</div>
</div>
</div>
</a>
</div>
</div>
<?php endwhile;?>
</div>
<?php the_posts_pagination();?>
<!-- <nav aria-label="Page navigation example">
<ul class="pagination justify-content-center">
<li class="page-item"><a class="page-link" href="#">Previous</a></li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item"><a class="page-link" href="#">Next</a></li>
</ul>
</nav> -->
</div>
</div>
</div>
</section>
<?php echo custom_page_content(get_the_content(null,false,$current_page_id));?>
<?php get_footer() ?>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<?php
function conserve_register_styles()
{
//import css
$theme_version = wp_get_theme()->get("Version");
wp_enqueue_style('google-font', 'https://fonts.googleapis.com/css2?family=Sora:wght@100;200;300;400;500;600;700;800&display=swap', null, $theme_version);
wp_enqueue_style('select2', 'https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/css/select2.min.css', null, $theme_version);
wp_enqueue_style('owl-carousel', 'https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css', null, $theme_version);
wp_enqueue_style('owl-carousel-theme', 'https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.min.css', null, $theme_version);
wp_enqueue_style('light-gallery', 'https://cdn.jsdelivr.net/npm/lightgallery@1.6.11/dist/css/lightgallery.min.css', null, $theme_version);
wp_enqueue_style('magnific-popup', 'https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.min.css', null, $theme_version);
wp_enqueue_style('slick', 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.min.css', null, $theme_version);
wp_enqueue_style('flatpicker', 'https://cdnjs.cloudflare.com/ajax/libs/flatpickr/4.6.13/flatpickr.min.css', null, $theme_version);
wp_enqueue_style('custom-css', get_template_directory_uri() . '/assets/css/style.css', null, '6.4.4');
//import scripts
wp_enqueue_script('jquery', 'https://code.jquery.com/jquery-3.5.1.min.js', array(), null, true);
wp_enqueue_script('bootstrap-scripts', 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js', array(), null, true);
wp_enqueue_script('owl-carousel', 'https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js', array(), null, true);
wp_enqueue_script('waypoints', 'https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.min.js', array(), null, true);
wp_enqueue_script('light-gallery', 'https://cdn.jsdelivr.net/npm/lightgallery@1.6.11/dist/js/lightgallery-all.min.js', array(), null, true);
wp_enqueue_script('counter-up', 'https://cdnjs.cloudflare.com/ajax/libs/Counter-Up/1.0.0/jquery.counterup.min.js', array(), null, true);
wp_enqueue_script('select2', 'https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/js/select2.min.js', array(), null, true);
wp_enqueue_script('magnific-popup', 'https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js', array(), null, true);
wp_enqueue_script('slick', 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js', array(), null, true);
wp_enqueue_script('gsap1', 'https://cdnjs.cloudflare.com/ajax/libs/gsap/3.10.4/gsap.min.js', array(), null, true);
wp_enqueue_script('gsap2', 'https://cdnjs.cloudflare.com/ajax/libs/gsap/3.10.4/ScrollTrigger.min.js', array(), null, true);
wp_enqueue_script('flatpicker', 'https://cdnjs.cloudflare.com/ajax/libs/flatpickr/4.6.13/flatpickr.min.js', array(), null, true);
wp_enqueue_script('custom', get_template_directory_uri() . '/assets/js/style.js', array('jquery'), null, true);
wp_enqueue_script('sanimation', get_template_directory_uri() . '/assets/js/spider-animation.js', array('jquery'), null, true);
wp_enqueue_script('spiderframeword', get_template_directory_uri() . '/assets/js/spider-framework.js', array('jquery'), null, true);
// wp_enqueue_script('customajax', get_template_directory_uri() . '/assets/js/loadmore.js', array('jquery'), null, true);
wp_enqueue_script('counter-js', get_template_directory_uri() . '/assets/js/counterup.js', array('jquery'), $theme_version);
wp_enqueue_script('raphaelmin', 'https://cdnjs.cloudflare.com/ajax/libs/raphael/2.3.0/raphael.min.js', array('jquery'), $theme_version);
wp_localize_script(
'custom',
'frontend_ajax_object',
array(
'ajaxurl' => admin_url('admin-ajax.php'),
)
);
}
add_action('wp_enqueue_scripts', 'conserve_register_styles');
<?php
add_action('acf/init', 'my_acf_init_block_types');
function my_acf_init_block_types()
{
// Check function exists.
if (function_exists('acf_register_block_type')) {
// Welcome Banner Block
acf_register_block_type(array(
'name' => 'Welcome Banner Block',
'title' => __('Welcome Banner Block'),
'description' => __('Welcome Banner Block'),
'render_template' => 'blocks/welcome-banner.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Welcome Banner'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
// Welcome Banner Spider Block
acf_register_block_type(array(
'name' => 'Welcome Banner Spider Block',
'title' => __('Welcome Banner Spider Block'),
'description' => __('Welcome Banner Spider Block'),
'render_template' => 'blocks/welcome-banner-spider.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Welcome Banner Spider'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
// Partners Carousel Block
acf_register_block_type(array(
'name' => 'Partners Carousel Block',
'title' => __('Partners Carousel Block'),
'description' => __('Partners Carousel Block'),
'render_template' => 'blocks/partners-carousel.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Welcome Banner'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
// Text Image Block
acf_register_block_type(array(
'name' => 'Our Information Section',
'title' => __('Our Information Section'),
'description' => __('Our Information Section'),
'render_template' => 'blocks/our-information-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Our Information Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'What we do Section',
'title' => __('What we do Section'),
'description' => __('What we do Section'),
'render_template' => 'blocks/what-we-do-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('What we do Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Title CTA',
'title' => __('Title CTA'),
'description' => __('Title CTA'),
'render_template' => 'blocks/title-cta.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Title CTA'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Right Image With Description',
'title' => __('Right Image With Description'),
'description' => __('Right Image With Description'),
'render_template' => 'blocks/right-image-description.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Right Image With Description'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Portfolio Block',
'title' => __('Portfolio Block'),
'description' => __('Portfolio Block'),
'render_template' => 'blocks/portfolio-block.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Portfolio Block'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Testimonials Block',
'title' => __('Testimonials Block'),
'description' => __('Testimonials Block'),
'render_template' => 'blocks/testimonial-block.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Testimonials Block'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Blogs Block',
'title' => __('Blogs Block'),
'description' => __('Blogs Block'),
'render_template' => 'blocks/blogs-block.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Blogs Block'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'FAQs Block',
'title' => __('FAQs Block'),
'description' => __('FAQs Block'),
'render_template' => 'blocks/faqs-block.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('FAQs Block'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Start Project CTA',
'title' => __('Start Project CTA'),
'description' => __('Start Project CTA'),
'render_template' => 'blocks/start-project-cta.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Start Project CTA'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Banner Block',
'title' => __('Banner Block'),
'description' => __('Banner Block'),
'render_template' => 'blocks/banner-block.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Banner Block'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Two Column Image Block',
'title' => __('Two Column Image Block'),
'description' => __('Two Column Image Block'),
'render_template' => 'blocks/two-coloumns-block.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Two Column Image Block'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Custom Quote Block',
'title' => __('Custom Quote Block'),
'description' => __('Custom Quote Block'),
'render_template' => 'blocks/custom-quote-block.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Custom Quote Block'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Portfolio Banner',
'title' => __('Portfolio Banner'),
'description' => __('Portfolio Banner'),
'render_template' => 'blocks/portfolio-banner.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Portfolio Banner'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Custom Page Banner',
'title' => __('Custom Page Banner'),
'description' => __('Custom Page Banner'),
'render_template' => 'blocks/custom-page-banner.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Custom Page Banner'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'About Client Section',
'title' => __('About Client Section'),
'description' => __('About Client Section'),
'render_template' => 'blocks/about-client-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('About Client Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Portfolio Text Image Section',
'title' => __('Portfolio Text Image Section'),
'description' => __('Portfolio Text Image Section'),
'render_template' => 'blocks/portfolio-text-image-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Portfolio Text Image Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Technology Used Section',
'title' => __('Technology Used Section'),
'description' => __('Technology Used Section'),
'render_template' => 'blocks/technology-used-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Technology Used Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Portfolio Conclusion Section',
'title' => __('Portfolio Conclusion Section'),
'description' => __('Portfolio Conclusion Section'),
'render_template' => 'blocks/portfolio-conclusion-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Portfolio Conclusion Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Share Buttons Section',
'title' => __('Share Buttons Section'),
'description' => __('Share Buttons Section'),
'render_template' => 'blocks/share-buttons-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Share Buttons Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Related Portfolio Section',
'title' => __('Related Portfolio Section'),
'description' => __('Related Portfolio Section'),
'render_template' => 'blocks/related-portfolio-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Related Portfolio Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Custom banner with right image',
'title' => __('Custom banner with right image'),
'description' => __('Custom banner with right image'),
'render_template' => 'blocks/custom-banner-with-right-image.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Custom banner with right image'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Breadcrumb Section',
'title' => __('Breadcrumb'),
'description' => __('Breadcrumb'),
'render_template' => 'blocks/custom-breadcrumb.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Breadcrumb'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Our Story Section',
'title' => __('Our Story Section'),
'description' => __('Our Story Section'),
'render_template' => 'blocks/about-us/our-story.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Our Story Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Mission/Vision Section',
'title' => __('Mission/Vision Section'),
'description' => __('Mission/Vision Section'),
'render_template' => 'blocks/about-us/mission-vision.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Mission/Vision Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Our Team Section',
'title' => __('Our Team Section'),
'description' => __('Our Team Section'),
'render_template' => 'blocks/about-us/our-team.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Our Team Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Our Team with Departments Section',
'title' => __('Our Team with Departments Section'),
'description' => __('Our Team with Departments Section'),
'render_template' => 'blocks/about-us/our-team-with-departments.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Our Team with Departments Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'How It Feels Section',
'title' => __('How It Feels Section'),
'description' => __('How It Feels Section'),
'render_template' => 'blocks/about-us/how-it-feels.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('How It Feels Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Employe Feel Section',
'title' => __('Employe Feel Section'),
'description' => __('Employe Feel Section'),
'render_template' => 'blocks/about-us/employe-feel.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Employe Feel Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Vacancy Listing',
'title' => __('Vacancy Listing'),
'description' => __('Vacancy Listing'),
'render_template' => 'blocks/vacancy-listing.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Vacancy Listing'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Contact Details Section',
'title' => __('Contact Details Section'),
'description' => __('Contact Details Section'),
'render_template' => 'blocks/contact-us/contact-details.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Contact Details Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Contact Form Section',
'title' => __('Contact Form Section'),
'description' => __('Contact Form Section'),
'render_template' => 'blocks/contact-us/contact-form.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Contact Form Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Map Section',
'title' => __('Map Section'),
'description' => __('Map Section'),
'render_template' => 'blocks/contact-us/map-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Map Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Portfolio Listing Section',
'title' => __('Portfolio Listing Section'),
'description' => __('Portfolio Listing Section'),
'render_template' => 'blocks/portfolio-listing-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Portfolio Listing Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'About Us Stat Section',
'title' => __('About Us Stat Section'),
'description' => __('About Us Stat Section'),
'render_template' => 'blocks/about-us/stat-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('About Us Stat Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Service List Section',
'title' => __('Service List Section'),
'description' => __('Service List Section'),
'render_template' => 'blocks/service-list-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Service List Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Service Content List Section',
'title' => __('Service Content List Section'),
'description' => __('Service Content List Section'),
'render_template' => 'blocks/service-content-list-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Service Content List Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'New Service Content List Section',
'title' => __('New Service Content List Section'),
'description' => __('New Service Content List Section'),
'render_template' => 'blocks/new-service-content-list-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('New Service Content List Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Service Work Process Section',
'title' => __('Service Work Process Section'),
'description' => __('Service Work Process Section'),
'render_template' => 'blocks/service-work-process-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Service Work Process Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Service Portfolio List Section',
'title' => __('Service Portfolio List Section'),
'description' => __('Service Portfolio List Section'),
'render_template' => 'blocks/service-portfolio-list-section.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Service Portfolio List Section'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
acf_register_block_type(array(
'name' => 'Contact Us Breadcrumb',
'title' => __('Contact Us Breadcrumb'),
'description' => __('Contact Us Breadcrumb'),
'render_template' => 'blocks/contact-us/contact-breadcrumb.php',
'category' => 'formatting',
'icon' => 'admin-comments',
'keywords' => array('Contact Us Breadcrumb'),
'example' => [
'attributes' => [
'mode' => 'preview',
'data' => []
]
],
));
}
}
\ No newline at end of file
<?php
// added by ut
// new index code
// added by rupak vai
/**
* Template Name: Default template
*
* This is the most generic template file in a WordPress theme
* and one of the two required files for a theme (the other being style.css).
* It is used to display a page when nothing more specific matches a query.
* E.g., it puts together the home page when no home.php file exists.
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @package gme
* @subpackage gme
* @since gme 1.0
*/
get_header();
?>
<?php
$whatsapp = get_field('whats_app_number', 'option');
if($whatsapp):
?>
<div class="whats-app-icon-wrapper">
<a href="https://wa.me/<?php echo $whatsapp ?>" target="_blank">
<svg width="60" height="60" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M48 24C48 37.2548 37.2548 48 24 48C10.7452 48 0 37.2548 0 24C0 10.7452 10.7452 0 24 0C37.2548 0 48 10.7452 48 24Z" fill="#34C759"/>
<path d="M24.0025 14H23.9975C18.4837 14 14 18.485 14 24C14 26.1875 14.705 28.215 15.9038 29.8612L14.6575 33.5763L18.5012 32.3475C20.0825 33.395 21.9688 34 24.0025 34C29.5163 34 34 29.5137 34 24C34 18.4863 29.5163 14 24.0025 14ZM29.8212 28.1213C29.58 28.8025 28.6225 29.3675 27.8587 29.5325C27.3362 29.6437 26.6538 29.7325 24.3563 28.78C21.4175 27.5625 19.525 24.5762 19.3775 24.3825C19.2363 24.1887 18.19 22.8013 18.19 21.3663C18.19 19.9313 18.9187 19.2325 19.2125 18.9325C19.4537 18.6863 19.8525 18.5737 20.235 18.5737C20.3588 18.5737 20.47 18.58 20.57 18.585C20.8637 18.5975 21.0112 18.615 21.205 19.0788C21.4462 19.66 22.0338 21.095 22.1038 21.2425C22.175 21.39 22.2462 21.59 22.1462 21.7838C22.0525 21.9838 21.97 22.0725 21.8225 22.2425C21.675 22.4125 21.535 22.5425 21.3875 22.725C21.2525 22.8838 21.1 23.0537 21.27 23.3475C21.44 23.635 22.0275 24.5938 22.8925 25.3638C24.0087 26.3575 24.9137 26.675 25.2375 26.81C25.4787 26.91 25.7662 26.8862 25.9425 26.6987C26.1662 26.4575 26.4425 26.0575 26.7237 25.6637C26.9237 25.3812 27.1762 25.3462 27.4412 25.4462C27.7112 25.54 29.14 26.2462 29.4338 26.3925C29.7275 26.54 29.9213 26.61 29.9925 26.7337C30.0625 26.8575 30.0625 27.4388 29.8212 28.1213Z" fill="white"/>
</svg>
</a>
<div class="position-absolute tooltip-wrapper">
<p>Chat with us</p>
</div>
</div>
<?php
endif;
?>
<?php the_content(); ?>
<?php get_footer() ?>
\ No newline at end of file
<div class="blog-side-bar">
<div class="pb-60 blog-category">
<h6>Category</h6>
<div class="category-list">
<?php dynamic_sidebar('sidebar-1');?>
</div>
</div>
<!--<div class="blog-category">-->
<!-- <h6>Archives</h6>-->
<!-- <div class="category-list">-->
<!-- <?php dynamic_sidebar('sidebar-2');?>-->
<!-- </div>-->
<!--</div>-->
</div>
\ No newline at end of file
<?php
$views = (int) get_post_meta(get_the_ID(),'total_views',true);
update_post_meta(get_the_ID(),'total_views',$views+1);
get_header();
?>
<div class="container-fluid py-40 background-dark blog-breadcrumb-background-dark breadcrumb-background-dark py-40">
<div class="container">
<div class="row">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="<?php echo site_url('/');?>">Home</a></li>
<li class="breadcrumb-item"><a href="<?php echo get_permalink(get_page_by_path('portfolio'));?>">Portfolio</a></li>
<li class="breadcrumb-item active" aria-current="page"><?php the_title();?></li>
</ol>
</nav>
</div>
</div>
</div>
<?php the_content();?>
<?php get_footer();?>
\ No newline at end of file
<?php
$views = (int) get_post_meta(get_the_ID(),'total_views',true);
update_post_meta(get_the_ID(),'total_views',$views+1);
get_header();
?>
<div class="container-fluid py-40 background-dark blog-breadcrumb-background-dark breadcrumb-background-dark py-40">
<div class="container">
<div class="row">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href=<?php echo site_url('/');?>>Home</a></li>
<li class="breadcrumb-item"><a href="<?php echo get_home_url().'/blogs/';?>">Blog</a></li>
<li class="breadcrumb-item active" aria-current="page"><?php the_title();?></li>
</ol>
</nav>
</div>
</div>
</div>
<section class="background-dark pb-60 BLOGDETAIL-TOP-TITLE-SECTION">
<div class="container">
<div class="row justify-content-between">
<div class="col-lg-10 pb-60 title-wrapper">
<span>Published <?php echo get_the_date('d, M Y');?></span>
<h1><?php the_title();?></h1>
<div class="post-date d-flex align-items-center">
<div class="d-flex align-items-center svg-wrapper">
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" width="24" height="24" stroke-width="2">
<path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path>
<path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path>
</svg>
<?php echo get_the_author(); ?>
</div>
<div class="d-flex align-items-center svg-wrapper">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1250_4547)">
<path
d="M12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21Z"
stroke="#F9F8F4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
<path d="M12 7V12L15 15" stroke="#F9F8F4" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round" />
</g>
<defs>
<clipPath id="clip0_1250_4547">
<rect width="24" height="24" fill="white" />
</clipPath>
</defs>
</svg>
<?php echo get_field('read_time');?>
</div>
<div class="d-flex views">
<svg class="me-2" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M12 5.25C4.5 5.25 1.5 12 1.5 12C1.5 12 4.5 18.75 12 18.75C19.5 18.75 22.5 12 22.5 12C22.5 12 19.5 5.25 12 5.25Z"
stroke="#F9F8F4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
<path
d="M12 15.75C14.0711 15.75 15.75 14.0711 15.75 12C15.75 9.92893 14.0711 8.25 12 8.25C9.92893 8.25 8.25 9.92893 8.25 12C8.25 14.0711 9.92893 15.75 12 15.75Z"
stroke="#F9F8F4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
</svg>
<?php echo do_shortcode('[post-views]'); ?> Views
</div>
<div class="views">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1250_4558)">
<path
d="M6.75018 9.75C5.92049 9.75 5.25018 10.4203 5.25018 11.25C5.25018 12.0797 5.92049 12.75 6.75018 12.75C7.57987 12.75 8.25018 12.0797 8.25018 11.25C8.25018 10.4203 7.57987 9.75 6.75018 9.75ZM12.0002 9.75C11.1705 9.75 10.5002 10.4203 10.5002 11.25C10.5002 12.0797 11.1705 12.75 12.0002 12.75C12.8299 12.75 13.5002 12.0797 13.5002 11.25C13.5002 10.4203 12.8299 9.75 12.0002 9.75ZM17.2502 9.75C16.4205 9.75 15.7502 10.4203 15.7502 11.25C15.7502 12.0797 16.4205 12.75 17.2502 12.75C18.0799 12.75 18.7502 12.0797 18.7502 11.25C18.7502 10.4203 18.0799 9.75 17.2502 9.75ZM12.0002 1.5C5.37206 1.5 0.000181321 5.86406 0.000181321 11.25C0.000181321 13.4812 0.932994 15.525 2.47987 17.1703C1.78143 19.0172 0.328306 20.5828 0.304869 20.6016C-0.00450618 20.9297 -0.0888812 21.4078 0.0892438 21.8203C0.267369 22.2328 0.675181 22.5 1.12518 22.5C4.00799 22.5 6.28143 21.2953 7.64549 20.3297C9.00018 20.7563 10.4627 21 12.0002 21C18.6283 21 24.0002 16.6359 24.0002 11.25C24.0002 5.86406 18.6283 1.5 12.0002 1.5ZM12.0002 18.75C10.7486 18.75 9.51112 18.5578 8.32518 18.1828L7.26112 17.8453L6.34706 18.4922C5.67674 18.9656 4.75799 19.4953 3.65174 19.8516C3.99393 19.2844 4.32674 18.6469 4.58456 17.9672L5.08143 16.65L4.11581 15.6281C3.26737 14.7234 2.25018 13.2281 2.25018 11.25C2.25018 7.11563 6.62362 3.75 12.0002 3.75C17.3767 3.75 21.7502 7.11563 21.7502 11.25C21.7502 15.3844 17.3767 18.75 12.0002 18.75Z"
fill="#F9F8F4" />
</g>
<defs>
<clipPath id="clip0_1250_4558">
<rect width="24" height="24" fill="white" />
</clipPath>
</defs>
</svg>
<?php echo get_comments_number();?> Comments
</div>
</div>
</div>
</div>
</div>
</section>
<section class="container-fluid px-0 BLOGDETAIL-PAGE-BANNER">
<div class="row">
<?php get_banner_image(get_the_ID()); ?>
</div>
</section>
<section class="py-60 mb-60 BLOGDETAIL-LIST-ITEM-SECTION">
<div class="container">
<div class="row justify-content-between">
<div class="col-lg-3 col-12 left-filter">
<div class="blog-side-bar blog-detail-side-bar">
<div class="back-to-blog font-16 fw-600">
<a href="<?php echo get_home_url().'/blogs/';?>">
<svg width="12" height="16" viewBox="0 0 12 16" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M2 4H8.66667C9.02029 4 9.35943 4.14048 9.60948 4.39052C9.85952 4.64057 10 4.97971 10 5.33333V14"
stroke="#005AFF" stroke-width="2.5" stroke-linecap="round"
stroke-linejoin="round" />
<path
d="M3.33344 6L1.42677 4.06C1.41384 4.04813 1.40352 4.03371 1.39645 4.01764C1.38939 4.00158 1.38574 3.98422 1.38574 3.96667C1.38574 3.94912 1.38939 3.93176 1.39645 3.91569C1.40352 3.89962 1.41384 3.8852 1.42677 3.87333L3.33344 2"
stroke="#005AFF" stroke-width="2.5" stroke-linecap="round"
stroke-linejoin="round" />
</svg>
Back to Blog
</a>
</div>
<p><?php echo the_field('read_time');?></p>
<div class="share-article2">
<h5>Share this article</h5>
<div class="d-flex social-icon">
<a href="https://www.addtoany.com/add_to/facebook?linkurl=<?php echo urlencode(get_the_permalink());?>&linkname=<?php echo urlencode(get_the_title());?>&linknote="
rel="nofollow noopener" target="_blank"
class="a2a_button_facebook share-option-icon icon d-flex align-items-center justify-content-center facebook">
<svg width="12" height="21" viewBox="0 0 12 21" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M10.6484 11.75L11.1953 8.15625H7.71875V5.8125C7.71875 4.79688 8.1875 3.85938 9.75 3.85938H11.3516V0.773438C11.3516 0.773438 9.90625 0.5 8.53906 0.5C5.6875 0.5 3.8125 2.25781 3.8125 5.38281V8.15625H0.609375V11.75H3.8125V20.5H7.71875V11.75H10.6484Z"
fill="#878787" />
</svg>
</a>
<a href="https://www.addtoany.com/add_to/twitter?linkurl=<?php echo urlencode(get_the_permalink());?>&linkname=<?php echo urlencode(get_the_title());?>&linknote="
class="share-option-icon a2a_button_twitter icon d-flex align-items-center justify-content-center twitter">
<svg width="20" height="17" viewBox="0 0 20 17" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M17.9297 4.4375C18.7109 3.85156 19.4141 3.14844 19.9609 2.32812C19.2578 2.64062 18.4375 2.875 17.6172 2.95312C18.4766 2.44531 19.1016 1.66406 19.4141 0.6875C18.6328 1.15625 17.7344 1.50781 16.8359 1.70312C16.0547 0.882812 15 0.414062 13.8281 0.414062C11.5625 0.414062 9.72656 2.25 9.72656 4.51562C9.72656 4.82812 9.76562 5.14062 9.84375 5.45312C6.44531 5.25781 3.39844 3.61719 1.36719 1.15625C1.01562 1.74219 0.820312 2.44531 0.820312 3.22656C0.820312 4.63281 1.52344 5.88281 2.65625 6.625C1.99219 6.58594 1.32812 6.42969 0.78125 6.11719V6.15625C0.78125 8.14844 2.1875 9.78906 4.0625 10.1797C3.75 10.2578 3.35938 10.3359 3.00781 10.3359C2.73438 10.3359 2.5 10.2969 2.22656 10.2578C2.73438 11.8984 4.25781 13.0703 6.05469 13.1094C4.64844 14.2031 2.89062 14.8672 0.976562 14.8672C0.625 14.8672 0.3125 14.8281 0 14.7891C1.79688 15.9609 3.94531 16.625 6.28906 16.625C13.8281 16.625 17.9297 10.4141 17.9297 4.98438C17.9297 4.78906 17.9297 4.63281 17.9297 4.4375Z"
fill="#878787" />
</svg>
</a>
<a href="https://www.addtoany.com/add_to/linkedin?linkurl=<?php echo urlencode(get_the_permalink());?>&linkname=<?php echo urlencode(get_the_title());?>&linknote="
class="share-option-icon a2a_button_linkedin icon d-flex align-items-center justify-content-center linkedin">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M4.15625 18V6.32031H0.523438V18H4.15625ZM2.32031 4.75781C3.49219 4.75781 4.42969 3.78125 4.42969 2.60938C4.42969 1.47656 3.49219 0.539062 2.32031 0.539062C1.1875 0.539062 0.25 1.47656 0.25 2.60938C0.25 3.78125 1.1875 4.75781 2.32031 4.75781ZM17.7109 18H17.75V11.5938C17.75 8.46875 17.0469 6.04688 13.375 6.04688C11.6172 6.04688 10.4453 7.02344 9.9375 7.92188H9.89844V6.32031H6.42188V18H10.0547V12.2188C10.0547 10.6953 10.3281 9.25 12.2031 9.25C14.0781 9.25 14.1172 10.9688 14.1172 12.3359V18H17.7109Z"
fill="#878787" />
</svg>
</a>
</div>
</div>
<div class="tags-wrapper">
<h5>Tags</h5>
<?php
$tags = get_tags();
if ( $tags ) :?>
<ul>
<?php foreach ( $tags as $tag ) : ?>
<li><a href="<?php echo esc_url( get_tag_link( $tag->term_id ) ); ?>"
title="<?php echo esc_attr( $tag->name ); ?>"><?php echo esc_html( $tag->name ); ?></a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>
</div>
</div>
<div class="col-lg-9 col-12 blog-list">
<div class="row">
<div class="col-11 blog-detail-content mx-auto">
<?php the_content();?>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="container-fluid pb-80 RELATED-BLOGS">
<div class="container">
<div class="row">
<?php $related_posts_section = get_field('related_post_section','option');
if(!empty($related_posts_section)):
?>
<h2><?php echo $related_posts_section['title'];?></h2>
<div class="d-flex align-items after-title pb-60 justify-content-between">
<div class="col-lg-8 col-md-8 col-sm-8 paragraph">
<?php echo $related_posts_section['description'];?>
</div>
<?php if ($link = $related_posts_section['link']) : $link_target = $link['target'] ? $link['target'] : '_self';?>
<div class="col-lg-3 col-md-3 col-sm-3 right-button d-flex align-items-center justify-content-end">
<a href="<?php echo $link['url']; ?>" target="<?php echo esc_attr( $link_target ); ?>"
class="btn btn-primary btn-start-project"><?php echo $link['title']; ?></a>
</div>
<?php endif;?>
</div>
<?php endif;?>
</div>
<?php
$related = get_posts( array( 'category__in' => wp_get_post_categories(get_the_ID()), 'numberposts' => 5, 'post__not_in' => array(get_the_ID()) ) );
if( $related ):
?>
<div class="row">
<div class="blog-carousel owl-carousel owl-theme owl-loaded owl-drag">
<?php foreach( $related as $post ):
setup_postdata($post); ?>
<div class="item blog-card">
<a href="<?php the_permalink();?>">
<div class="blog-image-wrapper">
<?php the_post_thumbnail();?>
</div>
<div class="text-wrapper">
<!--<p><?php echo get_simple_tag_list(get_the_ID());?></p>-->
<h6><?php the_title();?></h6>
<?php the_excerpt();?>
<span><svg width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.25 3.625H3.75C3.40482 3.625 3.125 3.90482 3.125 4.25V16.75C3.125 17.0952 3.40482 17.375 3.75 17.375H16.25C16.5952 17.375 16.875 17.0952 16.875 16.75V4.25C16.875 3.90482 16.5952 3.625 16.25 3.625Z" stroke="#005AFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M13.75 2.375V4.875" stroke="#005AFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M6.25 2.375V4.875" stroke="#005AFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M3.125 7.375H16.875" stroke="#005AFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg> <?php echo get_the_date('d, M Y',get_the_ID());?></span>
</div>
</a>
</div>
<?php endforeach; wp_reset_postdata();?>
</div>
</div>
<?php endif;
?>
</div>
</section>
<?php get_template_part('template-parts/footer-project-banner');?>
<?php get_footer();?>
\ No newline at end of file
<?php
$views = (int) get_post_meta(get_the_ID(),'total_views',true);
update_post_meta(get_the_ID(),'total_views',$views+1);
get_header();
?>
<div class="container-fluid py-40 background-dark blog-breadcrumb-background-dark breadcrumb-background-dark py-40">
<div class="container">
<div class="row">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="<?php echo site_url('/');?>">Home</a></li>
<li class="breadcrumb-item"><a href="<?php echo get_permalink(get_page_by_path('services'));?>">Services</a></li>
<li class="breadcrumb-item active" aria-current="page"><?php the_title();?></li>
</ol>
</nav>
</div>
</div>
</div>
<?php if(get_field('enable_banner')):?>
<section class="background-dark pb-60 PORTFOLIO-TOP-TITLE-SECTION">
<div class="container">
<div class="row align-items-center justify-content-between">
<div class="col-lg-5 col-md-5 col-12">
<h1 class="pb-20"><?php the_title();?></h1>
<p><?php the_field('banner_description');?></p>
<?php if(get_field('enable_inquiry')):?>
<div class="d-flex w-100 button-wrapper">
<button class="btn mb-20 btn-start-project btn-primary"><a href="<?php echo get_home_url().'/contact-us/';?>"><?php the_field('inquiry_text');?></a></button>
</div>
<?php endif;?>
</div>
<div class="col-lg-5 col-md-5 mx-auto col-12 text-center right-image">
<?php if($image = get_field('banner_image')):?>
<?php echo wp_get_attachment_image($image,'full'); endif;?>
</div>
</div>
</div>
</section>
<?php endif;?>
<?php the_content();?>
<?php get_footer();?>
\ No newline at end of file
<?php
$views = (int) get_post_meta(get_the_ID(), 'total_views', true);
update_post_meta(get_the_ID(), 'total_views', $views + 1);
get_header();
$now = date_create('now');
$deadline = date_create(get_field('deadline'));
$interval = date_diff($now, $deadline);
?>
<div class="container-fluid vacancy-detail-breadcrumb py-40 py-40">
<div class="container">
<div class="row">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="<?php echo site_url('/'); ?>">Home</a></li>
<li class="breadcrumb-item"><a href="<?php echo site_url('/vacancy'); ?>">Vacancy</a></li>
<li class="breadcrumb-item active" aria-current="page"><?php the_title(); ?></li>
</ol>
</nav>
</div>
</div>
</div>
<section class="background-dark pb-60 VACANCY-DETAIL-TOP-TITLE-SECTION">
<div class="container">
<div class="row justify-content-between">
<div class="col-lg-7" style="display: flex;flex-direction: column;justify-content: space-between;">
<div class="pb-60 title-wrapper">
<h1><?php the_title(); ?></h1>
<a href="#vacancyForm" class="btn mb-20 btn-start-project btn-primary"><?php the_field('apply_now_text'); ?></a>
<?php the_field('text_after_apply_now'); ?>
</div>
<div class="validation d-flex align-items-center">
<span>Deadline : <?php the_field('deadline'); ?></span>
<p>(<?php echo $interval->format('%R%a days'); ?> Left)</p>
</div>
</div>
<div class="col-lg-5">
<?php the_post_thumbnail(); ?>
</div>
</div>
</div>
</section>
<section class="py-60 VACANCY-DETAIL-SECTION">
<div class="container">
<div class="row justify-content-between">
<div class="col-lg-3 col-12">
<div class="apply-card text-white">
<h6><?php the_title(); ?></h6>
<span>Deadline : <?php the_field('deadline'); ?></span>
<p>(<?php echo $interval->format('%R%a days'); ?> Left)</p>
<a href="#vacancyForm" class="btn w-100 font-16 mb-20 fw-600 btn-start-project btn-secondary"><?php the_field('apply_now_text'); ?></a>
<?php if ($linkedin_url = get_field('linkedin_url')) : ?>
<a class="btn w-100 font-16 mb-20 fw-600 btn-start-project view-linkedin" target="_blank" href="<?php echo $linkedin_url; ?>">View on LinkedIn <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5 15L15 5" stroke="#F9F8F4" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
<path d="M6.875 5H15V13.125" stroke="#F9F8F4" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</svg>
</a>
<?php endif; ?>
</div>
</div>
<div class="col-lg-9 col-12 vacancy-list">
<div class="row">
<div class="col-11 vacancy-detail-content mx-auto">
<?php the_content(); ?>
<?php
$bottomContent = the_field("bottom_text");
if($bottomContent == true):
?>
<div class="py-60 mb-60 border-top border-bottom border-dark requirements-section">
<?php $bottomContent ?>
</div>
<?php endif; ?>
</div>
</div>
<div class="row pt-80 pb-40" id="vacancyForm">
<div class="col-lg-6 mx-auto text-center">
<div class="share-article">
<p class="font-18">Share this Vacancy</p>
<div class="d-flex social-icon justify-content-center">
<a href="https://www.addtoany.com/add_to/facebook?linkurl=<?php echo urlencode(get_the_permalink()); ?>&linkname=<?php echo urlencode(get_the_title()); ?>&linknote=" rel="nofollow noopener" target="_blank" class="a2a_button_facebook share-option-icon icon d-flex align-items-center justify-content-center facebook">
<svg width="12" height="21" viewBox="0 0 12 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.6484 11.75L11.1953 8.15625H7.71875V5.8125C7.71875 4.79688 8.1875 3.85938 9.75 3.85938H11.3516V0.773438C11.3516 0.773438 9.90625 0.5 8.53906 0.5C5.6875 0.5 3.8125 2.25781 3.8125 5.38281V8.15625H0.609375V11.75H3.8125V20.5H7.71875V11.75H10.6484Z" fill="#878787"></path>
</svg>
</a>
<a href="https://www.addtoany.com/add_to/twitter?linkurl=<?php echo urlencode(get_the_permalink()); ?>&linkname=<?php echo urlencode(get_the_title()); ?>&linknote=" class="share-option-icon a2a_button_twitter icon d-flex align-items-center justify-content-center twitter">
<svg width="20" height="17" viewBox="0 0 20 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.9297 4.4375C18.7109 3.85156 19.4141 3.14844 19.9609 2.32812C19.2578 2.64062 18.4375 2.875 17.6172 2.95312C18.4766 2.44531 19.1016 1.66406 19.4141 0.6875C18.6328 1.15625 17.7344 1.50781 16.8359 1.70312C16.0547 0.882812 15 0.414062 13.8281 0.414062C11.5625 0.414062 9.72656 2.25 9.72656 4.51562C9.72656 4.82812 9.76562 5.14062 9.84375 5.45312C6.44531 5.25781 3.39844 3.61719 1.36719 1.15625C1.01562 1.74219 0.820312 2.44531 0.820312 3.22656C0.820312 4.63281 1.52344 5.88281 2.65625 6.625C1.99219 6.58594 1.32812 6.42969 0.78125 6.11719V6.15625C0.78125 8.14844 2.1875 9.78906 4.0625 10.1797C3.75 10.2578 3.35938 10.3359 3.00781 10.3359C2.73438 10.3359 2.5 10.2969 2.22656 10.2578C2.73438 11.8984 4.25781 13.0703 6.05469 13.1094C4.64844 14.2031 2.89062 14.8672 0.976562 14.8672C0.625 14.8672 0.3125 14.8281 0 14.7891C1.79688 15.9609 3.94531 16.625 6.28906 16.625C13.8281 16.625 17.9297 10.4141 17.9297 4.98438C17.9297 4.78906 17.9297 4.63281 17.9297 4.4375Z" fill="#878787"></path>
</svg>
</a>
<a href="https://www.addtoany.com/add_to/linkedin?linkurl=<?php echo urlencode(get_the_permalink()); ?>&linkname=<?php echo urlencode(get_the_title()); ?>&linknote=" class="share-option-icon a2a_button_linkedin icon d-flex align-items-center justify-content-center linkedin">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.15625 18V6.32031H0.523438V18H4.15625ZM2.32031 4.75781C3.49219 4.75781 4.42969 3.78125 4.42969 2.60938C4.42969 1.47656 3.49219 0.539062 2.32031 0.539062C1.1875 0.539062 0.25 1.47656 0.25 2.60938C0.25 3.78125 1.1875 4.75781 2.32031 4.75781ZM17.7109 18H17.75V11.5938C17.75 8.46875 17.0469 6.04688 13.375 6.04688C11.6172 6.04688 10.4453 7.02344 9.9375 7.92188H9.89844V6.32031H6.42188V18H10.0547V12.2188C10.0547 10.6953 10.3281 9.25 12.2031 9.25C14.0781 9.25 14.1172 10.9688 14.1172 12.3359V18H17.7109Z" fill="#878787"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="vacancy-apply-form-wrapper">
<div>
<h4 class="mb-4">Vacancy Apply Form</h4>
<?php echo do_shortcode('[contact-form-7 id="bc05fd6" title="Vacancy Form"]'); ?>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<?php
$vac_query = new WP_Query([
'post_type' => 'vacancy',
'post__not_in' => [get_the_ID()],
'meta_query' => [
'relation' => "AND",
[
'key' => 'is_open',
'compare' => '=',
'value' => 1
],
[
'key' => 'deadline',
'compare' => '>=',
'value' => date('d-m-Y')
]
]
]);
if ($vac_query->have_posts()) :
?>
<section class="bg-secondary py-80 container-fluid VACANCY-SECTION">
<div class="container">
<div class="row">
<div class="col-lg-9 col-md-9 mx-auto col-12 top-title">
<span><?php echo get_field('vacancy_subtitle', 'option'); ?></span>
<h2><?php echo get_field('vacancy_title', 'option'); ?></h2>
<?php echo get_field('vacancy_description', 'option'); ?>
</div>
</div>
<div class="row mb-80">
<?php while ($vac_query->have_posts()) : $vac_query->the_post(); ?>
<?php
$now = date_create('now');
$deadline = date_create(get_field('deadline'));
$interval = date_diff($now, $deadline);
?>
<div class="col-lg-9 col-md-9 mx-auto col-12 align-items-center job-lists-wrapper">
<div class="inner-wrapper py-40 d-flex align-items-center justify-content-between">
<div class="job-list">
<h2><?php the_title(); ?></h2>
<div class="font-16 fw-600 vacancy-duration d-flex">
<span>Deadline : <?php the_field('deadline'); ?></span>
<p>(<?php echo $interval->format('%R%a days'); ?> Left)</p>
</div>
</div>
<div class="button-wrapper">
<a href="<?php the_permalink(); ?>" class="btn m-auto d-flex align-items-center btn-start-project-white">Find out more
</a>
</div>
</div>
</div>
<?php endwhile;
wp_reset_postdata(); ?>
</div>
</div>
</section>
<?php endif; ?>
<?php get_footer(); ?>
\ No newline at end of file
/*
Theme Name: Makura Theme
Text Domain: makura-theme
Version: 1.0
Description: Custom theme for Makura
Tags: blog, one-column, custom-background, custom-colors, custom-logo, custom-menu, editor-style, featured-images, footer-widgets, full-width-template, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready, block-styles, wide-blocks, accessibility-ready
Author: Makura Creations Team
Author URI: https://makuracreations.com
Theme URI: https://makuracreations.com
*/
\ No newline at end of file
<div class="container-fluid py-40 background-dark">
<div class="container">
<div class="row">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="<?php echo site_url('/');?>">Home</a></li>
<li class="breadcrumb-item active" aria-current="page"><?php the_title();?></li>
</ol>
</nav>
</div>
</div>
</div>
\ No newline at end of file
<div class="col-lg-4 col-12 recent-card-wrapper m-auto">
<a href="<?php the_permalink();?>">
<?php the_post_thumbnail();?>
<div class="bottom-text">
<div class="d-flex align-items-center justify-content-between title">
<div class="heading">
<h3><?php the_title();?></h3>
</div>
<div class="site-link">
<p>View Site <svg width="16" height="16" viewBox="0 0 16 16" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M4 12L12 4" stroke="#58595A" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M5.5 4H12V10.5" stroke="#58595A" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
</p>
</div>
</div>
<!-- <ul class="list-unstyled d-flex">
<?php
$terms = get_terms('portfolio-category');
foreach ($terms as $term) {
echo '<li>#' . $term->name . '</li>';
}
?>
</ul> -->
</div>
</a>
</div>
\ No newline at end of file
<?php $project_section = get_field('start_project_section','option');
if($project_section['enable_section']):
?>
<section class="container-fluid">
<div class="row">
<div class="pb-30 bg-secondary upper-footer">
<div class="col-lg-6 col-md-6 col-12 m-auto text-center pt-120 inner-text-wrapper">
<div class="inner-wrapper">
<h2><?php echo $project_section['title'];?></h2>
</div>
<?php if ($link = $project_section['link']) : $link_target = $link['target'] ? $link['target'] : '_self';?>
<a href="<?php echo $link['url']; ?>" target="<?php echo esc_attr( $link_target ); ?>">
<h3><?php echo $link['title']; ?></h3>
</a>
<?php endif;?>
</div>
<div class="left-img">
<?php if($image = $project_section['left_image']): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
<div class="right-img">
<?php if($image = $project_section['right_image']): echo wp_get_attachment_image($image,'full'); endif;?>
</div>
</div>
</div>
</section>
<?php endif;?>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment